From 12aa85287c8a8f911de3fd6424b74811d33aff9a Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 수, 10 11월 2021 14:27:23 +0900
Subject: [PATCH] 사용자의 부서 수정 기능 프론트 작업

---
 src/main/webapp/scripts/components/utils/autoComplete.controller.js           |   45 +++++++
 src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js       |   28 ++++
 src/main/webapp/views/workspace/workspaceDepartmentModify.html                |   55 +++-----
 src/main/webapp/views/workspace/departmentModify.html                         |   56 +++++++++
 src/main/webapp/i18n/ko/global.json                                           |    3 
 src/main/webapp/scripts/app/workspace/workspaceDepartmentModify.controller.js |  112 ++++++++++++++++++
 src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js  |   12 ++
 src/main/webapp/scripts/app/workspace/workspace.js                            |    2 
 src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js |    6 
 src/main/webapp/scripts/main.js                                               |    3 
 src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js     |   12 ++
 src/main/webapp/views/workspace/workspaceDepartmentConfig.html                |    4 
 12 files changed, 293 insertions(+), 45 deletions(-)

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 6385a66..0c53523 100644
--- a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
+++ b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
@@ -132,6 +132,18 @@
                                             makeTag += "</ul>";
                                             break;
 
+                                        case "USE_DEPARTMENT_LIST" :
+                                            makeTag += "<ul class='ul-not-comma'>";
+
+                                            makeTag += "<div style='cursor: pointer' ng-click='event.modifyUserDepartments(scope.data.id)'>";
+                                            angular.forEach(scope.data.departments, function (department) { //departmentVO濡� �닔�젙 泥댄겕 �븘�슂
+                                                makeTag += "<li>" + department.fieldValue + "</li>";
+                                            });
+                                            makeTag += "</div>";
+
+                                            makeTag += "</ul>";
+                                            break;
+
                                         case "CONFIG" :
                                             makeTag += '<a ng-click="event.modify(data.id)"><i class="fa fa-pencil fa-lg" uib-tooltip="�닔�젙"></i></a>';
                                             break;
diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json
index 700a52f..238522f 100644
--- a/src/main/webapp/i18n/ko/global.json
+++ b/src/main/webapp/i18n/ko/global.json
@@ -147,7 +147,8 @@
         "failedToSelectWorkspaceFullUserList": "�뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶 �떎�뙣",
         "failedToSelectWorkspaceFullLevelList": "�궗�슜�옄 �벑湲� 紐⑸줉 議고쉶 �떎�뙣",
         "failedToSelectWorkspaceFullDepartmentList": "遺��꽌 紐⑸줉 議고쉶 �떎�뙣",
