1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-08-02 20:15:26 +02:00

document view revisions UX

This commit is contained in:
Harvey Kandola 2017-12-11 13:45:56 +00:00
parent 66bc874d95
commit e61b2d0aa8
13 changed files with 130 additions and 160 deletions

View file

@ -1,25 +0,0 @@
import { inject as service } from '@ember/service';
import Controller from '@ember/controller';
import NotifierMixin from '../../../mixins/notifier';
export default Controller.extend(NotifierMixin, {
documentService: service('document'),
actions: {
onFetchDiff(pageId, revisionId) {
this.get('documentService').getPageRevisionDiff(this.get('model.document.id'), pageId, revisionId).then((revision) => {
this.set('model.diff', revision);
});
},
onRollback(pageId, revisionId) {
this.get('documentService').rollbackPage(this.get('model.document.id'), pageId, revisionId).then(() => {
this.transitionToRoute('document.index',
this.get('model.folder.id'),
this.get('model.folder.slug'),
this.get('model.document.id'),
this.get('model.document.slug'));
});
}
}
});

View file

@ -1,25 +0,0 @@
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';
export default Route.extend(AuthenticatedRouteMixin, {
documentService: service('document'),
folderService: service('folder'),
model() {
return hash({
folders: this.modelFor('document').folders,
folder: this.modelFor('document').folder,
document: this.modelFor('document').document,
pages: this.modelFor('document').pages,
diff: "",
revisions: this.get('documentService').getDocumentRevisions(this.modelFor('document').document.get('id'))
});
},
setupController(controller, model) {
controller.set('model', model);
controller.set('hasRevisions', model.revisions.length > 0);
}
});

View file

@ -1,23 +0,0 @@
<div class="zone-document-history">
<div class="page-container">
<div id="page-content-wrapper">
<div id="zone-document-content" class="zone-document-content">
<div class="back-to-space">
{{#link-to 'document.index' model.folder.id model.folder.slug model.document.id model.document.slug}}
<i class="material-icons">arrow_back</i>&nbsp;{{model.document.name}}
{{/link-to}}
</div>
{{document/document-heading document=model.document}}
{{#if hasRevisions}}
{{document/document-history document=model.document folder=model.folder pages=model.pages
revisions=model.revisions diff=model.diff onFetchDiff=(action 'onFetchDiff') onRollback=(action 'onRollback')}}
{{else}}
No revisions made
{{/if}}
</div>
</div>
</div>
</div>

View file

@ -238,6 +238,13 @@ export default Controller.extend(NotifierMixin, TooltipMixin, {
let doc = this.get('model.document');
doc.set('tags', tags);
this.get('documentService').save(doc);
}
},
onRollback(pageId, revisionId) {
this.get('documentService').rollbackPage(this.get('model.document.id'), pageId, revisionId).then(() => {
this.set('tab', 'content');
this.get('target._routerMicrolib').refresh();
});
}
}
});

View file

@ -30,6 +30,10 @@
{{#if (eq tab 'activity')}}
{{document/view-activity document=model.document pages=model.pages permissions=model.permissions}}
{{/if}}
{{#if (eq tab 'revision')}}
{{document/view-revision document=model.document folder=model.folder pages=model.pages onRollback=(action 'onRollback')}}
{{/if}}
<div id="zone-document-content" class="zone-document-content">
{{document/document-sidebar tab=tab