From 58c96fb54e3e6bbf0c0df27e39eaff814f52e9d4 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 월, 01 11월 2021 13:54:42 +0900
Subject: [PATCH] 사용자등급관리, 부서관리 프론트 수정

---
 src/main/webapp/scripts/app/workspace/workspaceDepartmentAdd.controller.js    |  123 +++++++
 src/main/webapp/views/workspace/workspaceUserLevelConfig.html                 |    2 
 src/main/webapp/scripts/components/workspace/workspace.service.js             |   36 ++
 src/main/webapp/views/workspace/workspaceDepartmentAdd.html                   |   58 +++
 src/main/java/kr/wisestone/owl/web/controller/WorkspaceController.java        |   24 +
 src/main/webapp/scripts/app/workspace/workspace.js                            |    4 
 src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js  |  156 ++++-----
 src/main/webapp/views/workspace/workspaceDepartmentConfig.html                |   32 -
 src/main/webapp/scripts/app/workspace/workspaceLevelAdd.controller.js         |  150 ++------
 src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js       |    9 
 src/main/webapp/views/workspace/workspaceLevelAdd.html                        |   72 +---
 src/main/webapp/views/workspace/workspaceUserConfig.html                      |    6 
 src/main/webapp/scripts/app/workspace/workspace.controller.js                 |   69 ++++
 src/main/webapp/i18n/ko/global.json                                           |   28 +
 src/main/webapp/views/workspace/workspace.html                                |   10 
 src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js |  126 ++-----
 src/main/webapp/scripts/main.js                                               |    1 
 17 files changed, 537 insertions(+), 369 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/web/controller/WorkspaceController.java b/src/main/java/kr/wisestone/owl/web/controller/WorkspaceController.java
index 3175651..7e01f08 100644
--- a/src/main/java/kr/wisestone/owl/web/controller/WorkspaceController.java
+++ b/src/main/java/kr/wisestone/owl/web/controller/WorkspaceController.java
@@ -25,7 +25,29 @@
     @Autowired
     private WorkspaceService workspaceService;
 
-    //  �뾽臾닿났媛� 議고쉶
+    //  �궗�슜�옄 �벑湲� 議고쉶
+    @RequestMapping(value = "/workspace/levelFind", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+    public
+    @ResponseBody
+    Map<String, Object> levelFind() {
+        Map<String, Object> resJsonData = new HashMap<>();
+        this.workspaceService.find(resJsonData);
+        //this.workspaceService.levelFind(resJsonData);
+        return this.setSuccessMessage(resJsonData);
+    }
+
+    //  遺��꽌 議고쉶
+    @RequestMapping(value = "/workspace/departmentFind", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+    public
+    @ResponseBody
+    Map<String, Object> departmentFind() {
+        Map<String, Object> resJsonData = new HashMap<>();
+        this.workspaceService.find(resJsonData);
+        //this.workspaceService.departmentFind(resJsonData);
+        return this.setSuccessMessage(resJsonData);
+    }
+
+    //  �궗�슜�옄 愿�由� 議고쉶
     @RequestMapping(value = "/workspace/find", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
     public
     @ResponseBody
diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json
index 86dbb3b..0eafed8 100644
--- a/src/main/webapp/i18n/ko/global.json
+++ b/src/main/webapp/i18n/ko/global.json
@@ -65,9 +65,11 @@
         "workspaceUserLevelManagement" : "�궗�슜�옄 �벑湲� 愿�由�",
         "addLevel" : "�벑湲� 異붽�",
         "levelName" : "�벑湲됰챸",
+        "failedLevelRegistration" : "�궗�슜�옄 �벑湲� �벑濡� �떎�뙣",
         "read" : "�씫湲�",
         "write" : "�벐湲�",
         "departmentManagement" : "遺��꽌 愿�由�",
+        "addDepartment" : "遺��꽌 異붽�",
         "myWorkspace": "OWL �젙蹂�",
         "workspaceInformation": "湲곕낯 �젙蹂�",
         "serviceStatus": "�꽌鍮꾩뒪 �긽�깭",
@@ -495,13 +497,19 @@
     "manageUser": {
         "manageUser": "�궗�슜�옄 沅뚰븳 愿�由�",
         "manageProjectPerm": "�봽濡쒖젥�듃 愿�由�",
-        "manageIssueSystemPerm": "�씠�뒋 �떆�뒪�뀥",
-        "manageUserPerm": "�궗�슜�옄",
-        "manageNoticePerm": "怨듭��궗�빆",
-        "manageFAQPerm": "FAQ",
-        "manageQnAPerm": "QnA",
-        "manageEventPerm": "�씠踰ㅽ듃",
-        "manageGuidePerm": "媛��씠�뱶"
+        "manageIssueSystemPerm": "�씠�뒋 �떆�뒪�뀥 愿�由�",
+        "manageUserPerm": "�궗�슜�옄 愿�由�",
+        "manageNoticePerm": "怨듭��궗�빆 愿�由�",
+        "manageFAQPerm": "FAQ 愿�由�",
+        "manageQnAPerm": "QnA 愿�由�",
+        "manageEventPerm": "�씠踰ㅽ듃 愿�由�",
+        "manageGuidePerm": "媛��씠�뱶 愿�由�"
+    },
+    "manageDepartment": {
+        "manageDepartment": "遺��꽌 愿�由�",
+        "departmentName": "遺��꽌紐�",
+        "departmentEx": "遺��꽌�꽕紐�",
+        "departmentCount": "遺��꽌�씤�썝"
     },
     "FAQ": {
         "FAQ": "FAQ",
@@ -736,7 +744,11 @@
         "emptyProject": "�꽑�깮�븷 �닔 �엳�뒗 �봽濡쒖젥�듃媛� �뾾�뒿�땲�떎.",
         "emptyIssue": "�꽑�깮�븷 �닔 �엳�뒗 �씠�뒋媛� �뾾�뒿�땲�떎.",
         "department" : "遺��꽌",
-        "level" : "�궗�슜�옄 �벑湲�"
+        "level" : "�궗�슜�옄 �벑湲�",
+        "manageDepartment": "遺��꽌 愿�由�",
+        "departmentName": "遺��꽌紐�",
+        "departmentEx": "遺��꽌�꽕紐�",
+        "departmentCount": "遺��꽌�씤�썝"
     },
     "tasks": {
         "agileBoardTitle": "移몃컲 蹂대뱶"
diff --git a/src/main/webapp/scripts/app/workspace/workspace.controller.js b/src/main/webapp/scripts/app/workspace/workspace.controller.js
index 8a778de..d84c974 100644
--- a/src/main/webapp/scripts/app/workspace/workspace.controller.js
+++ b/src/main/webapp/scripts/app/workspace/workspace.controller.js
@@ -12,7 +12,9 @@
 
                 $scope.fn = {
                     changeTab : changeTab,  //  �꺆 蹂�寃�
-                    findMyWorkspace : findMyWorkspace   //  �궡媛� 愿�由ы븯�뒗 �뾽臾� 怨듦컙 �젙蹂�
+                    findMyWorkspace : findMyWorkspace,   //  �궡媛� 愿�由ы븯�뒗 �뾽臾� 怨듦컙 �젙蹂�
+                    findUserLevel   : findUserLevel,    // �궗�슜�옄 �벑湲�
+                    findDepartment  : findDepartment    // 遺��꽌
                 };
 
                 $scope.vm = {
@@ -25,6 +27,16 @@
                     $scope.fn.findMyWorkspace();
                 });
 
+                //  �궗�슜�옄 �벑湲� �젙蹂� 媛깆떊
+                $scope.$on("findUserLevel", function () {
+                    $scope.fn.findUserLevel();
+                });
+
+                //  遺��꽌 �젙蹂� 媛깆떊
+                $scope.$on("findDepartment", function () {
+                    $scope.fn.findDepartment();
+                });
+
                 //  �꺆 蹂�寃�
                 function changeTab(tab) {
                     $scope.vm.tab = tab;
@@ -32,6 +44,14 @@
                     if (tab === "USER_CONFIG") {
                         $scope.fn.findMyWorkspace();
                         $scope.$broadcast("getUserWorkspaceList");
+                    }else if (tab === "USER_LEVEL_CONFIG") {
+                        //$scope.fn.findMyWorkspace();
+                        $scope.fn.findUserLevel();
+                        $scope.$broadcast("getUserLevelList");
+                    }else if (tab === "DEPARTMENT_CONFIG") {
+                        //$scope.fn.findMyWorkspace();
+                        $scope.fn.findDepartment();
+                        $scope.$broadcast("getDepartmentList");
                     }
                 }
 
@@ -56,8 +76,53 @@
                         }
                     });
                 }
