Add hints for configurations that impact performance
This commit is contained in:
parent
8a8b3bd8c8
commit
9626f48628
@ -11,12 +11,20 @@
|
|||||||
id="columns"
|
id="columns"
|
||||||
size="lg"
|
size="lg"
|
||||||
scrollable
|
scrollable
|
||||||
:title="$t('allRecords.columns.title')"
|
|
||||||
:ok-title="$t('general.label.saveAndClose')"
|
:ok-title="$t('general.label.saveAndClose')"
|
||||||
cancel-variant="link"
|
cancel-variant="link"
|
||||||
body-class="p-0"
|
body-class="p-0"
|
||||||
|
title-class="d-flex align-items-center p-0"
|
||||||
@ok="onSave"
|
@ok="onSave"
|
||||||
>
|
>
|
||||||
|
<template #modal-title>
|
||||||
|
{{ $t('allRecords.columns.title') }}
|
||||||
|
<c-hint
|
||||||
|
:tooltip="$t('allRecords.tooltip.configureColumns')"
|
||||||
|
icon-class="text-warning"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
|
||||||
<b-card-body
|
<b-card-body
|
||||||
class="d-flex flex-column mh-100"
|
class="d-flex flex-column mh-100"
|
||||||
>
|
>
|
||||||
|
|||||||
@ -1,5 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
|
<c-hint
|
||||||
|
:tooltip="$t('tooltip.performance')"
|
||||||
|
icon-class="text-warning"
|
||||||
|
class="float-right"
|
||||||
|
/>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
v-for="(rule, index) in rules"
|
v-for="(rule, index) in rules"
|
||||||
:key="index"
|
:key="index"
|
||||||
|
|||||||
@ -1,15 +0,0 @@
|
|||||||
// eslint-disable-next-line
|
|
||||||
import { default as component } from './Hint.vue'
|
|
||||||
|
|
||||||
const props = {
|
|
||||||
text: 'I\'m the hint!',
|
|
||||||
id: '34324',
|
|
||||||
}
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: 'Hint',
|
|
||||||
group: ['Common'],
|
|
||||||
component,
|
|
||||||
props,
|
|
||||||
controls: [],
|
|
||||||
}
|
|
||||||
@ -1,22 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div
|
|
||||||
v-if="text"
|
|
||||||
v-b-popover.hover.right="{ variant: 'dark', content: text }"
|
|
||||||
class="d-flex align-items-center ml-2"
|
|
||||||
>
|
|
||||||
<font-awesome-icon
|
|
||||||
:icon="['far', 'question-circle']"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
text: {
|
|
||||||
type: String,
|
|
||||||
default: '',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
@ -15,10 +15,15 @@
|
|||||||
<template
|
<template
|
||||||
v-if="selectedModule"
|
v-if="selectedModule"
|
||||||
>
|
>
|
||||||
<b-form-group
|
<b-form-group label-class="d-flex align-items-center text-primary p-0">
|
||||||
:label="$t('kind.record.moduleField')"
|
<template #label>
|
||||||
label-class="text-primary"
|
{{ $t('kind.record.moduleField') }}
|
||||||
>
|
<c-hint
|
||||||
|
:tooltip="$t('kind.record.tooltip.moduleField')"
|
||||||
|
icon-class="text-warning"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
|
||||||
<b-form-select
|
<b-form-select
|
||||||
v-model="f.options.labelField"
|
v-model="f.options.labelField"
|
||||||
:options="fieldOptions"
|
:options="fieldOptions"
|
||||||
|
|||||||
@ -5,31 +5,27 @@
|
|||||||
<b-form-group
|
<b-form-group
|
||||||
:label="$t('sanitizers.label')"
|
:label="$t('sanitizers.label')"
|
||||||
label-size="lg"
|
label-size="lg"
|
||||||
label-class="text-primary"
|
label-class="d-flex align-items-center text-primary"
|
||||||
>
|
>
|
||||||
<template #label>
|
<template #label>
|
||||||
<div
|
{{ $t('sanitizers.label') }}
|
||||||
class="d-flex"
|
|
||||||
|
<b-button
|
||||||
|
variant="link"
|
||||||
|
class="p-0 ml-1 mr-auto"
|
||||||
|
@click="field.expressions.sanitizers.push('')"
|
||||||
>
|
>
|
||||||
{{ $t('sanitizers.label') }}
|
{{ $t('sanitizers.add') }}
|
||||||
|
</b-button>
|
||||||
|
|
||||||
<b-button
|
<b-button
|
||||||
variant="link"
|
variant="link"
|
||||||
class="p-0 ml-1 mr-auto"
|
:href="`${documentationURL}#value-sanitizers`"
|
||||||
@click="field.expressions.sanitizers.push('')"
|
target="_blank"
|
||||||
>
|
class="p-0 ml-1"
|
||||||
{{ $t('sanitizers.add') }}
|
>
|
||||||
</b-button>
|
{{ $t('sanitizers.examples') }}
|
||||||
|
</b-button>
|
||||||
<b-button
|
|
||||||
variant="link"
|
|
||||||
:href="`${documentationURL}#value-sanitizers`"
|
|
||||||
target="_blank"
|
|
||||||
class="p-0 ml-1"
|
|
||||||
>
|
|
||||||
{{ $t('sanitizers.examples') }}
|
|
||||||
</b-button>
|
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<field-expressions
|
<field-expressions
|
||||||
@ -46,32 +42,28 @@
|
|||||||
|
|
||||||
<b-form-group
|
<b-form-group
|
||||||
label-size="lg"
|
label-size="lg"
|
||||||
label-class="text-primary"
|
label-class="d-flex text-primary"
|
||||||
class="mt-3"
|
class="mt-3"
|
||||||
>
|
>
|
||||||
<template #label>
|
<template #label>
|
||||||
<div
|
{{ $t('validators.label') }}
|
||||||
class="d-flex"
|
|
||||||
|
<b-button
|
||||||
|
variant="link"
|
||||||
|
class="p-0 ml-1 mr-auto"
|
||||||
|
@click="field.expressions.validators.push({ test: '', error: '' })"
|
||||||
>
|
>
|
||||||
{{ $t('validators.label') }}
|
{{ $t('sanitizers.add') }}
|
||||||
|
</b-button>
|
||||||
|
|
||||||
<b-button
|
<b-button
|
||||||
variant="link"
|
variant="link"
|
||||||
class="p-0 ml-1 mr-auto"
|
:href="`${documentationURL}#value-validators`"
|
||||||
@click="field.expressions.validators.push({ test: '', error: '' })"
|
target="_blank"
|
||||||
>
|
class="p-0 ml-1"
|
||||||
{{ $t('sanitizers.add') }}
|
>
|
||||||
</b-button>
|
{{ $t('sanitizers.examples') }}
|
||||||
|
</b-button>
|
||||||
<b-button
|
|
||||||
variant="link"
|
|
||||||
:href="`${documentationURL}#value-validators`"
|
|
||||||
target="_blank"
|
|
||||||
class="p-0 ml-1"
|
|
||||||
>
|
|
||||||
{{ $t('sanitizers.examples') }}
|
|
||||||
</b-button>
|
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<field-expressions
|
<field-expressions
|
||||||
@ -121,8 +113,19 @@
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div>
|
<b-form-group
|
||||||
<h5>{{ $t('constraints.label') }}</h5>
|
label-size="lg"
|
||||||
|
label-class="d-flex align-items-center text-primary"
|
||||||
|
class="mt-3"
|
||||||
|
>
|
||||||
|
<template #label>
|
||||||
|
{{ $t('constraints.label') }}
|
||||||
|
<c-hint
|
||||||
|
:tooltip="$t('constraints.tooltip.performance')"
|
||||||
|
icon-class="text-warning"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
|
||||||
<b-form-checkbox
|
<b-form-checkbox
|
||||||
v-model="fieldConstraint.exists"
|
v-model="fieldConstraint.exists"
|
||||||
class="mt-3"
|
class="mt-3"
|
||||||
@ -173,7 +176,7 @@
|
|||||||
</i>
|
</i>
|
||||||
</b-col>
|
</b-col>
|
||||||
</b-row>
|
</b-row>
|
||||||
</div>
|
</b-form-group>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -21,9 +21,7 @@
|
|||||||
{{ label }}
|
{{ label }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<hint
|
<c-hint :tooltip="hint" />
|
||||||
:text="hint"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<slot name="tools" />
|
<slot name="tools" />
|
||||||
</div>
|
</div>
|
||||||
@ -46,9 +44,7 @@
|
|||||||
>
|
>
|
||||||
{{ label }}
|
{{ label }}
|
||||||
|
|
||||||
<hint
|
<c-hint :tooltip="hint" />
|
||||||
:text="hint"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</c-input-checkbox>
|
</c-input-checkbox>
|
||||||
|
|
||||||
|
|||||||
@ -21,9 +21,7 @@
|
|||||||
{{ label }}
|
{{ label }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<hint
|
<c-hint :tooltip="hint" />
|
||||||
:text="hint"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<slot name="tools" />
|
<slot name="tools" />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -21,9 +21,7 @@
|
|||||||
{{ label }}
|
{{ label }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<hint
|
<c-hint :tooltip="hint" />
|
||||||
:text="hint"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<slot name="tools" />
|
<slot name="tools" />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -20,9 +20,7 @@
|
|||||||
{{ label }}
|
{{ label }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<hint
|
<c-hint :tooltip="hint" />
|
||||||
:text="hint"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<slot name="tools" />
|
<slot name="tools" />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -21,9 +21,7 @@
|
|||||||
{{ label }}
|
{{ label }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<hint
|
<c-hint :tooltip="hint" />
|
||||||
:text="hint"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<slot name="tools" />
|
<slot name="tools" />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -20,9 +20,7 @@
|
|||||||
{{ label }}
|
{{ label }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<hint
|
<c-hint :tooltip="hint" />
|
||||||
:text="hint"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<slot name="tools" />
|
<slot name="tools" />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -20,9 +20,7 @@
|
|||||||
{{ label }}
|
{{ label }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<hint
|
<c-hint :tooltip="hint" />
|
||||||
:text="hint"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<slot name="tools" />
|
<slot name="tools" />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -20,9 +20,7 @@
|
|||||||
{{ label }}
|
{{ label }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<hint
|
<c-hint :tooltip="hint" />
|
||||||
:text="hint"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<slot name="tools" />
|
<slot name="tools" />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -21,9 +21,7 @@
|
|||||||
{{ label }}
|
{{ label }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<hint
|
<c-hint :tooltip="hint" />
|
||||||
:text="hint"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<slot name="tools" />
|
<slot name="tools" />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -20,9 +20,7 @@
|
|||||||
{{ label }}
|
{{ label }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<hint
|
<c-hint :tooltip="hint" />
|
||||||
:text="hint"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<slot name="tools" />
|
<slot name="tools" />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -20,9 +20,7 @@
|
|||||||
{{ label }}
|
{{ label }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<hint
|
<c-hint :tooltip="hint" />
|
||||||
:text="hint"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<slot name="tools" />
|
<slot name="tools" />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -14,7 +14,6 @@
|
|||||||
import multi from './multi'
|
import multi from './multi'
|
||||||
import errors from '../errors'
|
import errors from '../errors'
|
||||||
import { compose, validator } from '@cortezaproject/corteza-js'
|
import { compose, validator } from '@cortezaproject/corteza-js'
|
||||||
import Hint from 'corteza-webapp-compose/src/components/Common/Hint.vue'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
@ -25,10 +24,6 @@ export default {
|
|||||||
// errors is used in the components that extends base
|
// errors is used in the components that extends base
|
||||||
// eslint-disable-next-line vue/no-unused-components
|
// eslint-disable-next-line vue/no-unused-components
|
||||||
errors,
|
errors,
|
||||||
|
|
||||||
// Hint is used in the components that extends base
|
|
||||||
// eslint-disable-next-line vue/no-unused-components
|
|
||||||
Hint,
|
|
||||||
},
|
},
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
|
|||||||
@ -22,37 +22,32 @@
|
|||||||
:label-cols-xl="options.horizontalFieldLayoutEnabled && '4'"
|
:label-cols-xl="options.horizontalFieldLayoutEnabled && '4'"
|
||||||
:content-cols-md="options.horizontalFieldLayoutEnabled && '7'"
|
:content-cols-md="options.horizontalFieldLayoutEnabled && '7'"
|
||||||
:content-cols-xl="options.horizontalFieldLayoutEnabled && '8'"
|
:content-cols-xl="options.horizontalFieldLayoutEnabled && '8'"
|
||||||
|
label-class="d-flex align-items-center text-primary mb-0"
|
||||||
class="field-container mb-3 px-3"
|
class="field-container mb-3 px-3"
|
||||||
>
|
>
|
||||||
<template #label>
|
<template #label>
|
||||||
|
<span class="d-inline-block mw-100 py-1">
|
||||||
|
{{ field.label || field.name }}
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<c-hint :tooltip="((field.options.hint || {}).view || '')" />
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class="d-flex align-items-center text-primary mb-0"
|
v-if="options.inlineRecordEditEnabled && isFieldEditable(field)"
|
||||||
|
class="inline-actions ml-2"
|
||||||
>
|
>
|
||||||
<span class="d-inline-block mw-100 py-1">
|
<b-button
|
||||||
{{ field.label || field.name }}
|
:title="$t('field.inlineEdit.button.title')"
|
||||||
</span>
|
variant="outline-light"
|
||||||
|
size="sm"
|
||||||
<hint
|
:disabled="editable"
|
||||||
:text="((field.options.hint || {}).view || '')"
|
class="text-secondary border-0"
|
||||||
/>
|
@click="editInlineField(fieldRecord, field)"
|
||||||
|
|
||||||
<div
|
|
||||||
v-if="options.inlineRecordEditEnabled && isFieldEditable(field)"
|
|
||||||
class="inline-actions ml-2"
|
|
||||||
>
|
>
|
||||||
<b-button
|
<font-awesome-icon
|
||||||
:title="$t('field.inlineEdit.button.title')"
|
:icon="['fas', 'pen']"
|
||||||
variant="outline-light"
|
/>
|
||||||
size="sm"
|
</b-button>
|
||||||
:disabled="editable"
|
|
||||||
class="text-secondary border-0"
|
|
||||||
@click="editInlineField(fieldRecord, field)"
|
|
||||||
>
|
|
||||||
<font-awesome-icon
|
|
||||||
:icon="['fas', 'pen']"
|
|
||||||
/>
|
|
||||||
</b-button>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
@ -106,7 +101,6 @@ import axios from 'axios'
|
|||||||
import base from './base'
|
import base from './base'
|
||||||
import FieldViewer from 'corteza-webapp-compose/src/components/ModuleFields/Viewer'
|
import FieldViewer from 'corteza-webapp-compose/src/components/ModuleFields/Viewer'
|
||||||
import BulkEditModal from 'corteza-webapp-compose/src/components/Public/Record/BulkEdit'
|
import BulkEditModal from 'corteza-webapp-compose/src/components/Public/Record/BulkEdit'
|
||||||
import Hint from 'corteza-webapp-compose/src/components/Common/Hint.vue'
|
|
||||||
import users from 'corteza-webapp-compose/src/mixins/users'
|
import users from 'corteza-webapp-compose/src/mixins/users'
|
||||||
import records from 'corteza-webapp-compose/src/mixins/records'
|
import records from 'corteza-webapp-compose/src/mixins/records'
|
||||||
import conditionalFields from 'corteza-webapp-compose/src/mixins/conditionalFields'
|
import conditionalFields from 'corteza-webapp-compose/src/mixins/conditionalFields'
|
||||||
@ -118,7 +112,6 @@ export default {
|
|||||||
|
|
||||||
components: {
|
components: {
|
||||||
FieldViewer,
|
FieldViewer,
|
||||||
Hint,
|
|
||||||
BulkEditModal,
|
BulkEditModal,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@ -127,6 +127,11 @@
|
|||||||
<h5 class="d-flex align-items-center justify-content-between mb-3">
|
<h5 class="d-flex align-items-center justify-content-between mb-3">
|
||||||
{{ $t('record.fieldConditions.label') }}
|
{{ $t('record.fieldConditions.label') }}
|
||||||
|
|
||||||
|
<c-hint
|
||||||
|
:tooltip="$t('record.fieldConditions.tooltip.performance')"
|
||||||
|
icon-class="text-warning"
|
||||||
|
/>
|
||||||
|
|
||||||
<b-button
|
<b-button
|
||||||
variant="link"
|
variant="link"
|
||||||
:href="`${documentationURL}#value-sanitizers`"
|
:href="`${documentationURL}#value-sanitizers`"
|
||||||
|
|||||||
@ -35,19 +35,14 @@
|
|||||||
:label-cols-xl="horizontal && '4'"
|
:label-cols-xl="horizontal && '4'"
|
||||||
:content-cols-md="horizontal && '7'"
|
:content-cols-md="horizontal && '7'"
|
||||||
:content-cols-xl="horizontal && '8'"
|
:content-cols-xl="horizontal && '8'"
|
||||||
|
label-class="d-flex align-items-center text-primary mb-0"
|
||||||
>
|
>
|
||||||
<template #label>
|
<template #label>
|
||||||
<div
|
<span class="d-inline-block text-truncate mw-100 py-1">
|
||||||
class="d-flex align-items-center text-primary mb-0"
|
{{ field.label || field.name }}
|
||||||
>
|
</span>
|
||||||
<span class="d-inline-block text-truncate mw-100 py-1">
|
|
||||||
{{ field.label || field.name }}
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<hint
|
<c-hint :tooltip="((field.options.hint || {}).view || '')" />
|
||||||
:text="((field.options.hint || {}).view || '')"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
@ -82,7 +77,6 @@ import users from 'corteza-webapp-compose/src/mixins/users'
|
|||||||
import records from 'corteza-webapp-compose/src/mixins/records'
|
import records from 'corteza-webapp-compose/src/mixins/records'
|
||||||
import FieldEditor from 'corteza-webapp-compose/src/components/ModuleFields/Editor'
|
import FieldEditor from 'corteza-webapp-compose/src/components/ModuleFields/Editor'
|
||||||
import FieldViewer from 'corteza-webapp-compose/src/components/ModuleFields/Viewer'
|
import FieldViewer from 'corteza-webapp-compose/src/components/ModuleFields/Viewer'
|
||||||
import Hint from 'corteza-webapp-compose/src/components/Common/Hint.vue'
|
|
||||||
import conditionalFields from 'corteza-webapp-compose/src/mixins/conditionalFields'
|
import conditionalFields from 'corteza-webapp-compose/src/mixins/conditionalFields'
|
||||||
import { debounce } from 'lodash'
|
import { debounce } from 'lodash'
|
||||||
|
|
||||||
@ -94,7 +88,6 @@ export default {
|
|||||||
components: {
|
components: {
|
||||||
FieldEditor,
|
FieldEditor,
|
||||||
FieldViewer,
|
FieldViewer,
|
||||||
Hint,
|
|
||||||
},
|
},
|
||||||
|
|
||||||
extends: base,
|
extends: base,
|
||||||
|
|||||||
@ -38,9 +38,16 @@
|
|||||||
md="6"
|
md="6"
|
||||||
>
|
>
|
||||||
<b-form-group
|
<b-form-group
|
||||||
:label="$t('recordList.record.inlineEditorAllow')"
|
label-class="d-flex align-items-center text-primary"
|
||||||
label-class="text-primary"
|
|
||||||
>
|
>
|
||||||
|
<template #label>
|
||||||
|
{{ $t('recordList.record.inlineEditorAllow') }}
|
||||||
|
<c-hint
|
||||||
|
:tooltip="$t('recordList.tooltip.performance.impact')"
|
||||||
|
icon-class="text-warning"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
|
||||||
<c-input-checkbox
|
<c-input-checkbox
|
||||||
v-model="options.editable"
|
v-model="options.editable"
|
||||||
switch
|
switch
|
||||||
@ -56,9 +63,14 @@
|
|||||||
|
|
||||||
<div class="px-3">
|
<div class="px-3">
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<h5 class="mb-1">
|
<h5 class="d-flex align-items-center text-primary mb-1">
|
||||||
{{ $t('module:general.fields') }}
|
{{ $t('module:general.fields') }}
|
||||||
|
<c-hint
|
||||||
|
:tooltip="$t('recordList.tooltip.performance.moduleFields')"
|
||||||
|
icon-class="text-warning"
|
||||||
|
/>
|
||||||
</h5>
|
</h5>
|
||||||
|
|
||||||
<small class="text-muted">
|
<small class="text-muted">
|
||||||
{{ $t('recordList.moduleFieldsFootnote') }}
|
{{ $t('recordList.moduleFieldsFootnote') }}
|
||||||
</small>
|
</small>
|
||||||
@ -71,8 +83,21 @@
|
|||||||
<field-picker
|
<field-picker
|
||||||
:module="recordListModule"
|
:module="recordListModule"
|
||||||
:fields.sync="options.fields"
|
:fields.sync="options.fields"
|
||||||
|
class="mb-2"
|
||||||
style="height: 40vh;"
|
style="height: 40vh;"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<b-form-group
|
||||||
|
:label="$t('recordList.hideConfigureFieldsButton')"
|
||||||
|
label-class="text-primary"
|
||||||
|
>
|
||||||
|
<c-input-checkbox
|
||||||
|
v-model="options.hideConfigureFieldsButton"
|
||||||
|
switch
|
||||||
|
invert
|
||||||
|
:labels="checkboxLabel"
|
||||||
|
/>
|
||||||
|
</b-form-group>
|
||||||
</b-col>
|
</b-col>
|
||||||
</b-row>
|
</b-row>
|
||||||
</div>
|
</div>
|
||||||
@ -463,9 +488,16 @@
|
|||||||
<b-form-group
|
<b-form-group
|
||||||
horizontal
|
horizontal
|
||||||
breakpoint="md"
|
breakpoint="md"
|
||||||
:label="$t('recordList.record.perPage')"
|
label-class="d-flex align-items-center text-primary p-0"
|
||||||
label-class="text-primary"
|
|
||||||
>
|
>
|
||||||
|
<template #label>
|
||||||
|
{{ $t('recordList.record.perPage') }}
|
||||||
|
<c-hint
|
||||||
|
:tooltip="$t('recordList.tooltip.performance.perPage')"
|
||||||
|
icon-class="text-warning"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
|
||||||
<b-form-input
|
<b-form-input
|
||||||
v-model.number="options.perPage"
|
v-model.number="options.perPage"
|
||||||
data-test-id="input-records-per-page"
|
data-test-id="input-records-per-page"
|
||||||
@ -517,9 +549,16 @@
|
|||||||
md="6"
|
md="6"
|
||||||
>
|
>
|
||||||
<b-form-group
|
<b-form-group
|
||||||
:label="$t('recordList.record.fullPageNavigation')"
|
label-class="d-flex align-items-center text-primary p-0"
|
||||||
label-class="text-primary"
|
|
||||||
>
|
>
|
||||||
|
<template #label>
|
||||||
|
{{ $t('recordList.record.fullPageNavigation') }}
|
||||||
|
<c-hint
|
||||||
|
:tooltip="$t('recordList.tooltip.performance.impact')"
|
||||||
|
icon-class="text-warning"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
|
||||||
<c-input-checkbox
|
<c-input-checkbox
|
||||||
v-model="options.fullPageNavigation"
|
v-model="options.fullPageNavigation"
|
||||||
switch
|
switch
|
||||||
@ -693,9 +732,15 @@
|
|||||||
md="6"
|
md="6"
|
||||||
>
|
>
|
||||||
<b-form-group
|
<b-form-group
|
||||||
:label="$t('recordList.enableRecordPageNavigation')"
|
label-class="d-flex align-items-center text-primary mb-0"
|
||||||
label-class="text-primary"
|
|
||||||
>
|
>
|
||||||
|
<template #label>
|
||||||
|
{{ $t('recordList.enableRecordPageNavigation') }}
|
||||||
|
<c-hint
|
||||||
|
:tooltip="$t('recordList.tooltip.performance.impact')"
|
||||||
|
icon-class="text-warning"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
<c-input-checkbox
|
<c-input-checkbox
|
||||||
v-model="options.enableRecordPageNavigation"
|
v-model="options.enableRecordPageNavigation"
|
||||||
switch
|
switch
|
||||||
@ -753,10 +798,6 @@
|
|||||||
<b-form-checkbox v-model="options.hideRecordReminderButton">
|
<b-form-checkbox v-model="options.hideRecordReminderButton">
|
||||||
{{ $t('recordList.hideRecordReminderButton') }}
|
{{ $t('recordList.hideRecordReminderButton') }}
|
||||||
</b-form-checkbox>
|
</b-form-checkbox>
|
||||||
|
|
||||||
<b-form-checkbox v-model="options.hideConfigureFieldsButton">
|
|
||||||
{{ $t('recordList.hideConfigureFieldsButton') }}
|
|
||||||
</b-form-checkbox>
|
|
||||||
</b-form-group>
|
</b-form-group>
|
||||||
</b-col>
|
</b-col>
|
||||||
</b-row>
|
</b-row>
|
||||||
|
|||||||
@ -61,6 +61,7 @@ Vue.component('c-input-processing', components.CInputProcessing)
|
|||||||
Vue.component('c-resource-list', components.CResourceList)
|
Vue.component('c-resource-list', components.CResourceList)
|
||||||
Vue.component('c-input-checkbox', components.CInputCheckbox)
|
Vue.component('c-input-checkbox', components.CInputCheckbox)
|
||||||
Vue.component('c-button-submit', components.CButtonSubmit)
|
Vue.component('c-button-submit', components.CButtonSubmit)
|
||||||
|
Vue.component('c-hint', components.CHint)
|
||||||
|
|
||||||
// Map things
|
// Map things
|
||||||
Vue.component('l-map', LMap)
|
Vue.component('l-map', LMap)
|
||||||
|
|||||||
@ -200,7 +200,7 @@
|
|||||||
</h5>
|
</h5>
|
||||||
<font-awesome-icon
|
<font-awesome-icon
|
||||||
v-if="isEditorBlockReferenced"
|
v-if="isEditorBlockReferenced"
|
||||||
v-b-tooltip.hover.right="{ title: $t('referencedBlock') }"
|
v-b-tooltip.hover.right="{ title: $t('referencedBlock'), container: '#body' }"
|
||||||
:icon="['fas', 'exclamation-circle']"
|
:icon="['fas', 'exclamation-circle']"
|
||||||
class="text-warning"
|
class="text-warning"
|
||||||
/>
|
/>
|
||||||
@ -233,7 +233,7 @@
|
|||||||
</h5>
|
</h5>
|
||||||
<font-awesome-icon
|
<font-awesome-icon
|
||||||
v-if="isEditorBlockReferenced"
|
v-if="isEditorBlockReferenced"
|
||||||
v-b-tooltip.hover.right="{ title: $t('referencedBlock') }"
|
v-b-tooltip.hover.right="{ title: $t('referencedBlock'), container: '#body' }"
|
||||||
:icon="['fas', 'exclamation-circle']"
|
:icon="['fas', 'exclamation-circle']"
|
||||||
class="text-warning"
|
class="text-warning"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@ -477,9 +477,15 @@
|
|||||||
</h5>
|
</h5>
|
||||||
|
|
||||||
<b-form-group
|
<b-form-group
|
||||||
:label="$t('page-layout.condition.label')"
|
label-class="d-flex align-items-center text-primary mb-0"
|
||||||
label-class="text-primary"
|
|
||||||
>
|
>
|
||||||
|
<template #label>
|
||||||
|
{{ $t('page-layout.condition.label') }}
|
||||||
|
<c-hint
|
||||||
|
:tooltip="$t('page-layout.tooltip.performance.condition')"
|
||||||
|
icon-class="text-warning"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
<b-input-group>
|
<b-input-group>
|
||||||
<b-input-group-prepend>
|
<b-input-group-prepend>
|
||||||
<b-button variant="dark">
|
<b-button variant="dark">
|
||||||
|
|||||||
39
lib/vue/src/components/hint/CHint.vue
Normal file
39
lib/vue/src/components/hint/CHint.vue
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<template>
|
||||||
|
<div
|
||||||
|
v-if="tooltip"
|
||||||
|
v-b-tooltip.hover.right="{ variant: tooltipVariant, title: tooltip, container: '#body' }"
|
||||||
|
class="d-flex align-items-center ml-1"
|
||||||
|
>
|
||||||
|
<font-awesome-icon
|
||||||
|
:icon="icon"
|
||||||
|
:class="iconClass"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
icon: {
|
||||||
|
type: Array,
|
||||||
|
default: () => ['far', 'question-circle'],
|
||||||
|
},
|
||||||
|
|
||||||
|
iconClass: {
|
||||||
|
type: String,
|
||||||
|
default: 'text-primary',
|
||||||
|
},
|
||||||
|
|
||||||
|
tooltip: {
|
||||||
|
type: String,
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
|
||||||
|
tooltipVariant: {
|
||||||
|
type: String,
|
||||||
|
default: 'dark',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
1
lib/vue/src/components/hint/index.ts
Normal file
1
lib/vue/src/components/hint/index.ts
Normal file
@ -0,0 +1 @@
|
|||||||
|
export { default as CHint } from './CHint.vue'
|
||||||
@ -89,4 +89,8 @@ export {
|
|||||||
CToolbar,
|
CToolbar,
|
||||||
} from './toolbar'
|
} from './toolbar'
|
||||||
|
|
||||||
|
export {
|
||||||
|
CHint,
|
||||||
|
} from './hint'
|
||||||
|
|
||||||
export { default as C3 } from './c3'
|
export { default as C3 } from './c3'
|
||||||
|
|||||||
@ -23,6 +23,7 @@
|
|||||||
<font-awesome-icon
|
<font-awesome-icon
|
||||||
v-if="showIcon"
|
v-if="showIcon"
|
||||||
:icon="icon"
|
:icon="icon"
|
||||||
|
:class="iconClass"
|
||||||
/>
|
/>
|
||||||
<span
|
<span
|
||||||
v-if="text"
|
v-if="text"
|
||||||
@ -89,6 +90,11 @@ export default {
|
|||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
|
|
||||||
|
iconClass: {
|
||||||
|
type: String,
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
|
||||||
textClass: {
|
textClass: {
|
||||||
type: String,
|
type: String,
|
||||||
default: '',
|
default: '',
|
||||||
|
|||||||
@ -258,13 +258,15 @@ record:
|
|||||||
openInNewTab: Open record in a new tab
|
openInNewTab: Open record in a new tab
|
||||||
openInModal: Open record in a modal
|
openInModal: Open record in a modal
|
||||||
fieldConditions:
|
fieldConditions:
|
||||||
label: Field conditions
|
label: Conditional fields
|
||||||
action: + Add
|
action: + Add
|
||||||
placeholder: When should this field be displayed?
|
placeholder: When should this field be displayed?
|
||||||
selectPlaceholder: Select field
|
selectPlaceholder: Select field
|
||||||
help: Example
|
help: Example
|
||||||
field: Field
|
field: Field
|
||||||
condition: Condition
|
condition: Condition
|
||||||
|
tooltip:
|
||||||
|
performance: Using conditional fields will impact performance
|
||||||
recordList:
|
recordList:
|
||||||
addRecord: Add
|
addRecord: Add
|
||||||
cancelSelection: Cancel
|
cancelSelection: Cancel
|
||||||
@ -290,6 +292,10 @@ recordList:
|
|||||||
label: 'Chart drill down'
|
label: 'Chart drill down'
|
||||||
tooltip:
|
tooltip:
|
||||||
deleteSelected: Delete selected records
|
deleteSelected: Delete selected records
|
||||||
|
performance:
|
||||||
|
impact: Using this feature will impact performance
|
||||||
|
moduleFields: Selecting a large number of fields or displaying record/user fields will impact performance
|
||||||
|
perPage: Displaying a large amount of records per page will impact performance, especially if you are displaying record/user fields
|
||||||
restoreSelected: Restore selected records
|
restoreSelected: Restore selected records
|
||||||
editFields: Editable module fields
|
editFields: Editable module fields
|
||||||
export:
|
export:
|
||||||
@ -372,8 +378,8 @@ recordList:
|
|||||||
hideRecordEditButton: Hide edit record button
|
hideRecordEditButton: Hide edit record button
|
||||||
hideRecordPermissionsButton: Hide record permissions button
|
hideRecordPermissionsButton: Hide record permissions button
|
||||||
hideRecordReminderButton: Hide record reminder button
|
hideRecordReminderButton: Hide record reminder button
|
||||||
hideConfigureFieldsButton: Hide configure columns
|
|
||||||
hideRecordViewButton: Hide view record button
|
hideRecordViewButton: Hide view record button
|
||||||
|
hideConfigureFieldsButton: Users will be able to configure which fields to display
|
||||||
enableRecordPageNavigation: Users will be able to navigate to previous/next record
|
enableRecordPageNavigation: Users will be able to navigate to previous/next record
|
||||||
import:
|
import:
|
||||||
dropzoneFileAdded: '{{name}} was uploaded and is ready for import ({{count}} record)'
|
dropzoneFileAdded: '{{name}} was uploaded and is ready for import ({{count}} record)'
|
||||||
|
|||||||
@ -109,6 +109,8 @@ kind:
|
|||||||
prefilterFootnote: Simplified SQL condition (WHERE ...) syntax is supported. Variables like {{0}}, {{1}}, {{2}} and {{3}} are evaluated (when available)
|
prefilterFootnote: Simplified SQL condition (WHERE ...) syntax is supported. Variables like {{0}}, {{1}}, {{2}} and {{3}} are evaluated (when available)
|
||||||
prefilterLabel: Prefilter records
|
prefilterLabel: Prefilter records
|
||||||
prefilterPlaceholder: field1 = 1 AND field2 = 232
|
prefilterPlaceholder: field1 = 1 AND field2 = 232
|
||||||
|
tooltip:
|
||||||
|
moduleField: Selecting a record field will impact performance
|
||||||
select:
|
select:
|
||||||
allow-duplicates: Allow duplicates
|
allow-duplicates: Allow duplicates
|
||||||
label: Select
|
label: Select
|
||||||
@ -240,7 +242,7 @@ label:
|
|||||||
required: Required
|
required: Required
|
||||||
multi: Multi value
|
multi: Multi value
|
||||||
constraints:
|
constraints:
|
||||||
label: Unique value constraint
|
label: Unique value constraints
|
||||||
description: Use unique value constraints for this field
|
description: Use unique value constraints for this field
|
||||||
ignoreCase: Ignore case
|
ignoreCase: Ignore case
|
||||||
fuzzyMatch: Fuzzy match
|
fuzzyMatch: Fuzzy match
|
||||||
@ -252,3 +254,6 @@ constraints:
|
|||||||
valueModifiers: Value modifiers
|
valueModifiers: Value modifiers
|
||||||
multiValues: Multi-field values
|
multiValues: Multi-field values
|
||||||
totalFieldConstraintCount: The field is used in {{total}} other unique value constraint. See "unique values" tab on module editor.
|
totalFieldConstraintCount: The field is used in {{total}} other unique value constraint. See "unique values" tab on module editor.
|
||||||
|
tooltip:
|
||||||
|
performance: Using unique value constraints will impact performance
|
||||||
|
|
||||||
|
|||||||
@ -9,6 +9,8 @@ allRecords:
|
|||||||
columns:
|
columns:
|
||||||
title: Configure columns
|
title: Configure columns
|
||||||
description: The columns picked won't be saved after you refresh the page
|
description: The columns picked won't be saved after you refresh the page
|
||||||
|
tooltip:
|
||||||
|
configureColumns: Selecting a large number of fields or displaying record/user fields will impact performance
|
||||||
view:
|
view:
|
||||||
title: View record for module "{{name}}"
|
title: View record for module "{{name}}"
|
||||||
block:
|
block:
|
||||||
@ -205,6 +207,8 @@ edit:
|
|||||||
none: None
|
none: None
|
||||||
addNewConstraint: Add new constraint
|
addNewConstraint: Add new constraint
|
||||||
uniqueValueConstraint: "Unique value constraint #{{index}}"
|
uniqueValueConstraint: "Unique value constraint #{{index}}"
|
||||||
|
tooltip:
|
||||||
|
performance: Using unique value constraints will impact performance
|
||||||
|
|
||||||
federated: Federated
|
federated: Federated
|
||||||
forModule:
|
forModule:
|
||||||
|
|||||||
@ -163,7 +163,7 @@ record:
|
|||||||
validationWarnings: Record saved successfully, check warning messages on the form
|
validationWarnings: Record saved successfully, check warning messages on the form
|
||||||
staleDataRefresh: Stale record data, all unsaved changes will be lost. Do you wish to refresh the data now?
|
staleDataRefresh: Stale record data, all unsaved changes will be lost. Do you wish to refresh the data now?
|
||||||
fieldConditions:
|
fieldConditions:
|
||||||
failed: Failed to evaluate record block field conditions
|
failed: Failed to evaluate record block conditional fields
|
||||||
record-list:
|
record-list:
|
||||||
corrupted-filter: Corrupted filter
|
corrupted-filter: Corrupted filter
|
||||||
corrupted-configured-fields: Corrupted configured columns
|
corrupted-configured-fields: Corrupted configured columns
|
||||||
|
|||||||
@ -11,6 +11,8 @@ page-layout:
|
|||||||
title: Use the layout title instead of the record page default. Variables like {{0}}, {{1}}, {{2}} and {{3}} are evaluated (when available)
|
title: Use the layout title instead of the record page default. Variables like {{0}}, {{1}}, {{2}} and {{3}} are evaluated (when available)
|
||||||
configure: Configure layout
|
configure: Configure layout
|
||||||
builder: Open layout in builder
|
builder: Open layout in builder
|
||||||
|
performance:
|
||||||
|
condition: Using visibility conditions will impact performance
|
||||||
condition:
|
condition:
|
||||||
label: Condition
|
label: Condition
|
||||||
placeholder: When will the layout be shown
|
placeholder: When will the layout be shown
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user