HUGE REFACTOR / CLEANUP
if there is a issue it's probably something in here that was changed
This commit is contained in:
@@ -148,7 +148,6 @@
|
||||
<template v-if="c.t == 1">
|
||||
<!-- DATETIME -->
|
||||
<template v-if="c.i && c.i != 0 && !c.nopen">
|
||||
<!-- openable object with an ID -->
|
||||
<div
|
||||
class="subtitle-1"
|
||||
@click="gridCellButtonClick(c.key, c.i, c.ot)"
|
||||
@@ -163,7 +162,6 @@
|
||||
<template v-else-if="c.t == 2">
|
||||
<!-- DATE -->
|
||||
<template v-if="c.i && c.i != 0 && !c.nopen">
|
||||
<!-- openable object with an ID -->
|
||||
<div
|
||||
class="subtitle-1"
|
||||
@click="gridCellButtonClick(c.key, c.i, c.ot)"
|
||||
@@ -178,7 +176,6 @@
|
||||
<template v-else-if="c.t == 3">
|
||||
<!-- TIME -->
|
||||
<template v-if="c.i && c.i != 0 && !c.nopen">
|
||||
<!-- openable object with an ID -->
|
||||
<div
|
||||
class="subtitle-1"
|
||||
@click="gridCellButtonClick(c.key, c.i, c.ot)"
|
||||
@@ -193,7 +190,6 @@
|
||||
<template v-else-if="c.t == 4">
|
||||
<!-- TEXT (also maybe openable)-->
|
||||
<template v-if="c.i && c.i != 0 && !c.nopen">
|
||||
<!-- openable object with an ID -->
|
||||
<div
|
||||
class="subtitle-1"
|
||||
@click="gridCellButtonClick(c.key, c.i, c.ot)"
|
||||
@@ -208,7 +204,6 @@
|
||||
<template v-else-if="c.t == 5">
|
||||
<!-- INTEGER -->
|
||||
<template v-if="c.i && c.i != 0 && !c.nopen">
|
||||
<!-- openable object with an ID -->
|
||||
<div
|
||||
class="subtitle-1"
|
||||
@click="gridCellButtonClick(c.key, c.i, c.ot)"
|
||||
@@ -232,7 +227,6 @@
|
||||
<template v-else-if="c.t == 7">
|
||||
<!-- DECIMAL -->
|
||||
<template v-if="c.i && c.i != 0 && !c.nopen">
|
||||
<!-- openable object with an ID -->
|
||||
<div
|
||||
class="subtitle-1"
|
||||
@click="gridCellButtonClick(c.key, c.i, c.ot)"
|
||||
@@ -255,7 +249,6 @@
|
||||
<template v-else-if="c.t == 10">
|
||||
<!-- ENUM (translated to text on getdata) ALSO MAYBE OPENABLE -->
|
||||
<template v-if="c.i && c.ot">
|
||||
<!-- openable object with an ID -->
|
||||
<div
|
||||
class="subtitle-1"
|
||||
@click="gridCellButtonClick(c.key, c.i, c.ot)"
|
||||
@@ -363,7 +356,6 @@
|
||||
<template v-if="c.t == 1">
|
||||
<!-- DATETIME -->
|
||||
<template v-if="c.i && c.i != 0 && !c.nopen">
|
||||
<!-- openable object with an ID -->
|
||||
<div
|
||||
class="subtitle-1"
|
||||
@click="gridCellButtonClick(c.key, c.i, c.ot)"
|
||||
@@ -378,7 +370,6 @@
|
||||
<template v-else-if="c.t == 2">
|
||||
<!-- DATE -->
|
||||
<template v-if="c.i && c.i != 0 && !c.nopen">
|
||||
<!-- openable object with an ID -->
|
||||
<div
|
||||
class="subtitle-1"
|
||||
@click="gridCellButtonClick(c.key, c.i, c.ot)"
|
||||
@@ -393,7 +384,6 @@
|
||||
<template v-else-if="c.t == 3">
|
||||
<!-- TIME -->
|
||||
<template v-if="c.i && c.i != 0 && !c.nopen">
|
||||
<!-- openable object with an ID -->
|
||||
<div
|
||||
class="subtitle-1"
|
||||
@click="gridCellButtonClick(c.key, c.i, c.ot)"
|
||||
@@ -408,7 +398,6 @@
|
||||
<template v-else-if="c.t == 4">
|
||||
<!-- TEXT (also maybe openable)-->
|
||||
<template v-if="c.i && c.i != 0 && !c.nopen">
|
||||
<!-- openable object with an ID -->
|
||||
<div
|
||||
class="subtitle-1"
|
||||
@click="gridCellButtonClick(c.key, c.i, c.ot)"
|
||||
@@ -423,7 +412,6 @@
|
||||
<template v-else-if="c.t == 5">
|
||||
<!-- INTEGER -->
|
||||
<template v-if="c.i && c.i != 0 && !c.nopen">
|
||||
<!-- openable object with an ID -->
|
||||
<div
|
||||
class="subtitle-1"
|
||||
@click="gridCellButtonClick(c.key, c.i, c.ot)"
|
||||
@@ -450,7 +438,6 @@
|
||||
<template v-else-if="c.t == 7">
|
||||
<!-- DECIMAL -->
|
||||
<template v-if="c.i && c.i != 0 && !c.nopen">
|
||||
<!-- openable object with an ID -->
|
||||
<div
|
||||
class="subtitle-1"
|
||||
@click="gridCellButtonClick(c.key, c.i, c.ot)"
|
||||
@@ -473,7 +460,6 @@
|
||||
<template v-else-if="c.t == 10">
|
||||
<!-- ENUM (translated to text on getdata) ALSO MAYBE OPENABLE -->
|
||||
<template v-if="c.i && c.ot">
|
||||
<!-- openable object with an ID -->
|
||||
<div
|
||||
class="subtitle-1"
|
||||
@click="gridCellButtonClick(c.key, c.i, c.ot)"
|
||||
@@ -527,7 +513,6 @@
|
||||
|
||||
<script>
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/* Xeslint-disable */
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//NOTE: if get duplicate keys detected error here it's because whatever is the rowid column
|
||||
//has duplicate values in it and should be unique in every row
|
||||
@@ -572,7 +557,6 @@ export default {
|
||||
default: undefined
|
||||
},
|
||||
preFilterMode: {
|
||||
//{icon:null,viz:null,ayatype:null,id:null,clearable:false}
|
||||
type: Object,
|
||||
default: null
|
||||
},
|
||||
@@ -596,13 +580,12 @@ export default {
|
||||
watch: {
|
||||
dataTablePagingOptions: {
|
||||
async handler() {
|
||||
//{ "page": 1, "itemsPerPage": 10, "sortBy": [], "sortDesc": [], "groupBy": [], "groupDesc": [], "mustSort": false, "multiSort": false }
|
||||
//this code works around some weird bug that causes visible items to be selected in grid (only, not in actual selected array, just a visual thing)
|
||||
// when breakpoint is switched between wide and narrow either way. No idea why it happens but this fixes that issue and also ensures that there are no
|
||||
|
||||
//spurious fetches happening just because the view has changed
|
||||
//See what has changed and record it for processing
|
||||
let sortHasChanged = !(
|
||||
const sortHasChanged = !(
|
||||
window.$gz.util.isEqualArraysOfPrimitives(
|
||||
this.dataTablePagingOptions.sortBy,
|
||||
this.lastDataTablePagingOptions.sortBy
|
||||
@@ -613,7 +596,7 @@ export default {
|
||||
)
|
||||
);
|
||||
|
||||
let pagingHaschanged = !(
|
||||
const pagingHaschanged = !(
|
||||
this.lastDataTablePagingOptions.page ==
|
||||
this.dataTablePagingOptions.page &&
|
||||
this.lastDataTablePagingOptions.itemsPerPage ==
|
||||
@@ -682,15 +665,15 @@ export default {
|
||||
//Used by narrow view to get the "header" text for a column based on the column key
|
||||
getHeaderText(key) {
|
||||
//key format is row-column e.g."500-2"
|
||||
let columnIndex = key.split("-")[1];
|
||||
let header = this.headers[columnIndex];
|
||||
const columnIndex = key.split("-")[1];
|
||||
const header = this.headers[columnIndex];
|
||||
if (header && header.text) {
|
||||
return header.text;
|
||||
}
|
||||
return "";
|
||||
},
|
||||
async filter(item) {
|
||||
let res = await this.$refs.dataTableFilter.open(item);
|
||||
const res = await this.$refs.dataTableFilter.open(item);
|
||||
if (res && res.refresh == true) {
|
||||
this.getDataFromApi();
|
||||
}
|
||||
@@ -707,7 +690,7 @@ export default {
|
||||
setActiveFilter(this); //will not trigger refresh yet
|
||||
|
||||
//Call api method to clear this filter
|
||||
let res = await window.$gz.api.remove(
|
||||
const res = await window.$gz.api.remove(
|
||||
`data-list-filter/${this.activeFilterId}`
|
||||
);
|
||||
if (res.error) {
|
||||
@@ -727,7 +710,7 @@ export default {
|
||||
return null;
|
||||
},
|
||||
async editFilter() {
|
||||
let res = await this.$refs.dataTableFilterManager.open();
|
||||
const res = await this.$refs.dataTableFilterManager.open();
|
||||
if (res && res.refresh == true) {
|
||||
if (res.newFilterId) {
|
||||
//save as new filter, select it
|
||||
@@ -739,7 +722,7 @@ export default {
|
||||
}
|
||||
},
|
||||
async mobileColumnFilterSelect() {
|
||||
let resHeaderItem = await this.$refs.dataTableMobileFilterColumnSelector.open(
|
||||
const resHeaderItem = await this.$refs.dataTableMobileFilterColumnSelector.open(
|
||||
this.headers,
|
||||
this.filterColor
|
||||
);
|
||||
@@ -749,24 +732,24 @@ export default {
|
||||
},
|
||||
keyArrayFromSortByArray(sortBy) {
|
||||
return sortBy.map(sortItem => {
|
||||
let val = this.headers.find(z => z.value == sortItem);
|
||||
const val = this.headers.find(z => z.value == sortItem);
|
||||
if (val) {
|
||||
return val.fk;
|
||||
}
|
||||
});
|
||||
},
|
||||
setSortIndicatorsFromDataListResponse(rsort) {
|
||||
let sortBy = [];
|
||||
let sortDesc = [];
|
||||
const sortBy = [];
|
||||
const sortDesc = [];
|
||||
if (rsort != null) {
|
||||
Object.keys(rsort).forEach((key, index) => {
|
||||
//Pull column header name "value" from "fk"matching "key" here from this.headers columns.c0 etc here from this.headers see above method
|
||||
let found = this.headers.find(z => z.fk == key);
|
||||
const found = this.headers.find(z => z.fk == key);
|
||||
if (found != null) {
|
||||
sortBy.push(found.value);
|
||||
|
||||
//if not null then push into the sortBy array
|
||||
let sort = rsort[key];
|
||||
const sort = rsort[key];
|
||||
if (sort == "-") {
|
||||
sortDesc.push(true);
|
||||
} else {
|
||||
@@ -783,7 +766,7 @@ export default {
|
||||
this.getDataFromApi();
|
||||
},
|
||||
getDataListSelection(ayaType) {
|
||||
let vm = this;
|
||||
const vm = this;
|
||||
//called when parent form needs the selected id's or the list view options needed to rehydrate the entire list of id's in the same order and filter
|
||||
//i.e. for reporting, batch operations etc
|
||||
|
||||
@@ -828,9 +811,6 @@ export default {
|
||||
params: {
|
||||
dataListKey: this.dataListKey,
|
||||
hiddenAffectiveColumns: this.hiddenAffectiveColumns
|
||||
// ,
|
||||
// formKey: this.formKey,
|
||||
// activeFilterId: this.activeFilterId
|
||||
}
|
||||
});
|
||||
},
|
||||
@@ -856,7 +836,7 @@ export default {
|
||||
//c.cst is styling added here by data builder in the form of an object with props set for compatibility with Vue
|
||||
//c.clr is a specific color coming from the server for items that support colors (reminders etc)
|
||||
if (c.cst || c.clr) {
|
||||
let clrBit = {};
|
||||
const clrBit = {};
|
||||
if (c.clr) {
|
||||
if (c.clr[0] != "#") {
|
||||
c.clr = "#" + c.clr;
|
||||
@@ -869,13 +849,13 @@ export default {
|
||||
}
|
||||
},
|
||||
async getDataFromApi(deSelectAll) {
|
||||
let vm = this;
|
||||
const vm = this;
|
||||
|
||||
if (vm.loading) {
|
||||
return;
|
||||
}
|
||||
//start with defaults
|
||||
let listOptions = {
|
||||
const listOptions = {
|
||||
DataListKey: vm.dataListKey,
|
||||
Limit: 5,
|
||||
Offset: 0
|
||||
@@ -911,7 +891,7 @@ export default {
|
||||
}
|
||||
|
||||
try {
|
||||
let res = await window.$gz.api.post("data-list", {
|
||||
const res = await window.$gz.api.post("data-list", {
|
||||
offset: listOptions.Offset,
|
||||
limit: listOptions.Limit,
|
||||
dataListKey: vm.dataListKey,
|
||||
@@ -973,7 +953,7 @@ export default {
|
||||
},
|
||||
async created() {
|
||||
//get pick lists
|
||||
let vm = this;
|
||||
const vm = this;
|
||||
await initForm(vm);
|
||||
vm.loading = false;
|
||||
vm.getDataFromApi();
|
||||
@@ -986,11 +966,11 @@ function buildHeaders(columnData) {
|
||||
if (!columnData) {
|
||||
return [];
|
||||
}
|
||||
let ret = [];
|
||||
const ret = [];
|
||||
//iterate the columns
|
||||
for (let i = 0; i < columnData.length; i++) {
|
||||
let cm = columnData[i];
|
||||
let h = {};
|
||||
const cm = columnData[i];
|
||||
const h = {};
|
||||
h.text = window.$gz.translation.get(cm.cm);
|
||||
h.fk = cm.fk;
|
||||
h.value = "columns.c" + i.toString(); //+".v";
|
||||
@@ -1020,38 +1000,38 @@ function buildHeaders(columnData) {
|
||||
async function buildRecords(listData, columndefinitions, ridColumnOpenable) {
|
||||
//iterate data, build each object keyed with index name and display set to correct translated filter and then return
|
||||
|
||||
let ret = [];
|
||||
const ret = [];
|
||||
if (!listData) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
//cache display format stuff
|
||||
let timeZoneName = window.$gz.locale.getResolvedTimeZoneName();
|
||||
let languageName = window.$gz.locale.getResolvedLanguage();
|
||||
let hour12 = window.$gz.store.state.userOptions.hour12;
|
||||
let currencyName = window.$gz.locale.getCurrencyName();
|
||||
const timeZoneName = window.$gz.locale.getResolvedTimeZoneName();
|
||||
const languageName = window.$gz.locale.getResolvedLanguage();
|
||||
const hour12 = window.$gz.store.state.userOptions.hour12;
|
||||
const currencyName = window.$gz.locale.getCurrencyName();
|
||||
|
||||
//this will cache the first time it's required (if required)
|
||||
let availableRoles = null;
|
||||
|
||||
//comes as an array of arrays, needs to leave as an array of objects representing each row
|
||||
for (let iRow = 0; iRow < listData.length; iRow++) {
|
||||
let row = listData[iRow];
|
||||
const row = listData[iRow];
|
||||
//iterate row and build object representing row data keyed to index
|
||||
|
||||
//container object for row
|
||||
//id will be set later when code below encounters the id column which could be in any position (or not at all) but is identified by it's rid property
|
||||
let o = { id: undefined, columns: {} };
|
||||
const o = { id: undefined, columns: {} };
|
||||
|
||||
for (let iColumn = 0; iColumn < row.length; iColumn++) {
|
||||
let column = row[iColumn];
|
||||
const column = row[iColumn];
|
||||
|
||||
//rowId?
|
||||
if (column.rid) {
|
||||
o.id = column.i;
|
||||
}
|
||||
|
||||
let dataType = columndefinitions[iColumn].dt;
|
||||
const dataType = columndefinitions[iColumn].dt;
|
||||
let display = column.v;
|
||||
let cstStyle = null; //custom additional styling here in grid e.g. negative numbers etc
|
||||
|
||||
@@ -1175,12 +1155,12 @@ async function buildRecords(listData, columndefinitions, ridColumnOpenable) {
|
||||
"AuthorizationRoles"
|
||||
);
|
||||
}
|
||||
let roles = display;
|
||||
let roleNames = [];
|
||||
const roles = display;
|
||||
const roleNames = [];
|
||||
|
||||
if (roles != null && roles != 0) {
|
||||
for (let i = 0; i < availableRoles.length; i++) {
|
||||
let role = availableRoles[i];
|
||||
const role = availableRoles[i];
|
||||
if (!!(roles & role.id)) {
|
||||
roleNames.push(role.name);
|
||||
}
|
||||
@@ -1194,7 +1174,7 @@ async function buildRecords(listData, columndefinitions, ridColumnOpenable) {
|
||||
}
|
||||
}
|
||||
//build the row column object vm will be used by the datatable
|
||||
let columnObject = {
|
||||
const columnObject = {
|
||||
v: display,
|
||||
t: dataType,
|
||||
key: iRow + "-" + iColumn
|
||||
@@ -1244,9 +1224,9 @@ async function fetchTranslatedHeaderNames(columnData) {
|
||||
if (!columnData) {
|
||||
return;
|
||||
}
|
||||
let headerKeys = [];
|
||||
const headerKeys = [];
|
||||
for (let i = 0; i < columnData.length; i++) {
|
||||
let cm = columnData[i];
|
||||
const cm = columnData[i];
|
||||
headerKeys.push(cm.cm);
|
||||
}
|
||||
//Now fetch all the keys
|
||||
@@ -1261,9 +1241,9 @@ async function fetchEnums(columnData) {
|
||||
if (!columnData) {
|
||||
return;
|
||||
}
|
||||
let headerKeys = [];
|
||||
|
||||
for (let i = 0; i < columnData.length; i++) {
|
||||
let cm = columnData[i];
|
||||
const cm = columnData[i];
|
||||
if (cm.et) {
|
||||
await window.$gz.enums.fetchEnumList(cm.et);
|
||||
}
|
||||
@@ -1287,7 +1267,7 @@ async function initForm(vm) {
|
||||
////////////////////
|
||||
//
|
||||
async function fetchSavedFilterList(vm) {
|
||||
let res = await window.$gz.api.get(
|
||||
const res = await window.$gz.api.get(
|
||||
"data-list-filter/list?ListKey=" + vm.dataListKey
|
||||
);
|
||||
if (res.error) {
|
||||
@@ -1303,7 +1283,7 @@ async function fetchSavedFilterList(vm) {
|
||||
////////////////////
|
||||
//
|
||||
function saveFormSettings(vm) {
|
||||
let newFormSettings = {
|
||||
const newFormSettings = {
|
||||
temp: { page: vm.dataTablePagingOptions.page },
|
||||
saved: {
|
||||
itemsPerPage: vm.dataTablePagingOptions.itemsPerPage,
|
||||
@@ -1315,7 +1295,7 @@ function saveFormSettings(vm) {
|
||||
|
||||
//preserve anything not directly related to datatable
|
||||
//for now it's just the last report so nothing fancy here
|
||||
let formSettings = window.$gz.form.getFormSettings(vm.formKey);
|
||||
const formSettings = window.$gz.form.getFormSettings(vm.formKey);
|
||||
|
||||
if (formSettings != null && formSettings.saved != null) {
|
||||
if (formSettings.saved.lastReport != null) {
|
||||
@@ -1340,7 +1320,7 @@ function setActiveFilter(vm, desiredId) {
|
||||
}
|
||||
|
||||
//no specific id so attempt to set to default
|
||||
let dflt = vm.selectLists.savedFilters.find(z => z.default == true);
|
||||
const dflt = vm.selectLists.savedFilters.find(z => z.default == true);
|
||||
if (dflt) {
|
||||
vm.activeFilterId = dflt.id;
|
||||
return;
|
||||
@@ -1352,7 +1332,7 @@ function setActiveFilter(vm, desiredId) {
|
||||
////////////////////
|
||||
//
|
||||
function loadFormSettings(vm) {
|
||||
let formSettings = window.$gz.form.getFormSettings(vm.formKey);
|
||||
const formSettings = window.$gz.form.getFormSettings(vm.formKey);
|
||||
|
||||
//process SAVED formsettings
|
||||
if (formSettings.saved) {
|
||||
|
||||
Reference in New Issue
Block a user