This commit is contained in:
@@ -57,6 +57,8 @@ todo: workorders - need to set billing and service address from customers on mig
|
|||||||
|
|
||||||
todo: custom required rules only apply to new records!!
|
todo: custom required rules only apply to new records!!
|
||||||
|
|
||||||
|
todo:
|
||||||
|
|
||||||
todo: Translation: "Physical" address seems wierd, rename to Street address or Delivery address or Service Address or whatever
|
todo: Translation: "Physical" address seems wierd, rename to Street address or Delivery address or Service Address or whatever
|
||||||
todo: broken rules can't save should color save button red in addition to disabled some forms can't see what's what
|
todo: broken rules can't save should color save button red in addition to disabled some forms can't see what's what
|
||||||
todo: Any "Priority" type value in UI that has colors should use ayaFireAlt icon instead of round circle which is for minor status only
|
todo: Any "Priority" type value in UI that has colors should use ayaFireAlt icon instead of round circle which is for minor status only
|
||||||
@@ -79,6 +81,13 @@ todo: REPORTING
|
|||||||
also it should be named to indicate the server is modifying the data before it's sent to the template
|
also it should be named to indicate the server is modifying the data before it's sent to the template
|
||||||
i.e. name everything so it's clear what is being done where
|
i.e. name everything so it's clear what is being done where
|
||||||
|
|
||||||
|
todo: reporting custom fields
|
||||||
|
Joyce ran into an issue with a custom field defined as currency adn wanted to use it in a calculation on a report but it presents as a string
|
||||||
|
Look into either a helper to ease that or more ideally it presents as the type that it's supposed to be pre-modified? (not sure of the implications)
|
||||||
|
Do I have a custom fields helper already? What does it do?
|
||||||
|
Maybe translated custom fields alongside the string version??
|
||||||
|
Users see it as currency would be just as confused as Joyce was expecting it to be a number
|
||||||
|
|
||||||
todo: cleanup unnecessary use of a ayatype access inside the Methods of objects as it's now available in vue via main object,
|
todo: cleanup unnecessary use of a ayatype access inside the Methods of objects as it's now available in vue via main object,
|
||||||
e.g. where you see this: ayaTypes().XXXX you can replace it directly with this: $ay.ayt().XXXX and then REMOVE completely the ayaTypes() method in the vm of that object
|
e.g. where you see this: ayaTypes().XXXX you can replace it directly with this: $ay.ayt().XXXX and then REMOVE completely the ayaTypes() method in the vm of that object
|
||||||
todo: use const, not let unless need to reassign the variable
|
todo: use const, not let unless need to reassign the variable
|
||||||
@@ -312,7 +321,8 @@ CURRENTLY DOING: labors (but involves contract change below)
|
|||||||
todo: on put needs to return object if prices updated, not just concurrency token!!
|
todo: on put needs to return object if prices updated, not just concurrency token!!
|
||||||
prices are *always* updated contract or not bc set by choice of part, not at client
|
prices are *always* updated contract or not bc set by choice of part, not at client
|
||||||
any object modified at server must return object
|
any object modified at server must return object
|
||||||
only some won't need this
|
only some won't need this, but at the end they may all need it one way or another
|
||||||
|
for efficiency I guess don't return it if no change but keep an eye out
|
||||||
|
|
||||||
|
|
||||||
todo: complete the backend contract stuff: it needs to also handle tagged specific values as well
|
todo: complete the backend contract stuff: it needs to also handle tagged specific values as well
|
||||||
|
|||||||
@@ -339,6 +339,23 @@ export default {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
///////////////////////////////
|
///////////////////////////////
|
||||||
|
// Truncate a string
|
||||||
|
//truncates and adds ellipses
|
||||||
|
//
|
||||||
|
// @param {String} source string
|
||||||
|
// @param {number} length desired
|
||||||
|
// @return {string} A new string truncated with ellipses at end
|
||||||
|
truncateString: function(s, len) {
|
||||||
|
if (this.stringIsNullOrEmpty(s)) {
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
if (s.length > len) {
|
||||||
|
return s.substring(0, len) + "...";
|
||||||
|
} else {
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
///////////////////////////////
|
||||||
// Format tags for display
|
// Format tags for display
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -1003,9 +1003,13 @@ function buildRecords(listData, columndefinitions, ridColumnOpenable) {
|
|||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case 4: //text
|
case 4: //text
|
||||||
if (display.length > MAX_TEXT_COLUMN_LENGTH) {
|
// if (display.length > MAX_TEXT_COLUMN_LENGTH) {
|
||||||
display = display.substring(0, MAX_TEXT_COLUMN_LENGTH) + "...";
|
// display = display.substring(0, MAX_TEXT_COLUMN_LENGTH) + "...";
|
||||||
}
|
// }
|
||||||
|
display = window.$gz.util.truncateString(
|
||||||
|
display,
|
||||||
|
MAX_TEXT_COLUMN_LENGTH
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
case 5: //Integer
|
case 5: //Integer
|
||||||
//display is already set, just some styling to do
|
//display is already set, just some styling to do
|
||||||
|
|||||||
@@ -939,7 +939,7 @@ export default {
|
|||||||
this.pvm.languageName,
|
this.pvm.languageName,
|
||||||
this.pvm.currencyName
|
this.pvm.currencyName
|
||||||
),
|
),
|
||||||
serviceDetails: x.serviceDetails
|
serviceDetails: window.$gz.util.truncateString(x.serviceDetails, 100)
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -916,8 +916,7 @@ async function saveLabors(vm, woItemIndex) {
|
|||||||
for (let i = 0; i < vm.obj.items[woItemIndex].labors.length; i++) {
|
for (let i = 0; i < vm.obj.items[woItemIndex].labors.length; i++) {
|
||||||
let o = vm.obj.items[woItemIndex].labors[i];
|
let o = vm.obj.items[woItemIndex].labors[i];
|
||||||
if (o.isDirty) {
|
if (o.isDirty) {
|
||||||
const isPost = o.id == 0;
|
const res = await window.$gz.api.upsert(`${API_BASE_URL}items/labors`, o);
|
||||||
let res = await window.$gz.api.upsert(`${API_BASE_URL}items/labors`, o);
|
|
||||||
if (res.error) {
|
if (res.error) {
|
||||||
handleSaveError(vm, {
|
handleSaveError(vm, {
|
||||||
error: res.error,
|
error: res.error,
|
||||||
@@ -927,9 +926,7 @@ async function saveLabors(vm, woItemIndex) {
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
//Server will update fields on put or post for most workorder graph objecs so need to update entire object here
|
//Server will update fields on put or post for most workorder graph objecs so need to update entire object here
|
||||||
|
vm.obj.items[woItemIndex].labors.splice(i, 1, res.data); //vue needs the splice rather than just setting the value in order to trigger reactivity or else the UI won't update
|
||||||
vm.obj.items[woItemIndex].labors.splice(i, 1, res.data); //vue needs the splice to trigger reactivity or else the UI won't update
|
|
||||||
//vm.obj.items[woItemIndex].labors[i] = res.data;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user