'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 makeTag = "";
var treeStartToken = "└";
scope.tableConfigs.forEach(function (tableConfig, index) {
if (tableConfig.colSpan > 0) {
return;
}
makeTag = '
';
if (tableConfig.dType === "checkbox") {
// 체크 박스일때
if (scope.data.defaultYn) {
makeTag += '';
}
else {
makeTag += '';
}
tableConfig.hChecked = false;
}
else if (tableConfig.dType === "radio") {
// 라디오 버튼일때
makeTag += '';
}
else if (tableConfig.dType === "date") {
makeTag += $filter('date')(scope.data[tableConfig.dName], $tableProvider.getDateFormat(tableConfig.dDateFormat, scope.data[tableConfig.dName]));
}
else {
if (angular.isDefined(scope.data[tableConfig.dName]) && scope.data[tableConfig.dName] != null) {
makeTag += '' + scope.data[tableConfig.dName] + '';
}
else {
makeTag += '';
}
}
makeTag += '';
var linkFn = $compile(makeTag);
var content = linkFn(scope);
element.append(content);
});
}
}
}
}]);
});