From aa5f2612d0b035a210dda5818e0d3d166efa6a0a Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 수, 03 11월 2021 18:05:12 +0900
Subject: [PATCH] 사용자등급관리 프론트 수정(상세보기 불가)

---
 src/main/webapp/scripts/app/manageUser/manageUser.controller.js              |    7 
 src/main/java/kr/wisestone/owl/web/form/ManageUserForm.java                  |   10 
 src/main/webapp/scripts/app/workspace/levelModify.controller.js              |  114 ++++++++++++++
 src/main/resources/mybatis/query-template/user-template.xml                  |    4 
 src/main/resources/mybatis/query-template/userLevel-template.xml             |    2 
 src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js    |    2 
 src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js      |    2 
 src/main/java/kr/wisestone/owl/web/form/UserLevelForm.java                   |   14 
 src/main/webapp/scripts/app/workspace/workspacePaymentExecute.controller.js  |    5 
 src/main/webapp/scripts/main.js                                              |    1 
 src/main/webapp/views/workspace/workspaceUserLevelConfig.html                |   47 -----
 src/main/java/kr/wisestone/owl/vo/ManageUserVo.java                          |    4 
 src/main/webapp/views/workspace/workspaceLevelModify.html                    |  114 ++++++++++++++
 src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java        |    2 
 src/main/java/kr/wisestone/owl/constant/MsgConstants.java                    |    2 
 src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties                       |    1 
 src/main/webapp/scripts/app/workspace/workspace.js                           |    2 
 src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js |   80 +++------
 src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java    |    6 
 src/main/java/kr/wisestone/owl/vo/UserLevelVo.java                           |    4 
 src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java             |    1 
 src/main/webapp/views/workspace/workspaceLevelAdd.html                       |   11 +
 src/main/webapp/i18n/ko/global.json                                          |    3 
 src/main/java/kr/wisestone/owl/service/impl/ManageUserServiceImpl.java       |    2 
 src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js |   13 +
 25 files changed, 316 insertions(+), 137 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
index 6fa3dd9..0136cc5 100644
--- a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
+++ b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
@@ -204,6 +204,6 @@
     public static final String PAGE_NEGATIVE_OR_NULL = "PAGE_NEGATIVE_OR_NULL"; //  �슂泥��븳 �럹�씠吏� �젙蹂닿� �옒紐삳릺�뿀�뒿�땲�떎.
     public static final String PAGE_SIZE_NEGATIVE_OR_NULL = "PAGE_SIZE_NEGATIVE_OR_NULL";   //  �슂泥��븳 �럹�씠吏� �겕湲곌� �옒紐삳릺�뿀�뒿�땲�떎.
 
-    public static final String USER_LEVEL_ALREADY = "USER_LEVEL_ALREADY"; // �궗�슜�옄 �벑湲됱쓣 �궗�슜�븯怨� �엳�뒗 �궗�슜�옄媛� �엳�뒿�땲�떎.
+    public static final String USER_LEVEL_ALREADY_IN_USE = "USER_LEVEL_ALREADY_IN_USE"; // �궗�슜�옄 �벑湲됱쓣 �궗�슜�븯怨� �엳�뒗 �궗�슜�옄媛� �엳�뒿�땲�떎.
 
 }
diff --git a/src/main/java/kr/wisestone/owl/service/impl/ManageUserServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/ManageUserServiceImpl.java
index 91cf560..60fc0e9 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/ManageUserServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/ManageUserServiceImpl.java
@@ -95,7 +95,7 @@
     public void modifyUserPermission(ManageUserForm manageUserForm) {
         int newPermission = MngPermission.USER_PERMISSION_MNG_NONE;
 
-        newPermission |= MngPermission.makePermission(manageUserForm.getPermWorkSpace(), MngPermission.USER_PERMISSION_MNG_WORKSPACE);
+        newPermission |= MngPermission.makePermission(manageUserForm.getPermWorkSpaceSetting(), MngPermission.USER_PERMISSION_MNG_WORKSPACE);
         newPermission |= MngPermission.makePermission(manageUserForm.getPermProjectSetting(), MngPermission.USER_PERMISSION_MNG_PROJECT);
         newPermission |= MngPermission.makePermission(manageUserForm.getPermIssueSetting(), MngPermission.USER_PERMISSION_MNG_ISSUE_SETTING);
         newPermission |= MngPermission.makePermission(manageUserForm.getPermUser(), MngPermission.USER_PERMISSION_MNG_USER);
diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java
index 8e35538..23a7a91 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java
@@ -100,7 +100,7 @@
                 this.userLevelRepository.deleteById(id);
             } else {
                 throw new OwlRuntimeException(
-                        this.messageAccessor.getMessage(MsgConstants.USER_LEVEL_ALREADY));
+                        this.messageAccessor.getMessage(MsgConstants.USER_LEVEL_ALREADY_IN_USE));
             }
         }
 
diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java
index 760b213..2d009dd 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java
@@ -1027,6 +1027,7 @@
         this.userRepository.saveAndFlush(user);
     }
 
+    //  �궘�젣 �븷 �벑湲됰챸�쓣 �쑀��媛� �궗�슜�븯怨� �엳�뒗吏� �솗�씤
     @Override
     public boolean useUserLevel(Long levelId) {
         return this.userMapper.findByLevelId(levelId) > 0;
diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java
index f830917..405cfe5 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java
@@ -75,17 +75,17 @@
     public List<UserWorkspaceVo> findUserWorkspace(Map<String, Object> resJsonData,
                                                    UserWorkspaceCondition condition, Pageable pageable) {
 
-        UserWorkspace userWorkspace = this.findMyWorkspace(this.webAppUtil.getLoginId()); //濡쒓렇�씤�븳 �븘�씠�뵒
+        UserWorkspace userWorkspace = this.findMyWorkspace(this.webAppUtil.getLoginId());
         Workspace myWorkspace = userWorkspace.getWorkspace();
         condition.setPage(pageable.getPageNumber() * pageable.getPageSize());
         condition.setPageSize(pageable.getPageSize());
         condition.setWorkspaceId(myWorkspace.getId());
-        condition.setAccount(CommonUtil.encryptAES128(condition.getAccount()));
+        condition.setAccount(CommonUtil.encryptAES128(condition.getAccount())); //怨꾩젙 �븫�샇�솕(�븘�닔 �룞�옉)
 
         List<Map<String, Object>> results = this.userWorkspaceMapper.find(condition);
         Long totalCount = this.userWorkspaceMapper.count(condition);
         int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1;
-        List<UserWorkspaceVo> userWorkspaceVos = ConvertUtil.convertListToListClass(results, UserWorkspaceVo.class);
+        List<UserWorkspaceVo> userWorkspaceVos = ConvertUtil.convertListToListClass(results, UserWorkspaceVo.class); //UserWorkspace�쓽 �뜲�씠�꽣瑜� 由ъ뒪�듃 �삎�떇�쑝濡� 蹂듭궗�빐�꽌 UserWorkspaceVo�뿉 �떞湲�
 
         for (UserWorkspaceVo userWorkspaceVo : userWorkspaceVos) {
             userWorkspaceVo.setAccount(CommonUtil.decryptAES128(userWorkspaceVo.getAccount()));
diff --git a/src/main/java/kr/wisestone/owl/vo/ManageUserVo.java b/src/main/java/kr/wisestone/owl/vo/ManageUserVo.java
index 157f131..ec442be 100644
--- a/src/main/java/kr/wisestone/owl/vo/ManageUserVo.java
+++ b/src/main/java/kr/wisestone/owl/vo/ManageUserVo.java
@@ -12,7 +12,7 @@
     private Boolean useYn;
     private Integer permission;
     private Long userId;
-    public Boolean permWorkSpace;
+    public Boolean permWorkSpaceSetting;
     public Boolean permProjectSetting;
     public Boolean permIssueSetting;
     public Boolean permUser;
@@ -66,7 +66,7 @@
     }
 
     private void makePermission() {
-        this.permWorkSpace = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_WORKSPACE);
+        this.permWorkSpaceSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_WORKSPACE);
         this.permProjectSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_PROJECT);
         this.permIssueSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_ISSUE_SETTING);
         this.permUser = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_USER);
diff --git a/src/main/java/kr/wisestone/owl/vo/UserLevelVo.java b/src/main/java/kr/wisestone/owl/vo/UserLevelVo.java
index 9d8325b..d0e51a8 100644
--- a/src/main/java/kr/wisestone/owl/vo/UserLevelVo.java
+++ b/src/main/java/kr/wisestone/owl/vo/UserLevelVo.java
@@ -14,7 +14,7 @@
     private String levelName;
     private Integer permission;
 
-    public Boolean permWorkSpace;
+    public Boolean permWorkSpaceSetting;
     public Boolean permProjectSetting;
     public Boolean permIssueSetting;
     public Boolean permUser;
@@ -66,7 +66,7 @@
     }
 
     public void toPermissionValues() {
-        this.permWorkSpace = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_WORKSPACE);
+        this.permWorkSpaceSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_WORKSPACE);
         this.permProjectSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_PROJECT);
         this.permIssueSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_ISSUE_SETTING);
         this.permUser = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_USER);
diff --git a/src/main/java/kr/wisestone/owl/web/form/ManageUserForm.java b/src/main/java/kr/wisestone/owl/web/form/ManageUserForm.java
index 21f1cb5..22c2b91 100644
--- a/src/main/java/kr/wisestone/owl/web/form/ManageUserForm.java
+++ b/src/main/java/kr/wisestone/owl/web/form/ManageUserForm.java
@@ -14,7 +14,7 @@
     private Long id;
     private Boolean useYn;
     private Long userId;
-    private Boolean permWorkSpace;
+    private Boolean permWorkSpaceSetting;
     private Boolean permProjectSetting;
     private Boolean permIssueSetting;
     private Boolean permUser;
