fetch speed up implemented fully
This commit is contained in:
@@ -15,14 +15,23 @@
|
|||||||
|
|
||||||
SVC-SCHEDULE OUTSTANDING ITEMS
|
SVC-SCHEDULE OUTSTANDING ITEMS
|
||||||
|
|
||||||
loaded schedule is slow to display, see if any speedups available
|
Port fetch events changes to personal schedule
|
||||||
check the fetch events and put in some traces to calculate when and where
|
|
||||||
|
Filter and sort issues:
|
||||||
|
Not in settings? Separate filter icon at top mimic data table UI?
|
||||||
|
Saved filters with order and names so users can quickly flip between groups of users?
|
||||||
|
Consider how to add filter by tag for users to schedule so can quickly select by tag(s)
|
||||||
|
sort order?? Not sure how to handle this one as filter and ad-hoc sort are at odds
|
||||||
|
View schedule by user so can click through user to schedule for *that* user alone, (brings up home-schedule maybe or I guess a copy would be easiest)
|
||||||
|
this will solve issue when people say "Why can't I view month but for one user instead?"
|
||||||
|
probably easiest from both the User edit form for admin and from the svc-schedule form (maybe a link on their names at top?? Opens same view currently selected but for that *one* user)
|
||||||
|
tech selection setting control ?
|
||||||
|
vertical in table in settings
|
||||||
|
show all techs in table with prior selections in order at the top and non selected at the end in alpha order
|
||||||
|
each row has up down control and checkbox to show so "Name|^|v|show"
|
||||||
|
|
||||||
During settings form, fetchEvents should be disabled until after save as changing DOW is triggering fetch which can be slow in a loaded sched
|
During settings form, fetchEvents should be disabled until after save as changing DOW is triggering fetch which can be slow in a loaded sched
|
||||||
need tech selection setting control
|
|
||||||
vertical in table in settings
|
|
||||||
show all techs in table with prior selections in order at the top and non selected at the end in alpha order
|
|
||||||
each row has up down control and checkbox to show so "Name|^|v|show"
|
|
||||||
|
|
||||||
Remove day view options and replace by category view I think, but keep code and see how it goes may be switch back in again if demanded or makes sense
|
Remove day view options and replace by category view I think, but keep code and see how it goes may be switch back in again if demanded or makes sense
|
||||||
instead of new translation key, just use the day name but use it with the category view
|
instead of new translation key, just use the day name but use it with the category view
|
||||||
@@ -33,9 +42,6 @@
|
|||||||
schedule settings keyed by form re-use
|
schedule settings keyed by form re-use
|
||||||
3698 - hide unassigned tech slot (or case 3697 above would take care of that too)
|
3698 - hide unassigned tech slot (or case 3697 above would take care of that too)
|
||||||
|
|
||||||
View schedule by user so can click through user to schedule for *that* user alone, (brings up home-schedule maybe or I guess a copy would be easiest)
|
|
||||||
this will solve issue when people say "Why can't I view month but for one user instead?"
|
|
||||||
probably easiest from both the User edit form for admin and from the svc-schedule form (maybe a link on their names at top?? Opens same view currently selected but for that *one* user)
|
|
||||||
|
|
||||||
|
|
||||||
3766 - view schedule filtered by customer so can see at a glance all past and future for a single customer (more data table filter similarity)
|
3766 - view schedule filtered by customer so can see at a glance all past and future for a single customer (more data table filter similarity)
|
||||||
|
|||||||
@@ -838,19 +838,36 @@ export default {
|
|||||||
this.formState.serverError = res.error;
|
this.formState.serverError = res.error;
|
||||||
window.$gz.form.setErrorBoxErrors(this);
|
window.$gz.form.setErrorBoxErrors(this);
|
||||||
} else {
|
} else {
|
||||||
this.events = res.data.map(x => {
|
this.events.splice(0);
|
||||||
return {
|
const timeZoneName = this.timeZoneName;
|
||||||
...x,
|
let i = res.data.length;
|
||||||
start: window.$gz.locale.utcDateToScheduleCompatibleFormatLocalized(
|
while (i--) {
|
||||||
x.start,
|
const x = res.data[i];
|
||||||
this.timeZoneName
|
this.events.push({
|
||||||
),
|
start: new Date(
|
||||||
end: window.$gz.locale.utcDateToScheduleCompatibleFormatLocalized(
|
new Date(x.start)
|
||||||
x.end,
|
.toLocaleString("sv-SE", {
|
||||||
this.timeZoneName
|
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) {
|
} catch (error) {
|
||||||
window.$gz.errorHandler.handleFormError(error, this);
|
window.$gz.errorHandler.handleFormError(error, this);
|
||||||
|
|||||||
@@ -836,7 +836,7 @@ export default {
|
|||||||
this.timeZoneName
|
this.timeZoneName
|
||||||
),
|
),
|
||||||
wisuColorSource: this.formUserOptions.wisuColorSource,
|
wisuColorSource: this.formUserOptions.wisuColorSource,
|
||||||
wisu: this.formUserOptions.wisu, //workorder item scheduled user records
|
wisu: this.formUserOptions.wisu,
|
||||||
reviews: this.formUserOptions.reviews,
|
reviews: this.formUserOptions.reviews,
|
||||||
reminders: this.formUserOptions.reminders,
|
reminders: this.formUserOptions.reminders,
|
||||||
users: this.formUserOptions.users
|
users: this.formUserOptions.users
|
||||||
@@ -846,25 +846,8 @@ export default {
|
|||||||
this.formState.serverError = res.error;
|
this.formState.serverError = res.error;
|
||||||
window.$gz.form.setErrorBoxErrors(this);
|
window.$gz.form.setErrorBoxErrors(this);
|
||||||
} else {
|
} else {
|
||||||
const vm = this;
|
|
||||||
|
|
||||||
/*
|
|
||||||
return new Date(
|
|
||||||
new Date(value) //convert to locale timezone and output in the closest thing to iso-8601 format
|
|
||||||
.toLocaleString("sv-SE", {
|
|
||||||
timeZone: timeZoneName
|
|
||||||
})
|
|
||||||
.replace(" ", "T") //Safari can't parse the date from here because sv-SE puts a space between date and time and Safari will only parse if it has a T between
|
|
||||||
).getTime();
|
|
||||||
*/
|
|
||||||
//=============================================
|
|
||||||
//HOT LOOP
|
|
||||||
//=============================================
|
|
||||||
console.time("process");
|
|
||||||
// const t = [];
|
|
||||||
this.events.splice(0);
|
this.events.splice(0);
|
||||||
const timeZoneName = this.timeZoneName;
|
const timeZoneName = this.timeZoneName;
|
||||||
|
|
||||||
let i = res.data.length;
|
let i = res.data.length;
|
||||||
while (i--) {
|
while (i--) {
|
||||||
const x = res.data[i];
|
const x = res.data[i];
|
||||||
@@ -891,69 +874,9 @@ export default {
|
|||||||
id: x.id,
|
id: x.id,
|
||||||
editable: x.editable,
|
editable: x.editable,
|
||||||
userId: x.userId,
|
userId: x.userId,
|
||||||
category: vm.availableUsers.find(a => a.id == x.userId).name
|
category: this.availableUsers.find(a => a.id == x.userId).name
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//this.events = t;
|
|
||||||
|
|
||||||
// this.events = res.data.map(x => {
|
|
||||||
// return {
|
|
||||||
// ...x,
|
|
||||||
// start: window.$gz.locale.utcDateToScheduleCompatibleFormatLocalized(
|
|
||||||
// x.start,
|
|
||||||
// this.timeZoneName
|
|
||||||
// ),
|
|
||||||
// end: window.$gz.locale.utcDateToScheduleCompatibleFormatLocalized(
|
|
||||||
// x.end,
|
|
||||||
// this.timeZoneName
|
|
||||||
// ),
|
|
||||||
// category: vm.availableUsers.find(a => a.id == x.userId).name
|
|
||||||
// };
|
|
||||||
// });
|
|
||||||
|
|
||||||
// t;
|
|
||||||
//====================================================
|
|
||||||
console.timeEnd("process");
|
|
||||||
//console.log(`processed ${this.events.length} items`);
|
|
||||||
/*
|
|
||||||
sept baseline
|
|
||||||
process: 4632ms - timer ended svc-schedule.vue:882
|
|
||||||
process: 19ms - timer ended svc-schedule.vue:882
|
|
||||||
process: 4467ms - timer ended
|
|
||||||
none under 4 seconds
|
|
||||||
|
|
||||||
|
|
||||||
{
|
|
||||||
"0": {
|
|
||||||
"start": "2021-09-02T00:00:00Z",
|
|
||||||
"end": "2021-09-02T04:00:00Z",
|
|
||||||
"timed": true,
|
|
||||||
"name": "3 Windler - Gerhold",
|
|
||||||
"color": "#FCF1C2",
|
|
||||||
"textColor": "black",
|
|
||||||
"type": 41,
|
|
||||||
"id": 41,
|
|
||||||
"editable": false,
|
|
||||||
"userId": 41
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.events = res.data.map(x => {
|
|
||||||
return {
|
|
||||||
...x,
|
|
||||||
start: window.$gz.locale.utcDateToScheduleCompatibleFormatLocalized(
|
|
||||||
x.start,
|
|
||||||
this.timeZoneName
|
|
||||||
),
|
|
||||||
end: window.$gz.locale.utcDateToScheduleCompatibleFormatLocalized(
|
|
||||||
x.end,
|
|
||||||
this.timeZoneName
|
|
||||||
),
|
|
||||||
category: vm.availableUsers.find(a => a.id == x.userId).name
|
|
||||||
};
|
|
||||||
});
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
window.$gz.errorHandler.handleFormError(error, this);
|
window.$gz.errorHandler.handleFormError(error, this);
|
||||||
|
|||||||
Reference in New Issue
Block a user