| | |
| | | cancel: cancel, // 팝업 창 닫기 |
| | | formSubmit: formSubmit, // 폼 전송 |
| | | formCheck: formCheck, // 폼 체크 |
| | | removeManager : removeManager, // 담당자 삭제 |
| | | removeDepartment : removeDepartment, // 담당부서 삭제 |
| | | load : load, // 현재 담당자 가져오기 |
| | | startExecute : startExecute // 시작시 실행 |
| | | }; |
| | |
| | | angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); |
| | | |
| | | // 담당부서 삭제 |
| | | function removeManager(index) { |
| | | function removeDepartment(index) { |
| | | $scope.vm.form.departments.splice(index, 1); |
| | | } |
| | | |
| | |
| | | formSubmit : formSubmit, // 폼 전송 |
| | | formCheck : formCheck, // 폼 체크 |
| | | removeUsr : removeUsr, // 일반 사용자 제거 |
| | | removeDepartment : removeDepartment // 부서 제거 |
| | | }; |
| | | |
| | | $scope.vm = { |
| | |
| | | $scope.vm.form.users.splice(index, 1); |
| | | } |
| | | |
| | | // 담당부서 삭제 |
| | | function removeDepartment(index) { |
| | | $scope.vm.form.departments.splice(index, 1); |
| | | } |
| | | |
| | | function formCheck(formInvalid) { |
| | | if (formInvalid) { |
| | | return true; |
| | |
| | | }); |
| | | return managerIds; |
| | | })(), |
| | | //부서id 추가 필요 |
| | | // 부서 id 추가 필요 |
| | | departmentIds : (function () { |
| | | var departmentIds = []; |
| | | angular.forEach($scope.vm.form.users, function (user) { |
| | | departmentIds.push(user.id); |
| | | angular.forEach($scope.vm.form.departments, function (department) { |
| | | departmentIds.push(department.id); |
| | | }); |
| | | return departmentIds; |
| | | })() |
| | |
| | | detail : detail, // 상세 정보 조회 |
| | | removeUsr : removeUsr, // 일반 사용자 제거 |
| | | removeManager : removeManager, // 관리자 제거 |
| | | removeDepartment : removeDepartment, // 부서 제거 |
| | | getManagerListCallBack : getManagerListCallBack, // 관리자 auto complete callback function |
| | | getProjectListCallBack : getProjectListCallBack // 프로젝트 auto complete callback function |
| | | }; |
| | |
| | | // 팀원 삭제 |
| | | function removeUsr(index) { |
| | | $scope.vm.form.users.splice(index, 1); |
| | | } |
| | | |
| | | // 담당부서 삭제 |
| | | function removeDepartment(index) { |
| | | $scope.vm.form.departments.splice(index, 1); |
| | | } |
| | | |
| | | // 관리자 삭제 |
| | |
| | | userIds.push(user.id); |
| | | }); |
| | | return userIds; |
| | | })() |
| | | })(), |
| | | departmentIds : (function () { |
| | | var departmentIds = []; |
| | | angular.forEach($scope.vm.form.departments, function (department) { |
| | | departmentIds.push(department.id); |
| | | }); |
| | | return departmentIds; |
| | | })(), |
| | | }; |
| | | |
| | | var startEndDateRange = $scope.vm.form.startEndDateRange.split("~"); |
| | |
| | | $scope.vm.form.description = result.data.data.description; |
| | | $scope.vm.form.managers = result.data.data.projectManagerVos; |
| | | $scope.vm.form.users = result.data.data.projectUserVos; |
| | | $scope.vm.form.departments = result.data.data.projectDepartmentVos; |
| | | |
| | | if (result.data.data.parentProjectVo != null) { |
| | | $scope.vm.form.parentProjects = []; |
| | |
| | | <!-- 상세 화면 --> |
| | | <div class="support-ticket-content-w" ng-controller="issueDetailController"> |
| | | <div class="support-ticket-content"> |
| | | <div class="support-ticket-content-header issue-detail-word-break" style="height: 8vh"> |
| | | <span class="badge" ng-style="{'background-color' : vm.viewer.severityVo.color, 'border-color' : vm.viewer.severityVo.color, 'color' : '#FFFFFF' }"> |
| | | <span ng-if="vm.viewer.parentIssueId != '' || vm.viewer.parentIssueId != 'null' ">상위 일감:{{vm.viewer.parentIssueID}}</span> |
| | | <i class="os-icon-airplay">OWL Trial</i> |
| | | </span> |
| | | <label class="issue-detail-label offset-1"><span translate="issue.issueType">이슈 유형</span> </label> |
| | | <span class="status-pill smaller" |
| | | ng-style="{'background-color': vm.viewer.issueTypeVo.color }"></span><span>{{vm.viewer.issueTypeVo.name}}</span> |
| | | <span class="offset-1"> {{vm.viewer.registerDate}}</span> |
| | | <label class="issue-detail-label offset-1"><span translate="common.register">등록자</span></label> |
| | | <span class="select3-selection__choice"> |
| | | <span class="avatar-w"><img ng-src="{{vm.viewer.registerVo.profile}}"></span> |
| | | <span>{{vm.viewer.registerVo.byName}}</span> |
| | | </span> |
| | | <div class=""> |
| | | <span class="h3-div">{{vm.viewer.title}}</span> |
| | | </div> |
| | | <div class="support-ticket-content-header issue-detail-word-break"> |
| | | <span class="ticket-header"> |
| | | <div class="tasks-header-w"> |
| | | <span class="tags"> |
| | | <span class="tag">{{vm.viewer.projectVo.projectKey}}-{{vm.viewer.issueNumber}} / {{vm.viewer.projectVo.name}}</span> |
| | | </span> |
| | | </div> |
| | | <span class="h3-div">{{vm.viewer.title}}</span> |
| | | </span> |
| | | <div class="col-sm-2"> |
| | | <div class="form-group ml-4"> |
| | | <label class="issue-detail-label"><span translate="issue.issueType">이슈 유형</span> </label> |
| | | <span class="status-pill smaller" |
| | | ng-style="{'background-color': vm.viewer.issueTypeVo.color }"></span><span>{{vm.viewer.issueTypeVo.name}}</span> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <div class="form-group"> |
| | | {{vm.viewer.registerDate}} |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="form-group"> |
| | | <label class="issue-detail-label"><span translate="common.register">등록자</span></label> |
| | | <span class="select3-selection__choice"> |
| | | <span class="avatar-w"><img ng-src="{{vm.viewer.registerVo.profile}}"></span> |
| | | <span>{{vm.viewer.registerVo.byName}}</span> |
| | | </span> |
| | | </div> |
| | | |
| | | <a class="show-ticket-info cursor"> |
| | | <i class="os-icon os-icon-email-forward mr-20" ng-click="fn.sendMail(vm.viewer.id, vm.viewer.projectVo.id)" data-toggle="tooltip" data-placement="right" title="다른 사용자에게 이슈 보내기"></i> |
| | |
| | | <div class="col-sm-2"> |
| | | <div class="form-group"> |
| | | <h6 class="info_font" translate="companyField.info">업체정보</h6> |
| | | <button style="display: inline">1111</button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="select3-selection__choicediv mt-10"> |
| | | <span class="select3-selection__choice" ng-repeat="department in vm.form.departments"> |
| | | <span>{{department.byName}}</span> <!--사용자가 속해 있는 부서 이름 출력--> |
| | | <span class="select3-selection__choice__remove" ng-click="fn.removeDepartments($index)">×</span> |
| | | <span class="select3-selection__choice__remove" ng-click="fn.removeDepartment($index)">×</span> |
| | | </span> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | <div class="form-group"> |
| | | <label><span translate="project.projectDepartment">프로젝트 담당부서</span> </label> |
| | | <js-autocomplete-multi data-input-name="users" |
| | | selected-model="vm.form.users" |
| | | search="vm.userName" |
| | | source="fn.getUserList(vm.userName, vm.form.users.concat(vm.form.managers))" |
| | | <js-autocomplete-multi data-input-name="departments" |
| | | selected-model="vm.form.departments" |
| | | search="vm.departmentName" |
| | | source="fn.getUserDepartmentList(vm.departmentName, vm.form.departments)" |
| | | input-disabled="false" |
| | | translation-texts="{ count : 'common.userNum', empty : 'common.emptyUser' }" |
| | | extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : true, imagePathProp : 'profile', type : 'user', maxlength : 100, autoResize : true }"></js-autocomplete-multi> |
| | | extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : false, maxlength : 100, autoResize : true }"></js-autocomplete-multi> |
| | | |
| | | |
| | | <div class="select3-selection__choicediv mt-10"> |
| | | <span class="select3-selection__choice" ng-repeat="user in vm.form.users"> |
| | | <span class="avatar-w"><img ng-src="{{user.profile}}"></span> |
| | | <span>{{user.name}}({{user.account}})</span> |
| | | <span class="select3-selection__choice__remove" ng-click="fn.removeUsr($index)">×</span> |
| | | <span>{{department.byName}}</span> <!--사용자가 속해 있는 부서 이름 출력--> |
| | | <span class="select3-selection__choice__remove" ng-click="fn.removeDepartment($index)">×</span> |
| | | </span> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="form-group"> |
| | | <label><span translate="project.projectDepartment">프로젝트 부서</span> </label> |
| | | <js-autocomplete-multi data-input-name="departments" |
| | | selected-model="vm.form.users" |
| | | search="vm.userName" |
| | | source="fn.getUserList(vm.userName, vm.form.users.concat(vm.form.managers))" |
| | | selected-model="vm.form.departments" |
| | | search="vm.departmentName" |
| | | source="fn.getUserDepartmentList(vm.departmentName, vm.form.departments)" |
| | | input-disabled="false" |
| | | translation-texts="{ count : 'common.userNum', empty : 'common.emptyUser' }" |
| | | extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : true, imagePathProp : 'profile', type : 'user', maxlength : 100, autoResize : true }"></js-autocomplete-multi> |
| | | extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : false, maxlength : 100, autoResize : true }"></js-autocomplete-multi> |
| | | |
| | | <div class="select3-selection__choicediv mt-10"> |
| | | <span class="select3-selection__choice" ng-repeat="user in vm.form.users"> |
| | | <span class="avatar-w"><img ng-src="{{user.profile}}"></span> |
| | | <span>{{user.name}}({{user.account}})</span> |
| | | <span class="select3-selection__choice__remove" ng-click="fn.removeUsr($index)">×</span> |
| | | <span class="select3-selection__choice" ng-repeat="user in vm.form.departments"> |
| | | <span>{{department.byName}}</span> <!--사용자가 속해 있는 부서 이름 출력--> |
| | | <span class="select3-selection__choice__remove" ng-click="fn.removeDepartment($index)">×</span> |
| | | </span> |
| | | </div> |
| | | </div> |