Removed extraneous container element

This commit is contained in:
2020-04-13 23:03:12 +00:00
parent 8dfd5e213a
commit b25af47cdd
11 changed files with 879 additions and 1114 deletions

View File

@@ -51,89 +51,6 @@ CURRENT TODOs
todo: Translate all ayatypes not translated
"data": [
{
"id": 0,
"name": "NoType"
},
{
"id": 1,
"name": "Général"
},
{
"id": 2,
"name": "Widget"
},
{
"id": 3,
"name": "Utilisateur"
},
{
"id": 4,
"name": "État du serveur"
},
{
"id": 5,
"name": "License"
},
{
"id": 6,
"name": "LogFile"
},
{
"id": 7,
"name": "PickListTemplate"
},
{
"id": 8,
"name": "DEPRECATED_REUSELATER_8"
},
{
"id": 9,
"name": "ServerJob"
},
{
"id": 10,
"name": "AyaNova7Import"
},
{
"id": 11,
"name": "TrialSeeder"
},
{
"id": 12,
"name": "Metrics"
},
{
"id": 13,
"name": "Traduction"
},
{
"id": 14,
"name": "UserOptions"
},
{
"id": 15,
"name": "DEPRECATED_REUSELATER_15"
},
{
"id": 16,
"name": "DEPRECATED_REUSELATER_16"
},
{
"id": 17,
"name": "FileAttachment"
},
{
"id": 18,
"name": "Affichage de la liste des données"
},
{
"id": 19,
"name": "FormCustom"
}
todo: do I have too many containers in my UI, like some unnecessary ones in the views where the parent already has a container? todo: do I have too many containers in my UI, like some unnecessary ones in the views where the parent already has a container?
todo: ADDITIONAL EDIT FORM BUTTONS FUNCTIONALITY STUBBED OUT OR MADE INTO TODO'S todo: ADDITIONAL EDIT FORM BUTTONS FUNCTIONALITY STUBBED OUT OR MADE INTO TODO'S

View File

@@ -1,33 +1,32 @@
<template> <template>
<v-container fluid> <v-row v-if="formState.ready">
<v-row v-if="formState.ready"> <v-col>
<v-col> <v-form ref="form">
<v-form ref="form"> <!-- Prevent implicit submission of the form on enter key, this is not necessary on a form with a text area which is why I never noticed it with the other forms -->
<!-- Prevent implicit submission of the form on enter key, this is not necessary on a form with a text area which is why I never noticed it with the other forms --> <button
<button type="submit"
type="submit" disabled
disabled style="display: none"
style="display: none" aria-hidden="true"
aria-hidden="true" ></button>
></button> <v-row>
<v-row> <gz-error :errorBoxMessage="formState.errorBoxMessage"></gz-error>
<gz-error :errorBoxMessage="formState.errorBoxMessage"></gz-error> <v-col cols="12">
<v-col cols="12"> <v-select
<v-select v-model="templateId"
v-model="templateId" :items="selectLists.pickListTemplates"
:items="selectLists.pickListTemplates" item-text="name"
item-text="name" item-value="id"
item-value="id" :label="$ay.t('PickListTemplates')"
:label="$ay.t('PickListTemplates')" @input="templateSelected"
@input="templateSelected" :data-cy="!!$ay.dev ? 'SelectTemplate' : false"
:data-cy="!!$ay.dev ? 'SelectTemplate' : false" :disabled="formState.dirty"
:disabled="formState.dirty" >
> </v-select>
</v-select> </v-col>
</v-col> <!-- <div>WORKING ARRAY: {{ workingArray }}</div> -->
<!-- <div>WORKING ARRAY: {{ workingArray }}</div> -->
<!-- <div> <!-- <div>
TEMPLATE: TEMPLATE:
{{ obj }} {{ obj }}
</div> </div>
@@ -36,49 +35,48 @@
available fields: available fields:
{{ availableFields }} {{ availableFields }}
</div> --> </div> -->
<template v-for="(item, index) in workingArray"> <template v-for="(item, index) in workingArray">
<v-col :key="item.key" cols="12" sm="6" lg="4" xl="3" px-2> <v-col :key="item.key" cols="12" sm="6" lg="4" xl="3" px-2>
<v-card> <v-card>
<v-card-title> <v-card-title>
{{ item.title }} {{ item.title }}
</v-card-title> </v-card-title>
<v-card-subtitle> <v-card-subtitle>
{{ item.key }} {{ item.key }}
</v-card-subtitle> </v-card-subtitle>
<v-card-text> <v-card-text>
<v-checkbox <v-checkbox
v-model="item.include" v-model="item.include"
:readOnly="formState.readOnly" :readOnly="formState.readOnly"
:label="$ay.t('Include')" :label="$ay.t('Include')"
:ref="item.key" :ref="item.key"
:disabled="item.required" :disabled="item.required"
@change="includeChanged(item)" @change="includeChanged(item)"
:data-cy="!!$ay.dev ? item.key + 'Include' : false" :data-cy="!!$ay.dev ? item.key + 'Include' : false"
></v-checkbox> ></v-checkbox>
<!-- RE-ORDER CONTROL --> <!-- RE-ORDER CONTROL -->
<div class="d-flex justify-space-between"> <div class="d-flex justify-space-between">
<v-btn large icon @click="move('start', index)" <v-btn large icon @click="move('start', index)"
><v-icon large>fa-step-backward</v-icon></v-btn ><v-icon large>fa-step-backward</v-icon></v-btn
> >
<v-btn large icon @click="move('left', index)" <v-btn large icon @click="move('left', index)"
><v-icon large>fa-backward</v-icon></v-btn ><v-icon large>fa-backward</v-icon></v-btn
> >
<v-btn large icon @click="move('right', index)" <v-btn large icon @click="move('right', index)"
><v-icon large>fa-forward</v-icon></v-btn ><v-icon large>fa-forward</v-icon></v-btn
> >
<v-btn large icon @click="move('end', index)" <v-btn large icon @click="move('end', index)"
><v-icon large>fa-step-forward</v-icon></v-btn ><v-icon large>fa-step-forward</v-icon></v-btn
> >
</div> </div>
</v-card-text> </v-card-text>
</v-card> </v-card>
</v-col> </v-col>
</template> </template>
</v-row> </v-row>
</v-form> </v-form>
</v-col> </v-col>
</v-row> </v-row>
</v-container>
</template> </template>
<script> <script>
///////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@@ -1,58 +1,56 @@
<template> <template>
<v-container fluid> <v-row v-if="formState.ready">
<v-row v-if="formState.ready"> <v-col>
<v-col> <v-form ref="form">
<v-form ref="form"> <v-row>
<v-row> <gz-error :errorBoxMessage="formState.errorBoxMessage"></gz-error>
<gz-error :errorBoxMessage="formState.errorBoxMessage"></gz-error> <template v-for="item in obj">
<template v-for="item in obj"> <v-col :key="item.key" cols="12" sm="6" lg="4" xl="3" px-2>
<v-col :key="item.key" cols="12" sm="6" lg="4" xl="3" px-2> <v-card :data-cy="!!$ay.dev ? item.key : false">
<v-card :data-cy="!!$ay.dev ? item.key : false"> <v-card-title>
<v-card-title> {{ item.title }}
{{ item.title }} </v-card-title>
</v-card-title> <v-card-subtitle>
<v-card-subtitle> {{ item.key }}
{{ item.key }} </v-card-subtitle>
</v-card-subtitle> <v-card-text>
<v-card-text> <v-checkbox
<v-checkbox v-model="item.visible"
v-model="item.visible" :readOnly="formState.readOnly"
:readOnly="formState.readOnly" :label="$ay.t('FormFieldVisible')"
:label="$ay.t('FormFieldVisible')" :ref="item.key"
:ref="item.key" :disabled="item.stockRequired"
:disabled="item.stockRequired" @change="visibleChanged(item)"
@change="visibleChanged(item)" :data-cy="!!$ay.dev ? item.key + 'Visible' : false"
:data-cy="!!$ay.dev ? item.key + 'Visible' : false" ></v-checkbox>
></v-checkbox> <v-checkbox
<v-checkbox v-model="item.required"
v-model="item.required" :readOnly="formState.readOnly"
:readOnly="formState.readOnly" :label="$ay.t('FormFieldEntryRequired')"
:label="$ay.t('FormFieldEntryRequired')" :disabled="item.stockRequired"
:disabled="item.stockRequired" @change="requiredChanged(item)"
@change="requiredChanged(item)" ></v-checkbox>
></v-checkbox> <v-select
<v-select v-if="item.custom"
v-if="item.custom" v-model="item.type"
v-model="item.type" :readOnly="formState.readOnly"
:readOnly="formState.readOnly" :items="selectLists.uiFieldDataTypes"
:items="selectLists.uiFieldDataTypes" item-text="name"
item-text="name" item-value="id"
item-value="id" :label="$ay.t('UiFieldDataType')"
:label="$ay.t('UiFieldDataType')" @input="dataTypeChanged(item)"
@input="dataTypeChanged(item)" :data-cy="!!$ay.dev ? item.key + 'SelectType' : false"
:data-cy="!!$ay.dev ? item.key + 'SelectType' : false" ></v-select>
></v-select> <!-- <v-divider></v-divider>
<!-- <v-divider></v-divider>
<div>{{ item }}</div> --> <div>{{ item }}</div> -->
</v-card-text> </v-card-text>
</v-card> </v-card>
</v-col> </v-col>
</template> </template>
</v-row> </v-row>
</v-form> </v-form>
</v-col> </v-col>
</v-row> </v-row>
</v-container>
</template> </template>
<script> <script>
///////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@@ -1,421 +1,403 @@
<template> <template>
<v-container fluid> <v-row v-if="this.formState.ready">
<!-- <div> <v-col>
READY: {{ formState.ready }} <v-form ref="form">
<br /> <v-row>
LOADING: {{ formState.loading }} <gz-error :errorBoxMessage="formState.errorBoxMessage"></gz-error>
<br /> <v-col cols="12">
DIRTY: {{ formState.dirty }} <v-row>
<br /> <v-col cols="12" sm="6" lg="4" xl="3">
VALID: {{ formState.valid }} <v-text-field
<br /> v-model="obj.name"
READONLY: {{ formState.readOnly }} :readonly="this.formState.readOnly"
<br /> clearable
</div> @click:clear="fieldValueChanged('name')"
--> :counter="255"
:label="$ay.t('Name')"
:rules="[
form().max255(this, 'name'),
form().required(this, 'name')
]"
:error-messages="form().serverErrors(this, 'name')"
ref="name"
@input="fieldValueChanged('name')"
:data-cy="!!$ay.dev ? 'name' : false"
></v-text-field>
</v-col>
<v-col cols="12" sm="6" lg="4" xl="3">
<v-checkbox
v-model="obj.public"
:readonly="this.formState.readOnly"
:label="$ay.t('AnyUser')"
ref="public"
@change="fieldValueChanged('public')"
></v-checkbox>
</v-col>
</v-row>
</v-col>
<template v-for="(item, index) in obj.editView">
<v-col :key="item.key" cols="12" sm="6" lg="4" xl="3" px-2>
<v-card :data-cy="!!$ay.dev ? 'columncard:' + item.key : false">
<v-card-title>
{{ item.title }}
</v-card-title>
<v-row v-if="this.formState.ready"> <v-card-text>
<v-col> <!-- INCLUDE CONTROL -->
<v-form ref="form"> <v-switch
<v-row> v-if="!item.rid"
<gz-error :errorBoxMessage="formState.errorBoxMessage"></gz-error> v-model="item.include"
<v-col cols="12"> :label="$ay.t('Include')"
<v-row> :ref="item.key"
<v-col cols="12" sm="6" lg="4" xl="3"> :disabled="
<v-text-field item.sort != null || item.filter.items.length > 0
v-model="obj.name" "
:readonly="this.formState.readOnly" @change="includeChanged(item)"
clearable ></v-switch>
@click:clear="fieldValueChanged('name')" <div v-if="item.rid" class="v-label mb-8 mt-6">
:counter="255" {{ $ay.t("Include") }}
:label="$ay.t('Name')" </div>
:rules="[ <!-- RE-ORDER CONTROL -->
form().max255(this, 'name'), <div class="d-flex justify-space-between">
form().required(this, 'name') <v-btn large icon @click="move('start', index)"
]" ><v-icon large :data-cy="!!$ay.dev ? 'movestart' : false"
:error-messages="form().serverErrors(this, 'name')" >fa-step-backward</v-icon
ref="name" ></v-btn
@input="fieldValueChanged('name')" >
:data-cy="!!$ay.dev ? 'name' : false" <v-btn large icon @click="move('left', index)"
></v-text-field> ><v-icon large>fa-backward</v-icon></v-btn
</v-col> >
<v-col cols="12" sm="6" lg="4" xl="3"> <v-btn large icon @click="move('right', index)"
<v-checkbox ><v-icon large>fa-forward</v-icon></v-btn
v-model="obj.public" >
:readonly="this.formState.readOnly" <v-btn large icon @click="move('end', index)"
:label="$ay.t('AnyUser')" ><v-icon large>fa-step-forward</v-icon></v-btn
ref="public" >
@change="fieldValueChanged('public')" </div>
></v-checkbox> <!-- SORT CONTROL -->
</v-col> <template v-if="item.isSortable">
</v-row> <div @click="toggleSort(item)" class="pt-6">
</v-col> <v-btn x-large v-if="item.sort == null" icon>
<template v-for="(item, index) in obj.editView"> <v-icon x-large>fa-sort</v-icon></v-btn
<v-col :key="item.key" cols="12" sm="6" lg="4" xl="3" px-2> >
<v-card :data-cy="!!$ay.dev ? 'columncard:' + item.key : false"> <v-btn
<v-card-title> v-if="item.sort != null && item.sort == '-'"
{{ item.title }} icon
</v-card-title> x-large
><v-icon color="primary" x-large
<v-card-text> >fa-sort-amount-down</v-icon
<!-- INCLUDE CONTROL -->
<v-switch
v-if="!item.rid"
v-model="item.include"
:label="$ay.t('Include')"
:ref="item.key"
:disabled="
item.sort != null || item.filter.items.length > 0
"
@change="includeChanged(item)"
></v-switch>
<div v-if="item.rid" class="v-label mb-8 mt-6">
{{ $ay.t("Include") }}
</div>
<!-- RE-ORDER CONTROL -->
<div class="d-flex justify-space-between">
<v-btn large icon @click="move('start', index)"
><v-icon
large
:data-cy="!!$ay.dev ? 'movestart' : false"
>fa-step-backward</v-icon
></v-btn ></v-btn
> >
<v-btn large icon @click="move('left', index)" <v-btn
><v-icon large>fa-backward</v-icon></v-btn v-if="item.sort != null && item.sort == '+'"
icon
x-large
><v-icon color="primary" x-large
>fa-sort-amount-up</v-icon
></v-btn
> >
<v-btn large icon @click="move('right', index)" <label class="v-label theme--light"
><v-icon large>fa-forward</v-icon></v-btn >&nbsp;{{ $ay.t("Sort") }}</label
>
<v-btn large icon @click="move('end', index)"
><v-icon large>fa-step-forward</v-icon></v-btn
> >
</div> </div>
<!-- SORT CONTROL --> </template>
<template v-if="item.isSortable">
<div @click="toggleSort(item)" class="pt-6">
<v-btn x-large v-if="item.sort == null" icon>
<v-icon x-large>fa-sort</v-icon></v-btn
>
<v-btn
v-if="item.sort != null && item.sort == '-'"
icon
x-large
><v-icon color="primary" x-large
>fa-sort-amount-down</v-icon
></v-btn
>
<v-btn
v-if="item.sort != null && item.sort == '+'"
icon
x-large
><v-icon color="primary" x-large
>fa-sort-amount-up</v-icon
></v-btn
>
<label class="v-label theme--light"
>&nbsp;{{ $ay.t("Sort") }}</label
>
</div>
</template>
<!-- FILTER CONTROL --> <!-- FILTER CONTROL -->
<template v-if="item.isFilterable"> <template v-if="item.isFilterable">
<div class="pt-6"> <div class="pt-6">
<!-- ******** BUILDER FOR EACH TYPE Tag, decimal,currency, bool, integer, string, datetime ******** --> <!-- ******** BUILDER FOR EACH TYPE Tag, decimal,currency, bool, integer, string, datetime ******** -->
<!-- DATETIME BUILDER --> <!-- DATETIME BUILDER -->
<div v-if="item.uiFieldDataType === 1"> <div v-if="item.uiFieldDataType === 1">
<v-select
v-model="item.tempFilterToken"
:items="selectLists.dateFilterTokens"
item-text="name"
item-value="id"
:label="$ay.t('Filter')"
prepend-icon="fa-filter"
></v-select>
<div v-if="item.tempFilterToken == '*select*'">
<v-select <v-select
v-model="item.tempFilterToken" v-model="item.tempFilterOperator"
:items="selectLists.dateFilterTokens" :items="selectLists.dateFilterOperators"
item-text="name" item-text="name"
item-value="id" item-value="id"
:label="$ay.t('Filter')"
prepend-icon="fa-filter"
></v-select> ></v-select>
<div v-if="item.tempFilterToken == '*select*'"> <gz-date-time-picker
<v-select v-if="
v-model="item.tempFilterOperator" item.tempFilterOperator != '*NOVALUE*' &&
:items="selectLists.dateFilterOperators" item.tempFilterOperator != '*HASVALUE*'
item-text="name" "
item-value="id" v-model="item.tempFilterValue"
></v-select> ></gz-date-time-picker>
<gz-date-time-picker
v-if="
item.tempFilterOperator != '*NOVALUE*' &&
item.tempFilterOperator != '*HASVALUE*'
"
v-model="item.tempFilterValue"
></gz-date-time-picker>
</div>
<v-btn
large
block
v-if="item.tempFilterToken != null"
@click="addFilterCondition(item)"
><v-icon large>fa-plus</v-icon></v-btn
>
</div> </div>
<v-btn
large
block
v-if="item.tempFilterToken != null"
@click="addFilterCondition(item)"
><v-icon large>fa-plus</v-icon></v-btn
>
</div>
<!-- STRING(text-4, emailaddress-11, http-12) BUILDER --> <!-- STRING(text-4, emailaddress-11, http-12) BUILDER -->
<div <div
v-if="
item.uiFieldDataType === 4 ||
item.uiFieldDataType === 11 ||
item.uiFieldDataType === 12
"
>
<v-select
v-model="item.tempFilterOperator"
:items="selectLists.stringFilterOperators"
item-text="name"
item-value="id"
:label="$ay.t('Filter')"
prepend-icon="fa-filter"
></v-select>
<v-text-field
v-if=" v-if="
item.uiFieldDataType === 4 || item.tempFilterOperator != null &&
item.uiFieldDataType === 11 || item.tempFilterOperator != '*NOVALUE*' &&
item.uiFieldDataType === 12 item.tempFilterOperator != '*HASVALUE*'
" "
v-model="item.tempFilterValue"
clearable
></v-text-field>
<v-btn
large
block
v-if="item.tempFilterOperator != null"
@click="addFilterCondition(item)"
><v-icon large>fa-plus</v-icon></v-btn
> >
<v-select
v-model="item.tempFilterOperator"
:items="selectLists.stringFilterOperators"
item-text="name"
item-value="id"
:label="$ay.t('Filter')"
prepend-icon="fa-filter"
></v-select>
<v-text-field
v-if="
item.tempFilterOperator != null &&
item.tempFilterOperator != '*NOVALUE*' &&
item.tempFilterOperator != '*HASVALUE*'
"
v-model="item.tempFilterValue"
clearable
></v-text-field>
<v-btn
large
block
v-if="item.tempFilterOperator != null"
@click="addFilterCondition(item)"
><v-icon large>fa-plus</v-icon></v-btn
>
</div>
<!-- INTEGER BUILDER -->
<div v-if="item.uiFieldDataType === 5">
<v-select
v-model="item.tempFilterOperator"
:items="selectLists.integerFilterOperators"
item-text="name"
item-value="id"
:label="$ay.t('Filter')"
prepend-icon="fa-filter"
></v-select>
<v-text-field
v-if="
item.tempFilterOperator != null &&
item.tempFilterOperator != '*NOVALUE*' &&
item.tempFilterOperator != '*HASVALUE*'
"
v-model="item.tempFilterValue"
clearable
type="number"
></v-text-field>
<v-btn
large
block
v-if="item.tempFilterOperator != null"
@click="addFilterCondition(item)"
><v-icon large>fa-plus</v-icon></v-btn
>
</div>
<!-- BOOL BUILDER -->
<div v-if="item.uiFieldDataType === 6">
<v-select
v-model="item.tempFilterOperator"
:items="selectLists.boolFilterOperators"
item-text="name"
item-value="id"
:label="$ay.t('Filter')"
prepend-icon="fa-filter"
></v-select>
<v-radio-group
v-model="item.tempFilterValue"
v-if="
item.tempFilterOperator != null &&
item.tempFilterOperator != '*NOVALUE*' &&
item.tempFilterOperator != '*HASVALUE*'
"
row
>
<v-radio
:label="$ay.t('False')"
:value="false"
></v-radio>
<v-radio
:label="$ay.t('True')"
:value="true"
></v-radio>
</v-radio-group>
<v-btn
large
block
v-if="item.tempFilterOperator != null"
@click="addFilterCondition(item)"
><v-icon large>fa-plus</v-icon></v-btn
>
</div>
<!-- DECIMAL BUILDER -->
<div v-if="item.uiFieldDataType === 7">
<v-select
v-model="item.tempFilterOperator"
:items="selectLists.decimalFilterOperators"
item-text="name"
item-value="id"
:label="$ay.t('Filter')"
prepend-icon="fa-filter"
></v-select>
<gz-decimal
v-if="
item.tempFilterOperator != null &&
item.tempFilterOperator != '*NOVALUE*' &&
item.tempFilterOperator != '*HASVALUE*'
"
v-model="item.tempFilterValue"
clearable
></gz-decimal>
<v-btn
large
block
v-if="item.tempFilterOperator != null"
@click="addFilterCondition(item)"
><v-icon large>fa-plus</v-icon></v-btn
>
</div>
<!-- CURRENCY BUILDER -->
<div v-if="item.uiFieldDataType === 8">
<v-select
v-model="item.tempFilterOperator"
:items="selectLists.decimalFilterOperators"
item-text="name"
item-value="id"
:label="$ay.t('Filter')"
prepend-icon="fa-filter"
></v-select>
<gz-currency
v-if="
item.tempFilterOperator != null &&
item.tempFilterOperator != '*NOVALUE*' &&
item.tempFilterOperator != '*HASVALUE*'
"
v-model="item.tempFilterValue"
clearable
></gz-currency>
<v-btn
large
block
v-if="item.tempFilterOperator != null"
@click="addFilterCondition(item)"
><v-icon large>fa-plus</v-icon></v-btn
>
</div>
<!-- TAG BUILDER -->
<div v-if="item.uiFieldDataType === 9">
<v-select
v-model="item.tempFilterOperator"
:items="selectLists.tagFilterOperators"
item-text="name"
item-value="id"
:label="$ay.t('Filter')"
prepend-icon="fa-filter"
></v-select>
<gz-tag-picker
v-if="item.tempFilterOperator != null"
v-model="item.tempFilterValue"
></gz-tag-picker>
<v-btn
large
block
v-if="item.tempFilterOperator != null"
@click="addFilterCondition(item)"
><v-icon large>fa-plus</v-icon></v-btn
>
</div>
<!-- ENUM BUILDER -->
<div v-if="item.uiFieldDataType === 10">
<v-select
v-model="item.tempFilterOperator"
:items="selectLists.enumFilterOperators"
item-text="name"
item-value="id"
:label="$ay.t('Filter')"
prepend-icon="fa-filter"
></v-select>
<v-select
v-if="
item.tempFilterOperator != null &&
item.tempFilterOperator != '*NOVALUE*' &&
item.tempFilterOperator != '*HASVALUE*'
"
v-model="item.tempFilterValue"
:items="enumSelectionList(item.enumType)"
item-text="name"
item-value="id"
></v-select>
<v-btn
large
block
v-if="item.tempFilterOperator != null"
@click="addFilterCondition(item)"
><v-icon large>fa-plus</v-icon></v-btn
>
</div>
</div> </div>
<div class="pt-6"> <!-- INTEGER BUILDER -->
<!-- FILTER LIST --> <div v-if="item.uiFieldDataType === 5">
<template v-if="item.filter.items.length > 0"> <v-select
<v-list elevation="2"> v-model="item.tempFilterOperator"
<v-subheader v-if="item.filter.items.length > 1"> :items="selectLists.integerFilterOperators"
<!-- AND / OR FILTER CONDITIONS --> item-text="name"
<v-radio-group v-model="item.filter.any" row> item-value="id"
<v-radio :label="$ay.t('Filter')"
:label="$ay.t('GridFilterDialogAndRadioText')" prepend-icon="fa-filter"
:value="false" ></v-select>
></v-radio> <v-text-field
<v-radio v-if="
:label="$ay.t('GridFilterDialogOrRadioText')" item.tempFilterOperator != null &&
:value="true" item.tempFilterOperator != '*NOVALUE*' &&
></v-radio> </v-radio-group item.tempFilterOperator != '*HASVALUE*'
></v-subheader> "
<v-list-item v-model="item.tempFilterValue"
v-for="(filterItem, index) in item.filter.items" clearable
:key="index" type="number"
> ></v-text-field>
<v-list-item-content> <v-btn
<v-list-item-title v-text="filterItem.display"> large
</v-list-item-title> block
</v-list-item-content> v-if="item.tempFilterOperator != null"
<v-list-item-action> @click="addFilterCondition(item)"
<v-btn ><v-icon large>fa-plus</v-icon></v-btn
icon >
@click="removeFilterCondition(item, index)" </div>
> <!-- BOOL BUILDER -->
<v-icon>fa-trash-alt</v-icon> <div v-if="item.uiFieldDataType === 6">
</v-btn> <v-select
</v-list-item-action> v-model="item.tempFilterOperator"
</v-list-item> :items="selectLists.boolFilterOperators"
</v-list> item-text="name"
</template> item-value="id"
<!-- <v-divider></v-divider> :label="$ay.t('Filter')"
prepend-icon="fa-filter"
></v-select>
<v-radio-group
v-model="item.tempFilterValue"
v-if="
item.tempFilterOperator != null &&
item.tempFilterOperator != '*NOVALUE*' &&
item.tempFilterOperator != '*HASVALUE*'
"
row
>
<v-radio
:label="$ay.t('False')"
:value="false"
></v-radio>
<v-radio
:label="$ay.t('True')"
:value="true"
></v-radio>
</v-radio-group>
<v-btn
large
block
v-if="item.tempFilterOperator != null"
@click="addFilterCondition(item)"
><v-icon large>fa-plus</v-icon></v-btn
>
</div>
<!-- DECIMAL BUILDER -->
<div v-if="item.uiFieldDataType === 7">
<v-select
v-model="item.tempFilterOperator"
:items="selectLists.decimalFilterOperators"
item-text="name"
item-value="id"
:label="$ay.t('Filter')"
prepend-icon="fa-filter"
></v-select>
<gz-decimal
v-if="
item.tempFilterOperator != null &&
item.tempFilterOperator != '*NOVALUE*' &&
item.tempFilterOperator != '*HASVALUE*'
"
v-model="item.tempFilterValue"
clearable
></gz-decimal>
<v-btn
large
block
v-if="item.tempFilterOperator != null"
@click="addFilterCondition(item)"
><v-icon large>fa-plus</v-icon></v-btn
>
</div>
<!-- CURRENCY BUILDER -->
<div v-if="item.uiFieldDataType === 8">
<v-select
v-model="item.tempFilterOperator"
:items="selectLists.decimalFilterOperators"
item-text="name"
item-value="id"
:label="$ay.t('Filter')"
prepend-icon="fa-filter"
></v-select>
<gz-currency
v-if="
item.tempFilterOperator != null &&
item.tempFilterOperator != '*NOVALUE*' &&
item.tempFilterOperator != '*HASVALUE*'
"
v-model="item.tempFilterValue"
clearable
></gz-currency>
<v-btn
large
block
v-if="item.tempFilterOperator != null"
@click="addFilterCondition(item)"
><v-icon large>fa-plus</v-icon></v-btn
>
</div>
<!-- TAG BUILDER -->
<div v-if="item.uiFieldDataType === 9">
<v-select
v-model="item.tempFilterOperator"
:items="selectLists.tagFilterOperators"
item-text="name"
item-value="id"
:label="$ay.t('Filter')"
prepend-icon="fa-filter"
></v-select>
<gz-tag-picker
v-if="item.tempFilterOperator != null"
v-model="item.tempFilterValue"
></gz-tag-picker>
<v-btn
large
block
v-if="item.tempFilterOperator != null"
@click="addFilterCondition(item)"
><v-icon large>fa-plus</v-icon></v-btn
>
</div>
<!-- ENUM BUILDER -->
<div v-if="item.uiFieldDataType === 10">
<v-select
v-model="item.tempFilterOperator"
:items="selectLists.enumFilterOperators"
item-text="name"
item-value="id"
:label="$ay.t('Filter')"
prepend-icon="fa-filter"
></v-select>
<v-select
v-if="
item.tempFilterOperator != null &&
item.tempFilterOperator != '*NOVALUE*' &&
item.tempFilterOperator != '*HASVALUE*'
"
v-model="item.tempFilterValue"
:items="enumSelectionList(item.enumType)"
item-text="name"
item-value="id"
></v-select>
<v-btn
large
block
v-if="item.tempFilterOperator != null"
@click="addFilterCondition(item)"
><v-icon large>fa-plus</v-icon></v-btn
>
</div>
</div>
<div class="pt-6">
<!-- FILTER LIST -->
<template v-if="item.filter.items.length > 0">
<v-list elevation="2">
<v-subheader v-if="item.filter.items.length > 1">
<!-- AND / OR FILTER CONDITIONS -->
<v-radio-group v-model="item.filter.any" row>
<v-radio
:label="$ay.t('GridFilterDialogAndRadioText')"
:value="false"
></v-radio>
<v-radio
:label="$ay.t('GridFilterDialogOrRadioText')"
:value="true"
></v-radio> </v-radio-group
></v-subheader>
<v-list-item
v-for="(filterItem, index) in item.filter.items"
:key="index"
>
<v-list-item-content>
<v-list-item-title v-text="filterItem.display">
</v-list-item-title>
</v-list-item-content>
<v-list-item-action>
<v-btn
icon
@click="removeFilterCondition(item, index)"
>
<v-icon>fa-trash-alt</v-icon>
</v-btn>
</v-list-item-action>
</v-list-item>
</v-list>
</template>
<!-- <v-divider></v-divider>
{{ item }} --> {{ item }} -->
</div> </div>
</template> </template>
</v-card-text> </v-card-text>
</v-card> </v-card>
</v-col> </v-col>
</template> </template>
</v-row> </v-row>
</v-form> </v-form>
</v-col> </v-col>
</v-row> </v-row>
</v-container>
</template> </template>
<script> <script>
///////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@@ -1,87 +1,85 @@
<template> <template>
<v-container fluid> <v-row v-if="formState.ready">
<v-row v-if="formState.ready"> <v-col>
<v-col> <v-form ref="form">
<v-form ref="form"> <v-row>
<v-row> <gz-error :errorBoxMessage="formState.errorBoxMessage"></gz-error>
<gz-error :errorBoxMessage="formState.errorBoxMessage"></gz-error> <v-col cols="12">
<v-col cols="12"> <v-text-field
<v-text-field name="username"
name="username" id="username"
id="username" v-model="obj.loginName"
v-model="obj.loginName" :readonly="formState.readOnly"
:readonly="formState.readOnly" prepend-icon="fa-user"
prepend-icon="fa-user" autocomplete="off"
autocomplete="off" autocorrect="off"
autocorrect="off" autocapitalize="off"
autocapitalize="off" spellcheck="false"
spellcheck="false" v-focus
v-focus :label="$ay.t('UserLogin')"
:label="$ay.t('UserLogin')" :rules="[form().required(this, 'loginName')]"
:rules="[form().required(this, 'loginName')]" :error-messages="form().serverErrors(this, 'loginName')"
:error-messages="form().serverErrors(this, 'loginName')" ref="loginName"
ref="loginName" @input="fieldValueChanged('loginName')"
@input="fieldValueChanged('loginName')" ></v-text-field>
></v-text-field> </v-col>
</v-col>
<v-col cols="12"> <v-col cols="12">
<v-text-field <v-text-field
name="password" name="password"
id="password" id="password"
v-model="obj.oldPassword" v-model="obj.oldPassword"
:readonly="formState.readOnly" :readonly="formState.readOnly"
:append-outer-icon="reveal ? 'fa-eye' : 'fa-eye-slash'" :append-outer-icon="reveal ? 'fa-eye' : 'fa-eye-slash'"
prepend-icon="fa-key" prepend-icon="fa-key"
:label="$ay.t('OldPassword')" :label="$ay.t('OldPassword')"
:type="reveal ? 'text' : 'password'" :type="reveal ? 'text' : 'password'"
:rules="[form().required(this, 'oldPassword')]" :rules="[form().required(this, 'oldPassword')]"
:error-messages="form().serverErrors(this, 'oldPassword')" :error-messages="form().serverErrors(this, 'oldPassword')"
ref="oldPassword" ref="oldPassword"
@input="fieldValueChanged('oldPassword')" @input="fieldValueChanged('oldPassword')"
@click:append-outer="reveal = !reveal" @click:append-outer="reveal = !reveal"
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col cols="12"> <v-col cols="12">
<v-text-field <v-text-field
v-model="obj.newPassword" v-model="obj.newPassword"
:readonly="formState.readOnly" :readonly="formState.readOnly"
:append-outer-icon="reveal ? 'fa-eye' : 'fa-eye-slash'" :append-outer-icon="reveal ? 'fa-eye' : 'fa-eye-slash'"
prepend-icon="fa-key" prepend-icon="fa-key"
:label="$ay.t('NewPassword')" :label="$ay.t('NewPassword')"
:type="reveal ? 'text' : 'password'" :type="reveal ? 'text' : 'password'"
:rules="[form().required(this, 'newPassword')]" :rules="[form().required(this, 'newPassword')]"
:error-messages="form().serverErrors(this, 'newPassword')" :error-messages="form().serverErrors(this, 'newPassword')"
ref="newPassword" ref="newPassword"
@input="fieldValueChanged('newPassword')" @input="fieldValueChanged('newPassword')"
@click:append-outer="reveal = !reveal" @click:append-outer="reveal = !reveal"
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col cols="12"> <v-col cols="12">
<v-text-field <v-text-field
v-model="obj.confirmPassword" v-model="obj.confirmPassword"
:readonly="formState.readOnly" :readonly="formState.readOnly"
:append-outer-icon="reveal ? 'fa-eye' : 'fa-eye-slash'" :append-outer-icon="reveal ? 'fa-eye' : 'fa-eye-slash'"
prepend-icon="fa-key" prepend-icon="fa-key"
:label="$ay.t('ConfirmPassword')" :label="$ay.t('ConfirmPassword')"
:type="reveal ? 'text' : 'password'" :type="reveal ? 'text' : 'password'"
:rules="[ :rules="[
form().required(this, 'confirmPassword'), form().required(this, 'confirmPassword'),
form().confirmMatch(this, 'newPassword', 'confirmPassword') form().confirmMatch(this, 'newPassword', 'confirmPassword')
]" ]"
:error-messages="form().serverErrors(this, 'confirmPassword')" :error-messages="form().serverErrors(this, 'confirmPassword')"
ref="confirmPassword" ref="confirmPassword"
@input="fieldValueChanged('confirmPassword')" @input="fieldValueChanged('confirmPassword')"
@click:append-outer="reveal = !reveal" @click:append-outer="reveal = !reveal"
></v-text-field> ></v-text-field>
</v-col> </v-col>
</v-row> </v-row>
</v-form> </v-form>
</v-col> </v-col>
</v-row> </v-row>
</v-container>
</template> </template>
<script> <script>

