From b4d2af566e4267a0658a89003d9dca62f36df374 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 2 Sep 2014 18:29:52 +0200 Subject: [PATCH 1/5] Move config dir into app directory. --- {config => app/config}/main.coffee.example | 3 ++- gulpfile.coffee | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) rename {config => app/config}/main.coffee.example (82%) diff --git a/config/main.coffee.example b/app/config/main.coffee.example similarity index 82% rename from config/main.coffee.example rename to app/config/main.coffee.example index e44e4470..c9ac04a6 100644 --- a/config/main.coffee.example +++ b/app/config/main.coffee.example @@ -6,11 +6,12 @@ config = { defaultLanguage: "en" languageOptions: { - "es": "Spanish" "en": "English" } pubblicRegisterEnabled: true + privacyPolicyUrl: null + termsOfServiceUrl: null } angular.module("taigaLocalConfig", []).value("localconfig", config) diff --git a/gulpfile.coffee b/gulpfile.coffee index 4a972ca9..22f58392 100644 --- a/gulpfile.coffee +++ b/gulpfile.coffee @@ -36,7 +36,7 @@ paths = { images: "app/images/**/*" locales: "app/locales/**/*.json" coffee: ["app/coffee/app.coffee", - "config/main.coffee", + "app/config/*.coffee", "app/coffee/*.coffee", "app/coffee/modules/controllerMixins.coffee", "app/coffee/modules/*.coffee", From 7e20180d4cbdfa807b530810fa0ce1e516b4ef73 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 2 Sep 2014 18:30:11 +0200 Subject: [PATCH 2/5] Add empty plugins directory. --- app/plugins/.hidden | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 app/plugins/.hidden diff --git a/app/plugins/.hidden b/app/plugins/.hidden new file mode 100644 index 00000000..e69de29b From d6ad5ad0786bde50a0bd1bc36e780d92ef6506cf Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 2 Sep 2014 18:30:49 +0200 Subject: [PATCH 3/5] Add main plugins module. --- app/coffee/app.coffee | 1 + app/plugins/main.coffee | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 app/plugins/main.coffee diff --git a/app/coffee/app.coffee b/app/coffee/app.coffee index 8fa21747..f3e3bfbb 100644 --- a/app/coffee/app.coffee +++ b/app/coffee/app.coffee @@ -193,6 +193,7 @@ modules = [ "taigaNavMenu", "taigaProject", "taigaUserSettings", + "taigaPlugins", # Vendor modules "ngRoute", diff --git a/app/plugins/main.coffee b/app/plugins/main.coffee new file mode 100644 index 00000000..e43cd966 --- /dev/null +++ b/app/plugins/main.coffee @@ -0,0 +1,22 @@ +### +# Copyright (C) 2014 Andrey Antukh +# Copyright (C) 2014 Jesús Espino Garcia +# Copyright (C) 2014 David Barragán Merino +# +# 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: pluggins/main.coffee +### + +module = angular.module("taigaPlugins", []) From 40970cc9866c11599db20f0108a856c4976e499e Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 2 Sep 2014 18:31:26 +0200 Subject: [PATCH 4/5] Add plugins directory to gulp. --- gulpfile.coffee | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gulpfile.coffee b/gulpfile.coffee index 22f58392..5f510020 100644 --- a/gulpfile.coffee +++ b/gulpfile.coffee @@ -53,7 +53,8 @@ paths = { "app/coffee/modules/locales/*.coffee", "app/coffee/modules/base/*.coffee", "app/coffee/modules/resources/*.coffee", - "app/coffee/modules/user-settings/*.coffee"] + "app/coffee/modules/user-settings/*.coffee" + "app/plugins/**/*.coffee"] vendorJsLibs: [ "app/vendor/jquery/dist/jquery.js", "app/vendor/lodash/dist/lodash.js", @@ -75,7 +76,8 @@ paths = { "app/vendor/jquery-textcomplete/jquery.textcomplete.js", "app/vendor/markitup/markitup/jquery.markitup.js" "app/js/jquery.ui.git.js", - "app/js/sha1.js" + "app/js/sha1.js", + "app/plugins/**/*.js" ] } From 4ad8f86d7b21cd9a371164b5aa9ac1d03d328f3c Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 2 Sep 2014 18:31:55 +0200 Subject: [PATCH 5/5] Add example plugin "terms". This works as example but also is usefull for sas deployed instances show their terms and privacity conditions. --- app/coffee/modules/auth.coffee | 6 --- .../modules/invitation-register-form.jade | 12 +---- app/partials/views/modules/register-form.jade | 13 +---- app/plugins/terms/terms.coffee | 53 +++++++++++++++++++ 4 files changed, 56 insertions(+), 28 deletions(-) create mode 100644 app/plugins/terms/terms.coffee diff --git a/app/coffee/modules/auth.coffee b/app/coffee/modules/auth.coffee index bc59efd5..87131eaf 100644 --- a/app/coffee/modules/auth.coffee +++ b/app/coffee/modules/auth.coffee @@ -188,9 +188,6 @@ module.directive("tgLogin", ["$tgAuth", "$tgConfirm", "$tgLocation", "$tgConfig" RegisterDirective = ($auth, $confirm, $location, $config, $navUrls) -> link = ($scope, $el, $attrs) -> - $scope.privacyPolicyUrl = $config.get("privacyPolicyUrl") - $scope.termsOfServiceUrl = $config.get("termsOfServiceUrl") - $scope.data = {} form = $el.find("form").checksley() @@ -313,9 +310,6 @@ module.directive("tgChangePasswordFromRecovery", ["$tgAuth", "$tgConfirm", "$tgL InvitationDirective = ($auth, $confirm, $location, $params, $config, $navUrls) -> link = ($scope, $el, $attrs) -> - $scope.privacyPolicyUrl = $config.get("privacyPolicyUrl") - $scope.termsOfServiceUrl = $config.get("termsOfServiceUrl") - token = $params.token promise = $auth.getInvitation(token) diff --git a/app/partials/views/modules/invitation-register-form.jade b/app/partials/views/modules/invitation-register-form.jade index a64c303a..ec53132f 100644 --- a/app/partials/views/modules/invitation-register-form.jade +++ b/app/partials/views/modules/invitation-register-form.jade @@ -21,14 +21,4 @@ form.register-form a.button.button-register.button-gray(href="", title="Sign up") Sign up input(type="submit", style="display:none") - p.register-text(ng-if="termsOfServiceUrl && privacyPolicyUrl") - span By clicking "Sign up", you agree to our
- a(tg-bo-href="termsOfServiceUrl", title="See terms of service", target="_blank") terms of service - span and - a(tg-bo-href="privacyPolicyUrl", title="See privacy policy", target="_blank") privacy policy. - p.register-text(ng-if="termsOfServiceUrl && !privacyPolicyUrl") - span By clicking "Sign up", you agree to our
- a(tg-bo-href="termsOfServiceUrl", title="See terms of service", target="_blank") terms of service - p.register-text(ng-if="!termsOfServiceUrl && privacyPolicyUrl") - span By clicking "Sign up", you agree to our
- a(tg-bo-href="privacyPolicyUrl", title="See privacy policy", target="_blank") privacy policy. + tg-terms-notice diff --git a/app/partials/views/modules/register-form.jade b/app/partials/views/modules/register-form.jade index c44fa6a3..4c640a16 100644 --- a/app/partials/views/modules/register-form.jade +++ b/app/partials/views/modules/register-form.jade @@ -22,16 +22,7 @@ div.register-form-container(tg-register) a.button.button-register.button-gray(href="", title="Sign up") Sign up input(type="submit", class="hidden") - p.register-text(ng-if="termsOfServiceUrl && privacyPolicyUrl") - span By clicking "Sign up", you agree to our
- a(tg-bo-href="termsOfServiceUrl", title="See terms of service", target="_blank") terms of service - span and - a(tg-bo-href="privacyPolicyUrl", title="See privacy policy", target="_blank") privacy policy. - p.register-text(ng-if="termsOfServiceUrl && !privacyPolicyUrl") - span By clicking "Sign up", you agree to our
- a(tg-bo-href="termsOfServiceUrl", title="See terms of service", target="_blank") terms of service - p.register-text(ng-if="!termsOfServiceUrl && privacyPolicyUrl") - span By clicking "Sign up", you agree to our
- a(tg-bo-href="privacyPolicyUrl", title="See privacy policy", target="_blank") privacy policy. + // Only displays terms notice when terms plugin is loaded. + tg-terms-notice a.register-text-top(href="", title="Login", tg-nav="login") Are you already registered? Log in diff --git a/app/plugins/terms/terms.coffee b/app/plugins/terms/terms.coffee new file mode 100644 index 00000000..ef4fa4d2 --- /dev/null +++ b/app/plugins/terms/terms.coffee @@ -0,0 +1,53 @@ +### +# Copyright (C) 2014 Andrey Antukh +# Copyright (C) 2014 Jesús Espino Garcia +# Copyright (C) 2014 David Barragán Merino +# +# 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: plugins/terms/terms.coffee +### + +taiga = @.taiga + +module = angular.module("taigaPlugins") + +template = _.template(""" +

+ By clicking "Sign up", you agree to our
+ terms of service + and + privacy policy. +

""") + + +TermsNoticeDirective = ($config) -> + privacyPolicyUrl = $config.get("privacyPolicyUrl") + termsOfServiceUrl = $config.get("termsOfServiceUrl") + + templateFn = -> + if not (privacyPolicyUrl and termsOfServiceUrl) + return "" + + ctx = {termsUrl: termsOfServiceUrl, privacyUrl: privacyPolicyUrl} + return template(ctx) + + return { + scope: {} + restrict: "AE" + template: templateFn + } + + +module.directive("tgTermsNotice", ["$tgConfig", TermsNoticeDirective])