This commit is contained in:
2019-05-02 22:02:41 +00:00
parent 9d40b832d7
commit b380174709
7 changed files with 238 additions and 194 deletions

View File

@@ -2,7 +2,11 @@
<v-app> <v-app>
<v-navigation-drawer v-if="isAuthenticated" fixed v-model="drawer" app> <v-navigation-drawer v-if="isAuthenticated" fixed v-model="drawer" app>
<v-list dense> <v-list dense>
<v-list-tile v-for="item in navItems" :key="item.route" :to="item.route"> <v-list-tile
v-for="item in navItems"
:key="item.route"
:to="item.route"
>
<v-list-tile-action> <v-list-tile-action>
<v-icon>{{ "fa-" + item.icon }}</v-icon> <v-icon>{{ "fa-" + item.icon }}</v-icon>
</v-list-tile-action> </v-list-tile-action>
@@ -21,7 +25,8 @@
> >
<v-toolbar-side-icon @click.stop="drawer = !drawer"></v-toolbar-side-icon> <v-toolbar-side-icon @click.stop="drawer = !drawer"></v-toolbar-side-icon>
<v-toolbar-title style="width: 300px" class="ml-0 pl-3"> <v-toolbar-title style="width: 300px" class="ml-0 pl-3">
<v-icon>{{ appBar.icon }}</v-icon>&nbsp; <v-icon>{{ appBar.icon }}</v-icon
>&nbsp;
<span>{{ appBar.title }}</span> <span>{{ appBar.title }}</span>
</v-toolbar-title> </v-toolbar-title>
<v-spacer></v-spacer> <v-spacer></v-spacer>
@@ -36,9 +41,7 @@
@click="$gzevent.$emit('menu-click', item)" @click="$gzevent.$emit('menu-click', item)"
> >
<v-icon :color="item.color ? item.color : ''"> <v-icon :color="item.color ? item.color : ''">
{{ {{ "fa-" + item.icon }}
"fa-" + item.icon
}}
</v-icon> </v-icon>
</v-btn> </v-btn>
</template> </template>
@@ -52,11 +55,13 @@
<v-list> <v-list>
<template v-for="(item, index) in appBar.menuItems"> <template v-for="(item, index) in appBar.menuItems">
<v-subheader v-if="item.header" :key="index"> <v-subheader v-if="item.header" :key="index">
{{ {{ item.header }}
item.header
}}
</v-subheader> </v-subheader>
<v-divider v-else-if="item.divider" :key="index" :inset="item.inset"></v-divider> <v-divider
v-else-if="item.divider"
:key="index"
:inset="item.inset"
></v-divider>
<v-list-tile <v-list-tile
v-else v-else
:key="item.key" :key="item.key"
@@ -68,7 +73,8 @@
<v-icon <v-icon
v-if="item.icon" v-if="item.icon"
:color="item.color ? item.color : ''" :color="item.color ? item.color : ''"
>{{ "fa-" + item.icon }}</v-icon> >{{ "fa-" + item.icon }}</v-icon
>
</v-list-tile-action> </v-list-tile-action>
<v-list-tile-content> <v-list-tile-content>
<v-list-tile-title> <v-list-tile-title>
@@ -93,7 +99,9 @@
<v-flex primary py-2 text-xs-center white--text xs12> <v-flex primary py-2 text-xs-center white--text xs12>
<div> <div>
<a href="https://ayanova.com" target="_blank"> <a href="https://ayanova.com" target="_blank">
<span class="white--text caption">AyaNova ({{ version }}) {{ copyright }}</span> <span class="white--text caption"
>AyaNova ({{ version }}) {{ copyright }}</span
>
</a> </a>
</div> </div>
</v-flex> </v-flex>

View File