@@ -56,12 +56,12 @@
         this.userId = userId;
     }
 
-    public Boolean getPermWorkSpace() {
-        return permWorkSpace;
+    public Boolean getPermWorkSpaceSetting() {
+        return permWorkSpaceSetting;
     }
 
-    public void setPermWorkSpace(Boolean permWorkSpace) {
-        this.permWorkSpace = permWorkSpace;
+    public void setPermWorkSpaceSetting(Boolean permWorkSpaceSetting) {
+        this.permWorkSpaceSetting = permWorkSpaceSetting;
     }
 
     public Boolean getPermProjectSetting() {
diff --git a/src/main/java/kr/wisestone/owl/web/form/UserLevelForm.java b/src/main/java/kr/wisestone/owl/web/form/UserLevelForm.java
index 047cdc1..29438da 100644
--- a/src/main/java/kr/wisestone/owl/web/form/UserLevelForm.java
+++ b/src/main/java/kr/wisestone/owl/web/form/UserLevelForm.java
@@ -43,13 +43,6 @@
         return form;
 
     }
-    public Boolean getPermWorkspaceSetting() {
-        return permWorkspaceSetting;
-    }
-
-    public void setPermWorkspaceSetting(Boolean permWorkspaceSetting) {
-        this.permWorkspaceSetting = permWorkspaceSetting;
-    }
 
     public Long getId() {
         return id;
@@ -75,6 +68,13 @@
         this.permission = permission;
     }
 
+    public Boolean getPermWorkspaceSetting() {
+        return permWorkspaceSetting;
+    }
+
+    public void setPermWorkspaceSetting(Boolean permWorkspaceSetting) {
+        this.permWorkspaceSetting = permWorkspaceSetting;
+    }
 
     public Boolean getPermProjectSetting() {
         return permProjectSetting;
diff --git a/src/main/resources/mybatis/query-template/user-template.xml b/src/main/resources/mybatis/query-template/user-template.xml
index a1433b4..93a60ef 100644
--- a/src/main/resources/mybatis/query-template/user-template.xml
+++ b/src/main/resources/mybatis/query-template/user-template.xml
@@ -170,10 +170,10 @@
         GROUP BY u.id ORDER BY issueCount desc, loginCount DESC;
     </select>
 
-    <select id="findByLevelId" resultType="java.util.HashMap" parameterType="java.lang.Long">
+    <select id="findByLevelId" resultType="java.lang.Long" parameterType="java.lang.Long">
         SELECT count(u.id)
         FROM user u
-        WHERE u.level_id = #{id}
+        WHERE u.level_id = #{levelId}
     </select>
 
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mybatis/query-template/userLevel-template.xml b/src/main/resources/mybatis/query-template/userLevel-template.xml
index 61ede06..e967c0e 100644
--- a/src/main/resources/mybatis/query-template/userLevel-template.xml
+++ b/src/main/resources/mybatis/query-template/userLevel-template.xml
@@ -10,7 +10,7 @@
         ul.permission as permission
         FROM
         user_level ul
-        WHERE 1=1
+        WHERE id != 1 AND 1=1
         <if test="levelName != '' and levelName != null">
             AND ul.level_name like CONCAT('%',#{levelName},'%')
         </if>
diff --git a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
index 15bda99..3973425 100644
--- a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
+++ b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
@@ -149,6 +149,7 @@
 USER_EXPIRED_PASSWORD = \uBE44\uBC00\uBC88\uD638\uAC00 \uB9CC\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
 USER_RETURN_PASSWORD_NOT_PROVIDER_SOCIAL_JOIN_USER = \uBE44\uBC00\uBC88\uD638 \uCC3E\uAE30 \uAE30\uB2A5\uC744 \uC18C\uC15C \uACC4\uC815 \uAC00\uC785 \uC0AC\uC6A9\uC790\uB294 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
 USER_NOT_USE_ACTIVE_STATUS = \uC0AC\uC6A9\uC790\uB294 \uD65C\uC131 \uC0C1\uD0DC\uAC00 \uC544\uB2C8\uBA74 \uB85C\uADF8\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+USER_LEVEL_ALREADY_IN_USE = \uC120\uD0DD\uD55C \uC0AC\uC6A9\uC790 \uB4F1\uAE09\uC744 \uC774\uBBF8 \uC0AC\uC6A9\uD558\uACE0 \uC788\uB294 \uC0AC\uC6A9\uC790\uAC00 \uC788\uC2B5\uB2C8\uB2E4.
 
 EXCEL_NOT_EXTENSION = \uC5D1\uC140 \uD30C\uC77C \uD655\uC7A5\uC790 (xlsx)\uB9CC \uC5C5\uB85C\uB4DC\uAC00 \uAC00\uB2A5\uD569\uB2C8\uB2E4.
 EXCEL_DOWNLOAD_MAX_ROWS_OVER = \uC5D1\uC140 \uB2E4\uC6B4\uB85C\uB4DC\uB294 1.000 \uAC74 \uAE4C\uC9C0\uB9CC \uAC00\uB2A5\uD569\uB2C8\uB2E4. \uAC80\uC0C9 \uC870\uAC74\uC744 \uC0AC\uC6A9\uD558\uC5EC \uC870\uD68C\uB418\uB294 \uBAA9\uB85D\uC744 1,000 \uAC74 \uC774\uD558\uB85C \uBCC0\uACBD\uD558\uC5EC \uB2E4\uC6B4\uB85C\uB4DC\uB97C \uC9C4\uD589\uD574\uC8FC\uC138\uC694.
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 3a4d86d..398df12 100644
--- a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
+++ b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
@@ -283,8 +283,17 @@
                                             makeTag += "<a ng-click='event.fileRemove(data.index)'><i class='fa fa-trash fa-lg' uib-tooltip='�젣嫄�'></i></a>";
                                             break;
 
-                                        case "WORKSPACE_USE_YN" :
-                                            makeTag += "<label class='switch'><input type='checkbox' ng-model='data.useYn' ng-click='event.modifyUserWorkspace(data)'><span class='slider round'></span></label>";
+                                        case "USER_LEVEL_MODIFY":
+                                            if ($rootScope.checkMngPermission('USER_PERMISSION_MNG_WORKSPACE')) {
+                                                makeTag += "<span class='titlename cursor table-word-break-all' ng-click='event.modify(data.id)'>" + scope.data.levelName.replace(/</gi, '&lt;') + "</span>";
+                                            }
+                                            else {
+                                                makeTag += "<span class='titlename cursor table-word-break-all'>" + scope.data.levelName + "</span>";
+                                            }
+                                            break;
+
+                                        case "WORKSPACE_SETTING_PERM_YN" :
+                                            makeTag += "<label class='switch'><input type='checkbox' ng-model='data.permWorkSpaceSetting' ng-click='event.modify(data)'><span class='slider round'></span></label>";
                                             break;
 
                                         case "PROJECT_SETTING_PERM_YN" :
diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json
index 0251df0..7cc9db7 100644
--- a/src/main/webapp/i18n/ko/global.json
+++ b/src/main/webapp/i18n/ko/global.json
@@ -138,7 +138,8 @@
         "failedToModifyWorkspaceName": "�뾽臾� 怨듦컙 紐� �닔�젙 �떎�뙣",
         "failedToRegularPaymentChange": "�젙湲� 寃곗젣 蹂�寃� �떎�뙣",
         "failedToParticipationStatusChange": "李몄뿬 �긽�깭 蹂�寃� �떎�뙣",
-        "failedToSelectWorkspaceFullUserList": "�뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶 �떎�뙣"
+        "failedToSelectWorkspaceFullUserList": "�뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶 �떎�뙣",
+        "failedToModifyUserLevel": "�궗�슜�옄 �벑湲� �긽�꽭 �젙蹂� 議고쉶 �떎�뙣"
     },
     "issue": {
         "issueType": "�씠�뒋 �쑀�삎",
diff --git a/src/main/webapp/scripts/app/manageUser/manageUser.controller.js b/src/main/webapp/scripts/app/manageUser/manageUser.controller.js
index a36d03d..4728331 100644
--- a/src/main/webapp/scripts/app/manageUser/manageUser.controller.js
+++ b/src/main/webapp/scripts/app/manageUser/manageUser.controller.js
@@ -103,6 +103,13 @@
                         .setHWidth("width-40-p")
                         .setDAlign("text-center")
                         .setDName("account"));
+                    $scope.vm.tableConfigs1.push($tableProvider.config()
+                        .setHName("manageUser.manageWorkspacePerm")
+                        .setHWidth("width-120-p")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDName("manageWorkspace")
+                        .setDRenderer("WORKSPACE_SETTING_PERM_YN"));
                     $scope.vm.tableConfigs.push($tableProvider.config()
                         .setHName("manageUser.manageProjectPerm")
                         .setHWidth("width-20-p")
diff --git a/src/main/webapp/scripts/app/workspace/levelModify.controller.js b/src/main/webapp/scripts/app/workspace/levelModify.controller.js
new file mode 100644
index 0000000..9994975
--- /dev/null
+++ b/src/main/webapp/scripts/app/workspace/levelModify.controller.js
@@ -0,0 +1,114 @@
+/**
+ * Created by wisestone on 2018-05-08.
+ */
+'use strict';
+
+define([
+        'app',
+        'angular'
+    ],
+    function (app, angular) {
+        app.controller('levelModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'UserWorkspace', 'parameter', 'SweetAlert', '$filter',
+            function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, UserWorkspace, parameter, SweetAlert, $filter) {
+
+                $scope.fn = {
+                    cancel : cancel,    //  �뙘�뾽 李� �떕湲�
+                    formSubmit : formSubmit,    //  �뤌 �쟾�넚
+                    formCheck : formCheck,  //  �뤌 泥댄겕
+                    modifyUserPermission : modifyUserPermission,   //  沅뚰븳 蹂�寃�
+                    //detail : detail //  �긽�꽭 �젙蹂�
+                };
+
+                $scope.vm = {
+                    search : {
+                        id : parameter.id
+                    },
+                    form : {
+                        levelName : "",
+                        permWorkspaceSetting : false,
+                        permProjectSetting : false,
+                        permIssueSetting : false,
+                        permUser : false,
+                        permNotice : false,
+                        permFAQ : false,
+                        permQnA : false,
+                        permGuide : false
+                    }
+                };
+
+                function formCheck(formInvalid) {
+                    if (formInvalid) {
+                        return true;
+                    }
+
+                    return false;
+                }
+
+                //  �뤌 �쟾�넚
+                function formSubmit(condition) {
+                    $rootScope.spinner = true;
+
+                    var content = {
+                        id : parameter.id,
+                        title : $rootScope.preventXss($scope.vm.form.title),
+                        //description : $rootScope.preventXss($scope.vm.form.description)
+                    };
+
+                    UserWorkspace.modify($resourceProvider.getContent(condition,
+                        content,
+                        $resourceProvider.getPageContent(0, 0))).then(function (result) {
+
+                        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;
+                    });
+
+                }
+
+                //  �뙘�뾽 李� �떕湲�
+                function cancel() {
+                    $rootScope.$broadcast("closeLayer");    //  �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙
+                    $uibModalInstance.dismiss('cancel');
+                    $(document).unbind("keydown");  //  �떒異뺥궎 �씠踰ㅽ듃 �젣嫄�
+                }
+
+                /*//  �긽�꽭 議고쉶
+                function detail() {
+                    Notice.detail($resourceProvider.getContent(
+                        $scope.vm.search,
+                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
+
+                        if (result.data.message.status === "success") {
+                            if ($rootScope.isDefined(result.data.data)) {
+                                $scope.vm.form.title = result.data.data.title;
+                                $scope.vm.form.description = result.data.data.description;
+                            }
+                        }
+                        else {
+                            SweetAlert.error($filter("translate")("managementWorkspace.failedToModifyUserLevel"), result.data.message.message);  //怨듭��궗�빆 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣
+                        }
+                    });
+                }
+                //  怨듭��궗�빆 �긽�꽭 議고쉶
+                $scope.fn.detail();*/
+
+                function modifyUserPermission(userPermission ) {
+                    UserWorkspace.levelModify($resourceProvider.getContent(userPermission,
+                        $resourceProvider.getPageContent(0, 0))).then(function (result) {
+                        if (result.data.message.status === "success") {
+                        }
+                        else {
+                            SweetAlert.error($filter("translate")("managementWorkspace.failedToParticipationStatusChange"), result.data.message.message); // "李몄뿬 �긽�깭 蹂�寃� �떎�뙣"
+                        }
+                    });
+                }
+
+            }]);
+    });
diff --git a/src/main/webapp/scripts/app/workspace/workspace.js b/src/main/webapp/scripts/app/workspace/workspace.js
index 2362b7b..0a2c02e 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',
-                                "crypto", "reservationDisableUserService", "workspacePaymentAddController", "workspaceUserLevelController", "workspaceDepartmentConfigController"], function () {
+                                "crypto", "reservationDisableUserService", "workspacePaymentAddController", "workspaceUserLevelController", "workspaceDepartmentConfigController", "levelModifyController"], function () {
                                 deferred.resolve();
                             });
 
