From d78323a9138aab73f9f1b25e0a74283780176452 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 목, 09 12월 2021 20:43:47 +0900
Subject: [PATCH] - 이슈전체보기/이슈프로젝트보기 권한 생성 - 워크스페이스 권한을 가진 사용자 OWL정보 오류 해결

---
 src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js |  310 +++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 234 insertions(+), 76 deletions(-)

diff --git a/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js b/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js
index 9245cbf..f3cd142 100644
--- a/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js
+++ b/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js
@@ -8,120 +8,267 @@
         'angular'
     ],
     function (app, angular) {
-        app.controller('workspaceUserConfigController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$q', '$state', '$tableProvider', 'Payment', 'Workspace',
-            'UserWorkspace', '$filter',
-            function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $q, $state, $tableProvider, Payment, Workspace, UserWorkspace, $filter) {
+        app.controller('workspaceUserLevelController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$q', '$state', '$tableProvider', 'Payment', 'Workspace',
+            'UserWorkspace', '$filter','$timeout',
+            function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $q, $state, $tableProvider, Payment, Workspace, UserWorkspace, $filter, $timeout) {
 
 
                 /*  $scope.fn �긽�냽 以�  */
-                $scope.fn.getUserWorkspaceList = getUserWorkspaceList;  //  �뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 �젙蹂�
-                $scope.fn.makeTableConfigs = makeTableConfigs;  //  �뾽臾� 怨듦컙�뿉 李몄뿬�븯�뒗 �쟾泥� �궗�슜�옄 紐⑸줉 �뀒�씠釉� �꽕�젙
-                $scope.fn.initSearch = initSearch;  //  寃��깋 議곌굔 珥덇린�솕
+                $scope.fn.getUserLevelList = getUserLevelList;  //  �궗�슜�옄 �벑湲� 愿�由� 由ъ뒪�듃
+                $scope.fn.makeTableConfigs = makeTableConfigs;  //  �궗�슜�옄 �벑湲� 愿�由� 紐⑸줉 �뀒�씠釉� �꽕�젙
+                $scope.fn.initSearchUserLevel = initSearchUserLevel;  //  寃��깋 議곌굔 珥덇린�솕
                 $scope.fn.changePageRowCount = changePageRowCount;  //  �뾽臾� 怨듦컙 李몄뿬 �궗�슜�옄 紐⑸줉 蹂닿린 媛쒖닔 蹂�寃�
+                $scope.fn.levelAdd = levelAdd;    //  �벑湲� 異붽�
+                $scope.fn.removeLevels = removeLevels;    // �궗�슜�옄 �벑湲� �궘�젣
+                $scope.fn.makeSearchConditions = makeSearchConditions;
 
 
                 /*  $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,
                     selectedPageRowCount : String(10)
                 };
 
-                $scope.vm.tableConfigs = [];
+                $scope.vm.tableConfigs1 = [];
                 $scope.vm.responseData = {
                     data : []
                 };
 
                 //  �뀒�씠釉� �씠踰ㅽ듃
-                $scope.vm.tableEvent = {
-                    modifyUserWorkspace : modifyUserWorkspace   //  �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃�
+                $scope.tableEvent1 = {
+                    modifyLevelPermission : modifyLevelPermission,   //  沅뚰븳 蹂�寃�
+                    modifyLevel : modifyLevel   //  �궗�슜�옄 �벑湲됰챸 蹂�寃�
                 };
 
-                //  寃곗젣 �긽�꽭 �젙蹂�
-                $scope.$on("getUserWorkspaceList", function () {
-                    $scope.fn.getUserWorkspaceList(0);
-                });
-
-                //  �뾽臾� 怨듦컙 李몄뿬�븯�뒗 �궗�슜�옄�쓽 李몄뿬 �긽�깭 蹂�寃�
-                function modifyUserWorkspace(userWorkspace) {
-                    UserWorkspace.modify($resourceProvider.getContent(
-                        userWorkspace,
+                function modifyLevelPermission(userPermission) {
+                    UserWorkspace.modifyLevelPermission($resourceProvider.getContent(
+                        userPermission,
                         $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); // "李몄뿬 �긽�깭 蹂�寃� �떎�뙣"
+                            SweetAlert.error($filter("translate")("managementWorkspace.failedToParticipationStatusChange"), result.data.message.message); // "沅뚰븳 蹂�寃� �떎�뙣"
                         }
                     });
                 }
 
+                //  �궗�슜�옄 �벑湲� 由ъ뒪�듃 遺덈윭�삤湲�
+                $scope.$on("getUserLevelList", function () {
+                    $scope.fn.getUserLevelList(0);
+                });
+
+                function makeSearchConditions() {
+                    var conditions = {
+                        levelName: $scope.vm.search.levelName
+                    }
+                    return conditions;
+                }
+
+                //  �궗�슜�옄 �벑湲� �닔�젙
+                function modifyLevel(id) {
+                    $uibModal.open({
+                        templateUrl : 'views/workspace/workspaceLevelModify.html',
+                        size : "md",
+                        controller : 'workspaceLevelModifyController',
+                        backdrop : 'static',
+                        resolve : {
+                            parameter : function () {
+                                return {
+                                    id : id
+                                };
+                            }
+                        }
+                    });
+                }
+
+                // �궗�슜�옄 �벑湲� �궘�젣
+                function removeLevels() {
+                    var removeIds = [];
+                    var removePermission = true;
+
+                    angular.forEach($scope.vm.responseData.data, function (data) {
+                        if (data.checked && data.modifyPermissionCheck) {
+                            removeIds.push(data.id);
+                        }
+
+                        if (data.checked && !data.modifyPermissionCheck) {
+                            removePermission = false;
+                        }
+                    });
+
+                    if (!removePermission) {
+                        SweetAlert.swal({
+                            html : true,
+                            title : $filter("translate")("common.deleteFailed"), // �궘�젣 �떎�뙣
+                            text : $filter("translate")("managementWorkspace.notHaveDeletePermissionExistsAnLevel"), // �궘�젣 沅뚰븳�씠 �뾾�뒗 �벑湲됱씠 議댁옱 �빀�땲�떎.
+                            type : "error"
+                        });
+                        return;
+                    }
+
+                    if (removeIds.length < 1) {
+                        SweetAlert.swal({
+                            title : $filter("translate")("common.checkPurgingTargets"), // �궘�젣 ���긽 �솗�씤
+                            text : $filter("translate")("common.selectDestinationDeletion"), // �궘�젣 ���긽�쓣 �꽑�깮�븯�꽭�슂.
+                            type : "warning"
+                        });
+                        return;
+                    }
+
+                    //  �궘�젣 �븣由�
+                    SweetAlert.swal({
+                            title : $filter("translate")("managementWorkspace.deleteLevel"), // �벑湲� �궘�젣
+                            text : $filter("translate")("managementWorkspace.wantToDeleteSelectLevel"), // �꽑�깮�븳 �벑湲됱쓣 �궘�젣�븯寃좎뒿�땲源�? �궗�슜�옄媛� 吏곸젒 �궘�젣�븳 �벑湲됱� �뼱�뼚�븳 寃쎌슦�뿉�룄 蹂듦뎄媛� 遺덇��뒫�빀�땲�떎.
+                            type : "warning",
+                            showCancelButton : true,
+                            confirmButtonColor : "#DD6B55",
+                            confirmButtonText : $filter("translate")("common.delete"), // �궘�젣
+                            cancelButtonText : $filter("translate")("common.cancel"), // 痍⑥냼
+                            closeOnConfirm : false,
+                            closeOnCancel : true
+                        },
+                        function (isConfirm) {
+                            SweetAlert.close();
+
+                            if (isConfirm) {
+                                $rootScope.spinner = true;
+
+                                UserWorkspace.levelRemove($resourceProvider.getContent(
+                                    { removeIds : removeIds },
+                                    $resourceProvider.getPageContent(0, 0))).then(function (result) {
+
+                                    if (result.data.message.status === "success") {
+                                        $timeout(function () {
+                                            SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // �궘�젣 �꽦怨�
+                                        }, 100);
+
+                                        $scope.fn.getUserLevelList(0);
+                                    }
+                                    else {
+                                        $timeout(function () {
+                                            SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // �궘�젣 �떎�뙣
+                                        }, 100);
+                                    }
+
+                                    $rootScope.spinner = false;
+                                });
+                            }
+                        });
+                }
+
+
                 //  寃��깋 議곌굔 珥덇린�솕
-                function initSearch() {
-                    $scope.vm.search.name = "";
-                    $scope.vm.search.account = "";
-                    $scope.vm.search.statuses = [];
-                    $scope.fn.getUserWorkspaceList(0);
+                function initSearchUserLevel() {
+                    $scope.vm.search.levelName = "";
+                    $scope.fn.getUserLevelList(0);
                 }
 
-                //  �뾽臾� 怨듦컙 李몄뿬 �궗�슜�옄 紐⑸줉 蹂닿린 媛쒖닔 蹂�寃�
+                //  �벑湲� 紐⑸줉 蹂닿린 媛쒖닔 蹂�寃�
                 function changePageRowCount() {
-                    $scope.fn.getUserWorkspaceList(0);
+                    $scope.fn.getUserLevelList(0);
                 }
 
-                //  �뾽臾닿났媛� �쟾泥� �궗�슜�옄 紐⑸줉 �뀒�씠釉� �꽕�젙
+                //  �궗�슜�옄 �벑湲� 愿�由� �뀒�씠釉� �꽕�젙
                 function makeTableConfigs() {
-                    $scope.vm.tableConfigs = [];
+                    $scope.vm.tableConfigs1 = [];
 
-                    $scope.vm.tableConfigs.push($tableProvider.config()
-                        .setHName("common.name")
+                    $scope.vm.tableConfigs1.push($tableProvider.config()
+                        .setDType("checkbox")
+                        .setHWidth("width-20-p")
+                        .setDAlign("text-center"));
+                    $scope.vm.tableConfigs1.push($tableProvider.config()
+                        .setHName("managementWorkspace.levelName")
                         .setHWidth("width-120-p")
                         .setDAlign("text-center")
-                        .setDName("userName"));
-                    $scope.vm.tableConfigs.push($tableProvider.config()
-                        .setHName("common.email")
+                        .setDType("renderer")
+                        .setDRenderer("USER_LEVEL_MODIFY"));
+                    $scope.vm.tableConfigs1.push($tableProvider.config()
+                        .setHName("manageUser.manageAllIssuePerm")
                         .setHWidth("width-120-p")
+                        .setDType("renderer")
                         .setDAlign("text-center")
-                        .setDName("account"));
-                    $scope.vm.tableConfigs.push($tableProvider.config()
-                        .setHName("common.department")
+                        .setDName("manageAllIssue")
+                        .setDRenderer("All_ISSUE_SETTING_PERM_YN"));
+                    $scope.vm.tableConfigs1.push($tableProvider.config()
+                        .setHName("manageUser.manageAllProjectPerm")
                         .setHWidth("width-120-p")
+                        .setDType("renderer")
                         .setDAlign("text-center")
-                        .setDName("department"));
-                    $scope.vm.tableConfigs.push($tableProvider.config()
-                        .setHName("common.level")
+                        .setDName("manageAllProject")
+                        .setDRenderer("All_PROJECT_SETTING_PERM_YN"));
+                    $scope.vm.tableConfigs1.push($tableProvider.config()
+                        .setHName("manageUser.managePartnerPerm")
                         .setHWidth("width-120-p")
+                        .setDType("renderer")
                         .setDAlign("text-center")
-                        .setDName("level"));
-                    $scope.vm.tableConfigs.push($tableProvider.config()
-                        .setHName("managementWorkspace.joinStatus")
+                        .setDName("managePartner")
+                        .setDRenderer("PARTNER_SETTING_PERM_YN"));
+                    $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.tableConfigs1.push($tableProvider.config()
+                        .setHName("manageUser.manageProjectPerm")
+                        .setHWidth("width-120-p")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDName("manageProject")
+                        .setDRenderer("PROJECT_SETTING_PERM_YN"));
+                    $scope.vm.tableConfigs1.push($tableProvider.config()
+                        .setHName("manageUser.manageIssueSystemPerm")
+                        .setHWidth("width-120-p")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDName("IssueSystem")
+                        .setDRenderer("ISSUE_SETTING_PERM_YN"));
+                    $scope.vm.tableConfigs1.push($tableProvider.config()
+                        .setHName("manageUser.manageApiPerm")
+                        .setHWidth("width-120-p")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDName("User")
+                        .setDRenderer("API_PERM_YN"));
+                    $scope.vm.tableConfigs1.push($tableProvider.config()
+                        .setHName("manageUser.manageNoticePerm")
                         .setHWidth("width-140-p")
-                         .setDType("renderer")
+                        .setDType("renderer")
                         .setDAlign("text-center pdr0 pdt0 pdl0 pdb0")
-                        .setDName("userYn")
-                        .setDRenderer("WORKSPACE_USE_YN"));
+                        .setDName("Notice")
+                        .setDRenderer("NOTICE_PERM_YN"));
+                    $scope.vm.tableConfigs1.push($tableProvider.config()
+                        .setHName("manageUser.manageFAQPerm")
+                        .setHWidth("width-140-p")
+                        .setDType("renderer")
+                        .setDAlign("text-center pdr0 pdt0 pdl0 pdb0")
+                        .setDName("FAQ")
+                        .setDRenderer("FAQ_PERM_YN"));
+                    $scope.vm.tableConfigs1.push($tableProvider.config()
+                        .setHName("manageUser.manageQnAPerm")
+                        .setHWidth("width-140-p")
+                        .setDType("renderer")
+                        .setDAlign("text-center pdr0 pdt0 pdl0 pdb0")
+                        .setDName("QnA")
+                        .setDRenderer("QNA_PERM_YN"));
+                    $scope.vm.tableConfigs1.push($tableProvider.config()
+                        .setHName("manageUser.manageGuidePerm")
+                        .setHWidth("width-140-p")
+                        .setDType("renderer")
+                        .setDAlign("text-center pdr0 pdt0 pdl0 pdb0")
+                        .setDName("Guide")
+                        .setDRenderer("GUIDE_PERM_YN"));
                 }
 
-                //  �뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶
-                function getUserWorkspaceList(selectedPage) {
+                //  �궗�슜�옄 �벑湲� 愿�由� 紐⑸줉 議고쉶
+                function getUserLevelList(selectedPage) {
                     if (selectedPage < 0) {
                         selectedPage = 0;
                     }
@@ -137,20 +284,11 @@
                     }
 
                     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;
-                        })(),
+                        levelName : $scope.vm.search.levelName //�벑湲됰챸
                     };
 
-                    UserWorkspace.find($resourceProvider.getContent(conditions,
+                    //�뀒�씠釉� 由ъ뒪�듃 �뜲�씠�꽣 而⑦듃濡ㅻ윭 �슂泥�
+                    UserWorkspace.levelFind($resourceProvider.getContent(conditions,
                         $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) {
 
                         if (result.data.message.status === "success") {
@@ -158,12 +296,32 @@
                             $scope.vm.responseData = result.data;
                         }
                         else {
-                            SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullUserList"), result.data.message.message); // "�뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶 �떎�뙣"
+                            SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullLevelList"), result.data.message.message); // "�궗�슜�옄 �벑湲� 紐⑸줉 議고쉶 �떎�뙣"
+                        }
+                    });
+                }
+
+                //  �벑湲� 異붽�
+                function levelAdd() {
+                    $uibModal.open({
+                        templateUrl : 'views/workspace/workspaceLevelAdd.html',
+                        size : "md",
+                        controller : 'workspaceLevelAddController',
+                        backdrop : 'static',
+                        resolve : {
+                            parameter : function () {
+                                return {
+                                    // workspaceId : $scope.vm.workspaceVo.id,
+                                    // usdKrw : $scope.vm.workspaceVo.usdKrw,
+                                    // maxUser : $scope.vm.workspaceVo.maxUser
+                                };
+                            }
                         }
                     });
                 }
 
                 $scope.fn.makeTableConfigs();
+                $scope.fn.getUserLevelList();
             }
         ]);
     }

--
Gitblit v1.8.0