-
                 $scope.fn.findMyWorkspace();
+
+                //  �궗�슜�옄 �벑湲됱쓣 議고쉶�븳�떎.
+                function findUserLevel() {
+                    Workspace.findUserLevel($resourceProvider.getContent(
+                        {},
+                        $resourceProvider.getPageContent(0, 0))).then(function (result) {
+                        if (result.data.message.status === "success") {
+                            if (result.data.data != null) {
+                                /*$scope.vm.workspaceVo = result.data.data;
+                                //  李몄뿬 媛��뒫 �궗�슜�옄 �닔
+                                $scope.vm.workspaceVo.includeUserCount = $scope.vm.workspaceVo.maxUser - $scope.vm.workspaceVo.activeUser;*/
+
+                                /*if ($scope.vm.workspaceVo.includeUserCount < 0) {
+                                    $scope.vm.workspaceVo.includeUserCount = 0;
+                                }*/
+                            }
+                        }
+                        else {
+                            SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceInformation"), result.data.message.message); // "�옄�떊�씠 愿�由ы븯�뒗 �뾽臾� 怨듦컙 �젙蹂� 議고쉶 �떎�뙣"
+                        }
+                    });
+                }
+                $scope.fn.findUserLevel();
+
+                //  遺��꽌瑜� 議고쉶�븳�떎.
+                function findDepartment() {
+                    Workspace.findDepartment($resourceProvider.getContent(
+                        {},
+                        $resourceProvider.getPageContent(0, 0))).then(function (result) {
+                        if (result.data.message.status === "success") {
+                            if (result.data.data != null) {
+                                /*$scope.vm.workspaceVo = result.data.data;
+                                //  李몄뿬 媛��뒫 �궗�슜�옄 �닔
+                                $scope.vm.workspaceVo.includeUserCount = $scope.vm.workspaceVo.maxUser - $scope.vm.workspaceVo.activeUser;*/
+
+                                /*if ($scope.vm.workspaceVo.includeUserCount < 0) {
+                                    $scope.vm.workspaceVo.includeUserCount = 0;
+                                }*/
+                            }
+                        }
+                        else {
+                            SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceInformation"), result.data.message.message); // "�옄�떊�씠 愿�由ы븯�뒗 �뾽臾� 怨듦컙 �젙蹂� 議고쉶 �떎�뙣"
+                        }
+                    });
+                }
+                $scope.fn.findDepartment();
             }
         ]);
     }
