]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/ClientSideShorten/shorten.js
Merge branch 'master' of git.gnu.io:gnu/gnu-social into mmn_fixes
[quix0rs-gnu-social.git] / plugins / ClientSideShorten / shorten.js
index 0db78eceaf82962f32edbdb3cc0ab93b5674f5b8..d7e17d5284f076fcfba5076dbe9d139ced60c1ff 100644 (file)
@@ -16,7 +16,7 @@
                 function delayed () {
                     if (!execAsap)
                         func.apply(obj, args);
-                        timeout = null; 
+                        timeout = null;
                 };
 
                 if (timeout)
                 else if (execAsap)
                     func.apply(obj, args);
 
-                timeout = setTimeout(delayed, threshold || 100); 
+                timeout = setTimeout(delayed, threshold || 100);
             };
         }
         jQuery.fn[sr] = function(fn){  return fn ? this.bind('keypress', debounce(fn, 1000)) : this.trigger(sr); };
 
     })(jQuery,'smartkeypress');
 
+    function longestWordInString(string)
+    {
+        var words = string.split(/\s/);
+        var longestWord = 0;
+        for(var i=0;i<words.length;i++)
+            if(words[i].length > longestWord) longestWord = words[i].length;
+        return longestWord;
+    }
+
     function shorten()
     {
-        $noticeDataText = $('#'+SN.C.S.NoticeDataText);
-        var original = $noticeDataText.val();
-        shortenAjax = $.ajax({
-            url: $('address .url')[0].href+'/plugins/ClientSideShorten/shorten',
-            data: { text: $noticeDataText.val() },
-            dataType: 'text',
-            success: function(data) {
-                if(original == $noticeDataText.val()) {
-                    $noticeDataText.val(data).keyup();
+        var $noticeDataText = $('#'+SN.C.S.NoticeDataText);
+        var noticeText = $noticeDataText.val();
+
+        if(noticeText.length > maxNoticeLength || longestWordInString(noticeText) > maxUrlLength) {
+            var original = $noticeDataText.val();
+            shortenAjax = $.ajax({
+                url: $('address .url')[0].href+'/plugins/ClientSideShorten/shorten',
+                data: { text: $noticeDataText.val() },
+                dataType: 'text',
+                success: function(data) {
+                    if(original == $noticeDataText.val()) {
+                        $noticeDataText.val(data).keyup();
+                    }
                 }
-            }
-        });
+            });
+        }
     }
 
     $(document).ready(function(){
         $noticeDataText = $('#'+SN.C.S.NoticeDataText);
         $noticeDataText.smartkeypress(function(e){
-            if(typeof(shortenAjax) !== 'undefined') shortenAjax.abort();
+            //if(typeof(shortenAjax) !== 'undefined') shortenAjax.abort();
             if(e.charCode == '32') {
                 shorten();
             }
         });
         $noticeDataText.bind('paste', function() {
-            if(typeof(shortenAjax) !== 'undefined') shortenAjax.abort();
+            //if(typeof(shortenAjax) !== 'undefined') shortenAjax.abort();
             setTimeout(shorten,1);
         });
     });