diff --git a/zero.Backoffice.UI/_notimplemented/forms/media-old.vue b/zero.Backoffice.UI/_notimplemented/forms/media-old.vue deleted file mode 100644 index 00054edb..00000000 --- a/zero.Backoffice.UI/_notimplemented/forms/media-old.vue +++ /dev/null @@ -1,471 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/zero.Backoffice.UI/_notimplemented/forms/tags.vue b/zero.Backoffice.UI/_notimplemented/forms/tags.vue deleted file mode 100644 index cb1814a4..00000000 --- a/zero.Backoffice.UI/_notimplemented/forms/tags.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/zero.Backoffice.UI/_notimplemented/helpers/auth.js b/zero.Backoffice.UI/_notimplemented/helpers/auth.js deleted file mode 100644 index 9724405f..00000000 --- a/zero.Backoffice.UI/_notimplemented/helpers/auth.js +++ /dev/null @@ -1,118 +0,0 @@ -import Vue from 'vue'; -import Overlay from 'zero/helpers/overlay.js'; -import { find as _find, extend as _extend } from 'underscore'; -import Axios from 'axios'; -//import PasswordChangeOverlay from 'zero/pages/password-change.vue'; - -export default new Vue({ - - data: () => ({ - isAuthenticated: false, - rejectReason: null, - user: { - name: null, - email: null - } - }), - - watch: { - isAuthenticated(value) - { - this.$emit('authenticated', value); - }, - user(value) - { - this.$emit('user', value); - } - }, - - methods: { - - // loads the current user into the cache - loadUser() - { - Axios.get('authentication/getUser').then(res => - { - this.isAuthenticated = res.data.success && res.data.model; - - if (res.data.success) - { - this.user = res.data.model; - } - }); - }, - - // the cached user has been rejected by the server so we clear credentials here - rejectUser(reason) - { - this.rejectReason = reason; - this.isAuthenticated = false; - this.user = null; - }, - - // sets the current user and isAuthenticated to true - setUser(user) - { - if (!user) - { - this.rejectUser(); - return; - } - this.isAuthenticated = true; - this.user = user; - }, - - // logs the user in with the passed credentials - login(model) - { - return Axios.post('authentication/loginUser', model).then(res => - { - return new Promise((resolve, reject) => - { - if (res.data.success) - { - this.setUser(res.data.model); - resolve(res.data); - } - else - { - this.rejectUser(); - reject(res.data.errors); - } - }); - }); - }, - - // logs the current user out - logout() - { - let promise = Axios.post('authentication/logoutUser'); - this.rejectUser("@login.rejectReasons.logout"); - return promise; - }, - - // try to switch selected application for user - switchApp(appId) - { - return Axios.post('authentication/switchApp', null, { params: { appId } }).then(res => - { - //return this.zero.reloadConfig().then(() => - //{ - this.$emit('appswitch', res.data); - return Promise.resolve(res.data.success); - //}); - }); - }, - - // open overlay to update password - openPasswordOverlay() - { - return Overlay.open({ - title: '@changepasswordoverlay.title', - closeLabel: '@ui.close', - confirmLabel: '@changepasswordoverlay.confirm', - component: PasswordChangeOverlay - }); - } - } -}); \ No newline at end of file diff --git a/zero.Backoffice.UI/_notimplemented/forms/table.vue b/zero.Backoffice.UI/_notimplemented/tableeditor.vue similarity index 100% rename from zero.Backoffice.UI/_notimplemented/forms/table.vue rename to zero.Backoffice.UI/_notimplemented/tableeditor.vue diff --git a/zero.Backoffice.UI/app/components/index.ts b/zero.Backoffice.UI/app/components/index.ts index d59deba6..7e7d6586 100644 --- a/zero.Backoffice.UI/app/components/index.ts +++ b/zero.Backoffice.UI/app/components/index.ts @@ -35,6 +35,7 @@ import uiToggle from './ui-toggle.vue'; import uiProperty from './ui-property.vue'; import uiColorpicker from './ui-colorpicker.vue'; import uiDatepicker from './ui-datepicker.vue'; +import uiDaterangepicker from './ui-daterangepicker.vue'; import uiSelect from './ui-select.vue'; import uiForm from './ui-form.vue'; import uiFormHeader from './ui-form-header.vue'; @@ -81,6 +82,7 @@ export { uiProperty, uiColorpicker, uiDatepicker, + uiDaterangepicker, uiSelect, uiForm, uiFormHeader, diff --git a/zero.Backoffice.UI/app/components/ui-daterangepicker-overlay.vue b/zero.Backoffice.UI/app/components/ui-daterangepicker-overlay.vue new file mode 100644 index 00000000..f2cb8323 --- /dev/null +++ b/zero.Backoffice.UI/app/components/ui-daterangepicker-overlay.vue @@ -0,0 +1,66 @@ + + + + + + \ No newline at end of file diff --git a/zero.Backoffice.UI/app/components/ui-daterangepicker.vue b/zero.Backoffice.UI/app/components/ui-daterangepicker.vue new file mode 100644 index 00000000..e99f80b2 --- /dev/null +++ b/zero.Backoffice.UI/app/components/ui-daterangepicker.vue @@ -0,0 +1,157 @@ + + + + + + \ No newline at end of file diff --git a/zero.Backoffice.UI/app/editor/_fields/culturepicker.vue b/zero.Backoffice.UI/app/editor/_fields/culturepicker.vue deleted file mode 100644 index 0b78af7c..00000000 --- a/zero.Backoffice.UI/app/editor/_fields/culturepicker.vue +++ /dev/null @@ -1,39 +0,0 @@ - \ No newline at end of file diff --git a/zero.Backoffice.UI/app/editor/_fields/spacepicker.vue b/zero.Backoffice.UI/app/editor/_fields/spacepicker.vue deleted file mode 100644 index c6726811..00000000 --- a/zero.Backoffice.UI/app/editor/_fields/spacepicker.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - \ No newline at end of file diff --git a/zero.Backoffice.UI/app/editor/fields/createFields.ts b/zero.Backoffice.UI/app/editor/fields/createFields.ts index 74864bf6..9d7fa374 100644 --- a/zero.Backoffice.UI/app/editor/fields/createFields.ts +++ b/zero.Backoffice.UI/app/editor/fields/createFields.ts @@ -18,6 +18,7 @@ export default function createFields(app: ZeroPluginOptions): void app.fieldType('inputlist', defineAsyncComponent(() => import('./inputlist.vue'))); app.fieldType('nested', defineAsyncComponent(() => import('./nested.vue'))); app.fieldType('datePicker', defineAsyncComponent(() => import('./datePicker.vue'))); + app.fieldType('dateRangePicker', defineAsyncComponent(() => import('./dateRangePicker.vue'))); app.fieldType('iconPicker', defineAsyncComponent(() => import('./iconPicker.vue'))); app.fieldType('colorPicker', defineAsyncComponent(() => import('./colorPicker.vue'))); } \ No newline at end of file diff --git a/zero.Backoffice.UI/app/editor/fields/dateRangePicker.vue b/zero.Backoffice.UI/app/editor/fields/dateRangePicker.vue new file mode 100644 index 00000000..97872fdb --- /dev/null +++ b/zero.Backoffice.UI/app/editor/fields/dateRangePicker.vue @@ -0,0 +1,54 @@ + + + + \ No newline at end of file diff --git a/zero.Backoffice.UI/app/editor/fields/editor-field-extensions.d.ts b/zero.Backoffice.UI/app/editor/fields/editor-field-extensions.d.ts index 31904406..fc903092 100644 --- a/zero.Backoffice.UI/app/editor/fields/editor-field-extensions.d.ts +++ b/zero.Backoffice.UI/app/editor/fields/editor-field-extensions.d.ts @@ -88,6 +88,12 @@ declare module 'zero/schemas' */ datePicker(options?: DatePickerFieldOptions): ZeroEditorField; + /** + * Create a date range picker + * @param {DateRangePickerFieldOptions} options - Custom options + */ + dateRangePicker(options?: DateRangePickerFieldOptions): ZeroEditorField; + /** * Create an icon picker * @param {DatePickerFieldOptions} options - Custom options @@ -107,6 +113,13 @@ declare module 'zero/schemas' colors?: boolean; } + export interface DateRangePickerFieldOptions extends DatePickerFieldOptions + { + inline?: boolean; + fromLabel?: string; + toLabel?: string; + } + export interface DatePickerFieldOptions { format?: string;