diff --git a/plugins/Ajax/htdocs/images/common.js b/plugins/Ajax/htdocs/images/common.js index 682f902ce..44970f9a3 100644 --- a/plugins/Ajax/htdocs/images/common.js +++ b/plugins/Ajax/htdocs/images/common.js @@ -749,40 +749,25 @@ function firehose_handle_comment_nodnix( commands ){ } -function tag_ui_init_new_articles(){ - if ( $('#firehose').length ) { - return firehose_init_tag_ui(); - } - - var $new_articles = $(document).article_info__find_articles(':not(:has(span.sd-info-block .tag-ui))'); - $new_articles. - click(firehose_click_tag). - each(function(){ - install_tag_server(this); - this.command_pipeline.push(firehose_handle_context_triggers); - }); - $init_tag_widgets($new_articles.find('.tag-widget-stub')); - init_tag_ui_styles($new_articles); - $new_articles.article_info('tag-ui', true); - return $new_articles; -} - $(function(){ - tag_ui_init_new_articles(); + firehose_init_tag_ui(); + $('#firehoselist').click(firehose_click_tag); // if no #firehoselist, install click handler per article }); function firehose_init_tag_ui( $new_entries ){ + var $firehoselist = $('#firehoselist'); + if ( ! $new_entries || ! $new_entries.length ) { - var $firehoselist = $('#firehoselist'); if ( $firehoselist.length ) { $new_entries = $firehoselist.children('[id^=firehose-][class*=article]'); } else { - $new_entries = $('[id^=firehose-][class*=article]'); + $new_entries = $('[class*=article]'); } } $new_entries = $new_entries.filter(':not([tag-server])'); + var have_nodnix = $new_entries.children('[id^=updown-]').length; $new_entries. each(function(){ @@ -790,28 +775,35 @@ function firehose_init_tag_ui( $new_entries ){ install_tag_server(this, id); - if ( fh_is_admin ) { + if ( tag_admin ) { this.command_pipeline.push(firehose_handle_admin_commands); } - this.command_pipeline.push( - firehose_handle_context_triggers, - ($this.attr('type') == 'comment') ? - firehose_handle_comment_nodnix : - firehose_handle_nodnix ); - - $this. - find('> h3'). - append('
' + - '
' + - '
'). - find('.tag-display-stub'). - click(firehose_click_nodnix_reason); + this.command_pipeline.push(firehose_handle_context_triggers); + + if ( have_nodnix ) { + // install nod/nix handling only if I see the nod/nix buttons + this.command_pipeline.push( + ($this.attr('type') == 'comment') ? + firehose_handle_comment_nodnix : + firehose_handle_nodnix); + $this. + find('> h3'). + append('
' + + '
' + + '
'). + find('.tag-display-stub'). + click(firehose_click_nodnix_reason); + } }); + if ( ! $firehoselist.length ) { + $new_entries.click(firehose_click_tag); + } + var $widgets = $init_tag_widgets($new_entries.find('.tag-widget-stub')); - if ( fh_is_admin ) { + if ( tag_admin ) { $widgets. filter('.body-widget'). each(function(){ diff --git a/plugins/Ajax/htdocs/images/tag-ui.js b/plugins/Ajax/htdocs/images/tag-ui.js index 70d09f14f..7b0bf8693 100644 --- a/plugins/Ajax/htdocs/images/tag-ui.js +++ b/plugins/Ajax/htdocs/images/tag-ui.js @@ -443,7 +443,7 @@ function $init_tag_displays( $stubs, options ){ $init_tag_displays.default_menu = 'x !'; $(function(){ - if ( fh_is_admin ) { + if ( tag_admin ) { $init_tag_displays.default_menu = 'x ! # ## _ ^'; } }); @@ -1034,7 +1034,7 @@ YAHOO.slashdot.topicTags = ["keyword", update_class_map(well_known_tags, 'p', ['mainpage']); // Rob requests 'mainpage' never show its face update_class_map(well_known_tags, 'd p', data_types); - if ( fh_is_admin ) { + if ( tag_admin ) { update_class_map(well_known_tags, 'w p', ['signed', 'unsigned', 'signoff']); update_class_map(well_known_tags, 'd', ['unknown']); // Tags.pm debugging } else { diff --git a/plugins/Ajax/templates/init_tag_ui;misc;default b/plugins/Ajax/templates/init_tag_ui;misc;default index 7472d7f52..871460b6b 100644 --- a/plugins/Ajax/templates/init_tag_ui;misc;default +++ b/plugins/Ajax/templates/init_tag_ui;misc;default @@ -15,9 +15,11 @@ init_tag_ui __seclev__ 10000 __template__ +[% IF !user.state.init_tag_ui_already_processed %] [% tags_reader = Slash.getObject('Slash::Tags', { db_type => 'reader' }); postags = tags_reader.getPositivePopupTags.sort; negtags = tags_reader.getNegativePopupTags.sort; + user.state.init_tag_ui_already_processed = 1; -%] +[% END %] __version__ $Id$ diff --git a/plugins/FireHose/PLUGIN b/plugins/FireHose/PLUGIN index 901749652..a7506809e 100644 --- a/plugins/FireHose/PLUGIN +++ b/plugins/FireHose/PLUGIN @@ -33,7 +33,6 @@ template=templates/paginate;firehose;default template=templates/portalmap;firehose;default template=templates/reject_firehose;misc;default template=templates/tag_widget;firehose;default -template=templates/init_tag_ui;firehose;default task=firehose_reject_old.pl task=firehose_track_volume.pl task=firehose_backend.pl diff --git a/plugins/FireHose/templates/list;firehose;default b/plugins/FireHose/templates/list;firehose;default index 20598c706..af8d33e58 100644 --- a/plugins/FireHose/templates/list;firehose;default +++ b/plugins/FireHose/templates/list;firehose;default @@ -64,7 +64,6 @@ __template__ [% IF form.metamod %]
[% END %] -[% PROCESS init_tag_ui -%] [% firehose = Slash.getObject("Slash::FireHose"); %] [% IF env.script_name == "/firehose.pl" || env.script_name == "/index2.pl" || form.ssi %] [% ua = env.HTTP_USER_AGENT %] @@ -265,7 +264,6 @@ $(function(){ } }); - $('#firehoselist').click(firehose_click_tag); if ( fh_is_admin ) { firehose_init_note_flags(); } diff --git a/plugins/FireHose/templates/view;firehose;default b/plugins/FireHose/templates/view;firehose;default index 638d90ddb..c48b99d3c 100644 --- a/plugins/FireHose/templates/view;firehose;default +++ b/plugins/FireHose/templates/view;firehose;default @@ -26,7 +26,6 @@ __template__ [% firehosetext %]
-[% PROCESS init_tag_ui %] [% END %] +[% PROCESS init_tag_ui %] [% PROCESS ajax_reskey_tag reskey_label => 'reskey_static', reskey_name => 'ajax_user_static', reskey_tag_js => 2 %] [% END # constants.plugin.Ajax %] __seclev__