/** * 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 += "
"; makeTag += customField.useValues; makeTag += "×"; makeTag += "
"; break; case "SINGLE_SELECT" : case "MULTI_SELECT" : angular.forEach(customField.useValues, function (useValue) { makeTag += ""; makeTag += useValue.value; makeTag += "×"; makeTag += "
"; }); break; } } }); var linkFn = $compile(makeTag); var content = linkFn($scope); $element.append(content); } } }; }]) });