diff --git a/src/main/webapp/scripts/app/workspace/workspacePaymentExecute.controller.js b/src/main/webapp/scripts/app/workspace/workspacePaymentExecute.controller.js
index 9cf9b8a..097a9c6 100644
--- a/src/main/webapp/scripts/app/workspace/workspacePaymentExecute.controller.js
+++ b/src/main/webapp/scripts/app/workspace/workspacePaymentExecute.controller.js
@@ -220,7 +220,8 @@
                         return;
                     }
 
-                    Payment.detail($resourceProvider.getContent(content,
+                    //"�궗�슜�옄 愿�由�" �꺆�쑝濡� �씠�룞 �떆 Payment/detail �슂泥��씠 �뱾�뼱���꽌 �븘�옒�궡�슜 二쇱꽍泥섎━
+                    /*Payment.detail($resourceProvider.getContent(content,
                         $resourceProvider.getPageContent(0, 0))).then(function (result) {
                         if (result.data.message.status === "success") {
                             if (result.data.data != null) {
@@ -232,7 +233,7 @@
                         else {
                             SweetAlert.error($filter("translate")("managementWorkspace.failedToPaymentInformation"), result.data.message.message); // "寃곗젣 �젙蹂� 議고쉶 �떎�뙣"
                         }
-                    });
+                    });*/
                 }
 
                 //  �뾽臾� 怨듦컙 紐� �닔�젙
diff --git a/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js b/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js
index 3f5130c..2b2852d 100644
--- a/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js
+++ b/src/main/webapp/scripts/app/workspace/workspaceUserConfig.controller.js
@@ -56,7 +56,7 @@
                     modifyUserWorkspace : modifyUserWorkspace   //  �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃�
                 };
 
