From 335d57962cf516398e5030e255e356ea54ad17d1 Mon Sep 17 00:00:00 2001
From: Robin Tissot <tissotrobin@gmail.com>
Date: Tue, 9 Mar 2021 14:17:08 +0100
Subject: [PATCH] wip add goto page number in editor.

---
 app/apps/api/serializers.py         | 7 ++++++-
 front/vue/components/TabContent.vue | 7 +++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/app/apps/api/serializers.py b/app/apps/api/serializers.py
index 61532a14..e69add83 100644
--- a/app/apps/api/serializers.py
+++ b/app/apps/api/serializers.py
@@ -102,11 +102,15 @@ class DocumentSerializer(serializers.ModelSerializer):
     transcriptions = TranscriptionSerializer(many=True, read_only=True)
     valid_block_types = BlockTypeSerializer(many=True, read_only=True)
     valid_line_types = LineTypeSerializer(many=True, read_only=True)
+    parts_count = serializers.SerializerMethodField()
 
     class Meta:
         model = Document
         fields = ('pk', 'name', 'transcriptions',
-                  'valid_block_types', 'valid_line_types')
+                  'valid_block_types', 'valid_line_types', 'parts_count')
+
+    def get_parts_count(self, document):
+        return document.parts.count()
 
 
 class PartSerializer(serializers.ModelSerializer):
@@ -127,6 +131,7 @@ class PartSerializer(serializers.ModelSerializer):
             'image',
             'bw_image',
             'workflow',
+            'order',
             'recoverable',
             'transcription_progress'
         )
diff --git a/front/vue/components/TabContent.vue b/front/vue/components/TabContent.vue
index b51bd7eb..11cecaa5 100644
--- a/front/vue/components/TabContent.vue
+++ b/front/vue/components/TabContent.vue
@@ -15,6 +15,10 @@
                class="nav-btn nav-prev"
                title="Previous (Page Up or Ctrl+Right Arrow)">
                 <i class="fas fa-angle-left"></i></a>
+            <input type="number"
+                   v-if="$store.state.parts.loaded"
+                   v-bind:value="$store.state.parts.order+1"
+                   @change.lazy="goTo"/>
             <div>
                 <button id="zoom-reset"
                         @click="resetZoom"
@@ -156,6 +160,9 @@ export default {
         resetZoom() {
             this.zoom.reset();
         },
+        async goTo(ev) {
+            await this.$store.dispatch('parts/loadPart', 'previous');
+        },
         async getPrevious(ev) {
             await this.$store.dispatch('parts/loadPart', 'previous');
         },
-- 
GitLab