Преглед изворни кода

Ticket #4489 - Unnecessary leave confirmations.

AntonLV пре 3 година
родитељ
комит
bff2f1e66b
4 измењених фајлова са 22 додато и 18 уклоњено
  1. 2 2
      inc/js/classes/BxDolForm.js
  2. 12 0
      inc/js/functions.js
  3. 5 9
      modules/base/text/js/links.js
  4. 3 7
      modules/boonex/timeline/js/main.js

+ 2 - 2
inc/js/classes/BxDolForm.js

@@ -84,8 +84,8 @@ BxDolForm.prototype.init = function()
         if(!sHref || (sOnclick != undefined && sOnclick.trim().length > 0))
             return;
 
-        sHref = sHref.trim();
-        if(!sHref || sHref == 'javascript:void(0)')
+        var oRegExp = new RegExp('^' + bx_get_regexp('url') + '$', 'i');
+        if(!sHref.trim().match(oRegExp))
             return;
 
         event.preventDefault();

+ 12 - 0
inc/js/functions.js

@@ -1505,6 +1505,18 @@ function bx_regexp_escape(s)
         .replace(/[|\\{}()[\]^$+*?.]/mg, '\\$&')
         .replace(/-/mg, '\\x2d');
 }
+
+function bx_get_regexp(sType) 
+{
+    var o = {
+        tag:"(<([^>]+bx-tag[^>]+)>)",
+        mention: "(<([^>]+bx-tag[^>]+)>)",
+        url: "(([A-Za-z]{3,9}:(?:\\/\\/)?)(?:[\\-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9\\.\\-]+|(?:www\\.|[\\-;:&=\\+\\$,\\w]+@)[A-Za-z0-9\\.\\-]+)((?:\\/[\\+~%#\\/\\.\\w\\-_!\\(\\)]*)?\\??(?:[\\-\\+=&;%@\\.\\w_]*)#?(?:[\\.\\!\\/\\w]*))?"
+    };
+
+    return o[sType];
+}
+
 function bx_process_links()
 {
     // process links in container

+ 5 - 9
modules/base/text/js/links.js

@@ -20,13 +20,9 @@ function BxBaseModTextLinks(oOptions) {
     this._iLimitAttachLinks = oOptions.iLimitAttachLinks == undefined ? 0 : oOptions.iLimitAttachLinks;
     this._sLimitAttachLinksErr = oOptions.sLimitAttachLinksErr == undefined ? '' : oOptions.sLimitAttachLinksErr;
     this._oAttachedLinks = oOptions.oAttachedLinks == undefined ? {} : oOptions.oAttachedLinks;
-    
-    this._sPregTag = "(<([^>]+bx-tag[^>]+)>)";
-    this._sPregMention = "(<([^>]+bx-mention[^>]+)>)";
-    this._sPregUrl = "(([A-Za-z]{3,9}:(?:\\/\\/)?)(?:[\\-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9\\.\\-]+|(?:www\\.|[\\-;:&=\\+\\$,\\w]+@)[A-Za-z0-9\\.\\-]+)((?:\\/[\\+~%#\\/\\.\\w\\-_!\\(\\)]*)?\\??(?:[\\-\\+=&;%@\\.\\w_]*)#?(?:[\\.\\!\\/\\w]*))?";
-    
+
     var $this = this;
-    
+
     $(document).ready(function () {
         $this.initFormPost($this._sFormId);
     });
@@ -81,13 +77,13 @@ BxBaseModTextLinks.prototype.parseContent = function(oForm, sData, bPerformAttac
 {
     var oExp, aMatch = null;
 
-    oExp = new RegExp(this._sPregTag , "ig");
+    oExp = new RegExp(bx_get_regexp('tag'), "ig");
     sData = sData.replace(oExp, '');
 
-    oExp = new RegExp(this._sPregMention , "ig");
+    oExp = new RegExp(bx_get_regexp('mention'), "ig");
     sData = sData.replace(oExp, '');
 
-    oExp = new RegExp(this._sPregUrl , "ig");
+    oExp = new RegExp(bx_get_regexp('url'), "ig");
     while(aMatch = oExp.exec(sData)) {
         var sUrl = aMatch[0].replace(/^(\s|(&nbsp;))+|(\s|(&nbsp;))+$/gm,'');
         if(!sUrl.length || this._oAttachedLinks[sUrl] != undefined || (this._iLimitAttachLinks != 0 && Object.keys(this._oAttachedLinks).length >= this._iLimitAttachLinks))

+ 3 - 7
modules/boonex/timeline/js/main.js

@@ -38,10 +38,6 @@ function BxTimelineMain() {
     this.bViewOutline = false;
     this.bViewItem = false;
 
-    this._sPregTag = "(<([^>]+bx-tag[^>]+)>)";
-    this._sPregMention = "(<([^>]+bx-mention[^>]+)>)";
-    this._sPregUrl = "(([A-Za-z]{3,9}:(?:\\/\\/)?)(?:[\\-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9\\.\\-]+|(?:www\\.|[\\-;:&=\\+\\$,\\w]+@)[A-Za-z0-9\\.\\-]+)((?:\\/[\\+~%#\\/\\.\\w\\-_!\\(\\)]*)?\\??(?:[\\-\\+=&;%@\\.\\w_]*)#?(?:[\\.\\!\\/\\w]*))?";
-
     this._iLimitAttachLinks = 0;
     this._sLimitAttachLinksErr = '';
     this._oAttachedLinks = {};
@@ -324,13 +320,13 @@ BxTimelineMain.prototype.parseContent = function(oForm, iId, sData, bPerformAtta
 {
     var oExp, aMatch = null;
 
-    oExp = new RegExp(this._sPregTag , "ig");
+    oExp = new RegExp(bx_get_regexp('tag'), "ig");
     sData = sData.replace(oExp, '');
 
-    oExp = new RegExp(this._sPregMention , "ig");
+    oExp = new RegExp(bx_get_regexp('mention'), "ig");
     sData = sData.replace(oExp, '');
 
-    oExp = new RegExp(this._sPregUrl , "ig");
+    oExp = new RegExp(bx_get_regexp('url'), "ig");
     while(aMatch = oExp.exec(sData)) {
         var sUrl = aMatch[0].replace(/^(\s|(&nbsp;))+|(\s|(&nbsp;))+$/gm,'');        
         if(!sUrl.length || this._oAttachedLinks[sUrl] != undefined || (this._iLimitAttachLinks != 0 && Object.keys(this._oAttachedLinks).length >= this._iLimitAttachLinks))