From 9c48c3646da7c9f5aad2dd2ad3194776c97ffbee Mon Sep 17 00:00:00 2001 From: Tobias Klika Date: Thu, 29 Oct 2020 21:44:22 +0100 Subject: [PATCH] page picker --- zero.Core/Api/PagesApi.cs | 12 ++ .../components/pickers/pagePicker/overlay.vue | 116 ++++++++++ .../pickers/pagePicker/pagepicker.vue | 198 ++++++++++++++++++ zero.Web.UI/App/core/editor-field.js | 13 ++ zero.Web.UI/App/editor/editor.scss | 12 ++ zero.Web.UI/App/editor/editor.vue | 4 +- zero.Web.UI/App/editor/fields/pagepicker.vue | 24 +++ zero.Web.UI/App/resources/pages.js | 5 + zero.Web/Controllers/PagesController.cs | 20 ++ .../Defaults/ZeroAssemblyDiscoveryRule.cs | 1 - .../Resources/Localization/zero.en-us.json | 5 +- 11 files changed, 406 insertions(+), 4 deletions(-) create mode 100644 zero.Web.UI/App/components/pickers/pagePicker/overlay.vue create mode 100644 zero.Web.UI/App/components/pickers/pagePicker/pagepicker.vue create mode 100644 zero.Web.UI/App/editor/fields/pagepicker.vue diff --git a/zero.Core/Api/PagesApi.cs b/zero.Core/Api/PagesApi.cs index e7355352..b594bcf3 100644 --- a/zero.Core/Api/PagesApi.cs +++ b/zero.Core/Api/PagesApi.cs @@ -36,6 +36,13 @@ namespace zero.Core.Api } + /// + public async Task> GetByIds(params string[] ids) + { + return await GetByIds(ids); + } + + /// public IList GetPageTypes() { @@ -357,6 +364,11 @@ namespace zero.Core.Api /// Task GetById(string id); + /// + /// Get pages by ids + /// + Task> GetByIds(params string[] ids); + /// /// Get all available page types /// diff --git a/zero.Web.UI/App/components/pickers/pagePicker/overlay.vue b/zero.Web.UI/App/components/pickers/pagePicker/overlay.vue new file mode 100644 index 00000000..0ca01789 --- /dev/null +++ b/zero.Web.UI/App/components/pickers/pagePicker/overlay.vue @@ -0,0 +1,116 @@ + + + + + + \ No newline at end of file diff --git a/zero.Web.UI/App/components/pickers/pagePicker/pagepicker.vue b/zero.Web.UI/App/components/pickers/pagePicker/pagepicker.vue new file mode 100644 index 00000000..b4d719ff --- /dev/null +++ b/zero.Web.UI/App/components/pickers/pagePicker/pagepicker.vue @@ -0,0 +1,198 @@ + + + + + + \ No newline at end of file diff --git a/zero.Web.UI/App/core/editor-field.js b/zero.Web.UI/App/core/editor-field.js index ffeb135b..c594e7a6 100644 --- a/zero.Web.UI/App/core/editor-field.js +++ b/zero.Web.UI/App/core/editor-field.js @@ -16,6 +16,7 @@ import DatePicker from '../editor/fields/datepicker.vue'; import DateRangePicker from '../editor/fields/daterangepicker.vue'; import IconPicker from '../editor/fields/iconPicker.vue'; import LanguagePicker from '../editor/fields/language.vue'; +import PagePicker from '../editor/fields/pagepicker.vue'; import InputList from '../editor/fields/inputlist.vue'; import Media from '../editor/fields/media.vue'; import Modules from '../editor/fields/modules.vue'; @@ -351,6 +352,18 @@ class EditorField } + /** + * Renders a page picker + * @param {object} [options] - Custom options + * @param {number} [options.limit=1] - Limit of selection + * @returns {EditorField} + */ + pagePicker(options) + { + return this._setComponent(PagePicker, { ...options }); + } + + /** * Create a list of strings * @param {number} [limit=10] - Limit the inputs diff --git a/zero.Web.UI/App/editor/editor.scss b/zero.Web.UI/App/editor/editor.scss index d79a6f2e..10491c1d 100644 --- a/zero.Web.UI/App/editor/editor.scss +++ b/zero.Web.UI/App/editor/editor.scss @@ -11,6 +11,13 @@ { padding-top: 0; } + + .ui-tab > h3 + { + border-bottom: 1px solid var(--color-line); + padding-bottom: var(--padding-m); + margin-bottom: var(--padding); + } } .editor-outer @@ -190,4 +197,9 @@ { margin-top: 0; } + + .editor-infos + { + margin-top: 0; + } } \ No newline at end of file diff --git a/zero.Web.UI/App/editor/editor.vue b/zero.Web.UI/App/editor/editor.vue index 6afec539..8aa9c6b0 100644 --- a/zero.Web.UI/App/editor/editor.vue +++ b/zero.Web.UI/App/editor/editor.vue @@ -1,9 +1,9 @@