From f4339ddb7d5ab6ae7a2ab78562990da1fcc2a8bd Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 16 Mar 2010 20:53:49 +0100 Subject: Added extra condition to focusing on notice form on page load. If the window location contains a fragument identifier, it will skip focus and do what the UA does natively. --- js/util.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'js/util.js') diff --git a/js/util.js b/js/util.js index 3efda0d7b..2e0f6e57b 100644 --- a/js/util.js +++ b/js/util.js @@ -86,7 +86,7 @@ var SN = { // StatusNet $('#'+form_id+' #'+SN.C.S.NoticeTextCount).text(jQuery.data(form[0], 'ElementData').MaxLength); } - if ($('body')[0].id != 'conversation') { + if ($('body')[0].id != 'conversation' && window.location.hash.length === 0) { $('#'+form_id+' textarea').focus(); } }, -- cgit v1.2.3-54-g00ecf From 7fc8b6af4ae9a784b797d4f7aef49c820bb10bdf Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 16 Mar 2010 21:02:56 +0100 Subject: Removed unnecessary form_id. Using jQuery .find() instead of constructing the selector. --- js/util.js | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'js/util.js') diff --git a/js/util.js b/js/util.js index 2e0f6e57b..f82ca992c 100644 --- a/js/util.js +++ b/js/util.js @@ -61,10 +61,8 @@ var SN = { // StatusNet U: { // Utils FormNoticeEnhancements: function(form) { - form_id = form.attr('id'); - if (jQuery.data(form[0], 'ElementData') === undefined) { - MaxLength = $('#'+form_id+' #'+SN.C.S.NoticeTextCount).text(); + MaxLength = form.find('#'+SN.C.S.NoticeTextCount).text(); if (typeof(MaxLength) == 'undefined') { MaxLength = SN.C.I.MaxLength; } @@ -72,7 +70,7 @@ var SN = { // StatusNet SN.U.Counter(form); - NDT = $('#'+form_id+' #'+SN.C.S.NoticeDataText); + NDT = form.find('#'+SN.C.S.NoticeDataText); NDT.bind('keyup', function(e) { SN.U.Counter(form); @@ -83,11 +81,11 @@ var SN = { // StatusNet }); } else { - $('#'+form_id+' #'+SN.C.S.NoticeTextCount).text(jQuery.data(form[0], 'ElementData').MaxLength); + form.find('#'+SN.C.S.NoticeTextCount).text(jQuery.data(form[0], 'ElementData').MaxLength); } if ($('body')[0].id != 'conversation' && window.location.hash.length === 0) { - $('#'+form_id+' textarea').focus(); + form.find('textarea').focus(); } }, @@ -105,7 +103,6 @@ var SN = { // StatusNet Counter: function(form) { SN.C.I.FormNoticeCurrent = form; - form_id = form.attr('id'); var MaxLength = jQuery.data(form[0], 'ElementData').MaxLength; @@ -113,8 +110,8 @@ var SN = { // StatusNet return; } - var remaining = MaxLength - $('#'+form_id+' #'+SN.C.S.NoticeDataText).val().length; - var counter = $('#'+form_id+' #'+SN.C.S.NoticeTextCount); + var remaining = MaxLength - form.find('#'+SN.C.S.NoticeDataText).val().length; + var counter = form.find('#'+SN.C.S.NoticeTextCount); if (remaining.toString() != counter.text()) { if (!SN.C.I.CounterBlackout || remaining === 0) { @@ -174,7 +171,6 @@ var SN = { // StatusNet FormNoticeXHR: function(form) { SN.C.I.NoticeDataGeo = {}; - form_id = form.attr('id'); form.append(''); form.ajaxForm({ dataType: 'xml', -- cgit v1.2.3-54-g00ecf From c11064a5398db824f2623c5763b3fdfdf8ae3c39 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 25 Mar 2010 14:15:54 -0700 Subject: Updated 'more' anchor for attachments to do an XHR GET Conflicts: lib/attachmentlist.php plugins/OStatus/classes/Ostatus_profile.php Merge tried to delete things that it seems it shouldn't, very confusing order. Hope rest of the cherry-picking isn't a problem. --- js/util.js | 110 +++++++++++++++------------- lib/attachmentlist.php | 53 ++++++++++++++ plugins/OStatus/classes/Ostatus_profile.php | 18 ++++- theme/base/css/display.css | 9 ++- theme/default/css/display.css | 3 +- theme/identica/css/display.css | 3 +- 6 files changed, 141 insertions(+), 55 deletions(-) (limited to 'js/util.js') diff --git a/js/util.js b/js/util.js index f82ca992c..79fd40deb 100644 --- a/js/util.js +++ b/js/util.js @@ -399,58 +399,70 @@ var SN = { // StatusNet return; } - $.fn.jOverlay.options = { - method : 'GET', - data : '', - url : '', - color : '#000', - opacity : '0.6', - zIndex : 9999, - center : false, - imgLoading : $('address .url')[0].href+'theme/base/images/illustrations/illu_progress_loading-01.gif', - bgClickToClose : true, - success : function() { - $('#jOverlayContent').append(''); - $('#jOverlayContent button').click($.closeOverlay); - }, - timeout : 0, - autoHide : true, - css : {'max-width':'542px', 'top':'5%', 'left':'32.5%'} - }; - - notice.find('a.attachment').click(function() { - var attachId = ($(this).attr('id').substring('attachment'.length + 1)); - if (attachId) { - $().jOverlay({url: $('address .url')[0].href+'attachment/' + attachId + '/ajax'}); - return false; - } - }); + var attachment_more = notice.find('.attachment.more'); + if (attachment_more.length > 0) { + attachment_more.click(function() { + $.get($(this).attr('href')+'/ajax', null, function(data) { + notice.find('.entry-title .entry-content').html($(data).find('#attachment_view .entry-content').html()); + }); - if ($('#shownotice').length == 0) { - var t; - notice.find('a.thumbnail').hover( - function() { - var anchor = $(this); - $('a.thumbnail').children('img').hide(); - anchor.closest(".entry-title").addClass('ov'); - - if (anchor.children('img').length === 0) { - t = setTimeout(function() { - $.get($('address .url')[0].href+'attachment/' + (anchor.attr('id').substring('attachment'.length + 1)) + '/thumbnail', null, function(data) { - anchor.append(data); - }); - }, 500); - } - else { - anchor.children('img').show(); - } + return false; + }); + } + else { + $.fn.jOverlay.options = { + method : 'GET', + data : '', + url : '', + color : '#000', + opacity : '0.6', + zIndex : 9999, + center : false, + imgLoading : $('address .url')[0].href+'theme/base/images/illustrations/illu_progress_loading-01.gif', + bgClickToClose : true, + success : function() { + $('#jOverlayContent').append(''); + $('#jOverlayContent button').click($.closeOverlay); }, - function() { - clearTimeout(t); - $('a.thumbnail').children('img').hide(); - $(this).closest('.entry-title').removeClass('ov'); + timeout : 0, + autoHide : true, + css : {'max-width':'542px', 'top':'5%', 'left':'32.5%'} + }; + + notice.find('a.attachment').click(function() { + var attachId = ($(this).attr('id').substring('attachment'.length + 1)); + if (attachId) { + $().jOverlay({url: $('address .url')[0].href+'attachment/' + attachId + '/ajax'}); + return false; } - ); + }); + + if ($('#shownotice').length == 0) { + var t; + notice.find('a.thumbnail').hover( + function() { + var anchor = $(this); + $('a.thumbnail').children('img').hide(); + anchor.closest(".entry-title").addClass('ov'); + + if (anchor.children('img').length === 0) { + t = setTimeout(function() { + $.get($('address .url')[0].href+'attachment/' + (anchor.attr('id').substring('attachment'.length + 1)) + '/thumbnail', null, function(data) { + anchor.append(data); + }); + }, 500); + } + else { + anchor.children('img').show(); + } + }, + function() { + clearTimeout(t); + $('a.thumbnail').children('img').hide(); + $(this).closest('.entry-title').removeClass('ov'); + } + ); + } } }, diff --git a/lib/attachmentlist.php b/lib/attachmentlist.php index b503bfb45..c6261dea5 100644 --- a/lib/attachmentlist.php +++ b/lib/attachmentlist.php @@ -359,6 +359,59 @@ class Attachment extends AttachmentListItem } } + protected function showHtmlFile(File $attachment) + { + $body = $this->scrubHtmlFile($attachment); + if ($body) { + $this->out->raw($body); + } + } + + /** + * @return mixed false on failure, HTML fragment string on success + */ + protected function scrubHtmlFile(File $attachment) + { + $path = File::path($attachment->filename); + if (!file_exists($path) || !is_readable($path)) { + common_log(LOG_ERR, "Missing local HTML attachment $path"); + return false; + } + $raw = file_get_contents($path); + + // Normalize... + $dom = new DOMDocument(); + if(!$dom->loadHTML($raw)) { + common_log(LOG_ERR, "Bad HTML in local HTML attachment $path"); + return false; + } + + // Remove