← Back to team overview

openerp-dev-web team mailing list archive

lp:~openerp-dev/openobject-client-web/trunk-prevent-click-before-document-is-ready into lp:openobject-client-web

 

Olivier (Open ERP) has proposed merging lp:~openerp-dev/openobject-client-web/trunk-prevent-click-before-document-is-ready into lp:openobject-client-web.

Requested reviews:
  OpenERP SA's Web Client R&D (openerp-dev-web)


Fixes https://bugs.launchpad.net/openobject-client-web/+bug/682608
-- 
https://code.launchpad.net/~openerp-dev/openobject-client-web/trunk-prevent-click-before-document-is-ready/+merge/42473
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-client-web/trunk-prevent-click-before-document-is-ready.
=== modified file 'addons/openerp/controllers/templates/header.mako'
--- addons/openerp/controllers/templates/header.mako	2010-11-26 09:01:54 +0000
+++ addons/openerp/controllers/templates/header.mako	2010-12-02 13:32:52 +0000
@@ -107,4 +107,10 @@
         e.preventDefault();
         openobject.tools.openWindow(this.href);
     });
+
+    jQuery('div#shortcuts a ').live('click', function (e) {
+        e.preventDefault();
+    });
+
 </script>
+

=== modified file 'addons/openerp/controllers/templates/index.mako'
--- addons/openerp/controllers/templates/index.mako	2010-11-29 11:36:45 +0000
+++ addons/openerp/controllers/templates/index.mako	2010-12-02 13:32:52 +0000
@@ -6,11 +6,30 @@
     <script type="text/javascript" src="/openerp/static/javascript/accordion.js"></script>
     <script type="text/javascript" src="/openerp/static/javascript/treegrid.js"></script>
     <script type="text/javascript" src="/openerp/static/javascript/notebook/notebook.js"></script>
-    
+
     <script type="text/javascript">
         var DOCUMENT_TO_LOAD = "${load_content|n}";
         var CAL_INSTANCE = null;
 
+        // Make user home widgets deletable
+        jQuery('#user_widgets a.close').live('click', function(e) {
+            var $widget = jQuery(this);
+            jQuery.post(
+                $widget.attr('href'),
+                {widget_id: $widget.attr('id')},
+                function(obj) {
+                    if(obj.error) {
+                        error_display(obj.error);
+                        return;
+                    }
+                    var $root = $widget.closest('.sideheader-a');
+                    $root.next()
+                         .add($root)
+                         .remove();
+                }, 'json');
+            e.preventDefault();
+        });
+
         jQuery(document).ready(function () {
             jQuery('.web_dashboard').hover(function () {
                 var $dashboard_item = jQuery(this);
@@ -25,24 +44,6 @@
                 openLink(DOCUMENT_TO_LOAD);
                 return
             }
-
-            // Make user home widgets deletable
-            jQuery('#user_widgets a.close').click(function() {
-                var $widget = jQuery(this);
-                jQuery.post(
-                    $widget.attr('href'),
-                    {widget_id: $widget.attr('id')},
-                    function(obj) {
-                        if(obj.error) {
-                            error_display(obj.error);
-                            return;
-                        }
-                        var $root = $widget.closest('.sideheader-a');
-                        $root.next()
-                             .add($root)
-                             .remove();
-                    }, 'json');
-            });
         });
     </script>
 </%def>
@@ -163,6 +164,11 @@
                                            id="add_user_widget" class="button-a"
                                                 style="right: 1px;">${_("Add")}</a>
                                         <h2>${_("Widgets")}</h2>
+                                        <script type="text/javascript">
+                                            jQuery('#add_user_widget').live('click', function (e) {
+                                                e.preventDefault();
+                                            });
+                                        </script>
                                     </div>
                                     <div class="box-a" id="user_widgets">
                                         % for widget in widgets:

=== modified file 'addons/openerp/static/javascript/openerp/openerp.base.js'
--- addons/openerp/static/javascript/openerp/openerp.base.js	2010-11-29 11:13:59 +0000
+++ addons/openerp/static/javascript/openerp/openerp.base.js	2010-12-02 13:32:52 +0000
@@ -155,17 +155,20 @@
 var LINK_WAIT_NO_ACTIVITY = 300;
 /** @constant */
 var FORM_WAIT_NO_ACTIVITY = 500;
-jQuery(document).ready(function () {
+
+function addLinkHandlers() {
+//jQuery(document).ready(function () {
     var $app = jQuery('#appContent');
     if ($app.length) {
-        jQuery('body').delegate('a[href]:not([target="_blank"]):not([href^="#"]):not([href^="javascript"]):not([rel=external])', 'click', function(){
+        jQuery('body').delegate('a[href]:not([target="_blank"]):not([href^="#"]):not([href^="javascript"]):not([rel=external])', 'click', function(e){
             validate_action();
         });
 
         // open un-targeted links in #appContent via xhr. Links with @target are considered
         // external links. Ignore hash-links.
-        jQuery(document).delegate('a[href]:not([target]):not([href^="#"]):not([href^="javascript"]):not([rel=external])', 'click', function () {
+        jQuery(document).delegate('a[href]:not([target]):not([href^="#"]):not([href^="javascript"]):not([rel=external])', 'click', function (e) {
             openLink(jQuery(this).attr('href'));
+            e.preventDefault();
             return false;
         });
         // do the same for forms
@@ -180,11 +183,12 @@
         });
     } else {
         if(jQuery(document).find('div#root').length) {
-            jQuery(document).delegate('a[href]:not([target]):not([href^="#"]):not([href^="javascript"]):not([rel=external])', 'click', function() {
+            jQuery(document).delegate('a[href]:not([target]):not([href^="#"]):not([href^="javascript"]):not([rel=external])', 'click', function(e) {
                 jQuery.ajax({
                     url: jQuery(this).attr('href'),
                     success: doLoadingSuccess(null)
                 });
+                e.preventDefault();
                 return false;
             });
         }
@@ -213,7 +217,10 @@
     });
     // if the initially loaded URL had a hash-url inside
     jQuery(window).trigger('hashchange');
-});
+}
+//});
+
+//addLinkHandlers();
 
 // Hook onclick for boolean alteration propagation
 jQuery(document).delegate(

=== modified file 'openobject/controllers/templates/base.mako'
--- openobject/controllers/templates/base.mako	2010-11-23 15:33:24 +0000
+++ openobject/controllers/templates/base.mako	2010-12-02 13:32:52 +0000
@@ -58,5 +58,11 @@
     ${js.display()}
 % endfor
 
+<script type="text/javascript">
+
+addLinkHandlers();
+
+</script>
+
 </body>
 </html>


Follow ups