OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-10-25 4120b8a1aeccc536da29b91b99e4032835a747e5
사용자관리 view 수정
2개 파일 추가됨
11개 파일 변경됨
410 ■■■■■ 파일 변경됨
src/main/webapp/WEB-INF/i18n/code_ko_KR.properties 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/manageUser/manageUser.controller.js 15 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/workspace/workspace.js 4 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/workspace/workspaceLevelAdd.controller.js 148 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js 35 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js 24 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/main.js 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/notice/noticeList.html 17 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/workspace/workspace.html 15 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/workspace/workspaceLevelAdd.html 89 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/workspace/workspaceUserConfig.html 22 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/workspace/workspaceUserLevelConfig.html 37 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/WEB-INF/i18n/code_ko_KR.properties
@@ -9,6 +9,7 @@
common.issue=\uC77C\uAC10
common.issueList=\uC77C\uAC10 \uBAA9\uB85D
common.status=\uC0C1\uD0DC
common.level=\uB4F1\uAE09
common.issueKey=\uC77C\uAC10 \uBC88\uD638
common.issueTitle=\uC77C\uAC10 \uC81C\uBAA9
common.content=\uB0B4\uC6A9
src/main/webapp/scripts/app/manageUser/manageUser.controller.js
@@ -22,7 +22,8 @@
                $scope.vm.search = {
                    name : "",  //  이름
                    account : "",   //  이메일
                    statuses : []   //  상태 - Y, N
                    statuses : [],   //  상태 - Y, N
                    levels : []   //  등급
                };
                $scope.vm.options = {
@@ -35,6 +36,17 @@
                        fieldValue : $filter("translate")("managementWorkspace.withdrawal") // "탈퇴"
                    }]
                };
                /*$scope.vm.options = {
                    levels : [{
                        fieldKey : "Y",
                        fieldValue : $filter("translate")("managementWorkspace.participation") // "참여"
                    }, {
                        fieldKey : "N",
                        //fieldValue : $filter("translate")("managementWorkspace.waitForParticipation") // "참여대기"
                        fieldValue : $filter("translate")("managementWorkspace.withdrawal") // "탈퇴"
                    }]
                };*/
                $scope.vm.page = {
                    selectedPage : 0,
@@ -68,6 +80,7 @@
                    $scope.vm.search.name = "";
                    $scope.vm.search.account = "";
                    $scope.vm.search.statuses = ["Y"];
                    $scope.vm.search.levels = [];
                    $scope.fn.getUserWorkspaceList(0);
                }
