OWL ITS + 탐지시스템(인터넷 진흥원)
jhjang
2021-10-14 b74776268dd3eb2bc57744928d6f7150ffcd4ec2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/**
 * 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) {
 
                    }
                };
            }])
    });