[FIX] Gantview contextmenu Action should affects to record.
lp bug: https://launchpad.net/bugs/855346 fixed bzr revid: vda@tinyerp.com-20110923065251-uj5ywar45xyj2y64
This commit is contained in:
@@ -424,7 +424,8 @@ db.web.ViewManagerAction = db.web.ViewManager.extend(/** @lends oepnerp.web.View
|
||||
return $.when(
|
||||
this._super(view_type),
|
||||
this.shortcut_check(this.views[view_type])).then(function () {
|
||||
var view_id = self.views[self.active_view].controller.fields_view.view_id;
|
||||
var active_controller = self.views[self.active_view].controller;
|
||||
var view_id = active_controller.fields_view ? active_controller.fields_view.view_id : active_controller.view_id;
|
||||
self.$element.find('.oe_get_xml_view span').text(view_id);
|
||||
});
|
||||
},
|
||||
|
||||
@@ -43,7 +43,7 @@ init: function(parent, dataset, view_id) {
|
||||
|
||||
this.name = this.fields_view.arch.attrs.string;
|
||||
this.view_id = this.fields_view.view_id;
|
||||
|
||||
|
||||
this.date_start = this.fields_view.arch.attrs.date_start;
|
||||
this.date_delay = this.fields_view.arch.attrs.date_delay;
|
||||
this.date_stop = this.fields_view.arch.attrs.date_stop;
|
||||
@@ -228,7 +228,7 @@ init: function(parent, dataset, view_id) {
|
||||
var evt_date = "";
|
||||
var evt_duration = "";
|
||||
var evt_end_date = "";
|
||||
|
||||
var project_tree_field = [];
|
||||
for (var i in final_events){
|
||||
evt_id = final_events[i];
|
||||
evt_date = all_events[evt_id]['evt'][2];
|
||||
@@ -254,7 +254,7 @@ init: function(parent, dataset, view_id) {
|
||||
self.render_events(all_events, 0);
|
||||
}
|
||||
|
||||
for (var i in final_events){
|
||||
for (var i in final_events) {
|
||||
evt_id = final_events[i];
|
||||
res = all_events[evt_id];
|
||||
task=new GanttTaskInfo(res['evt'][0], res['evt'][1], res['evt'][2], res['evt'][3], res['evt'][4], "",res['evt'][6]);
|
||||
@@ -278,8 +278,9 @@ init: function(parent, dataset, view_id) {
|
||||
ganttChartControl.attachEvent("onTaskStartDrag", function(task) {self.on_drag_start(task);});
|
||||
ganttChartControl.attachEvent("onTaskEndResize", function(task) {self.on_resize_drag_end(task, "resize");});
|
||||
ganttChartControl.attachEvent("onTaskEndDrag", function(task) {self.on_resize_drag_end(task, "drag");});
|
||||
|
||||
ganttChartControl.attachEvent("onTaskDblClick", function(task) {self.open_popup(task);});
|
||||
|
||||
|
||||
var taskdiv = jQuery("div.taskPanel").parent();
|
||||
taskdiv.addClass('ganttTaskPanel');
|
||||
taskdiv.prev().addClass('ganttDayPanel');
|
||||
@@ -293,7 +294,7 @@ init: function(parent, dataset, view_id) {
|
||||
self.set_width();
|
||||
});
|
||||
|
||||
jQuery(window).bind('resize',function(){
|
||||
jQuery(window).bind('resize',function() {
|
||||
window.clearTimeout(ganttChartControl._resize_timer);
|
||||
ganttChartControl._resize_timer = window.setTimeout(function(){
|
||||
self.reload_gantt();
|
||||
@@ -301,6 +302,37 @@ init: function(parent, dataset, view_id) {
|
||||
});
|
||||
|
||||
jQuery("div #_1, div #_1 + div").hide();
|
||||
|
||||
//Custom events
|
||||
var context_menu = ganttChartControl.contextMenu,
|
||||
buttons = [],
|
||||
values = {};
|
||||
|
||||
_.each(context_menu.arrTabs, function(tab, tab_index) {
|
||||
buttons.push(_.filter(tab.arrItems,function(b) {
|
||||
return b.control.type == "button";
|
||||
})[0]);
|
||||
});
|
||||
_.each(buttons, function(b, index) {
|
||||
$(b.control).click(function() {
|
||||
if(!context_menu.arrTabs[index].object.parentTask)
|
||||
return false;
|
||||
var task_info = context_menu.arrTabs[index].object.TaskInfo;
|
||||
project_id = task_info.Id;;
|
||||
switch(index) {
|
||||
case 0:
|
||||
values[self.text] = task_info.Name;
|
||||
return self.dataset.write(project_id, values);
|
||||
case 1:
|
||||
return self.dataset.unlink([project_id]);
|
||||
case 3:
|
||||
if(self.date_delay) {
|
||||
values[self.date_delay] = task_info.Duration;
|
||||
return self.dataset.write(project_id, values);
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
|
||||
set_width: function() {
|
||||
@@ -385,53 +417,46 @@ init: function(parent, dataset, view_id) {
|
||||
},
|
||||
|
||||
open_popup : function(task) {
|
||||
var self = this;
|
||||
var event_id = task.getId();
|
||||
if(event_id.toString().search("_") != -1)
|
||||
return;
|
||||
if(event_id) event_id = parseInt(event_id, 10);
|
||||
|
||||
var action_manager = new openerp.web.ActionManager(this);
|
||||
|
||||
var dialog = new openerp.web.Dialog(this, {
|
||||
width: 800,
|
||||
height: 600,
|
||||
buttons : {
|
||||
Cancel : function() {
|
||||
$(this).dialog('destroy');
|
||||
},
|
||||
Save : function() {
|
||||
var form_view = action_manager.inner_viewmanager.views.form.controller;
|
||||
|
||||
var action = {
|
||||
"res_model": this.dataset.model,
|
||||
"res_id": event_id,
|
||||
"views":[[false,"form"]],
|
||||
"type":"ir.actions.act_window",
|
||||
"view_type":"form",
|
||||
"view_mode":"form"
|
||||
};
|
||||
|
||||
action.flags = {
|
||||
search_view: false,
|
||||
sidebar : false,
|
||||
views_switcher : false,
|
||||
pager: false
|
||||
};
|
||||
var element_id = _.uniqueId("act_window_dialog");
|
||||
var dialog = jQuery('<div>', {
|
||||
'id': element_id
|
||||
}).dialog({
|
||||
modal: true,
|
||||
width: 'auto',
|
||||
height: 'auto',
|
||||
buttons: {
|
||||
Cancel: function() {
|
||||
$(this).dialog("destroy");
|
||||
},
|
||||
Save: function() {
|
||||
var view_manager = action_manager.viewmanager;
|
||||
var _dialog = this;
|
||||
view_manager.views[view_manager.active_view].controller.do_save(function(r) {
|
||||
$(_dialog).dialog("destroy");
|
||||
self.reload_gantt();
|
||||
})
|
||||
}
|
||||
form_view.do_save(function() {
|
||||
self.get_events();
|
||||
});
|
||||
$(this).dialog('destroy');
|
||||
}
|
||||
}
|
||||
}).start().open();
|
||||
action_manager.appendTo(dialog.$element);
|
||||
action_manager.do_action({
|
||||
res_model : this.dataset.model,
|
||||
res_id: event_id,
|
||||
views : [[false, 'form']],
|
||||
type : 'ir.actions.act_window',
|
||||
auto_search : false,
|
||||
flags : {
|
||||
search_view: false,
|
||||
sidebar : false,
|
||||
views_switcher : false,
|
||||
action_buttons : false,
|
||||
pager: false
|
||||
}
|
||||
});
|
||||
var action_manager = new openerp.web.ActionManager(this, element_id);
|
||||
action_manager.start();
|
||||
action_manager.do_action(action);
|
||||
|
||||
//Default_get
|
||||
if(!event_id) action_manager.viewmanager.dataset.index = null;
|
||||
},
|
||||
|
||||
on_drag_start : function(task){
|
||||
|
||||
Reference in New Issue
Block a user