1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-24 23:59:47 +02:00

WIP document view

This commit is contained in:
Harvey Kandola 2017-12-05 19:03:38 +00:00
parent 72615ba77b
commit 836b7f3fb4
20 changed files with 484 additions and 621 deletions

View file

@ -1,149 +0,0 @@
// Copyright 2016 Documize Inc. <legal@documize.com>. 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 <sales@documize.com>.
//
// https://documize.com
import { inject as service } from '@ember/service';
import Component from '@ember/component';
import TooltipMixin from '../../mixins/tooltip';
import NotifierMixin from '../../mixins/notifier';
export default Component.extend(TooltipMixin, NotifierMixin, {
documentService: service('document'),
sectionService: service('section'),
sessionService: service('session'),
appMeta: service(),
userService: service('user'),
localStorage: service(),
pinned: service(),
menuOpen: false,
pinState : {
isPinned: false,
pinId: '',
newName: '',
},
saveTemplate: {
name: "",
description: ""
},
init() {
this._super(...arguments);
},
didReceiveAttrs() {
this._super(...arguments);
this.set('saveTemplate.name', this.get('document.name'));
this.set('saveTemplate.description', this.get('document.excerpt'));
this.get('pinned').isDocumentPinned(this.get('document.id')).then( (pinId) => {
this.set('pinState.pinId', pinId);
this.set('pinState.isPinned', pinId !== '');
});
this.set('pinState.newName', this.get('document.name'));
},
didRender() {
this.destroyTooltips();
if (this.get('permissions.documentEdit')) {
this.addTooltip(document.getElementById("document-activity-button"));
}
},
actions: {
onMenuOpen() {
this.set('menuOpen', !this.get('menuOpen'));
},
onDeleteDocument() {
this.attrs.onDocumentDelete();
},
onPrintDocument() {
$("#sidebar-zone-more-button").click();
window.print();
},
onPageSequenceChange(changes) {
this.get('onPageSequenceChange')(changes);
},
onPageLevelChange(changes) {
this.get('onPageLevelChange')(changes);
},
onGotoPage(id) {
this.get('onGotoPage')(id);
},
onUnpin() {
this.get('pinned').unpinItem(this.get('pinState.pinId')).then(() => {
this.set('pinState.isPinned', false);
this.set('pinState.pinId', '');
this.eventBus.publish('pinChange');
});
},
onPin() {
let pin = {
pin: this.get('pinState.newName'),
documentId: this.get('document.id'),
folderId: this.get('folder.id')
};
if (is.empty(pin.pin)) {
$("#pin-document-name").addClass("error").focus();
return false;
}
this.get('pinned').pinItem(pin).then((pin) => {
this.set('pinState.isPinned', true);
this.set('pinState.pinId', pin.get('id'));
this.eventBus.publish('pinChange');
});
return true;
},
onSaveTemplate() {
var name = this.get('saveTemplate.name');
var excerpt = this.get('saveTemplate.description');
if (is.empty(name)) {
$("#new-template-name").addClass("error").focus();
return false;
}
if (is.empty(excerpt)) {
$("#new-template-desc").addClass("error").focus();
return false;
}
this.showNotification('Template saved');
this.attrs.onSaveTemplate(name, excerpt);
return true;
},
onLayoutChange(layout) {
let doc = this.get('document');
doc.set('layout', layout);
if (this.get('permissions.documentEdit')) {
this.get('documentService').save(doc);
}
return true;
}
}
});

View file

@ -10,7 +10,6 @@
// https://documize.com
import { notEmpty, empty } from '@ember/object/computed';
import { schedule } from '@ember/runloop';
import { inject as service } from '@ember/service';
import Component from '@ember/component';

View file

