Vaibhav (OpenERP) has proposed merging 
lp:~openerp-dev/openerp-web/trunk-bug-855346-vda into lp:openerp-web.

Requested reviews:
  OpenERP R&D Web Team (openerp-dev-web)
Related bugs:
  Bug #855346 in OpenERP Web: "the gatt view doesn't remind change of date"
  https://bugs.launchpad.net/openerp-web/+bug/855346

For more details, see:
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-bug-855346-vda/+merge/76677

Changes in Gantt Contextmenu on `Projects` or `Tasks` tree should reflect the 
changes to the records.
-- 
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-bug-855346-vda/+merge/76677
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openerp-web/trunk-bug-855346-vda.
=== modified file 'addons/web/static/src/js/views.js'
--- addons/web/static/src/js/views.js	2011-09-15 13:12:01 +0000
+++ addons/web/static/src/js/views.js	2011-09-23 07:02:25 +0000
@@ -424,7 +424,8 @@
         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);
         });
     },

=== modified file 'addons/web_gantt/static/src/js/gantt.js'
--- addons/web_gantt/static/src/js/gantt.js	2011-09-15 09:49:44 +0000
+++ addons/web_gantt/static/src/js/gantt.js	2011-09-23 07:02:25 +0000
@@ -43,7 +43,7 @@
 
         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 @@
         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 @@
             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 @@
         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 @@
             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 @@
         });
 
         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 @@
     },
 
     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 = {
-            "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();
-                        })
-                    }
+        
+        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;
+
+                    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){

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to