View File

@@ -1,95 +1,85 @@
<template> <template>
<v-container fluid> <v-row v-if="formState.ready">
<v-row v-if="formState.ready"> <v-col>
<v-col> <v-form ref="form">
<v-form ref="form"> <v-row justify="start">
<v-row justify="start"> <gz-error :errorBoxMessage="formState.errorBoxMessage"></gz-error>
<gz-error :errorBoxMessage="formState.errorBoxMessage"></gz-error> <v-col cols="12" sm="4" lg="4" xl="3">
<v-col cols="12" sm="4" lg="4" xl="3"> <v-text-field
<v-text-field v-model="searchPhrase"
v-model="searchPhrase" clearable
clearable :label="$ay.t('Search')"
:label="$ay.t('Search')" ref="searchPhrase"
ref="searchPhrase" @change="getDataFromApi()"
@change="getDataFromApi()" hint="text, *xt, te*"
hint="text, *xt, te*" :data-cy="!!$ay.dev ? 'phrase' : false"
:data-cy="!!$ay.dev ? 'phrase' : false" ></v-text-field>
></v-text-field> </v-col>
</v-col> <v-col cols="12" sm="4" lg="4" xl="3">
<v-col cols="12" sm="4" lg="4" xl="3"> <v-select
<v-select v-model="searchObjectType"
v-model="searchObjectType" :items="selectLists.objectTypes"
:items="selectLists.objectTypes" item-text="name"
item-text="name" item-value="id"
item-value="id" :label="$ay.t('Object')"
:label="$ay.t('Object')" ></v-select>
></v-select> </v-col>
</v-col> <v-col cols="12" sm="4" lg="4" xl="3">
<v-col cols="12" sm="4" lg="4" xl="3"> <v-btn color="primary" v-on:click="getDataFromApi()" value="SEARCH">
<v-btn <v-icon :data-cy="!!$ay.dev ? 'btnsearch' : false"
color="primary" >fa-search</v-icon
v-on:click="getDataFromApi()"
value="SEARCH"
> >
<v-icon :data-cy="!!$ay.dev ? 'btnsearch' : false" </v-btn>
>fa-search</v-icon </v-col>
>
</v-btn>
</v-col>
<v-col cols="12"> <v-col cols="12">
<p v-if="!items.length">{{ $ay.t("NoResults") }}</p> <p v-if="!items.length">{{ $ay.t("NoResults") }}</p>
<v-card v-if="items.length" max-width="900"> <v-card v-if="items.length" max-width="900">
<v-list> <v-list>
<v-subheader v-if="maxResultsReturned"> <v-subheader v-if="maxResultsReturned">
<span>({{ $ay.t("TooManyResults") }})</span> <span>({{ $ay.t("TooManyResults") }})</span>
</v-subheader> </v-subheader>
<template v-for="item in items"> <template v-for="item in items">
<!-- KEY MUST BE UNIQUE INSIDE v-for OR LIST ITEM GOES SNAKEY --> <!-- KEY MUST BE UNIQUE INSIDE v-for OR LIST ITEM GOES SNAKEY -->
<v-subheader :key="'s' + item.index" v-if="item.subheader" <v-subheader :key="'s' + item.index" v-if="item.subheader"
><v-icon large class="mr-2">{{ item.icon }}</v-icon ><v-icon large class="mr-2">{{ item.icon }}</v-icon
><span class="title">{{ ><span class="title">{{
item.subheader item.subheader
}}</span></v-subheader }}</span></v-subheader
>
<v-list-item link :key="item.index">
<v-list-item-content
@click="openItem(item)"
:data-cy="!!$ay.dev ? 'btnopenitem' + item.index : false"
> >
<v-list-item-title v-text="item.name"></v-list-item-title>
<v-list-item link :key="item.index"> <v-list-item-subtitle
<v-list-item-content v-html="item.info"
@click="openItem(item)" ></v-list-item-subtitle>
:data-cy=" </v-list-item-content>
!!$ay.dev ? 'btnopenitem' + item.index : false <v-list-item-action>
" <v-btn icon @click="getExcerpt(item)">
> <v-icon
<v-list-item-title color="grey lighten-1"
v-text="item.name" large
></v-list-item-title> :data-cy="
<v-list-item-subtitle !!$ay.dev ? 'btnexcerpt' + item.index : false
v-html="item.info" "
></v-list-item-subtitle> >fa-info-circle</v-icon
</v-list-item-content> >
<v-list-item-action> </v-btn>
<v-btn icon @click="getExcerpt(item)"> </v-list-item-action>
<v-icon </v-list-item>
color="grey lighten-1" </template>
large </v-list>
:data-cy=" </v-card>
!!$ay.dev ? 'btnexcerpt' + item.index : false </v-col>
" </v-row>
>fa-info-circle</v-icon </v-form>
> </v-col>
</v-btn> </v-row>
</v-list-item-action>
</v-list-item>
</template>
</v-list>
</v-card>
</v-col>
</v-row>
</v-form>
</v-col>
</v-row>
</v-container>
</template> </template>
<script> <script>

