OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2022-01-14 125084f587f86785cda54223848b6ae22310af59
업체에서 여러 이메일 추가 시 이슈에서 메일 보낼 때 분리
8개 파일 변경됨
87 ■■■■ 파일 변경됨
src/main/webapp/i18n/ko/global.json 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueSendMailPartners.controller.js 45 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js 6 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js 4 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/components/utils/autoComplete.controller.js 14 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueSendMailPartners.html 13 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/workspace/workspaceDepartmentConfig.html 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/workspace/workspaceUserLevelConfig.html 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/i18n/ko/global.json
@@ -293,6 +293,7 @@
        "CommonSendIssueMail": "일반 메일 발송",
        "SendIssueMail": "메일 발송 입력",
        "sendIssueSelectedUsers": "프로젝트에 참여하고 있는 다른 사용자에게 이슈 정보를 보냅니다.",
        "sendIssueSelectedPartners": "해당 이슈의 속해 있는 파트너 담당자에게 이슈 정보를 보냅니다.",
        "sendMail": "이메일 발송",
        "changedHistory": "이슈 변경 이력 상세정보",
        "noChangeHistory": "이슈 변경 정보가 없습니다.",
src/main/webapp/scripts/app/issue/issueSendMailPartners.controller.js
@@ -16,7 +16,8 @@
                    formSubmit : formSubmit,    //  폼 전송
                    formCheck : formCheck,   //  폼 체크
                    onChangeEmailTemplate : onChangeEmailTemplate, // 이메일 템플릿 선택시 실행
                    getEmailTemplateList : getEmailTemplateList // 이메일 템플릿 목록 가져오기
                    getEmailTemplateList : getEmailTemplateList, // 이메일 템플릿 목록 가져오기
                    getAccount : getAccount
                };
                $scope.vm = {
@@ -29,7 +30,8 @@
                    form : {
                        id : parameter.issueId,  //  이슈 번호
                        projects : [{ id : parameter.projectId}],  //  프로젝트
                        mailUsers : parameter.partners.slice()   //  메일 전송받는 사용자
                        mailUsers : parameter.partners.slice(),   //  메일 전송받는 사용자
                        account : [{account : [], name : [], id : []}],
                    },
                    userName : "",
                    autoCompletePage : {
@@ -98,7 +100,7 @@
                //  사용자 삭제
                function removeMailTarget(index) {
                    $scope.vm.form.mailUsers.splice(index, 1);
                    $scope.vm.form.account[0].account.splice(index, 1);
                }
                function formCheck(formInvalid) {
@@ -181,6 +183,43 @@
                    return deferred.promise;
                }
                // 메일 주소 추출
                function getAccount(partners) {
                    if (partners != null) {
                        var index = partners.length-1;
                        var id = partners[index].id;
                        var name = partners[index].name;
                        var account = partners[index].account.split(",");
                        for (var i = 0; i < account.length; i++) {
                            $scope.vm.form.account[0].id[index+i] = id;
                            $scope.vm.form.account[0].account[index+i] = account[i].trim();
                            $scope.vm.form.account[0].name[index+i] = name;
                        }
                    } else {
                        if (parameter.partners != null) {
                            var account = "";
                            var name = "";
                            var id = "";
                            angular.forEach(parameter.partners, function (partner) {
                                id = partner.id;
                                account = partner.account.split(",");
                                name = partner.name;
                            });
                            for (var i = 0; i < account.length; i++) {
                                $scope.vm.form.account[0].id[i] = id;
                                $scope.vm.form.account[0].account[i] = account[i].trim();
                                $scope.vm.form.account[0].name[i] = name;
                            }
                        }
                    }
                }
                $scope.$on("getMailTarget", function (event, result) {
                    $scope.fn.getAccount(result);
                });
                $scope.fn.getAccount();
                $scope.fn.getEmailTemplateList();
            }]);
src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js
@@ -17,6 +17,7 @@
                $scope.fn.getDepartmentList = getDepartmentList;  //  부서 관리 리스트
                $scope.fn.makeTableConfigs = makeTableConfigs;  //  부서 관리 목록 테이블 설정
                $scope.fn.initSearchDepartment = initSearchDepartment;  //  검색 조건 초기화
                $scope.fn.changeDepartmentPageRowCount = changeDepartmentPageRowCount;
                $scope.fn.departmentAdd = departmentAdd;    //  부서 추가
                $scope.fn.removeDepartments = removeDepartments;  // 부서 삭제
