resources => api; add <ui-icon/>

This commit is contained in:
2020-11-20 15:17:41 +01:00
parent 2b67a2b5a9
commit 5d9c828ddf
79 changed files with 116 additions and 119 deletions
@@ -16,7 +16,7 @@
<script>
import MediaApi from 'zero/resources/media.js';
import MediaApi from 'zero/api/media.js';
export default {
name: 'uiSelectButton',
+1 -1
View File
@@ -10,7 +10,7 @@
<script>
import { map as _map } from 'underscore';
import UtilsApi from 'zero/resources/utils.js';
import UtilsApi from 'zero/api/utils.js';
export default {
name: 'uiAlias',
+5 -1
View File
@@ -86,7 +86,11 @@
closeLabel: '@unsavedchanges.close'
}).then(
() => next(false),
() => next()
() =>
{
this.dirty = false;
next();
}
);
}
else
+6 -39
View File
@@ -1,5 +1,5 @@
<template>
<div class="ui-property" :class="{'is-vertical': vertical, 'is-text': isText, 'hide-label': hideLabel, 'is-locked': locked }">
<div class="ui-property" :class="{'is-vertical': vertical, 'is-text': isText, 'hide-label': hideLabel, 'is-disabled': disabled }">
<label v-if="label && !hideLabel" class="ui-property-label" :for="field">
<span v-localize="label"></span>
<strong class="ui-property-required" v-if="required">*</strong>
@@ -11,8 +11,6 @@
<slot></slot>
<ui-error v-if="field" :field="field" />
</div>
<button type="button" class="ui-property-lock" v-if="locked"></button>
</div>
</template>
@@ -28,17 +26,10 @@
description: String,
required: Boolean,
vertical: Boolean,
isText: Boolean
},
data: () => ({
locked: false
}),
methods: {
setLocked(isLocked)
{
this.locked = isLocked;
isText: Boolean,
disabled: {
type: Boolean,
default: false
}
}
}
@@ -54,7 +45,7 @@
margin: 0 -32px 0;
padding: 0 32px 0;
&.is-disabled
&.is-disabled .ui-property-content
{
pointer-events: none;
}
@@ -196,28 +187,4 @@
margin-left: 50px;
}
}
/*.ui-property.is-locked
{
}*/
/*.ui-property-lock
{
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
z-index: 3;
background: transparent;
width: 100%;
cursor: default;
border-right: 3px solid var(--color-primary);
&:after
{
content: ''
}
}*/
</style>
@@ -23,7 +23,7 @@
<script>
import ModulesApi from 'zero/resources/modules.js';
import ModulesApi from 'zero/api/modules.js';
import UiEditor from 'zero/editor/editor.vue';
export default {
@@ -9,7 +9,7 @@
<script>
import ModulesApi from 'zero/resources/modules.js';
import ModulesApi from 'zero/api/modules.js';
import EditModuleOverlay from './edit-module.vue';
import ModulePreview from './module-preview.vue';
import ModuleSelect from './module-select.vue';
@@ -9,7 +9,7 @@
</template>
<script>
import MediaApi from 'zero/resources/media.js'
import MediaApi from 'zero/api/media.js'
export default {
@@ -2,13 +2,13 @@
<!-- // TODO remove surrounding div as soon as we can have multiple roots (vue 3) -->
<div @click="onClickShim">
<button v-if="!confirming" :disabled="disabled" type="button" @click="onClick" class="ui-dropdown-button" :class="{ 'has-icon': icon, 'is-active': selected, 'is-multiline': multiline }">
<i v-if="icon" class="ui-dropdown-button-icon" :class="icon"></i>
<ui-icon v-if="icon" :icon="icon" class="ui-dropdown-button-icon" />
{{label | localize}}
<i v-if="selected" class="ui-dropdown-button-selected fth-check"></i>
<ui-icon v-if="selected" icon="check" class="ui-dropdown-button-selected" />
<i v-if="loading" class="ui-dropdown-button-progress"></i>
</button>
<div v-if="confirming" class="ui-dropdown-button-confirmation">
<i v-if="icon" class="ui-dropdown-button-icon" :class="icon"></i>
<ui-icon v-if="icon" :icon="icon" class="ui-dropdown-button-icon" />
{{label | localize}}
<ui-button type="small primary" label="OK" @click="onClick($event, true)" />
<ui-button type="small light" label="Cancel" @click="confirming=false" />
+1 -1
View File
@@ -18,7 +18,7 @@
<script>
import UserRolesApi from 'zero/resources/userRoles.js';
import UserRolesApi from 'zero/api/userRoles.js';
import { filter as _filter } from 'underscore';
export default {
@@ -6,7 +6,7 @@
<script>
import CountriesApi from 'zero/resources/countries.js'
import CountriesApi from 'zero/api/countries.js'
import { extend as _extend } from 'underscore'
export default {
@@ -6,7 +6,7 @@
<script>
import MailTemplatesApi from 'zero/resources/mailTemplates.js'
import MailTemplatesApi from 'zero/api/mailTemplates.js'
import { extend as _extend } from 'underscore'
export default {
@@ -25,7 +25,7 @@
<script>
import MediaApi from 'zero/resources/media.js'
import MediaApi from 'zero/api/media.js'
import PickMediaOverlay from './overlay.vue';
import Overlay from 'zero/helpers/overlay.js';
import { each as _each, extend as _extend, debounce as _debounce, isArray as _isArray } from 'underscore';
@@ -38,8 +38,8 @@
<script>
import MediaApi from 'zero/resources/media.js'
import MediaFolderApi from 'zero/resources/media-folder.js';
import MediaApi from 'zero/api/media.js'
import MediaFolderApi from 'zero/api/media-folder.js';
import Overlay from 'zero/helpers/overlay.js'
import AddFolderOverlay from 'zero/pages/media/overlays/folder.vue'
import UploadStatusOverlay from 'zero/pages/media/overlays/upload-status.vue'
@@ -15,7 +15,7 @@
<script>
import PageTreeApi from 'zero/resources/page-tree.js'
import PageTreeApi from 'zero/api/page-tree.js'
export default {
@@ -13,8 +13,8 @@
<script>
import PageTreeApi from 'zero/resources/page-tree.js'
import PagesApi from 'zero/resources/pages.js'
import PageTreeApi from 'zero/api/page-tree.js'
import PagesApi from 'zero/api/pages.js'
import PageOverlay from './overlay.vue';
import Overlay from 'zero/helpers/overlay.js';
import { extend as _extend, isArray as _isArray, isEmpty as _isEmpty, clone as _clone } from 'underscore';
@@ -6,7 +6,7 @@
<script>
import UsersApi from 'zero/resources/users.js'
import UsersApi from 'zero/api/users.js'
import { extend as _extend } from 'underscore'
export default {
+1 -1
View File
@@ -18,7 +18,7 @@
<script>
import dayjs from 'dayjs';
import Strings from 'zero/helpers/strings.js';
import MediaApi from 'zero/resources/media.js';
import MediaApi from 'zero/api/media.js';
export default {
name: 'uiRevisions',
@@ -1,5 +1,5 @@
import { warn } from 'zero/helpers/debug.js';
import MediaApi from 'zero/resources/media.js';
import MediaApi from 'zero/api/media.js';
export default function (el, binding)
{
+1 -1
View File
@@ -1,5 +1,5 @@
<template>
<ui-property v-if="!isHidden" :field="config.path" :label="label" :hide-label="config.options.hideLabel" :description="description" :required="isRequired" :class="{'is-disabled': isDisabled }">
<ui-property v-if="!isHidden" :field="config.path" :label="label" :hide-label="config.options.hideLabel" :description="description" :required="isRequired" :disabled="isDisabled" :class="{'is-disabled': isDisabled }">
<component :is="config.component" v-bind="config.componentOptions" :value="model" :entity="value" @input="onChange" :disabled="isDisabled" />
<p v-if="config.options.helpText" class="ui-property-help" v-localize="config.options.helpText"></p>
</ui-property>
@@ -8,7 +8,7 @@
<script>
import LanguagesApi from 'zero/resources/languages.js';
import LanguagesApi from 'zero/api/languages.js';
export default {
props: {
+1 -1
View File
@@ -9,7 +9,7 @@
<script>
import LanguagesApi from 'zero/resources/languages.js';
import LanguagesApi from 'zero/api/languages.js';
export default {
props: {
+7 -7
View File
@@ -18,9 +18,9 @@
<nav class="app-nav-inner">
<template v-for="section in sections">
<router-link :to="section.url" class="app-nav-item" :alias="section.alias" :class="{ 'has-children': hasChildren(section) }">
<i class="app-nav-item-icon" :class="section.icon"></i>
<ui-icon :icon="section.icon" class="app-nav-item-icon" />
{{section.name | localize}}
<i v-if="hasChildren(section)" class="app-nav-item-arrow fth-chevron-down"></i>
<ui-icon v-if="hasChildren(section)" icon="chevron-down" class="app-nav-item-arrow" />
</router-link>
<transition name="app-nav-children">
<div class="app-nav-children" v-if="hasChildren(section) && $route.path.indexOf('/' + section.alias) === 0">
@@ -44,12 +44,12 @@
<img class="-image" v-if="userAvatar" :src="userAvatar" :alt="user.name" />
<span class="-image" v-if="!userAvatar"><i class="fth-user"></i></span>
<p class="-text"><strong>{{user.name}}</strong></p>
<i class="-arrow fth-chevron-down"></i>
<ui-icon icon="chevron-down" class="-arrow" />
</button>
</template>
<ui-dropdown-button label="Edit" icon="fth-edit-2" @click="editUser" />
<ui-dropdown-button label="Change password" icon="fth-lock" @click="changePassword" />
<ui-dropdown-button label="Logout" icon="fth-log-out" @click="logout" />
<ui-dropdown-button label="Edit" icon="edit-2" @click="editUser" />
<ui-dropdown-button label="Change password" icon="lock" @click="changePassword" />
<ui-dropdown-button label="Logout" icon="log-out" @click="logout" />
</ui-dropdown>
</footer>
@@ -60,7 +60,7 @@
<script>
import { map as _map, find as _find } from 'underscore';
import AuthApi from 'zero/helpers/auth.js'
import MediaApi from 'zero/resources/media.js'
import MediaApi from 'zero/api/media.js'
import IconPicker from 'zero/components/pickers/iconPicker/iconpicker.vue';
export default {
+1 -1
View File
@@ -32,7 +32,7 @@
<script>
import MediaApi from 'zero/resources/media.js';
import MediaApi from 'zero/api/media.js';
import UiEditor from 'zero/editor/editor.vue';
export default {
@@ -17,7 +17,7 @@
<script>
import MediaFolderApi from 'zero/resources/media-folder.js';
import MediaFolderApi from 'zero/api/media-folder.js';
import Overlay from 'zero/helpers/overlay.js';
export default {
@@ -17,8 +17,8 @@
<script>
import MediaFolderApi from 'zero/resources/media-folder.js';
import MediaApi from 'zero/resources/media.js';
import MediaFolderApi from 'zero/api/media-folder.js';
import MediaApi from 'zero/api/media.js';
import Notification from 'zero/helpers/notification.js'
export default {
@@ -28,7 +28,7 @@
<script>
import MediaApi from 'zero/resources/media.js'
import MediaApi from 'zero/api/media.js'
import Strings from 'zero/helpers/strings.js';
export default {
+2 -2
View File
@@ -51,8 +51,8 @@
<script>
import MediaApi from 'zero/resources/media.js';
import MediaFolderApi from 'zero/resources/media-folder.js';
import MediaApi from 'zero/api/media.js';
import MediaFolderApi from 'zero/api/media-folder.js';
import Overlay from 'zero/helpers/overlay.js';
import FolderOverlay from './overlays/folder.vue';
import MoveOverlay from './overlays/move.vue';
+1 -1
View File
@@ -33,7 +33,7 @@
<script>
import MediaApi from 'zero/resources/media.js';
import MediaApi from 'zero/api/media.js';
export default {
@@ -22,8 +22,8 @@
<script>
import PageTreeApi from 'zero/resources/page-tree.js'
import PagesApi from 'zero/resources/pages.js';
import PageTreeApi from 'zero/api/page-tree.js'
import PagesApi from 'zero/api/pages.js';
import Notification from 'zero/helpers/notification.js'
export default {
@@ -22,7 +22,7 @@
<script>
import PagesApi from 'zero/resources/pages.js';
import PagesApi from 'zero/api/pages.js';
import Overlay from 'zero/helpers/overlay.js';
export default {
@@ -17,8 +17,8 @@
<script>
import PageTreeApi from 'zero/resources/page-tree.js'
import PagesApi from 'zero/resources/pages.js';
import PageTreeApi from 'zero/api/page-tree.js'
import PagesApi from 'zero/api/pages.js';
import Notification from 'zero/helpers/notification.js'
export default {
@@ -22,8 +22,8 @@
<script>
import PageTreeApi from 'zero/resources/page-tree.js'
import PagesApi from 'zero/resources/pages.js';
import PageTreeApi from 'zero/api/page-tree.js'
import PagesApi from 'zero/api/pages.js';
import Arrays from 'zero/helpers/arrays.js'
import Notification from 'zero/helpers/notification.js'
+1 -1
View File
@@ -38,7 +38,7 @@
<script>
import PagesApi from 'zero/resources/pages.js';
import PagesApi from 'zero/api/pages.js';
export default {
props: {
+1 -1
View File
@@ -28,7 +28,7 @@
<script>
import UiEditor from 'zero/editor/editor.vue';
import PagesApi from 'zero/resources/pages.js';
import PagesApi from 'zero/api/pages.js';
import EventHub from 'zero/helpers/eventhub.js';
import InfoTab from './page-info.vue';
import Overlay from 'zero/helpers/overlay.js'
+2 -2
View File
@@ -33,8 +33,8 @@
<script>
import PageTreeApi from 'zero/resources/page-tree.js'
import PagesApi from 'zero/resources/pages.js'
import PageTreeApi from 'zero/api/page-tree.js'
import PagesApi from 'zero/api/pages.js'
import Overlay from 'zero/helpers/overlay.js'
import CreateOverlay from './overlays/create.vue'
import SortOverlay from './overlays/sort.vue'
@@ -35,8 +35,8 @@
<script>
import RecycleBinApi from 'zero/resources/recycle-bin.js'
import PagesApi from 'zero/resources/pages.js';
import RecycleBinApi from 'zero/api/recycle-bin.js'
import PagesApi from 'zero/api/pages.js';
export default {
@@ -14,7 +14,7 @@
<script>
const GROUP = "pages";
import RecycleBinApi from 'zero/resources/recycle-bin.js'
import RecycleBinApi from 'zero/api/recycle-bin.js'
import Overlay from 'zero/helpers/overlay.js'
import RecycleBinActionsOverlay from './recyclebin-actions.vue'
import EventHub from 'zero/helpers/eventhub.js'
+1 -1
View File
@@ -25,7 +25,7 @@
<script>
import AuthApi from 'zero/helpers/auth.js'
import UsersApi from 'zero/resources/users.js'
import UsersApi from 'zero/api/users.js'
export default {
@@ -8,7 +8,7 @@
<script>
import ApplicationsApi from 'zero/resources/applications.js';
import ApplicationsApi from 'zero/api/applications.js';
export default {
props: {
@@ -7,7 +7,7 @@
<script>
import ApplicationsApi from 'zero/resources/applications.js';
import ApplicationsApi from 'zero/api/applications.js';
import UiEditor from 'zero/editor/editor.vue';
export default {
@@ -10,7 +10,7 @@
<script>
import ApplicationsItems from 'zero/pages/settings/applications-items.vue'
import ApplicationsApi from 'zero/resources/applications.js'
import ApplicationsApi from 'zero/api/applications.js'
export default {
data: () => ({
+1 -1
View File
@@ -7,7 +7,7 @@
<script>
import CountriesApi from 'zero/resources/countries.js';
import CountriesApi from 'zero/api/countries.js';
import UiEditor from 'zero/editor/editor.vue';
export default {
+1 -1
View File
@@ -7,7 +7,7 @@
<script>
import LanguagesApi from 'zero/resources/languages.js';
import LanguagesApi from 'zero/api/languages.js';
import UiEditor from 'zero/editor/editor.vue';
export default {
+1 -1
View File
@@ -7,7 +7,7 @@
<script>
import MailTemplatesApi from 'zero/resources/mailTemplates.js';
import MailTemplatesApi from 'zero/api/mailTemplates.js';
import UiEditor from 'zero/editor/editor.vue';
export default {
+1 -1
View File
@@ -8,7 +8,7 @@
<script>
import { filter as _filter } from 'underscore';
import UserRolesApi from 'zero/resources/userRoles.js';
import UserRolesApi from 'zero/api/userRoles.js';
import UiEditor from 'zero/editor/editor.vue';
export default {
+2 -3
View File
@@ -26,7 +26,7 @@
<script>
import ApplicationsItems from 'zero/pages/settings/applications-items.vue'
import SettingsApi from 'zero/resources/settings.js';
import SettingsApi from 'zero/api/settings.js';
export default {
name: 'app-settings',
@@ -60,13 +60,12 @@
{
min-height: 100%;
position: relative;
padding: 45px var(--padding);
padding: 40px var(--padding);
width: 100%;
max-width: 2000px;
display: grid;
gap: 80px 40px;
grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
padding-left: 80px;
}
.settings-group-items
@@ -26,7 +26,7 @@
<script>
import TranslationsApi from 'zero/resources/translations.js';
import TranslationsApi from 'zero/api/translations.js';
import Overlay from 'zero/helpers/overlay.js';
import Editor from 'zero/editor/editor.vue';
+1 -1
View File
@@ -27,7 +27,7 @@
<script>
import { filter as _filter } from 'underscore';
import UsersApi from 'zero/resources/users.js';
import UsersApi from 'zero/api/users.js';
import UiEditor from 'zero/editor/editor.vue';
export default {
+1 -1
View File
@@ -26,7 +26,7 @@
<script>
import UserRolesApi from 'zero/resources/userRoles.js';
import UserRolesApi from 'zero/api/userRoles.js';
import { filter as _filter, map as _map } from 'underscore';
export default {
+1 -1
View File
@@ -23,7 +23,7 @@
import SpaceEditor from 'zero/pages/spaces/views/editor.vue';
import SpaceList from 'zero/pages/spaces/views/list.vue';
import SpaceCustom from 'zero/pages/spaces/views/custom.vue';
import SpacesApi from 'zero/resources/spaces.js';
import SpacesApi from 'zero/api/spaces.js';
export default {
data: () => ({
@@ -11,7 +11,7 @@
<script>
import SpacesApi from 'zero/resources/spaces.js';
import SpacesApi from 'zero/api/spaces.js';
export default {
props: [ 'alias' ],
@@ -7,7 +7,7 @@
<script>
import SpacesApi from 'zero/resources/spaces.js';
import SpacesApi from 'zero/api/spaces.js';
import UiEditor from 'zero/editor/editor.vue';
import Overlay from 'zero/helpers/overlay.js';
+1 -1
View File
@@ -12,7 +12,7 @@
<script>
import SpacesApi from 'zero/resources/spaces.js';
import SpacesApi from 'zero/api/spaces.js';
import SpacesDefaultList from 'zero/renderers/lists/spaces.default.js';
export default {
+1 -1
View File
@@ -1,6 +1,6 @@
import List from 'zero/core/list.ts';
import CountriesApi from 'zero/resources/countries.js';
import CountriesApi from 'zero/api/countries.js';
const list = new List('countries');
const prefix = '@country.fields.';
+1 -1
View File
@@ -1,6 +1,6 @@
import List from 'zero/core/list.ts';
import LanguagesApi from 'zero/resources/languages.js';
import LanguagesApi from 'zero/api/languages.js';
const list = new List('languages');
const prefix = '@language.fields.';
+1 -1
View File
@@ -1,6 +1,6 @@
import List from 'zero/core/list.ts';
import MailTemplatesApi from 'zero/resources/mailTemplates.js';
import MailTemplatesApi from 'zero/api/mailTemplates.js';
const list = new List('mailTemplates');
@@ -1,6 +1,6 @@
import List from 'zero/core/list.ts';
import TranslationsApi from 'zero/resources/translations.js';
import TranslationsApi from 'zero/api/translations.js';
const list = new List('translations');
const prefix = '@translation.fields.';
+1 -1
View File
@@ -1,6 +1,6 @@
import List from 'zero/core/list.ts';
import UsersApi from 'zero/resources/users.js';
import UsersApi from 'zero/api/users.js';
const list = new List('users');
const prefix = '@user.fields.';
@@ -21,5 +21,5 @@ export default {
restore: async (id, includeDescendants) => await post(base + 'restore', { id, includeDescendants }),
delete: async (id, moveToRecycleBin) => await del(base + 'delete', { id, moveToRecycleBin }),
delete: async (id, moveToRecycleBin) => await del(base + 'delete', { params: { id, moveToRecycleBin } }),
};
+3 -1
View File
@@ -57,6 +57,7 @@ import uiLoading from './loading.vue';
import uiPagination from './pagination.vue';
import uiPermissions from './permissions.vue';
import uiRevisions from './revisions.vue';
import uiIcon from './icon.vue';
export default {
uiAddButton,
@@ -117,5 +118,6 @@ export default {
uiLoading,
uiPagination,
uiPermissions,
uiRevisions
uiRevisions,
uiIcon
};
+25
View File
@@ -0,0 +1,25 @@
<template>
<i class="ui-icon" :class="iconClass"></i>
</template>
<script>
export default {
name: 'uiIcon',
props: {
icon: {
type: String,
default: null,
required: true
}
},
computed: {
iconClass()
{
return this.icon.indexOf('fth-') === 0 ? this.icon : ('fth-' + this.icon);
}
}
}
</script>
+1 -1
View File
@@ -1,5 +1,5 @@
import MediaApi from 'zero/resources/media.js';
import MediaApi from 'zero/api/media.js';
import Strings from 'zero/helpers/strings.js';
import Localization from 'zero/helpers/localization.js';
+1 -1
View File
@@ -1,5 +1,5 @@
import MediaApi from 'zero/resources/media.js';
import MediaApi from 'zero/api/media.js';
import Strings from 'zero/helpers/strings.js';
import Localization from 'zero/helpers/localization.js';