-        "failedToModifyUserLevel": "�궗�슜�옄 �벑湲� �긽�꽭 �젙蹂� 議고쉶 �떎�뙣"
+        "failedToModifyUserLevel": "�궗�슜�옄 �벑湲� �긽�꽭 �젙蹂� 議고쉶 �떎�뙣",
+        "failedToDepartmentsOfUserDetails": "�궗�슜�옄�쓽 遺��꽌 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣"
     },
     "issue": {
         "issueType": "�씠�뒋 �쑀�삎",
diff --git a/src/main/webapp/scripts/app/workspace/workspace.js b/src/main/webapp/scripts/app/workspace/workspace.js
index c3049d3..34606d0 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","departmentModifyController"], function () {
+                                "crypto", "reservationDisableUserService", "workspacePaymentAddController", "workspaceUserLevelController", "workspaceDepartmentConfigController", "levelModifyController","departmentModifyController","workspaceDepartmentModifyController"], 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 669b824..49adc78 100644
--- a/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js
+++ b/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js
@@ -107,8 +107,10 @@
 
                         if (result.data.message.status === "success") {
                             $scope.vm.page.selectedPage = currentPage + 1;
+                            /*if(result.data.data[0].id == 1){
+                                result.data.data.shift();
+                            }*/
                             $scope.vm.responseData = result.data;
-
                         }
                         else {
                             SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullDepartmentList"), result.data.message.message); // 遺��꽌 紐⑸줉 議고쉶 �떎�뙣
@@ -137,7 +139,7 @@
                 //  遺��꽌 �닔�젙
                 function departmentModify(id) {
                     $uibModal.open({
-                        templateUrl : 'views/workspace/workspaceDepartmentModify.html',
+                        templateUrl : 'views/workspace/departmentModify.html',
                         size : "md",
                         controller : 'departmentModifyController',
                         backdrop : 'static',
diff --git a/src/main/webapp/scripts/app/workspace/workspaceDepartmentModify.controller.js b/src/main/webapp/scripts/app/workspace/workspaceDepartmentModify.controller.js
new file mode 100644
index 0000000..0185ac6
--- /dev/null
+++ b/src/main/webapp/scripts/app/workspace/workspaceDepartmentModify.controller.js
@@ -0,0 +1,112 @@
+/**
+ * Created by wisestone on 2018-05-08.
+ */
+'use strict';
+
+define([
+        'app',
+        'angular'
+    ],
+    function (app, angular) {
+        app.controller('workspaceDepartmentModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'UserWorkspace', 'parameter', 'SweetAlert', '$filter', '$injector', '$controller',
+            function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, UserWorkspace, parameter, SweetAlert, $filter, $injector, $controller) {
+
+                $scope.fn = {
+                    cancel : cancel,    //  �뙘�뾽 李� �떕湲�
+                    formSubmit : formSubmit,    //  �뤌 �쟾�넚
+                    formCheck : formCheck,  //  �뤌 泥댄겕
+                    detail : detail,    //  �긽�꽭 �젙蹂� 議고쉶
+                    removeDepartments : removeDepartments,  //  異붽��븳 遺��꽌 �젣嫄�
+                };
+
+                $scope.vm = {
+                    id : parameter.id,
+                    form : {
+                        id : parameter.id,
+                        /*users : [],*/
+                        departments : [] // 遺��꽌
+                    },
+                    departmentName : "", //遺��꽌紐� 寃��깋
+                    /*autoCompletePage : {
+                        project : {
+                            page : 0,
+                            totalPage : 0
+                        }
+                    },*/
+                };
+                angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector}));
+
+                //  �꽑�깮 �븳 遺��꽌 �젣嫄�
+                function removeDepartments(index) {
+                    $scope.vm.form.departments.splice(index, 1);
+                }
+
+                function formCheck(formInvalid) {
+                    if (formInvalid) {
+                        return true;
+                    }
+
+                    return false;
+                }
+
+                //  �뤌 �쟾�넚
+                function formSubmit() {
+                    $rootScope.spinner = true;
+
+                    var content = {
+                        id : $scope.vm.form.id,
+                        departmentName : (function () {
+                            var departmentIds = [];
+                            angular.forEach($scope.vm.form.departments, function (department) {
+                                departmentIds.push(department.id);
+                            });
+                            return departmentIds;
+                        })()
+                    };
+
+                    //user_department INSERT �슂泥�
+                    UserWorkspace.userDepartmentModify($resourceProvider.getContent(
+                        content,
+                        $resourceProvider.getPageContent(0, 0))).then(function (result) {
+
+                        if (result.data.message.status === "success") {
+                            $scope.fn.cancel();
+                            //  紐⑸줉 �솕硫� 媛깆떊
+                            $rootScope.$broadcast("getUserWorkspaceList", {});
+                        }
+                        else {
+                            SweetAlert.error($filter("translate")("managementWorkspace.failedDepartmentRegistration"), result.data.message.message);
+                        }
+
+                        $rootScope.spinner = false;
+                    });
+
+                }
+
+                //  �뙘�뾽 李� �떕湲�
+                function cancel() {
+                    $rootScope.$broadcast("closeLayer");    //  �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙
+                    $uibModalInstance.dismiss('cancel');
+                    $(document).unbind("keydown");  //  �떒異뺥궎 �씠踰ㅽ듃 �젣嫄�
+                }
+
+                function detail() {
+                    UserWorkspace.userDepartmentDetail($resourceProvider.getContent(
+                        $scope.vm.search,
+                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
+
+                        if (result.data.message.status === "success") {
+                            if (angular.isDefined(result.data.data)) {
+                                $scope.vm.form.departments = result.data.data.userDepartmentVos; //泥댄겕 �븘�슂
+                            }
+                        }
+                        else {
+                            SweetAlert.error($filter("translate")("managementWorkspace.failedToDepartmentsOfUserDetails"), result.data.message.message); //"�궗�슜�옄�쓽 遺��꽌 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣"
+                        }
+                    });
+                }
+
+                $scope.fn.detail();
+
+            }]);
+    });
diff --git a/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js b/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js
index 59353a3..6271c6a 100644
--- a/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js
+++ b/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js
@@ -9,8 +9,8 @@
     ],
     function (app, angular) {
         app.controller('workspaceUserConfigController', ['$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', '$injector', '$controller',
+            function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $q, $state, $tableProvider, Payment, Workspace, UserWorkspace, $filter, $injector, $controller) {
 
 
                 /*  $scope.fn �긽�냽 以�  */
@@ -55,7 +55,10 @@
                 //  �뀒�씠釉� �씠踰ㅽ듃
                 $scope.vm.tableEvent = {
                     modifyUserWorkspace : modifyUserWorkspace,   //  �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃�
+                    modifyUserDepartments : modifyUserDepartments //�궗�슜�옄 遺��꽌 蹂�寃�
                 };
+
+                angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector}));
 
                 //  �긽�꽭 �젙蹂�
                 $scope.$on("getUserWorkspaceList", function () {
@@ -99,8 +102,7 @@
                         .setHWidth("width-120-p")
                         .setDAlign("text-center")
                         .setDType("renderer")
-                        .setDName("department")
-                        .setDRenderer("DEPARTMENT_OPTION"));
+                        .setDRenderer("USE_DEPARTMENT_LIST"));
                     $scope.vm.tableConfigs.push($tableProvider.config()
                         .setHName("common.level")
                         .setHWidth("width-120-p")
@@ -267,6 +269,24 @@
                         }
                     });
                 }
