From f6cf6d227c2f45511e1530dafba55f3b1bc6355b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Mon, 21 Dec 2015 19:49:11 +0100 Subject: [PATCH] Improve the new plugin system --- app-loader/app-loader.coffee | 8 +++++++- app/coffee/app.coffee | 2 +- app/coffee/modules/base/contrib.coffee | 8 +++----- app/partials/contrib/main.jade | 2 +- .../includes/modules/admin/admin-submenu-contrib.jade | 6 +++++- app/partials/includes/modules/login-form.jade | 2 +- 6 files changed, 18 insertions(+), 10 deletions(-) diff --git a/app-loader/app-loader.coffee b/app-loader/app-loader.coffee index 4cd95415..c290a533 100644 --- a/app-loader/app-loader.coffee +++ b/app-loader/app-loader.coffee @@ -1,4 +1,5 @@ window._version = "___VERSION___" + window.taigaConfig = { "api": "http://localhost:8000/api/v1/", "eventsUrl": null, @@ -15,7 +16,10 @@ window.taigaConfig = { "maxUploadFileSize": null, "contribPlugins": [] } -window._decorators= [] + +window.taigaContribPlugins = [] + +window._decorators = [] window.addDecorator = (provider, decorator) -> window._decorators.push({provider: provider, decorator: decorator}) @@ -29,6 +33,8 @@ loadStylesheet = (path) -> loadPlugin = (pluginPath) -> return new Promise (resolve, reject) -> $.getJSON(pluginPath).then (plugin) -> + window.taigaContribPlugins.push(plugin) + if plugin.css loadStylesheet(plugin.css) diff --git a/app/coffee/app.coffee b/app/coffee/app.coffee index f4d3ec84..79bb03b5 100644 --- a/app/coffee/app.coffee +++ b/app/coffee/app.coffee @@ -20,7 +20,7 @@ ### @taiga = taiga = {} -@.taigaContribPlugins = @.taigaContribPlugins or [] +@.taigaContribPlugins = @.taigaContribPlugins or window.taigaContribPlugins or [] # Generic function for generate hash from a arbitrary length # collection of parameters. diff --git a/app/coffee/modules/base/contrib.coffee b/app/coffee/modules/base/contrib.coffee index 9f39cef4..bb0a15a4 100644 --- a/app/coffee/modules/base/contrib.coffee +++ b/app/coffee/modules/base/contrib.coffee @@ -19,7 +19,8 @@ # File: modules/base/contrib.coffee ### -taigaContribPlugins = @.taigaContribPlugins = @.taigaContribPlugins or [] +module = angular.module("taigaBase") + class ContribController extends taiga.Controller @.$inject = [ @@ -32,9 +33,7 @@ class ContribController extends taiga.Controller ] constructor: (@rootScope, @scope, @params, @repo, @rs, @confirm) -> - @scope.adminPlugins = _.where(@rootScope.contribPlugins, {"type": "admin"}) - @scope.currentPlugin = _.first(_.where(@scope.adminPlugins, {"slug": @params.plugin})) - @scope.pluginTemplate = "contrib/#{@scope.currentPlugin.slug}" + @scope.currentPlugin = _.first(_.where(@rootScope.adminPlugins, {"slug": @params.plugin})) @scope.projectSlug = @params.pslug promise = @.loadInitialData() @@ -53,5 +52,4 @@ class ContribController extends taiga.Controller loadInitialData: -> return @.loadProject() -module = angular.module("taigaBase") module.controller("ContribController", ContribController) diff --git a/app/partials/contrib/main.jade b/app/partials/contrib/main.jade index e2b191b1..5ed1fd83 100644 --- a/app/partials/contrib/main.jade +++ b/app/partials/contrib/main.jade @@ -9,4 +9,4 @@ div.wrapper.roles(ng-init="section='admin'", ng-controller="ContribController as sidebar.menu-tertiary.sidebar include ../includes/modules/admin/admin-submenu-contrib - section.main.admin-common.admin-contrib(ng-include="pluginTemplate") + section.main.admin-common.admin-contrib(ng-include="currentPlugin.template") diff --git a/app/partials/includes/modules/admin/admin-submenu-contrib.jade b/app/partials/includes/modules/admin/admin-submenu-contrib.jade index 6d072e95..3f5e903d 100644 --- a/app/partials/includes/modules/admin/admin-submenu-contrib.jade +++ b/app/partials/includes/modules/admin/admin-submenu-contrib.jade @@ -2,5 +2,9 @@ section.admin-submenu nav ul li#adminmenu-contrib(ng-repeat="plugin in adminPlugins") - a(href="", tg-nav="project-admin-contrib:project=projectSlug,plugin=plugin.slug" ng-class="{active: plugin.slug == currentPlugin.slug}") + a( + href="" + tg-nav="project-admin-contrib:project=projectSlug,plugin=plugin.slug" + ng-class="{active: plugin.slug == currentPlugin.slug}" + ) span.title {{ plugin.name }} diff --git a/app/partials/includes/modules/login-form.jade b/app/partials/includes/modules/login-form.jade index 9089a651..87615f94 100644 --- a/app/partials/includes/modules/login-form.jade +++ b/app/partials/includes/modules/login-form.jade @@ -3,7 +3,7 @@ div.login-form-container(tg-login) fieldset input( type="text" - autocorrect="off" + autocorrect="off" autocapitalize="none" name="username" data-required="true"