[MERGE] Merged trunk.
[odoo/odoo.git] / addons / web / static / src / js / view_form.js
index 9dd6e34..ed088e5 100644 (file)
@@ -125,6 +125,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
             self.check_actual_mode();
             self.on("change:actual_mode", self, self.init_pager);
             self.init_pager();
+            self.widgetAccesskey();
         });
         self.on("load_record", self, self.load_record);
         this.on('view_loaded', self, self.load_form);
@@ -206,16 +207,29 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
             }
         });
         //bounce effect on red button when click on statusbar.
-        this.$el.find(".oe_form_field_status:not(.oe_form_status_clickable)").on('click', function (e) {
-            if((self.get("actual_mode") == "view")) { 
-                var $button = self.$el.find(".oe_highlight:not(.oe_form_invisible)").css({'float':'left','clear':'none'});
-                $button.effect('bounce', {distance:18, times: 5}, 150);
-                e.stopPropagation();
-            }
-         });
+        this.on('load_record',this,function(){ 
+            var $button = self.$el.find(".oe_button.oe_form_button.oe_highlight:not(.oe_form_invisible)").css({'margin-left':'2px','float':'left','white-space':'nowrap'});
+               self.$el.find(".oe_form_field_status:not(.oe_form_status_clickable)").on('click',function (e) {
+               if(self.get("actual_mode") == "view") {
+                       $button.effect('bounce', {distance:18, times: 5}, 150);
+                       e.stopImmediatePropagation();   
+               }
+               });
+        })
         this.trigger('form_view_loaded', data);
+        
         return $.when();
     },
+    widgetAccesskey:function(){
+        $(document).keydown(function(e){
+            if(e.keyCode === $.ui.keyCode.ALT) {
+                $("[accesskey]").addClass('accessactive');
+            }
+            e.stopPropagation();
+        }).keyup(function(e){
+                $("[accesskey]").removeClass('accessactive');
+        });
+    },
     widgetFocused: function() {
         // Clear click flag if used to focus a widget
         this.__clicked_inside = false;