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