From fe1b9e8b4e54fb22022a0d13cc57b72bc8ba9840 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 금, 05 11월 2021 19:12:00 +0900
Subject: [PATCH] "부서 관리" 및 "사용자 관리" 프론트 완료

---
 src/main/webapp/views/workspace/workspaceDepartmentAdd.html                   |    2 
 src/main/webapp/views/workspace/workspaceLevelModify.html                     |    4 
 src/main/webapp/views/workspace/workspaceDepartmentCountModify.html           |   43 ++++++++
 src/main/webapp/scripts/app/workspace/workspace.js                            |    2 
 src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js     |    6 +
 src/main/webapp/views/workspace/workspaceDepartmentConfig.html                |    2 
 src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java     |   18 +-
 src/main/webapp/scripts/app/workspace/departmentModify.controller.js          |   38 +++---
 src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js       |   25 ++++
 src/main/webapp/views/workspace/workspaceDepartmentModify.html                |    4 
 src/main/webapp/views/workspace/workspaceUserConfig.html                      |    2 
 src/main/java/kr/wisestone/owl/service/impl/DepartmentManageServiceImpl.java  |   12 +
 src/main/webapp/i18n/ko/global.json                                           |    3 
 src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js  |   13 ++
 src/main/resources/mybatis/query-template/departmentManage-template.xml       |    9 +
 src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js |   96 +++++++++++++++++-
 src/main/webapp/scripts/main.js                                               |    1 
 17 files changed, 224 insertions(+), 56 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/DepartmentManageServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/DepartmentManageServiceImpl.java
index db658d9..c1459c4 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/DepartmentManageServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/DepartmentManageServiceImpl.java
@@ -62,7 +62,7 @@
 
     // 遺��꽌 紐⑸줉�쓣 媛��졇�삩�떎.
     @Override
-    public List<DepartmentManageVo> findDepartment(Map<String, Object> resJsonData,
+    public List<DepartmentManageVo>findDepartment(Map<String, Object> resJsonData,
                                                    DepartmentManageCondition condition, Pageable pageable) {
         condition.setPage(pageable.getPageNumber() * pageable.getPageSize());
         condition.setPageSize(pageable.getPageSize());
@@ -98,6 +98,11 @@
             throw new OwlRuntimeException(
                     this.messageAccessor.getMessage(MsgConstants.PROJECT_REMOVE_NOT_SELECT));
         }
+
+        for (Long departmentId : departmentManageForm.getRemoveIds()) {
+            this.departmentManageRepository.deleteById(departmentId);
+        }
+
         this.departmentManageRepository.flush();
     }
 
