mirror of
https://github.com/YunoHost/yunohost-admin.git
synced 2024-09-03 20:06:15 +02:00
configpanels: do not display "save" button when non editable
This commit is contained in:
parent
69d1d7ec1e
commit
a216d59098
2 changed files with 22 additions and 4 deletions
|
@ -2,6 +2,7 @@
|
||||||
<abstract-form
|
<abstract-form
|
||||||
v-bind="{ id: panel.id + '-form', validation, serverError: panel.serverError }"
|
v-bind="{ id: panel.id + '-form', validation, serverError: panel.serverError }"
|
||||||
@submit.prevent.stop="onApply"
|
@submit.prevent.stop="onApply"
|
||||||
|
:no-footer="!panel.hasApplyButton"
|
||||||
>
|
>
|
||||||
<slot name="tab-top" />
|
<slot name="tab-top" />
|
||||||
|
|
||||||
|
@ -13,8 +14,10 @@
|
||||||
|
|
||||||
<template v-for="section in panel.sections">
|
<template v-for="section in panel.sections">
|
||||||
<component
|
<component
|
||||||
v-if="section.visible" :is="section.name ? 'section' : 'div'"
|
v-if="section.visible"
|
||||||
:key="section.id" class="mb-5"
|
:is="section.name ? 'section' : 'div'"
|
||||||
|
:key="section.id"
|
||||||
|
class="panel-section"
|
||||||
>
|
>
|
||||||
<b-card-title v-if="section.name" title-tag="h3">
|
<b-card-title v-if="section.name" title-tag="h3">
|
||||||
{{ section.name }} <small v-if="section.help">{{ section.help }}</small>
|
{{ section.name }} <small v-if="section.help">{{ section.help }}</small>
|
||||||
|
@ -86,6 +89,9 @@ export default {
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.card-title {
|
.card-title {
|
||||||
margin-bottom: 1em;
|
margin-bottom: 1em;
|
||||||
border-bottom: solid 1px #aaa;
|
border-bottom: solid $border-width $gray-500;
|
||||||
|
}
|
||||||
|
.panel-section:not(:last-child) {
|
||||||
|
margin-bottom: 3rem;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -10,6 +10,14 @@ import {
|
||||||
} from '@/helpers/commons'
|
} from '@/helpers/commons'
|
||||||
|
|
||||||
|
|
||||||
|
const NO_VALUE_FIELDS = [
|
||||||
|
'ReadOnlyField',
|
||||||
|
'ReadOnlyAlertItem',
|
||||||
|
'MarkdownItem',
|
||||||
|
'DisplayTextItem',
|
||||||
|
'ButtonItem'
|
||||||
|
]
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tries to find a translation corresponding to the user's locale/fallback locale in a
|
* Tries to find a translation corresponding to the user's locale/fallback locale in a
|
||||||
* Yunohost argument or simply return the string if it's not an object literal.
|
* Yunohost argument or simply return the string if it's not an object literal.
|
||||||
|
@ -359,7 +367,7 @@ export function formatYunoHostConfigPanels (data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const { id: panelId, name, help, sections } of data.panels) {
|
for (const { id: panelId, name, help, sections } of data.panels) {
|
||||||
const panel = { id: panelId, sections: [], serverError: '' }
|
const panel = { id: panelId, sections: [], serverError: '', hasApplyButton: false }
|
||||||
result.forms[panelId] = {}
|
result.forms[panelId] = {}
|
||||||
result.validations[panelId] = {}
|
result.validations[panelId] = {}
|
||||||
result.errors[panelId] = {}
|
result.errors[panelId] = {}
|
||||||
|
@ -391,6 +399,10 @@ export function formatYunoHostConfigPanels (data) {
|
||||||
Object.assign(result.errors[panelId], errors)
|
Object.assign(result.errors[panelId], errors)
|
||||||
section.fields = fields
|
section.fields = fields
|
||||||
panel.sections.push(section)
|
panel.sections.push(section)
|
||||||
|
|
||||||
|
if (!section.isActionSection && Object.values(fields).some((field) => !NO_VALUE_FIELDS.includes(field.is))) {
|
||||||
|
panel.hasApplyButton = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
result.panels.push(panel)
|
result.panels.push(panel)
|
||||||
|
|
Loading…
Add table
Reference in a new issue