diff --git a/addons/base_gantt/controllers/main.py b/addons/base_gantt/controllers/main.py index a2e52c0cb32..4b3bf5c6229 100644 --- a/addons/base_gantt/controllers/main.py +++ b/addons/base_gantt/controllers/main.py @@ -3,22 +3,21 @@ from base.controllers.main import View class GanttView(View): _cp_path = "/base_gantt/ganttview" - + model = '' domain = [] context = {} - + @openerpweb.jsonrequest def load(self, req, model, view_id): fields_view = self.fields_view_get(req, model, view_id, 'gantt') return {'fields_view':fields_view} - + @openerpweb.jsonrequest def reload_gantt(self, req, **kw): - + model = req.session.model(kw['model']) domain = kw['domain'] - + event_ids = model.search(domain) return event_ids - \ No newline at end of file diff --git a/addons/base_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js b/addons/base_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js index 7efcd730293..752c51a7d74 100644 --- a/addons/base_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js +++ b/addons/base_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js @@ -4943,9 +4943,9 @@ GanttTask.prototype.createTaskItem = function() } var taskClick = function() { - self.Chart.callEvent("onTaskClick", [self]); + self.Chart.callEvent("onTaskDblClick", [self]); }; - this.addEvent(divMove, 'click', taskClick, false); + this.addEvent(divMove, 'dblclick', taskClick, false); if (this.Chart.isEditable) { diff --git a/addons/base_gantt/static/src/js/gantt.js b/addons/base_gantt/static/src/js/gantt.js index 9d06b5b7298..cc594752678 100644 --- a/addons/base_gantt/static/src/js/gantt.js +++ b/addons/base_gantt/static/src/js/gantt.js @@ -193,21 +193,42 @@ init: function(view_manager, session, element_id, dataset, view_id) { ganttChartControl.create("GanttDiv"); ganttChartControl.attachEvent("onTaskEndResize", function(task) {self.on_resize_drag(task, "resize");}) ganttChartControl.attachEvent("onTaskEndDrag", function(task) {self.on_resize_drag(task, "drag");}) - + ganttChartControl.attachEvent("onTaskDblClick", function(task){self.open_popup(task);}); }, hours_between: function(date1, date2) { - var ONE_DAY = 1000 * 60 * 60 * 24 - var date1_ms = date1.getTime() - var date2_ms = date2.getTime() - var difference_ms = Math.abs(date1_ms - date2_ms) + var ONE_DAY = 1000 * 60 * 60 * 24; + var date1_ms = date1.getTime(); + var date2_ms = date2.getTime(); + var difference_ms = Math.abs(date1_ms - date2_ms); - d = Math.round(difference_ms / ONE_DAY) + d = Math.round(difference_ms / ONE_DAY); h = Math.round((difference_ms % ONE_DAY)/(1000 * 60 * 60)); return (d * this.day_length) + h; }, + open_popup : function(task) { + var event_id = task.getId(); + if (event_id) { + event_id = parseInt(event_id, 10); + var dataset_event_index = jQuery.inArray(event_id, this.ids); + } else { + var dataset_event_index = null; + } + this.dataset.index = dataset_event_index; + var element_id = _.uniqueId("act_window_dialog"); + var dialog = jQuery('
', + {'id': element_id + }).dialog({ + title: 'Gantt Chart', + modal: true, + minWidth: 800, + position: 'top' + }); + var event_form = new openerp.base.FormView(this.view_manager, this.session, element_id, this.dataset, false); + event_form.start(); + }, on_resize_drag : function(task, evt) {