-                //  寃곗젣 �긽�꽭 �젙蹂�
+                //  �긽�꽭 �젙蹂�
                 $scope.$on("getUserWorkspaceList", function () {
                     $scope.fn.getUserWorkspaceList(0);
                 });
diff --git a/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js b/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js
index fb39d05..ac7a1ac 100644
--- a/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js
+++ b/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js
@@ -19,8 +19,8 @@
                 $scope.fn.initSearch = initSearch;  //  寃��깋 議곌굔 珥덇린�솕
                 $scope.fn.levelAdd = levelAdd;    //  �벑湲� 異붽�
                 $scope.fn.removes = removes;    // �궗�슜�옄 �벑湲� �궘�젣
-                $scope.fn.getPageList = getPageList;  //  紐⑸줉 議고쉶
                 $scope.fn.listView = listView;    //  紐⑸줉 �솕硫댁쑝濡� 蹂�寃�
+                $scope.fn.modify = modify;    // �궗�슜�옄 �벑湲� �닔�젙
 
                 /*  $scope.vm �긽�냽 以�  */
                 $scope.vm.search = {
@@ -40,61 +40,13 @@
 
                 //  �뀒�씠釉� �씠踰ㅽ듃
                 $scope.vm.tableEvent = {
-                    // modifyUserWorkspace : modifyUserWorkspace   //  �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃�
+                    modify : modify   //  �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃�
                 };
 
                 //  �궗�슜�옄 �벑湲� 由ъ뒪�듃 遺덈윭�삤湲�
                 $scope.$on("getUserLevelList", function () {
                     $scope.fn.getUserLevelList(0);
                 });
-
-                //  �씠�뒋 紐⑸줉�쓣 議고쉶�븳�떎.
-                function getPageList(selectedPage, detail = false) {
-                    if (selectedPage < 0) {
-                        selectedPage = 0;
-                    }
-                    //  �쁽�옱 �럹�씠吏� �젙蹂�
-                    var currentPage = 0;
-
-                    //  荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣
-                    if (angular.isUndefined(selectedPage) || selectedPage === "") {
-                        currentPage = $scope.vm.page.selectedPage;
-                    }
-                    else {
-                        currentPage = selectedPage;
-                    }
-
-
-                    //  寃��깋 議곌굔�쓣 ���옣�븳�떎.
-                    //$scope.fn.makeVmSearchObject();
-
-
-                    // �쁽�옱 �꽑�깮�맂 �봽濡쒖젥�듃瑜� 寃��깋 湲곕낯�쑝濡� 異붽�
-                    if ($rootScope.workProject != null && $rootScope.workProject.id > -1) {
-                        var find = findProjectSearch($rootScope.workProject.id);
-                        if (!find) {
-                            $scope.vm.projects.push($rootScope.workProject);
-                        }
-                    }
-
-                    //  �씠�뒋 寃��깋 議곌굔�쓣 留뚮뱺�떎.
-                    var conditions = $scope.fn.makeSearchConditions();
-
-                    Issue.find($resourceProvider.getContent(conditions,
-                        $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) {
-
-                        if (result.data.message.status === "success") {
-                            $scope.vm.page.selectedPage = currentPage + 1;
-                            $scope.vm.responseData = result.data;
-                            if (detail) {
-                                changeDetailView(result.data.data[0].id);
-                            }
-                        }
-                        else {
-                            SweetAlert.error($filter("translate")("issue.failedIssueLookup"), result.data.message.message); // �씠�뒋 議고쉶 �떎�뙣
-                        }
-                    });
-                }
 
                 //  紐⑸줉 �솕硫댁쑝濡� 蹂�寃쏀븳�떎.
                 function listView() {
@@ -105,6 +57,23 @@
                     $scope.vm.responseData.data = angular.copy(temp);
                     //  留덉�留됱쑝濡� 蹂닿퀬�엳�뜕 �씠�뒋 id瑜� 珥덇린�솕�븳�떎.
                     $rootScope.currentDetailIssueId = null;
+                }
+
+                //  �궗�슜�옄 �벑湲� �닔�젙
+                function modify(id) {
+                    $uibModal.open({
+                        templateUrl : 'views/workspace/workspaceLevelModify.html',
+                        size : "md",
+                        controller : 'levelModifyController',
+                        backdrop : 'static',
+                        resolve : {
+                            parameter : function () {
+                                return {
+                                    id : id
+                                };
+                            }
+                        }
+                    });
                 }
 
                 // �궗�슜�옄 �벑湲� �궘�젣
@@ -169,8 +138,7 @@
                                         }, 100);
 
                                         $scope.fn.listView();
