From 3dbf007e2a84a86fa54006c8f0ca017d3c24659e Mon Sep 17 00:00:00 2001 From: Tobias Klika Date: Sat, 10 Oct 2020 15:22:51 +0200 Subject: [PATCH] start alias field --- zero.Web.UI/App/components/forms/alias.vue | 135 ++++++++++++++++++ .../App/components/forms/form-header.vue | 23 +++ zero.Web.UI/App/editor/fields/alias.vue | 31 ++++ zero.Web.UI/App/renderers/country.js | 6 + zero.Web.UI/App/resources/utils.js | 11 ++ zero.Web/Controllers/UtilsController.cs | 13 ++ .../Resources/Localization/zero.en-us.json | 1 + 7 files changed, 220 insertions(+) create mode 100644 zero.Web.UI/App/components/forms/alias.vue create mode 100644 zero.Web.UI/App/editor/fields/alias.vue create mode 100644 zero.Web.UI/App/resources/utils.js create mode 100644 zero.Web/Controllers/UtilsController.cs diff --git a/zero.Web.UI/App/components/forms/alias.vue b/zero.Web.UI/App/components/forms/alias.vue new file mode 100644 index 00000000..3d25d5cc --- /dev/null +++ b/zero.Web.UI/App/components/forms/alias.vue @@ -0,0 +1,135 @@ + + + + + + \ No newline at end of file diff --git a/zero.Web.UI/App/components/forms/form-header.vue b/zero.Web.UI/App/components/forms/form-header.vue index e4678f89..d871ba5e 100644 --- a/zero.Web.UI/App/components/forms/form-header.vue +++ b/zero.Web.UI/App/components/forms/form-header.vue @@ -3,6 +3,7 @@ @@ -58,6 +59,10 @@ activeToggle: { type: Boolean, default: false + }, + hasAlias: { + type: Boolean, + default: true } }, @@ -118,6 +123,11 @@ } } + .ui-header-bar-title + { + position: relative; + } + input[type="text"].ui-form-header-title-input { font-family: var(--font); @@ -132,4 +142,17 @@ border: 1px dashed var(--color-text-dim-one); }*/ } + + .ui-form-header-title-alias + { + position: absolute; + right: 10px; + top: 11px; + z-index: 2; + + .ui-alias-lock + { + background: none; + } + } \ No newline at end of file diff --git a/zero.Web.UI/App/editor/fields/alias.vue b/zero.Web.UI/App/editor/fields/alias.vue new file mode 100644 index 00000000..4849bf88 --- /dev/null +++ b/zero.Web.UI/App/editor/fields/alias.vue @@ -0,0 +1,31 @@ + + + + \ No newline at end of file diff --git a/zero.Web.UI/App/renderers/country.js b/zero.Web.UI/App/renderers/country.js index d2332077..180ab20d 100644 --- a/zero.Web.UI/App/renderers/country.js +++ b/zero.Web.UI/App/renderers/country.js @@ -19,6 +19,12 @@ required: true, maxLength: 120 }, + { + field: 'alias', + display: 'alias', + label: '@ui.alias', + required: true + }, { field: 'code', display: 'text', diff --git a/zero.Web.UI/App/resources/utils.js b/zero.Web.UI/App/resources/utils.js new file mode 100644 index 00000000..472e8f4e --- /dev/null +++ b/zero.Web.UI/App/resources/utils.js @@ -0,0 +1,11 @@ +import Axios from 'axios'; + +const base = 'utils/'; + +export default { + + generateAlias(name) + { + return Axios.get(base + 'generateAlias', { params: { name } }).then(res => Promise.resolve(res.data)); + } +}; \ No newline at end of file diff --git a/zero.Web/Controllers/UtilsController.cs b/zero.Web/Controllers/UtilsController.cs new file mode 100644 index 00000000..b1999e3c --- /dev/null +++ b/zero.Web/Controllers/UtilsController.cs @@ -0,0 +1,13 @@ +using Microsoft.AspNetCore.Mvc; +using zero.Core.Api; + +namespace zero.Web.Controllers +{ + public class UtilsController : BackofficeController + { + /// + /// Generate alias from name + /// + public IActionResult GenerateAlias([FromQuery] string name) => Json(Safenames.Alias(name)); + } +} diff --git a/zero.Web/Resources/Localization/zero.en-us.json b/zero.Web/Resources/Localization/zero.en-us.json index 2c3ad997..35a1c04f 100644 --- a/zero.Web/Resources/Localization/zero.en-us.json +++ b/zero.Web/Resources/Localization/zero.en-us.json @@ -22,6 +22,7 @@ "delete": "Delete", "default": "Default", "remove": "Remove", + "alias": "Alias", "pagination": { "xofy": "Page {x} of {y}", "next": "Next page",