src/main/webapp/scripts/app/workspace/workspace.js
@@ -32,9 +32,9 @@
                    resolve : {
                        loadController : ["$q", function ($q) {
                            var deferred = $q.defer();
                            require(["modalFormAutoScroll", "workspaceController", "workspacePaymentExecuteController", "workspaceUserConfigController", "workspacePaymentModifyController",
                            require(["modalFormAutoScroll", "workspaceController", "workspaceLevelAddController", "workspacePaymentExecuteController", "workspaceUserConfigController", "workspacePaymentModifyController",
                                "workspacePaymentAgreeTermController", "paymentService", "userWorkspaceService", "workspaceService", "numberOnly", 'jsTable', 'tableColumnGenerator',
                                "crypto", "reservationDisableUserService", "workspacePaymentAddController"], function () {
                                "crypto", "reservationDisableUserService", "workspacePaymentAddController", "workspaceUserLevelController", "workspaceDepartmentConfigController"], function () {
                                deferred.resolve();
                            });
src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js
@@ -8,7 +8,7 @@
        'angular'
    ],
    function (app, angular) {
        app.controller('workspaceUserConfigController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$q', '$state', '$tableProvider', 'Payment', 'Workspace',
        app.controller('workspaceDepartmentConfigController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$q', '$state', '$tableProvider', 'Payment', 'Workspace',
            'UserWorkspace', '$filter',
            function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $q, $state, $tableProvider, Payment, Workspace, UserWorkspace, $filter) {
src/main/webapp/scripts/app/workspace/workspaceLevelAdd.controller.js
New file
@@ -0,0 +1,148 @@
/**
 * Created by wisestone on 2018-02-19.
 */
'use strict';
define([
        'app',
        'angular'
    ],
    function (app, angular) {
        app.controller('workspaceLevelAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$uibModalInstance', '$state', 'Workspace', '$filter', 'parameter', '$timeout',
            function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $uibModalInstance, Payment, $filter, parameter, $timeout) {
                $scope.fn = {
                    //add : add,    //  등급 추가
                    cancel : cancel,    //  팝업 창 닫기
                    formCheck : formCheck,   //  폼 체크
                    formSubmit : formSubmit
                };
                $scope.vm = {
                    form : {
                        /*workspaceId : parameter.workspaceId,
                        usdKrw : parameter.usdKrw,
                        maxUser : parameter.maxUser,
                        buyUser : "",
                        type : "MONTH",
                        cardNumber1 : "",
                        cardNumber2 : "",
                        cardNumber3 : "",
                        cardNumber4 : "",
                        expireMonth : "",
                        expireYear : "",
                        expireYearTmp : "",
                        birth : "",
                        cardPwd : "",
                        paymentAmountTemp : "", //  클라이언트에서 사용자 수를 변경할 때 보여줄 결제 금액 - 금액은 서버에서 다시 계산한다.
                        confirm : false //  약관 동의*/
                    },
                    viewAgreeTerm : false
                };
                //  사용자 가격 보기
                /*$scope.$watch("vm.form.buyUser", function (newValue) {
                    if ($rootScope.isDefined(newValue)) {
                        var totalAmount = (BILLING_AMOUNT * $scope.vm.form.usdKrw * newValue);
                        var discount = 0;
                        if (newValue > 99) {
                            var sale = newValue * 0.01;
                            discount = (totalAmount * (sale/100));
                        }
                        $scope.vm.form.paymentAmountTemp = Math.floor(totalAmount - discount);
                    }
                    else {
                        $scope.vm.form.paymentAmountTemp = 0;
                    }
                });*/
                //  폼 전송
                /*function formSubmit() {
                    $rootScope.spinner = true;
                    $scope.vm.form.expireYear = "20" + $scope.vm.form.expireYearTmp;
                    var content = angular.copy($scope.vm.form);
                    //  암호화 시간동안 프로그래스바 못올리는 현상 수정
                    $timeout(function () {
                        content.cardNumber1 = $rootScope.encryption($scope.vm.form.cardNumber1);
                        content.cardNumber2 = $rootScope.encryption($scope.vm.form.cardNumber2);
                        content.cardNumber3 = $rootScope.encryption($scope.vm.form.cardNumber3);
                        content.cardNumber4 = $rootScope.encryption($scope.vm.form.cardNumber4);
                        content.expireMonth = $rootScope.encryption($scope.vm.form.expireMonth);
                        content.expireYear = $rootScope.encryption($scope.vm.form.expireYear);
                        content.cardPwd = $rootScope.encryption($scope.vm.form.cardPwd);
                        content.birth = $rootScope.encryption($scope.vm.form.birth);
                        Payment.immediateAddUser($resourceProvider.getContent(
                            content,
                            $resourceProvider.getPageContent(0, 10))).then(function (result) {
                            if (result.data.message.status === "success") {
                                $scope.fn.cancel();
                                SweetAlert.success($filter("translate")("managementWorkspace.paymentCompleted"), result.data.message.message); // "추가 결제 성공"
                                //  결제 및 업무 공간 정보 화면 갱신
                                $rootScope.$broadcast("findMyWorkspace", {});
                                $rootScope.$broadcast("getPaymentDetail", {});
                            }
                            else {
                                SweetAlert.error($filter("translate")("managementWorkspace.failedToRegularPaymentChange"), result.data.message.message); // "추가 결제 실패"
                            }
                            $rootScope.spinner = false;
                        });
                    }, 100);
                }*/
                //  팝업 창 닫기
                function cancel() {
                    $rootScope.$broadcast("closeLayer");    //  팝업이 열리고 나서 js-multi, js-single 등에서 body 이벤트가 날아가는 현상 수정
                    $uibModalInstance.dismiss('cancel');
                    $(document).unbind("keydown");  //  단축키 이벤트 제거
                }
                //  사용자 수 변경
                /*function changeBuyUser(changeType) {
                    if (changeType === "PLUS") {
                        if ($scope.vm.form.buyUser < 999) {
                            $scope.vm.form.buyUser++;
                        }
                    }
                    else {
                        if ($scope.vm.form.buyUser > 1) {
                            $scope.vm.form.buyUser--;
                        }
                    }
                }*/
                //  폼 체크
                /*function formCheck() {
                    if (!$scope.vm.form.confirm) {
                        return true;
                    }
                    if (!$rootScope.isDefined($scope.vm.form.cardNumber1) || !$rootScope.isDefined($scope.vm.form.cardNumber2) || !$rootScope.isDefined($scope.vm.form.cardNumber3)
                        || !$rootScope.isDefined($scope.vm.form.cardNumber4) || !$rootScope.isDefined($scope.vm.form.expireMonth) || !$rootScope.isDefined($scope.vm.form.expireYearTmp)
                        || !$rootScope.isDefined($scope.vm.form.birth) || !$rootScope.isDefined($scope.vm.form.cardPwd) || !$rootScope.isDefined($scope.vm.form.type)) {
                        return true;
                    }
                    if ($scope.vm.form.cardNumber1.length !== 4 || $scope.vm.form.cardNumber2.length !== 4 || $scope.vm.form.cardNumber3.length !== 4 || $scope.vm.form.cardNumber4.length !== 4
                        || $scope.vm.form.expireMonth.length !== 2 || $scope.vm.form.expireYearTmp.length !== 2 || $scope.vm.form.birth.length < 6 || $scope.vm.form.cardPwd.length !== 2) {
                        return true;
                    }
                    //  사용자 수는 1명 이상이어야 한다.
                    if ($scope.vm.form.buyUser < 1) {
                        return true;
                    }
                    return false;
                }*/
            }
        ]);
    }
);
src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js
@@ -24,7 +24,9 @@
                $scope.vm.search = {
                    name : "",  //  이름
                    account : "",   //  이메일
                    statuses : []   //  상태 - Y, N
                    statuses : [],   //  상태 - Y, N
                    level : [],   //  등급
                    departs : []   //  부서
                };
                $scope.vm.options = {
@@ -35,8 +37,38 @@
                        fieldKey : "N",
                        //fieldValue : $filter("translate")("managementWorkspace.waitForParticipation") // "참여대기"
                        fieldValue : $filter("translate")("managementWorkspace.withdrawal") // "탈퇴"
                    }],
                    levels : [{
                        fieldKey : "S",
                        //fieldValue : $filter("translate")("managementWorkspace.participation") // "참여"
                        fieldValue : "슈퍼 관리자"
                    }, {
                        fieldKey : "U",
                        //fieldValue : $filter("translate")("managementWorkspace.withdrawal") // "탈퇴"
                        fieldValue : "사용자"
                    }],
                    departs : [{
                        fieldKey : "A",
                        //fieldValue : $filter("translate")("managementWorkspace.participation") // "참여"
                        fieldValue : "개발부"
                    }, {
                        fieldKey : "B",
                        //fieldValue : $filter("translate")("managementWorkspace.withdrawal") // "탈퇴"
                        fieldValue : "경영지원부"
                    }]
                };
                /*$scope.vm.options = {
                    levels : [{
                        fieldKey : "S",
                        //fieldValue : $filter("translate")("managementWorkspace.participation") // "참여"
                        fieldValue : "슈퍼 관리자"
                    }, {
                        fieldKey : "U",
                        //fieldValue : $filter("translate")("managementWorkspace.withdrawal") // "탈퇴"
                        fieldValue : "사용자"
                    }]
                };*/
                $scope.vm.page = {
                    selectedPage : 0,
@@ -79,6 +111,7 @@
                    $scope.vm.search.name = "";
                    $scope.vm.search.account = "";
                    $scope.vm.search.statuses = [];
                    $scope.vm.search.level = [];
                    $scope.fn.getUserWorkspaceList(0);
                }
src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js
@@ -8,7 +8,7 @@
        'angular'
    ],
    function (app, angular) {
        app.controller('workspaceUserConfigController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$q', '$state', '$tableProvider', 'Payment', 'Workspace',
        app.controller('workspaceUserLevelController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$q', '$state', '$tableProvider', 'Payment', 'Workspace',
            'UserWorkspace', '$filter',
            function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $q, $state, $tableProvider, Payment, Workspace, UserWorkspace, $filter) {
@@ -18,7 +18,7 @@
                $scope.fn.makeTableConfigs = makeTableConfigs;  //  업무 공간에 참여하는 전체 사용자 목록 테이블 설정
                $scope.fn.initSearch = initSearch;  //  검색 조건 초기화
                $scope.fn.changePageRowCount = changePageRowCount;  //  업무 공간 참여 사용자 목록 보기 개수 변경
                $scope.fn.add = add;    //  등급 추가
                /*  $scope.vm 상속 중  */
                $scope.vm.search = {
@@ -162,8 +162,26 @@
                        }
                    });
                }
                $scope.fn.makeTableConfigs();
                //  등급 추가
                function add() {
                    $uibModal.open({
                        templateUrl : 'views/workspace/workspaceLevelAdd.html',
                        size : "md",
                        //controller : 'workspaceLevelAddController',
                        backdrop : 'static'
                        /*resolve : {
                            parameter : function () {
                                return {
                                    workspaceId : $scope.vm.workspaceVo.id,
                                    usdKrw : $scope.vm.workspaceVo.usdKrw,
                                    maxUser : $scope.vm.workspaceVo.maxUser
                                };
                            }
                        }*/
                    });
                }
            }
        ]);
    }