diff --git a/src/main/webapp/scripts/app/workspace/workspace.js b/src/main/webapp/scripts/app/workspace/workspace.js
index 5181748..2362b7b 100644
--- a/src/main/webapp/scripts/app/workspace/workspace.js
+++ b/src/main/webapp/scripts/app/workspace/workspace.js
@@ -32,8 +32,8 @@
                     resolve : {
                         loadController : ["$q", function ($q) {
                             var deferred = $q.defer();
-                            require(["modalFormAutoScroll", "workspaceController", "workspaceLevelAddController", "workspacePaymentExecuteController", "workspaceUserConfigController", "workspacePaymentModifyController",
-                                "workspacePaymentAgreeTermController", "paymentService", "userWorkspaceService", "workspaceService", "numberOnly", 'jsTable', 'tableColumnGenerator',
+                            require(["modalFormAutoScroll", "workspaceController", "workspaceLevelAddController", "workspaceDepartmentAddController", "workspacePaymentExecuteController", "workspaceUserConfigController", "workspacePaymentModifyController",
+                                "workspacePaymentAgreeTermController", "paymentService", "userWorkspaceService", "workspaceService", "numberOnly", 'jsTable', 'tableColumnGenerator', 'summerNote', 'summerNote-ko-KR',
                                 "crypto", "reservationDisableUserService", "workspacePaymentAddController", "workspaceUserLevelController", "workspaceDepartmentConfigController"], function () {
                                 deferred.resolve();
                             });
diff --git a/src/main/webapp/scripts/app/workspace/workspaceDepartmentAdd.controller.js b/src/main/webapp/scripts/app/workspace/workspaceDepartmentAdd.controller.js
new file mode 100644
index 0000000..263a33c
--- /dev/null
+++ b/src/main/webapp/scripts/app/workspace/workspaceDepartmentAdd.controller.js
@@ -0,0 +1,123 @@
+/**
+ * Created by wisestone on 2018-02-19.
+ */
+'use strict';
+
+define([
+        'app'
+    ],
+    function (app) {
+        app.controller('workspaceDepartmentAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$uibModalInstance', '$state', 'Workspace', '$filter', 'parameter', '$timeout',
+            function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $uibModalInstance, Workspace, $filter, parameter) {
+
+                $scope.fn = {
+                    cancel : cancel,    //  �뙘�뾽 李� �떕湲�
+                    formSubmit : formSubmit,    //  �뤌 �쟾�넚
+                    formCheck : formCheck,   //  �뤌 泥댄겕
+                };
+
+                $scope.vm = {
+                    form : {
+                        title : "",
+                        description : ""
+                    },
+                    options : {
+                        callbacks : {
+                            onImageUpload : function (data) {
+                                data.pop();
+                            }
+                        },
+                        disableDragAndDrop : true,
+                        shortcuts : true,
+                        toolbar : [
+                            ['headline', ['style']],
+                            ['style', ['bold', 'italic', 'underline', 'clear', 'strikethrough', 'superscript', 'subscript']],
+                            ['fontface', ['fontname', 'fontsize']],
+                            ['insert', ['link', 'video']],
+                            ['fontclr', ['color']],
+                            ['alignment', ['ul', 'ol', 'paragraph', 'lineheight', 'height']],
+                            ['table', ['table']],
+                            ['view', ['redo', 'undo']]
+                        ],
+                        keyMap : {
+                            pc : {
+                                'ENTER' : 'insertParagraph',
+                                'CTRL+Z' : 'undo',
+                                'CTRL+Y' : 'redo',
+                                /*'TAB': 'tab',*/
+                                'SHIFT+TAB' : 'untab',
+                                'CTRL+B' : 'bold',
+                                'CTRL+I' : 'italic',
+                                'CTRL+U' : 'underline',
+                                'CTRL+SHIFT+S' : 'strikethrough',
+                                'CTRL+BACKSLASH' : 'removeFormat',
+                                'CTRL+SHIFT+L' : 'justifyLeft',
+                                'CTRL+SHIFT+E' : 'justifyCenter',
+                                'CTRL+SHIFT+R' : 'justifyRight',
+                                'CTRL+SHIFT+J' : 'justifyFull',
+                                'CTRL+SHIFT+NUM7' : 'insertUnorderedList',
+                                'CTRL+SHIFT+NUM8' : 'insertOrderedList',
+                                'CTRL+LEFTBRACKET' : 'outdent',
+                                'CTRL+RIGHTBRACKET' : 'indent',
+                                'CTRL+NUM0' : 'formatPara',
+                                'CTRL+NUM1' : 'formatH1',
+                                'CTRL+NUM2' : 'formatH2',
+                                'CTRL+NUM3' : 'formatH3',
+                                'CTRL+NUM4' : 'formatH4',
+                                'CTRL+NUM5' : 'formatH5',
+                                'CTRL+NUM6' : 'formatH6',
+                                'CTRL+ENTER' : 'insertHorizontalRule',
+                                'CTRL+K' : 'linkDialog.show'
+                            }
+                        }
+                    }
+                };
+
+                //  �뤌 泥댄겕
+                function formCheck(formInvalid) {
+                    if (formInvalid) {
+                        return true;
+                    }
+
+                    return false;
+                }
+
+                //  �뤌 �쟾�넚
+                function formSubmit() {
+                    $rootScope.spinner = true;
+
+                    var content = {
+                        title : $rootScope.preventXss($scope.vm.form.title),
+                        description : $rootScope.preventXss($scope.vm.form.description)
+                    };
+
+                    Workspace.departmentAdd($resourceProvider.getContent(
+                        content,
+                        $resourceProvider.getPageContent(0, 10))).then(function (result) {
+
+                        if (result.data.message.status === "success") {
+                            $scope.fn.cancel();
+                            //  紐⑸줉 �솕硫� 媛깆떊
+                            $rootScope.$broadcast("getDepartmentList", {});
+                        }
+                        else {
+                            SweetAlert.error($filter("translate")("managementWorkspace.failedLevelRegistration"), result.data.message.message);
+                        }
+
+                        $rootScope.spinner = false;
+                    });
+
+                }
+
+                //  �뙘�뾽 李� �떕湲�
+                function cancel() {
+                    $rootScope.$broadcast("closeLayer");    //  �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙
+                    $uibModalInstance.dismiss('cancel');
+                    $(document).unbind("keydown");  //  �떒異뺥궎 �씠踰ㅽ듃 �젣嫄�
+                }
+
+            }
+
+        ]);
+    }
+);
\ No newline at end of file
diff --git a/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js b/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js
index a03d0c9..1274e8e 100644
--- a/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js
+++ b/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js
@@ -14,28 +14,14 @@
 
 
                 /*  $scope.fn �긽�냽 以�  */
-                $scope.fn.getUserWorkspaceList = getUserWorkspaceList;  //  �뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 �젙蹂�
-                $scope.fn.makeTableConfigs = makeTableConfigs;  //  �뾽臾� 怨듦컙�뿉 李몄뿬�븯�뒗 �쟾泥� �궗�슜�옄 紐⑸줉 �뀒�씠釉� �꽕�젙
+                $scope.fn.getDepartmentList = getDepartmentList;  //  遺��꽌 愿�由� 由ъ뒪�듃
+                $scope.fn.makeTableConfigs = makeTableConfigs;  //  遺��꽌 愿�由� 紐⑸줉 �뀒�씠釉� �꽕�젙
                 $scope.fn.initSearch = initSearch;  //  寃��깋 議곌굔 珥덇린�솕
-                $scope.fn.changePageRowCount = changePageRowCount;  //  �뾽臾� 怨듦컙 李몄뿬 �궗�슜�옄 紐⑸줉 蹂닿린 媛쒖닔 蹂�寃�
-
+                $scope.fn.departmentAdd = departmentAdd;    //  遺��꽌 異붽�
 
                 /*  $scope.vm �긽�냽 以�  */
                 $scope.vm.search = {
-                    name : "",  //  �씠由�
-                    account : "",   //  �씠硫붿씪
-                    statuses : []   //  �긽�깭 - Y, N
-                };
-
-                $scope.vm.options = {
-                    statuses : [{
-                        fieldKey : "Y",
-                        fieldValue : $filter("translate")("managementWorkspace.participation") // "李몄뿬"
-                    }, {
-                        fieldKey : "N",
-                        //fieldValue : $filter("translate")("managementWorkspace.waitForParticipation") // "李몄뿬��湲�"
-                        fieldValue : $filter("translate")("managementWorkspace.withdrawal") // "�깉�눜"
-                    }]
+                    departmentName : "",  //  遺��꽌紐�
                 };
 
                 $scope.vm.page = {
@@ -50,78 +36,47 @@
 
                 //  �뀒�씠釉� �씠踰ㅽ듃
                 $scope.vm.tableEvent = {
-                    modifyUserWorkspace : modifyUserWorkspace   //  �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃�
+                    // modifyUserWorkspace : modifyUserWorkspace   //  �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃�
+                    view : view
                 };
 
-                //  寃곗젣 �긽�꽭 �젙蹂�
-                $scope.$on("getUserWorkspaceList", function () {
-                    $scope.fn.getUserWorkspaceList(0);
+                //  遺��꽌 愿�由� 由ъ뒪�듃 遺덈윭�삤湲�
+                $scope.$on("getDepartmentList", function () {
+                    $scope.fn.getDepartmentList(0);
                 });
-
-                //  �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃�
-                function modifyUserWorkspace(userWorkspace) {
-                    UserWorkspace.modify($resourceProvider.getContent(
-                        userWorkspace,
-                        $resourceProvider.getPageContent(0, 0))).then(function (result) {
-                        if (result.data.message.status === "success") {
-                            //  �궡媛� 愿�由ы븯�뒗 �뾽臾� 怨듦컙 �젙蹂대�� 議고쉶�븳�떎.
-                            $scope.fn.findMyWorkspace();
-                        }
-                        else {
-                            userWorkspace.useYn = false;
-                            SweetAlert.error($filter("translate")("managementWorkspace.failedToParticipationStatusChange"), result.data.message.message); // "李몄뿬 �긽�깭 蹂�寃� �떎�뙣"
-                        }
-                    });
-                }
 
                 //  寃��깋 議곌굔 珥덇린�솕
                 function initSearch() {
-                    $scope.vm.search.name = "";
-                    $scope.vm.search.account = "";
-                    $scope.vm.search.statuses = [];
                     $scope.fn.getUserWorkspaceList(0);
                 }
 
-                //  �뾽臾� 怨듦컙 李몄뿬 �궗�슜�옄 紐⑸줉 蹂닿린 媛쒖닔 蹂�寃�
-                function changePageRowCount() {
-                    $scope.fn.getUserWorkspaceList(0);
-                }
-
-                //  �뾽臾닿났媛� �쟾泥� �궗�슜�옄 紐⑸줉 �뀒�씠釉� �꽕�젙
+                //  遺��꽌 愿�由� �뀒�씠釉� �꽕�젙
                 function makeTableConfigs() {
                     $scope.vm.tableConfigs = [];
 
                     $scope.vm.tableConfigs.push($tableProvider.config()
-                        .setHName("common.name")
+                        .setDType("checkbox")
+                        .setHWidth("width-20-p")
+                        .setDAlign("text-center"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("manageDepartment.departmentName")
                         .setHWidth("width-120-p")
                         .setDAlign("text-center")
-                        .setDName("userName"));
+                        .setDName("levelName"));
                     $scope.vm.tableConfigs.push($tableProvider.config()
-                        .setHName("common.email")
+                        .setHName("manageDepartment.departmentEx")
                         .setHWidth("width-120-p")
                         .setDAlign("text-center")
-                        .setDName("account"));
+                        .setDName("manageProject"));
                     $scope.vm.tableConfigs.push($tableProvider.config()
-                        .setHName("common.department")
+                        .setHName("manageDepartment.departmentCount")
                         .setHWidth("width-120-p")
                         .setDAlign("text-center")
-                        .setDName("department"));
-                    $scope.vm.tableConfigs.push($tableProvider.config()
-                        .setHName("common.level")
-                        .setHWidth("width-120-p")
-                        .setDAlign("text-center")
-                        .setDName("level"));
-                    $scope.vm.tableConfigs.push($tableProvider.config()
-                        .setHName("managementWorkspace.joinStatus")
-                        .setHWidth("width-140-p")
-                         .setDType("renderer")
-                        .setDAlign("text-center pdr0 pdt0 pdl0 pdb0")
-                        .setDName("userYn")
-                        .setDRenderer("WORKSPACE_USE_YN"));
+                        .setDName("IssueSystem"));
                 }
 
-                //  �뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶
-                function getUserWorkspaceList(selectedPage) {
+                //  遺��꽌 愿�由� 紐⑸줉 議고쉶
+                function getDepartmentList(selectedPage) {
                     if (selectedPage < 0) {
                         selectedPage = 0;
                     }
@@ -137,20 +92,12 @@
                     }
 
                     var conditions = {
-                        name : $scope.vm.search.name,
-                        account : $scope.vm.search.account,
-                        statuses : (function () {
-                            var statuses = [];
-
-                            angular.forEach($scope.vm.search.statuses, function (status) {
-                                statuses.push(status.fieldKey);
-                            });
-
-                            return statuses;
-                        })(),
+                        name : $scope.vm.search.departmentName //遺��꽌紐�
                     };
 
-                    UserWorkspace.find($resourceProvider.getContent(conditions,
+                    //�뀒�씠釉� 由ъ뒪�듃 �뜲�씠�꽣 而⑦듃濡ㅻ윭 �슂泥�
+                    //UserWorkspace.findDepartment($resourceProvider.getContent(conditions,
+                    UserWorkspace.departmentFind($resourceProvider.getContent(conditions,
                         $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) {
 
                         if (result.data.message.status === "success") {
@@ -162,8 +109,27 @@
                         }
                     });
                 }
-
+                //  遺��꽌 異붽�
+                function departmentAdd() {
+                    $uibModal.open({
+                        templateUrl : 'views/workspace/workspaceDepartmentAdd.html',
+                        size : "md",
+                        controller : 'workspaceDepartmentAddController',
+                        backdrop : 'static',
+                        resolve : {
+                            parameter : function () {
+                                return {
+                                    /*workspaceId : $scope.vm.workspaceVo.id,
+                                    usdKrw : $scope.vm.workspaceVo.usdKrw,
+                                    maxUser : $scope.vm.workspaceVo.maxUser*/
+                                };
+                            }
+                        }
+                    });
+                }
                 $scope.fn.makeTableConfigs();
+                $scope.fn.getDepartmentList();
+
             }
         ]);
     }
diff --git a/src/main/webapp/scripts/app/workspace/workspaceLevelAdd.controller.js b/src/main/webapp/scripts/app/workspace/workspaceLevelAdd.controller.js
index afca607..74c1e0f 100644
--- a/src/main/webapp/scripts/app/workspace/workspaceLevelAdd.controller.js
+++ b/src/main/webapp/scripts/app/workspace/workspaceLevelAdd.controller.js
@@ -4,97 +4,66 @@
 'use strict';
 
 define([
-        'app',
-        'angular'
+        'app'
     ],
-    function (app, angular) {
+    function (app) {
         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) {
+            function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $uibModalInstance, Workspace, $filter, parameter) {
 
                 $scope.fn = {
-                    //add : add,    //  �벑湲� 異붽�
                     cancel : cancel,    //  �뙘�뾽 李� �떕湲�
+                    formSubmit : formSubmit,    //  �뤌 �쟾�넚
                     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
+                        levelName : "",
+                        permProjectSetting : "",
+                        permIssueSetting : "",
+                        permUser : "",
+                        permNotice : "",
+                        permFAQ : "",
+                        permQnA : "",
+                        permGuide : ""
+                    }
                 };
 
-                //  �궗�슜�옄 媛�寃� 蹂닿린
-                /*$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);
+                //  �뤌 泥댄겕
+                function formCheck(formInvalid) {
+                    if (formInvalid) {
+                        return true;
                     }
-                    else {
-                        $scope.vm.form.paymentAmountTemp = 0;
-                    }
-                });*/
+
+                    return false;
+                }
 
                 //  �뤌 �쟾�넚
-                /*function formSubmit() {
+                function formSubmit() {
                     $rootScope.spinner = true;
 
-                    $scope.vm.form.expireYear = "20" + $scope.vm.form.expireYearTmp;
-                    var content = angular.copy($scope.vm.form);
+                    var content = {
+                        title : $rootScope.preventXss($scope.vm.form.levelName),
+                        description : $rootScope.preventXss($scope.vm.form.description)
+                    };
 
-                    //  �븫�샇�솕 �떆媛꾨룞�븞 �봽濡쒓렇�옒�뒪諛� 紐살삱由щ뒗 �쁽�긽 �닔�젙
-                    $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);
+                    Workspace.levelAdd($resourceProvider.getContent(
+                        content,
+                        $resourceProvider.getPageContent(0, 10))).then(function (result) {
 
-                        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); // "異붽� 寃곗젣 �떎�뙣"
-                            }
+                        if (result.data.message.status === "success") {
+                            $scope.fn.cancel();
+                            //  紐⑸줉 �솕硫� 媛깆떊
+                            $rootScope.$broadcast("getUserLevelList", {});
+                        }
+                        else {
+                            SweetAlert.error($filter("translate")("managementWorkspace.failedLevelRegistration"), result.data.message.message);
+                        }
 
-                            $rootScope.spinner = false;
-                        });
-                    }, 100);
-                }*/
+                        $rootScope.spinner = false;
+                    });
+
+                }
 
                 //  �뙘�뾽 李� �떕湲�
                 function cancel() {
@@ -102,45 +71,6 @@
                     $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;
-                }*/
             }
 
         ]);
