diff --git a/zero.Core/Renderer/AbstractRenderer.cs b/zero.Core/Renderer/AbstractRenderer.cs deleted file mode 100644 index c0719bad..00000000 --- a/zero.Core/Renderer/AbstractRenderer.cs +++ /dev/null @@ -1,231 +0,0 @@ -using FluentValidation; -using Lambda2Js; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Linq.Expressions; -using zero.Core.Extensions; - -namespace zero.Core.Renderer -{ - public class AbstractGenericRenderer : AbstractRenderer - { - public Type TargetType { get; set; } - - public AbstractGenericRenderer() { } - - internal AbstractGenericRenderer(Type type, string alias, List properties) - { - Alias = alias; - TargetType = type; - Properties = properties; - } - } - - - public abstract class AbstractRenderer : IRenderer, IRenderer - { - const string METHOD_FIELD = "field"; - - const string METHOD_TAB = "tab"; - - const string METHOD_BOX = "box"; - - protected List Properties { get; set; } = new List(); - - RenderProperty ParentProperty = null; - - int CurrentDepth = 0; - - public string Alias { get; protected set; } - - protected string LabelTemplate = "{0}"; - - protected string DescriptionTemplate = "{0}"; - - protected Func FindLabelName = field => "@" + field; - - protected Func FindLabelDescriptionName = field => null; - - - public RendererConfig Build() - { - RendererConfig config = new RendererConfig(); - config.Type = typeof(T); - - - // compile fields - static void compile(List properties) - { - foreach (RenderProperty property in properties) - { - property.Compile?.Invoke(property); - - if (property.Children.Count > 0) - { - compile(property.Children); - } - } - } - compile(Properties); - - - // move top-level properties into tab in case other tabs exist - int countTabs = Properties.Count(x => x.Method == METHOD_TAB); - - if (countTabs > 0 && countTabs < Properties.Count) - { - int index = Properties.FindIndex(x => x.Method != METHOD_TAB); - List children = Properties.Where(x => x.Method != METHOD_TAB).ToList(); - - Properties.Insert(index, new RenderProperty() - { - Method = METHOD_TAB, - Children = children, - Params = new - { - Name = "@ui.tab_general" - } - }); - - Properties = Properties.Where(x => x.Method == METHOD_TAB).ToList(); - } - - - // map to result - static RendererComponent Map(RenderProperty property) - { - RendererComponent component = new RendererComponent() - { - Method = property.Method, - Params = property.Params - }; - - if (property.Children.Count > 0) - { - component.Components = property.Children.Select(x => Map(x)).ToList(); - } - else if (property.NestedRenderer != null) - { - component.Components = property.NestedRenderer.Build().Components; - } - - return component; - } - - config.Components = Properties.Select(x => Map(x)).ToList(); - - - return config; - } - - - public AbstractGenericRenderer ToGenericRenderer() - { - return new AbstractGenericRenderer(typeof(T), Alias, Properties); - } - - - protected virtual IRendererFieldBuilder Field(Expression> mapExpression, bool required = false, string label = null, string description = null) - { - RendererFieldBuilder builder = new RendererFieldBuilder(); - - Add(new RenderProperty() - { - Method = METHOD_FIELD, - Compile = property => - { - string field = mapExpression.CompileToJavascript().ToCamelCaseId(); - - RendererFieldBuilder.Data fieldData = builder.Build(); - - property.NestedRenderer = fieldData.Renderer; - property.Params = new - { - Field = field, - View = fieldData.View, - ComponentPath = fieldData.ComponentPath, - Options = fieldData.Options ?? new List() { }, - Label = label != null ? label : FindLabelName?.Invoke(field), - Description = description != null ? description : FindLabelDescriptionName?.Invoke(field), - Required = required - }; - } - }); - - return builder; - } - - - protected virtual IRendererFieldBuilder Field(Expression> mapExpression, string label, string description = null, bool required = false, bool noDescription = false) - { - return Field(mapExpression, required, label, description); - } - - - protected virtual void Tab(string name, Action builder) - { - builder(); // TODO re-enable tabs - return; - - Add(new RenderProperty() - { - Method = METHOD_TAB, - Builder = builder, - Params = new - { - Name = name - } - }); - } - - protected virtual void Box(string name, string description, Action builder) - { - Add(new RenderProperty() - { - Method = METHOD_BOX, - Builder = builder, - Params = new - { - Name = name, - Description = description - } - }); - } - - private void Add(RenderProperty property) - { - if (property.Method == METHOD_TAB && CurrentDepth > 0) - { - throw new Exception("Tabs have to be defined on the root level of the renderer"); - } - if (property.Method == METHOD_BOX && (CurrentDepth > 1 || (CurrentDepth == 1 && ParentProperty?.Method != METHOD_TAB))) - { - throw new Exception("Boxes have to be defined on the root level of the renderer or as direct descendents of a tab"); - } - - if (CurrentDepth == 0) - { - Properties.Add(property); - } - else - { - ParentProperty.Children.Add(property); - } - - if (property.Builder != null) - { - CurrentDepth += 1; - - RenderProperty previousParent = ParentProperty; - - ParentProperty = property; - - property.Builder(); - - CurrentDepth -= 1; - ParentProperty = previousParent; - } - } - } -} diff --git a/zero.Core/Renderer/AbstractRenderer2.cs b/zero.Core/Renderer/AbstractRenderer2.cs deleted file mode 100644 index 15bccbf3..00000000 --- a/zero.Core/Renderer/AbstractRenderer2.cs +++ /dev/null @@ -1,132 +0,0 @@ -using Lambda2Js; -using System; -using System.Collections.Generic; -using System.Linq.Expressions; -using zero.Core.Extensions; - -namespace zero.Core.Renderer -{ - public abstract class AbstractRenderer2 - { - const string METHOD_FIELD = "field"; - - const string METHOD_TAB = "tab"; - - const string METHOD_BOX = "box"; - - protected List Properties { get; set; } = new List(); - - RenderProperty ParentProperty = null; - - int CurrentDepth = 0; - - - - /// - /// Create a field - /// - protected virtual IRendererFieldBuilder Field(Expression> mapExpression, bool required = false) - { - RendererFieldBuilder builder = new RendererFieldBuilder(); - - Add(new RenderProperty() - { - Method = METHOD_FIELD, - Compile = property => - { - string field = mapExpression.CompileToJavascript().ToCamelCaseId(); - - RendererFieldBuilder.Data fieldData = builder.Build(); - - property.NestedRenderer = fieldData.Renderer; - property.Params = new - { - Field = field, - View = fieldData.View, - ComponentPath = fieldData.ComponentPath, - Options = fieldData.Options ?? new List() { }, - //Label = FindLabelName?.Invoke(field), - //Description = FindLabelDescriptionName?.Invoke(field), - Required = required - }; - } - }); - - return builder; - } - - - /// - /// Creates a tab - /// - protected virtual void Tab(string name, Action contentBuilder) - { - Add(new RenderProperty() - { - Method = METHOD_TAB, - Builder = contentBuilder, - Params = new - { - Name = name - } - }); - } - - - /// - /// Creates a visual box - /// - protected virtual void Box(string name, string description, Action contentBuilder) - { - Add(new RenderProperty() - { - Method = METHOD_BOX, - Builder = contentBuilder, - Params = new - { - Name = name, - Description = description - } - }); - } - - - /// - /// Adds a property to the list - /// - void Add(RenderProperty property) - { - if (property.Method == METHOD_TAB && CurrentDepth > 0) - { - throw new Exception("Tabs have to be defined on the root level of the renderer"); - } - if (property.Method == METHOD_BOX && (CurrentDepth > 1 || (CurrentDepth == 1 && ParentProperty?.Method != METHOD_TAB))) - { - throw new Exception("Boxes have to be defined on the root level of the renderer or as direct descendents of a tab"); - } - - if (CurrentDepth == 0) - { - Properties.Add(property); - } - else - { - ParentProperty.Children.Add(property); - } - - if (property.Builder != null) - { - CurrentDepth += 1; - - RenderProperty previousParent = ParentProperty; - - ParentProperty = property; - - property.Builder(); - - CurrentDepth -= 1; - ParentProperty = previousParent; - } - } - } -} diff --git a/zero.Core/Renderer/IRenderer.cs b/zero.Core/Renderer/IRenderer.cs deleted file mode 100644 index 72ea89d0..00000000 --- a/zero.Core/Renderer/IRenderer.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace zero.Core.Renderer -{ - public interface IRenderer : IRenderer { } - - - public interface IRenderer - { - string Alias { get; } - - RendererConfig Build(); - - AbstractGenericRenderer ToGenericRenderer(); - } -} diff --git a/zero.Core/Renderer/IRendererFieldBuilder.cs b/zero.Core/Renderer/IRendererFieldBuilder.cs deleted file mode 100644 index f788a83a..00000000 --- a/zero.Core/Renderer/IRendererFieldBuilder.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; - -namespace zero.Core.Renderer -{ - public interface IRendererFieldBuilder - { - void Text(Action optionsBuilder = null); - - void TextList(Action optionsBuilder = null); - - void Number(Action optionsBuilder = null); - - void Textarea(Action optionsBuilder = null); - - void Rte(); - - void IconPicker(); - - void Toggle(); - - void State(Action optionsBuilder = null); - - void Media(Action optionsBuilder = null); - - void Output(); - - void Nested(IRenderer renderer, Action optionsBuilder = null); - - void Renderer(IRenderer renderer, Action optionsBuilder = null); - - void Custom(string path, Func optionsBuilder = null); - } -} diff --git a/zero.Core/Renderer/IRendererOptions.cs b/zero.Core/Renderer/IRendererOptions.cs deleted file mode 100644 index 26839050..00000000 --- a/zero.Core/Renderer/IRendererOptions.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System.Collections.Generic; - -namespace zero.Core.Renderer -{ - public interface IRendererOptions - { - string ComponentPath { get; set; } - } -} diff --git a/zero.Core/Renderer/Options/AbstractFieldInputOptions.cs b/zero.Core/Renderer/Options/AbstractFieldInputOptions.cs deleted file mode 100644 index 673dd74b..00000000 --- a/zero.Core/Renderer/Options/AbstractFieldInputOptions.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.Collections.Generic; - -namespace zero.Core.Renderer -{ - public abstract class AbstractFieldInputOptions - { - public bool HideLabel { get; set; } - - public List Classes { get; set; } = new List(); - - public string HelpText { get; set; } - } -} diff --git a/zero.Core/Renderer/Options/AbstractFieldOptions.cs b/zero.Core/Renderer/Options/AbstractFieldOptions.cs deleted file mode 100644 index a3017a73..00000000 --- a/zero.Core/Renderer/Options/AbstractFieldOptions.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace zero.Core.Renderer.Options -{ - public class AbstractFieldOptions - { - - } -} diff --git a/zero.Core/Renderer/Options/DefaultRendererOptions.cs b/zero.Core/Renderer/Options/DefaultRendererOptions.cs deleted file mode 100644 index 7db6bb6c..00000000 --- a/zero.Core/Renderer/Options/DefaultRendererOptions.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace zero.Core.Renderer -{ - public class DefaultRendererOptions : AbstractFieldInputOptions - { - - } -} diff --git a/zero.Core/Renderer/Options/MediaOptions.cs b/zero.Core/Renderer/Options/MediaOptions.cs deleted file mode 100644 index 67d6f804..00000000 --- a/zero.Core/Renderer/Options/MediaOptions.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System.Collections.Generic; - -namespace zero.Core.Renderer -{ - public class MediaOptions : AbstractFieldInputOptions - { - public uint Limit { get; set; } = 1; - - public decimal MaxFileSize { get; set; } = 10; - - public MediaOptionsType Type { get; set; } - - public MediaOptionsDisplay Display { get; set; } - - public List FileExtensions { get; set; } = new List(); - - public bool DisallowSelect { get; set; } - - public bool DisallowUpload { get; set; } - } - - - public enum MediaOptionsDisplay - { - Default = 0, - Big = 1, - Grid = 2 - } - - - public enum MediaOptionsType - { - All = 0, - Image = 1, - Video = 2, - Document = 3, - Other = 99 - } -} \ No newline at end of file diff --git a/zero.Core/Renderer/Options/NestedOptions.cs b/zero.Core/Renderer/Options/NestedOptions.cs deleted file mode 100644 index a521e3bf..00000000 --- a/zero.Core/Renderer/Options/NestedOptions.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace zero.Core.Renderer -{ - public class NestedOptions : AbstractFieldInputOptions - { - public int Limit { get; set; } = 10; - - public string AddLabel { get; set; } = "@ui.add"; - } -} diff --git a/zero.Core/Renderer/Options/NumberOptions.cs b/zero.Core/Renderer/Options/NumberOptions.cs deleted file mode 100644 index 1fb727a6..00000000 --- a/zero.Core/Renderer/Options/NumberOptions.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace zero.Core.Renderer -{ - public class NumberOptions : AbstractFieldInputOptions - { - public int MaxLength { get; set; } - - public string Placeholder { get; set; } - } -} diff --git a/zero.Core/Renderer/Options/StateOptions.cs b/zero.Core/Renderer/Options/StateOptions.cs deleted file mode 100644 index eb744733..00000000 --- a/zero.Core/Renderer/Options/StateOptions.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System.Collections.Generic; - -namespace zero.Core.Renderer -{ - public class StateOptions : AbstractFieldInputOptions - { - public class Item - { - public string Label { get; set; } - - public object Value { get; set; } - } - - public List Items { get; set; } = new List(); - - public void Add(string label, object value) - { - Items.Add(new Item() - { - Label = label, - Value = value - }); - } - } -} diff --git a/zero.Core/Renderer/Options/TextListOptions.cs b/zero.Core/Renderer/Options/TextListOptions.cs deleted file mode 100644 index a369751b..00000000 --- a/zero.Core/Renderer/Options/TextListOptions.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace zero.Core.Renderer -{ - public class TextListOptions : TextOptions - { - public int Limit { get; set; } = 10; - - public string AddLabel { get; set; } = "@ui.add"; - } -} \ No newline at end of file diff --git a/zero.Core/Renderer/Options/TextOptions.cs b/zero.Core/Renderer/Options/TextOptions.cs deleted file mode 100644 index 527d8472..00000000 --- a/zero.Core/Renderer/Options/TextOptions.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace zero.Core.Renderer -{ - public class TextOptions : AbstractFieldInputOptions - { - public int MaxLength { get; set; } - - public string Placeholder { get; set; } - } -} diff --git a/zero.Core/Renderer/RenderProperty.cs b/zero.Core/Renderer/RenderProperty.cs deleted file mode 100644 index cceefe02..00000000 --- a/zero.Core/Renderer/RenderProperty.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Newtonsoft.Json; -using System; -using System.Collections.Generic; - -namespace zero.Core.Renderer -{ - public class RenderProperty - { - public string Method { get; set; } - - public dynamic Params { get; set; } - - public Action Builder { get; set; } - - public Action Compile { get; set; } - - public AbstractGenericRenderer NestedRenderer { get; set; } - - public List Children { get; set; } = new List(); - } -} diff --git a/zero.Core/Renderer/RendererCollection.cs b/zero.Core/Renderer/RendererCollection.cs deleted file mode 100644 index 7ad5a894..00000000 --- a/zero.Core/Renderer/RendererCollection.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using zero.Core.Renderer; - -namespace zero.Core.Entities -{ - public class RendererCollection : List - { - public void Add() where TRenderer : IRenderer, new() - { - Add(new TRenderer().ToGenericRenderer()); - } - - - public void Add(TRenderer renderer) where TRenderer : IRenderer, new() - { - Add(renderer.ToGenericRenderer()); - } - } -} diff --git a/zero.Core/Renderer/RendererConfig.cs b/zero.Core/Renderer/RendererConfig.cs deleted file mode 100644 index b277429a..00000000 --- a/zero.Core/Renderer/RendererConfig.cs +++ /dev/null @@ -1,25 +0,0 @@ -using FluentValidation; -using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.Text; - -namespace zero.Core.Renderer -{ - public class RendererConfig - { - public Type Type { get; set; } - - public List Components { get; set; } = new List(); - } - - - public class RendererComponent - { - public string Method { get; set; } - - public dynamic Params { get; set; } - - public List Components { get; set; } = new List(); - } -} diff --git a/zero.Core/Renderer/RendererFieldBuilder.cs b/zero.Core/Renderer/RendererFieldBuilder.cs deleted file mode 100644 index 67788207..00000000 --- a/zero.Core/Renderer/RendererFieldBuilder.cs +++ /dev/null @@ -1,123 +0,0 @@ -using System; - -namespace zero.Core.Renderer -{ - public class RendererFieldBuilder : IRendererFieldBuilder - { - string View = null; - - string ComponentPath = null; - - object Options = null; - - AbstractGenericRenderer CustomRenderer = null; - - - internal class Data - { - public string View = null; - - public string ComponentPath = null; - - public object Options = null; - - public AbstractGenericRenderer Renderer = null; - } - - internal Data Build() - { - return new Data() - { - View = View, - ComponentPath = ComponentPath, - Options = Options, - Renderer = CustomRenderer - }; - } - - - T BuildOptions(Action builder) where T : new() - { - T options = new T(); - builder?.Invoke(options); - return options; - } - - public void Custom(string path, Func optionsBuilder = null) - { - View = "custom"; - ComponentPath = path; - Options = optionsBuilder?.Invoke(); - } - - public void IconPicker() - { - View = "iconPicker"; - } - - public void Media(Action optionsBuilder = null) - { - View = "media"; - Options = BuildOptions(optionsBuilder); - } - - public void Nested(IRenderer renderer, Action optionsBuilder = null) - { - View = "nested"; - CustomRenderer = renderer.ToGenericRenderer(); - Options = BuildOptions(optionsBuilder); - } - - public void Output() - { - View = "output"; - } - - public void Rte() - { - View = "rte"; - } - - public void Renderer(IRenderer renderer, Action optionsBuilder = null) - { - View = "renderer"; - CustomRenderer = renderer.ToGenericRenderer(); - Options = BuildOptions(optionsBuilder); - } - - public void State(Action optionsBuilder = null) - { - View = "state"; - Options = BuildOptions(optionsBuilder); - } - - public void Text(Action optionsBuilder = null) - { - View = "text"; - Options = BuildOptions(optionsBuilder); - } - - public void TextList(Action optionsBuilder = null) - { - View = "textlist"; - Options = BuildOptions(optionsBuilder); - } - - public void Number(Action optionsBuilder = null) - { - View = "number"; - Options = BuildOptions(optionsBuilder); - } - - public void Textarea(Action optionsBuilder = null) - { - View = "textarea"; - Options = BuildOptions(optionsBuilder); - } - - public void Toggle() - { - View = "toggle"; - } - } -} diff --git a/zero.Core/Renderer/RendererFinder.cs b/zero.Core/Renderer/RendererFinder.cs deleted file mode 100644 index 448fd32d..00000000 --- a/zero.Core/Renderer/RendererFinder.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using System.Text; - -namespace zero.Core.Renderer -{ - public class RendererFinder - { - static RendererFinder() - { - - } - - - public static IRenderer FindBy() - { - return null; - } - - - public static AbstractGenericRenderer FindBy(Type type) - { - //Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); - - //List types = assemblies - // .Where(assembly => !assembly.IsDynamic) - // .SelectMany(assembly => assembly.GetExportedTypes()) - // .ToList(); - - List types = Assembly.GetExecutingAssembly().GetExportedTypes().ToList(); - - return null; - } - } -} diff --git a/zero.Web.UI/App/editor/editor-old.vue b/zero.Web.UI/App/editor/editor-old.vue deleted file mode 100644 index e6eba449..00000000 --- a/zero.Web.UI/App/editor/editor-old.vue +++ /dev/null @@ -1,130 +0,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 9fdefccf..cb954f6c 100644 --- a/zero.Web.UI/App/editor/editor.vue +++ b/zero.Web.UI/App/editor/editor.vue @@ -36,7 +36,6 @@