mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-06 11:13:04 +00:00
feat: status based bar colors in Work Order gantt view (#57634)
(cherry picked from commit d59c5e36bc)
Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
This commit is contained in:
@@ -46,3 +46,60 @@ frappe.views.calendar["Work Order"] = {
|
||||
],
|
||||
get_events_method: "frappe.desk.calendar.get_events",
|
||||
};
|
||||
|
||||
const WORK_ORDER_GANTT_COLORS = {
|
||||
Draft: "red",
|
||||
Stopped: "red",
|
||||
"Not Started": "red",
|
||||
"In Process": "orange",
|
||||
Completed: "green",
|
||||
"Stock Reserved": "blue",
|
||||
"Stock Partially Reserved": "orange",
|
||||
Cancelled: "gray",
|
||||
};
|
||||
|
||||
if (!frappe.views.GanttView.prototype._work_order_status_colors) {
|
||||
frappe.views.GanttView.prototype._work_order_status_colors = true;
|
||||
|
||||
const prepare_tasks = frappe.views.GanttView.prototype.prepare_tasks;
|
||||
frappe.views.GanttView.prototype.prepare_tasks = function () {
|
||||
prepare_tasks.call(this);
|
||||
if (this.doctype === "Work Order") {
|
||||
set_work_order_bar_classes(this);
|
||||
}
|
||||
};
|
||||
|
||||
const set_colors = frappe.views.GanttView.prototype.set_colors;
|
||||
frappe.views.GanttView.prototype.set_colors = function () {
|
||||
set_colors.call(this);
|
||||
if (this.doctype === "Work Order") {
|
||||
set_work_order_bar_styles(this);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function set_work_order_bar_classes(view) {
|
||||
view.tasks.forEach((task, idx) => {
|
||||
const color = WORK_ORDER_GANTT_COLORS[view.data[idx].status];
|
||||
if (color) {
|
||||
task.custom_class = "wo-" + color;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function set_work_order_bar_styles(view) {
|
||||
const style = [...new Set(Object.values(WORK_ORDER_GANTT_COLORS))]
|
||||
.map(
|
||||
(color) => `
|
||||
.gantt .bar-wrapper.wo-${color} .bar {
|
||||
fill: var(--${color}-300);
|
||||
}
|
||||
.gantt .bar-wrapper.wo-${color} .bar-progress {
|
||||
fill: var(--${color}-300);
|
||||
}
|
||||
`
|
||||
)
|
||||
.join("");
|
||||
|
||||
view.$result.prepend(`<style>${style}</style>`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user