src/main/webapp/scripts/main.js
@@ -225,6 +225,7 @@
        'workspacePaymentAddController' : 'app/workspace/workspacePaymentAdd.controller',   //  추가 결제 컨트롤러
        'workspacePaymentAgreeTermController' : 'app/workspace/workspacePaymentAgreeTerm.controller', //  업무 공간 이용 약관 확인 컨트롤러
        'workspaceUserLevelController' : 'app/workspace/workspaceUserLevelConfig.controller',  //  사용자 관리 컨트롤러
        'workspaceLevelAddController' : 'app/workspace/workspaceLevelAdd.controller',  //  사용자 등급 추가 컨트롤러
        'workspaceDepartmentConfigController' : 'app/workspace/workspaceDepartmentConfig.controller',  //  사용자 부서 관리 컨트롤러
        'workspaceService' : 'components/workspace/workspace.service',  //  업무 공간에 관련된 통신을 담당한다.
        'paymentService' : 'components/payment/payment.service',    //  결재에 관련된 통신을 담당한다.
src/main/webapp/views/notice/noticeList.html
@@ -8,7 +8,7 @@
                    <span translate="notice.registerNotice">공지사항 등록</span>
                </button>
                <form class="form-inline justify-content-sm-end pull-right"
                <!--<form class="form-inline justify-content-sm-end pull-right"
                      method="post"
                      action="/user/downloadExcel"
                      name="userListForm">
