angular-gantt
Version:
Gantt chart component for AngularJS
66 lines (56 loc) • 1.76 kB
text/typescript
require('./taskProgress.tmpl.html')
export default function ($templateCache) {
'ngInject'
return {
restrict: 'E',
requires: '^ganttTask',
templateUrl: function (tElement, tAttrs) {
let templateUrl
if (tAttrs.templateUrl === undefined) {
templateUrl = 'plugins/progress/taskProgress.tmpl.html'
} else {
templateUrl = tAttrs.templateUrl
}
if (tAttrs.template !== undefined) {
$templateCache.put(templateUrl, tAttrs.template)
}
return templateUrl
},
replace: true,
scope: true,
controller: function ($scope, $element) {
'ngInject'
$scope.getClasses = function () {
let classes = []
if (typeof($scope.task.model.progress) === 'object') {
classes = $scope.task.model.progress.classes
}
return classes
}
$scope.getCss = function () {
let css = {}
let progress
if ($scope.task.model.progress !== undefined) {
if (typeof($scope.task.model.progress) === 'object') {
progress = $scope.task.model.progress
} else {
progress = {percent: $scope.task.model.progress}
}
}
if (progress) {
if (progress.color) {
css['background-color'] = progress.color
} else {
css['background-color'] = '#6BC443'
}
css['width'] = progress.percent + '%'
}
return css
}
$scope.task.rowsManager.gantt.api.directives.raise.new('ganttTaskProgress', $scope, $element)
$scope.$on('$destroy', function () {
$scope.task.rowsManager.gantt.api.directives.raise.destroy('ganttTaskProgress', $scope, $element)
})
}
}
}