From ad4ba1db07dbbd6fa461f91af9e5eb78b70e8212 Mon Sep 17 00:00:00 2001 From: Johannes Millan Date: Sat, 4 Feb 2017 18:08:14 +0100 Subject: [PATCH] add simple welcome dialog --- app/index.html | 1 + app/scripts/_app.js | 9 +++- app/scripts/constants.js | 7 ++++ app/scripts/dialogs/dialogs-constant.js | 7 ++-- app/scripts/dialogs/welcome/_welcome-c.scss | 3 ++ app/scripts/dialogs/welcome/welcome-c.html | 41 +++++++++++++++++++ app/scripts/dialogs/welcome/welcome-c.js | 32 +++++++++++++++ app/scripts/dialogs/welcome/welcome-c.spec.js | 23 +++++++++++ .../main/global-services/projects-s.js | 8 +--- app/styles/main.scss | 2 + 10 files changed, 121 insertions(+), 12 deletions(-) create mode 100644 app/scripts/dialogs/welcome/_welcome-c.scss create mode 100644 app/scripts/dialogs/welcome/welcome-c.html create mode 100644 app/scripts/dialogs/welcome/welcome-c.js create mode 100644 app/scripts/dialogs/welcome/welcome-c.spec.js diff --git a/app/index.html b/app/index.html index 602f0ba69b..b741047b18 100644 --- a/app/index.html +++ b/app/index.html @@ -129,6 +129,7 @@ TODO configure more restrictive Content-Security-Policy + diff --git a/app/scripts/_app.js b/app/scripts/_app.js index 6ec52c4537..95dd0157f4 100644 --- a/app/scripts/_app.js +++ b/app/scripts/_app.js @@ -40,7 +40,8 @@ .run(initPollJiraTaskUpdates) .run(initPollForSimpleTimeTracking) .run(initMousewheelZoomForElectron) - .run(initGlobalShortcuts); + .run(initGlobalShortcuts) + .run(showWelcomeDialog); function configMarked(markedProvider) { markedProvider.setRenderer({ @@ -147,6 +148,12 @@ } } + function showWelcomeDialog($localStorage, Dialogs) { + if ($localStorage.isShowWelcomeDialog) { + Dialogs('WELCOME', undefined, true); + } + } + function initMousewheelZoomForElectron($document, $window, IS_ELECTRON) { if (IS_ELECTRON) { const { webFrame } = require('electron'); diff --git a/app/scripts/constants.js b/app/scripts/constants.js index 898961eb67..bf22adac24 100644 --- a/app/scripts/constants.js +++ b/app/scripts/constants.js @@ -12,7 +12,14 @@ angular .module('superProductivity') .constant('DEFAULT_THEME', 'blue-theme') + .constant('GLOBAL_LS_FIELDS', [ + 'currentProject', + 'projects', + 'keys', + 'isShowWelcomeDialog' + ]) .constant('LS_DEFAULTS', { + isShowWelcomeDialog: true, note: undefined, theme: undefined, currentTask: undefined, diff --git a/app/scripts/dialogs/dialogs-constant.js b/app/scripts/dialogs/dialogs-constant.js index d789947a02..8320588c69 100644 --- a/app/scripts/dialogs/dialogs-constant.js +++ b/app/scripts/dialogs/dialogs-constant.js @@ -17,10 +17,9 @@ controllerAs: 'vm', bindToController: true }, - CREATE_TASK: { - title: 'Out of undone tasks', - textContent: 'You run out of tasks. Go on and create some new ones if you like.', - ok: 'Got it!' + WELCOME: { + controller: 'WelcomeCtrl', + templateUrl: 'scripts/dialogs/welcome/welcome-c.html' }, WAS_IDLE: { controller: 'WasIdleCtrl', diff --git a/app/scripts/dialogs/welcome/_welcome-c.scss b/app/scripts/dialogs/welcome/_welcome-c.scss new file mode 100644 index 0000000000..f4ae02ef89 --- /dev/null +++ b/app/scripts/dialogs/welcome/_welcome-c.scss @@ -0,0 +1,3 @@ +.welcome-dialog { + +} \ No newline at end of file diff --git a/app/scripts/dialogs/welcome/welcome-c.html b/app/scripts/dialogs/welcome/welcome-c.html new file mode 100644 index 0000000000..cbce1dec7e --- /dev/null +++ b/app/scripts/dialogs/welcome/welcome-c.html @@ -0,0 +1,41 @@ + + +
+

Welcome to Super Productivity!

+ + + + +
+
+ + +
+

Happy to see you try out super productivity!

+

After familiarizing you with the basic functionality, you might want head over to + the settings to adjust everything to your personal needs and to set up the Jira Integration. You can find them under the cog icon in the upper right. +

+

Enjoy yourself!

+ + + Don't show this dialog at startup any more + +
+
+ + + + + Dismiss + + +
diff --git a/app/scripts/dialogs/welcome/welcome-c.js b/app/scripts/dialogs/welcome/welcome-c.js new file mode 100644 index 0000000000..00566c5a0f --- /dev/null +++ b/app/scripts/dialogs/welcome/welcome-c.js @@ -0,0 +1,32 @@ +/** + * @ngdoc function + * @name superProductivity.controller:WelcomeCtrl + * @description + * # WelcomeCtrl + * Controller of the superProductivity + */ + +(function () { + 'use strict'; + + angular + .module('superProductivity') + .controller('WelcomeCtrl', WelcomeCtrl); + + /* @ngInject */ + function WelcomeCtrl($mdDialog, $localStorage, IS_ELECTRON) { + let vm = this; + + vm.IS_ELECTRON = IS_ELECTRON; + + vm.isShowDialogAgain = $localStorage.isShowWelcomeDialog; + + vm.hideDialogChange = (isHide) => { + $localStorage.isShowWelcomeDialog = !isHide; + }; + + vm.cancel = () => { + $mdDialog.cancel(); + }; + } +})(); diff --git a/app/scripts/dialogs/welcome/welcome-c.spec.js b/app/scripts/dialogs/welcome/welcome-c.spec.js new file mode 100644 index 0000000000..fbcee35788 --- /dev/null +++ b/app/scripts/dialogs/welcome/welcome-c.spec.js @@ -0,0 +1,23 @@ +'use strict'; + +describe('Controller: WelcomeCtrl', function () { + + // load the controller's module + beforeEach(module('superProductivity')); + + var WelcomeCtrl; + var scope; + + // Initialize the controller and a mock scope + beforeEach(inject(function ($controller, $rootScope) { + scope = $rootScope.$new(); + WelcomeCtrl = $controller('WelcomeCtrl', { + $scope: scope + // place mocked dependencies here + }); + })); + + it('should ...', function () { + expect(true).toBe(true); + }); +}); diff --git a/app/scripts/main/global-services/projects-s.js b/app/scripts/main/global-services/projects-s.js index 7bff918dcc..ef3da1fe8d 100644 --- a/app/scripts/main/global-services/projects-s.js +++ b/app/scripts/main/global-services/projects-s.js @@ -14,13 +14,7 @@ .service('Projects', Projects); /* @ngInject */ - function Projects(LS_DEFAULTS, $localStorage, Uid, $window, SimpleToast, $injector) { - const GLOBAL_LS_FIELDS = [ - 'currentProject', - 'projects', - 'keys' - ]; - + function Projects(LS_DEFAULTS, $localStorage, Uid, $window, SimpleToast, $injector, GLOBAL_LS_FIELDS) { const TMP_FIELDS = [ '$$hashKey', '$$mdSelectId', diff --git a/app/styles/main.scss b/app/styles/main.scss index 7947923b73..44e2e7a684 100644 --- a/app/styles/main.scss +++ b/app/styles/main.scss @@ -79,6 +79,8 @@ IMPORTANT NOTE: @import '../scripts/dialogs/was-idle/_was-idle-c.scss'; +@import '../scripts/dialogs/welcome/_welcome-c.scss'; + @import '../scripts/done-tasks-backlog/_done-tasks-backlog-d.scss'; @import '../scripts/edit-on-click/_edit-on-click-d.scss';