@@ -18,7 +18,7 @@
                       make-search-conditions="fn.makeSearchConditions()">
                        <span translate="common.downloadExcel">엑셀 다운로드</span>
                    </button>
                </form>
                </form>-->
            </div>
            <h6 class="element-header" translate="notice.notice">
@@ -84,7 +84,18 @@
                            </div>
                        </div>
                        <div class="col-sm-6 text-right">
                            &nbsp;
                            <form class="form-inline justify-content-sm-end pull-right ng-pristine ng-valid" method="post" action="/project/downloadExcel" name="projectListForm">
                                <input type="hidden" name="conditions" autocomplete="off">
                                <div class="btn-group">
                                    <button aria-expanded="false" aria-haspopup="true" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" type="button"><span translate="common.addFunction" class="ng-scope">추가기능</span>
                                    </button>
                                    <div aria-labelledby="dropdownMenuButton2" class="dropdown-menu left-menu" x-placement="bottom-start">
                                        <a class="dropdown-item cursor ng-isolate-scope" form-submit="projectListForm" make-search-conditions="fn.makeSearchConditions()"><span translate="common.downloadExcel" class="ng-scope">엑셀 다운로드</span></a>
                                        <a class="dropdown-item cursor" ng-click="fn.removes()"> <span translate="common.delete" class="ng-scope">삭제</span></a>
                                    </div>
                                </div>
                            </form>
                        </div>
                    </div>
                </div>
