From bb0bf635d881e4238cfce3cbb269b3f70b45b8e3 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sat, 30 Jan 2010 15:03:01 +0100 Subject: Using form object instead of form_id and find(). Slightly faster and easier to read. --- js/util.js | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'js/util.js') diff --git a/js/util.js b/js/util.js index b864867fd..6bc174049 100644 --- a/js/util.js +++ b/js/util.js @@ -185,13 +185,13 @@ var SN = { // StatusNet dataType: 'xml', timeout: '60000', beforeSend: function(formData) { - if ($('#'+form_id+' #'+SN.C.S.NoticeDataText)[0].value.length === 0) { + if (form.find('#'+SN.C.S.NoticeDataText)[0].value.length === 0) { form.addClass(SN.C.S.Warning); return false; } form.addClass(SN.C.S.Processing); - $('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).addClass(SN.C.S.Disabled); - $('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).attr(SN.C.S.Disabled, SN.C.S.Disabled); + form.find('#'+SN.C.S.NoticeActionSubmit).addClass(SN.C.S.Disabled); + form.find('#'+SN.C.S.NoticeActionSubmit).attr(SN.C.S.Disabled, SN.C.S.Disabled); NLat = $('#'+SN.C.S.NoticeLat).val(); NLon = $('#'+SN.C.S.NoticeLon).val(); @@ -221,9 +221,9 @@ var SN = { // StatusNet }, error: function (xhr, textStatus, errorThrown) { 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(); + form.find('#'+SN.C.S.NoticeActionSubmit).removeClass(SN.C.S.Disabled); + form.find('#'+SN.C.S.NoticeActionSubmit).removeAttr(SN.C.S.Disabled, SN.C.S.Disabled); + form.find('.form_response').remove(); if (textStatus == 'timeout') { 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.

'); } @@ -233,9 +233,9 @@ var SN = { // StatusNet } else { 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)); + form.resetForm(); + form.find('#'+SN.C.S.NoticeDataAttachSelected).remove(); + SN.U.FormNoticeEnhancements(form); } else { 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.

'); @@ -244,7 +244,7 @@ var SN = { // StatusNet } }, success: function(data, textStatus) { - $('#'+form_id+' .form_response').remove(); + form.find('.form_response').remove(); var result; if ($('#'+SN.C.S.Error, data).length > 0) { result = document._importNode($('p', data)[0], true); @@ -290,16 +290,16 @@ var SN = { // StatusNet form.append('

'+result_title+'

'); } } - $('#'+form_id).resetForm(); - $('#'+form_id+' #'+SN.C.S.NoticeInReplyTo).val(''); - $('#'+form_id+' #'+SN.C.S.NoticeDataAttachSelected).remove(); - SN.U.FormNoticeEnhancements($('#'+form_id)); + form.resetForm(); + form.find('#'+SN.C.S.NoticeInReplyTo).val(''); + form.find('#'+SN.C.S.NoticeDataAttachSelected).remove(); + SN.U.FormNoticeEnhancements(form); } }, complete: function(xhr, textStatus) { form.removeClass(SN.C.S.Processing); - $('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).removeAttr(SN.C.S.Disabled); - $('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).removeClass(SN.C.S.Disabled); + form.find('#'+SN.C.S.NoticeActionSubmit).removeAttr(SN.C.S.Disabled); + form.find('#'+SN.C.S.NoticeActionSubmit).removeClass(SN.C.S.Disabled); $('#'+SN.C.S.NoticeLat).val(NLat); $('#'+SN.C.S.NoticeLon).val(NLon); -- cgit v1.2.3-54-g00ecf From aa3170cf34e2b2120547691e204d5ac3bdfd07aa Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sat, 30 Jan 2010 15:19:13 +0100 Subject: Using jQuery chaining in FormNoticeXHR --- js/util.js | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) (limited to 'js/util.js') diff --git a/js/util.js b/js/util.js index 6bc174049..4818be47e 100644 --- a/js/util.js +++ b/js/util.js @@ -189,9 +189,11 @@ var SN = { // StatusNet form.addClass(SN.C.S.Warning); return false; } - form.addClass(SN.C.S.Processing); - form.find('#'+SN.C.S.NoticeActionSubmit).addClass(SN.C.S.Disabled); - form.find('#'+SN.C.S.NoticeActionSubmit).attr(SN.C.S.Disabled, SN.C.S.Disabled); + form + .addClass(SN.C.S.Processing) + .find('#'+SN.C.S.NoticeActionSubmit) + .addClass(SN.C.S.Disabled) + .attr(SN.C.S.Disabled, SN.C.S.Disabled); NLat = $('#'+SN.C.S.NoticeLat).val(); NLon = $('#'+SN.C.S.NoticeLon).val(); @@ -220,9 +222,11 @@ var SN = { // StatusNet return true; }, error: function (xhr, textStatus, errorThrown) { - form.removeClass(SN.C.S.Processing); - form.find('#'+SN.C.S.NoticeActionSubmit).removeClass(SN.C.S.Disabled); - form.find('#'+SN.C.S.NoticeActionSubmit).removeAttr(SN.C.S.Disabled, SN.C.S.Disabled); + form + .removeClass(SN.C.S.Processing) + .find('#'+SN.C.S.NoticeActionSubmit) + .removeClass(SN.C.S.Disabled) + .removeAttr(SN.C.S.Disabled, SN.C.S.Disabled); form.find('.form_response').remove(); if (textStatus == 'timeout') { 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.

'); @@ -233,8 +237,9 @@ var SN = { // StatusNet } else { if (parseInt(xhr.status) === 0 || jQuery.inArray(parseInt(xhr.status), SN.C.I.HTTP20x30x) >= 0) { - form.resetForm(); - form.find('#'+SN.C.S.NoticeDataAttachSelected).remove(); + form + .resetForm() + .find('#'+SN.C.S.NoticeDataAttachSelected).remove(); SN.U.FormNoticeEnhancements(form); } else { @@ -277,8 +282,9 @@ var SN = { // StatusNet else { notices.prepend(notice); } - $('#'+notice.id).css({display:'none'}); - $('#'+notice.id).fadeIn(2500); + $('#'+notice.id) + .css({display:'none'}) + .fadeIn(2500); SN.U.NoticeWithAttachment($('#'+notice.id)); SN.U.NoticeReplyTo($('#'+notice.id)); SN.U.FormXHR($('#'+notice.id+' .form_favor')); @@ -297,9 +303,11 @@ var SN = { // StatusNet } }, complete: function(xhr, textStatus) { - form.removeClass(SN.C.S.Processing); - form.find('#'+SN.C.S.NoticeActionSubmit).removeAttr(SN.C.S.Disabled); - form.find('#'+SN.C.S.NoticeActionSubmit).removeClass(SN.C.S.Disabled); + form + .removeClass(SN.C.S.Processing) + .find('#'+SN.C.S.NoticeActionSubmit) + .removeAttr(SN.C.S.Disabled) + .removeClass(SN.C.S.Disabled); $('#'+SN.C.S.NoticeLat).val(NLat); $('#'+SN.C.S.NoticeLon).val(NLon); -- cgit v1.2.3-54-g00ecf From 4d0ee6a41f3cfb2e99dcb92e7b14f3183393f1a5 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sat, 30 Jan 2010 15:28:31 +0100 Subject: Globalized form notice data geo values --- js/util.js | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'js/util.js') diff --git a/js/util.js b/js/util.js index 4818be47e..bbc6fdb28 100644 --- a/js/util.js +++ b/js/util.js @@ -178,7 +178,7 @@ var SN = { // StatusNet }, FormNoticeXHR: function(form) { - var NDG, NLat, NLon, NLNS, NLID; + SN.C.I.NoticeDataGeo = {}; form_id = form.attr('id'); form.append(''); form.ajaxForm({ @@ -195,28 +195,28 @@ var SN = { // StatusNet .addClass(SN.C.S.Disabled) .attr(SN.C.S.Disabled, SN.C.S.Disabled); - NLat = $('#'+SN.C.S.NoticeLat).val(); - NLon = $('#'+SN.C.S.NoticeLon).val(); - NLNS = $('#'+SN.C.S.NoticeLocationNs).val(); - NLID = $('#'+SN.C.S.NoticeLocationId).val(); - NDG = $('#'+SN.C.S.NoticeDataGeo).attr('checked'); + SN.C.I.NoticeDataGeo.NLat = $('#'+SN.C.S.NoticeLat).val(); + SN.C.I.NoticeDataGeo.NLon = $('#'+SN.C.S.NoticeLon).val(); + SN.C.I.NoticeDataGeo.NLNS = $('#'+SN.C.S.NoticeLocationNs).val(); + SN.C.I.NoticeDataGeo.NLID = $('#'+SN.C.S.NoticeLocationId).val(); + SN.C.I.NoticeDataGeo.NDG = $('#'+SN.C.S.NoticeDataGeo).attr('checked'); cookieValue = $.cookie(SN.C.S.NoticeDataGeoCookie); if (cookieValue !== null && cookieValue != 'disabled') { cookieValue = JSON.parse(cookieValue); - NLat = $('#'+SN.C.S.NoticeLat).val(cookieValue.NLat).val(); - NLon = $('#'+SN.C.S.NoticeLon).val(cookieValue.NLon).val(); + SN.C.I.NoticeDataGeo.NLat = $('#'+SN.C.S.NoticeLat).val(cookieValue.NLat).val(); + SN.C.I.NoticeDataGeo.NLon = $('#'+SN.C.S.NoticeLon).val(cookieValue.NLon).val(); if ($('#'+SN.C.S.NoticeLocationNs).val(cookieValue.NLNS)) { - NLNS = $('#'+SN.C.S.NoticeLocationNs).val(cookieValue.NLNS).val(); - NLID = $('#'+SN.C.S.NoticeLocationId).val(cookieValue.NLID).val(); + SN.C.I.NoticeDataGeo.NLNS = $('#'+SN.C.S.NoticeLocationNs).val(cookieValue.NLNS).val(); + SN.C.I.NoticeDataGeo.NLID = $('#'+SN.C.S.NoticeLocationId).val(cookieValue.NLID).val(); } } if (cookieValue == 'disabled') { - NDG = $('#'+SN.C.S.NoticeDataGeo).attr('checked', false).attr('checked'); + SN.C.I.NoticeDataGeo.NDG = $('#'+SN.C.S.NoticeDataGeo).attr('checked', false).attr('checked'); } else { - NDG = $('#'+SN.C.S.NoticeDataGeo).attr('checked', true).attr('checked'); + SN.C.I.NoticeDataGeo.NDG = $('#'+SN.C.S.NoticeDataGeo).attr('checked', true).attr('checked'); } return true; @@ -309,13 +309,13 @@ var SN = { // StatusNet .removeAttr(SN.C.S.Disabled) .removeClass(SN.C.S.Disabled); - $('#'+SN.C.S.NoticeLat).val(NLat); - $('#'+SN.C.S.NoticeLon).val(NLon); + $('#'+SN.C.S.NoticeLat).val(SN.C.I.NoticeDataGeo.NLat); + $('#'+SN.C.S.NoticeLon).val(SN.C.I.NoticeDataGeo.NLon); if ($('#'+SN.C.S.NoticeLocationNs)) { - $('#'+SN.C.S.NoticeLocationNs).val(NLNS); - $('#'+SN.C.S.NoticeLocationId).val(NLID); + $('#'+SN.C.S.NoticeLocationNs).val(SN.C.I.NoticeDataGeo.NLNS); + $('#'+SN.C.S.NoticeLocationId).val(SN.C.I.NoticeDataGeo.NLID); } - $('#'+SN.C.S.NoticeDataGeo).attr('checked', NDG); + $('#'+SN.C.S.NoticeDataGeo).attr('checked', SN.C.I.NoticeDataGeo.NDG); } }); }, -- cgit v1.2.3-54-g00ecf From 9f36c1000136a99f2b96033abcec90d54da4a4f1 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 31 Jan 2010 22:37:22 +0000 Subject: Updated XHR binded events to work better in jQuery 1.4.1. Using .live() for event delegation instead of jQuery.data() and checking to see if an element was previously binded. --- js/util.js | 76 +++++++++++++++++-------------------- plugins/Realtime/realtimeupdate.js | 4 +- plugins/UserFlag/UserFlagPlugin.php | 4 +- 3 files changed, 38 insertions(+), 46 deletions(-) (limited to 'js/util.js') diff --git a/js/util.js b/js/util.js index b864867fd..f2271a03f 100644 --- a/js/util.js +++ b/js/util.js @@ -143,38 +143,32 @@ var SN = { // StatusNet SN.U.Counter(form); }, - FormXHR: function(f) { - 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; - }); - } + FormXHR: function(form) { + $.ajax({ + type: 'POST', + dataType: 'xml', + url: form.attr('action'), + data: form.serialize() + '&ajax=1', + beforeSend: function(xhr) { + form + .addClass(SN.C.S.Processing) + .find('.submit') + .addClass(SN.C.S.Disabled) + .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.replaceWith(form_new); + } + else { + form.replaceWith(document._importNode($('p', data)[0], true)); + } + } + }); }, FormNoticeXHR: function(form) { @@ -281,7 +275,6 @@ var SN = { // StatusNet $('#'+notice.id).fadeIn(2500); SN.U.NoticeWithAttachment($('#'+notice.id)); SN.U.NoticeReplyTo($('#'+notice.id)); - SN.U.FormXHR($('#'+notice.id+' .form_favor')); } } else { @@ -350,14 +343,15 @@ var SN = { // StatusNet }, NoticeFavor: function() { - $('.form_favor').each(function() { SN.U.FormXHR($(this)); }); - $('.form_disfavor').each(function() { SN.U.FormXHR($(this)); }); + $('.form_favor').live('click', function() { SN.U.FormXHR($(this)); return false; }); + $('.form_disfavor').live('click', function() { SN.U.FormXHR($(this)); return false; }); }, NoticeRepeat: function() { - $('.form_repeat').each(function() { + $('.form_repeat').live('click', function() { SN.U.FormXHR($(this)); SN.U.NoticeRepeatConfirmation($(this)); + return false; }); }, @@ -695,11 +689,11 @@ var SN = { // StatusNet EntityActions: function() { if ($('body.user_in').length > 0) { - $('.form_user_subscribe').each(function() { SN.U.FormXHR($(this)); }); - $('.form_user_unsubscribe').each(function() { SN.U.FormXHR($(this)); }); - $('.form_group_join').each(function() { SN.U.FormXHR($(this)); }); - $('.form_group_leave').each(function() { SN.U.FormXHR($(this)); }); - $('.form_user_nudge').each(function() { SN.U.FormXHR($(this)); }); + $('.form_user_subscribe').live('click', function() { SN.U.FormXHR($(this)); return false; }); + $('.form_user_unsubscribe').live('click', function() { SN.U.FormXHR($(this)); return false; }); + $('.form_group_join').live('click', function() { SN.U.FormXHR($(this)); return false; }); + $('.form_group_leave').live('click', function() { SN.U.FormXHR($(this)); return false; }); + $('.form_user_nudge').live('click', function() { SN.U.FormXHR($(this)); return false; }); SN.U.NewDirectMessage(); } diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js index fb9dcdbfb..862c8b086 100644 --- a/plugins/Realtime/realtimeupdate.js +++ b/plugins/Realtime/realtimeupdate.js @@ -95,9 +95,7 @@ RealtimeUpdate = { $("#notices_primary .notice:first").css({display:"none"}); $("#notices_primary .notice:first").fadeIn(1000); - SN.U.FormXHR($('#'+noticeItemID+' .form_favor')); SN.U.NoticeReplyTo($('#'+noticeItemID)); - SN.U.FormXHR($('#'+noticeItemID+' .form_repeat')); SN.U.NoticeWithAttachment($('#'+noticeItemID)); }, @@ -132,7 +130,7 @@ RealtimeUpdate = { user = data['user']; html = data['html'].replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"').replace(/&/g,'&'); source = data['source'].replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"').replace(/&/g,'&'); -console.log(data); + ni = "
  • "+ "
    "+ ""+ diff --git a/plugins/UserFlag/UserFlagPlugin.php b/plugins/UserFlag/UserFlagPlugin.php index a33869c19..8728e5703 100644 --- a/plugins/UserFlag/UserFlagPlugin.php +++ b/plugins/UserFlag/UserFlagPlugin.php @@ -208,8 +208,8 @@ class UserFlagPlugin extends Plugin function onEndShowScripts($action) { $action->inlineScript('if ($(".form_entity_flag").length > 0) { '. - 'SN.U.FormXHR($(".form_entity_flag")); '. - '}'); + '$(".form_entity_flag").bind("click", function() {'. + 'SN.U.FormXHR($(this)); return false; }); }'); return true; } -- cgit v1.2.3-54-g00ecf From d73746641b6dd17cc9037c016632be673704a10f Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Mon, 1 Feb 2010 15:13:54 +0100 Subject: Reusing fixed selector name for 'processing' in util.js --- js/util.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'js/util.js') diff --git a/js/util.js b/js/util.js index c12e715ce..c6a9682de 100644 --- a/js/util.js +++ b/js/util.js @@ -641,7 +641,7 @@ var SN = { // StatusNet NDM.bind('click', function() { var NDMF = $('.entity_send-a-message form'); if (NDMF.length === 0) { - $(this).addClass('processing'); + $(this).addClass(SN.C.S.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'); @@ -652,7 +652,7 @@ var SN = { // StatusNet NDMF.hide(); return false; }); - NDM.removeClass('processing'); + NDM.removeClass(SN.C.S.Processing); }); } else { -- cgit v1.2.3-54-g00ecf