Do you want to cancel editing and lose unsaved changes?
-diff --git a/gui/app/components/document/block-editor.js b/gui/app/components/document/block-editor.js index a4575f68..99f97b2e 100644 --- a/gui/app/components/document/block-editor.js +++ b/gui/app/components/document/block-editor.js @@ -10,7 +10,6 @@ // https://documize.com import { inject as service } from '@ember/service'; - import Component from '@ember/component'; export default Component.extend({ diff --git a/gui/app/components/document/content-linker.js b/gui/app/components/document/content-linker.js index b6558130..a1e3a9b5 100644 --- a/gui/app/components/document/content-linker.js +++ b/gui/app/components/document/content-linker.js @@ -12,7 +12,6 @@ import { debounce } from '@ember/runloop'; import { computed, set } from '@ember/object'; import { inject as service } from '@ember/service'; -import { A } from '@ember/array'; import Component from '@ember/component'; import TooltipMixin from '../../mixins/tooltip'; import ModalMixin from '../../mixins/modal'; diff --git a/gui/app/components/document/page-heading.js b/gui/app/components/document/page-heading.js index bde8c3ae..4ed00ffc 100644 --- a/gui/app/components/document/page-heading.js +++ b/gui/app/components/document/page-heading.js @@ -38,6 +38,8 @@ export default Component.extend(ModalMixin, { return; } + this.modalInputFocus('#publish-page-modal-' + this.get('page.id'), '#block-title-' + this.get('page.id')); + this.load(); }, @@ -49,6 +51,10 @@ export default Component.extend(ModalMixin, { i.set('selected', false); }); + if (this.get('isDestroyed') || this.get('isDestroying')) { + return; + } + this.set('documentList', A(d)); this.set('documentListOthers', A(d.filter((item) => item.get('id') !== me.get('id')))); }); diff --git a/gui/app/components/section/base-editor-inline.js b/gui/app/components/section/base-editor-inline.js index f12578d8..0f9f9b5c 100644 --- a/gui/app/components/section/base-editor-inline.js +++ b/gui/app/components/section/base-editor-inline.js @@ -20,10 +20,12 @@ export default Component.extend(TooltipMixin, ModalMixin, { mousetrap: null, showLinkModal: false, hasNameError: empty('page.title'), + hasDescError: empty('page.excerpt'), pageId: computed('page', function () { let page = this.get('page'); return `page-editor-${page.id}`; }), + previewText: 'Preview', didRender() { let msContainer = document.getElementById('section-editor-' + this.get('containerId')); @@ -91,6 +93,8 @@ export default Component.extend(TooltipMixin, ModalMixin, { }, onPreview() { + let pt = this.get('previewText'); + this.set('previewText', pt === 'Preview' ? 'Edit Mode' : 'Preview'); return this.get('onPreview')(); }, diff --git a/gui/app/components/section/base-editor.js b/gui/app/components/section/base-editor.js index d8811b85..5994e5a9 100644 --- a/gui/app/components/section/base-editor.js +++ b/gui/app/components/section/base-editor.js @@ -9,19 +9,16 @@ // // https://documize.com -import { computed } from '@ember/object'; - +import { empty } from '@ember/object/computed'; import Component from '@ember/component'; +import ModalMixin from '../../mixins/modal'; -export default Component.extend({ - drop: null, +export default Component.extend(ModalMixin, { cancelLabel: "Close", actionLabel: "Save", - tip: "Short and concise title", busy: false, - hasExcerpt: computed('page', function () { - return is.not.undefined(this.get('page.excerpt')); - }), + hasNameError: empty('page.title'), + hasDescError: empty('page.excerpt'), didRender() { let self = this; @@ -34,8 +31,8 @@ export default Component.extend({ return false; }); - $("#page-title").removeClass("error"); - $("#page-excerpt").removeClass("error"); + $("#page-title").removeClass("is-invalid"); + $("#page-excerpt").removeClass("is-invalid"); $("#page-title").focus(function() { $(this).select(); @@ -45,65 +42,38 @@ export default Component.extend({ }); }, - willDestroyElement() { - let drop = this.get('drop'); - - if (is.not.null(drop)) { - drop.destroy(); - } - }, - actions: { onCancel() { if (this.attrs.isDirty() !== null && this.attrs.isDirty()) { - $(".discard-edits-dialog").css("display", "block"); - - let drop = new Drop({ - target: $("#editor-cancel")[0], - content: $(".cancel-edits-dialog")[0], - classes: 'drop-theme-basic', - position: "bottom right", - openOn: "always", - tetherOptions: { - offset: "5px 0", - targetOffset: "10px 0" - }, - remove: false - }); - - this.set('drop', drop); - + this.modalOpen('#discard-modal', {show: true}); return; } this.attrs.onCancel(); }, + onDiscard() { + this.modalClose('#discard-modal'); + this.attrs.onCancel(); + }, + + onAction() { if (this.get('busy')) { return; } if (is.empty(this.get('page.title'))) { - $("#page-title").addClass("error").focus(); + $("#page-title").addClass("is-invalid").focus(); return; } if (this.get('hasExcerpt') && is.empty(this.get('page.excerpt'))) { - $("#page-excerpt").addClass("error").focus(); + $("#page-excerpt").addClass("is-invalid").focus(); return; } this.attrs.onAction(this.get('page.title')); - }, - - keepEditing() { - let drop = this.get('drop'); - drop.close(); - }, - - discardEdits() { - this.attrs.onCancel(); } } }); diff --git a/gui/app/components/toolbar/for-document.js b/gui/app/components/toolbar/for-document.js index b7a9a7db..5eb981df 100644 --- a/gui/app/components/toolbar/for-document.js +++ b/gui/app/components/toolbar/for-document.js @@ -29,6 +29,8 @@ export default Component.extend(ModalMixin, TooltipMixin, AuthMixin, { name: '', description: '' }, + showTools: true, // show document related tools? favourite, delete, make template... + showDocumentLink: false, // show link to document in breadcrumbs didReceiveAttrs() { this._super(...arguments); diff --git a/gui/app/pods/document/block/controller.js b/gui/app/pods/document/block/controller.js index 86bc2569..170f301d 100644 --- a/gui/app/pods/document/block/controller.js +++ b/gui/app/pods/document/block/controller.js @@ -10,7 +10,6 @@ // https://documize.com import { inject as service } from '@ember/service'; - import Controller from '@ember/controller'; export default Controller.extend({ diff --git a/gui/app/pods/document/block/route.js b/gui/app/pods/document/block/route.js index e1cd49c0..33f12b29 100644 --- a/gui/app/pods/document/block/route.js +++ b/gui/app/pods/document/block/route.js @@ -10,7 +10,6 @@ // https://documize.com import { hash } from 'rsvp'; - import { inject as service } from '@ember/service'; import Route from '@ember/routing/route'; import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin'; @@ -29,12 +28,4 @@ export default Route.extend(AuthenticatedRouteMixin, { block: self.get('sectionService').getBlock(params.block_id), }); }, - - activate() { - $('body').addClass('background-color-off-white'); - }, - - deactivate() { - $('body').removeClass('background-color-off-white'); - } }); diff --git a/gui/app/pods/document/block/template.hbs b/gui/app/pods/document/block/template.hbs index d4bd7258..1a423f02 100644 --- a/gui/app/pods/document/block/template.hbs +++ b/gui/app/pods/document/block/template.hbs @@ -1,18 +1,7 @@ -
Do you want to cancel editing and lose unsaved changes?
-You have no team boards to share - personal boards are never shown
+ {{else}} +