diff --git a/gui/app/components/toolbar/for-document.js b/gui/app/components/toolbar/for-document.js new file mode 100644 index 00000000..5b91cd81 --- /dev/null +++ b/gui/app/components/toolbar/for-document.js @@ -0,0 +1,84 @@ +// Copyright 2016 Documize Inc. . All rights reserved. +// +// This software (Documize Community Edition) is licensed under +// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html +// +// You can operate outside the AGPL restrictions by purchasing +// Documize Enterprise Edition and obtaining a commercial license +// by contacting . +// +// https://documize.com + +import Component from '@ember/component'; +// import { schedule } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import AuthMixin from '../../mixins/auth'; +import TooltipMixin from '../../mixins/tooltip'; + +export default Component.extend(TooltipMixin, AuthMixin, { + spaceService: service('folder'), + session: service(), + appMeta: service(), + pinned: service(), + pinState : { + isPinned: false, + pinId: '', + newName: '' + }, + + didReceiveAttrs() { + this._super(...arguments); + + let doc = this.get('document'); + + this.get('pinned').isDocumentPinned(doc.get('id')).then((pinId) => { + this.set('pinState.pinId', pinId); + this.set('pinState.isPinned', pinId !== ''); + this.set('pinState.newName', doc.get('name')); + this.renderTooltips(); + }); + }, + + didInsertElement() { + this._super(...arguments); + }, + + willDestroyElement() { + this._super(...arguments); + this.removeTooltips(); + }, + + actions: { + onPrintDocument() { + window.print(); + }, + + onUnpin() { + this.get('pinned').unpinItem(this.get('pinState.pinId')).then(() => { + $('#document-pin-button').tooltip('dispose'); + this.set('pinState.isPinned', false); + this.set('pinState.pinId', ''); + this.eventBus.publish('pinChange'); + this.renderTooltips(); + }); + }, + + onPin() { + let pin = { + pin: this.get('pinState.newName'), + documentId: this.get('document.id'), + folderId: this.get('space.id') + }; + + this.get('pinned').pinItem(pin).then((pin) => { + $('#document-pin-button').tooltip('dispose'); + this.set('pinState.isPinned', true); + this.set('pinState.pinId', pin.get('id')); + this.eventBus.publish('pinChange'); + this.renderTooltips(); + }); + + return true; + }, + } +}); diff --git a/gui/app/pods/document/index/template.hbs b/gui/app/pods/document/index/template.hbs index 5419d8d1..9854a63b 100644 --- a/gui/app/pods/document/index/template.hbs +++ b/gui/app/pods/document/index/template.hbs @@ -1,13 +1,7 @@ {{layout/nav-bar}}
- {{#toolbar/t-toolbar}} - {{#toolbar/t-links}} - {{#link-to "folders" class="link" tagName="li"}}Spaces{{/link-to}} - {{#link-to "folder" model.folder.id model.folder.slug class="link" tagName="li"}}{{model.folder.name}}{{/link-to}} - {{/toolbar/t-links}} - {{/toolbar/t-toolbar}} - + {{toolbar/for-document document=model.document spaces=model.folders space=model.folder permissions=model.permissions}} {{document/document-heading document=model.document permissions=model.permissions onSaveDocument=(action 'onSaveDocument')}} {{document/document-meta document=model.document folder=model.folder folders=model.folders permissions=model.permissions onSaveDocument=(action 'onSaveDocument')}} diff --git a/gui/app/templates/components/toolbar/for-document.hbs b/gui/app/templates/components/toolbar/for-document.hbs new file mode 100644 index 00000000..188ecdd5 --- /dev/null +++ b/gui/app/templates/components/toolbar/for-document.hbs @@ -0,0 +1,27 @@ +{{#toolbar/t-toolbar}} + + {{#toolbar/t-links}} + {{#link-to "folders" class="link" tagName="li"}}Spaces{{/link-to}} + {{#link-to "folder" space.id space.slug class="link" tagName="li"}}{{space.name}}{{/link-to}} + {{/toolbar/t-links}} + + {{#toolbar/t-actions}} +
+ print +
+
+ + {{#if pinState.isPinned}} +
+ star +
+ {{!--
--}} + {{else if session.authenticated}} +
+ star +
+ {{!--
--}} + {{/if}} + {{/toolbar/t-actions}} + +{{/toolbar/t-toolbar}}