/** * Created by wisestone on 2018-11-05. */ 'use strict'; define(['app', 'angular'], function (app, angular) { app.directive('myAssigneeIssueWidget', ['$log', '$rootScope', '$resourceProvider', 'Widget', 'SweetAlert', '$filter', function ($log, $rootScope, $resourceProvider, Widget, SweetAlert, $filter) { return { restrict : 'E', scope : { myAssigneeIssueWidget : '=', }, replace : true, templateUrl : '../custom_components/widget/my-assignee-issue-widget/my-assignee-issue-widget.html', controller : function ($scope, $element, $attrs) { // 변수 모음 $scope.vm = { myAssigneeIssueWidget : {}, page : { selectedPage : 0 } }; // 함수 모음 $scope.fn = { makeMyAssigneeIssueWidget : makeMyAssigneeIssueWidget, // 나에게 할당된 이슈 정보를 저장한다. findMyAssigneeIssueWidget : findMyAssigneeIssueWidget, // 나에게 할당된 이슈 목록 조회 moveIssue : moveIssue // 해당 이슈로 이동한다. }; // 나에게 할당된 이슈 정보가 변경될때 감지한다. $scope.$watch("myAssigneeIssueWidget", function (newValue) { if ($rootScope.isDefined(newValue)) { // 나에게 할당된 이슈 정보를 저장한다. $scope.fn.makeMyAssigneeIssueWidget(newValue); } }); // 나에게 할당된 이슈 정보를 저장한다. function makeMyAssigneeIssueWidget(result) { $scope.vm.myAssigneeIssueWidget = result; $scope.vm.page.selectedPage = 1; } // 나에게 할당된 이슈 목록 조회 function findMyAssigneeIssueWidget(selectedPage) { if (selectedPage < 0) { selectedPage = 0; } // 현재 페이지 정보 var currentPage = 0; // 쿠키에 선택한 페이지 정보가 없으면 기본 페이지 정보 0 을 저장 if (angular.isUndefined(selectedPage) || selectedPage === "") { currentPage = $scope.vm.page.selectedPage; } else { currentPage = selectedPage; } Widget.findMyAssigneeIssue($resourceProvider.getContent({}, $resourceProvider.getPageContent(currentPage, 5))).then(function (result) { if (result.data.message.status === "success") { $scope.vm.page.selectedPage = currentPage + 1; $scope.vm.myAssigneeIssueWidget.issues = result.data.myAssigneeIssueWidget.issues; } else { SweetAlert.error($filter("translate")("dashboard.failedToListOfIssueAllocatedLookup"), result.data.message.message); // 나에게 할당된 이슈 목록 조회 실패 } }); } // 해당 이슈로 이동한다. function moveIssue(issue) { // 이슈 번호를 저장한 후 이슈 목록으로 이동한다. $rootScope.$broadcast("makeIssueSearch", issue); } }, link : function (scope, element, attrs) { } }; }]) });