This commit is contained in:
@@ -22,10 +22,16 @@ FIRST CLIENT SOURCE CODE COMMIT JAN 3rd 2019
|
|||||||
|
|
||||||
# OUTSTANDING MAJOR AREAS TO BETA
|
# OUTSTANDING MAJOR AREAS TO BETA
|
||||||
|
|
||||||
widgets.
|
Support information, easy way for beta testers to gather it all up in one place.
|
||||||
|
if they have enough rights then copy support information can get it all from the client end, if not then only the client stuff
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
dashboard widgets
|
||||||
|
|
||||||
They should be small and highly focused on a particular issue so that the user just picks the one they want and that's it, no config as it's built for a specific config already.
|
They should be small and highly focused on a particular issue so that the user just picks the one they want and that's it, no config as it's built for a specific config already.
|
||||||
So a hypothetical workorder count per time period widget would have a this month, last month, ytd, last year to date etc or however. Main idea being they are not needed to config, just pick the one you want
|
So a hypothetical workorder count per time period widget would have a this month, last month, ytd, last year to date etc or however.
|
||||||
|
Main idea being they are not needed to config, just pick the one you want
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
175
ayanova/src/components/dash-scheduser-next-wo.vue
Normal file
175
ayanova/src/components/dash-scheduser-next-wo.vue
Normal file
@@ -0,0 +1,175 @@
|
|||||||
|
<template>
|
||||||
|
<gz-dash
|
||||||
|
icon="$ayiSplotch"
|
||||||
|
:add-url="'widgets/0'"
|
||||||
|
:show-more-button="true"
|
||||||
|
:update-frequency="60000"
|
||||||
|
v-bind="$attrs"
|
||||||
|
@dash-refresh="getDataFromApi()"
|
||||||
|
@dash-more-click="moreClick()"
|
||||||
|
v-on="$listeners"
|
||||||
|
>
|
||||||
|
<template slot="main">
|
||||||
|
<div class="ml-4 mt-1">
|
||||||
|
<template v-for="(item, i) in obj"
|
||||||
|
><span :key="i"
|
||||||
|
>{{ localizedCurrency(item[1].v)
|
||||||
|
}}<span class="ml-2"
|
||||||
|
><a :href="'/widgets/' + item[0].i"> {{ item[0].v }}</a>
|
||||||
|
<br /></span></span
|
||||||
|
></template>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</gz-dash>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
/*
|
||||||
|
TODO: LINK TO LIST FROM HERE, GRID VIEW PREFILTERED AND SORTED
|
||||||
|
|
||||||
|
*/
|
||||||
|
import GzDash from "../components/dash-base.vue";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
GzDash
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
maxListItems: { type: Number, default: 10 }
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
obj: [],
|
||||||
|
|
||||||
|
timeZoneName: window.$gz.locale.getResolvedTimeZoneName(),
|
||||||
|
languageName: window.$gz.locale.getResolvedLanguage(),
|
||||||
|
hour12: window.$gz.locale.getHour12(),
|
||||||
|
formUserOptions: {}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
async created() {
|
||||||
|
await getFormUserOptions(this);
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
moreClick() {
|
||||||
|
// const LIST_FORM_KEY = "widget-list";
|
||||||
|
// //get current settings for the form
|
||||||
|
// const formSettings = window.$gz.form.getFormSettings(LIST_FORM_KEY);
|
||||||
|
// //switch to an unsaved listview and substitute this dash widgets list view criteria
|
||||||
|
// formSettings.temp.page = 0;
|
||||||
|
// formSettings.saved.dataTable.listViewId = -1;
|
||||||
|
// formSettings.saved.dataTable.unsavedListView = LIST_VIEW.listView;
|
||||||
|
// //save back again
|
||||||
|
// window.$gz.form.setFormSettings(LIST_FORM_KEY, formSettings);
|
||||||
|
// //now navigate to the data table list view
|
||||||
|
// this.$router.push({
|
||||||
|
// name: "widget-list"
|
||||||
|
// });
|
||||||
|
},
|
||||||
|
async getDataFromApi() {
|
||||||
|
//http://localhost:7575/api/v8.0/schedule/personal
|
||||||
|
//{"view":1,"dark":false,"start":"2022-02-21T08:00:00.000Z","end":"2022-02-22T07:59:59.000Z","wisuColorSource":"2","wisu":true,"reviews":true,"reminders":true}
|
||||||
|
// const lv = LIST_VIEW;
|
||||||
|
// lv.limit = this.maxListItems;
|
||||||
|
// const res = await window.$gz.api.post("data-list", lv);
|
||||||
|
// if (!res.error) {
|
||||||
|
// this.obj = res.data;
|
||||||
|
// } else {
|
||||||
|
// this.obj = [];
|
||||||
|
// }
|
||||||
|
|
||||||
|
try {
|
||||||
|
window.$gz.form.deleteAllErrorBoxErrors(this);
|
||||||
|
const res = await window.$gz.api.post("schedule/personal", {
|
||||||
|
view: window.$gz.util.calendarViewToAyaNovaEnum(this.viewType),
|
||||||
|
dark: this.$store.state.darkMode,
|
||||||
|
start: window.$gz.locale.localTimeDateStringToUTC8601String(
|
||||||
|
`${start.date}T00:00:00`,
|
||||||
|
this.timeZoneName
|
||||||
|
),
|
||||||
|
end: window.$gz.locale.localTimeDateStringToUTC8601String(
|
||||||
|
`${end.date}T23:59:59`,
|
||||||
|
this.timeZoneName
|
||||||
|
),
|
||||||
|
wisuColorSource: this.formUserOptions.wisuColorSource,
|
||||||
|
wisu: this.formUserOptions.wisu, //workorder item scheduled user records
|
||||||
|
reviews: this.formUserOptions.reviews,
|
||||||
|
reminders: this.formUserOptions.reminders
|
||||||
|
});
|
||||||
|
if (res.error) {
|
||||||
|
this.formState.serverError = res.error;
|
||||||
|
window.$gz.form.setErrorBoxErrors(this);
|
||||||
|
} else {
|
||||||
|
this.events.splice(0);
|
||||||
|
const timeZoneName = this.timeZoneName;
|
||||||
|
let i = res.data.length;
|
||||||
|
while (i--) {
|
||||||
|
const x = res.data[i];
|
||||||
|
this.events.push({
|
||||||
|
start: new Date(
|
||||||
|
new Date(x.start)
|
||||||
|
.toLocaleString("sv-SE", {
|
||||||
|
timeZone: timeZoneName
|
||||||
|
})
|
||||||
|
.replace(" ", "T")
|
||||||
|
).getTime(),
|
||||||
|
end: new Date(
|
||||||
|
new Date(x.end)
|
||||||
|
.toLocaleString("sv-SE", {
|
||||||
|
timeZone: timeZoneName
|
||||||
|
})
|
||||||
|
.replace(" ", "T")
|
||||||
|
).getTime(),
|
||||||
|
timed: true,
|
||||||
|
name: x.name,
|
||||||
|
color: x.color,
|
||||||
|
textColor: x.textColor,
|
||||||
|
type: x.type,
|
||||||
|
id: x.id,
|
||||||
|
editable: x.editable,
|
||||||
|
userId: x.userId
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
window.$gz.errorHandler.handleFormError(error, this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
async function getFormUserOptions(vm) {
|
||||||
|
const res = await window.$gz.api.get(`form-user-options/home-schedule`);
|
||||||
|
if (res.error) {
|
||||||
|
vm.formState.serverError = res.error;
|
||||||
|
window.$gz.form.setErrorBoxErrors(vm);
|
||||||
|
} else {
|
||||||
|
if (res.data == null) {
|
||||||
|
//make a default
|
||||||
|
vm.formUserOptions = {
|
||||||
|
firstTime: "00:00",
|
||||||
|
excludeDaysOfWeek: 0,
|
||||||
|
wisuColorSource: "2",
|
||||||
|
wisu: true,
|
||||||
|
reviews: true,
|
||||||
|
reminders: true
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
vm.formUserOptions = JSON.parse(res.data.options);
|
||||||
|
}
|
||||||
|
//takes local time in "HH:MM" format and converts to ISO UTC format for picker consumption
|
||||||
|
const d = new Date();
|
||||||
|
const temp = new Date(
|
||||||
|
d.getFullYear(),
|
||||||
|
d.getMonth(),
|
||||||
|
d.getDate(),
|
||||||
|
vm.formUserOptions.firstTime.split(":")[0],
|
||||||
|
vm.formUserOptions.firstTime.split(":")[1]
|
||||||
|
);
|
||||||
|
vm.tempFirstTime = window.$gz.locale.localTimeDateStringToUTC8601String(
|
||||||
|
temp.toISOString(),
|
||||||
|
vm.timeZoneName
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
<v-row v-if="formState.ready" align="start" justify="center">
|
<v-row v-if="formState.ready" align="start" justify="center">
|
||||||
<gz-error :error-box-message="formState.errorBoxMessage"></gz-error>
|
<gz-error :error-box-message="formState.errorBoxMessage"></gz-error>
|
||||||
<v-col cols="12" md="7">
|
<v-col cols="12" md="7">
|
||||||
<v-card data-cy="configCard">
|
<v-card id="ayaNovaConfigCard" data-cy="configCard">
|
||||||
<v-subheader>AyaNova server settings</v-subheader>
|
<v-subheader>AyaNova server settings</v-subheader>
|
||||||
<v-list two-line>
|
<v-list two-line>
|
||||||
<v-list-item>
|
<v-list-item>
|
||||||
@@ -201,13 +201,20 @@ export default {
|
|||||||
//////////////////////
|
//////////////////////
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
function generateMenu() {
|
function generateMenu(vm) {
|
||||||
const menuOptions = {
|
const menuOptions = {
|
||||||
isMain: true,
|
isMain: true,
|
||||||
icon: "$ayiInfoCircle",
|
icon: "$ayiInfoCircle",
|
||||||
title: "ViewServerConfiguration",
|
title: "ViewServerConfiguration",
|
||||||
helpUrl: "ops-server-information",
|
helpUrl: "ops-server-information",
|
||||||
menuItems: []
|
menuItems: [
|
||||||
|
{
|
||||||
|
title: "CopyToClipboard",
|
||||||
|
icon: "$ayiCopy",
|
||||||
|
key: `${FORM_KEY}:copyinfo`,
|
||||||
|
vm: vm
|
||||||
|
}
|
||||||
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
window.$gz.eventBus.$emit("menu-change", menuOptions);
|
window.$gz.eventBus.$emit("menu-change", menuOptions);
|
||||||
@@ -223,6 +230,19 @@ function clickHandler(menuItem) {
|
|||||||
const m = window.$gz.menu.parseMenuItem(menuItem);
|
const m = window.$gz.menu.parseMenuItem(menuItem);
|
||||||
if (m.owner == FORM_KEY && !m.disabled) {
|
if (m.owner == FORM_KEY && !m.disabled) {
|
||||||
switch (m.key) {
|
switch (m.key) {
|
||||||
|
case "copyinfo":
|
||||||
|
//put the info on the clipboard:
|
||||||
|
{
|
||||||
|
const element = document.getElementById("ayaNovaConfigCard");
|
||||||
|
const text = element.innerText || element.textContent;
|
||||||
|
window.$gz.util.copyToClipboard(text);
|
||||||
|
// let logText = "";
|
||||||
|
// m.vm.$store.state.logArray.forEach(function appendLogItem(value) {
|
||||||
|
// logText += value + "\n";
|
||||||
|
// });
|
||||||
|
//window.$gz.util.copyToClipboard(text + "\nCLIENT LOG\n" + logText);
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
window.$gz.eventBus.$emit(
|
window.$gz.eventBus.$emit(
|
||||||
"notify-warning",
|
"notify-warning",
|
||||||
|
|||||||
Reference in New Issue
Block a user