diff --git a/app/coffee/utils.coffee b/app/coffee/utils.coffee index 7a0ed706..4205b612 100644 --- a/app/coffee/utils.coffee +++ b/app/coffee/utils.coffee @@ -158,6 +158,15 @@ replaceTags = (str, tags, replace) -> return str +defineImmutableProperty = (obj, name, variable) => + Object.defineProperty obj, name, { + get: () => + if _.isFunction(variable) + return variable.call(obj) + else + return variable + } + taiga = @.taiga taiga.nl2br = nl2br taiga.bindMethods = bindMethods @@ -179,3 +188,4 @@ taiga.startswith = startswith taiga.sizeFormat = sizeFormat taiga.stripTags = stripTags taiga.replaceTags = replaceTags +taiga.defineImmutableProperty = defineImmutableProperty diff --git a/app/modules/navigation-bar/dropdown-project-list/dropdown-project-list.directive.coffee b/app/modules/navigation-bar/dropdown-project-list/dropdown-project-list.directive.coffee index b63656ee..1d596710 100644 --- a/app/modules/navigation-bar/dropdown-project-list/dropdown-project-list.directive.coffee +++ b/app/modules/navigation-bar/dropdown-project-list/dropdown-project-list.directive.coffee @@ -1,10 +1,10 @@ DropdownProjectListDirective = (projectsService) -> link = (scope, el, attrs, ctrl) -> scope.vm = {} - scope.vm.projects = projectsService.projects + taiga.defineImmutableProperty(scope.vm, "projects", projectsService.projects) scope.vm.newProject = -> projectsService.newProject() - + directive = { templateUrl: "navigation-bar/dropdown-project-list/dropdown-project-list.html" scope: {} diff --git a/app/modules/projects/listing/listing.directive.coffee b/app/modules/projects/listing/listing.directive.coffee index 506af5cd..4879088e 100644 --- a/app/modules/projects/listing/listing.directive.coffee +++ b/app/modules/projects/listing/listing.directive.coffee @@ -25,7 +25,7 @@ ProjectsListingDirective = (projectsService) -> projectsService.bulkUpdateProjectsOrder(sortData) - scope.vm.projects = projectsService.projects + taiga.defineImmutableProperty(scope.vm, "projects", projectsService.projects) scope.vm.newProject = -> projectsService.newProject()