From 55d7deaa9f6e1f90acbd6d8c9601dd07329536d4 Mon Sep 17 00:00:00 2001 From: Eugen Ciur <eugen@papermerge.com> Date: Sat, 13 Nov 2021 14:00:15 +0100 Subject: [PATCH] render document details via document version --- app/adapters/document.js | 17 +++++++++++++++++ app/components/document/detailed.hbs | 11 ----------- app/components/document/image.hbs | 11 ----------- app/components/document/image.js | 11 ----------- app/components/document_version.hbs | 5 +++++ app/models/content_type.js | 1 + app/models/document.js | 1 + app/models/document_version.js | 10 ++++++++++ app/models/page.js | 7 +++++++ app/routes/authenticated/document.js | 9 ++++++++- app/templates/authenticated/document.hbs | 1 - .../authenticated/document_version.hbs | 1 + app/templates/authenticated/documents.hbs | 5 ----- 13 files changed, 50 insertions(+), 40 deletions(-) create mode 100644 app/adapters/document.js delete mode 100644 app/components/document/detailed.hbs delete mode 100644 app/components/document/image.hbs delete mode 100644 app/components/document/image.js create mode 100644 app/components/document_version.hbs create mode 100644 app/models/document_version.js create mode 100644 app/models/page.js delete mode 100644 app/templates/authenticated/document.hbs create mode 100644 app/templates/authenticated/document_version.hbs delete mode 100644 app/templates/authenticated/documents.hbs diff --git a/app/adapters/document.js b/app/adapters/document.js new file mode 100644 index 0000000..f0b1aab --- /dev/null +++ b/app/adapters/document.js @@ -0,0 +1,17 @@ +import ApplicationAdapter from './application'; + + +export default class NodeAdapter extends ApplicationAdapter { + + getDocumentVersion(document_id) { + let url, ret; + + url = this.buildURL('documents', document_id); + + return this.ajax(url, 'GET').then((document_version) => { + this.store.pushPayload('document-version', document_version); + ret = this.store.peekRecord('document-version', document_version.data.id); + return ret; + }); + } +} diff --git a/app/components/document/detailed.hbs b/app/components/document/detailed.hbs deleted file mode 100644 index dfb6219..0000000 --- a/app/components/document/detailed.hbs +++ /dev/null @@ -1,11 +0,0 @@ -<div class="document detailed"> - <Document::Image - src={{@doc.image}} - alt="A picture of {{@doc.title}}" - /> - - <div class="details"> - <h3>About {{@doc.title}}</h3> - </div> - -</div> \ No newline at end of file diff --git a/app/components/document/image.hbs b/app/components/document/image.hbs deleted file mode 100644 index 53f64b3..0000000 --- a/app/components/document/image.hbs +++ /dev/null @@ -1,11 +0,0 @@ -{{#if this.isLarge}} - <button type="button" class="image large" {{on "click" this.toggleSize}}> - <img ...attributes> - <small>View Smaller</small> - </button> -{{else}} - <button type="button" class="image small" {{on "click" this.toggleSize}}> - <img ...attributes> - <small>View Larger</small> - </button> -{{/if}} \ No newline at end of file diff --git a/app/components/document/image.js b/app/components/document/image.js deleted file mode 100644 index 7b89bec..0000000 --- a/app/components/document/image.js +++ /dev/null @@ -1,11 +0,0 @@ -import Component from '@glimmer/component'; -import { tracked } from '@glimmer/tracking'; -import { action } from '@ember/object'; - -export default class DocumentImageComponent extends Component { - @tracked isLarge = false; - - @action toggleSize() { - this.isLarge = !this.isLarge; - } -} diff --git a/app/components/document_version.hbs b/app/components/document_version.hbs new file mode 100644 index 0000000..a338d32 --- /dev/null +++ b/app/components/document_version.hbs @@ -0,0 +1,5 @@ +Page Count = {{@model.page_count}} + +{{#each @model.pages as |page|}} + {{page.number}} +{{/each}} diff --git a/app/models/content_type.js b/app/models/content_type.js index c5b500e..b0a1f60 100644 --- a/app/models/content_type.js +++ b/app/models/content_type.js @@ -1,5 +1,6 @@ import Model, { attr, hasMany } from '@ember-data/model'; + class ContentTypeModel extends Model { @attr model; @hasMany('permission') permissions; diff --git a/app/models/document.js b/app/models/document.js index ddff917..570f3da 100644 --- a/app/models/document.js +++ b/app/models/document.js @@ -1,6 +1,7 @@ import { attr } from '@ember-data/model'; import NodeModel from './node'; + export default class DocumentModel extends NodeModel { @attr image; @attr lang; diff --git a/app/models/document_version.js b/app/models/document_version.js new file mode 100644 index 0000000..dbc2e2e --- /dev/null +++ b/app/models/document_version.js @@ -0,0 +1,10 @@ +import Model, { attr, hasMany } from '@ember-data/model'; + + +export default class DocumentVersionModel extends Model { + @attr number; // document version number + @attr size; // associated file size in bytes + @attr page_count; // total page count + @attr lang; // languate used for this page + @hasMany('pages') pages; +} diff --git a/app/models/page.js b/app/models/page.js new file mode 100644 index 0000000..63f4283 --- /dev/null +++ b/app/models/page.js @@ -0,0 +1,7 @@ +import Model, { attr } from '@ember-data/model'; + + +export default class PageModel extends Model { + // page number; page numbering start with 1 + @attr number; +} diff --git a/app/routes/authenticated/document.js b/app/routes/authenticated/document.js index ef2d3c3..4ac3263 100644 --- a/app/routes/authenticated/document.js +++ b/app/routes/authenticated/document.js @@ -6,6 +6,13 @@ export default class DocumentRoute extends Route { @service store; async model(params) { - return this.store.findRecord('document', params.document_id); + let adapter; + + adapter = this.store.adapterFor('document'); + return adapter.getDocumentVersion(params.document_id); + } + + renderTemplate() { + this.render('authenticated.document_version'); } } diff --git a/app/templates/authenticated/document.hbs b/app/templates/authenticated/document.hbs deleted file mode 100644 index 7cdfd02..0000000 --- a/app/templates/authenticated/document.hbs +++ /dev/null @@ -1 +0,0 @@ -<Document::Detailed @doc={{@model}} /> \ No newline at end of file diff --git a/app/templates/authenticated/document_version.hbs b/app/templates/authenticated/document_version.hbs new file mode 100644 index 0000000..0b32a70 --- /dev/null +++ b/app/templates/authenticated/document_version.hbs @@ -0,0 +1 @@ +<DocumentVersion @model={{@model}} /> \ No newline at end of file diff --git a/app/templates/authenticated/documents.hbs b/app/templates/authenticated/documents.hbs deleted file mode 100644 index e0822b2..0000000 --- a/app/templates/authenticated/documents.hbs +++ /dev/null @@ -1,5 +0,0 @@ -{{page-title "Documents"}} -<DocumentsList - @title="List of Documents" - @document={{@model}} -/> \ No newline at end of file -- GitLab