Skip to content

Commit ad4c5e5

Browse files
Merge pull request #7377 from christianbeeznest/GH-7309
Glossary: Add AI glossary term generator - refs #7309
2 parents ee3cf2f + 6a726c6 commit ad4c5e5

7 files changed

Lines changed: 938 additions & 145 deletions

File tree

assets/vue/router/glossary.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,18 @@ export default {
2323
},
2424
{
2525
name: "ImportGlossary",
26-
path: "",
26+
path: "import",
2727
component: () => import("../views/glossary/GlossaryImport.vue"),
2828
},
2929
{
3030
name: "ExportGlossary",
31-
path: "",
31+
path: "export",
3232
component: () => import("../views/glossary/GlossaryExport.vue"),
3333
},
34+
{
35+
name: "GenerateGlossaryTerms",
36+
path: "generate",
37+
component: () => import("../views/glossary/GlossaryGenerateTerms.vue"),
38+
},
3439
],
3540
}

assets/vue/services/glossaryService.js

Lines changed: 23 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,84 +2,70 @@ import { ENTRYPOINT } from "../config/entrypoint"
22
import axios from "axios"
33

44
export default {
5-
/**
6-
* @param {Object} params
7-
*/
5+
// ---------------------------
6+
// Glossary CRUD (API entrypoint)
7+
// ---------------------------
88
getGlossaryTerms: async (params) => {
99
const response = await axios.get(ENTRYPOINT + "glossaries", { params })
10-
1110
return response.data
1211
},
1312

14-
/**
15-
* @param {String|Number} termId
16-
*/
1713
getGlossaryTerm: async (termId) => {
1814
const response = await axios.get(ENTRYPOINT + `glossaries/${termId}`)
19-
2015
return response.data
2116
},
2217

23-
/**
24-
* @param {Object} data
25-
*/
2618
createGlossaryTerm: async (data) => {
27-
const response = await axios.post(ENTRYPOINT + `glossaries`, data)
28-
19+
const response = await axios.post(ENTRYPOINT + "glossaries", data)
2920
return response.data
3021
},
3122

32-
/**
33-
* @param {String|Number} termId
34-
* @param {Object} data
35-
*/
3623
updateGlossaryTerm: async (termId, data) => {
3724
const response = await axios.put(ENTRYPOINT + `glossaries/${termId}`, data)
38-
3925
return response.data
4026
},
4127

42-
/**
43-
* @param {FormData} formData
44-
*/
4528
export: async (formData) => {
4629
const endpoint = `${ENTRYPOINT}glossaries/export`
47-
const response = await axios.post(endpoint, formData, { responsetype: "blob" })
48-
30+
const response = await axios.post(endpoint, formData, { responseType: "blob" })
4931
return response.data
5032
},
5133

52-
/**
53-
* @param {FormData} formData
54-
*/
5534
import: async (formData) => {
5635
const endpoint = `${ENTRYPOINT}glossaries/import`
5736
const response = await axios.post(endpoint, formData, {
58-
headers: {
59-
"Content-Type": "multipart/form-data",
60-
},
37+
headers: { "Content-Type": "multipart/form-data" },
6138
})
62-
6339
return response.data
6440
},
6541

66-
/**
67-
* @param {Object} data
68-
*/
6942
exportToDocuments: async (data) => {
7043
const endpoint = `${ENTRYPOINT}glossaries/export_to_documents`
7144
const response = await axios.post(endpoint, data)
72-
7345
return response.data
7446
},
7547

76-
/**
77-
* @param {String|Number} termId
78-
*/
7948
deleteTerm: async (termId) => {
8049
const endpoint = `${ENTRYPOINT}glossaries/${termId}`
8150
const response = await axios.delete(endpoint)
51+
return response.data
52+
},
53+
54+
// ---------------------------
55+
// AI helpers (non-API entrypoint)
56+
// ---------------------------
57+
getTextProviders: async () => {
58+
const response = await axios.get("/ai/text_providers")
59+
return response.data
60+
},
61+
62+
getDefaultPrompt: async (params) => {
63+
const response = await axios.get("/ai/glossary_default_prompt", { params })
64+
return response.data
65+
},
8266

67+
generateGlossaryTerms: async (data) => {
68+
const response = await axios.post("/ai/generate_glossary_terms", data)
8369
return response.data
8470
},
8571
}

0 commit comments

Comments
 (0)