Преглед изворни кода

Merge pull request #1767 from visuddhinanda/agile

引用书名使用term
visuddhinanda пре 2 година
родитељ
комит
91f53b34c0

+ 3 - 3
dashboard/src/components/admin/relation/DataImport.tsx

@@ -48,7 +48,7 @@ const DataImportWidget = ({
       }}
       submitTimeout={2000}
       onFinish={async (values) => {
-        console.log(values);
+        console.log("values", values);
         let _filename: string = "";
 
         if (
@@ -59,7 +59,7 @@ const DataImportWidget = ({
         } else if (typeof values.filename[0].response === "undefined") {
           _filename = values.filename[0].uid;
         } else {
-          _filename = values.filename[0].response.data.url;
+          _filename = values.filename[0].response.data.filename;
         }
 
         const queryUrl = `${url}?filename=${_filename}&${urlExtra}`;
@@ -91,7 +91,7 @@ const DataImportWidget = ({
         fieldProps={{
           name: "file",
         }}
-        action={`${API_HOST}/api/v2/attachments`}
+        action={`${API_HOST}/api/v2/attachments?is_tmp=true`}
       />
     </ModalForm>
   );

+ 1 - 1
dashboard/src/components/api/Attachments.ts

@@ -1,6 +1,6 @@
 export interface IAttachmentRequest {
   id: string;
-  name: string;
+  filename: string;
   size: number;
   content_type: string;
   url: string;

+ 12 - 16
dashboard/src/components/fts/book_name.csv

@@ -6,10 +6,6 @@ id,book,name,term,v_title,m_title,p_title,abbr
 5,2,vāsamālinīkya,vāsamālinīkya,vāsamālinīkya,vāsamālinīkya,vāsamālinīkya,vāsamālinīkya
 6,3,Lakkhaṇāto,lakkhaṇāto,lakkhaṇāto,lakkhaṇāto,lakkhaṇāto,lakkhaṇāto
 7,4,Suttavandanā,suttavandanā,suttavandanā,suttavandanā,suttavandanā,suttavandanā
-8,5,Jinālaṅkāra,jinālaṅkāra,jinālaṅkāra,jinālaṅkāra,jinālaṅkāra,jinālaṅkāra
-9,6,Kamalāñjali,kamalāñjali,kamalāñjali,kamalāñjali,kamalāñjali,kamalāñjali
-10,7,Pajjamadhu,pajjamadhu,pajjamadhu,pajjamadhu,pajjamadhu,pajjamadhu
-11,8,Buddhaguṇagāthāvalī,buddhaguṇagāthāvalī,buddhaguṇagāthāvalī,buddhaguṇagāthāvalī,buddhaguṇagāthāvalī,buddhaguṇagāthāvalī
 12,9,Abhidhānappadīpikāṭīkā,abhidhānappadīpikāṭīkā,abhidhānappadīpikāṭīkā,abhidhānappadīpikāṭīkā,abhidhānappadīpikāṭīkā,abhidhānappadīpikāṭīkā
 13,10,Subodhālaṅkāro,subodhālaṅkāro,subodhālaṅkāro,subodhālaṅkāro,subodhālaṅkāro,subodhālaṅkāro
 14,11,Subodhālaṅkāraṭīkā,subodhālaṅkāraṭīkā,subodhālaṅkāraṭīkā,subodhālaṅkāraṭīkā,subodhālaṅkāraṭīkā,subodhālaṅkāraṭīkā
@@ -57,10 +53,10 @@ id,book,name,term,v_title,m_title,p_title,abbr
 56,50,Kaccāyana dhātu mañjūsā,kaccāyana  dhātu mañjūsā,kaccāyana  dhātu mañjūsā,kaccāyana  dhātu mañjūsā,kaccāyana  dhātu mañjūsā,kaccāyana  dhātu mañjūsā
 57,51,Samantakūṭavaṇṇanā,samantakūṭavaṇṇanā,samantakūṭavaṇṇanā,samantakūṭavaṇṇanā,samantakūṭavaṇṇanā,samantakūṭavaṇṇanā
 58,52,Vuttisametā,moggallāna vuttivivaraṇapañcikā.,moggallāna vuttivivaraṇapañcikā.,moggallāna vuttivivaraṇapañcikā.,moggallāna vuttivivaraṇapañcikā.,moggallāna vuttivivaraṇapañcikā.
-59,53,Thupavaṃso,thupavaṃso,thupavaṃso,thupavaṃso,thupavaṃso,thupavaṃso
-60,54,Dāṭhāvaṃso,dāṭhāvaṃso,dāṭhāvaṃso,dāṭhāvaṃso,dāṭhāvaṃso,dāṭhāvaṃso
+59,53,Thupavaṃsa,thupavaṃsa,thupavaṃsa,thupavaṃsa,thupavaṃsa,thupavaṃsa
+60,54,Dāṭhāvaṃsa,dāṭhāvaṃsa,dāṭhāvaṃsa,dāṭhāvaṃsa,dāṭhāvaṃsa,dāṭhāvaṃsa
 61,55,Dhātupāṭha vilāsiniyā,dhātupāṭha  vilāsiniyā,dhātupāṭha  vilāsiniyā,dhātupāṭha  vilāsiniyā,dhātupāṭha  vilāsiniyā,dhātupāṭha  vilāsiniyā
-62,56,Dhātuvaṃso,dhātuvaṃso,dhātuvaṃso,dhātuvaṃso,dhātuvaṃso,dhātuvaṃso
+62,56,Dhātuvaṃsa,dhātuvaṃsa,dhātuvaṃsa,dhātuvaṃsa,dhātuvaṃsa,dhātuvaṃsa
 63,57,Hatthavanagallavihāra vaṃso,hatthavanagallavihāra  vaṃso,hatthavanagallavihāra  vaṃso,hatthavanagallavihāra  vaṃso,hatthavanagallavihāra  vaṃso,hatthavanagallavihāra  vaṃso
 64,58,Jinacaritaya,jinacaritaya,jinacaritaya,jinacaritaya,jinacaritaya,jinacaritaya
 65,59,Jinavaṃsadīpaṃ,jinavaṃsadīpaṃ,jinavaṃsadīpaṃ,jinavaṃsadīpaṃ,jinavaṃsadīpaṃ,jinavaṃsadīpaṃ
@@ -249,9 +245,9 @@ id,book,name,term,v_title,m_title,p_title,abbr
 248,203,khuddasikkhā,khuddasikkhā,khuddasikkhā,khuddasikkhā,khuddasikkhā,khuddasikkhā
 249,203,mūlasikkhā,mūlasikkhā,mūlasikkhā,mūlasikkhā,mūlasikkhā,mūlasikkhā
 250,203,mūlasikkhā,mūlasikkhā,mūlasikkhā,mūlasikkhā,mūlasikkhā,mūlasikkhā
-251,204,Sāratthadīpanī-ṭīkā (paṭhamo bhāgo),Sāratthadīpanī-ṭīkā,Sāratthadīpanī-ṭīkā,Sāratthadīpanī-ṭīkā,Sāratthadīpanī-ṭīkā,sārattha. ṭī.
-252,205,Sāratthadīpanī-ṭīkā (dutiyo bhāgo),Sāratthadīpanī-ṭīkā,Sāratthadīpanī-ṭīkā,Sāratthadīpanī-ṭīkā,Sāratthadīpanī-ṭīkā,sārattha. ṭī.
-253,206,Sāratthadīpanī-ṭīkā (tatiyo bhāgo),Sāratthadīpanī-ṭīkā,Sāratthadīpanī-ṭīkā,Sāratthadīpanī-ṭīkā,Sāratthadīpanī-ṭīkā,sārattha. ṭī.
+251,204,sāratthadīpanī-ṭīkā (paṭhamo bhāgo),sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sārattha. ṭī.
+252,205,sāratthadīpanī-ṭīkā (dutiyo bhāgo),sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sārattha. ṭī.
+253,206,sāratthadīpanī-ṭīkā (tatiyo bhāgo),sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sārattha. ṭī.
 254,206,sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sārattha. ṭī.
 255,206,sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sārattha. ṭī.
 256,206,sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sāratthadīpanī-ṭīkā,sārattha. ṭī.
@@ -273,10 +269,10 @@ id,book,name,term,v_title,m_title,p_title,abbr
 272,211,Vinayālaṅkāra-ṭīkā,vinayālaṅkāra-ṭīkā,vinayālaṅkāra-ṭīkā,vinayālaṅkāra-ṭīkā,vinayālaṅkāra-ṭīkā,ālaṅkāra. ṭī.
 273,212,Kaṅkhāvitaraṇīpurāṇa-ṭīkā,kaṅkhāvitaraṇīpurāṇa-ṭīkā,kaṅkhāvitaraṇīpurāṇa-ṭīkā,kaṅkhāvitaraṇīpurāṇa-ṭīkā,kaṅkhāvitaraṇīpurāṇa-ṭīkā,kaṅkhā. ṭī.
 274,212,Kaṅkhāvitaraṇī-abhinavaṭīkā,kaṅkhāvitaraṇī-abhinavaṭīkā,kaṅkhāvitaraṇī-abhinavaṭīkā,kaṅkhāvitaraṇī-abhinavaṭīkā,kaṅkhāvitaraṇī-abhinavaṭīkā,kaṅkhā.
-275,213,Pārājikapāḷi,pārājikapāḷi,pārājikapāḷi,pārājikapāḷi,vinayapitaka,vi.
-276,214,Pācittiyapāḷi,pācittiyapāḷi,pācittiyapāḷi,pācittiyapāḷi,vinayapitaka,vi.
-277,215,Mahāvaggapāḷi,mahāvaggapāḷi,mahāvaggapāḷi,mahāvaggapāḷi,vinayapitaka,vi.
-278,216,Cūḷavaggapāḷi,cūḷavaggapāḷi,cūḷavaggapāḷi,cūḷavaggapāḷi,vinayapitaka,vi.
-279,217,Parivārapāḷi,parivārapāḷi,parivārapāḷi,parivārapāḷi,vinayapitaka,vi.
+275,213,Pārājikapāḷi,pārājikapāḷi,pārājikapāḷi,pārājikapāḷi,vinayapiaka,vi.
+276,214,Pācittiyapāḷi,pācittiyapāḷi,pācittiyapāḷi,pācittiyapāḷi,vinayapiaka,vi.
+277,215,Mahāvaggapāḷi,mahāvaggapāḷi,mahāvaggapāḷi,mahāvaggapāḷi,vinayapiaka,vi.
+278,216,Cūḷavaggapāḷi,cūḷavaggapāḷi,cūḷavaggapāḷi,cūḷavaggapāḷi,vinayapiaka,vi.
+279,217,Parivārapāḷi,parivārapāḷi,parivārapāḷi,parivārapāḷi,vinayapiaka,vi.
 280,139,samantapāsādikā,vinaya-aṭṭhakathā,vinaya-aṭṭhakathā,vinaya-aṭṭhakathā,vinaya-aṭṭhakathā,vi. ṭṭha.
-281,214,(VN)Bhikkhunīvibhaṅgo,pācittiyapāḷi,pācittiyapāḷi,pācittiyapāḷi,vinayapitaka,vi.
+281,214,(VN)Bhikkhunīvibhaṅgo,pācittiyapāḷi,pācittiyapāḷi,pācittiyapāḷi,vinayapiaka,vi.

+ 39 - 79
dashboard/src/components/fts/book_name.json

@@ -69,46 +69,6 @@
     "p_title": "suttavandanā",
     "abbr": "suttavandanā"
   },
-  {
-    "id": 8,
-    "book": 5,
-    "name": "Jinālaṅkāra",
-    "term": "jinālaṅkāra",
-    "v_title": "jinālaṅkāra",
-    "m_title": "jinālaṅkāra",
-    "p_title": "jinālaṅkāra",
-    "abbr": "jinālaṅkāra"
-  },
-  {
-    "id": 9,
-    "book": 6,
-    "name": "Kamalāñjali",
-    "term": "kamalāñjali",
-    "v_title": "kamalāñjali",
-    "m_title": "kamalāñjali",
-    "p_title": "kamalāñjali",
-    "abbr": "kamalāñjali"
-  },
-  {
-    "id": 10,
-    "book": 7,
-    "name": "Pajjamadhu",
-    "term": "pajjamadhu",
-    "v_title": "pajjamadhu",
-    "m_title": "pajjamadhu",
-    "p_title": "pajjamadhu",
-    "abbr": "pajjamadhu"
-  },
-  {
-    "id": 11,
-    "book": 8,
-    "name": "Buddhaguṇagāthāvalī",
-    "term": "buddhaguṇagāthāvalī",
-    "v_title": "buddhaguṇagāthāvalī",
-    "m_title": "buddhaguṇagāthāvalī",
-    "p_title": "buddhaguṇagāthāvalī",
-    "abbr": "buddhaguṇagāthāvalī"
-  },
   {
     "id": 12,
     "book": 9,
@@ -582,22 +542,22 @@
   {
     "id": 59,
     "book": 53,
-    "name": "Thupavaṃso",
-    "term": "thupavaṃso",
-    "v_title": "thupavaṃso",
-    "m_title": "thupavaṃso",
-    "p_title": "thupavaṃso",
-    "abbr": "thupavaṃso"
+    "name": "Thupavaṃsa",
+    "term": "thupavaṃsa",
+    "v_title": "thupavaṃsa",
+    "m_title": "thupavaṃsa",
+    "p_title": "thupavaṃsa",
+    "abbr": "thupavaṃsa"
   },
   {
     "id": 60,
     "book": 54,
-    "name": "Dāṭhāvaṃso",
-    "term": "dāṭhāvaṃso",
-    "v_title": "dāṭhāvaṃso",
-    "m_title": "dāṭhāvaṃso",
-    "p_title": "dāṭhāvaṃso",
-    "abbr": "dāṭhāvaṃso"
+    "name": "Dāṭhāvaṃsa",
+    "term": "dāṭhāvaṃsa",
+    "v_title": "dāṭhāvaṃsa",
+    "m_title": "dāṭhāvaṃsa",
+    "p_title": "dāṭhāvaṃsa",
+    "abbr": "dāṭhāvaṃsa"
   },
   {
     "id": 61,
@@ -612,12 +572,12 @@
   {
     "id": 62,
     "book": 56,
-    "name": "Dhātuvaṃso",
-    "term": "dhātuvaṃso",
-    "v_title": "dhātuvaṃso",
-    "m_title": "dhātuvaṃso",
-    "p_title": "dhātuvaṃso",
-    "abbr": "dhātuvaṃso"
+    "name": "Dhātuvaṃsa",
+    "term": "dhātuvaṃsa",
+    "v_title": "dhātuvaṃsa",
+    "m_title": "dhātuvaṃsa",
+    "p_title": "dhātuvaṃsa",
+    "abbr": "dhātuvaṃsa"
   },
   {
     "id": 63,
@@ -2502,31 +2462,31 @@
   {
     "id": 251,
     "book": 204,
-    "name": "Sāratthadīpanī-ṭīkā (paṭhamo bhāgo)",
-    "term": "Sāratthadīpanī-ṭīkā",
-    "v_title": "Sāratthadīpanī-ṭīkā",
-    "m_title": "Sāratthadīpanī-ṭīkā",
-    "p_title": "Sāratthadīpanī-ṭīkā",
+    "name": "sāratthadīpanī-ṭīkā (paṭhamo bhāgo)",
+    "term": "sāratthadīpanī-ṭīkā",
+    "v_title": "sāratthadīpanī-ṭīkā",
+    "m_title": "sāratthadīpanī-ṭīkā",
+    "p_title": "sāratthadīpanī-ṭīkā",
     "abbr": "sārattha. ṭī."
   },
   {
     "id": 252,
     "book": 205,
-    "name": "Sāratthadīpanī-ṭīkā (dutiyo bhāgo)",
-    "term": "Sāratthadīpanī-ṭīkā",
-    "v_title": "Sāratthadīpanī-ṭīkā",
-    "m_title": "Sāratthadīpanī-ṭīkā",
-    "p_title": "Sāratthadīpanī-ṭīkā",
+    "name": "sāratthadīpanī-ṭīkā (dutiyo bhāgo)",
+    "term": "sāratthadīpanī-ṭīkā",
+    "v_title": "sāratthadīpanī-ṭīkā",
+    "m_title": "sāratthadīpanī-ṭīkā",
+    "p_title": "sāratthadīpanī-ṭīkā",
     "abbr": "sārattha. ṭī."
   },
   {
     "id": 253,
     "book": 206,
-    "name": "Sāratthadīpanī-ṭīkā (tatiyo bhāgo)",
-    "term": "Sāratthadīpanī-ṭīkā",
-    "v_title": "Sāratthadīpanī-ṭīkā",
-    "m_title": "Sāratthadīpanī-ṭīkā",
-    "p_title": "Sāratthadīpanī-ṭīkā",
+    "name": "sāratthadīpanī-ṭīkā (tatiyo bhāgo)",
+    "term": "sāratthadīpanī-ṭīkā",
+    "v_title": "sāratthadīpanī-ṭīkā",
+    "m_title": "sāratthadīpanī-ṭīkā",
+    "p_title": "sāratthadīpanī-ṭīkā",
     "abbr": "sārattha. ṭī."
   },
   {
@@ -2746,7 +2706,7 @@
     "term": "pārājikapāḷi",
     "v_title": "pārājikapāḷi",
     "m_title": "pārājikapāḷi",
-    "p_title": "vinayapitaka",
+    "p_title": "vinayapiaka",
     "abbr": "vi."
   },
   {
@@ -2756,7 +2716,7 @@
     "term": "pācittiyapāḷi",
     "v_title": "pācittiyapāḷi",
     "m_title": "pācittiyapāḷi",
-    "p_title": "vinayapitaka",
+    "p_title": "vinayapiaka",
     "abbr": "vi."
   },
   {
@@ -2766,7 +2726,7 @@
     "term": "mahāvaggapāḷi",
     "v_title": "mahāvaggapāḷi",
     "m_title": "mahāvaggapāḷi",
-    "p_title": "vinayapitaka",
+    "p_title": "vinayapiaka",
     "abbr": "vi."
   },
   {
@@ -2776,7 +2736,7 @@
     "term": "cūḷavaggapāḷi",
     "v_title": "cūḷavaggapāḷi",
     "m_title": "cūḷavaggapāḷi",
-    "p_title": "vinayapitaka",
+    "p_title": "vinayapiaka",
     "abbr": "vi."
   },
   {
@@ -2786,7 +2746,7 @@
     "term": "parivārapāḷi",
     "v_title": "parivārapāḷi",
     "m_title": "parivārapāḷi",
-    "p_title": "vinayapitaka",
+    "p_title": "vinayapiaka",
     "abbr": "vi."
   },
   {
@@ -2806,7 +2766,7 @@
     "term": "pācittiyapāḷi",
     "v_title": "pācittiyapāḷi",
     "m_title": "pācittiyapāḷi",
-    "p_title": "vinayapitaka",
+    "p_title": "vinayapiaka",
     "abbr": "vi.\n"
   }
 ]

+ 39 - 79
dashboard/src/components/fts/book_name.ts

@@ -69,46 +69,6 @@ export const bookName = [
     p_title: "suttavandanā",
     abbr: "suttavandanā",
   },
-  {
-    id: 8,
-    book: 5,
-    name: "Jinālaṅkāra",
-    term: "jinālaṅkāra",
-    v_title: "jinālaṅkāra",
-    m_title: "jinālaṅkāra",
-    p_title: "jinālaṅkāra",
-    abbr: "jinālaṅkāra",
-  },
-  {
-    id: 9,
-    book: 6,
-    name: "Kamalāñjali",
-    term: "kamalāñjali",
-    v_title: "kamalāñjali",
-    m_title: "kamalāñjali",
-    p_title: "kamalāñjali",
-    abbr: "kamalāñjali",
-  },
-  {
-    id: 10,
-    book: 7,
-    name: "Pajjamadhu",
-    term: "pajjamadhu",
-    v_title: "pajjamadhu",
-    m_title: "pajjamadhu",
-    p_title: "pajjamadhu",
-    abbr: "pajjamadhu",
-  },
-  {
-    id: 11,
-    book: 8,
-    name: "Buddhaguṇagāthāvalī",
-    term: "buddhaguṇagāthāvalī",
-    v_title: "buddhaguṇagāthāvalī",
-    m_title: "buddhaguṇagāthāvalī",
-    p_title: "buddhaguṇagāthāvalī",
-    abbr: "buddhaguṇagāthāvalī",
-  },
   {
     id: 12,
     book: 9,
@@ -582,22 +542,22 @@ export const bookName = [
   {
     id: 59,
     book: 53,
-    name: "Thupavaṃso",
-    term: "thupavaṃso",
-    v_title: "thupavaṃso",
-    m_title: "thupavaṃso",
-    p_title: "thupavaṃso",
-    abbr: "thupavaṃso",
+    name: "Thupavaṃsa",
+    term: "thupavaṃsa",
+    v_title: "thupavaṃsa",
+    m_title: "thupavaṃsa",
+    p_title: "thupavaṃsa",
+    abbr: "thupavaṃsa",
   },
   {
     id: 60,
     book: 54,
-    name: "Dāṭhāvaṃso",
-    term: "dāṭhāvaṃso",
-    v_title: "dāṭhāvaṃso",
-    m_title: "dāṭhāvaṃso",
-    p_title: "dāṭhāvaṃso",
-    abbr: "dāṭhāvaṃso",
+    name: "Dāṭhāvaṃsa",
+    term: "dāṭhāvaṃsa",
+    v_title: "dāṭhāvaṃsa",
+    m_title: "dāṭhāvaṃsa",
+    p_title: "dāṭhāvaṃsa",
+    abbr: "dāṭhāvaṃsa",
   },
   {
     id: 61,
@@ -612,12 +572,12 @@ export const bookName = [
   {
     id: 62,
     book: 56,
-    name: "Dhātuvaṃso",
-    term: "dhātuvaṃso",
-    v_title: "dhātuvaṃso",
-    m_title: "dhātuvaṃso",
-    p_title: "dhātuvaṃso",
-    abbr: "dhātuvaṃso",
+    name: "Dhātuvaṃsa",
+    term: "dhātuvaṃsa",
+    v_title: "dhātuvaṃsa",
+    m_title: "dhātuvaṃsa",
+    p_title: "dhātuvaṃsa",
+    abbr: "dhātuvaṃsa",
   },
   {
     id: 63,
@@ -2502,31 +2462,31 @@ export const bookName = [
   {
     id: 251,
     book: 204,
-    name: "Sāratthadīpanī-ṭīkā (paṭhamo bhāgo)",
-    term: "Sāratthadīpanī-ṭīkā",
-    v_title: "Sāratthadīpanī-ṭīkā",
-    m_title: "Sāratthadīpanī-ṭīkā",
-    p_title: "Sāratthadīpanī-ṭīkā",
+    name: "sāratthadīpanī-ṭīkā (paṭhamo bhāgo)",
+    term: "sāratthadīpanī-ṭīkā",
+    v_title: "sāratthadīpanī-ṭīkā",
+    m_title: "sāratthadīpanī-ṭīkā",
+    p_title: "sāratthadīpanī-ṭīkā",
     abbr: "sārattha. ṭī.",
   },
   {
     id: 252,
     book: 205,
-    name: "Sāratthadīpanī-ṭīkā (dutiyo bhāgo)",
-    term: "Sāratthadīpanī-ṭīkā",
-    v_title: "Sāratthadīpanī-ṭīkā",
-    m_title: "Sāratthadīpanī-ṭīkā",
-    p_title: "Sāratthadīpanī-ṭīkā",
+    name: "sāratthadīpanī-ṭīkā (dutiyo bhāgo)",
+    term: "sāratthadīpanī-ṭīkā",
+    v_title: "sāratthadīpanī-ṭīkā",
+    m_title: "sāratthadīpanī-ṭīkā",
+    p_title: "sāratthadīpanī-ṭīkā",
     abbr: "sārattha. ṭī.",
   },
   {
     id: 253,
     book: 206,
-    name: "Sāratthadīpanī-ṭīkā (tatiyo bhāgo)",
-    term: "Sāratthadīpanī-ṭīkā",
-    v_title: "Sāratthadīpanī-ṭīkā",
-    m_title: "Sāratthadīpanī-ṭīkā",
-    p_title: "Sāratthadīpanī-ṭīkā",
+    name: "sāratthadīpanī-ṭīkā (tatiyo bhāgo)",
+    term: "sāratthadīpanī-ṭīkā",
+    v_title: "sāratthadīpanī-ṭīkā",
+    m_title: "sāratthadīpanī-ṭīkā",
+    p_title: "sāratthadīpanī-ṭīkā",
     abbr: "sārattha. ṭī.",
   },
   {
@@ -2746,7 +2706,7 @@ export const bookName = [
     term: "pārājikapāḷi",
     v_title: "pārājikapāḷi",
     m_title: "pārājikapāḷi",
-    p_title: "vinayapitaka",
+    p_title: "vinayapiaka",
     abbr: "vi.",
   },
   {
@@ -2756,7 +2716,7 @@ export const bookName = [
     term: "pācittiyapāḷi",
     v_title: "pācittiyapāḷi",
     m_title: "pācittiyapāḷi",
-    p_title: "vinayapitaka",
+    p_title: "vinayapiaka",
     abbr: "vi.",
   },
   {
@@ -2766,7 +2726,7 @@ export const bookName = [
     term: "mahāvaggapāḷi",
     v_title: "mahāvaggapāḷi",
     m_title: "mahāvaggapāḷi",
-    p_title: "vinayapitaka",
+    p_title: "vinayapiaka",
     abbr: "vi.",
   },
   {
@@ -2776,7 +2736,7 @@ export const bookName = [
     term: "cūḷavaggapāḷi",
     v_title: "cūḷavaggapāḷi",
     m_title: "cūḷavaggapāḷi",
-    p_title: "vinayapitaka",
+    p_title: "vinayapiaka",
     abbr: "vi.",
   },
   {
@@ -2786,7 +2746,7 @@ export const bookName = [
     term: "parivārapāḷi",
     v_title: "parivārapāḷi",
     m_title: "parivārapāḷi",
-    p_title: "vinayapitaka",
+    p_title: "vinayapiaka",
     abbr: "vi.",
   },
   {
@@ -2806,7 +2766,7 @@ export const bookName = [
     term: "pācittiyapāḷi",
     v_title: "pācittiyapāḷi",
     m_title: "pācittiyapāḷi",
-    p_title: "vinayapitaka",
+    p_title: "vinayapiaka",
     abbr: "vi.",
   },
 ];

+ 1 - 1
dashboard/src/components/template/Article.tsx

@@ -12,7 +12,7 @@ interface IWidgetChapterCtl {
   type?: ArticleType;
   id?: string;
   channel?: string;
-  title?: string;
+  title?: React.ReactNode;
   focus?: string | null;
   style?: TDisplayStyle;
 }

+ 10 - 2
dashboard/src/components/template/QuoteLink.tsx

@@ -1,5 +1,6 @@
 import { bookName as _bookName } from "../fts/book_name";
 import { ArticleCtl, TDisplayStyle } from "./Article";
+import { IWidgetTermCtl, TermCtl } from "./Term";
 
 interface IWidgetQuoteLinkCtl {
   type: string;
@@ -10,6 +11,7 @@ interface IWidgetQuoteLinkCtl {
   style: TDisplayStyle;
   book?: number;
   para?: number;
+  term?: IWidgetTermCtl;
 }
 const QuoteLinkCtl = ({
   type,
@@ -20,16 +22,22 @@ const QuoteLinkCtl = ({
   style,
   book,
   para,
+  term,
 }: IWidgetQuoteLinkCtl) => {
   const abbr = bookNameLocal
     ? bookNameLocal
     : _bookName.find((value) => value.term === bookName)?.abbr;
-  let textShow = `${abbr} ${volume}.${page}`;
+  let textShow = ` ${volume}.${page}`;
 
   return (
     <>
       <ArticleCtl
-        title={textShow}
+        title={
+          <>
+            <TermCtl {...term} compact={true} />
+            {textShow}
+          </>
+        }
         type={"page"}
         focus={book && para ? `${book}-${para}` : undefined}
         id={`${type}_${bookName}_${volume}_${page}`}

+ 7 - 5
dashboard/src/components/template/Term.tsx

@@ -37,7 +37,7 @@ interface ITermSummary {
   data: string;
 }
 
-interface IWidgetTermCtl {
+export interface IWidgetTermCtl {
   id?: string;
   word?: string;
   meaning?: string;
@@ -47,8 +47,9 @@ interface IWidgetTermCtl {
   parentStudioId?: string /**该术语所在译文的studio_id */;
   summary?: string;
   isCommunity?: boolean;
+  compact?: boolean;
 }
-const TermCtl = ({
+export const TermCtl = ({
   id,
   word,
   meaning,
@@ -58,6 +59,7 @@ const TermCtl = ({
   parentStudioId,
   summary,
   isCommunity,
+  compact = false,
 }: IWidgetTermCtl) => {
   const [openPopover, setOpenPopover] = useState(false);
   const [termData, setTermData] = useState<ITerm>({
@@ -75,7 +77,6 @@ const TermCtl = ({
   const [uid, setUid] = useState<string>(
     lodash.times(20, () => lodash.random(35).toString(36)).join("")
   );
-
   const termOrder = useAppSelector(order);
 
   useEffect(() => {
@@ -167,8 +168,9 @@ const TermCtl = ({
                   }}
                   trigger={
                     <Button
-                      onClick={() => {
+                      onClick={(event: React.MouseEvent<any, MouseEvent>) => {
                         setOpenPopover(false);
+                        //event.stopPropagation();
                       }}
                       type="link"
                       size="small"
@@ -237,7 +239,7 @@ const TermCtl = ({
               : "unknown"}
           </Typography.Link>
         </Popover>
-        {isFirst ? (
+        {isFirst && !compact ? (
           <TermExtra pali={word} meaning2={termData?.meaning2} />
         ) : undefined}
       </>

+ 1 - 1
dashboard/src/components/term/TermExport.tsx

@@ -37,7 +37,7 @@ const TermExportWidget = ({ channelId, studioName }: IWidget) => {
         get<IExportResponse>(url)
           .then((json) => {
             if (json.ok) {
-              const link = `${API_HOST}/api/v2/download/${json.data.type}/${json.data.uuid}/${json.data.filename}`;
+              const link = `${API_HOST}/api/v2/terms-export/${json.data.uuid}`;
               modal.info({
                 title: intl.formatMessage({ id: "buttons.download" }),
                 content: (