@@ -106,8 +111,9 @@
     public void detailDepartment(Map<String, Object> resJsonData, DepartmentManageCondition departmentManageCondition) {
         DepartmentManageVo departmentManageVo = new DepartmentManageVo();
 
-        if (departmentManageVo.getId() != null) {
-            DepartmentManage departmentManage = this.getDepartment(departmentManageCondition.getId());
+        Long departmentId = departmentManageCondition.getId();
+        if (departmentId != null) {
+            DepartmentManage departmentManage = this.getDepartment(departmentId);
             departmentManageVo = ConvertUtil.copyProperties(departmentManage, DepartmentManageVo.class);
         }
         resJsonData.put(Constants.RES_KEY_CONTENTS, departmentManageVo);
diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java
index a5d6f06..6f6306d 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java
@@ -106,21 +106,21 @@
     public void modifyUserWorkspace(UserWorkspaceForm userWorkspaceForm) {
         UserWorkspace userWorkspace = this.getUserWorkspace(userWorkspaceForm.getId());
 
-        UserLevel currentUserlevel = userWorkspace.getUser().getUserLevel();
+        User user = userWorkspace.getUser();
+
+        // �궗�슜�옄 �벑湲� 蹂�寃�
+        UserLevel currentUserlevel = user.getUserLevel();
         if (currentUserlevel.getId() != userWorkspaceForm.getLevelId()) {
-            // �궗�슜�옄 �벑湲� 蹂�寃쎌떆
-            User user = userWorkspace.getUser();
             UserLevel userLevel = this.userLevelService.getUserLevel(userWorkspaceForm.getLevelId());
             user.setUserLevel(userLevel);
             userWorkspace.setUser(user);
         }
 
-        //todo 遺��꽌 蹂�寃쎌떆
-        DepartmentManage currentDepartment = userWorkspace.getUser().getDepartmentManage();
-        if (currentDepartment.getId() != userWorkspaceForm.getDepartmentId()) {
+        // 遺��꽌 蹂�寃�
+        DepartmentManage currentDepartment = user.getDepartmentManage();
+        if (currentDepartment == null || (userWorkspaceForm.getDepartmentId() != null && currentDepartment.getId() != userWorkspaceForm.getDepartmentId())) {
             // 遺��꽌紐� 蹂�寃쎌떆
-            User user = userWorkspace.getUser();
-            DepartmentManage departmentManage = this.departmentManageService.getDepartment(userWorkspaceForm.getLevelId());
+            DepartmentManage departmentManage = this.departmentManageService.getDepartment(userWorkspaceForm.getDepartmentId());
             user.setDepartmentManage(departmentManage);
             userWorkspace.setUser(user);
         }
@@ -137,7 +137,7 @@
                             this.messageAccessor.getMessage(MsgConstants.WORKSPACE_MAX_USER_EXCESS_NOT_INCLUDE));
                 }
             } else {
-                User user = userWorkspace.getUser();
+                user = userWorkspace.getUser();
                 //  李몄뿬 ��湲� �궗�슜�옄媛� �쁽�옱 �빐�떦 �뾽臾� 怨듦컙�쓣 �궗�슜�븯怨� �엳�쓣 寃쎌슦 利됱떆 �빐�떦 �뾽臾� 怨듦컙�뿉�꽌 �뒘湲곌쾶 �븳�떎.
                 if (user.getLastWorkspaceId().equals(userWorkspace.getWorkspace().getId())) {
                     //  �뾽臾� 怨듦컙�뿉 李몄뿬�븯�뜕 �궗�슜�옄�뿉寃� �젣�쇅 �븣由� 諛� �솕硫� �깉濡쒓퀬移�
diff --git a/src/main/resources/mybatis/query-template/departmentManage-template.xml b/src/main/resources/mybatis/query-template/departmentManage-template.xml
index d0d6810..e73a692 100644
--- a/src/main/resources/mybatis/query-template/departmentManage-template.xml
+++ b/src/main/resources/mybatis/query-template/departmentManage-template.xml
@@ -13,10 +13,10 @@
         department_manage dm
         WHERE 1=1
         <if test="departmentName != '' and departmentName != null">
-            AND ul.department_name like CONCAT('%',#{departmentName},'%')
+            AND dm.department_name like CONCAT('%',#{departmentName},'%')
         </if>
         <if test="id != '' and id != null">
-            AND ul.id like CONCAT('%',#{id},'%')
+            AND dm.id like CONCAT('%',#{id},'%')
         </if>
         <if test="pageSize != '' and pageSize != null">
             limit #{pageSize} offset #{page};
@@ -30,7 +30,10 @@
         department_manage dm
         WHERE 1=1
         <if test="departmentName != '' and departmentName != null">
-            AND ul.department_name like CONCAT('%',#{departmentName},'%')
+            AND dm.department_name like CONCAT('%',#{departmentName},'%')
+        </if>
+        <if test="id != '' and id != null">
+            AND dm.id like CONCAT('%',#{id},'%')
         </if>
     </select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
index 527d5ed..76eb9f0 100644
--- a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
+++ b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
@@ -330,15 +330,24 @@
 
                                         case "DEPARTMENT_MODIFY":
                                             if ($rootScope.checkMngPermission('USER_PERMISSION_MNG_WORKSPACE')) {
-                                                makeTag += "<span class='titlename cursor table-word-break-all' ng-click='event.modifyDepartment(data.id)'>" + scope.data.departmentName + "</span>";
+                                                makeTag += "<span class='titlename cursor table-word-break-all' ng-click='event.departmentModify(data.id)'>" + scope.data.departmentName + "</span>";
                                             }
                                             else {
                                                 makeTag += "<span class='titlename cursor table-word-break-all'>" + scope.data.departmentName + "</span>";
                                             }
                                             break;
 
+                                        case "DEPARTMENT_COUNT":
+                                            if ($rootScope.checkMngPermission('USER_PERMISSION_MNG_WORKSPACE')) {
+                                                makeTag += "<span class='titlename cursor table-word-break-all' ng-click='event.modifyDepartmentCount(data.id)'>" + scope.data.departmentCount + "</span>";
+                                            }
+                                            else {
+                                                makeTag += "<span class='titlename cursor table-word-break-all'>" + scope.data.departmentCount + "</span>";
+                                            }
+                                            break;
+
                                         case "DEPARTMENT_OPTION" :
-                                            makeTag +="<select class='form-control input-sm' ng-model='data.departmentId' ng-change=''><option ng-repeat='department in data.departments' ng-value='department.fieldKey'>{{::department.fieldValue}}</option></select>";
+                                            makeTag +="<select class='form-control input-sm' ng-model='data.departmentId' ng-change='event.modifyUserWorkspace(data)'><option ng-repeat='department in data.departments' ng-value='department.fieldKey'>{{::department.fieldValue}}</option></select>";
                                             break;
 
                                         case "LEVEL_OPTION" :
diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json
index 1091b13..c958e81 100644
--- a/src/main/webapp/i18n/ko/global.json
+++ b/src/main/webapp/i18n/ko/global.json
@@ -758,7 +758,8 @@
         "manageDepartment": "遺��꽌 愿�由�",
         "departmentName": "遺��꽌紐�",
         "departmentEx": "遺��꽌�꽕紐�",
-        "departmentCount": "遺��꽌�씤�썝"
+        "departmentCount": "遺��꽌�씤�썝",
+        "departmentUser": "遺��꽌 ���썝"
     },
     "tasks": {
         "agileBoardTitle": "移몃컲 蹂대뱶"
diff --git a/src/main/webapp/scripts/app/workspace/departmentModify.controller.js b/src/main/webapp/scripts/app/workspace/departmentModify.controller.js
index 405e87e..d025eda 100644
--- a/src/main/webapp/scripts/app/workspace/departmentModify.controller.js
+++ b/src/main/webapp/scripts/app/workspace/departmentModify.controller.js
@@ -12,7 +12,7 @@
             function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, UserWorkspace, parameter, SweetAlert, $filter) {
 
                 $scope.fn = {
-                    getDepartmentList : getDepartmentList,  //  遺��꽌 愿�由� 由ъ뒪�듃
+                    detail : detail,  //  �긽�꽭 議고쉶
                     cancel : cancel,    //  �뙘�뾽 李� �떕湲�
                     formSubmit : formSubmit,    //  �뤌 �쟾�넚
                     formCheck : formCheck,  //  �뤌 泥댄겕
@@ -22,28 +22,28 @@
                     id : parameter.id,
                     form : {
                         departmentName : "",
-                        departmentEx : ""
+                        departmentDescription : ""
                     }
                 };
 
-                //  遺��꽌 愿�由� 紐⑸줉 議고쉶
-                function getDepartmentList() {
-
+                //  �긽�꽭 �젙蹂�
+                function detail() {
                     var conditions = {
-                        id : $scope.vm.id
-                    };
+                        id : parameter.id
+                    }
 
-                    //�뀒�씠釉� 由ъ뒪�듃 �뜲�씠�꽣 而⑦듃濡ㅻ윭 �슂泥�
-                    UserWorkspace.departmentFind($resourceProvider.getContent(conditions,
-                        $resourceProvider.getPageContent(0, 10))).then(function (result) {
+                    UserWorkspace.departmentDetail($resourceProvider.getContent(
+                        conditions,
+                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
 
                         if (result.data.message.status === "success") {
-                            $scope.vm.form.departmentName = result.data.data[0].departmentName; //departmentName 媛��졇�삤湲�
-                            $scope.vm.form.departmentDescription = result.data.data[0].departmentDescription; //departmentEx 媛��졇�삤湲�
-
+                            if (angular.isDefined(result.data.data)) {
+                                $scope.vm.form.departmentName = result.data.data.departmentName;
+                                $scope.vm.form.departmentDescription = result.data.data.departmentDescription;
+                            }
                         }
                         else {
-                            SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullDepartmentList"), result.data.message.message); // "遺��꽌 愿�由� 紐⑸줉 議고쉶 �떎�뙣"
+                            SweetAlert.swal($filter("translate")("customField.failedToDetailUserDefinedFields"), result.data.message.message, "error"); // "�궗�슜�옄 �젙�쓽 �븘�뱶 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣"
                         }
                     });
                 }
@@ -57,16 +57,16 @@
                 }
 
                 //  �뤌 �쟾�넚
-                function formSubmit(condition) {
+                function formSubmit() {
                     $rootScope.spinner = true;
 
                     var content = {
                         id : parameter.id,
-                        title : $rootScope.preventXss($scope.vm.form.departmentName),
-                        description : $rootScope.preventXss($scope.vm.form.departmentDescription)
+                        departmentName : $rootScope.preventXss($scope.vm.form.departmentName),
+                        departmentDescription : $rootScope.preventXss($scope.vm.form.departmentDescription)
                     };
 
-                    UserWorkspace.modifyDepartment($resourceProvider.getContent(condition,
+                    UserWorkspace.departmentModify($resourceProvider.getContent(
                         content,
                         $resourceProvider.getPageContent(0, 0))).then(function (result) {
 
@@ -91,7 +91,7 @@
                     $(document).unbind("keydown");  //  �떒異뺥궎 �씠踰ㅽ듃 �젣嫄�
                 }
 
-                $scope.fn.getDepartmentList();
+                $scope.fn.detail();
 
             }]);
     });
diff --git a/src/main/webapp/scripts/app/workspace/workspace.js b/src/main/webapp/scripts/app/workspace/workspace.js
index 6111fc7..c3049d3 100644
--- a/src/main/webapp/scripts/app/workspace/workspace.js
+++ b/src/main/webapp/scripts/app/workspace/workspace.js
@@ -34,7 +34,7 @@
                             var deferred = $q.defer();
                             require(["modalFormAutoScroll", "workspaceController", "workspaceLevelAddController", "workspaceDepartmentAddController", "workspacePaymentExecuteController", "workspaceUserConfigController", "workspacePaymentModifyController",
                                 "workspacePaymentAgreeTermController", "paymentService", "userWorkspaceService", "workspaceService", "numberOnly", 'jsTable', 'tableColumnGenerator', 'summerNote', 'summerNote-ko-KR', 'formSubmit',
-                                "crypto", "reservationDisableUserService", "workspacePaymentAddController", "workspaceUserLevelController", "workspaceDepartmentConfigController", "levelModifyController"], function () {
+                                "crypto", "reservationDisableUserService", "workspacePaymentAddController", "workspaceUserLevelController", "workspaceDepartmentConfigController", "levelModifyController","departmentModifyController"], function () {
                                 deferred.resolve();
                             });
 
diff --git a/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js b/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js
index f3e4d98..1b2a39b 100644
--- a/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js
+++ b/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js
@@ -9,8 +9,8 @@
     ],
     function (app, angular) {
         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) {
+            'UserWorkspace', '$filter', '$timeout',
+            function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $q, $state, $tableProvider, Payment, Workspace, UserWorkspace, $filter, $timeout) {
 
 
                 /*  $scope.fn �긽�냽 以�  */
@@ -18,6 +18,7 @@
                 $scope.fn.makeTableConfigs = makeTableConfigs;  //  遺��꽌 愿�由� 紐⑸줉 �뀒�씠釉� �꽕�젙
                 $scope.fn.initSearchDepartment = initSearchDepartment;  //  寃��깋 議곌굔 珥덇린�솕
                 $scope.fn.departmentAdd = departmentAdd;    //  遺��꽌 異붽�
+                $scope.fn.removes = removes;  // 遺��꽌 �궘�젣
 
                 /*  $scope.vm �긽�냽 以�  */
                 $scope.vm.search = {
@@ -36,7 +37,8 @@
 
                 //  �뀒�씠釉� �씠踰ㅽ듃
                 $scope.vm.tableEvent2 = {
-                    modifyDepartment : modifyDepartment //遺��꽌紐� 蹂�寃�
+                    departmentModify : departmentModify, //遺��꽌紐� 蹂�寃�
+                    modifyDepartmentCount : modifyDepartmentCount //遺��꽌 ���썝 蹂�寃�
                 };
 
                 //  遺��꽌 愿�由� 由ъ뒪�듃 遺덈윭�삤湲�
@@ -46,6 +48,7 @@
 
                 //  寃��깋 議곌굔 珥덇린�솕
                 function initSearchDepartment() {
+                    $scope.vm.search.departmentName = "";
                     $scope.fn.getDepartmentList(0);
                 }
 
@@ -73,7 +76,9 @@
                         .setHName("manageDepartment.departmentCount")
                         .setHWidth("width-120-p")
                         .setDAlign("text-center")
-                        .setDName("departmentCount"));
+                        .setDName("departmentCount")
+                        .setDType("renderer")
+                        .setDRenderer("DEPARTMENT_COUNT"));
                 }
 
                 //  遺��꽌 愿�由� 紐⑸줉 議고쉶
@@ -93,7 +98,7 @@
                     }
 
                     var conditions = {
-                        name : $scope.vm.search.departmentName //遺��꽌紐�
+                        departmentName : $scope.vm.search.departmentName //遺��꽌紐�
                     };
 
                     //�뀒�씠釉� 由ъ뒪�듃 �뜲�씠�꽣 而⑦듃濡ㅻ윭 �슂泥�
@@ -129,8 +134,8 @@
                     });
                 }
 
-                //  遺��꽌紐� �닔�젙
-                function modifyDepartment(id) {
+                //  遺��꽌 �닔�젙
+                function departmentModify(id) {
                     $uibModal.open({
                         templateUrl : 'views/workspace/workspaceDepartmentModify.html',
                         size : "md",
@@ -146,6 +151,83 @@
                     });
                 }
 
+                //  遺��꽌 �씤�썝 �닔�젙
+                function modifyDepartmentCount(id) {
+                    $uibModal.open({
+                        templateUrl : 'views/workspace/workspaceDepartmentCountModify.html',
+                        size : "md",
+                        controller : 'departmentCountModifyController',
+                        backdrop : 'static',
+                        resolve : {
+                            parameter : function () {
+                                return {
+                                    id : id
+                                };
+                            }
+                        }
+                    });
+                }
+
+                //  �궗�슜�옄 �젙�쓽 �븘�뱶 �궘�젣 �뙘�뾽
+                function removes() {
+                    var removeIds = [];
+
+                    angular.forEach($scope.vm.responseData.data, function (data) {
+                        if (data.checked) {
+                            removeIds.push(data.id);
+                        }
+                    });
+
+                    if (removeIds.length < 1) {
+                        SweetAlert.swal({
+                            title : $filter("translate")("common.checkPurgingTargets"), // �궘�젣 ���긽 �솗�씤
+                            text : $filter("translate")("common.selectDestinationDeletion"), // �궘�젣 ���긽�쓣 �꽑�깮�븯�꽭�슂.
+                            type : "warning"
+                        });
+                        return;
+                    }
+
+                    //  �궘�젣 �븣由�
+                    SweetAlert.swal({
+                            title : $filter("translate")("customField.deleteUserDefinedFields"), // "�궗�슜�옄 �젙�쓽 �븘�뱶 �궘�젣"
+                            text : $filter("translate")("customField.wantToDeleteSelectUserDefinedFields"), // "�꽑�깮�븳 �궗�슜�옄 �젙�쓽 �븘�뱶瑜� �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �궗�슜�옄 �젙�쓽 �븘�뱶�뒗 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎."
+                            type : "warning",
+                            showCancelButton : true,
+                            confirmButtonColor : "#DD6B55",
+                            confirmButtonText : $filter("translate")("common.delete"), // �궘�젣
+                            cancelButtonText : $filter("translate")("common.cancel"), // 痍⑥냼
+                            closeOnConfirm : false,
+                            closeOnCancel : true
+                        },
+                        function (isConfirm) {
+                            SweetAlert.close();
+
+                            if (isConfirm) {
+                                $rootScope.spinner = true;
+
+                                UserWorkspace.departmentRemove($resourceProvider.getContent(
+                                    { removeIds : removeIds },
+                                    $resourceProvider.getPageContent(0, 0))).then(function (result) {
+
+                                    if (result.data.message.status === "success") {
+                                        $timeout(function () {
+                                            SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // �궘�젣 �꽦怨�
+                                        }, 100);
+
+                                        $scope.fn.getDepartmentList(0);
+                                    }
+                                    else {
+                                        $timeout(function () {
+                                            SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // �궘�젣 �떎�뙣
+                                        }, 100);
+                                    }
+
+                                    $rootScope.spinner = false;
+                                });
+                            }
+                        });
+                }
+
                 $scope.fn.makeTableConfigs();
                 $scope.fn.getDepartmentList();
 
diff --git a/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js b/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js
index d7cf0ac..1c6cfd5 100644
--- a/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js
+++ b/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js
@@ -47,6 +47,7 @@
                 };
 
                 $scope.vm.levels = [];
+                $scope.vm.departments = [];
                 $scope.vm.tableConfigs = [];
                 $scope.vm.responseData = {
                     data : []
@@ -56,7 +57,7 @@
                 $scope.vm.tableEvent = {
                     modifyUserWorkspace : modifyUserWorkspace,   //  �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃�
                     modifyLevel : modifyLevel,   //  �궗�슜�옄 �벑湲됰챸 蹂�寃�
-                    //modifyDepartment : modifyDepartment //  遺��꽌 蹂�寃�
+                    departmentModify : departmentModify //  遺��꽌 蹂�寃�
                 };
 
                 //  �궗�슜�옄 �벑湲� �닔�젙
@@ -65,6 +66,24 @@
                         templateUrl : 'views/workspace/workspaceLevelModify.html',
                         size : "md",
                         controller : 'levelModifyController',
+                        backdrop : 'static',
+                        resolve : {
+                            parameter : function () {
+                                return {
+                                    id : id,
+                                    //levelName : [$scope.vm.form.]
+                                };
+                            }
+                        }
+                    });
+                }
+
+                //  遺��꽌 �닔�젙
+                function departmentModify(id) {
+                    $uibModal.open({
+                        templateUrl : 'views/workspace/workspaceDepartmentModify.html',
+                        size : "md",
+                        controller : 'departmentModifyController',
                         backdrop : 'static',
                         resolve : {
                             parameter : function () {
@@ -212,7 +231,9 @@
                             angular.forEach($scope.vm.responseData.data, function (data) {
                                 // data.levelId = $scope.vm.levels[idx].fieldKey;
                                 data.levels = [];
+                                data.departments = [];
                                 data.levels = $scope.vm.levels.slice();
+                                data.departments = $scope.vm.departments.slice();
                                 idx++;
                             });
                         }
@@ -251,12 +272,12 @@
                 // 遺��꽌 紐⑸줉
                 function getDepartments() {
                     var deferred = $q.defer();
+                    $scope.vm.departments = [];
 
                     UserWorkspace.departmentFind($resourceProvider.getContent({},
                         $resourceProvider.getPageContent(0, 1000))).then(function (result) {
 
                         if (result.data.message.status === "success") {
-                            $scope.vm.search.departments = result.data.data;
                             angular.forEach(result.data.data, function (department) {
                                 $scope.vm.departments.push({
                                     fieldKey : department.id,
diff --git a/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js b/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js
index 51b44f7..f3c8d06 100644
--- a/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js
+++ b/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js
@@ -39,6 +39,12 @@
                     return response;
                 });
             },
+            departmentDetail : function (conditions) {
+                return $http.post("departmentManage/detail", conditions).then(function (response) {
+                    $log.debug("遺��꽌 �긽�꽭 : ", response);
+                    return response;
+                });
+            },
             departmentAdd : function (conditions) {
                 return $http.post("departmentManage/add", conditions).then(function (response) {
                     $log.debug("遺��꽌 �깮�꽦 寃곌낵 : ", response);
diff --git a/src/main/webapp/scripts/main.js b/src/main/webapp/scripts/main.js
index 14b4945..f14513b 100644
--- a/src/main/webapp/scripts/main.js
+++ b/src/main/webapp/scripts/main.js
@@ -227,6 +227,7 @@
         'workspaceUserLevelController' : 'app/workspace/workspaceUserLevelConfig.controller',  //  �궗�슜�옄 愿�由� 而⑦듃濡ㅻ윭
         'workspaceLevelAddController' : 'app/workspace/workspaceLevelAdd.controller',  //  �궗�슜�옄 �벑湲� 異붽� 而⑦듃濡ㅻ윭
         'levelModifyController' : 'app/workspace/levelModify.controller',  //  �궗�슜�옄 �벑湲� �닔�젙 而⑦듃濡ㅻ윭
+        'departmentModifyController' : 'app/workspace/departmentModify.controller',  //  �궗�슜�옄 �벑湲� �닔�젙 而⑦듃濡ㅻ윭
         'workspaceDepartmentAddController' : 'app/workspace/workspaceDepartmentAdd.controller',  //  遺��꽌 異붽� 而⑦듃濡ㅻ윭
         'workspaceDepartmentConfigController' : 'app/workspace/workspaceDepartmentConfig.controller',  //  �궗�슜�옄 遺��꽌 愿�由� 而⑦듃濡ㅻ윭
         'workspaceService' : 'components/workspace/workspace.service',  //  �뾽臾� 怨듦컙�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎.
diff --git a/src/main/webapp/views/workspace/workspaceDepartmentAdd.html b/src/main/webapp/views/workspace/workspaceDepartmentAdd.html
index 3da038c..d7632e0 100644
--- a/src/main/webapp/views/workspace/workspaceDepartmentAdd.html
+++ b/src/main/webapp/views/workspace/workspaceDepartmentAdd.html
@@ -33,12 +33,10 @@
             <div class="form-group">
                 <label>
                     <span translate="common.departmentEx">遺��꽌 �꽕紐�</span>
-                    <code class="highlighter-rouge">*</code>
                 </label>
                 <summernote
                         class="summernote"
                         lang="ko-KR"
-                        required
                         config="vm.options"
                         ng-model="vm.form.description"
                         target=".note-editable"></summernote>
diff --git a/src/main/webapp/views/workspace/workspaceDepartmentConfig.html b/src/main/webapp/views/workspace/workspaceDepartmentConfig.html
index 15dd3d1..39c51bf 100644
--- a/src/main/webapp/views/workspace/workspaceDepartmentConfig.html
+++ b/src/main/webapp/views/workspace/workspaceDepartmentConfig.html
@@ -77,7 +77,7 @@
                         <div class="col-xl-2">
                             <div class="form-group">
                                 <label translate="common.departmentName">遺��꽌紐�</label>
-                                <input class="form-control" type="text" ng-model="vm.search.DepatmentName" maxlength="10">
+                                <input class="form-control" type="text" ng-model="vm.search.departmentName" maxlength="10">
                             </div>
                         </div>
 
diff --git a/src/main/webapp/views/workspace/workspaceDepartmentCountModify.html b/src/main/webapp/views/workspace/workspaceDepartmentCountModify.html
new file mode 100644
index 0000000..bf9f044
--- /dev/null
+++ b/src/main/webapp/views/workspace/workspaceDepartmentCountModify.html
@@ -0,0 +1,43 @@
+<div class="formModal">
+    <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="departmentCountModifyForm">
+            <div class="form-group">
+                <label><span translate="common.departmentUser">遺��꽌 ���썝</span> </label>
+                <js-autocomplete-multi data-input-name="users"
+                                       selected-model="vm.form.users"
+                                       search="vm.userName"
+                                       source="fn.getUserList(vm.userName, vm.form.users.concat(vm.form.managers))"
+                                       input-disabled="false"
+                                       translation-texts="{ count : 'common.userNum', empty : 'common.emptyUser' }"
+                                       extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : true, imagePathProp : 'profile', type : 'user', maxlength : 100, autoResize : true }"></js-autocomplete-multi>
+
+                <div class="select3-selection__choicediv mt-10">
+                    <span class="select3-selection__choice" ng-repeat="user in vm.form.users">
+                        <span class="avatar-w"><img ng-src="{{user.profile}}"></span>
+                        <span>{{user.name}}({{user.account}})</span>
+                        <span class="select3-selection__choice__remove" ng-click="fn.removeUsr($index)">횞</span>
+                    </span>
+                </div>
+            </div>
+        </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(departmentModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()"
+                ng-disabled="fn.formCheck(departmentModifyForm.$invalid)"
+                ng-click="fn.formSubmit()"><span translate="common.save">���옣</span>
+        </button>
+    </div>
+</div>
\ No newline at end of file
diff --git a/src/main/webapp/views/workspace/workspaceDepartmentModify.html b/src/main/webapp/views/workspace/workspaceDepartmentModify.html
index 94b1e47..8b28d33 100644
--- a/src/main/webapp/views/workspace/workspaceDepartmentModify.html
+++ b/src/main/webapp/views/workspace/workspaceDepartmentModify.html
@@ -33,14 +33,12 @@
             <div class="form-group">
                 <label>
                     <span translate="manageDepartment.departmentEx">遺��꽌 �꽕紐�</span>
-                    <code class="highlighter-rouge">*</code>
                 </label>
                 <summernote
                         class="summernote"
                         lang="ko-KR"
-                        required
                         config="vm.options"
-                        ng-model="vm.form.description"
+                        ng-model="vm.form.departmentDescription"
                         target=".note-editable"></summernote>
             </div>
         </form>
diff --git a/src/main/webapp/views/workspace/workspaceLevelModify.html b/src/main/webapp/views/workspace/workspaceLevelModify.html
index 87e3f3c..1621c77 100644
--- a/src/main/webapp/views/workspace/workspaceLevelModify.html
+++ b/src/main/webapp/views/workspace/workspaceLevelModify.html
@@ -13,11 +13,11 @@
             <table class="table table-lightborder">
                 <tr>
                     <td>
-                        <label for="levelModifyForm1"><span translate="managementWorkspace.levelName">�벑湲됰챸</span><code class="highlighter-rouge">*</code></label>
+                        <label for="levelModifyForm"><span translate="managementWorkspace.levelName">�벑湲됰챸</span><code class="highlighter-rouge">*</code></label>
                     </td>
                     <td>
                         <div class="input-group mb-0 mr-sm-0 mb-sm-0">
-                            <input id="levelModifyForm1"
+                            <input id="levelModifyForm"
                                    name="levelName"
                                    type="text"
                                    class="form-control"
diff --git a/src/main/webapp/views/workspace/workspaceUserConfig.html b/src/main/webapp/views/workspace/workspaceUserConfig.html
index 4fbc1dc..3fdeb0a 100644
--- a/src/main/webapp/views/workspace/workspaceUserConfig.html
+++ b/src/main/webapp/views/workspace/workspaceUserConfig.html
@@ -108,7 +108,7 @@
                                 <ng-dropdown-multiselect class="multiSelect cursor"
                                                          data-input-name="departments"
                                                          selected-model="vm.search.departments"
-                                                         options="::vm.departments"></ng-dropdown-multiselect>
+                                                         options="vm.departments"></ng-dropdown-multiselect>
                             </div>
                         </div>
 

--
Gitblit v1.8.0