X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=js%2Futil.js;h=f60b5d313750559dcd519625d0550d1028f70a84;hb=31b62bf7817366174fcfefba585f8fa462b1b024;hp=cdc9971f18aad131fd9b1fe0d2ce4f51c4e9be7f;hpb=e20a54fb8cb1d69fb6be7a414f2699c1958f053e;p=quix0rs-gnu-social.git diff --git a/js/util.js b/js/util.js index cdc9971f18..f60b5d3137 100644 --- a/js/util.js +++ b/js/util.js @@ -57,21 +57,31 @@ var SN = { // StatusNet U: { // Utils FormNoticeEnhancements: function(form) { form_id = form.attr('id'); - $('#'+form_id+' #'+SN.C.S.NoticeDataText).unbind('keyup'); - $('#'+form_id+' #'+SN.C.S.NoticeDataText).unbind('keydown'); - if (maxLength > 0) { - $('#'+form_id+' #'+SN.C.S.NoticeDataText).bind('keyup', function(e) { + + if (jQuery.data(form[0], 'ElementData') === undefined) { + MaxLength = $('#'+form_id+' #'+SN.C.S.NoticeTextCount).text(); + if (typeof(MaxLength) == 'undefined') { + MaxLength = SN.C.I.MaxLength; + } + jQuery.data(form[0], 'ElementData', {MaxLength:MaxLength}); + + SN.U.Counter(form); + + NDT = $('#'+form_id+' #'+SN.C.S.NoticeDataText); + + NDT.bind('keyup', function(e) { SN.U.Counter(form); }); - // run once in case there's something in there - SN.U.Counter(form); - } - $('#'+form_id+' #'+SN.C.S.NoticeDataText).bind('keydown', function(e) { - SN.U.SubmitOnReturn(e, form); - }); + NDT.bind('keydown', function(e) { + SN.U.SubmitOnReturn(e, form); + }); + } + else { + $('#'+form_id+' #'+SN.C.S.NoticeTextCount).text(jQuery.data(form[0], 'ElementData').MaxLength); + } - if($('body')[0].id != 'conversation') { + if ($('body')[0].id != 'conversation') { $('#'+form_id+' textarea').focus(); } }, @@ -91,15 +101,14 @@ var SN = { // StatusNet Counter: function(form) { SN.C.I.FormNoticeCurrent = form; form_id = form.attr('id'); - if (typeof(maxLength) == "undefined") { - maxLength = SN.C.I.MaxLength; - } - if (maxLength <= 0) { + var MaxLength = jQuery.data(form[0], 'ElementData').MaxLength; + + if (MaxLength <= 0) { return; } - var remaining = maxLength - $('#'+form_id+' #'+SN.C.S.NoticeDataText).val().length; + var remaining = MaxLength - $('#'+form_id+' #'+SN.C.S.NoticeDataText).val().length; var counter = $('#'+form_id+' #'+SN.C.S.NoticeTextCount); if (remaining.toString() != counter.text()) { @@ -184,29 +193,33 @@ var SN = { // StatusNet form.removeClass(SN.C.S.Processing); $('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).removeClass(SN.C.S.Disabled); $('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).removeAttr(SN.C.S.Disabled, SN.C.S.Disabled); + $('#'+form_id+' .form_response').remove(); if (textStatus == 'timeout') { - alert ('Sorry! We had trouble sending your notice. The servers are overloaded. Please try again, and contact the site administrator if this problem persists'); + form.append('

Sorry! We had trouble sending your notice. The servers are overloaded. Please try again, and contact the site administrator if this problem persists.

'); } else { if ($('.'+SN.C.S.Error, xhr.responseXML).length > 0) { form.append(document._importNode($('.'+SN.C.S.Error, xhr.responseXML)[0], true)); } else { - if(jQuery.inArray(parseInt(xhr.status), SN.C.I.HTTP20x30x) < 0) { - alert('Sorry! We had trouble sending your notice ('+xhr.status+' '+xhr.statusText+'). Please report the problem to the site administrator if this happens again.'); + if (parseInt(xhr.status) === 0 || jQuery.inArray(parseInt(xhr.status), SN.C.I.HTTP20x30x) >= 0) { + $('#'+form_id).resetForm(); + $('#'+form_id+' #'+SN.C.S.NoticeDataAttachSelected).remove(); + SN.U.FormNoticeEnhancements($('#'+form_id)); } else { - $('#'+form_id+' #'+SN.C.S.NoticeDataText).val(''); - SN.U.FormNoticeEnhancements($('#'+form_id)); + form.append('

(Sorry! We had trouble sending your notice ('+xhr.status+' '+xhr.statusText+'). Please report the problem to the site administrator if this happens again.

'); } } } }, success: function(data, textStatus) { + $('#'+form_id+' .form_response').remove(); var result; if ($('#'+SN.C.S.Error, data).length > 0) { result = document._importNode($('p', data)[0], true); - alert(result.textContent || result.innerHTML); + result = result.textContent || result.innerHTML; + form.append('

'+result+'

'); } else { if($('body')[0].id == 'bookmarklet') { @@ -215,32 +228,39 @@ var SN = { // StatusNet if ($('#'+SN.C.S.CommandResult, data).length > 0) { result = document._importNode($('p', data)[0], true); - alert(result.textContent || result.innerHTML); + result = result.textContent || result.innerHTML; + form.append('

'+result+'

'); } else { - notice = document._importNode($('li', data)[0], true); - if ($('#'+notice.id).length === 0) { - var notice_irt_value = $('#'+SN.C.S.NoticeInReplyTo).val(); - var notice_irt = '#notices_primary #notice-'+notice_irt_value; - if($('body')[0].id == 'conversation') { - if(notice_irt_value.length > 0 && $(notice_irt+' .notices').length < 1) { - $(notice_irt).append(''); + var notices = $('#notices_primary .notices'); + if (notices.length > 0) { + var notice = document._importNode($('li', data)[0], true); + if ($('#'+notice.id).length === 0) { + var notice_irt_value = $('#'+SN.C.S.NoticeInReplyTo).val(); + var notice_irt = '#notices_primary #notice-'+notice_irt_value; + if($('body')[0].id == 'conversation') { + if(notice_irt_value.length > 0 && $(notice_irt+' .notices').length < 1) { + $(notice_irt).append(''); + } + $($(notice_irt+' .notices')[0]).append(notice); } - $($(notice_irt+' .notices')[0]).append(notice); - } - else { - $("#notices_primary .notices").prepend(notice); + else { + notices.prepend(notice); + } + $('#'+notice.id).css({display:'none'}); + $('#'+notice.id).fadeIn(2500); + SN.U.NoticeWithAttachment($('#'+notice.id)); + SN.U.NoticeReplyTo($('#'+notice.id)); + SN.U.FormXHR($('#'+notice.id+' .form_favor')); } - $('#'+notice.id).css({display:'none'}); - $('#'+notice.id).fadeIn(2500); - SN.U.NoticeAttachments(); - SN.U.NoticeReplyTo($('#'+notice.id)); - SN.U.FormXHR($('#'+notice.id+' .form_favor')); - } + } + else { + result = document._importNode($('title', data)[0], true); + result_title = result.textContent || result.innerHTML; + form.append('

'+result_title+'

'); + } } - $('#'+form_id+' #'+SN.C.S.NoticeDataText).val(''); - $('#'+form_id+' #'+SN.C.S.NoticeDataAttach).val(''); - $('#'+form_id+' #'+SN.C.S.NoticeInReplyTo).val(''); + $('#'+form_id).resetForm(); $('#'+form_id+' #'+SN.C.S.NoticeDataAttachSelected).remove(); SN.U.FormNoticeEnhancements($('#'+form_id)); } @@ -295,7 +315,23 @@ var SN = { // StatusNet $('.form_disfavor').each(function() { SN.U.FormXHR($(this)); }); }, + NoticeRepeat: function() { + $('.form_repeat').each(function() { SN.U.FormXHR($(this)); }); + }, + NoticeAttachments: function() { + $('.notice a.attachment').each(function() { + SN.U.NoticeWithAttachment($(this).closest('.notice')); + }); + }, + + NoticeWithAttachment: function(notice) { + if ($('.attachment', notice).length === 0) { + return; + } + + var notice_id = notice.attr('id'); + $.fn.jOverlay.options = { method : 'GET', data : '', @@ -315,13 +351,13 @@ var SN = { // StatusNet css : {'max-width':'542px', 'top':'5%', 'left':'32.5%'} }; - $('#content .notice a.attachment').click(function() { + $('#'+notice_id+' a.attachment').click(function() { $().jOverlay({url: $('address .url')[0].href+'attachment/' + ($(this).attr('id').substring('attachment'.length + 1)) + '/ajax'}); return false; }); var t; - $("body:not(#shownotice) #content .notice a.thumbnail").hover( + $("body:not(#shownotice) #"+notice_id+" a.thumbnail").hover( function() { var anchor = $(this); $("a.thumbnail").children('img').hide(); @@ -416,7 +452,7 @@ var SN = { // StatusNet Notices: function() { if ($('body.user_in').length > 0) { SN.U.NoticeFavor(); - + SN.U.NoticeRepeat(); SN.U.NoticeReply(); }