You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by ta...@apache.org on 2016/05/23 17:13:57 UTC

deltaspike git commit: DELTASPIKE-1149 CLIENTWINDOW tokenizedRedirect should ignore ctrl-key

Repository: deltaspike
Updated Branches:
  refs/heads/master 5466d6e89 -> 459463ed9


DELTASPIKE-1149 CLIENTWINDOW tokenizedRedirect should ignore ctrl-key

Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/459463ed
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/459463ed
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/459463ed

Branch: refs/heads/master
Commit: 459463ed91301b62e321f2345ce9f06fee501a9a
Parents: 5466d6e
Author: Thomas Andraschko <ta...@apache.org>
Authored: Mon May 23 19:13:44 2016 +0200
Committer: Thomas Andraschko <ta...@apache.org>
Committed: Mon May 23 19:13:44 2016 +0200

----------------------------------------------------------------------
 .../resources/deltaspike/windowhandler.js       | 43 ++++++++++++--------
 1 file changed, 27 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/459463ed/deltaspike/modules/jsf/impl/src/main/resources/META-INF/resources/deltaspike/windowhandler.js
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jsf/impl/src/main/resources/META-INF/resources/deltaspike/windowhandler.js b/deltaspike/modules/jsf/impl/src/main/resources/META-INF/resources/deltaspike/windowhandler.js
index 9789a24..a543b73 100644
--- a/deltaspike/modules/jsf/impl/src/main/resources/META-INF/resources/deltaspike/windowhandler.js
+++ b/deltaspike/modules/jsf/impl/src/main/resources/META-INF/resources/deltaspike/windowhandler.js
@@ -128,15 +128,22 @@ window.dswh = window.dswh || {
 
                         if (dswh.strategy.CLIENTWINDOW.isHrefDefined(link) === true && (!target || target === '_self')) {
                             if (!link.onclick) {
-                                link.onclick = function() {
-                                    if (storeWindowTreeEnabled) {
-                                        dswh.strategy.CLIENTWINDOW.storeWindowTree();
-                                    }
-                                    if (tokenizedRedirectEnabled) {
-                                        dswh.strategy.CLIENTWINDOW.tokenizedRedirect(this);
-                                        return false;
+                                link.onclick = function(evt) {
+                                    // IE handling added
+                                    evt = evt || window.event;
+                                    
+                                    // skip open in new tab
+                                    if (!evt.ctrlKey) {                                    
+                                        if (storeWindowTreeEnabled) {
+                                            dswh.strategy.CLIENTWINDOW.storeWindowTree();
+                                        }
+                                        if (tokenizedRedirectEnabled) {
+                                            dswh.strategy.CLIENTWINDOW.tokenizedRedirect(this);
+                                            return false;
+                                        }
+
+                                        return true;
                                     }
-                                    return true;
                                 };
                             } else {
                                 // prevent double decoration
@@ -146,18 +153,22 @@ window.dswh = window.dswh || {
                                     (function storeEvent() {
                                         var oldonclick = link.onclick;
                                         link.onclick = function(evt) {
-                                            //ie handling added
+                                            // IE handling added
                                             evt = evt || window.event;
 
                                             var proceed = oldonclick.bind(this)(evt);
                                             if (typeof proceed === 'undefined' || proceed === true) {
-                                                if (storeWindowTreeEnabled) {
-                                                    dswh.strategy.CLIENTWINDOW.storeWindowTree();
-                                                }
-
-                                                if (tokenizedRedirectEnabled) {
-                                                    dswh.strategy.CLIENTWINDOW.tokenizedRedirect(this);
-                                                    return false;
+                                                
+                                                // skip open in new tab
+                                                if (!evt.ctrlKey) { 
+                                                    if (storeWindowTreeEnabled) {
+                                                        dswh.strategy.CLIENTWINDOW.storeWindowTree();
+                                                    }
+
+                                                    if (tokenizedRedirectEnabled) {
+                                                        dswh.strategy.CLIENTWINDOW.tokenizedRedirect(this);
+                                                        return false;
+                                                    }
                                                 }
                                             }
                                             return proceed;