diff --git a/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js b/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js
index 4afc064..f42ba5e 100644
--- a/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js
+++ b/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js
@@ -138,12 +138,16 @@
                         .setHName("common.department")
                         .setHWidth("width-120-p")
                         .setDAlign("text-center")
-                        .setDName("department"));
+                        .setDType("renderer")
+                        .setDName("department")
+                        .setDRenderer("DEPARTMENT_OPTION"));
                     $scope.vm.tableConfigs.push($tableProvider.config()
                         .setHName("common.level")
                         .setHWidth("width-120-p")
                         .setDAlign("text-center")
-                        .setDName("level"));
+                        .setDType("renderer")
+                        .setDName("level")
+                        .setDRenderer("LEVEL_OPTION"));
                     $scope.vm.tableConfigs.push($tableProvider.config()
                         .setHName("managementWorkspace.joinStatus")
                         .setHWidth("width-140-p")
@@ -197,6 +201,7 @@
                 }
 
                 $scope.fn.makeTableConfigs();
+                $scope.fn.getUserWorkspaceList();
             }
         ]);
     }
diff --git a/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js b/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js
index 5e186a4..d91f13a 100644
--- a/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js
+++ b/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js
@@ -9,34 +9,21 @@
     ],
     function (app, angular) {
         app.controller('workspaceUserLevelController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$q', '$state', '$tableProvider', 'Payment', 'Workspace',
-            'UserWorkspace', '$filter',
+            'UserWorkspace', 'Workspace', '$filter',
             function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $q, $state, $tableProvider, Payment, Workspace, UserWorkspace, $filter) {
 
 
                 /*  $scope.fn �긽�냽 以�  */
-                $scope.fn.getUserWorkspaceList = getUserWorkspaceList;  //  �뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 �젙蹂�
-                $scope.fn.makeTableConfigs = makeTableConfigs;  //  �뾽臾� 怨듦컙�뿉 李몄뿬�븯�뒗 �쟾泥� �궗�슜�옄 紐⑸줉 �뀒�씠釉� �꽕�젙
+                $scope.fn.getUserLevelList = getUserLevelList;  //  �궗�슜�옄 �벑湲� 愿�由� 由ъ뒪�듃
+                $scope.fn.makeTableConfigs = makeTableConfigs;  //  �궗�슜�옄 �벑湲� 愿�由� 紐⑸줉 �뀒�씠釉� �꽕�젙
                 $scope.fn.initSearch = initSearch;  //  寃��깋 議곌굔 珥덇린�솕
-                $scope.fn.changePageRowCount = changePageRowCount;  //  �뾽臾� 怨듦컙 李몄뿬 �궗�슜�옄 紐⑸줉 蹂닿린 媛쒖닔 蹂�寃�
-                $scope.fn.add = add;    //  �벑湲� 異붽�
+                $scope.fn.levelAdd = levelAdd;    //  �벑湲� 異붽�
 
                 /*  $scope.vm �긽�냽 以�  */
                 $scope.vm.search = {
-                    name : "",  //  �씠由�
-                    account : "",   //  �씠硫붿씪
-                    statuses : []   //  �긽�깭 - Y, N
+                    levelName : "",  //  �벑湲됰챸
                 };
 
-                $scope.vm.options = {
-                    statuses : [{
-                        fieldKey : "Y",
-                        fieldValue : $filter("translate")("managementWorkspace.participation") // "李몄뿬"
-                    }, {
-                        fieldKey : "N",
-                        //fieldValue : $filter("translate")("managementWorkspace.waitForParticipation") // "李몄뿬��湲�"
-                        fieldValue : $filter("translate")("managementWorkspace.withdrawal") // "�깉�눜"
-                    }]
-                };
 
                 $scope.vm.page = {
                     selectedPage : 0,
@@ -50,78 +37,86 @@
 
                 //  �뀒�씠釉� �씠踰ㅽ듃
                 $scope.vm.tableEvent = {
-                    modifyUserWorkspace : modifyUserWorkspace   //  �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃�
+                    // modifyUserWorkspace : modifyUserWorkspace   //  �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃�
+                    view : view
                 };
 
-                //  寃곗젣 �긽�꽭 �젙蹂�
-                $scope.$on("getUserWorkspaceList", function () {
-                    $scope.fn.getUserWorkspaceList(0);
+                //  �궗�슜�옄 �벑湲� 由ъ뒪�듃 遺덈윭�삤湲�
+                $scope.$on("getUserLevelList", function () {
+                    $scope.fn.getUserLevelList(0);
                 });
-
-                //  �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃�
-                function modifyUserWorkspace(userWorkspace) {
-                    UserWorkspace.modify($resourceProvider.getContent(
-                        userWorkspace,
-                        $resourceProvider.getPageContent(0, 0))).then(function (result) {
-                        if (result.data.message.status === "success") {
-                            //  �궡媛� 愿�由ы븯�뒗 �뾽臾� 怨듦컙 �젙蹂대�� 議고쉶�븳�떎.
-                            $scope.fn.findMyWorkspace();
-                        }
-                        else {
-                            userWorkspace.useYn = false;
-                            SweetAlert.error($filter("translate")("managementWorkspace.failedToParticipationStatusChange"), result.data.message.message); // "李몄뿬 �긽�깭 蹂�寃� �떎�뙣"
-                        }
-                    });
-                }
 
                 //  寃��깋 議곌굔 珥덇린�솕
                 function initSearch() {
-                    $scope.vm.search.name = "";
-                    $scope.vm.search.account = "";
-                    $scope.vm.search.statuses = [];
+                    //$scope.vm.search.name = "";
+                    //$scope.vm.search.account = "";
+                    //$scope.vm.search.statuses = [];
                     $scope.fn.getUserWorkspaceList(0);
                 }
 
-                //  �뾽臾� 怨듦컙 李몄뿬 �궗�슜�옄 紐⑸줉 蹂닿린 媛쒖닔 蹂�寃�
-                function changePageRowCount() {
-                    $scope.fn.getUserWorkspaceList(0);
-                }
-
-                //  �뾽臾닿났媛� �쟾泥� �궗�슜�옄 紐⑸줉 �뀒�씠釉� �꽕�젙
+                //  �궗�슜�옄 �벑湲� 愿�由� �뀒�씠釉� �꽕�젙
                 function makeTableConfigs() {
                     $scope.vm.tableConfigs = [];
 
                     $scope.vm.tableConfigs.push($tableProvider.config()
-                        .setHName("common.name")
+                        .setDType("checkbox")
+                        .setHWidth("width-20-p")
+                        .setDAlign("text-center"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("managementWorkspace.levelName")
                         .setHWidth("width-120-p")
                         .setDAlign("text-center")
-                        .setDName("userName"));
+                        .setDName("levelName"));
                     $scope.vm.tableConfigs.push($tableProvider.config()
-                        .setHName("common.email")
+                        .setHName("manageUser.manageProjectPerm")
                         .setHWidth("width-120-p")
                         .setDAlign("text-center")
-                        .setDName("account"));
+                        .setDName("manageProject")
+                        .setDRenderer("WORKSPACE_USE_YN"));
                     $scope.vm.tableConfigs.push($tableProvider.config()
-                        .setHName("common.department")
+                        .setHName("manageUser.manageIssueSystemPerm")
                         .setHWidth("width-120-p")
                         .setDAlign("text-center")
-                        .setDName("department"));
+                        .setDName("IssueSystem")
+                        .setDRenderer("WORKSPACE_USE_YN"));
                     $scope.vm.tableConfigs.push($tableProvider.config()
-                        .setHName("common.level")
+                        .setHName("manageUser.manageUserPerm")
                         .setHWidth("width-120-p")
                         .setDAlign("text-center")
-                        .setDName("level"));
+                        .setDName("User")
+                        .setDRenderer("WORKSPACE_USE_YN"));
                     $scope.vm.tableConfigs.push($tableProvider.config()
-                        .setHName("managementWorkspace.joinStatus")
+                        .setHName("manageUser.manageNoticePerm")
                         .setHWidth("width-140-p")
                          .setDType("renderer")
                         .setDAlign("text-center pdr0 pdt0 pdl0 pdb0")
-                        .setDName("userYn")
+                        .setDName("Notice")
+                        .setDRenderer("WORKSPACE_USE_YN"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("manageUser.manageFAQPerm")
+                        .setHWidth("width-140-p")
+                        .setDType("renderer")
+                        .setDAlign("text-center pdr0 pdt0 pdl0 pdb0")
+                        .setDName("FAQ")
+                        .setDRenderer("WORKSPACE_USE_YN"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("manageUser.manageQnAPerm")
+                        .setHWidth("width-140-p")
+                        .setDType("renderer")
+                        .setDAlign("text-center pdr0 pdt0 pdl0 pdb0")
+                        .setDName("QnA")
+                        .setDRenderer("WORKSPACE_USE_YN"));
+                    $scope.vm.tableConfigs.push($tableProvider.config()
+                        .setHName("manageUser.manageGuidePerm")
+                        .setHWidth("width-140-p")
+                        .setDType("renderer")
+                        .setDAlign("text-center pdr0 pdt0 pdl0 pdb0")
+                        .setDName("Guide")
                         .setDRenderer("WORKSPACE_USE_YN"));
                 }
 
-                //  �뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶
-                function getUserWorkspaceList(selectedPage) {
+                //  �궗�슜�옄 �벑湲� 愿�由� 紐⑸줉 議고쉶
+                function getUserLevelList(selectedPage) {
                     if (selectedPage < 0) {
                         selectedPage = 0;
                     }
@@ -136,21 +131,13 @@
                         currentPage = selectedPage;
                     }
 
-                    var conditions = {
-                        name : $scope.vm.search.name,
-                        account : $scope.vm.search.account,
-                        statuses : (function () {
-                            var statuses = [];
-
-                            angular.forEach($scope.vm.search.statuses, function (status) {
-                                statuses.push(status.fieldKey);
-                            });
-
-                            return statuses;
-                        })(),
+                    var conditions = {                        
+                        name : $scope.vm.search.levelName //�벑湲됰챸
                     };
-
-                    UserWorkspace.find($resourceProvider.getContent(conditions,
+                    
+                    //�뀒�씠釉� 由ъ뒪�듃 �뜲�씠�꽣 而⑦듃濡ㅻ윭 �슂泥�
+                    //UserWorkspace.findLevel($resourceProvider.getContent(conditions,
+                    Workspace.levelFind($resourceProvider.getContent(conditions,
                         $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) {
 
                         if (result.data.message.status === "success") {
@@ -158,30 +145,31 @@
                             $scope.vm.responseData = result.data;
                         }
                         else {
-                            SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullUserList"), result.data.message.message); // "�뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶 �떎�뙣"
+                            SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullUserList"), result.data.message.message); // "�궗�슜�옄 �벑湲� 紐⑸줉 議고쉶 �떎�뙣"
                         }
                     });
                 }
-                $scope.fn.makeTableConfigs();
-
                 //  �벑湲� 異붽�
-                function add() {
+                function levelAdd() {
                     $uibModal.open({
                         templateUrl : 'views/workspace/workspaceLevelAdd.html',
                         size : "md",
-                        //controller : 'workspaceLevelAddController',
-                        backdrop : 'static'
-                        /*resolve : {
+                        controller : 'workspaceLevelAddController',
+                        backdrop : 'static',
+                        resolve : {
                             parameter : function () {
                                 return {
-                                    workspaceId : $scope.vm.workspaceVo.id,
-                                    usdKrw : $scope.vm.workspaceVo.usdKrw,
-                                    maxUser : $scope.vm.workspaceVo.maxUser
+                                    // workspaceId : $scope.vm.workspaceVo.id,
+                                    // usdKrw : $scope.vm.workspaceVo.usdKrw,
+                                    // maxUser : $scope.vm.workspaceVo.maxUser
                                 };
                             }
-                        }*/
+                        }
                     });
                 }
+
+                $scope.fn.makeTableConfigs();
+                $scope.fn.getUserLevelList();
             }
         ]);
     }
diff --git a/src/main/webapp/scripts/components/workspace/workspace.service.js b/src/main/webapp/scripts/components/workspace/workspace.service.js
index 2c090dc..753763a 100644
--- a/src/main/webapp/scripts/components/workspace/workspace.service.js
+++ b/src/main/webapp/scripts/components/workspace/workspace.service.js
@@ -8,9 +8,33 @@
 ], function (app) {
     app.factory("Workspace", ['$http', '$log', function ($http, $log) {
         return {
+            levelFind : function (conditions) {
+                return $http.post("workspace/levelFind", conditions).then(function (response) {
+                    $log.debug("�궗�슜�옄 �벑湲� 紐⑸줉 : ", response);
+                    return response;
+                });
+            },
+            departmentFind : function (conditions) {
+                return $http.post("workspace/departmentFind", conditions).then(function (response) {
+                    $log.debug("遺��꽌 紐⑸줉 : ", response);
+                    return response;
+                });
+            },
             find : function (conditions) {
                 return $http.post("workspace/find", conditions).then(function (response) {
                     $log.debug("�뾽臾닿났媛� 紐⑸줉 �뜲�씠�꽣 : ", response);
+                    return response;
+                });
+            },
+            levelAdd : function (conditions) {
+                return $http.post("workspace/levelAdd", conditions).then(function (response) {
+                    $log.debug("�궗�슜�옄 �벑湲� �깮�꽦 寃곌낵 : ", response);
+                    return response;
+                });
+            },
+            departmentAdd : function (conditions) {
+                return $http.post("workspace/departmentAdd", conditions).then(function (response) {
+                    $log.debug("遺��꽌 �깮�꽦 寃곌낵 : ", response);
                     return response;
                 });
             },
@@ -32,6 +56,18 @@
                     return response;
                 });
             },
+            findUserLevel : function (conditions) { //�궗�슜�옄 �벑湲�
+                return $http.post("workspace/levelFind", conditions).then(function (response) {
+                    $log.debug("�궗�슜�옄 �벑湲� �젙蹂� 寃곌낵 : ", response);
+                    return response;
+                });
+            },
+            findDepartment : function (conditions) { //遺��꽌
+                return $http.post("workspace/departmentFind", conditions).then(function (response) {
+                    $log.debug("�궗�슜�옄 �벑湲� �젙蹂� 寃곌낵 : ", response);
+                    return response;
+                });
+            },
             modify : function (conditions) {
                 return $http.post("workspace/modify", conditions).then(function (response) {
                     $log.debug("�뾽臾닿났媛� �닔�젙 寃곌낵 : ", response);
diff --git a/src/main/webapp/scripts/main.js b/src/main/webapp/scripts/main.js
index ea145f2..4528d6b 100644
--- a/src/main/webapp/scripts/main.js
+++ b/src/main/webapp/scripts/main.js
@@ -226,6 +226,7 @@
         'workspacePaymentAgreeTermController' : 'app/workspace/workspacePaymentAgreeTerm.controller', //  �뾽臾� 怨듦컙 �씠�슜 �빟愿� �솗�씤 而⑦듃濡ㅻ윭
         'workspaceUserLevelController' : 'app/workspace/workspaceUserLevelConfig.controller',  //  �궗�슜�옄 愿�由� 而⑦듃濡ㅻ윭
         'workspaceLevelAddController' : 'app/workspace/workspaceLevelAdd.controller',  //  �궗�슜�옄 �벑湲� 異붽� 而⑦듃濡ㅻ윭
+        'workspaceDepartmentAddController' : 'app/workspace/workspaceDepartmentAdd.controller',  //  遺��꽌 異붽� 而⑦듃濡ㅻ윭
         'workspaceDepartmentConfigController' : 'app/workspace/workspaceDepartmentConfig.controller',  //  �궗�슜�옄 遺��꽌 愿�由� 而⑦듃濡ㅻ윭
         'workspaceService' : 'components/workspace/workspace.service',  //  �뾽臾� 怨듦컙�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎.
         'paymentService' : 'components/payment/payment.service',    //  寃곗옱�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎.
diff --git a/src/main/webapp/views/workspace/workspace.html b/src/main/webapp/views/workspace/workspace.html
index 30e9be2..86d8257 100644
--- a/src/main/webapp/views/workspace/workspace.html
+++ b/src/main/webapp/views/workspace/workspace.html
@@ -1,10 +1,16 @@
 <div class="element-wrapper">
-    <div class="element-actions">
-        <button ng-click="fn.add()" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_WORKSPACE')"
+    <div class="element-actions" ng-show="vm.tab == 'USER_LEVEL_CONFIG'">
+        <button ng-click="fn.levelAdd()" 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>
+    <div class="element-actions" ng-show="vm.tab == 'DEPARTMENT_CONFIG'">
+        <button ng-click="fn.departmentAdd()" 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.addDepartment">遺��꽌 異붽�</span>
+        </button>
+    </div>
     <h6 class="element-header" translate="managementWorkspace.myWorkspace">
         �굹�쓽 �뾽臾닿났媛� 愿�由�
     </h6>
diff --git a/src/main/webapp/views/workspace/workspaceDepartmentAdd.html b/src/main/webapp/views/workspace/workspaceDepartmentAdd.html
new file mode 100644
index 0000000..3da038c
--- /dev/null
+++ b/src/main/webapp/views/workspace/workspaceDepartmentAdd.html
@@ -0,0 +1,58 @@
+<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="departmentAddForm">
+            <div class="form-group">
+                <label for="departmentAddForm1">
+                    <span translate="common.departmentName">遺��꽌紐�</span>
+                    <code class="highlighter-rouge">*</code>
+                </label>
+                <input id="departmentAddForm1"
+                       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.title"
+                       ng-maxlength="200"
+                       maxlength="200"
+                       required>
+                <!--<small translate="notice.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small>-->
+            </div>
+
+            <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>
+            </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(departmentAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()"
+                ng-disabled="fn.formCheck(departmentAddForm.$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 cb4b263..0433e7a 100644
--- a/src/main/webapp/views/workspace/workspaceDepartmentConfig.html
+++ b/src/main/webapp/views/workspace/workspaceDepartmentConfig.html
@@ -1,4 +1,4 @@
-<div class="row" ng-controller="workspaceDepartmentConfigController">
+<!--<div class="row" ng-controller="workspaceDepartmentConfigController">
     <div class="col-lg-12">
         <div class="projects-list">
             <div class="project-box">
@@ -36,11 +36,11 @@
                                 </div>
                                 <div class="col-lg-3 text-center b-r">
                                     <div class="el-tablo highlight">
-                                        <!--
+                                        &lt;!&ndash;
                                         <div class="label" translate="managementWorkspace.waitForParticipation">
                                             李몄뿬 ��湲�
                                         </div>
-                                        -->
+                                        &ndash;&gt;
                                         <div class="label" translate="managementWorkspace.withdrawal">
                                             �깉�눜
                                         </div>
@@ -66,9 +66,9 @@
             </div>
         </div>
     </div>
-</div>
+</div>-->
 
-<div class="row">
+<div class="row" ng-controller="workspaceDepartmentConfigController">
     <div class="col-lg-12">
         <div class="element-box">
             <div class="searchdiv">
@@ -76,26 +76,8 @@
                     <div class="row">
                         <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">
-                            </div>
-                        </div>
-
-                        <div class="col-xl-3">
-                            <div class="form-group">
-                                <label translate="common.status">�긽�깭</label>
-                                <ng-dropdown-multiselect class="multiSelect cursor"
-                                                         data-input-name="statuses"
-                                                         selected-model="vm.search.statuses"
-                                                         extra-settings="{ stringTypeOption : true }"
-                                                         options="vm.options.statuses"></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">
+                                <label translate="common.departmentName">遺��꽌紐�</label>
+                                <input class="form-control" type="text" ng-model="vm.search.DepatmentName" maxlength="10">
                             </div>
                         </div>
 
diff --git a/src/main/webapp/views/workspace/workspaceLevelAdd.html b/src/main/webapp/views/workspace/workspaceLevelAdd.html
index 0aa2a31..ca4a84c 100644
--- a/src/main/webapp/views/workspace/workspaceLevelAdd.html
+++ b/src/main/webapp/views/workspace/workspaceLevelAdd.html
@@ -1,4 +1,4 @@
-<div class="formModal" ng-controller="workspaceLevelAddController">
+<div class="formModal">
     <div class="modal-header faded smaller">
         <div class="modal-title">
             <strong>�깉 �벑湲� 異붽�</strong>
@@ -16,99 +16,73 @@
                         <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" colspan="3">
+                        <div class="input-group mb-0 mr-sm-0 mb-sm-0">
                             <input id="levelAddForm1"
                                    class="form-control" placeholder="異붽� �븷 �벑湲됰챸�쓣 �엯�젰�븯�꽭�슂."
                                    type="text"
-                                   ng-model="vm.form.name"
+                                   ng-model="vm.form.levelName"
                                    maxlength="50"
                                    autofocus
                                    required>
                         </div>
                     </td>
                 </tr>
+                <!--tableColumnGenerator.dirextive.js �뙆�씪 李멸퀬-->
                 <tr>
                     <td class="text-left bold">
                         <span translate="manageUser.manageProjectPerm">�봽濡쒖젥�듃 愿�由�</span>
                     </td>
-                    <td>
-                        <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
-                    </td>
-                    <td>
-                        <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
-                    </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>
-                    <td>
-                        <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
-                    </td>
-                    <td>
-                        <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
+                    <td colspan="2">
+                        <label class='switch'><input type='checkbox' ng-model='vm.form.permProjectSetting' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
                     </td>
                 </tr>
                 <tr>
                     <td class="text-left bold">
-                        <span translate="manageUser.manageUserPerm">�궗�슜�옄</span>
+                        <span translate="manageUser.manageIssueSystemPerm">�씠�뒋 �떆�뒪�뀥 愿�由�</span>
                     </td>
                     <td>
-                        <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
-                    </td>
-                    <td>
-                        <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
+                        <label class='switch'><input type='checkbox' ng-model='vm.form.permIssueSetting' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
                     </td>
                 </tr>
                 <tr>
                     <td class="text-left bold">
-                        <span translate="manageUser.manageNoticePerm">怨듭��궗�빆</span>
+                        <span translate="manageUser.manageUserPerm">�궗�슜�옄 愿�由�</span>
                     </td>
                     <td>
-                        <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
-                    </td>
-                    <td>
-                        <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
+                        <label class='switch'><input type='checkbox' ng-model='vm.form.permUser' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
                     </td>
                 </tr>
                 <tr>
                     <td class="text-left bold">
-                        <span translate="manageUser.manageFAQPerm">FAQ</span>
+                        <span translate="manageUser.manageNoticePerm">怨듭��궗�빆 愿�由�</span>
                     </td>
                     <td>
-                        <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
-                    </td>
-                    <td>
-                        <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
+                        <label class='switch'><input type='checkbox' ng-model='vm.form.permNotice' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
                     </td>
                 </tr>
                 <tr>
                     <td class="text-left bold">
-                        <span translate="manageUser.manageQnAPerm">QnA</span>
+                        <span translate="manageUser.manageFAQPerm">FAQ 愿�由�</span>
                     </td>
                     <td>
-                        <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
+                        <label class='switch'><input type='checkbox' ng-model='vm.form.permFAQ' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="text-left bold">
+                        <span translate="manageUser.manageQnAPerm">QnA 愿�由�</span>
                     </td>
                     <td>
-                        <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
+                        <label class='switch'><input type='checkbox' ng-model='vm.form.permQnA' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
                     </td>
                 </tr>
 
                 <tr>
                     <td class="text-left bold">
-                        <span translate="manageUser.manageGuidePerm">媛��씠�뱶</span>
+                        <span translate="manageUser.manageGuidePerm">媛��씠�뱶 愿�由�</span>
                     </td>
                     <td>
-                        <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
-                    </td>
-                    <td>
-                        <label class='switch'><input type='checkbox' ng-model='data.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
+                        <label class='switch'><input type='checkbox' ng-model='vm.form.permGuide' ng-click='event.modifyUserPermission(data)'><span class='slider round'></span></label>
                     </td>
                 </tr>
             </table>
@@ -119,7 +93,7 @@
         <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()"
+                js-short-cut-action="(fn.formCheck(levelAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()"
                 ng-disabled="fn.formCheck(paymentAddForm.$invalid)"
                 ng-click="fn.formSubmit()"><span translate="common.save">���옣</span>
         </button>
diff --git a/src/main/webapp/views/workspace/workspaceUserConfig.html b/src/main/webapp/views/workspace/workspaceUserConfig.html
index b97292e..8de14c3 100644
--- a/src/main/webapp/views/workspace/workspaceUserConfig.html
+++ b/src/main/webapp/views/workspace/workspaceUserConfig.html
@@ -81,7 +81,7 @@
                             </div>
                         </div>
 
-                        <div class="col-xl-3">
+                        <div class="col-xl-2">
                             <div class="form-group">
                                 <label translate="common.status">�긽�깭</label>
                                 <ng-dropdown-multiselect class="multiSelect cursor"
@@ -92,7 +92,7 @@
                             </div>
                         </div>
 
-                        <div class="col-xl-3">
+                        <div class="col-xl-2">
                             <div class="form-group">
                                 <label>�벑湲�</label>
                                 <ng-dropdown-multiselect class="multiSelect cursor"
@@ -121,7 +121,7 @@
                             </div>
                         </div>
 
-                        <div class="col-xl-4">
+                        <div class="col-xl-11">
                             <div class="form-group form-buttons-w2">
                                 <button class="btn btn-xlg btn-navy" ng-click="fn.getUserWorkspaceList(0)">
                                     <i class="os-icon os-icon-ui-37"></i>
diff --git a/src/main/webapp/views/workspace/workspaceUserLevelConfig.html b/src/main/webapp/views/workspace/workspaceUserLevelConfig.html
index 4755af6..e87fc8b 100644
--- a/src/main/webapp/views/workspace/workspaceUserLevelConfig.html
+++ b/src/main/webapp/views/workspace/workspaceUserLevelConfig.html
@@ -69,7 +69,7 @@
                             </label>
                         </div>
                     </div>
-                    <div class="col-sm-6 text-right">
+                    <div class="col-sm-6 text-right" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_USER')">
                         <!--<div class="btn-group">
                             <button aria-expanded="false"
                                     aria-haspopup="true"

--
Gitblit v1.8.0