diff --git a/zero.Backoffice.UI/app/core/zeroRuntime.ts b/zero.Backoffice.UI/app/core/zeroRuntime.ts index e0af86d7..d8f876e6 100644 --- a/zero.Backoffice.UI/app/core/zeroRuntime.ts +++ b/zero.Backoffice.UI/app/core/zeroRuntime.ts @@ -9,7 +9,7 @@ import registerComponents from '../components/register'; import registerFormComponents from '../forms/register'; import registerEditorComponents from '../editor/register'; import { getRouterConfig, appendRouterGuards } from './router/routerConfig'; -import { countryPlugin, applicationPlugin, settingsPlugin } from '../modules'; +import { countryPlugin, applicationPlugin, settingsPlugin, languagePlugin } from '../modules'; import { ZeroSchema } from 'zero/schemas'; import { ZeroSchemaProp } from './zero'; import * as zeroOptions from '../options'; @@ -85,6 +85,7 @@ export class ZeroRuntime implements Zero countryPlugin.install(pluginOptions); applicationPlugin.install(pluginOptions); settingsPlugin.install(pluginOptions); + languagePlugin.install(pluginOptions); } diff --git a/zero.Backoffice.UI/app/modules/index.ts b/zero.Backoffice.UI/app/modules/index.ts index 9e664321..78545f26 100644 --- a/zero.Backoffice.UI/app/modules/index.ts +++ b/zero.Backoffice.UI/app/modules/index.ts @@ -1,4 +1,5 @@ export * from './countries'; export * from './applications'; -export * from './settings'; \ No newline at end of file +export * from './settings'; +export * from './languages'; \ No newline at end of file diff --git a/zero.Backoffice.UI/app/modules/languages/api.ts b/zero.Backoffice.UI/app/modules/languages/api.ts new file mode 100644 index 00000000..b65365a9 --- /dev/null +++ b/zero.Backoffice.UI/app/modules/languages/api.ts @@ -0,0 +1,16 @@ +import { get, post, put, del, ApiRequestConfig, ApiRequestQuery } from '../../services/request'; + +export default { + + getEmpty: (flavor?: string, config?: ApiRequestConfig) => get("languages/empty", { ...config, params: { flavor } }), + + getById: (id: string, changeVector?: string, config?: ApiRequestConfig) => get('languages/' + id, { ...config, params: { changeVector } }), + + getByQuery: (query: ApiRequestQuery, config?: ApiRequestConfig) => get('languages', { ...config, params: { ...query } }), + + create: (model: any, config?: ApiRequestConfig) => post('languages', model, config), + + update: (model: any, config?: ApiRequestConfig) => put('languages/' + model.id, model, config), + + delete: (id: string, config?: ApiRequestConfig) => del('languages/' + id, config), +}; \ No newline at end of file diff --git a/zero.Backoffice.UI/app/modules/languages/index.ts b/zero.Backoffice.UI/app/modules/languages/index.ts new file mode 100644 index 00000000..bee7ee3a --- /dev/null +++ b/zero.Backoffice.UI/app/modules/languages/index.ts @@ -0,0 +1,11 @@ +import api from './api'; +import editor from './schemas/editor'; +import list from './schemas/list'; +import plugin from './plugin'; + +export { + api as languageApi, + editor as languageSchema, + list as languageListSchema, + plugin as languagePlugin +}; \ No newline at end of file diff --git a/zero.Backoffice.UI/app/modules/languages/language.vue b/zero.Backoffice.UI/app/modules/languages/language.vue new file mode 100644 index 00000000..95acabd3 --- /dev/null +++ b/zero.Backoffice.UI/app/modules/languages/language.vue @@ -0,0 +1,49 @@ + + + + \ No newline at end of file diff --git a/zero.Backoffice.UI/app/modules/languages/languages.vue b/zero.Backoffice.UI/app/modules/languages/languages.vue new file mode 100644 index 00000000..89bfabf2 --- /dev/null +++ b/zero.Backoffice.UI/app/modules/languages/languages.vue @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/zero.Backoffice.UI/app/modules/languages/plugin.ts b/zero.Backoffice.UI/app/modules/languages/plugin.ts new file mode 100644 index 00000000..f7c1fd5e --- /dev/null +++ b/zero.Backoffice.UI/app/modules/languages/plugin.ts @@ -0,0 +1,17 @@ +import { ZeroPlugin, ZeroPluginOptions } from '../../core'; +import { defineAsyncComponent } from 'vue'; + +export default { + name: "zero.languages", + + install(app: ZeroPluginOptions) + { + //app.vue.component('ui-countrypicker', defineAsyncComponent(() => import('./ui-countrypicker.vue'))); + + app.route({ name: 'languages', path: '/settings/languages', component: () => import('./languages.vue') }); + app.route({ name: 'languages-edit', path: '/settings/languages/edit/:id?', component: () => import('./language.vue'), props: true }); + + app.schema('languages', () => import('./schemas/list')); + app.schema('languages:edit', () => import('./schemas/editor')); + } +} as ZeroPlugin; \ No newline at end of file diff --git a/zero.Backoffice.UI/old_app/renderers/editors/language.js b/zero.Backoffice.UI/app/modules/languages/schemas/editor.ts similarity index 72% rename from zero.Backoffice.UI/old_app/renderers/editors/language.js rename to zero.Backoffice.UI/app/modules/languages/schemas/editor.ts index 0646b9ec..a8a1a1d1 100644 --- a/zero.Backoffice.UI/old_app/renderers/editors/language.js +++ b/zero.Backoffice.UI/app/modules/languages/schemas/editor.ts @@ -1,7 +1,7 @@  -import Editor from 'zero/core/editor.ts'; +import Editor from '../../../editor/editor'; -const editor = new Editor('language', '@language.fields.'); +const editor = new Editor('languages:edit', '@language.fields.'); editor.blueprintAlias = 'language'; editor.field('name', { label: '@ui.name' }).text(60).required(); editor.field('code').text(10).required(); diff --git a/zero.Backoffice.UI/old_app/renderers/lists/languages.js b/zero.Backoffice.UI/app/modules/languages/schemas/list.ts similarity index 55% rename from zero.Backoffice.UI/old_app/renderers/lists/languages.js rename to zero.Backoffice.UI/app/modules/languages/schemas/list.ts index 03f469c1..8d611550 100644 --- a/zero.Backoffice.UI/old_app/renderers/lists/languages.js +++ b/zero.Backoffice.UI/app/modules/languages/schemas/list.ts @@ -1,14 +1,14 @@  -import List from 'zero/core/list.ts'; -import LanguagesApi from 'zero/api/languages.js'; +import List from '../../../schemas/list/list'; +import api from '../api'; const list = new List('languages'); const prefix = '@language.fields.'; list.templateLabel = x => prefix + x; -list.link = zero.alias.settings.languages + '-edit'; +list.link = 'languages-edit'; -list.onFetch(filter => LanguagesApi.getByQuery(filter)); +list.onFetch(filter => api.getByQuery(filter)); list.column('name').name(); list.column('code').text(); diff --git a/zero.Backoffice.UI/app/modules/languages/ui-countrypicker.vue b/zero.Backoffice.UI/app/modules/languages/ui-countrypicker.vue new file mode 100644 index 00000000..34356f88 --- /dev/null +++ b/zero.Backoffice.UI/app/modules/languages/ui-countrypicker.vue @@ -0,0 +1,61 @@ + + + + \ No newline at end of file