'use strict'; define(['app', 'angular'], function (app, angular) { app.directive('treeColumnGenerator', ['$compile', '$log', '$rootScope', '$tableProvider', '$filter', function ($compile, $log, $rootScope, $tableProvider, $filter) { return { restrict : "A", compile : function (tElement, tAttrs) { return function (scope, element, attrs) { scope.data = scope[attrs["treeColumnGenerator"]]; var myData = scope.data; var makeTag = ""; scope.tableConfigs.forEach(function (tableConfig, index) { var txt = ""; makeTag = ''; var viewData = myData[tableConfig.dName]; if (tableConfig.dType === "CUSTOM_FIELD") { var issueCustomFieldValueVos = myData.issueCustomFieldValueVos; if (issueCustomFieldValueVos != null) { for (let i = 0; i < issueCustomFieldValueVos.length; i++) { if (issueCustomFieldValueVos[i].customFieldVo.id === tableConfig.dName) { if (index > 0) { makeTag += ","; } txt += issueCustomFieldValueVos[i].useValue; break; } } } makeTag += ""; } else { if (tableConfig.dName === "assigneeTeam") { var departmentVos = myData.departmentVos; if (departmentVos != null) { if (index > 0) { makeTag += ","; } for (let i = 0; i < departmentVos.length; i++) { if (i > 0) { txt += ","; } txt += departmentVos[i].departmentName; } } makeTag += ""; } else if (tableConfig.dName === "register") { if (index > 0) { makeTag += ","; } makeTag += ""; } else if (tableConfig.dName === "period") { if (index > 0) { makeTag += ","; } if (!$rootScope.isDefined(myData.startDate) && !$rootScope.isDefined(myData.completeDate)) { makeTag += "기간 없음"; } else { makeTag += '' + myData.startDate + ' ~ ' + myData.completeDate + ''; } } else if (tableConfig.dName === "countDownIssue") { if (index > 0) { makeTag += ","; } makeTag += makeTag += ""; } else { viewData = viewData != null ? viewData : ""; if (viewData !== "") { if (index > 0) { makeTag += ","; } makeTag += ""; } else { // makeTag += "" + tableConfig.dName + " NOT FOUND "; // 디버깅시 사용 makeTag += " "; } } } makeTag += ''; var linkFn = $compile(makeTag); var content = linkFn(scope); element.append(content); }); } } } }]); });