diff --git a/app/javascript/packs/vue/design_system/modals.js b/app/javascript/packs/vue/design_system/modals.js index 66f138567..477dbc000 100644 --- a/app/javascript/packs/vue/design_system/modals.js +++ b/app/javascript/packs/vue/design_system/modals.js @@ -2,6 +2,7 @@ import { createApp } from 'vue/dist/vue.esm-bundler.js'; import { shallowRef } from 'vue'; import WizardModal from '../../../vue/shared/wizard_modal.vue'; +import InfoModal from '../../../vue/shared/info_modal.vue'; import Step1 from './wizard_steps/step_1.vue'; import Step2 from './wizard_steps/step_2.vue'; import Step3 from './wizard_steps/step_3.vue'; @@ -20,6 +21,7 @@ const app = createApp({ }, data() { return { + // Wizard modal wizardConfig: { title: 'Wizard steps', subtitle: 'Wizard subtitle description', @@ -47,10 +49,51 @@ const app = createApp({ wizardParams: { text: 'Some text' }, - showWizard: false + showWizard: false, + + // Info modal + infoParams: { + componentTitle: 'Guide for updating the inventory', + modalTitle: 'Update inventory', + helpText: 'Help', + elements: [ + { + id: 'el1', + icon: 'sn-icon sn-icon-export', + label: 'Export inventory', + subtext: "Before making edits, we advise you to export the latest inventory information. If you're only adding new items, consider exporting empty inventory." + }, + { + id: 'el2', + icon: 'sn-icon sn-icon-edit', + label: 'Edit your data', + subtext: 'Make sure to include header names in first row, followed by item data.' + }, + { + id: 'el3', + icon: 'sn-icon sn-icon-import', + label: 'Import new or update items', + subtext: 'Upload your data using .xlsx, .csv or .txt files.' + }, + { + id: 'el4', + icon: 'sn-icon sn-icon-tables', + label: 'Merge your data', + subtext: 'Complete the process by merging the columns you want to update.' + }, + { + id: 'el5', + icon: 'sn-icon sn-icon-open', + label: 'Learn more', + linkTo: 'https://knowledgebase.scinote.net/en/knowledge/how-to-add-items-to-an-inventory' + } + ] + }, + showInfo: false }; } }); app.component('WizardModal', WizardModal); +app.component('InfoModal', InfoModal); app.config.globalProperties.i18n = window.I18n; mountWithTurbolinks(app, '#modals'); diff --git a/app/javascript/vue/shared/info_component.vue b/app/javascript/vue/shared/info_component.vue new file mode 100644 index 000000000..8ff4bd3c7 --- /dev/null +++ b/app/javascript/vue/shared/info_component.vue @@ -0,0 +1,39 @@ + + + diff --git a/app/javascript/vue/shared/info_modal.vue b/app/javascript/vue/shared/info_modal.vue new file mode 100644 index 000000000..40afb09e4 --- /dev/null +++ b/app/javascript/vue/shared/info_modal.vue @@ -0,0 +1,61 @@ + + + diff --git a/app/views/design_elements/_modals.html.erb b/app/views/design_elements/_modals.html.erb index 17e5fac5f..e87fa50c5 100644 --- a/app/views/design_elements/_modals.html.erb +++ b/app/views/design_elements/_modals.html.erb @@ -1,15 +1,30 @@

Modals

- - +
+ + +
+ +
+ + +
I am a component that gets consumed by the slot
+
+
+ +