View File

@@ -1,109 +1,107 @@
<template> <template>
<v-container fluid> <v-row v-if="formState.ready">
<v-row v-if="formState.ready"> <v-col>
<v-col> <v-form ref="form">
<v-form ref="form"> <v-row>
<v-row> <gz-error :errorBoxMessage="formState.errorBoxMessage"></gz-error>
<gz-error :errorBoxMessage="formState.errorBoxMessage"></gz-error> <v-col cols="12" sm="6" lg="4" xl="3">
<v-col cols="12" sm="6" lg="4" xl="3"> <v-select
<v-select v-model="obj.translationId"
v-model="obj.translationId" :items="selectLists.translations"
:items="selectLists.translations" item-text="name"
item-text="name" item-value="id"
item-value="id" :readonly="formState.readOnly"
:readonly="formState.readOnly" :label="$ay.t('Translation')"
:label="$ay.t('Translation')" ref="translationId"
ref="translationId" :error-messages="form().serverErrors(this, 'translationId')"
:error-messages="form().serverErrors(this, 'translationId')" @input="fieldValueChanged('translationId')"
@input="fieldValueChanged('translationId')" ></v-select>
></v-select> </v-col>
</v-col>
<v-col cols="12" sm="6" lg="4" xl="3"> <v-col cols="12" sm="6" lg="4" xl="3">
<v-text-field <v-text-field
v-model="obj.emailAddress" v-model="obj.emailAddress"
:readonly="formState.readOnly" :readonly="formState.readOnly"
clearable clearable
@click:clear="fieldValueChanged('emailAddress')" @click:clear="fieldValueChanged('emailAddress')"
:label="$ay.t('UserEmailAddress')" :label="$ay.t('UserEmailAddress')"
:error-messages="form().serverErrors(this, 'emailAddress')" :error-messages="form().serverErrors(this, 'emailAddress')"
ref="emailAddress" ref="emailAddress"
@input="fieldValueChanged('emailAddress')" @input="fieldValueChanged('emailAddress')"
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col cols="12" sm="6" lg="4" xl="3"> <v-col cols="12" sm="6" lg="4" xl="3">
<v-text-field <v-text-field
v-model="obj.currencyName" v-model="obj.currencyName"
hint="e.g. USD, EUR, GBP, AUD, CAD etc" hint="e.g. USD, EUR, GBP, AUD, CAD etc"
:readonly="formState.readOnly" :readonly="formState.readOnly"
clearable clearable
@click:clear="fieldValueChanged('currencyName')" @click:clear="fieldValueChanged('currencyName')"
:label="$ay.t('CurrencyCode')" :label="$ay.t('CurrencyCode')"
:rules="[form().required(this, 'currencyName')]" :rules="[form().required(this, 'currencyName')]"
:error-messages="form().serverErrors(this, 'currencyName')" :error-messages="form().serverErrors(this, 'currencyName')"
ref="currencyName" ref="currencyName"
@input="fieldValueChanged('currencyName')" @input="fieldValueChanged('currencyName')"
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col cols="12" sm="6" lg="4" xl="3"> <v-col cols="12" sm="6" lg="4" xl="3">
<v-checkbox <v-checkbox
v-model="obj.hour12" v-model="obj.hour12"
:readonly="formState.readOnly" :readonly="formState.readOnly"
:label="$ay.t('Hour12')" :label="$ay.t('Hour12')"
ref="hour12" ref="hour12"
:error-messages="form().serverErrors(this, 'hour12')" :error-messages="form().serverErrors(this, 'hour12')"
@change="fieldValueChanged('hour12')" @change="fieldValueChanged('hour12')"
></v-checkbox> ></v-checkbox>
</v-col> </v-col>
<v-col cols="12" sm="6" lg="4" xl="3"> <v-col cols="12" sm="6" lg="4" xl="3">
<!-- https://vuetifyjs.com/en/components/color-pickers --> <!-- https://vuetifyjs.com/en/components/color-pickers -->
<span class="v-label v-label--active theme--light"> <span class="v-label v-label--active theme--light">
{{ $ay.t("UserColor") }} {{ $ay.t("UserColor") }}
</span> </span>
<v-color-picker <v-color-picker
v-model="obj.uiColor" v-model="obj.uiColor"
:readonly="formState.readOnly" :readonly="formState.readOnly"
hide-mode-switch hide-mode-switch
mode="hexa" mode="hexa"
:error-messages="form().serverErrors(this, 'uiColor')" :error-messages="form().serverErrors(this, 'uiColor')"
ref="uiColor" ref="uiColor"
@input="fieldValueChanged('uiColor')" @input="fieldValueChanged('uiColor')"
></v-color-picker> ></v-color-picker>
</v-col> </v-col>
<v-col cols="12" sm="6" lg="4" xl="3"> <v-col cols="12" sm="6" lg="4" xl="3">
<v-text-field <v-text-field
v-model="obj.languageOverride" v-model="obj.languageOverride"
:placeholder="locale().getBrowserFirstLanguage()" :placeholder="locale().getBrowserFirstLanguage()"
:readonly="formState.readOnly" :readonly="formState.readOnly"
clearable clearable
@click:clear="fieldValueChanged('languageOverride')" @click:clear="fieldValueChanged('languageOverride')"
:label="$ay.t('LanguageCode')" :label="$ay.t('LanguageCode')"
:error-messages="form().serverErrors(this, 'languageOverride')" :error-messages="form().serverErrors(this, 'languageOverride')"
ref="languageOverride" ref="languageOverride"
@input="fieldValueChanged('languageOverride')" @input="fieldValueChanged('languageOverride')"
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col cols="12" sm="6" lg="4" xl="3"> <v-col cols="12" sm="6" lg="4" xl="3">
<v-text-field <v-text-field
v-model="obj.timeZoneOverride" v-model="obj.timeZoneOverride"
:placeholder="locale().getBrowserTimeZoneName()" :placeholder="locale().getBrowserTimeZoneName()"
:readonly="formState.readOnly" :readonly="formState.readOnly"
clearable clearable
@click:clear="fieldValueChanged('timeZoneOverride')" @click:clear="fieldValueChanged('timeZoneOverride')"
:label="$ay.t('TimeZone')" :label="$ay.t('TimeZone')"
:error-messages="form().serverErrors(this, 'timeZoneOverride')" :error-messages="form().serverErrors(this, 'timeZoneOverride')"
ref="timeZoneOverride" ref="timeZoneOverride"
@input="fieldValueChanged('timeZoneOverride')" @input="fieldValueChanged('timeZoneOverride')"
></v-text-field> ></v-text-field>
</v-col> </v-col>
</v-row> </v-row>
</v-form> </v-form>
</v-col> </v-col>
</v-row> </v-row>
</v-container>
</template> </template>
<script> <script>

