diff --git a/zero.Core/Api/SpacesApi.cs b/zero.Core/Api/SpacesApi.cs
index bc98a965..5bebf042 100644
--- a/zero.Core/Api/SpacesApi.cs
+++ b/zero.Core/Api/SpacesApi.cs
@@ -9,6 +9,7 @@ using System.Linq;
using System.Threading.Tasks;
using zero.Core.Entities;
using zero.Core.Extensions;
+using zero.Core.Renderer;
namespace zero.Core.Api
{
@@ -40,6 +41,27 @@ namespace zero.Core.Api
}
+ ///
+ public RendererConfig GetEditorConfig(string alias)
+ {
+ Space space = GetByAlias(alias);
+
+ if (space == null)
+ {
+ return null;
+ }
+
+ AbstractGenericRenderer renderer = Options.Renderers.FirstOrDefault(x => x.TargetType == space.Type);
+
+ if (renderer == null)
+ {
+ return null;
+ }
+
+ return renderer.Build();
+ }
+
+
///
public async Task GetItem(string alias) where T : SpaceContent
{
@@ -53,6 +75,19 @@ namespace zero.Core.Api
}
+ ///
+ public async Task GetItem(string alias, string id) where T : SpaceContent
+ {
+ using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ {
+ return await session.Query()
+ .Where(x => x.SpaceAlias == alias && x.Id == id)
+ .ProjectInto()
+ .FirstOrDefaultAsync();
+ }
+ }
+
+
///
public async Task> GetList(string alias) where T : SpaceContent
{
@@ -124,11 +159,21 @@ namespace zero.Core.Api
///
SpaceCollection GetAll();
+ ///
+ /// Get editor configuration for a space
+ ///
+ RendererConfig GetEditorConfig(string alias);
+
///
/// Get editor item for a space
///
Task GetItem(string alias) where T : SpaceContent;
+ ///
+ /// Get editor item for a space
+ ///
+ Task GetItem(string alias, string id) where T : SpaceContent;
+
///
/// Get all list items by space alias
///
diff --git a/zero.Core/Extensions/StringExtensions.cs b/zero.Core/Extensions/StringExtensions.cs
index 0533b036..e981bff8 100644
--- a/zero.Core/Extensions/StringExtensions.cs
+++ b/zero.Core/Extensions/StringExtensions.cs
@@ -1,5 +1,6 @@
using System;
using System.Globalization;
+using System.Linq;
namespace zero.Core.Extensions
{
@@ -87,5 +88,22 @@ namespace zero.Core.Extensions
}
return input;
}
+
+ public static string ToCamelCaseId(this string input)
+ {
+ if (String.IsNullOrEmpty(input))
+ {
+ return input;
+ }
+
+ if (input.Length < 2)
+ {
+ return input.ToLowerInvariant();
+ }
+
+ string[] parts = input.Split('.');
+
+ return String.Join(".", parts.Select(x => x.ToCamelCase()));
+ }
}
}
diff --git a/zero.Web/App/Components/Buttons/state-button.vue b/zero.Web/App/Components/Buttons/state-button.vue
index a7e99509..a61bb42d 100644
--- a/zero.Web/App/Components/Buttons/state-button.vue
+++ b/zero.Web/App/Components/Buttons/state-button.vue
@@ -56,7 +56,7 @@
{
background: var(--color-bg-mid);
//border: 1px solid var(--color-line);
- padding: 6px 16px;
+ padding: 10px 16px;
&:first-of-type
{
diff --git a/zero.Web/App/Components/Forms/toggle.vue b/zero.Web/App/Components/Forms/toggle.vue
index b1142351..b76334d3 100644
--- a/zero.Web/App/Components/Forms/toggle.vue
+++ b/zero.Web/App/Components/Forms/toggle.vue
@@ -90,16 +90,23 @@
transition: all 0.2s ease;
}
- &.is-active
+ &.is-active i
{
background: var(--color-primary);
+ transform: translateX(18px);
+ /*background: var(--color-primary);
border-color: transparent;
i
{
background: var(--color-primary-fg);
transform: translateX(18px);
- }
+ }*/
}
}
+
+ /*.ui-toggle.is-disabled .ui-toggle-switch i
+ {
+ background: var(--color-bg-dark);
+ }*/
\ No newline at end of file
diff --git a/zero.Web/App/Pages/spaces/views/editor.vue b/zero.Web/App/Pages/spaces/views/editor.vue
index 7563038f..946a024b 100644
--- a/zero.Web/App/Pages/spaces/views/editor.vue
+++ b/zero.Web/App/Pages/spaces/views/editor.vue
@@ -9,13 +9,12 @@
-
+