From a19a9314faf029c57b8d67ee990f2c0bd32d02b7 Mon Sep 17 00:00:00 2001 From: Ludovic DEHON Date: Fri, 29 Dec 2023 13:19:19 +0100 Subject: [PATCH] refactor(site): simplify customer stories --- components/common/TaskIcon.vue | 106 +++++++------------- components/stories/Card.vue | 128 +++++++++++++----------- components/stories/StoriesList.vue | 8 +- package-lock.json | 2 +- package.json | 1 + pages/use-cases/stories/[...slug].vue | 125 ----------------------- pages/use-cases/stories/[id]-[slug].vue | 111 ++++++++++++++++++++ pages/use-cases/stories/index.vue | 27 +++++ server/routes/icons/[cls].svg.js | 9 ++ utils/url.js | 8 ++ 10 files changed, 265 insertions(+), 260 deletions(-) delete mode 100644 pages/use-cases/stories/[...slug].vue create mode 100644 pages/use-cases/stories/[id]-[slug].vue create mode 100644 pages/use-cases/stories/index.vue create mode 100644 server/routes/icons/[cls].svg.js create mode 100644 utils/url.js diff --git a/components/common/TaskIcon.vue b/components/common/TaskIcon.vue index 1663e1d6f9..877de89541 100644 --- a/components/common/TaskIcon.vue +++ b/components/common/TaskIcon.vue @@ -1,92 +1,58 @@ - \ No newline at end of file diff --git a/components/stories/Card.vue b/components/stories/Card.vue index 787d67cfad..fce3f9191e 100644 --- a/components/stories/Card.vue +++ b/components/stories/Card.vue @@ -1,71 +1,83 @@ + + \ No newline at end of file diff --git a/components/stories/StoriesList.vue b/components/stories/StoriesList.vue index e9ccb1db81..472de6237c 100644 --- a/components/stories/StoriesList.vue +++ b/components/stories/StoriesList.vue @@ -9,7 +9,7 @@
- +
@@ -31,10 +31,6 @@ const props = defineProps({ type: Array, required: true }, - icons: { - type: Object, - required: true - }, totalStories: { type: Number, default: 1 @@ -44,7 +40,7 @@ const emits = defineEmits(['fetchPageData']) const itemsPerPage = ref(25); const currentPage = ref(1); const totalPages = computed(()=>{ - return Math.ceil(props.totalStories / itemsPerPage.value) + return Math.ceil(props.totalStories / itemsPerPage.value) }) const changePage = (pageNo) => { currentPage.value = pageNo diff --git a/package-lock.json b/package-lock.json index c712147d18..cf73ec7fba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "dayjs": "^1.11.9", "medium-zoom": "^1.0.8", "rapidoc": "^9.3.4", + "slugify": "^1.6.6", "vanilla-cookieconsent": "^2.9.1", "vue-material-design-icons": "^5.2.0", "vue3-count-to": "^1.1.2" @@ -17271,7 +17272,6 @@ "version": "1.6.6", "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", - "dev": true, "engines": { "node": ">=8.0.0" } diff --git a/package.json b/package.json index 0e75f3df7b..f6bcda75bc 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "dayjs": "^1.11.9", "medium-zoom": "^1.0.8", "rapidoc": "^9.3.4", + "slugify": "^1.6.6", "vanilla-cookieconsent": "^2.9.1", "vue-material-design-icons": "^5.2.0", "vue3-count-to": "^1.1.2" diff --git a/pages/use-cases/stories/[...slug].vue b/pages/use-cases/stories/[...slug].vue deleted file mode 100644 index 5a7433631b..0000000000 --- a/pages/use-cases/stories/[...slug].vue +++ /dev/null @@ -1,125 +0,0 @@ - - - \ No newline at end of file diff --git a/pages/use-cases/stories/[id]-[slug].vue b/pages/use-cases/stories/[id]-[slug].vue new file mode 100644 index 0000000000..18e3da007d --- /dev/null +++ b/pages/use-cases/stories/[id]-[slug].vue @@ -0,0 +1,111 @@ + + + \ No newline at end of file diff --git a/pages/use-cases/stories/index.vue b/pages/use-cases/stories/index.vue new file mode 100644 index 0000000000..474b6ab967 --- /dev/null +++ b/pages/use-cases/stories/index.vue @@ -0,0 +1,27 @@ + + diff --git a/server/routes/icons/[cls].svg.js b/server/routes/icons/[cls].svg.js new file mode 100644 index 0000000000..6f35f0c68e --- /dev/null +++ b/server/routes/icons/[cls].svg.js @@ -0,0 +1,9 @@ +export default defineEventHandler(async (event) => { + const cls = getRouterParam(event, 'cls.svg').substring(0, getRouterParam(event, 'cls.svg').lastIndexOf(".")); + const response = await $fetch(`https://api.kestra.io/v1/plugins/icons/${cls}`) + + event.node.res.setHeader('content-type', response.type) + event.node.res.setHeader('cache-control', "max-age=86400;") + + event.node.res.end(await response.text()) +}) \ No newline at end of file diff --git a/utils/url.js b/utils/url.js new file mode 100644 index 0000000000..fccd7bc63e --- /dev/null +++ b/utils/url.js @@ -0,0 +1,8 @@ +import slugifyLib from "slugify"; + +export function slugify(text) { + return slugifyLib(text, { + lower: true, + locale: 'en', + }); +} \ No newline at end of file