فهرست منبع

index -> text : highlight item in text with id #806

bach 2 سال پیش
والد
کامیت
b958a09cfa

+ 5 - 3
src/components/Content/EdText.vue

@@ -25,7 +25,7 @@ export default {
     tei: String,
     uuid: String,
     textid: String,
-    extract: String,
+    extractid: String,
     url: String
   },
   data: () => ({
@@ -155,8 +155,10 @@ export default {
       }
     },
     parseExtract () {
-      console.log('Parse extract', this.extract)
-      let regexp = RegExp(this.extract, 'gim')
+      console.log('Parse extract', this.extractid)
+      // let regexp = RegExp(this.extract, 'gim')
+      let regexp = RegExp(`<span[^>]* id="${this.extractid}"[^>]*>[^<]*</span>`)
+      // let regexp = RegExp(`<(\w+)((?:\s+\w+(?:\s*=\s*(?:"[\s\S]*?"|'[\s\S]*?'|[^'">\s]+))?)+\s*|\s*)>([\s\S]*?)<\/\1>`)
       let index = 0
       function marking (str) {
         index++

+ 1 - 1
src/components/Content/IndexItemOcurrences.vue

@@ -24,7 +24,7 @@
         >
           <h3>
             <a
-              :href="'/edition/'+ed.item"
+              :href="'/texts/'+ed.item"
               :uuid="ed.item"
               v-html="ed.biblio"
             />

+ 15 - 13
src/components/Content/Occurence.vue

@@ -2,12 +2,13 @@
   <section :class="{opened: isopened}">
     <h4>
       <a
-        :href="'/edition/'+ed.item+'/'+oc.uuid+'/'+oc.form"
+        :href="'/texts/'+ed.item+'/'+oc.uuid+'/'+oc.ids[0]"
         :uuid="oc.uuid"
         :eduuid="ed.item"
         :form="oc.form"
-        @click.prevent="onGoToText"
-        @keyup.enter="onGoToText"
+        :ocid="oc.ids[0]"
+        @click.prevent="onGoToText($event, ed.item, oc.uuid, oc.ids[0])"
+        @keyup.enter="onGoToText($event, ed.item, oc.uuid, oc.ids[0])"
       >
         <span v-html="oc.title" /> <span v-if="oc.form" class="form">( "{{ oc.form }}" )</span>
       </a>
@@ -79,15 +80,16 @@ export default {
     ...mapActions({
       addHistoryItem: 'History/addItem'
     }),
-    onGoToText (e) {
-      console.log('clicked on text occurence', e, this.oc.title, this.ed)
+    onGoToText (e, edid, textid, ocid) {
+      console.log('clicked on text occurence', e, edid, textid, ocid)
 
-      if (e.target.getAttribute('eduuid')) {
+      if (textid) {
         this.addHistoryItem({
-          id: e.target.getAttribute('eduuid'),
-          textid: e.target.getAttribute('uuid'),
+          id: edid,
+          textid: textid,
           title: this.oc.title,
-          editionTitle: this.editionTitle
+          editionTitle: this.editionTitle,
+          ocid: ocid
         })
         // if (e.target.getAttribute('form')) {
         //   this.$router.push({
@@ -101,9 +103,9 @@ export default {
         this.$router.push({
           name: `editiontextextract`,
           params: {
-            id: e.target.getAttribute('eduuid'),
-            textid: e.target.getAttribute('uuid'),
-            extract: e.target.getAttribute('form')
+            id: edid,
+            textid: textid,
+            ocid: ocid
           }
         })
         // }
@@ -111,7 +113,7 @@ export default {
         this.$router.push({
           name: `edition`,
           params: {
-            id: e.target.getAttribute('uuid')
+            id: edid
           }
         })
       }

+ 1 - 1
src/components/Layouts/MainContentLayout.vue

@@ -49,7 +49,7 @@ export default {
   },
   methods: {
     onScrollCenter (e) {
-      console.log('mainLayout onScrollCenter: e', e)
+      // console.log('mainLayout onScrollCenter: e', e)
       this.$emit('onCenterScrolled', e)
     },
     scrollToRef () {

+ 5 - 5
src/pages/Edition.vue

@@ -81,7 +81,7 @@
           :uuid="text.content.uuid"
           :url="text.content.url"
           :textid="textid"
-          :extract="extract"
+          :extractid="extractid"
           @onHoverLink="onHoverLink"
           @onLeaveLink="onLeaveLink"
         />
@@ -195,7 +195,7 @@ export default {
         // change also extract if exists
         if (to.params.extract) {
           console.log('extract params from route', to.params.extract)
-          this.extract = to.params.extract
+          this.extractid = to.params.ocid
           // scrolling is not working :(
           this.reftoscrollto = '#mark-1'
         }
@@ -246,8 +246,8 @@ export default {
     }
 
     // get the searchkeys from route param (only comming from result item) for text highlighting
-    if (this.$route.params.extract) {
-      this.extract = this.$route.params.extract
+    if (this.$route.params.ocid) {
+      this.extractid = this.$route.params.ocid
       // scrolling is not working :(
       this.reftoscrollto = '#mark-1'
     }
@@ -351,7 +351,7 @@ export default {
         })
     },
     onCenterScrolled (e) {
-      console.log('Edition centerScrolled(e)', e.target.scrollTop)
+      // console.log('Edition centerScrolled(e)', e.target.scrollTop)
       if (!this.center_scrolled && e.target.scrollTop > this.inifinite_load_distance * 1.5) {
         this.center_scrolled = true
       }

+ 1 - 1
src/router/index.js

@@ -51,7 +51,7 @@ const routes = [
   },
   {
     name: 'editiontextextract',
-    path: '/texts/:id/:textid/:extract',
+    path: '/texts/:id/:textid/:ocid',
     component: Edition
   },
   {