@ -11,11 +11,10 @@
import Component from '@ember/component';
import { inject as service } from '@ember/service';
import NotifierMixin from '../../mixins/notifier';
import TooltipMixin from '../../mixins/tooltip';
import DropdownMixin from '../../mixins/dropdown';
import ModalMixin from '../../mixins/modal';
export default Component.extend(NotifierMixin, TooltipMixin, DropdownMixin, {
export default Component.extend(ModalMixin, TooltipMixin, {
userService: service('user'),
categoryService: service('category'),
appMeta: service(),
@ -114,13 +113,11 @@ export default Component.extend(NotifierMixin, TooltipMixin, DropdownMixin, {
let cat = this.get('category').findBy('id', id);
this.set('deleteId', cat.get('id'));
$('#category-delete-modal').modal('dispose');
$('#category-delete-modal').modal({show: true});
this.modalOpen('#category-delete-modal', {show: true});
},
onDelete() {
$('#category-delete-modal').modal('hide');
$('#category-delete-modal').modal('dispose');
this.modalClose('#category-delete-modal');
this.get('categoryService').delete(this.get('deleteId')).then(() => {
this.load();

View file

@ -10,12 +10,12 @@
// 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';
import ModalMixin from '../../mixins/modal';
export default Component.extend(TooltipMixin, AuthMixin, {
export default Component.extend(ModalMixin, TooltipMixin, AuthMixin, {
spaceService: service('folder'),
session: service(),
appMeta: service(),
@ -25,6 +25,10 @@ export default Component.extend(TooltipMixin, AuthMixin, {
pinId: '',
newName: ''
},
saveTemplate: {
name: '',
description: ''
},
didReceiveAttrs() {
this._super(...arguments);
@ -37,10 +41,15 @@ export default Component.extend(TooltipMixin, AuthMixin, {
this.set('pinState.newName', doc.get('name'));
this.renderTooltips();
});
this.set('saveTemplate.name', this.get('document.name'));
this.set('saveTemplate.description', this.get('document.excerpt'));
},
didInsertElement() {
this._super(...arguments);
this.modalInputFocus('#document-template-modal', '#new-template-name');
},
willDestroyElement() {
@ -49,6 +58,10 @@ export default Component.extend(TooltipMixin, AuthMixin, {
},
actions: {
onDocumentDelete() {
this.attrs.onDocumentDelete();
},
onPrintDocument() {
window.print();
},
@ -80,5 +93,32 @@ export default Component.extend(TooltipMixin, AuthMixin, {
return true;
},
onSaveTemplate() {
let name = this.get('saveTemplate.name');
let excerpt = this.get('saveTemplate.description');
if (is.empty(name)) {
$("#new-template-name").addClass("is-invalid").focus();
return;
}
if (is.empty(excerpt)) {
$("#new-template-desc").addClass("is-invalid").focus();
return;
}
$("#new-template-name").removeClass("is-invalid");
$("#new-template-desc").removeClass("is-invalid");
this.set('saveTemplate.name', '');
this.set('saveTemplate.description', '');
this.attrs.onSaveTemplate(name, excerpt);
this.modalClose('#document-template-modal');
return true;
},
}
});

View file

@ -10,14 +10,14 @@
// https://documize.com
import Component from '@ember/component';
import { schedule } from '@ember/runloop';
import { computed } from '@ember/object';
import { inject as service } from '@ember/service';
import NotifierMixin from '../../mixins/notifier';
import TooltipMixin from '../../mixins/tooltip';
import ModalMixin from '../../mixins/modal';
import AuthMixin from '../../mixins/auth';
export default Component.extend(NotifierMixin, TooltipMixin, AuthMixin, {
export default Component.extend(NotifierMixin, ModalMixin, TooltipMixin, AuthMixin, {
spaceService: service('folder'),
session: service(),
appMeta: service(),
@ -53,25 +53,17 @@ export default Component.extend(NotifierMixin, TooltipMixin, AuthMixin, {
});
this.set('movedFolderOptions', targets);
if (this.get('inviteMessage').length === 0) {
this.set('inviteMessage', this.getDefaultInvitationMessage());
}
},
didInsertElement() {
this._super(...arguments);
$('#space-delete-modal').on('show.bs.modal', function(event) { // eslint-disable-line no-unused-vars
schedule('afterRender', () => {
$("#delete-space-name").focus();
});
});
$('#space-invite-modal').on('show.bs.modal', () => { // eslint-disable-line no-unused-vars
schedule('afterRender', () => {
$("#space-invite-email").focus();
if (this.get('inviteMessage').length === 0) {
this.set('inviteMessage', this.getDefaultInvitationMessage());
}
});
});
this.modalInputFocus('#space-delete-modal', '#delete-space-name');
this.modalInputFocus('#space-invite-modal', '#space-invite-email');
},
willDestroyElement() {
@ -151,8 +143,7 @@ export default Component.extend(NotifierMixin, TooltipMixin, AuthMixin, {
$('#space-invite-email').removeClass('is-invalid');
});
$('#space-invite-modal').modal('hide');
$('#space-invite-modal').modal('dispose');
this.modalClose('#space-invite-modal');
},
onSpaceDelete(e) {
@ -171,8 +162,8 @@ export default Component.extend(NotifierMixin, TooltipMixin, AuthMixin, {
this.attrs.onDeleteSpace(this.get('space.id'));
$('#space-delete-modal').modal('hide');
$('#space-delete-modal').modal('dispose');
this.modalClose('#space-delete-modal');
},
onAddSpace(e) {