src/main/webapp/views/workspace/workspace.html
@@ -1,6 +1,15 @@
<h6 class="element-header" translate="managementWorkspace.myWorkspace">
    나의 업무공간 관리
</h6>
<div class="element-wrapper">
    <div class="element-actions">
        <button ng-click="fn.add()" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_WORKSPACE')"
                class="btn btn-xlg btn-danger"><i class="os-icon os-icon-plus"></i> <span
                translate="managementWorkspace.addLevel">등급 추가</span>
        </button>
    </div>
    <h6 class="element-header" translate="managementWorkspace.myWorkspace">
        나의 업무공간 관리
    </h6>
</div>
<div class="os-tabs-w">
    <div class="os-tabs-controls">
        <ul class="nav nav-tabs upper">
src/main/webapp/views/workspace/workspaceLevelAdd.html
New file
@@ -0,0 +1,89 @@
<div class="formModal" ng-controller="workspaceLevelAddController">
    <div class="modal-header faded smaller">
        <div class="modal-title">
            <strong>새 등급 추가</strong>
        </div>
        <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()">
            <span aria-hidden="true"> &times;</span>
        </button>
    </div>
    <div class="modal-body">
        <form role="form" name="levelAddForm">
            <table class="table table-lightborder">
                <tr>
                    <td>
                        <label for="levelAddForm1"><span translate="managementWorkspace.levelName">등급명</span><code class="highlighter-rouge">*</code></label>
                    </td>
                    <td>
                        <div class="input-group mb-2 mr-sm-2 mb-sm-0">
                            <input id="levelAddForm1"
                                   class="form-control" placeholder="추가 할 등급명을 입력하세요."
                                   type="text"
                                   ng-model="vm.form.name"
                                   maxlength="50"
                                   autofocus
                                   required>
                        </div>
                    </td>
                </tr>
                <tr>
                    <td class="text-left bold">
                        <span translate="manageUser.manageProjectPerm">프로젝트 관리</span>
                    </td>
                </tr>
                <!--<tr>
                    <td>
                        <span translate="managementWorkspace.read">읽기</span>
                        <span translate="managementWorkspace.write">쓰기</span>
                    </td>
                </tr>-->
                <tr>
                    <td class="text-left bold">
                        <span translate="manageUser.manageIssueSystemPerm">이슈 시스템</span>
                    </td>
                </tr>
                <tr>
                    <td class="text-left bold">
                        <span translate="manageUser.manageUserPerm">사용자</span>
                    </td>
                </tr>
                <tr>
                    <td class="text-left bold">
                        <span translate="manageUser.manageNoticePerm">공지사항</span>
                    </td>
                </tr>
                <tr>
                    <td class="text-left bold">
                        <span translate="manageUser.manageFAQPerm">FAQ</span>
                    </td>
                </tr>
                <tr>
                    <td class="text-left bold">
                        <span translate="manageUser.manageQnAPerm">QnA</span>
                    </td>
                </tr>
                <tr>
                    <td class="text-left bold">
                        <span translate="manageUser.manageEventPerm">이벤트</span>
                    </td>
                </tr>
                <tr>
                    <td class="text-left bold">
                        <span translate="manageUser.manageGuidePerm">가이드</span>
                    </td>
                </tr>
            </table>
        </form>
    </div>
    <div class="modal-footer buttons-on-right">
        <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">취소</span></button>
        <button type="button" class="btn btn-md btn-primary bold"
                js-short-cut
                js-short-cut-action="(fn.formCheck(paymentAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()"
                ng-disabled="fn.formCheck(paymentAddForm.$invalid)"
                ng-click="fn.formSubmit()"><span translate="common.save">저장</span>
        </button>
    </div>
