/** * Created by wisestone on 2018-05-08. */ 'use strict'; define([ 'app', 'angular' ], function (app, angular) { app.controller('issueTypeModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', '$controller', '$injector', 'IssueType', 'parameter', 'SweetAlert', '$filter', function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, $controller, $injector, IssueType, parameter, SweetAlert, $filter) { $scope.fn = { getWorkflowListCallBack : getWorkflowListCallBack, // 워크플로우 auto complete callback function cancel : cancel, // 팝업 창 닫기 formSubmit : formSubmit, // 폼 전송 formCheck : formCheck, // 폼 체크 detail : detail // 상세 정보 }; $scope.vm = { search : { id : parameter.id, deep : "01" // 이슈 타입 연관된 모든 정보를 어느정도까지 가져올지 결정, 01 - 일반 정보, 연관된 정보 }, form : { id : parameter.id, name : "", workflows : [], // 워크플로우 description : "", // 설명 color : "" // 색상 }, workflowName : "", autoCompletePage : { workflow : { page : 0, totalPage : 0 } }, 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']], ['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' } } } }; angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); function formCheck(formInvalid) { if (formInvalid) { return true; } if ($scope.vm.form.workflows.length < 1) { return true; } return false; } function formSubmit() { $rootScope.spinner = true; var content = { id : parameter.id, workflowId : (function () { var workflowId = ""; if ($scope.vm.form.workflows.length > 0) { workflowId = $scope.vm.form.workflows[0].id; } return workflowId; })(), name : $rootScope.preventXss($scope.vm.form.name), description : $rootScope.preventXss($scope.vm.form.description), color : $scope.vm.form.color }; IssueType.modify($resourceProvider.getContent( content, $resourceProvider.getPageContent(0, 0))).then(function (result) { if (result.data.message.status === "success") { $scope.fn.cancel(); // 목록 화면 갱신 $rootScope.$broadcast("getIssueTypeList", {}); } else { SweetAlert.error($filter("translate")("managementType.failedToModifyIssueType"), result.data.message.message); // "이슈 타입 수정 실패" } $rootScope.spinner = false; }); } // 워크플로우 auto complete callback function function getWorkflowListCallBack(result) { $scope.vm.autoCompletePage.workflow.totalPage = result.data.page.totalPage; } function cancel() { $rootScope.$broadcast("closeLayer"); // 팝업이 열리고 나서 js-multi, js-single 등에서 body 이벤트가 날아가는 현상 수정 $uibModalInstance.dismiss('cancel'); $(document).unbind("keydown"); // 단축키 이벤트 제거 } function detail() { $scope.vm.form.workflows = []; IssueType.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.name = result.data.data.name; $scope.vm.form.description = result.data.data.description; $scope.vm.form.workflows.push(result.data.data.workflowVo); $scope.vm.workflowName = result.data.data.workflowVo.name; $scope.vm.form.color = result.data.data.color; } } else { SweetAlert.swal($filter("translate")("managementType.failedToDetailIssueType"), result.data.message.message, "error"); // "이슈 타입 상세 정보 조회 실패" } }); } $scope.fn.detail(); }]); });