From c650d6a87d2d4143a8d70dc81938b14338af4bec Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Tue, 18 Oct 2016 14:15:34 +0530 Subject: [PATCH] Gantt: fixes and features (#2169) * [gantt] refactor code, hide progress handle for 0% progress * [gantt] limit progress resize * [gantt] invalid bar in task --- frappe/public/css/gantt.css | 9 + frappe/public/js/frappe/list/doclistview.js | 30 ++-- frappe/public/js/frappe/views/gantt.js | 187 ++++++++++++++------ frappe/public/less/gantt.less | 10 ++ 4 files changed, 163 insertions(+), 73 deletions(-) diff --git a/frappe/public/css/gantt.css b/frappe/public/css/gantt.css index 7b4c87c08b..0163f3c996 100644 --- a/frappe/public/css/gantt.css +++ b/frappe/public/css/gantt.css @@ -40,6 +40,15 @@ .gantt .bar-progress { fill: #a3a3ff; } +.gantt .bar-invalid { + fill: transparent; + stroke: #8D99A6; + stroke-width: 1; + stroke-dasharray: 5; +} +.gantt .bar-invalid ~ .bar-label { + fill: #555; +} .gantt .bar-label { fill: #fff; dominant-baseline: central; diff --git a/frappe/public/js/frappe/list/doclistview.js b/frappe/public/js/frappe/list/doclistview.js index 8a2940cdec..3662994560 100644 --- a/frappe/public/js/frappe/list/doclistview.js +++ b/frappe/public/js/frappe/list/doclistview.js @@ -437,13 +437,25 @@ frappe.views.DocListView = frappe.ui.Listing.extend({ var gantt_area = $('') .appendTo(this.wrapper.find('.result-list').css("overflow", "scroll")); var id = frappe.dom.set_unique_id(gantt_area); + var me = this; var field_map = frappe.views.calendar[this.doctype].field_map; - - var view_modes; + var tasks = values.map(function(item) { + return { + start: item[field_map.start], + end: item[field_map.end], + name: item[field_map.title], + id: item[field_map.id], + doctype: me.doctype, + progress: item.progress, + dependent: item.depends_on_tasks || "" + }; + }); frappe.require(["assets/frappe/js/lib/snap.svg-min.js", "assets/frappe/css/gantt.css"], function() { me.gantt = new Gantt({ parent_selector: '#' + id, + tasks: tasks, + date_format: "YYYY-MM-DD", bar: { height: 20 }, @@ -468,21 +480,9 @@ frappe.views.DocListView = frappe.ui.Listing.extend({ } } }); - - view_modes = me.gantt.opts.valid_view_modes || []; - values.forEach(function(item) { - me.gantt.add_task({ - start: item[field_map.start], - end: item[field_map.end], - name: item[field_map.title], - id: item[field_map.id], - doctype: me.doctype, - progress: item.progress, - dependent: item.depends_on_tasks || "" - }); - }) me.gantt.render(); + var view_modes = me.gantt.get_view_modes() || []; var dropdown = "