X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=plugins%2FClientSideShorten%2Fshorten.js;h=d7e17d5284f076fcfba5076dbe9d139ced60c1ff;hb=8b78e01d4c4b9512a7b74efa52fcaf37de0dc6f1;hp=b3a6146339db29ff814a435c833a67d754ed8549;hpb=809e597841d1337b641784eee21d5e9b5dc297e1;p=quix0rs-gnu-social.git diff --git a/plugins/ClientSideShorten/shorten.js b/plugins/ClientSideShorten/shorten.js index b3a6146339..d7e17d5284 100644 --- a/plugins/ClientSideShorten/shorten.js +++ b/plugins/ClientSideShorten/shorten.js @@ -16,7 +16,7 @@ function delayed () { if (!execAsap) func.apply(obj, args); - timeout = null; + timeout = null; }; if (timeout) @@ -24,36 +24,54 @@ 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 longestWord) longestWord = words[i].length; + return longestWord; + } + + function shorten() + { + 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(e.charCode == '32') { shorten(); } }); - $noticeDataText.bind('paste', shorten); + $noticeDataText.bind('paste', function() { + //if(typeof(shortenAjax) !== 'undefined') shortenAjax.abort(); + setTimeout(shorten,1); + }); }); - function shorten() - { - $noticeDataText = $('#'+SN.C.S.NoticeDataText); - var original = $noticeDataText.val(); - $.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(); - } - } - }); - } })();