diff --git a/zero.Core/Api/ModulesApi.cs b/zero.Core/Api/ModulesApi.cs new file mode 100644 index 00000000..7d4ad71c --- /dev/null +++ b/zero.Core/Api/ModulesApi.cs @@ -0,0 +1,45 @@ +using System.Collections.Generic; +using System.Linq; +using zero.Core.Entities; +using zero.Core.Options; + +namespace zero.Core.Api +{ + public class ModulesApi : BackofficeApi, IModulesApi + { + protected IZeroOptions Options { get; private set; } + + public ModulesApi(IZeroOptions options, IBackofficeStore store) : base(store) + { + Options = options; + } + + + /// + public IList GetModuleTypes() + { + return Options.Modules.GetAllItems().ToList(); + } + + + /// + public ModuleType GetModuleType(string alias) + { + return Options.Modules.GetAllItems().FirstOrDefault(x => x.Alias == alias); + } + } + + + public interface IModulesApi + { + /// + /// Get all available module types + /// + IList GetModuleTypes(); + + /// + /// Get a specific module type by alias + /// + ModuleType GetModuleType(string alias); + } +} diff --git a/zero.Web.UI/App/components/modules/modules-select.vue b/zero.Web.UI/App/components/modules/modules-select.vue new file mode 100644 index 00000000..01bf52d7 --- /dev/null +++ b/zero.Web.UI/App/components/modules/modules-select.vue @@ -0,0 +1,268 @@ + + + + + + Add content Compose the page by adding modules + + + + + + + {{group.name}} + {{group.count}} + + + + + + + + + {{item.name}} + {{item.description}} + + Not allowed + + + + + + + + + + \ No newline at end of file diff --git a/zero.Web.UI/App/components/modules/modules.vue b/zero.Web.UI/App/components/modules/modules.vue new file mode 100644 index 00000000..e779cd0d --- /dev/null +++ b/zero.Web.UI/App/components/modules/modules.vue @@ -0,0 +1,93 @@ + + + + + + + + + + \ No newline at end of file diff --git a/zero.Web.UI/App/editor/fields/modules.vue b/zero.Web.UI/App/editor/fields/modules.vue index 49753737..7fc6ab65 100644 --- a/zero.Web.UI/App/editor/fields/modules.vue +++ b/zero.Web.UI/App/editor/fields/modules.vue @@ -1,77 +1,15 @@ - - - - - Add content Compose the page by adding modules - - - + - - \ No newline at end of file + \ No newline at end of file diff --git a/zero.Web.UI/App/resources/modules.js b/zero.Web.UI/App/resources/modules.js new file mode 100644 index 00000000..d234e222 --- /dev/null +++ b/zero.Web.UI/App/resources/modules.js @@ -0,0 +1,16 @@ +import Axios from 'axios'; + +const base = 'modules/'; + +export default { + + getModuleTypes() + { + return Axios.get(base + 'getModuleTypes').then(res => Promise.resolve(res.data)); + }, + + getModuleType(alias) + { + return Axios.get(base + 'getModuleType', { params: { alias } }).then(res => Promise.resolve(res.data)); + } +}; \ No newline at end of file diff --git a/zero.Web.UI/Sass/Core/_settings.scss b/zero.Web.UI/Sass/Core/_settings.scss index 4cbb786a..f2044bc9 100644 --- a/zero.Web.UI/Sass/Core/_settings.scss +++ b/zero.Web.UI/Sass/Core/_settings.scss @@ -122,7 +122,7 @@ --color-bg: #191e25; --color-bg-bright: #{darken($color-shade-base, 2%)}; --color-bg-bright-two: #{desaturate(lighten($color-shade-base, 2%), 3%)}; - --color-bg-bright-three: #{desaturate(lighten($color-shade-base, 6%), 3%)}; + --color-bg-bright-three: #{desaturate(lighten($color-shade-base, 6%), 5%)}; --color-bg-dim: #{darken($color-shade-base, 4%)}; /*$color-shade-base: #141617; --color-bg: #141617; diff --git a/zero.Web/Controllers/ModulesController.cs b/zero.Web/Controllers/ModulesController.cs new file mode 100644 index 00000000..c131e7e4 --- /dev/null +++ b/zero.Web/Controllers/ModulesController.cs @@ -0,0 +1,20 @@ +using Microsoft.AspNetCore.Mvc; +using zero.Core.Api; + +namespace zero.Web.Controllers +{ + public class ModulesController : BackofficeController + { + IModulesApi Api; + + public ModulesController(IModulesApi api) + { + Api = api; + } + + + public IActionResult GetModuleTypes() => Json(Api.GetModuleTypes()); + + public IActionResult GetModuleType([FromQuery] string alias) => Json(Api.GetModuleType(alias)); + } +} diff --git a/zero.Web/Defaults/ZeroBackofficePlugin.cs b/zero.Web/Defaults/ZeroBackofficePlugin.cs index cbe875bb..49a6f4cc 100644 --- a/zero.Web/Defaults/ZeroBackofficePlugin.cs +++ b/zero.Web/Defaults/ZeroBackofficePlugin.cs @@ -48,6 +48,7 @@ namespace zero.Web.Defaults services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); } public void Configure(IZeroPluginOptions plugin, IZeroOptions zero) diff --git a/zero.Web/Resources/Localization/zero.en-us.json b/zero.Web/Resources/Localization/zero.en-us.json index 9eed6ff8..cbf9ad87 100644 --- a/zero.Web/Resources/Localization/zero.en-us.json +++ b/zero.Web/Resources/Localization/zero.en-us.json @@ -161,7 +161,6 @@ "success": "Deleted", "success_text": "You have successfully deleted this entity", "page_text": "This will delete the page and all its descendants. Are you sure?", - "success": "Deleted", "page_success_text": "You have successfully deleted this page" }, @@ -325,6 +324,14 @@ } }, + "modules": { + "add": { + "title": "Add content", + "text": "Compose the page by adding modules" + }, + "default_group": "Default" + }, + "page": { "name": "Page",
Add content Compose the page by adding modules