diff --git a/Gruntfile.js b/Gruntfile.js index c4607c6d4..498291391 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -149,6 +149,19 @@ module.exports = function(grunt) { dest: 'dist/javascripts/compiled.min.js' } }, + + ngconstant: { + options: { + name: 'app', + dest: 'app/assets/javascripts/app/constants.js', + deps: false, + constants: { + appVersion: grunt.file.readJSON('package.json').version + } + }, + build: { + } + }, }); grunt.loadNpmTasks('grunt-newer'); @@ -162,10 +175,13 @@ module.exports = function(grunt) { grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-babel'); grunt.loadNpmTasks('grunt-browserify'); + grunt.loadNpmTasks('grunt-ng-constant'); grunt.registerTask('default', ['haml', 'ngtemplates', 'sass', 'concat:app', 'babel', 'browserify', - 'concat:lib', 'concat:dist', 'ngAnnotate', 'concat:css', 'uglify']); + 'concat:lib', 'concat:dist', 'ngAnnotate', 'concat:css', 'uglify', 'ngconstant:build']); grunt.registerTask('vendor', ['concat:app', 'sass', 'babel', 'browserify', 'concat:lib', 'concat:dist', 'ngAnnotate', 'concat:css', 'uglify']); + + grunt.registerTask('constants', ['ngconstant:build']) }; diff --git a/app/assets/javascripts/app/constants.js b/app/assets/javascripts/app/constants.js new file mode 100644 index 000000000..ddfc7dc4d --- /dev/null +++ b/app/assets/javascripts/app/constants.js @@ -0,0 +1,5 @@ +angular.module('app') + +.constant('appVersion', '3.0.8') + +; \ No newline at end of file diff --git a/app/assets/javascripts/app/directives/views/accountMenu.js b/app/assets/javascripts/app/directives/views/accountMenu.js index 0d83fd47f..cfbff6428 100644 --- a/app/assets/javascripts/app/directives/views/accountMenu.js +++ b/app/assets/javascripts/app/directives/views/accountMenu.js @@ -10,9 +10,10 @@ class AccountMenu { } controller($scope, $rootScope, authManager, modelManager, syncManager, storageManager, dbManager, passcodeManager, - $timeout, $compile, archiveManager, privilegesManager) { + $timeout, $compile, archiveManager, privilegesManager, appVersion) { 'ngInject'; + $scope.appVersion = "v" + appVersion; $scope.formData = {mergeLocal: true, ephemeral: false}; $scope.user = authManager.user; diff --git a/app/assets/templates/directives/account-menu.html.haml b/app/assets/templates/directives/account-menu.html.haml index e4f4843d4..d730d7892 100644 --- a/app/assets/templates/directives/account-menu.html.haml +++ b/app/assets/templates/directives/account-menu.html.haml @@ -194,7 +194,9 @@ .sk-panel-row .sk-spinner.small.info{"ng-if" => "importData.loading"} .sk-panel-footer - %a.sk-a.right{"ng-if" => "formData.showLogin || formData.showRegister", "ng-click" => "formData.showLogin = false; formData.showRegister = false;"} - Cancel - %a.sk-a.right.danger{"ng-if" => "!formData.showLogin && !formData.showRegister", "ng-click" => "destroyLocalData()"} - {{ user ? "Sign out and clear local data" : "Clear all local data" }} + .sk-panel-row + .sk-p.left.neutral {{appVersion}} + %a.sk-a.right{"ng-if" => "formData.showLogin || formData.showRegister", "ng-click" => "formData.showLogin = false; formData.showRegister = false;"} + Cancel + %a.sk-a.right.danger{"ng-if" => "!formData.showLogin && !formData.showRegister", "ng-click" => "destroyLocalData()"} + {{ user ? "Sign out and clear local data" : "Clear all local data" }} diff --git a/package-lock.json b/package-lock.json index d3314afa6..82b1de583 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3288,6 +3288,18 @@ "ng-annotate": "1.2.2" } }, + "grunt-ng-constant": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/grunt-ng-constant/-/grunt-ng-constant-2.0.2.tgz", + "integrity": "sha512-pgWLcmg1cMprYeL/V7/h/ZCpJS+81kpuqUYnfDWbNhS6m+U2Gjxynv9kcCWoR5273jrpGvdi5B+l5P6GaYCYOQ==", + "dev": true, + "requires": { + "jju": "1.4.0", + "lodash": "4.17.11", + "merge": "1.2.1", + "tosource": "1.0.0" + } + }, "grunt-shell": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/grunt-shell/-/grunt-shell-2.1.0.tgz", @@ -3822,6 +3834,12 @@ "isarray": "1.0.0" } }, + "jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", + "dev": true + }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -4065,6 +4083,12 @@ } } }, + "merge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", + "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==", + "dev": true + }, "micromatch": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", @@ -6084,6 +6108,12 @@ } } }, + "tosource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tosource/-/tosource-1.0.0.tgz", + "integrity": "sha1-QtiN0RZhi88A1hBt1URvNCeQL/E=", + "dev": true + }, "trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", diff --git a/package.json b/package.json index ebd43c258..9b6ce5076 100644 --- a/package.json +++ b/package.json @@ -34,11 +34,12 @@ "grunt-haml2html": "^0.3.1", "grunt-newer": "^1.2.0", "grunt-ng-annotate": "^3.0.0", + "grunt-ng-constant": "^2.0.2", + "grunt-shell": "^2.1.0", "mocha": "^5.2.0", "serve-static": "^1.13.2", - "snjs": "0.2.1", "sn-stylekit": "2.0.14", - "standard-file-js": "0.3.58", - "grunt-shell": "^2.1.0" + "snjs": "0.2.1", + "standard-file-js": "0.3.58" } }