X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=js%2Futil.js;h=0bd671f8dffd0d268bd6bc91dfa595522ced7994;hb=aa1bb43588d336b6d08c39ef3bd0a590d64dfe69;hp=9c79f837ffe1dd3d323865d551f7ec5b36b37083;hpb=93f6981b71c5fe4445352ca83a01a964fca9f078;p=quix0rs-gnu-social.git diff --git a/js/util.js b/js/util.js index 9c79f837ff..0bd671f8df 100644 --- a/js/util.js +++ b/js/util.js @@ -131,34 +131,37 @@ var SN = { // StatusNet }, FormXHR: function(f) { - f.bind('submit', function(e) { - form_id = $(this)[0].id; - $.ajax({ - type: 'POST', - dataType: 'xml', - url: $(this)[0].action, - data: $(this).serialize() + '&ajax=1', - beforeSend: function(xhr) { - $('#'+form_id).addClass(SN.C.S.Processing); - $('#'+form_id+' .submit').addClass(SN.C.S.Disabled); - $('#'+form_id+' .submit').attr(SN.C.S.Disabled, SN.C.S.Disabled); - }, - error: function (xhr, textStatus, errorThrown) { - alert(errorThrown || textStatus); - }, - success: function(data, textStatus) { - if (typeof($('form', data)[0]) != 'undefined') { - form_new = document._importNode($('form', data)[0], true); - $('#'+form_id).replaceWith(form_new); - $('#'+form_new.id).each(function() { SN.U.FormXHR($(this)); }); - } - else { - $('#'+form_id).replaceWith(document._importNode($('p', data)[0], true)); + if (jQuery.data(f[0], "ElementData") === undefined) { + jQuery.data(f[0], "ElementData", {Bind:'submit'}); + f.bind('submit', function(e) { + form_id = $(this)[0].id; + $.ajax({ + type: 'POST', + dataType: 'xml', + url: $(this)[0].action, + data: $(this).serialize() + '&ajax=1', + beforeSend: function(xhr) { + $('#'+form_id).addClass(SN.C.S.Processing); + $('#'+form_id+' .submit').addClass(SN.C.S.Disabled); + $('#'+form_id+' .submit').attr(SN.C.S.Disabled, SN.C.S.Disabled); + }, + error: function (xhr, textStatus, errorThrown) { + alert(errorThrown || textStatus); + }, + success: function(data, textStatus) { + if (typeof($('form', data)[0]) != 'undefined') { + form_new = document._importNode($('form', data)[0], true); + $('#'+form_id).replaceWith(form_new); + $('#'+form_new.id).each(function() { SN.U.FormXHR($(this)); }); + } + else { + $('#'+form_id).replaceWith(document._importNode($('p', data)[0], true)); + } } - } + }); + return false; }); - return false; - }); + } }, FormNoticeXHR: function(form) { @@ -231,8 +234,8 @@ var SN = { // StatusNet $('#'+notice.id).css({display:'none'}); $('#'+notice.id).fadeIn(2500); SN.U.NoticeAttachments(); - SN.U.NoticeReply(); - SN.U.NoticeFavor(); + SN.U.NoticeReplyTo($('#'+notice.id)); + SN.U.FormXHR($('#'+notice.id+' .form_favor')); } } $('#'+form_id+' #'+SN.C.S.NoticeDataText).val(''); @@ -252,13 +255,20 @@ var SN = { // StatusNet NoticeReply: function() { if ($('#'+SN.C.S.NoticeDataText).length > 0 && $('#content .notice_reply').length > 0) { - $('#content .notice').each(function() { - var notice = $(this)[0]; - $($('.notice_reply', notice)[0]).click(function() { - var nickname = ($('.author .nickname', notice).length > 0) ? $($('.author .nickname', notice)[0]) : $('.author .nickname.uid'); - SN.U.NoticeReplySet(nickname.text(), $($('.notice_id', notice)[0]).text()); - return false; - }); + $('#content .notice').each(function() { SN.U.NoticeReplyTo($(this)); }); + } + }, + + NoticeReplyTo: function(notice_item) { + var notice = notice_item[0]; + var notice_reply = $('.notice_reply', notice)[0]; + + if (jQuery.data(notice_reply, "ElementData") === undefined) { + jQuery.data(notice_reply, "ElementData", {Bind:'submit'}); + $(notice_reply).bind('click', function() { + var nickname = ($('.author .nickname', notice).length > 0) ? $($('.author .nickname', notice)[0]) : $('.author .nickname.uid'); + SN.U.NoticeReplySet(nickname.text(), $($('.notice_id', notice)[0]).text()); + return false; }); } }, @@ -266,19 +276,18 @@ var SN = { // StatusNet NoticeReplySet: function(nick,id) { if (nick.match(SN.C.I.PatternUsername)) { var text = $('#'+SN.C.S.NoticeDataText); - if (text.length) { + if (text.length > 0) { replyto = '@' + nick + ' '; text.val(replyto + text.val().replace(RegExp(replyto, 'i'), '')); - $('#'+SN.C.S.FormNotice+' input#'+SN.C.S.NoticeInReplyTo).val(id); + $('#'+SN.C.S.FormNotice+' #'+SN.C.S.NoticeInReplyTo).val(id); + + text[0].focus(); if (text[0].setSelectionRange) { var len = text.val().length; text[0].setSelectionRange(len,len); - text[0].focus(); } - return false; } } - return true; }, NoticeFavor: function() { @@ -287,13 +296,21 @@ var SN = { // StatusNet }, NoticeAttachments: function() { + $('.notice a.attachment').each(function() { + SN.U.NoticeWithAttachment($(this).closest('.notice')); + }); + }, + + NoticeWithAttachment: function(notice) { + var notice_id = notice.attr('id'); + $.fn.jOverlay.options = { method : 'GET', data : '', url : '', color : '#000', opacity : '0.6', - zIndex : 99, + zIndex : 9999, center : false, imgLoading : $('address .url')[0].href+'theme/base/images/illustrations/illu_progress_loading-01.gif', bgClickToClose : true, @@ -306,13 +323,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(); @@ -365,9 +382,10 @@ var SN = { // StatusNet NewDirectMessage: function() { NDM = $('.entity_send-a-message a'); NDM.attr({'href':NDM.attr('href')+'&ajax=1'}); - NDM.click(function() { + NDM.bind('click', function() { var NDMF = $('.entity_send-a-message form'); if (NDMF.length === 0) { + $(this).addClass('processing'); $.get(NDM.attr('href'), null, function(data) { $('.entity_send-a-message').append(document._importNode($('form', data)[0], true)); NDMF = $('.entity_send-a-message .form_notice'); @@ -378,6 +396,7 @@ var SN = { // StatusNet NDMF.hide(); return false; }); + NDM.removeClass('processing'); }); } else {