</div>
src/main/webapp/views/workspace/workspaceUserConfig.html
@@ -94,6 +94,28 @@
                        <div class="col-xl-3">
                            <div class="form-group">
                                <label>등급</label>
                                <ng-dropdown-multiselect class="multiSelect cursor"
                                                         data-input-name="levels"
                                                         selected-model="vm.search.levels"
                                                         extra-settings="{ stringTypeOption : true }"
                                                         options="vm.options.levels"></ng-dropdown-multiselect>
                            </div>
                        </div>
                        <div class="col-xl-3">
                            <div class="form-group">
                                <label>부서명</label>
                                <ng-dropdown-multiselect class="multiSelect cursor"
                                                         data-input-name="depart"
                                                         selected-model="vm.search.departs"
                                                         extra-settings="{ stringTypeOption : true }"
                                                         options="vm.options.departs"></ng-dropdown-multiselect>
                            </div>
                        </div>
                        <div class="col-xl-3">
                            <div class="form-group">
                                <label translate="common.email">이메일</label>
                                <input class="form-control" type="text" ng-model="vm.search.account" maxlength="50">
                            </div>
src/main/webapp/views/workspace/workspaceUserLevelConfig.html
@@ -1,13 +1,10 @@
<div class="row" ng-controller="workspaceUserLevelController">
</div>
<div class="row">
    <div class="col-lg-12">
        <div class="element-box">
            <div class="searchdiv">
                <form name="userWorkspaceForm" role="form" ng-enter="fn.getUserWorkspaceList(0)">
                    <div class="row">
                        <div class="col-xl-2">
                        <!--<div class="col-xl-2">
                            <div class="form-group">
                                <label translate="common.name">이름</label>
                                <input class="form-control" type="text" ng-model="vm.search.name" maxlength="10">
@@ -29,6 +26,13 @@
                            <div class="form-group">
                                <label translate="common.email">이메일</label>
                                <input class="form-control" type="text" ng-model="vm.search.account" maxlength="50">
                            </div>
                        </div>-->
                        <div class="col-xl-3">
                            <div class="form-group">
                                <label translate="managementWorkspace.levelName">등급명</label>
                                <input class="form-control" type="text" ng-model="vm.search.level" maxlength="50">
                            </div>
                        </div>
@@ -65,8 +69,8 @@
                            </label>
                        </div>
                    </div>
                    <!--<div class="col-sm-6 text-right">
                        <div class="btn-group">
                    <div class="col-sm-6 text-right">
                        <!--<div class="btn-group">
                            <button aria-expanded="false"
                                    aria-haspopup="true"
                                    class="btn btn-secondary dropdown-toggle"
@@ -77,13 +81,30 @@
                                 class="dropdown-menu"
                                 x-placement="bottom-start"
                                 style="position: absolute; transform: translate3d(0px, 30px, 0px); top: 0px; left: 0px; will-change: transform;">
                                <a class="dropdown-item cursor ng-isolate-scope" form-submit="projectListForm" make-search-conditions="fn.makeSearchConditions()"><span translate="common.downloadExcel" class="ng-scope">엑셀 다운로드</span></a>
                                <a class="dropdown-item" href="#"> 삭제</a>
                            </div>
                        </div>
                    </div>-->
                        </div>-->
                        <form class="form-inline justify-content-sm-end pull-right ng-pristine ng-valid" method="post" action="/workspace/downloadExcel" name="userLevelListForm">
                            <input type="hidden" name="conditions" autocomplete="off">
                            <div class="btn-group">
                                <button aria-expanded="false" aria-haspopup="true" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" type="button"><span translate="common.addFunction" class="ng-scope">추가기능</span>
                                </button>
                                <div aria-labelledby="dropdownMenuButton2" class="dropdown-menu left-menu" x-placement="bottom-start">
                                    <a class="dropdown-item cursor ng-isolate-scope" form-submit="projectListForm" make-search-conditions="fn.makeSearchConditions()"><span translate="common.downloadExcel" class="ng-scope">엑셀 다운로드</span></a>
                                    <a class="dropdown-item cursor" ng-click="fn.removes()"> <span translate="common.delete" class="ng-scope">삭제</span></a>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
            <!--<div class="table-responsive">
                <js-table data="vm.responseData.data" table-configs="vm.tableConfigs"
                          event="vm.tableEvent"></js-table>
            </div>-->
            <div class="table-responsive">
                <js-table data="vm.responseData.data" table-configs="vm.tableConfigs"
                          event="vm.tableEvent"></js-table>