View File

@@ -1,88 +1,86 @@
<template> <template>
<v-container fluid> <v-row align="center" justify="center" class="mx-auto mt-sm-12 mb-8">
<v-row align="center" justify="center" class="mx-auto mt-sm-12 mb-8"> <v-col cols="12" offset-md="4">
<v-col cols="12" offset-md="4"> <form>
<form> <v-row>
<v-row> <v-col cols="12" class="hidden-md-and-up">
<v-col cols="12" class="hidden-md-and-up"> <v-img
<v-img :src="require('../assets/logo.svg')"
:src="require('../assets/logo.svg')" contain
contain height="64"
height="64" ></v-img>
></v-img> </v-col>
</v-col> <v-col cols="12" md="7" class="hidden-sm-and-down">
<v-col cols="12" md="7" class="hidden-sm-and-down"> <v-img
<v-img :src="require('../assets/logo.svg')"
:src="require('../assets/logo.svg')" contain
contain height="128"
height="128" ></v-img>
></v-img> </v-col>
</v-col> <v-col cols="12" md="7" v-if="formState.errorBoxMessage">
<v-col cols="12" md="7" v-if="formState.errorBoxMessage"> <gz-error :errorBoxMessage="formState.errorBoxMessage"></gz-error>
<gz-error :errorBoxMessage="formState.errorBoxMessage"></gz-error> </v-col>
</v-col> <v-col cols="12" md="7" v-if="trialMode">
<v-col cols="12" md="7" v-if="trialMode"> <v-select
<v-select v-model="selectedTrialUserId"
v-model="selectedTrialUserId" :items="selectLists.trialUsers"
:items="selectLists.trialUsers" item-text="name"
item-text="name" item-value="l"
item-value="l" label="Trial mode example users"
label="Trial mode example users" prepend-icon="fa-question-circle"
prepend-icon="fa-question-circle" @click:prepend="trialHelpClick"
@click:prepend="trialHelpClick" @input="trialUserSelected"
@input="trialUserSelected" return-object
return-object :data-cy="!!$ay.dev ? 'selecttrialuser' : false"
:data-cy="!!$ay.dev ? 'selecttrialuser' : false" >
> </v-select>
</v-select> </v-col>
</v-col> <v-col cols="12" md="7">
<v-col cols="12" md="7"> <v-text-field
<v-text-field name="username"
name="username" id="username"
id="username" v-model="input.username"
v-model="input.username" prepend-icon="fa-user"
prepend-icon="fa-user" label="User"
label="User" autofocus
autofocus autocomplete="off"
autocomplete="off" autocorrect="off"
autocorrect="off" autocapitalize="off"
autocapitalize="off" spellcheck="false"
spellcheck="false" :error="errorBadCreds"
:error="errorBadCreds" v-focus
v-focus v-on:keyup.enter="onEnterUserName"
v-on:keyup.enter="onEnterUserName" ></v-text-field>
></v-text-field> </v-col>
</v-col> <v-col cols="12" md="7">
<v-col cols="12" md="7"> <v-text-field
<v-text-field name="password"
name="password" id="password"
id="password" v-model="input.password"
v-model="input.password" :append-outer-icon="reveal ? 'fa-eye' : 'fa-eye-slash'"
:append-outer-icon="reveal ? 'fa-eye' : 'fa-eye-slash'" prepend-icon="fa-key"
prepend-icon="fa-key" label="Password"
label="Password" :type="reveal ? 'text' : 'password'"
:type="reveal ? 'text' : 'password'" :error="errorBadCreds"
:error="errorBadCreds" v-on:keyup.enter="login"
v-on:keyup.enter="login" @click:append-outer="reveal = !reveal"
@click:append-outer="reveal = !reveal" ></v-text-field>
></v-text-field> </v-col>
</v-col> <v-col cols="12" md="7" mt-1>
<v-col cols="12" md="7" mt-1> <v-btn color="primary" v-on:click="login()" value="LOGIN">
<v-btn color="primary" v-on:click="login()" value="LOGIN"> <v-icon>fa-sign-in-alt</v-icon>
<v-icon>fa-sign-in-alt</v-icon> </v-btn>
</v-btn> </v-col>
</v-col>
<template v-if="$ay.dev"> <template v-if="$ay.dev">
<v-col cols="12"> <v-col cols="12">
<span class="subtitle-2 secondary--text">DEVELOPMENT MODE</span> <span class="subtitle-2 secondary--text">DEVELOPMENT MODE</span>
</v-col> </v-col>
</template> </template>
</v-row> </v-row>
</form> </form>
</v-col> </v-col>
</v-row> </v-row>
</v-container>
</template> </template>
<script> <script>

