From 1d9b615d67caf8ccfdd7ea5f9ae891fccba3164e Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Wed, 27 Jun 2018 20:08:27 +0530 Subject: [PATCH] Move vue components to frappejs --- ui/components/Button.vue | 9 ++ ui/components/Desk.vue | 25 ++++ ui/components/FeatherIcon.vue | 42 +++++++ ui/components/Form/Form.vue | 108 ++++++++++++++++++ ui/components/Form/FormActions.vue | 11 ++ ui/components/Form/FormLayout.vue | 87 ++++++++++++++ ui/components/Indicator.vue | 24 ++++ ui/components/List/List.vue | 104 +++++++++++++++++ ui/components/List/ListActions.vue | 12 ++ ui/components/List/ListItem.vue | 21 ++++ ui/components/Main.vue | 5 + ui/components/Modal.vue | 70 ++++++++++++ ui/components/ModelTable.vue | 138 +++++++++++++++++++++++ ui/components/Navbar.vue | 7 ++ ui/components/NotFound.vue | 11 ++ ui/components/Sidebar.vue | 47 ++++++++ ui/components/controls/Autocomplete.vue | 84 ++++++++++++++ ui/components/controls/Base.vue | 103 +++++++++++++++++ ui/components/controls/Check.vue | 25 ++++ ui/components/controls/Code.vue | 11 ++ ui/components/controls/Currency.vue | 6 + ui/components/controls/Data.vue | 8 ++ ui/components/controls/Date.vue | 36 ++++++ ui/components/controls/DynamicLink.vue | 14 +++ ui/components/controls/File.vue | 46 ++++++++ ui/components/controls/Float.vue | 30 +++++ ui/components/controls/FrappeControl.vue | 50 ++++++++ ui/components/controls/Int.vue | 13 +++ ui/components/controls/Link.vue | 89 +++++++++++++++ ui/components/controls/Password.vue | 18 +++ ui/components/controls/Select.vue | 30 +++++ ui/components/controls/Table.vue | 26 +++++ ui/components/controls/Text.vue | 23 ++++ ui/pages/ListAndForm.vue | 34 ++++++ ui/pages/Report/ReportFilters.vue | 43 +++++++ ui/pages/Report/index.vue | 44 ++++++++ ui/plugins/modal.js | 44 ++++++++ ui/routes/index.js | 16 +++ ui/styles/variables.scss | 2 + 39 files changed, 1516 insertions(+) create mode 100644 ui/components/Button.vue create mode 100644 ui/components/Desk.vue create mode 100644 ui/components/FeatherIcon.vue create mode 100644 ui/components/Form/Form.vue create mode 100644 ui/components/Form/FormActions.vue create mode 100644 ui/components/Form/FormLayout.vue create mode 100644 ui/components/Indicator.vue create mode 100644 ui/components/List/List.vue create mode 100644 ui/components/List/ListActions.vue create mode 100644 ui/components/List/ListItem.vue create mode 100644 ui/components/Main.vue create mode 100644 ui/components/Modal.vue create mode 100644 ui/components/ModelTable.vue create mode 100644 ui/components/Navbar.vue create mode 100644 ui/components/NotFound.vue create mode 100644 ui/components/Sidebar.vue create mode 100644 ui/components/controls/Autocomplete.vue create mode 100644 ui/components/controls/Base.vue create mode 100644 ui/components/controls/Check.vue create mode 100644 ui/components/controls/Code.vue create mode 100644 ui/components/controls/Currency.vue create mode 100644 ui/components/controls/Data.vue create mode 100644 ui/components/controls/Date.vue create mode 100644 ui/components/controls/DynamicLink.vue create mode 100644 ui/components/controls/File.vue create mode 100644 ui/components/controls/Float.vue create mode 100644 ui/components/controls/FrappeControl.vue create mode 100644 ui/components/controls/Int.vue create mode 100644 ui/components/controls/Link.vue create mode 100644 ui/components/controls/Password.vue create mode 100644 ui/components/controls/Select.vue create mode 100644 ui/components/controls/Table.vue create mode 100644 ui/components/controls/Text.vue create mode 100644 ui/pages/ListAndForm.vue create mode 100644 ui/pages/Report/ReportFilters.vue create mode 100644 ui/pages/Report/index.vue create mode 100644 ui/plugins/modal.js create mode 100644 ui/routes/index.js create mode 100644 ui/styles/variables.scss diff --git a/ui/components/Button.vue b/ui/components/Button.vue new file mode 100644 index 00000000..959d442a --- /dev/null +++ b/ui/components/Button.vue @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/ui/components/Desk.vue b/ui/components/Desk.vue new file mode 100644 index 00000000..f191205c --- /dev/null +++ b/ui/components/Desk.vue @@ -0,0 +1,25 @@ + + + diff --git a/ui/components/FeatherIcon.vue b/ui/components/FeatherIcon.vue new file mode 100644 index 00000000..4e6bf12f --- /dev/null +++ b/ui/components/FeatherIcon.vue @@ -0,0 +1,42 @@ + + + + diff --git a/ui/components/Form/Form.vue b/ui/components/Form/Form.vue new file mode 100644 index 00000000..102a6ecc --- /dev/null +++ b/ui/components/Form/Form.vue @@ -0,0 +1,108 @@ + + + diff --git a/ui/components/Form/FormActions.vue b/ui/components/Form/FormActions.vue new file mode 100644 index 00000000..46b963fc --- /dev/null +++ b/ui/components/Form/FormActions.vue @@ -0,0 +1,11 @@ + + diff --git a/ui/components/Form/FormLayout.vue b/ui/components/Form/FormLayout.vue new file mode 100644 index 00000000..b7e57414 --- /dev/null +++ b/ui/components/Form/FormLayout.vue @@ -0,0 +1,87 @@ + + diff --git a/ui/components/Indicator.vue b/ui/components/Indicator.vue new file mode 100644 index 00000000..23893bbf --- /dev/null +++ b/ui/components/Indicator.vue @@ -0,0 +1,24 @@ + + + + diff --git a/ui/components/List/List.vue b/ui/components/List/List.vue new file mode 100644 index 00000000..9c2b851f --- /dev/null +++ b/ui/components/List/List.vue @@ -0,0 +1,104 @@ + + + diff --git a/ui/components/List/ListActions.vue b/ui/components/List/ListActions.vue new file mode 100644 index 00000000..9901dea0 --- /dev/null +++ b/ui/components/List/ListActions.vue @@ -0,0 +1,12 @@ + + diff --git a/ui/components/List/ListItem.vue b/ui/components/List/ListItem.vue new file mode 100644 index 00000000..b874b76f --- /dev/null +++ b/ui/components/List/ListItem.vue @@ -0,0 +1,21 @@ + + diff --git a/ui/components/Main.vue b/ui/components/Main.vue new file mode 100644 index 00000000..33e65f91 --- /dev/null +++ b/ui/components/Main.vue @@ -0,0 +1,5 @@ + diff --git a/ui/components/Modal.vue b/ui/components/Modal.vue new file mode 100644 index 00000000..ad9dbaf7 --- /dev/null +++ b/ui/components/Modal.vue @@ -0,0 +1,70 @@ + + + diff --git a/ui/components/ModelTable.vue b/ui/components/ModelTable.vue new file mode 100644 index 00000000..9fe1360b --- /dev/null +++ b/ui/components/ModelTable.vue @@ -0,0 +1,138 @@ + + + diff --git a/ui/components/Navbar.vue b/ui/components/Navbar.vue new file mode 100644 index 00000000..fcf8f81a --- /dev/null +++ b/ui/components/Navbar.vue @@ -0,0 +1,7 @@ + diff --git a/ui/components/NotFound.vue b/ui/components/NotFound.vue new file mode 100644 index 00000000..a842aa42 --- /dev/null +++ b/ui/components/NotFound.vue @@ -0,0 +1,11 @@ + + diff --git a/ui/components/Sidebar.vue b/ui/components/Sidebar.vue new file mode 100644 index 00000000..0afb9800 --- /dev/null +++ b/ui/components/Sidebar.vue @@ -0,0 +1,47 @@ + + + + diff --git a/ui/components/controls/Autocomplete.vue b/ui/components/controls/Autocomplete.vue new file mode 100644 index 00000000..b3de9974 --- /dev/null +++ b/ui/components/controls/Autocomplete.vue @@ -0,0 +1,84 @@ + + diff --git a/ui/components/controls/Base.vue b/ui/components/controls/Base.vue new file mode 100644 index 00000000..ac0d7160 --- /dev/null +++ b/ui/components/controls/Base.vue @@ -0,0 +1,103 @@ + diff --git a/ui/components/controls/Check.vue b/ui/components/controls/Check.vue new file mode 100644 index 00000000..6b1ec936 --- /dev/null +++ b/ui/components/controls/Check.vue @@ -0,0 +1,25 @@ + + + diff --git a/ui/components/controls/Code.vue b/ui/components/controls/Code.vue new file mode 100644 index 00000000..ddfb049e --- /dev/null +++ b/ui/components/controls/Code.vue @@ -0,0 +1,11 @@ + diff --git a/ui/components/controls/Currency.vue b/ui/components/controls/Currency.vue new file mode 100644 index 00000000..64946d7f --- /dev/null +++ b/ui/components/controls/Currency.vue @@ -0,0 +1,6 @@ + diff --git a/ui/components/controls/Data.vue b/ui/components/controls/Data.vue new file mode 100644 index 00000000..f214e548 --- /dev/null +++ b/ui/components/controls/Data.vue @@ -0,0 +1,8 @@ + diff --git a/ui/components/controls/Date.vue b/ui/components/controls/Date.vue new file mode 100644 index 00000000..d152c830 --- /dev/null +++ b/ui/components/controls/Date.vue @@ -0,0 +1,36 @@ + + + diff --git a/ui/components/controls/DynamicLink.vue b/ui/components/controls/DynamicLink.vue new file mode 100644 index 00000000..eebac5f4 --- /dev/null +++ b/ui/components/controls/DynamicLink.vue @@ -0,0 +1,14 @@ + diff --git a/ui/components/controls/File.vue b/ui/components/controls/File.vue new file mode 100644 index 00000000..ccae4734 --- /dev/null +++ b/ui/components/controls/File.vue @@ -0,0 +1,46 @@ + diff --git a/ui/components/controls/Float.vue b/ui/components/controls/Float.vue new file mode 100644 index 00000000..9a44a3b0 --- /dev/null +++ b/ui/components/controls/Float.vue @@ -0,0 +1,30 @@ + diff --git a/ui/components/controls/FrappeControl.vue b/ui/components/controls/FrappeControl.vue new file mode 100644 index 00000000..db6cb830 --- /dev/null +++ b/ui/components/controls/FrappeControl.vue @@ -0,0 +1,50 @@ + + diff --git a/ui/components/controls/Int.vue b/ui/components/controls/Int.vue new file mode 100644 index 00000000..d72358e2 --- /dev/null +++ b/ui/components/controls/Int.vue @@ -0,0 +1,13 @@ + diff --git a/ui/components/controls/Link.vue b/ui/components/controls/Link.vue new file mode 100644 index 00000000..fa74c868 --- /dev/null +++ b/ui/components/controls/Link.vue @@ -0,0 +1,89 @@ + diff --git a/ui/components/controls/Password.vue b/ui/components/controls/Password.vue new file mode 100644 index 00000000..ae0c4fa7 --- /dev/null +++ b/ui/components/controls/Password.vue @@ -0,0 +1,18 @@ + \ No newline at end of file diff --git a/ui/components/controls/Select.vue b/ui/components/controls/Select.vue new file mode 100644 index 00000000..5aceb8eb --- /dev/null +++ b/ui/components/controls/Select.vue @@ -0,0 +1,30 @@ + diff --git a/ui/components/controls/Table.vue b/ui/components/controls/Table.vue new file mode 100644 index 00000000..7f18c2cd --- /dev/null +++ b/ui/components/controls/Table.vue @@ -0,0 +1,26 @@ + + + diff --git a/ui/components/controls/Text.vue b/ui/components/controls/Text.vue new file mode 100644 index 00000000..46118ca0 --- /dev/null +++ b/ui/components/controls/Text.vue @@ -0,0 +1,23 @@ + diff --git a/ui/pages/ListAndForm.vue b/ui/pages/ListAndForm.vue new file mode 100644 index 00000000..e867c1c2 --- /dev/null +++ b/ui/pages/ListAndForm.vue @@ -0,0 +1,34 @@ + + + diff --git a/ui/pages/Report/ReportFilters.vue b/ui/pages/Report/ReportFilters.vue new file mode 100644 index 00000000..d1595a98 --- /dev/null +++ b/ui/pages/Report/ReportFilters.vue @@ -0,0 +1,43 @@ + + + diff --git a/ui/pages/Report/index.vue b/ui/pages/Report/index.vue new file mode 100644 index 00000000..8957c836 --- /dev/null +++ b/ui/pages/Report/index.vue @@ -0,0 +1,44 @@ + + + diff --git a/ui/plugins/modal.js b/ui/plugins/modal.js new file mode 100644 index 00000000..c06300f4 --- /dev/null +++ b/ui/plugins/modal.js @@ -0,0 +1,44 @@ +import Observable from 'frappejs/utils/observable'; + +const Bus = new Observable(); + +export default { + // enable use of this.$modal in every component + // this also keeps only one modal in the DOM at any time + // which is the recommended way by bootstrap + install (Vue) { + Vue.prototype.$modal = { + show(options) { + Bus.trigger('showModal', options); + }, + + hide() { + Bus.trigger('hideModal'); + } + } + + Vue.mixin({ + data() { + return { + registered: false, + modalVisible: false, + modalOptions: {} + } + }, + created: function () { + if (this.registered) return; + + Bus.on('showModal', (options = {}) => { + this.modalVisible = true; + this.modalOptions = options; + }); + + Bus.on('hideModal', () => { + this.modalVisible = false; + }); + + this.registered = true; + } + }); + } +} \ No newline at end of file diff --git a/ui/routes/index.js b/ui/routes/index.js new file mode 100644 index 00000000..5c1eef87 --- /dev/null +++ b/ui/routes/index.js @@ -0,0 +1,16 @@ +import ListAndForm from '../pages/ListAndForm'; + +export default [ + { + path: '/list/:doctype', + name: 'List', + component: ListAndForm, + props: true + }, + { + path: '/edit/:doctype/:name', + name: 'Form', + component: ListAndForm, + props: true + } +]; diff --git a/ui/styles/variables.scss b/ui/styles/variables.scss new file mode 100644 index 00000000..367009b9 --- /dev/null +++ b/ui/styles/variables.scss @@ -0,0 +1,2 @@ +@import "~bootstrap/scss/functions"; +@import "~bootstrap/scss/variables"; \ No newline at end of file