-
-                                        $scope.fn.getPageList(0);
+                                        $scope.fn.getUserLevelList(0);
                                     }
                                     else {
                                         $timeout(function () {
@@ -205,14 +173,15 @@
                         .setHName("managementWorkspace.levelName")
                         .setHWidth("width-120-p")
                         .setDAlign("text-center")
-                        .setDName("levelName"));
+                        .setDType("renderer")
+                        .setDRenderer("USER_LEVEL_MODIFY"));
                     $scope.vm.tableConfigs1.push($tableProvider.config()
                         .setHName("manageUser.manageWorkspacePerm")
                         .setHWidth("width-120-p")
                         .setDType("renderer")
                         .setDAlign("text-center")
-                        .setDName("manageProject")
-                        .setDRenderer("WORKSPACE_USE_YN"));
+                        .setDName("manageWorkspace")
+                        .setDRenderer("WORKSPACE_SETTING_PERM_YN"));
                     $scope.vm.tableConfigs1.push($tableProvider.config()
                         .setHName("manageUser.manageProjectPerm")
                         .setHWidth("width-120-p")
@@ -297,6 +266,7 @@
                         }
                     });
                 }
+
                 //  �벑湲� 異붽�
                 function levelAdd() {
                     $uibModal.open({
diff --git a/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js b/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js
index 5c4c279..86dd39f 100644
--- a/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js
+++ b/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js
@@ -49,7 +49,7 @@
                 });
             },
             modify : function (conditions) {
-                return $http.post("userWorkspace/modify", conditions).then(function (response) {
+                return $http.post("userLevel/modify", conditions).then(function (response) {
                     $log.debug("�썙�겕�뒪�럹�씠�뒪 李몄뿬�옄 李몄뿬 �긽�깭 蹂�寃� 寃곌낵 : ", response);
                     return response;
                 });
diff --git a/src/main/webapp/scripts/main.js b/src/main/webapp/scripts/main.js
index 4528d6b..c26e97e 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',  //  �궗�슜�옄 �벑湲� 異붽� 而⑦듃濡ㅻ윭
+        'levelModifyController' : 'app/workspace/levelModify.controller',  //  �궗�슜�옄 �벑湲� �닔�젙 而⑦듃濡ㅻ윭
         'workspaceDepartmentAddController' : 'app/workspace/workspaceDepartmentAdd.controller',  //  遺��꽌 異붽� 而⑦듃濡ㅻ윭
         'workspaceDepartmentConfigController' : 'app/workspace/workspaceDepartmentConfig.controller',  //  �궗�슜�옄 遺��꽌 愿�由� 而⑦듃濡ㅻ윭
         'workspaceService' : 'components/workspace/workspace.service',  //  �뾽臾� 怨듦컙�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎.
diff --git a/src/main/webapp/views/workspace/workspaceLevelAdd.html b/src/main/webapp/views/workspace/workspaceLevelAdd.html
index 5e083e4..671d995 100644
--- a/src/main/webapp/views/workspace/workspaceLevelAdd.html
+++ b/src/main/webapp/views/workspace/workspaceLevelAdd.html
@@ -18,11 +18,16 @@
                     <td>
                         <div class="input-group mb-0 mr-sm-0 mb-sm-0">
                             <input id="levelAddForm1"
-                                   class="form-control" placeholder="異붽� �븷 �벑湲됰챸�쓣 �엯�젰�븯�꽭�슂."
+                                   name="levelName"
                                    type="text"
-                                   ng-model="vm.form.levelName"
-                                   maxlength="50"
+                                   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.levelName"
+                                   ng-maxlength="200"
+                                   maxlength="200"
                                    required>
                         </div>
                     </td>
diff --git a/src/main/webapp/views/workspace/workspaceLevelModify.html b/src/main/webapp/views/workspace/workspaceLevelModify.html
new file mode 100644
index 0000000..175c0ff
--- /dev/null
+++ b/src/main/webapp/views/workspace/workspaceLevelModify.html
@@ -0,0 +1,114 @@
+<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="levelAddForm">
+            <table class="table table-lightborder">
+                <tr>
+                    <td>
+                        <label for="levelAddForm1"><span translate="managementWorkspace.levelName">�벑湲됰챸</span><code class="highlighter-rouge">*</code></label>
+                    </td>
+                    <td>
+                        <div class="input-group mb-0 mr-sm-0 mb-sm-0">
+                            <input id="levelAddForm1"
+                                   name="levelName"
+                                   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.levelName"
+                                   ng-maxlength="200"
+                                   maxlength="200"
+                                   required>
+                        </div>
+                    </td>
+                </tr>
+                <!--tableColumnGenerator.dirextive.js �뙆�씪 李멸퀬-->
+                <tr>
+                    <td class="text-left bold">
+                        <span translate="manageUser.manageWorkspacePerm">�썙�겕�뒪�럹�씠�뒪 愿�由�</span>
+                    </td>
+                    <td colspan="2">
+                        <label class='switch'><input type='checkbox' ng-model='vm.form.permWorkspaceSetting'><span class='slider round'></span></label>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="text-left bold">
+                        <span translate="manageUser.manageProjectPerm">�봽濡쒖젥�듃 愿�由�</span>
+                    </td>
+                    <td colspan="2">
+                        <label class='switch'><input type='checkbox' ng-model='vm.form.permProjectSetting'><span class='slider round'></span></label>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="text-left bold">
+                        <span translate="manageUser.manageIssueSystemPerm">�씠�뒋 �떆�뒪�뀥 愿�由�</span>
+                    </td>
+                    <td>
+                        <label class='switch'><input type='checkbox' ng-model='vm.form.permIssueSetting' ><span class='slider round'></span></label>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="text-left bold">
+                        <span translate="manageUser.manageUserPerm">�궗�슜�옄 愿�由�</span>
+                    </td>
+                    <td>
+                        <label class='switch'><input type='checkbox' ng-model='vm.form.permUser'><span class='slider round'></span></label>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="text-left bold">
+                        <span translate="manageUser.manageNoticePerm">怨듭��궗�빆 愿�由�</span>
+                    </td>
+                    <td>
+                        <label class='switch'><input type='checkbox' ng-model='vm.form.permNotice' ><span class='slider round'></span></label>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="text-left bold">
+                        <span translate="manageUser.manageFAQPerm">FAQ 愿�由�</span>
+                    </td>
+                    <td>
+                        <label class='switch'><input type='checkbox' ng-model='vm.form.permFAQ' ><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='vm.form.permQnA' ><span class='slider round'></span></label>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="text-left bold">
+                        <span translate="manageUser.manageGuidePerm">媛��씠�뱶 愿�由�</span>
+                    </td>
+                    <td>
+                        <label class='switch'><input type='checkbox' ng-model='vm.form.permGuide' ><span class='slider round'></span></label>
+                    </td>
+                </tr>
+            </table>
+        </form>
+    </div>
+
+    <div class="modal-footer buttons-on-right">
+        <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">痍⑥냼</span></button>
+        <button type="button" class="btn btn-md btn-primary bold"
+                js-short-cut
+                js-short-cut-action="(fn.formCheck(levelAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit(vm.form)"
+                ng-disabled="fn.formCheck(paymentAddForm.$invalid)"
+                ng-click="fn.formSubmit(vm.form)"><span translate="common.save">���옣</span>
+        </button>
+    </div>
+</div>
\ No newline at end of file
diff --git a/src/main/webapp/views/workspace/workspaceUserLevelConfig.html b/src/main/webapp/views/workspace/workspaceUserLevelConfig.html
index 2cd37bd..24ed4a8 100644
--- a/src/main/webapp/views/workspace/workspaceUserLevelConfig.html
+++ b/src/main/webapp/views/workspace/workspaceUserLevelConfig.html
@@ -4,35 +4,10 @@
             <div class="searchdiv">
                 <form name="userWorkspaceForm" role="form" ng-enter="fn.getUserWorkspaceList(0)">
                     <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">
-                            </div>
-                        </div>-->
-
                         <div class="col-xl-4">
                             <div class="form-group" style="margin-left: 50px">
                                 <label translate="managementWorkspace.levelName">�벑湲됰챸</label>
-                                <input class="form-control" type="text" ng-model="vm.search.level" maxlength="50">
+                                <input class="form-control" type="text" ng-click="" ng-model="vm.search.level" maxlength="50">
                             </div>
                         </div>
 
@@ -70,21 +45,6 @@
                         </div>
                     </div>
                     <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"
-                                    class="btn btn-secondary dropdown-toggle"
-                                    data-toggle="dropdown"
-                                    type="button">異붽�湲곕뒫
-                            </button>
-                            <div aria-labelledby="dropdownMenuButton2"
-                                 class="dropdown-menu"
-                                 x-placement="bottom-start"
-                                 style="position: absolute; transform: translate3d(0px, 30px, 0px); top: 0px; left: 0px; will-change: transform;">
-                                <a class="dropdown-item cursor ng-isolate-scope" form-submit="projectListForm" make-search-conditions="fn.makeSearchConditions()"><span translate="common.downloadExcel" class="ng-scope">�뿊�� �떎�슫濡쒕뱶</span></a>
-                                <a class="dropdown-item" href="#"> �궘�젣</a>
-                            </div>
-                        </div>-->
                         <form class="form-inline justify-content-sm-end pull-right ng-pristine ng-valid" method="post" action="/workspace/downloadExcel" name="userLevelListForm">
                             <input type="hidden" name="conditions" autocomplete="off">
                             <div class="btn-group">
@@ -99,11 +59,6 @@
                     </div>
                 </div>
             </div>
-
-            <!--<div class="table-responsive">
-                <js-table data="vm.responseData.data" table-configs="vm.tableConfigs"
-                          event="vm.tableEvent"></js-table>
-            </div>-->
 
             <div class="table-responsive">
                 <js-table data="vm.responseData.data" table-configs="vm.tableConfigs1"

--
Gitblit v1.8.0