OWL ITS + 탐지시스템(인터넷 진흥원)
jhjang
2021-10-14 3052936fed9166521b0557a36df83eb11a5e51ee
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
90
91
92
93
94
95
96
/**
 * Created by wisestone on 2018-09-05.
 */
'use strict';
 
define(['app', 'angular'],
    function (app, angular) {
        app.directive('issueSearchCustomFieldViewElement', ["$log", "$compile", "$rootScope",
            function ($log, $compile, $rootScope) {
                return {
                    restrict : 'AE',
                    scope : {
                        customFields : "=",
                    },
                    link : function ($scope, $element, $attrs) {
 
                        $scope.fn = {
                            makeSearchElements : makeSearchElements,    //  선택한 검색 대상 값을 화면에 표시한다.
                            remove : remove,     //  문자열, 단일 선택 필드 삭제
                            removeMultiSelect : removeMultiSelect
                        };
 
                        $scope.$watch("customFields", function () {
                            $element.empty();
                            $scope.fn.makeSearchElements();
                        }, true);
 
                        //  다중 선택 필드 삭제
                        function removeMultiSelect(customFieldId, value) {
                            for (var count in $scope.customFields) {
                                var customField = $scope.customFields[count];
 
                                if (customField.id == customFieldId) {
                                    var tempUseValues = [];
 
                                    for (var innerCount in customField.useValues) {
                                        if (!(customField.useValues[innerCount].value == value)) {
                                            tempUseValues.push(customField.useValues[innerCount]);
                                        }
                                    }
 
                                    customField.useValues = angular.copy(tempUseValues);
 
                                    break;
                                }
                            }
                        }
 
                        //  문자열, 단일 선택 필드 삭제
                        function remove(customFieldId) {
                            for (var count in $scope.customFields) {
                                var customField = $scope.customFields[count];
 
                                if (customField.id == customFieldId) {
                                    customField.useValues = "";
                                    break;
                                }
                            }
                        }
 
                        function makeSearchElements() {
                            var makeTag = "";
 
                            angular.forEach($scope.customFields, function (customField) {
                                if ($rootScope.isDefined(customField.useValues)) {
                                    switch (customField.customFieldType) {
                                        case "INPUT" :
                                            makeTag += "<p>";
                                            makeTag += customField.useValues;
                                            makeTag += "<span ng-click='fn.remove(" + customField.id + ")'>×</span>";
                                            makeTag += "</p>";
                                            break;
 
                                        case "SINGLE_SELECT" :
                                        case "MULTI_SELECT" :
                                            angular.forEach(customField.useValues, function (useValue) {
                                                makeTag += "<p>";
                                                makeTag += useValue.value;
                                                makeTag += "<span ng-click='fn.removeMultiSelect(" + customField.id + ",\"" + useValue.value + "\")'>×</span>";
                                                makeTag += "</p>";
                                            });
 
                                            break;
                                    }
                                }
                            });
 
                            var linkFn = $compile(makeTag);
                            var content = linkFn($scope);
                            $element.append(content);
                        }
 
                    }
                };
            }])
    });