From 47d68932744239db3b78ec8706446c1a8a446690 Mon Sep 17 00:00:00 2001
From: Eugen Ciur <eugen@papermerge.com>
Date: Sun, 14 Nov 2021 07:41:11 +0100
Subject: [PATCH] basic document version viewer

---
 app/components/document_version.hbs           |  7 -------
 app/components/document_version/index.hbs     | 11 ++++++++++
 app/components/document_version/page.hbs      |  4 ++++
 app/components/document_version/thumbnail.hbs |  4 ++++
 .../document_version/thumbnails.hbs           |  5 +++++
 app/components/page.hbs                       |  3 ---
 app/models/document_version.js                |  3 ++-
 app/styles/app.scss                           |  2 ++
 app/styles/document_version.scss              | 20 +++++++++++++++++++
 9 files changed, 48 insertions(+), 11 deletions(-)
 delete mode 100644 app/components/document_version.hbs
 create mode 100644 app/components/document_version/index.hbs
 create mode 100644 app/components/document_version/page.hbs
 create mode 100644 app/components/document_version/thumbnail.hbs
 create mode 100644 app/components/document_version/thumbnails.hbs
 delete mode 100644 app/components/page.hbs
 create mode 100644 app/styles/document_version.scss

diff --git a/app/components/document_version.hbs b/app/components/document_version.hbs
deleted file mode 100644
index 9ff07f1..0000000
--- a/app/components/document_version.hbs
+++ /dev/null
@@ -1,7 +0,0 @@
-Page Count = {{@model.document_version.page_count}}
-
-<div class="d-flex flex-column">
-  {{#each @model.pages as |page|}}
-    <Page @page={{page}} />
-  {{/each}}
-</div>
diff --git a/app/components/document_version/index.hbs b/app/components/document_version/index.hbs
new file mode 100644
index 0000000..2f4a6bd
--- /dev/null
+++ b/app/components/document_version/index.hbs
@@ -0,0 +1,11 @@
+{{@model.document_version.document.title}}
+
+<div class="d-flex">
+  <DocumentVersion::Thumbnails @pages={{@model.pages}} />
+
+  <div class="d-flex flex-column pages">
+    {{#each @model.pages as |page|}}
+      <DocumentVersion::Page @page={{page}} />
+    {{/each}}
+  </div>
+</div>
diff --git a/app/components/document_version/page.hbs b/app/components/document_version/page.hbs
new file mode 100644
index 0000000..68d1e5b
--- /dev/null
+++ b/app/components/document_version/page.hbs
@@ -0,0 +1,4 @@
+<div class="page">
+  <img src="{{@page.url}}" />
+  {{@page.number}}
+</div>
\ No newline at end of file
diff --git a/app/components/document_version/thumbnail.hbs b/app/components/document_version/thumbnail.hbs
new file mode 100644
index 0000000..4f18bf7
--- /dev/null
+++ b/app/components/document_version/thumbnail.hbs
@@ -0,0 +1,4 @@
+<div class="thumbnail">
+  <img src="{{@page.url}}" />
+  {{@page.number}}
+</div>
\ No newline at end of file
diff --git a/app/components/document_version/thumbnails.hbs b/app/components/document_version/thumbnails.hbs
new file mode 100644
index 0000000..1072df3
--- /dev/null
+++ b/app/components/document_version/thumbnails.hbs
@@ -0,0 +1,5 @@
+<div class="d-flex flex-column thumbnails">
+  {{#each @pages as |page|}}
+    <DocumentVersion::Thumbnail @page={{page}} />
+  {{/each}}
+</div>
\ No newline at end of file
diff --git a/app/components/page.hbs b/app/components/page.hbs
deleted file mode 100644
index ea9a08a..0000000
--- a/app/components/page.hbs
+++ /dev/null
@@ -1,3 +0,0 @@
-
-<img src="{{@page.url}}" width="100" />
-{{@page.number}}
\ No newline at end of file
diff --git a/app/models/document_version.js b/app/models/document_version.js
index dbc2e2e..b75dca6 100644
--- a/app/models/document_version.js
+++ b/app/models/document_version.js
@@ -1,4 +1,4 @@
-import Model, { attr, hasMany } from '@ember-data/model';
+import Model, { attr, hasMany, belongsTo } from '@ember-data/model';
 
 
 export default class DocumentVersionModel extends Model {
@@ -7,4 +7,5 @@ export default class DocumentVersionModel extends Model {
   @attr page_count; // total page count
   @attr lang; // languate used for this page
   @hasMany('pages') pages;
+  @belongsTo('document') document;
 }
diff --git a/app/styles/app.scss b/app/styles/app.scss
index d5a7dc8..62aceff 100644
--- a/app/styles/app.scss
+++ b/app/styles/app.scss
@@ -5,6 +5,8 @@
 @import "./nav/sidebar";
 @import "./nav/topbar";
 @import "./login.scss";
+@import "./document_version.scss";
+
 
 body {
     background-color: #e9ecef;
diff --git a/app/styles/document_version.scss b/app/styles/document_version.scss
new file mode 100644
index 0000000..54cea1b
--- /dev/null
+++ b/app/styles/document_version.scss
@@ -0,0 +1,20 @@
+
+.thumbnails {
+  .thumbnail {
+    margin: 1rem;
+    img {
+      width: 6rem;
+    }
+  }
+}
+
+.pages {
+  overflow: scroll;
+  height: 100vh;
+
+  .page {
+    img {
+      width: 100%;
+    }
+  }
+}
\ No newline at end of file
-- 
GitLab