diff options
author | Nathan Guse <nathaniel.guse@gmail.com> | 2013-01-15 11:31:39 -0600 |
---|---|---|
committer | Nathan Guse <nathaniel.guse@gmail.com> | 2013-01-15 11:31:39 -0600 |
commit | 51e0f002eeaf2d55a63feee66ccb37d689f46f55 (patch) | |
tree | 21590506df83029d97a02ccaafa86c085f8c568f /phpBB/styles/prosilver/template/ajax.js | |
parent | 44fcec520f785d18d3cd3b19e26db977f23b844c (diff) | |
parent | a2f6e494f37914352b0bb72d5a84904d3f2c51a3 (diff) | |
download | forums-51e0f002eeaf2d55a63feee66ccb37d689f46f55.tar forums-51e0f002eeaf2d55a63feee66ccb37d689f46f55.tar.gz forums-51e0f002eeaf2d55a63feee66ccb37d689f46f55.tar.bz2 forums-51e0f002eeaf2d55a63feee66ccb37d689f46f55.tar.xz forums-51e0f002eeaf2d55a63feee66ccb37d689f46f55.zip |
Merge branch 'develop' of github.com:phpbb/phpbb3 into ticket/11103
# By Oleg Pudeyev (37) and others
# Via Oleg Pudeyev (24) and others
* 'develop' of github.com:phpbb/phpbb3: (179 commits)
[ticket/11323] Add tests for inclusion of defined variables
[ticket/11324] Add PHP 5.5 environment to travis and allow it to fail.
[ticket/11321] Recreate schema files with develop/create_schema_files.php
[ticket/11320] Include functions file as we need phpbb_convert_30_dbms_to_31
[ticket/11313] Use correct object el instead of eel in alt_text callback
[ticket/11301] Guidelines: Add spaces in front and after the / operator.
[ticket/11301] Explicitly cast str offset to int to prevent E_NOTICE on 5.4.
[ticket/11311] Include asset core.js in subsilver2 overall_footer.html
[ticket/10949] Remove not needed comma
[ticket/11309] phpbb_extension_interface::disable_step correct docblock.
[ticket/10949] Converted missing code to new JS coding guidelines
[ticket/11302] Correctly select first timezone or selected timezone
[ticket/11305] Mock container for cache driver in functional create_user()
[ticket/11305] Check for $cache being null before using it in db drivers.
[ticket/10805] Compare phpbbAlertTimer against null
[ticket/11305] Define hook finder as a service on the container.
[ticket/11305] Adjust comment.
[ticket/11305] Use phpbb_create_default_container.
[ticket/11305] Create a normal container during final installation step.
[ticket/11305] Retrieve cache driver from container rather than cache service.
...
Conflicts:
phpBB/install/schemas/firebird_schema.sql
phpBB/install/schemas/mssql_schema.sql
phpBB/install/schemas/mysql_40_schema.sql
phpBB/install/schemas/mysql_41_schema.sql
phpBB/install/schemas/oracle_schema.sql
phpBB/install/schemas/postgres_schema.sql
phpBB/install/schemas/sqlite_schema.sql
phpBB/styles/subsilver2/template/overall_footer.html
Diffstat (limited to 'phpBB/styles/prosilver/template/ajax.js')
-rw-r--r-- | phpBB/styles/prosilver/template/ajax.js | 133 |
1 files changed, 101 insertions, 32 deletions
diff --git a/phpBB/styles/prosilver/template/ajax.js b/phpBB/styles/prosilver/template/ajax.js index f0a9cd84e3..d1d44ed5b8 100644 --- a/phpBB/styles/prosilver/template/ajax.js +++ b/phpBB/styles/prosilver/template/ajax.js @@ -2,17 +2,103 @@ "use strict"; +/** +* Close popup alert after a specified delay +* +* @param int Delay in ms until darkenwrapper's click event is triggered +*/ +phpbb.closeDarkenWrapper = function(delay) { + setTimeout(function() { + $('#darkenwrapper').trigger('click'); + }, delay); +}; + +// This callback will mark all forum icons read +phpbb.addAjaxCallback('mark_forums_read', function(res) { + var readTitle = res.NO_UNREAD_POSTS; + var unreadTitle = res.UNREAD_POSTS; + var iconsArray = { + 'forum_unread': 'forum_read', + 'forum_unread_subforum': 'forum_read_subforum', + 'forum_unread_locked': 'forum_read_locked' + }; + + $('li.row').find('dl[class*="forum_unread"]').each(function() { + var $this = $(this); + + $.each(iconsArray, function(unreadClass, readClass) { + if ($this.hasClass(unreadClass)) { + $this.removeClass(unreadClass).addClass(readClass); + } + }); + $this.children('dt[title="' + unreadTitle + '"]').attr('title', readTitle); + }); + + // Mark subforums read + $('a.subforum[class*="unread"]').removeClass('unread').addClass('read'); + + // Update mark forums read links + $('[data-ajax="mark_forums_read"]').attr('href', res.U_MARK_FORUMS); + + phpbb.closeDarkenWrapper(3000); +}); + +// This callback will mark all topic icons read +phpbb.addAjaxCallback('mark_topics_read', function(res) { + var readTitle = res.NO_UNREAD_POSTS; + var unreadTitle = res.UNREAD_POSTS; + var iconsArray = { + 'global_unread': 'global_read', + 'announce_unread': 'announce_read', + 'sticky_unread': 'sticky_read', + 'topic_unread': 'topic_read' + }; + var iconsState = ['', '_hot', '_hot_mine', '_locked', '_locked_mine', '_mine']; + var unreadClassSelectors = ''; + var classMap = {}; + var classNames = []; + + $.each(iconsArray, function(unreadClass, readClass) { + $.each(iconsState, function(key, value) { + // Only topics can be hot + if ((value == '_hot' || value == '_hot_mine') && unreadClass != 'topic_unread') { + return true; + } + classMap[unreadClass + value] = readClass + value; + classNames.push(unreadClass + value); + }); + }); + + unreadClassSelectors = '.' + classNames.join(',.'); + + $('li.row').find(unreadClassSelectors).each(function() { + var $this = $(this); + $.each(classMap, function(unreadClass, readClass) { + if ($this.hasClass(unreadClass)) { + $this.removeClass(unreadClass).addClass(readClass); + } + }); + $this.children('dt[title="' + unreadTitle + '"]').attr('title', readTitle); + }); + + // Remove link to first unread post + $('a').has('span.icon_topic_newest').remove(); + + // Update mark topics read links + $('[data-ajax="mark_topics_read"]').attr('href', res.U_MARK_TOPICS); + + phpbb.closeDarkenWrapper(3000); +}); + // This callback finds the post from the delete link, and removes it. -phpbb.add_ajax_callback('post_delete', function() { +phpbb.addAjaxCallback('post_delete', function() { var el = $(this), - post_id; - - if (el.attr('data-refresh') === undefined) - { - post_id = el[0].href.split('&p=')[1]; - var post = el.parents('#p' + post_id).css('pointer-events', 'none'); - if (post.hasClass('bg1') || post.hasClass('bg2')) - { + postId; + + if (el.attr('data-refresh') === undefined) { + postId = el[0].href.split('&p=')[1]; + var post = el.parents('#p' + postId).css('pointer-events', 'none'); + if (post.hasClass('bg1') || post.hasClass('bg2')) { var posts1 = post.nextAll('.bg1'); post.nextAll('.bg2').removeClass('bg2').addClass('bg1'); posts1.removeClass('bg1').addClass('bg2'); @@ -24,7 +110,7 @@ phpbb.add_ajax_callback('post_delete', function() { }); // This callback removes the approve / disapprove div or link. -phpbb.add_ajax_callback('post_approve', function(res) { +phpbb.addAjaxCallback('post_approve', function(res) { var remove = (res.approved) ? $(this) : $(this).parents('.post'); $(remove).css('pointer-events', 'none').fadeOut(function() { $(this).remove(); @@ -32,12 +118,12 @@ phpbb.add_ajax_callback('post_approve', function(res) { }); // This removes the parent row of the link or form that fired the callback. -phpbb.add_ajax_callback('row_delete', function() { +phpbb.addAjaxCallback('row_delete', function() { $(this).parents('tr').remove(); }); // This handles friend / foe additions removals. -phpbb.add_ajax_callback('zebra', function(res) { +phpbb.addAjaxCallback('zebra', function(res) { var zebra; if (res.success) { @@ -54,8 +140,7 @@ $('[data-ajax]').each(function() { ajax = $this.attr('data-ajax'), fn; - if (ajax !== 'false') - { + if (ajax !== 'false') { fn = (ajax !== 'true') ? ajax : null; phpbb.ajaxify({ selector: this, @@ -76,19 +161,6 @@ $('#qr_full_editor').click(function() { }); }); -// Toggle notification list -$('#notification_list_button').click(function(e) { - $('#notification_list').toggle(); - e.preventDefault(); -}); -$('#phpbb').click(function(e) { - var target = e.target; - - if (!$(target).is('#notification_list') && !$(target).is('#notification_list_button') && !$(target).parents().is('#notification_list')) { - $('#notification_list').hide(); - } -}); - /** * This AJAXifies the quick-mod tools. The reason it cannot be a standard * callback / data attribute is that it requires filtering - some of the options @@ -100,12 +172,9 @@ phpbb.ajaxify({ filter: function (data) { var action = $('#quick-mod-select').val(); - if (action === 'make_normal') - { + if (action === 'make_normal') { return $(this).find('select option[value="make_global"]').length > 0; - } - else if (action === 'lock' || action === 'unlock') - { + } else if (action === 'lock' || action === 'unlock') { return true; } |