-
-
+
@@ -64,7 +66,7 @@ export default {
return `box-shadow: rgb(221, 221, 221) 0px 0px 0px 1px inset, #${color} 0px -4px 0px 0px inset`
},
goToTopicList(subtheme: Subtheme): string {
- return 'link to topic list' // TO DO redirect to search result once the page is created
+ return `/bouquets/?theme=${this.selectedTheme.name}&subtheme=${subtheme.name}`
},
getThemeDescription(theme: Theme): string {
const nbSubthemes = theme.subthemes.length
diff --git a/src/components/TopicList.vue b/src/components/TopicList.vue
new file mode 100644
index 000000000..c9abb3865
--- /dev/null
+++ b/src/components/TopicList.vue
@@ -0,0 +1,123 @@
+
+
+
{{ numberOfResultMsg }}
+
+
+
+
+
+
Il n'y a pas encore de bouquet sur ce thème
+
+ N'hésitez pas à contribuer en
+ en créant un
+
+
+
+
+
+
diff --git a/src/components/TopicSearch.vue b/src/components/TopicSearch.vue
new file mode 100644
index 000000000..9cb570280
--- /dev/null
+++ b/src/components/TopicSearch.vue
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/model.ts b/src/model.ts
index 4a37fddf8..7bb02c667 100644
--- a/src/model.ts
+++ b/src/model.ts
@@ -8,4 +8,42 @@ interface Subtheme {
name: string
}
-export type { Theme, Subtheme }
+interface SelectOption {
+ value: string
+ text: string
+ disabled?: boolean
+}
+
+interface BreadcrumbItem {
+ text: string
+ to?: string
+}
+
+interface Topic {
+ created_at: string
+ datasets: Dataset[]
+ description: string
+ extras: {
+ 'ecospheres:datasets_properties': {}
+ 'ecospheres:informations': { subtheme: string; theme: string }[]
+ }
+ featured: boolean
+ id: string
+ name: string
+ organisation: any
+ owner: any
+ page: string
+ private: boolean
+ reuses: []
+ slug: string
+ tags: string[]
+ uri: string
+}
+
+interface Dataset {
+ // TODO -- add list of properties for Dataset
+}
+
+export const NoOptionSelected = 'no_option_selected'
+
+export type { Theme, Subtheme, SelectOption, BreadcrumbItem, Topic }
diff --git a/src/services/routerUtils.js b/src/services/routerUtils.js
index 41741b9cc..7433d6cc6 100644
--- a/src/services/routerUtils.js
+++ b/src/services/routerUtils.js
@@ -42,7 +42,11 @@ export default class RouterFetch {
items.push({
path: item.linkPage,
name: item.id,
- component: BouquetsListView
+ component: BouquetsListView,
+ props: (route) => ({
+ initThemeName: route.query.theme,
+ initSubthemeName: route.query.subtheme
+ })
})
items.push({
path: `${item.linkPage}/:bid`,
diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue
index 4bbc2bf3f..78abc9449 100644
--- a/src/views/HomeView.vue
+++ b/src/views/HomeView.vue
@@ -83,7 +83,6 @@ const goToPage = (page) => {
diff --git a/src/views/bouquets/BouquetsListView.vue b/src/views/bouquets/BouquetsListView.vue
index d74442d71..be301b309 100644
--- a/src/views/bouquets/BouquetsListView.vue
+++ b/src/views/bouquets/BouquetsListView.vue
@@ -1,45 +1,86 @@
-
-