### # Copyright (C) 2014-2018 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # # File: epics/dashboard/epics-dashboard.controller.coffee ### taiga = @.taiga class EpicsDashboardController @.$inject = [ "$routeParams", "tgErrorHandlingService", "tgLightboxFactory", "lightboxService", "$tgConfirm", "tgProjectService", "tgEpicsService", "tgAppMetaService", "$translate" ] constructor: (@params, @errorHandlingService, @lightboxFactory, @lightboxService, @confirm, @projectService, @epicsService, @appMetaService, @translate) -> @.sectionName = "EPICS.SECTION_NAME" taiga.defineImmutableProperty @, 'project', () => return @projectService.project taiga.defineImmutableProperty @, 'epics', () => return @epicsService.epics @appMetaService.setfn @._setMeta.bind(this) _setMeta: () -> return null if !@.project ctx = { projectName: @.project.get("name") projectDescription: @.project.get("description") } return { title: @translate.instant("EPICS.PAGE_TITLE", ctx) description: @translate.instant("EPICS.PAGE_DESCRIPTION", ctx) } loadInitialData: () -> @epicsService.clear() return @projectService.setProjectBySlug(@params.pslug) .then () => if not @projectService.isEpicsDashboardEnabled() return @errorHandlingService.notFound() if not @projectService.hasPermission("view_epics") return @errorHandlingService.permissionDenied() return @epicsService.fetchEpics() canCreateEpics: () -> return @projectService.hasPermission("add_epic") onCreateEpic: () -> onCreateEpic = () => @lightboxService.closeAll() @confirm.notify("success") return # To prevent error https://docs.angularjs.org/error/$parse/isecdom?p0=onCreateEpic() @lightboxFactory.create('tg-create-epic', { "class": "lightbox lightbox-create-epic open" "on-create-epic": "onCreateEpic()" }, { "onCreateEpic": onCreateEpic.bind(this) }) angular.module("taigaEpics").controller("EpicsDashboardCtrl", EpicsDashboardController)