@@ -52,6 +53,11 @@
                    $scope.fn.getDepartmentList(0);
                }
                //  부서 목록 보기 개수 변경
                function changeDepartmentPageRowCount() {
                    $scope.fn.getDepartmentList(0);
                }
                //  부서 관리 테이블 설정
                function makeTableConfigs() {
                    $scope.vm.tableConfigs2 = [];
src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js
@@ -17,7 +17,7 @@
                $scope.fn.getUserLevelList = getUserLevelList;  //  사용자 등급 관리 리스트
                $scope.fn.makeTableConfigs = makeTableConfigs;  //  사용자 등급 관리 목록 테이블 설정
                $scope.fn.initSearchUserLevel = initSearchUserLevel;  //  검색 조건 초기화
                $scope.fn.changePageRowCount = changePageRowCount;  //  업무 공간 참여 사용자 목록 보기 개수 변경
                $scope.fn.changePageRowCount = changeLevelPageRowCount;  //  업무 공간 참여 사용자 목록 보기 개수 변경
                $scope.fn.levelAdd = levelAdd;    //  등급 추가
                $scope.fn.removeLevels = removeLevels;    // 사용자 등급 삭제
                $scope.fn.makeSearchConditions = makeSearchConditions;
@@ -170,7 +170,7 @@
                }
                //  등급 목록 보기 개수 변경
                function changePageRowCount() {
                function changeLevelPageRowCount() {
                    $scope.fn.getUserLevelList(0);
                }
src/main/webapp/scripts/components/utils/autoComplete.controller.js
@@ -713,11 +713,19 @@
                    var deferred = $q.defer();
                    var partners = $scope.vm.partners.slice();
                    if (excludeList != null && excludeList.length > 0) {
                    if (excludeList != null && excludeList.id.length > 0) {
                        var filterData = excludeList.id.filter(function(item, idx){
                            return excludeList.id.findIndex(function(item2, idx2){
                                return item === item2
                            }) == idx;
                        });
                        for (let i = partners.length - 1 ; i >= 0 ; i--) {
                            excludeList.forEach(function (exclude) {
                                if (partners[i].id === exclude.id) {
                            filterData.forEach(function (exclude) {
                                if (partners[i] !== null && partners[i].id === exclude) {
                                    partners.splice(i, 1);
                                    if (partners[i] == null) {
                                        return false;
                                    }
                                }
                            });
                        }
src/main/webapp/views/issue/issueSendMailPartners.html
@@ -11,10 +11,10 @@
    <div class="modal-body">
        <form role="form" name="issueSendForm">
            <div class="form-group">
                <small translate="issue.sendIssueSelectedUsers">프로젝트에 참여하고 있는 다른 사용자에게 이슈 정보를 보냅니다.</small>
                <small translate="issue.sendIssueSelectedPartners">프로젝트에 참여하고 있는 다른 사용자에게 이슈 정보를 보냅니다.</small>
                <div class="select3-selection__choicediv">
                    <span class="select3-selection__choice" ng-repeat="user in vm.form.mailUsers">
                        <span>{{user.name}}({{user.account}})</span>
                    <span class="select3-selection__choice" ng-repeat="user in vm.form.account[0].account">
                        <span>{{vm.form.account[0].name[$index]}}({{user}})</span>
                        <span class="select3-selection__choice__remove"
                              ng-click="fn.removeMailTarget($index)">×</span>
                    </span>
@@ -26,14 +26,15 @@
                <js-input-autocomplete data-input-name="mailUsers"
                                       owl-auto-focus
                                       target=".auto-complete-i0nput"
                                       selected-model="vm.form.mailUsers"
                                       selected-model="vm.form.account[0].account"
                                       custom-input="true"
                                       search="vm.userName"
                                       page="vm.autoCompletePage.user.page"
                                       total-page="vm.autoCompletePage.user.totalPage"
                                       source="fn.getMailTargetAll(vm.form.mailUsers)"
                                       source="fn.getMailTargetAll(vm.form.account[0])"
                                       translation-texts="{ empty : 'common.emptyCompanyPartners'}"
                                       input-disabled="vm.form.mailUsers == null"
                                       input-disabled="vm.form.account[0].account == null"
                                       broad-cast="getMailTarget"
                                       extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : 'profile',
                                       type : 'partner', maxlength : 100, autoResize : true, stopRemoveBodyEvent : true }"></js-input-autocomplete>
src/main/webapp/views/workspace/workspaceDepartmentConfig.html
@@ -34,7 +34,7 @@
                            <label>
                                <select name="pageRow"
                                        class="form-control form-control-sm"
                                        ng-change="fn.changePageRowCount()"
                                        ng-change="fn.changeDepartmentPageRowCount()"
                                        ng-model="vm.page.selectedPageRowCount">
                                    <option value="10">10</option>
                                    <option value="50">50</option>
src/main/webapp/views/workspace/workspaceUserLevelConfig.html
@@ -34,7 +34,7 @@
                            <label>
                                <select name="pageRow"
                                        class="form-control form-control-sm"
                                        ng-change="fn.changePageRowCount()"
                                        ng-change="fn.changeLevelPageRowCount()"
                                        ng-model="vm.page.selectedPageRowCount">
                                    <option value="10">10</option>
                                    <option value="50">50</option>