+
+                //  �궗�슜�옄媛� �냽�빐�엳�뒗 遺��꽌 �닔�젙 �뙘�뾽
+                function modifyUserDepartments(id) {
+                    $uibModal.open({
+                        templateUrl : 'views/workspace/workspaceDepartmentModify.html',
+                        size : "xlg",
+                        controller : 'workspaceDepartmentModifyController',
+                        backdrop : 'static',
+                        windowClass : 'workflow-window',
+                        resolve : {
+                            parameter : function () {
+                                return {
+                                    id : id
+                                };
+                            }
+                        }
+                    });
+                }
             }
         ]);
     }
diff --git a/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js b/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js
index 4e876c0..d5e28c0 100644
--- a/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js
+++ b/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js
@@ -77,6 +77,18 @@
                     return response;
                 });
             },
+            userDepartmentModify : function (conditions) {
+                return $http.post("userWorkspace/modifyDepartment", conditions).then(function (response) {
+                    $log.debug("�궗�슜�옄�쓽 遺��꽌 �닔�젙 寃곌낵 : ", response);
+                    return response;
+                });
+            },
+            userDepartmentDetail : function (conditions) {
+                return $http.post("userWorkspace/detailDepartment", conditions).then(function (response) {
+                    $log.debug("�궗�슜�옄�쓽 遺��꽌 �긽�꽭蹂닿린 寃곌낵 : ", response);
+                    return response;
+                });
+            },
             modify : function (conditions) {
                 return $http.post("userWorkspace/modify", conditions).then(function (response) {
                     $log.debug("李몄뿬 �긽�깭 �닔�젙 寃곌낵 : ", response);
diff --git a/src/main/webapp/scripts/components/utils/autoComplete.controller.js b/src/main/webapp/scripts/components/utils/autoComplete.controller.js
index 4e36089..4bfe49f 100644
--- a/src/main/webapp/scripts/components/utils/autoComplete.controller.js
+++ b/src/main/webapp/scripts/components/utils/autoComplete.controller.js
@@ -18,6 +18,7 @@
                 var Project = $injector.get("Project");
                 var Workflow = $injector.get("Workflow");
                 var Issue = $injector.get("Issue");
+                var UserWorkspace = $injector.get("UserWorkspace");
                 var $log = $injector.get("$log");
                 var SweetAlert = $injector.get("SweetAlert");
 
@@ -26,6 +27,7 @@
                 $scope.fn.getProjectList = getProjectList;  //  �봽濡쒖젥�듃 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎.
                 $scope.fn.getIssueList = getIssueList;  //  �씪媛� 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎.
                 $scope.fn.getWorkflowList = getWorkflowList;    //  �썙�겕�뵆濡쒖슦 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎.
+                $scope.fn.getDepartmentList = getDepartmentList;    //  遺��꽌 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎.
 
                 function getUserList(query, excludeList, page, callBack) {
                     var conditions = {
@@ -109,6 +111,49 @@
                     return deferred.promise;
                 }
 
+                function getDepartmentList(query, excludeList, page, callBack) {
+                    var conditions = {
+                        departmentName : query,
+                        userId : (function () {
+                            var userId = "";
+
+                            if ($rootScope.isDefined($scope.vm.form)) {
+                                angular.forEach($scope.vm.form.users, function (user) {
+                                    userId = user.id;
+                                });
+                            }
+                            return userId;
+                        })(),
+                        excludeIds : (function () { //�뼱�뼡 �뿭�븷?
+                            var excludeIds = [];
+
+                            angular.forEach(excludeList, function (exclude) {
+                                excludeIds.push(exclude.id);
+                            });
+
+                            return excludeIds;
+                        })()
+                    };
+                    var deferred = $q.defer();
+
+                    UserWorkspace.find($resourceProvider.getContent(         //  �럹�씠吏� �뾽�뜲�씠�듃媛� �븘�슂�븳 而댄룷�꼳�듃 �씪寃쎌슦, page �뾽�뜲�씠�듃媛� �엳�쓣 寃쎌슦 湲곕낯 10媛쒖뵫 媛��졇�삤怨� �븘�땺寃쎌슦 25媛쒖뵫 媛��졇�삩�떎.
+                        conditions, $resourceProvider.getPageContent($rootScope.isDefined(page) ? page : 0, $rootScope.isDefined(page) ? 10 : 25))).then(function (result) {
+                        if (result.data.message.status === "success") {
+
+                            if ($rootScope.isDefined(callBack)) {
+                                callBack(result);
+                            }
+
+                            deferred.resolve(result.data.data);
+                        }
+                        else {
+                            SweetAlert.swal($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullDepartmentList"), result.data.message.message, "error"); // "遺��꽌 紐⑸줉 議고쉶 �떎�뙣"
+                        }
+                    });
+
+                    return deferred.promise;
+                }
+
                 function getWorkflowList(query, excludeList, page, callBack) {
                     var conditions = {
                         name : query,
diff --git a/src/main/webapp/scripts/main.js b/src/main/webapp/scripts/main.js
index 2a3fc14..9c4f188 100644
--- a/src/main/webapp/scripts/main.js
+++ b/src/main/webapp/scripts/main.js
@@ -227,11 +227,12 @@
         'workspaceUserLevelController' : 'app/workspace/workspaceUserLevelConfig.controller',  //  �궗�슜�옄 愿�由� 而⑦듃濡ㅻ윭
         'workspaceLevelAddController' : 'app/workspace/workspaceLevelAdd.controller',  //  �궗�슜�옄 �벑湲� 異붽� 而⑦듃濡ㅻ윭
         'levelModifyController' : 'app/workspace/levelModify.controller',  //  �궗�슜�옄 �벑湲� �닔�젙 而⑦듃濡ㅻ윭
-        'departmentModifyController' : 'app/workspace/departmentModify.controller',  //  �궗�슜�옄 �벑湲� �닔�젙 而⑦듃濡ㅻ윭
+        'departmentModifyController' : 'app/workspace/departmentModify.controller',  //  遺��꽌 �닔�젙 而⑦듃濡ㅻ윭
         'workspaceDepartmentAddController' : 'app/workspace/workspaceDepartmentAdd.controller',  //  遺��꽌 異붽� 而⑦듃濡ㅻ윭
         'workspaceDepartmentConfigController' : 'app/workspace/workspaceDepartmentConfig.controller',  //  �궗�슜�옄 遺��꽌 愿�由� 而⑦듃濡ㅻ윭
         'workspaceService' : 'components/workspace/workspace.service',  //  �뾽臾� 怨듦컙�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎.
         'paymentService' : 'components/payment/payment.service',    //  寃곗옱�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎.
+        'workspaceDepartmentModifyController' : 'app/workspace/workspaceDepartmentModify.controller',  //  �궗�슜�옄 遺��꽌 �닔�젙 而⑦듃濡ㅻ윭
 
         /*  �궗�슜�옄 */
         'userRoute' : 'app/user/user',  //  �궗�슜�옄�뿉 愿��젴�맂 route �젙蹂�
diff --git a/src/main/webapp/views/workspace/departmentModify.html b/src/main/webapp/views/workspace/departmentModify.html
new file mode 100644
index 0000000..8b28d33
--- /dev/null
+++ b/src/main/webapp/views/workspace/departmentModify.html
@@ -0,0 +1,56 @@
+<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="departmentModifyForm">
+            <div class="form-group">
+                <label for="departmentModifyForm1">
+                    <span translate="common.departmentName">遺��꽌紐�</span>
+                    <code class="highlighter-rouge">*</code>
+                </label>
+                <input id="departmentModifyForm1"
+                       name="name"
+                       type="text"
+                       class="form-control"
+                       autofocus
+                       kr-input
+                       input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]"
+                       autocomplete="off"
+                       ng-model="vm.form.departmentName"
+                       ng-maxlength="200"
+                       maxlength="200"
+                       required>
+                <!--<small translate="notice.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small>-->
+            </div>
+
+            <div class="form-group">
+                <label>
+                    <span translate="manageDepartment.departmentEx">遺��꽌 �꽕紐�</span>
+                </label>
+                <summernote
+                        class="summernote"
+                        lang="ko-KR"
+                        config="vm.options"
+                        ng-model="vm.form.departmentDescription"
+                        target=".note-editable"></summernote>
+            </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/workspaceDepartmentConfig.html b/src/main/webapp/views/workspace/workspaceDepartmentConfig.html
index 96037b7..b7cf4a6 100644
--- a/src/main/webapp/views/workspace/workspaceDepartmentConfig.html
+++ b/src/main/webapp/views/workspace/workspaceDepartmentConfig.html
@@ -45,13 +45,13 @@
                         </div>
                     </div>
                     <div class="col-sm-6 text-right" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_WORKSPACE')">
-                        <form class="form-inline justify-content-sm-end pull-right ng-pristine ng-valid" method="post" action="/departmentManage/downloadExcel" name="departmentManageListForm">
+                        <form class="form-inline justify-content-sm-end pull-right ng-pristine ng-valid" method="post" action="/department/downloadExcel" name="departmentListForm">
                             <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="departmentManageListForm" make-search-conditions="fn.makeSearchConditions()"><span translate="common.downloadExcel" class="ng-scope">�뿊�� �떎�슫濡쒕뱶</span></a>
+                                    <a class="dropdown-item cursor ng-isolate-scope" form-submit="departmentListForm" 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>
diff --git a/src/main/webapp/views/workspace/workspaceDepartmentModify.html b/src/main/webapp/views/workspace/workspaceDepartmentModify.html
index 8b28d33..8312784 100644
--- a/src/main/webapp/views/workspace/workspaceDepartmentModify.html
+++ b/src/main/webapp/views/workspace/workspaceDepartmentModify.html
@@ -1,7 +1,7 @@
-<div class="formModal">
+<div class="formModal" xmlns:cursor="http://www.w3.org/1999/xhtml">
     <div class="modal-header faded smaller">
         <div class="modal-title">
-            <strong>遺��꽌紐� �닔�젙</strong>
+            <strong>遺��꽌 �닔�젙</strong>
         </div>
         <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()">
             <span aria-hidden="true"> &times;</span>
@@ -9,37 +9,24 @@
     </div>
 
     <div class="modal-body">
-        <form role="form" name="departmentModifyForm">
+        <form role="form" name="departmentsModifyForm">
             <div class="form-group">
-                <label for="departmentModifyForm1">
-                    <span translate="common.departmentName">遺��꽌紐�</span>
-                    <code class="highlighter-rouge">*</code>
-                </label>
-                <input id="departmentModifyForm1"
-                       name="name"
-                       type="text"
-                       class="form-control"
-                       autofocus
-                       kr-input
-                       input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]"
-                       autocomplete="off"
-                       ng-model="vm.form.departmentName"
-                       ng-maxlength="200"
-                       maxlength="200"
-                       required>
-                <!--<small translate="notice.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small>-->
-            </div>
+                <label><span translate="common.departmentName">遺��꽌紐�</span> </label>
+                <js-autocomplete-multi data-input-name="departments"
+                                       selected-model="vm.form.departments"
+                                       search="vm.departmentName"
+                                       source="fn.getDepartments(vm.departmentName, vm.form.departments)"
+                                       input-disabled="false"> <!--concat 泥댄겕 �븘�슂-->
+                                       <!--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="form-group">
-                <label>
-                    <span translate="manageDepartment.departmentEx">遺��꽌 �꽕紐�</span>
-                </label>
-                <summernote
-                        class="summernote"
-                        lang="ko-KR"
-                        config="vm.options"
-                        ng-model="vm.form.departmentDescription"
-                        target=".note-editable"></summernote>
+                <div class="select3-selection__choicediv mt-10">
+                    <span class="select3-selection__choice" ng-repeat="department in vm.form.departments">
+                        <span>{{department.name}}</span> <!--遺��꽌 �씠由� 異쒕젰-->
+                        <span class="select3-selection__choice__remove" ng-click="fn.removeDepartments($index)">횞</span>
+                    </span>
+                </div>
             </div>
         </form>
     </div>
@@ -48,9 +35,9 @@
         <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)"
+                js-short-cut-action="(fn.formCheck(departmentsModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()"
+                ng-disabled="fn.formCheck(departmentsModifyForm.$invalid)"
                 ng-click="fn.formSubmit()"><span translate="common.save">���옣</span>
         </button>
     </div>
-</div>
\ No newline at end of file
+</div>

--
Gitblit v1.8.0