View File

@@ -1,16 +1,14 @@
<template> <template>
<v-container fluid> <v-row justify-center>
<v-row justify-center> <v-col cols="12">
<v-col cols="12"> <div class="text-center">
<div class="text-center"> <v-icon color="red" size="100">fa-dragon</v-icon>
<v-icon color="red" size="100">fa-dragon</v-icon> <div class="headline mt-8">
<div class="headline mt-8"> {{ msg }}
{{ msg }}
</div>
</div> </div>
</v-col> </div>
</v-row> </v-col>
</v-container> </v-row>
</template> </template>
<script> <script>

View File

@@ -1,44 +1,39 @@
<template> <template>
<v-container fluid> <v-row v-if="formState.ready">
<v-row v-if="formState.ready"> <v-col>
<v-col> <v-form ref="form">
<v-form ref="form"> <v-row>
<v-row> <gz-error :errorBoxMessage="formState.errorBoxMessage"></gz-error>
<gz-error :errorBoxMessage="formState.errorBoxMessage"></gz-error> <v-col cols="12" sm="6" lg="4" xl="3">
<v-col cols="12" sm="6" lg="4" xl="3"> <v-radio-group
<v-radio-group v-model="obj.serverState"
v-model="obj.serverState" :mandatory="true"
:mandatory="true" :readonly="formState.readOnly"
:readonly="formState.readOnly" >
> <v-radio :label="$ay.t('ServerStateOpen')" value="Open"></v-radio>
<v-radio <v-radio
:label="$ay.t('ServerStateOpen')" :label="$ay.t('ServerStateOps')"
value="Open" value="OpsOnly"
></v-radio> ></v-radio>
<v-radio </v-radio-group>
:label="$ay.t('ServerStateOps')" </v-col>
value="OpsOnly" <v-col cols="12">
></v-radio> <v-textarea
</v-radio-group> v-model="obj.reason"
</v-col> :readonly="formState.readOnly"
<v-col cols="12"> :label="$ay.t('ServerStateReason')"
<v-textarea :error-messages="form().serverErrors(this, 'reason')"
v-model="obj.reason" ref="reason"
:readonly="formState.readOnly" :data-cy="!!$ay.dev ? 'reason' : false"
:label="$ay.t('ServerStateReason')" @input="fieldValueChanged('reason')"
:error-messages="form().serverErrors(this, 'reason')" auto-grow
ref="reason" clearable
:data-cy="!!$ay.dev ? 'reason' : false" ></v-textarea>
@input="fieldValueChanged('reason')" </v-col>
auto-grow </v-row>
clearable </v-form>
></v-textarea> </v-col>
</v-col> </v-row>
</v-row>
</v-form>
</v-col>
</v-row>
</v-container>
</template> </template>
<script> <script>