@@ -1,56 +1,73 @@
<template> <template>
<v-flex xs12 md12> <v-layout column wrap class="my-5" align-center v-if="this.formState.ready">
<div v-if="this.formReady"> <v-flex xs12 mt-1 mb-2>
<v-toolbar flat> <v-alert
<v-toolbar-title> ref="errorbox"
<v-icon large color="primary">fa-splotch</v-icon> v-show="formState.errorBoxMessage"
<span class="hidden-sm-and-down">{{ color="error"
this.$gzlocale.get("WidgetList") icon="fa-exclamation-circle "
}}</span> value="true"
</v-toolbar-title> transition="scale-transition"
<v-spacer></v-spacer> class="multi-line"
<v-btn icon @click="newItem()"> outline
<v-icon>fa-plus-circle</v-icon> >{{ formState.errorBoxMessage }}</v-alert
</v-btn>
<v-btn icon>
<v-icon>fa-filter</v-icon>
</v-btn>
<v-btn icon @click="getDataFromApi()">
<v-icon>fa-sync</v-icon>
</v-btn>
<v-btn icon>
<v-icon>fa-ellipsis-v</v-icon>
</v-btn>
</v-toolbar>
<v-data-table
v-model="selected"
:headers="headers"
:items="Items"
item-key="id"
:pagination.sync="pagination"
:total-items="totalItems"
:loading="loading"
:rows-per-page-items="rowsPerPageItems"
:rows-per-page-text="this.$gzlocale.get('RowsPerPage')"
class="elevation-1"
> >
<template slot="items" slot-scope="props"> </v-flex>
<td class="text-xs-left">{{ props.item.name | capitalize }}</td> <v-flex xs12 md12>
<td class="text-xs-left">{{ props.item.serial }}</td> <div v-if="this.formState.ready">
<td class="text-xs-left">{{ props.item.dollarAmount | currency }}</td> <v-toolbar flat>
<td class="text-xs-left">{{ props.item.active | boolastext }}</td> <v-toolbar-title>
<td class="text-xs-left">{{ props.item.roles }}</td> <v-icon large color="primary">fa-splotch</v-icon>
<td class="text-xs-left">{{ props.item.startDate | shortdate }}</td> <span class="hidden-sm-and-down">
<td class="text-xs-left">{{ props.item.endDate | shortdate }}</td> {{ this.$gzlocale.get("WidgetList") }}
<td class="justify-center layout px-0"> </span>
<v-icon class="mr-3" @click="editItem(props.item)" </v-toolbar-title>
>fa-pencil-alt</v-icon <v-spacer></v-spacer>
> <v-btn icon @click="newItem()">
</td> <v-icon>fa-plus-circle</v-icon>
</template> </v-btn>
</v-data-table> <v-btn icon>
</div> <v-icon>fa-filter</v-icon>
</v-flex> </v-btn>
<v-btn icon @click="getDataFromApi()">
<v-icon>fa-sync</v-icon>
</v-btn>
<v-btn icon>
<v-icon>fa-ellipsis-v</v-icon>
</v-btn>
</v-toolbar>
<v-data-table
v-model="selected"
:headers="headers"
:items="Items"
item-key="id"
:pagination.sync="pagination"
:total-items="totalItems"
:loading="loading"
:rows-per-page-items="rowsPerPageItems"
:rows-per-page-text="this.$gzlocale.get('RowsPerPage')"
class="elevation-1"
>
<template slot="items" slot-scope="props">
<td class="text-xs-left">{{ props.item.name | capitalize }}</td>
<td class="text-xs-left">{{ props.item.serial }}</td>
<td class="text-xs-left">
{{ props.item.dollarAmount | currency }}
</td>
<td class="text-xs-left">{{ props.item.active | boolastext }}</td>
<td class="text-xs-left">{{ props.item.roles }}</td>
<td class="text-xs-left">{{ props.item.startDate | shortdate }}</td>
<td class="text-xs-left">{{ props.item.endDate | shortdate }}</td>
<td class="justify-center layout px-0">
<v-icon class="mr-3" @click="editItem(props.item)"
>fa-pencil-alt</v-icon
>
</td>
</template>
</v-data-table>
</div>
</v-flex>
</v-layout>
</template> </template>
<script> <script>
@@ -77,15 +94,21 @@ export default {
header.text = that.$gzlocale.get(header.text); header.text = that.$gzlocale.get(header.text);
}); });
}) })
.then(() => (this.formReady = true)) .then(() => (this.formState.ready = true))
.catch(err => { .catch(err => {
this.formReady = true; //show the form anyway so we know what's what this.formState.ready = true; //show the form anyway so we know what's what
this.$gzHandleFormError(err); this.$gzHandleFormError(err);
}); });
}, },
data() { data() {
return { return {
formReady: false, formState: {
ready: false,
loading: true,
errorBoxMessage: null,
appError: null,
serverError: {}
},
dialogdata: { dialogdata: {
showeditdialog: false, showeditdialog: false,
recordId: 0 recordId: 0

View File

@@ -1,5 +1,18 @@
<template> <template>
<v-layout row v-if="this.formState.ready"> <v-layout row v-if="this.formState.ready">
<v-flex xs12 mt-1 mb-2>
<v-alert
ref="errorbox"
v-show="formState.errorBoxMessage"
color="error"
icon="fa-exclamation-circle "
value="true"
transition="scale-transition"
class="multi-line"
outline
>{{ formState.errorBoxMessage }}</v-alert
>
</v-flex>
<v-flex> <v-flex>
<v-card> <v-card>
<!-- <v-toolbar> <!-- <v-toolbar>
@@ -17,14 +30,10 @@
<v-list-tile avatar> <v-list-tile avatar>
<v-list-tile-content> <v-list-tile-content>
<v-list-tile-title> <v-list-tile-title>
{{ {{ this.$gzlocale.get("Version") }}
this.$gzlocale.get("Version")
}}
</v-list-tile-title> </v-list-tile-title>
<v-list-tile-sub-title> <v-list-tile-sub-title>
{{ {{ clientInfo.version }}
clientInfo.version
}}
</v-list-tile-sub-title> </v-list-tile-sub-title>
</v-list-tile-content> </v-list-tile-content>
</v-list-tile> </v-list-tile>
@@ -35,70 +44,50 @@
<v-list-tile avatar> <v-list-tile avatar>
<v-list-tile-content> <v-list-tile-content>
<v-list-tile-title> <v-list-tile-title>
{{ {{ this.$gzlocale.get("ServerAddress") }}
this.$gzlocale.get("ServerAddress")
}}
</v-list-tile-title> </v-list-tile-title>
<v-list-tile-sub-title> <v-list-tile-sub-title>
{{ {{ this.$store.state.apiUrl }}
this.$store.state.apiUrl
}}
</v-list-tile-sub-title> </v-list-tile-sub-title>
</v-list-tile-content> </v-list-tile-content>
</v-list-tile> </v-list-tile>
<v-list-tile avatar> <v-list-tile avatar>
<v-list-tile-content> <v-list-tile-content>
<v-list-tile-title> <v-list-tile-title>
{{ {{ this.$gzlocale.get("Version") }}
this.$gzlocale.get("Version")
}}
</v-list-tile-title> </v-list-tile-title>
<v-list-tile-sub-title> <v-list-tile-sub-title>
{{ {{ serverInfo.serverVersion }}
serverInfo.serverVersion
}}
</v-list-tile-sub-title> </v-list-tile-sub-title>
</v-list-tile-content> </v-list-tile-content>
</v-list-tile> </v-list-tile>
<v-list-tile avatar> <v-list-tile avatar>
<v-list-tile-content> <v-list-tile-content>
<v-list-tile-title> <v-list-tile-title>
{{ {{ this.$gzlocale.get("SchemaVersion") }}
this.$gzlocale.get("SchemaVersion")
}}
</v-list-tile-title> </v-list-tile-title>
<v-list-tile-sub-title> <v-list-tile-sub-title>
{{ {{ serverInfo.dbSchemaVersion }}
serverInfo.dbSchemaVersion
}}
</v-list-tile-sub-title> </v-list-tile-sub-title>
</v-list-tile-content> </v-list-tile-content>
</v-list-tile> </v-list-tile>
<v-list-tile avatar> <v-list-tile avatar>
<v-list-tile-content> <v-list-tile-content>
<v-list-tile-title> <v-list-tile-title>
{{ {{ this.$gzlocale.get("ServerTime") }}
this.$gzlocale.get("ServerTime")
}}
</v-list-tile-title> </v-list-tile-title>
<v-list-tile-sub-title> <v-list-tile-sub-title>
{{ {{ serverInfo.serverLocalTime }}
serverInfo.serverLocalTime
}}
</v-list-tile-sub-title> </v-list-tile-sub-title>
</v-list-tile-content> </v-list-tile-content>
</v-list-tile> </v-list-tile>
<v-list-tile avatar> <v-list-tile avatar>
<v-list-tile-content> <v-list-tile-content>
<v-list-tile-title> <v-list-tile-title>
{{ {{ this.$gzlocale.get("TimeZone") }}
this.$gzlocale.get("TimeZone")
}}
</v-list-tile-title> </v-list-tile-title>
<v-list-tile-sub-title> <v-list-tile-sub-title>
{{ {{ serverInfo.serverTimeZone }}
serverInfo.serverTimeZone
}}
</v-list-tile-sub-title> </v-list-tile-sub-title>
</v-list-tile-content> </v-list-tile-content>
</v-list-tile> </v-list-tile>
@@ -109,79 +98,57 @@
<v-list-tile avatar> <v-list-tile avatar>
<v-list-tile-content> <v-list-tile-content>
<v-list-tile-title> <v-list-tile-title>
{{ {{ this.$gzlocale.get("RegisteredUser") }}
this.$gzlocale.get("RegisteredUser")
}}
</v-list-tile-title> </v-list-tile-title>
<v-list-tile-sub-title> <v-list-tile-sub-title>
{{ {{ serverInfo.license.license.licensedTo }}
serverInfo.license.license.licensedTo
}}
</v-list-tile-sub-title> </v-list-tile-sub-title>
</v-list-tile-content> </v-list-tile-content>
</v-list-tile> </v-list-tile>
<v-list-tile avatar> <v-list-tile avatar>
<v-list-tile-content> <v-list-tile-content>
<v-list-tile-title> <v-list-tile-title>
{{ {{ this.$gzlocale.get("DatabaseID") }}
this.$gzlocale.get("DatabaseID")
}}
</v-list-tile-title> </v-list-tile-title>
<v-list-tile-sub-title> <v-list-tile-sub-title>
{{ {{ serverInfo.license.license.dbId }}
serverInfo.license.license.dbId
}}
</v-list-tile-sub-title> </v-list-tile-sub-title>
</v-list-tile-content> </v-list-tile-content>
</v-list-tile> </v-list-tile>
<v-list-tile avatar> <v-list-tile avatar>
<v-list-tile-content> <v-list-tile-content>
<v-list-tile-title> <v-list-tile-title>
{{ {{ this.$gzlocale.get("LicenseSerial") }}
this.$gzlocale.get("LicenseSerial")
}}
</v-list-tile-title> </v-list-tile-title>
<v-list-tile-sub-title> <v-list-tile-sub-title>
{{ {{ serverInfo.license.license.keySerial }}
serverInfo.license.license.keySerial
}}
</v-list-tile-sub-title> </v-list-tile-sub-title>
</v-list-tile-content> </v-list-tile-content>
</v-list-tile> </v-list-tile>
<v-list-tile avatar> <v-list-tile avatar>
<v-list-tile-content> <v-list-tile-content>
<v-list-tile-title> <v-list-tile-title>
{{ {{ this.$gzlocale.get("LicenseExpiration") }}
this.$gzlocale.get("LicenseExpiration")
}}
</v-list-tile-title> </v-list-tile-title>
<v-list-tile-sub-title> <v-list-tile-sub-title>
{{ {{ serverInfo.license.license.licenseExpiration }}
serverInfo.license.license.licenseExpiration
}}
</v-list-tile-sub-title> </v-list-tile-sub-title>
</v-list-tile-content> </v-list-tile-content>
</v-list-tile> </v-list-tile>
<v-list-tile avatar> <v-list-tile avatar>
<v-list-tile-content> <v-list-tile-content>
<v-list-tile-title> <v-list-tile-title>
{{ {{ this.$gzlocale.get("SupportedUntil") }}
this.$gzlocale.get("SupportedUntil")
}}
</v-list-tile-title> </v-list-tile-title>
<v-list-tile-sub-title> <v-list-tile-sub-title>
{{ {{ serverInfo.license.license.maintenanceExpiration }}
serverInfo.license.license.maintenanceExpiration
}}
</v-list-tile-sub-title> </v-list-tile-sub-title>
</v-list-tile-content> </v-list-tile-content>
</v-list-tile> </v-list-tile>
<v-list-tile avatar> <v-list-tile avatar>
<v-list-tile-content> <v-list-tile-content>
<v-list-tile-title> <v-list-tile-title>
{{ {{ this.$gzlocale.get("LicensedOptions") }}
this.$gzlocale.get("LicensedOptions")
}}
</v-list-tile-title> </v-list-tile-title>
<v-list-tile-sub-title <v-list-tile-sub-title
v-for="item in serverInfo.license.license.features" v-for="item in serverInfo.license.license.features"
@@ -205,24 +172,26 @@ import aboutInfo from "../api/aboutinfo";
export default { export default {
beforeCreate() { beforeCreate() {
var vm = this; var vm = this;
this.$gzlocale.fetch([ this.$gzlocale
"HelpAboutAyaNova", .fetch([
"ClientApp", "HelpAboutAyaNova",
"Server", "ClientApp",
"Version", "Server",
"SchemaVersion", "Version",
"ServerTime", "SchemaVersion",
"ServerAddress", "ServerTime",
"TimeZone", "ServerAddress",
"HelpLicense", "TimeZone",
"RegisteredUser", "HelpLicense",
"DatabaseID", "RegisteredUser",
"LicenseSerial", "DatabaseID",
"LicenseExpiration", "LicenseSerial",
"SupportedUntil", "LicenseExpiration",
"LicensedOptions", "SupportedUntil",
"Log" "LicensedOptions",
]).then(() => (vm.formState.ready = true)) "Log"
])
.then(() => (vm.formState.ready = true))
.catch(err => { .catch(err => {
vm.formState.ready = true; vm.formState.ready = true;
vm.$gzHandleFormError(err); vm.$gzHandleFormError(err);

View File

@@ -13,7 +13,8 @@
transition="scale-transition" transition="scale-transition"
class="multi-line" class="multi-line"
outline outline
>{{ formState.errorBoxMessage }}</v-alert> >{{ formState.errorBoxMessage }}</v-alert
>
</v-flex> </v-flex>
<v-flex xs12 sm6 lg4 xl3 px-2> <v-flex xs12 sm6 lg4 xl3 px-2>
<v-text-field <v-text-field
@@ -140,15 +141,15 @@
<v-layout align-left justify-center row wrap mt-5> <v-layout align-left justify-center row wrap mt-5>
<v-flex xs6 sm4> <v-flex xs6 sm4>
READY: {{ formState.ready }} READY: {{ formState.ready }}
<br> <br />
LOADING: {{ formState.loading }} LOADING: {{ formState.loading }}
<br> <br />
DIRTY: {{ formState.dirty }} DIRTY: {{ formState.dirty }}
<br> <br />
VALID: {{ formState.valid }} VALID: {{ formState.valid }}
<br> <br />
READONLY: {{ formState.readOnly }} READONLY: {{ formState.readOnly }}
<br> <br />
</v-flex> </v-flex>
</v-layout> </v-layout>
</v-form> </v-form>

View File

@@ -1,34 +1,44 @@
<template> <template>
<v-layout column wrap class="my-5" align-center v-if="this.formReady"> <!-- <v-flex xs12>
<v-flex xs12> <v-container grid-list-xl>-->
<v-container grid-list-xl> <v-layout row wrap align-top v-if="this.formState.ready">
<v-layout row wrap align-top> <v-flex xs12 mt-1 mb-2 >
<WidgetList /> <v-alert
<WarehouseTop /> ref="errorbox"
<POTop /> v-show="formState.errorBoxMessage"
<PartTop /> color="error"
<PartAssemblyTop /> icon="fa-exclamation-circle "
<v-flex xs12 md4> value="true"
<v-card class="elevation-0 transparent"> transition="scale-transition"
<v-card-text class="text-xs-center"> class="multi-line"
<v-icon x-large color="accent">fa-lightbulb</v-icon> outline
</v-card-text> >{{ formState.errorBoxMessage }}</v-alert>
<v-card-title primary-title class="layout justify-center"> </v-flex>
<div class="headline text-xs-center">Material Design</div> <WidgetList/>
</v-card-title> <WarehouseTop/>
<v-card-text> <POTop/>
Cras facilisis mi vitae nunc lobortis pharetra. Nulla volutpat <PartTop/>
tincidunt ornare. Pellentesque habitant morbi tristique senectus <PartAssemblyTop/>
et netus et malesuada fames ac turpis egestas. Nullam in aliquet <v-flex xs12 md4>
odio. Aliquam eu est vitae tellus bibendum tincidunt. <v-card class="elevation-0 transparent">
Suspendisse potenti. <v-card-text class="text-xs-center">
</v-card-text> <v-icon x-large color="accent">fa-lightbulb</v-icon>
</v-card> </v-card-text>
</v-flex> <v-card-title primary-title class="layout justify-center">
</v-layout> <div class="headline text-xs-center">Material Design</div>
</v-container> </v-card-title>
<v-card-text>
Cras facilisis mi vitae nunc lobortis pharetra. Nulla volutpat
tincidunt ornare. Pellentesque habitant morbi tristique senectus
et netus et malesuada fames ac turpis egestas. Nullam in aliquet
odio. Aliquam eu est vitae tellus bibendum tincidunt.
Suspendisse potenti.
</v-card-text>
</v-card>
</v-flex> </v-flex>
</v-layout> </v-layout>
<!-- </v-container>
</v-flex>-->
</template> </template>
<script> <script>
@@ -43,9 +53,9 @@ export default {
beforeCreate() { beforeCreate() {
this.$gzlocale this.$gzlocale
.fetch(["Inventory"]) .fetch(["Inventory"])
.then(() => (this.formReady = true)) .then(() => (this.formState.ready = true))
.catch(err => { .catch(err => {
this.formReady = true; this.formState.ready = true;
this.$gzHandleFormError(err); this.$gzHandleFormError(err);
}); });
}, },
@@ -65,7 +75,13 @@ export default {
}, },
data() { data() {
return { return {
formReady: false formState: {
ready: false,
loading: true,
errorBoxMessage: null,
appError: null,
serverError: {}
}
}; };
} }
}; };

View File

@@ -1,5 +1,18 @@
<template> <template>
<v-layout row v-if="this.formReady"> <v-layout row v-if="this.formState.ready">
<v-flex xs12 mt-1 mb-2>
<v-alert
ref="errorbox"
v-show="formState.errorBoxMessage"
color="error"
icon="fa-exclamation-circle "
value="true"
transition="scale-transition"
class="multi-line"
outline
>{{ formState.errorBoxMessage }}</v-alert
>
</v-flex>
<v-flex> <v-flex>
<h1>{{ this.$gzlocale.get("Log") }}</h1> <h1>{{ this.$gzlocale.get("Log") }}</h1>
<v-textarea v-model="logText" full-width readonly auto-grow></v-textarea> <v-textarea v-model="logText" full-width readonly auto-grow></v-textarea>
@@ -18,14 +31,23 @@ export default {
this.logText = outText; this.logText = outText;
this.$gzlocale this.$gzlocale
.fetch(["Log"]) .fetch(["Log"])
.then(() => (this.formReady = true)) .then(() => (this.formState.ready = true))
.catch(err => { .catch(err => {
this.formReady = true; this.formState.ready = true;
this.$gzHandleFormError(err); this.$gzHandleFormError(err);
}); });
}, },
data() { data() {
return { logText: "", formReady: false }; return {
logText: "",
formState: {
ready: false,
loading: true,
errorBoxMessage: null,
appError: null,
serverError: {}
}
};
} }
}; };
</script> </script>

View File

@@ -2,7 +2,12 @@
<v-container fluid> <v-container fluid>
<v-layout row wrap> <v-layout row wrap>
<v-flex xs12 class="hidden-sm-and-down text-xs-center" mt-5 ml-5 pl-5> <v-flex xs12 class="hidden-sm-and-down text-xs-center" mt-5 ml-5 pl-5>
<v-img :src="require('../assets/logo.svg')" class="my-3" contain height="200"></v-img> <v-img
:src="require('../assets/logo.svg')"
class="my-3"
contain
height="200"
></v-img>
</v-flex> </v-flex>
<v-flex xs12 class="hidden-md-and-up text-xs-center"> <v-flex xs12 class="hidden-md-and-up text-xs-center">
<v-img :src="require('../assets/logo.svg')" contain height="64"></v-img> <v-img :src="require('../assets/logo.svg')" contain height="64"></v-img>