diff --git a/app/assets/javascripts/app/controllers/editor.js b/app/assets/javascripts/app/controllers/editor.js index 7e86e81c4..48d8613a7 100644 --- a/app/assets/javascripts/app/controllers/editor.js +++ b/app/assets/javascripts/app/controllers/editor.js @@ -276,6 +276,11 @@ angular.module('app') let note = this.note; note.dummy = false; + if(note.deleted) { + alert("The note you are attempting to edit has been deleted, and is awaiting sync. Changes you make will be disregarded."); + return; + } + if(!modelManager.findItem(note.uuid)) { alert("The note you are attempting to save can not be found or has been deleted. Changes you make will not be synced. Please copy this note's text and start a new note."); return; @@ -330,7 +335,7 @@ angular.module('app') if(!error) { error = { message: "Sync Unreachable", - desc: "All changes saved offline" + desc: "Changes saved offline" } } this.saveError = true; diff --git a/app/assets/javascripts/app/controllers/notes.js b/app/assets/javascripts/app/controllers/notes.js index fc19ad797..74606dc72 100644 --- a/app/assets/javascripts/app/controllers/notes.js +++ b/app/assets/javascripts/app/controllers/notes.js @@ -296,6 +296,13 @@ angular.module('app') }) } + if(note.deleted) { + flags.push({ + text: "Deletion Pending Sync", + class: "danger" + }) + } + note.flags = flags; return flags; diff --git a/app/assets/javascripts/app/directives/views/revisionPreviewModal.js b/app/assets/javascripts/app/directives/views/revisionPreviewModal.js index e1844493e..27ca82858 100644 --- a/app/assets/javascripts/app/directives/views/revisionPreviewModal.js +++ b/app/assets/javascripts/app/directives/views/revisionPreviewModal.js @@ -75,6 +75,7 @@ class RevisionPreviewModal { var uuid = $scope.uuid; item = modelManager.findItem(uuid); item.content = Object.assign({}, $scope.content); + // mapResponseItemsToLocalModels is async, but we don't need to wait here. modelManager.mapResponseItemsToLocalModels([item], SFModelManager.MappingSourceRemoteActionRetrieved); } diff --git a/app/assets/javascripts/app/services/syncManager.js b/app/assets/javascripts/app/services/syncManager.js index 61b6949b4..41466a4cd 100644 --- a/app/assets/javascripts/app/services/syncManager.js +++ b/app/assets/javascripts/app/services/syncManager.js @@ -5,6 +5,8 @@ class SyncManager extends SFSyncManager { this.$rootScope = $rootScope; this.$compile = $compile; + // this.loggingEnabled = true; + // Content types appearing first are always mapped first this.contentTypeLoadPriority = [ "SN|UserPreferences", "SN|Privileges", diff --git a/app/assets/stylesheets/app/_editor.scss b/app/assets/stylesheets/app/_editor.scss index d3a3ac924..3ae1c42cc 100644 --- a/app/assets/stylesheets/app/_editor.scss +++ b/app/assets/stylesheets/app/_editor.scss @@ -29,12 +29,15 @@ $heading-height: 75px; height: auto; overflow: visible; + $title-width: 70%; + $save-status-width: 30%; + > .title { font-size: var(--sn-stylekit-font-size-h1); font-weight: bold; padding-top: 0px; - width: 100%; - padding-right: 120px; /* make room for save status */ + width: $title-width; + padding-right: 20px; /* make room for save status */ > .input { float: left; @@ -54,7 +57,7 @@ $heading-height: 75px; } #save-status { - width: 20%; + width: $save-status-width; float: right; position: absolute; @@ -64,6 +67,7 @@ $heading-height: 75px; font-weight: normal; margin-top: 4px; text-align: right; + white-space: nowrap; .desc, .message:not(.warning):not(.danger) { // color: var(--sn-stylekit-editor-foreground-color); diff --git a/package-lock.json b/package-lock.json index af39c440f..5ee655a2e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5724,9 +5724,9 @@ } }, "snjs": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/snjs/-/snjs-0.2.4.tgz", - "integrity": "sha512-WYrDWZpLnJ9PnE5d93ONGgCaN+D3y/kBdtI8orDkmbYsfSL0v5OX/Fbj96z6xMEskOFvXTH6vYO//LmlPrk4WQ==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/snjs/-/snjs-0.2.5.tgz", + "integrity": "sha512-HFjUD9tvVp5VN6ACmKxTlvpvhBTrLj5t8TSR6tPMOHtCU/ozpmuRgD0RFYfOhUYE5bY1woXC/YFR/Nl77oib3Q==", "dev": true }, "source-map": { @@ -5817,9 +5817,9 @@ "dev": true }, "standard-file-js": { - "version": "0.3.61", - "resolved": "https://registry.npmjs.org/standard-file-js/-/standard-file-js-0.3.61.tgz", - "integrity": "sha512-KxjtvYmZQIY9HIIDpW9Ss2cdMBID805Hjilz4xu7Ea2lZkTY4gk7/mx9x8/usNWeBEdfWvywQGFJ69iW6LZo1w==", + "version": "0.3.62", + "resolved": "https://registry.npmjs.org/standard-file-js/-/standard-file-js-0.3.62.tgz", + "integrity": "sha512-zvUYxgz7UlW9tOfl7gqgV9NjdTa/x8Cxp0RftB9008i/Mm4AHKBdvu3rTFcms7Hj+Sw+pHhLGbNm8H4c5rHY0A==", "dev": true }, "static-extend": { diff --git a/package.json b/package.json index 599661312..eac4358c4 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "mocha": "^5.2.0", "serve-static": "^1.13.2", "sn-stylekit": "2.0.15", - "snjs": "0.2.4", - "standard-file-js": "0.3.61" + "snjs": "0.2.5", + "standard-file-js": "0.3.62" } }