View File

@@ -1,118 +1,11 @@
<template> <template>
<UnderConstruction /> <UnderConstruction />
<!-- <v-container fluid> -->
<!-- <v-data-table
:headers="headers"
:items="desserts"
:items-per-page="5"
class="elevation-1"
></v-data-table> -->
<!-- </v-container> -->
</template> </template>
<script> <script>
import UnderConstruction from "../components/underconstruction.vue"; import UnderConstruction from "../components/underconstruction.vue";
export default { export default {
// data() {
// return {
// headers: [
// {
// text: "Dessert (100g serving)",
// align: "left",
// sortable: false,
// value: "name"
// },
// { text: "Calories", value: "calories" },
// { text: "Fat (g)", value: "fat" },
// { text: "Carbs (g)", value: "carbs" },
// { text: "Protein (g)", value: "protein" },
// { text: "Iron (%)", value: "iron" }
// ],
// desserts: [
// {
// name: "Frozen Yogurt",
// calories: 159,
// fat: 6.0,
// carbs: 24,
// protein: 4.0,
// iron: "1%"
// },
// {
// name: "Ice cream sandwich",
// calories: 237,
// fat: 9.0,
// carbs: 37,
// protein: 4.3,
// iron: "1%"
// },
// {
// name: "Eclair",
// calories: 262,
// fat: 16.0,
// carbs: 23,
// protein: 6.0,
// iron: "7%"
// },
// {
// name: "Cupcake",
// calories: 305,
// fat: 3.7,
// carbs: 67,
// protein: 4.3,
// iron: "8%"
// },
// {
// name: "Gingerbread",
// calories: 356,
// fat: 16.0,
// carbs: 49,
// protein: 3.9,
// iron: "16%"
// },
// {
// name: "Jelly bean",
// calories: 375,
// fat: 0.0,
// carbs: 94,
// protein: 0.0,
// iron: "0%"
// },
// {
// name: "Lollipop",
// calories: 392,
// fat: 0.2,
// carbs: 98,
// protein: 0,
// iron: "2%"
// },
// {
// name: "Honeycomb",
// calories: 408,
// fat: 3.2,
// carbs: 87,
// protein: 6.5,
// iron: "45%"
// },
// {
// name: "Donut",
// calories: 452,
// fat: 25.0,
// carbs: 51,
// protein: 4.9,
// iron: "22%"
// },
// {
// name: "KitKat",
// calories: 518,
// fat: 26.0,
// carbs: 65,
// protein: 7,
// iron: "6%"
// }
// ]
// };
// },
components: { components: {
UnderConstruction UnderConstruction
}, },