diff --git a/app/assets/javascripts/app/frontend/controllers/_base.js b/app/assets/javascripts/app/frontend/controllers/_base.js index 4641b0ed0..3f802e41d 100644 --- a/app/assets/javascripts/app/frontend/controllers/_base.js +++ b/app/assets/javascripts/app/frontend/controllers/_base.js @@ -1,10 +1,14 @@ class BaseCtrl { - constructor(syncManager, dbManager, analyticsManager) { + constructor($rootScope, $scope, syncManager, dbManager, analyticsManager) { dbManager.openDatabase(null, function(){ // new database, delete syncToken so that items can be refetched entirely from server syncManager.clearSyncToken(); syncManager.sync(); }) + + $scope.onUpdateAvailable = function(version) { + $rootScope.$broadcast('new-update-available', version); + } } } diff --git a/app/assets/javascripts/app/frontend/controllers/header.js b/app/assets/javascripts/app/frontend/controllers/footer.js similarity index 69% rename from app/assets/javascripts/app/frontend/controllers/header.js rename to app/assets/javascripts/app/frontend/controllers/footer.js index 19261f27a..1fc3fad8a 100644 --- a/app/assets/javascripts/app/frontend/controllers/header.js +++ b/app/assets/javascripts/app/frontend/controllers/footer.js @@ -1,11 +1,11 @@ angular.module('app.frontend') - .directive("header", function(authManager){ + .directive("footer", function(authManager){ return { restrict: 'E', scope: {}, - templateUrl: 'frontend/header.html', + templateUrl: 'frontend/footer.html', replace: true, - controller: 'HeaderCtrl', + controller: 'FooterCtrl', controllerAs: 'ctrl', bindToController: true, @@ -22,7 +22,7 @@ angular.module('app.frontend') } } }) - .controller('HeaderCtrl', function (authManager, modelManager, $timeout, dbManager, syncManager) { + .controller('FooterCtrl', function ($rootScope, authManager, modelManager, $timeout, dbManager, syncManager) { this.user = authManager.user; @@ -78,4 +78,20 @@ angular.module('app.frontend') this.syncUpdated = function() { this.lastSyncDate = new Date(); } + + $rootScope.$on("new-update-available", function(version){ + $timeout(function(){ + // timeout calls apply() which is needed + this.onNewUpdateAvailable(); + }.bind(this)) + }.bind(this)) + + this.onNewUpdateAvailable = function() { + this.newUpdateAvailable = true; + } + + this.clickedNewUpdateAnnouncement = function() { + this.newUpdateAvailable = false; + alert("A new update is ready to install. Updates address performance and security issues, as well as bug fixes and feature enhancements. Simply quit Standard Notes and re-open it for the update to be applied.") + } }); diff --git a/app/assets/stylesheets/app/_header.scss b/app/assets/stylesheets/app/_footer.scss similarity index 98% rename from app/assets/stylesheets/app/_header.scss rename to app/assets/stylesheets/app/_footer.scss index 304224676..ef4e5658d 100644 --- a/app/assets/stylesheets/app/_header.scss +++ b/app/assets/stylesheets/app/_footer.scss @@ -18,8 +18,8 @@ h2 { width: 100%; padding: 5px; background-color: #d8d7d9; - height: $header-height; - max-height: $header-height; + height: $footer-height; + max-height: $footer-height; z-index: 100; font-size: 10px; color: $dark-gray; diff --git a/app/assets/stylesheets/app/_main.scss b/app/assets/stylesheets/app/_main.scss index 1ccca42f5..d549d515e 100644 --- a/app/assets/stylesheets/app/_main.scss +++ b/app/assets/stylesheets/app/_main.scss @@ -84,13 +84,13 @@ p { background-color: $bg-color; } -$header-height: 25px; +$footer-height: 25px; $section-header-height: 70px; .app { // height: 100%; - height: calc(100% - #{$header-height}); + height: calc(100% - #{$footer-height}); width: 100%; display: flex; vertical-align: top; @@ -115,7 +115,7 @@ $section-header-height: 70px; .section { padding-bottom: 0px; height: 100%; - max-height: calc(100vh - #{$header-height}); + max-height: calc(100vh - #{$footer-height}); font-size: 17px; .scrollable { diff --git a/app/assets/stylesheets/app/_notes.scss b/app/assets/stylesheets/app/_notes.scss index e792f6041..815f9adc0 100644 --- a/app/assets/stylesheets/app/_notes.scss +++ b/app/assets/stylesheets/app/_notes.scss @@ -52,7 +52,7 @@ } .scrollable { - height: calc(100vh - (#{$notes-title-bar-height} + #{$header-height})); + height: calc(100vh - (#{$notes-title-bar-height} + #{$footer-height})); } .infinite-scroll { diff --git a/app/assets/stylesheets/app/_tags.scss b/app/assets/stylesheets/app/_tags.scss index a12ad01ba..953fc0881 100644 --- a/app/assets/stylesheets/app/_tags.scss +++ b/app/assets/stylesheets/app/_tags.scss @@ -29,7 +29,7 @@ } .scrollable { - height: calc(100vh - (#{$tags-title-bar-height} + #{$header-height})); + height: calc(100vh - (#{$tags-title-bar-height} + #{$footer-height})); } .tag { diff --git a/app/assets/stylesheets/frontend.css.scss b/app/assets/stylesheets/frontend.css.scss index 8945b6b50..81f725378 100644 --- a/app/assets/stylesheets/frontend.css.scss +++ b/app/assets/stylesheets/frontend.css.scss @@ -3,7 +3,7 @@ $dark-gray: #2e2e2e; @import "app/standard"; @import "app/main"; @import "app/ui"; -@import "app/header"; +@import "app/footer"; @import "app/tags"; @import "app/notes"; @import "app/editor"; diff --git a/app/assets/templates/frontend/header.html.haml b/app/assets/templates/frontend/footer.html.haml similarity index 86% rename from app/assets/templates/frontend/header.html.haml rename to app/assets/templates/frontend/footer.html.haml index 06256bb70..d1f85155d 100644 --- a/app/assets/templates/frontend/header.html.haml +++ b/app/assets/templates/frontend/footer.html.haml @@ -14,6 +14,9 @@ .pull-right + .footer-bar-link{"ng-if" => "ctrl.newUpdateAvailable", "ng-click" => "ctrl.clickedNewUpdateAnnouncement()"} + %span.blue.normal New update downloaded. Installs on app restart. + .footer-bar-link{"style" => "margin-right: 5px;"} %div{"ng-if" => "ctrl.lastSyncDate", "style" => "float: left; font-weight: normal; margin-right: 8px;"} %span{"ng-if" => "!ctrl.isRefreshing"} diff --git a/app/assets/templates/frontend/home.html.haml b/app/assets/templates/frontend/home.html.haml index 2b4ad06d7..26adaaf96 100644 --- a/app/assets/templates/frontend/home.html.haml +++ b/app/assets/templates/frontend/home.html.haml @@ -7,4 +7,4 @@ %editor-section{"note" => "selectedNote", "remove" => "deleteNote", "save" => "saveNote", "update-tags" => "updateTagsForNote"} - %header + %footer