aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/styles/prosilver/template/ajax.js
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2013-01-16 16:15:31 +0100
committerJoas Schilling <nickvergessen@gmx.de>2013-01-16 16:15:31 +0100
commit19b6ea8cf748034c041f88370bac620924fe1d7b (patch)
tree83fc9d93e6ea24db857a0aaf6e8948cbd4982ca9 /phpBB/styles/prosilver/template/ajax.js
parent37014abd022be4f7824a590b93a329f74aef442c (diff)
parentf63e115ae90edb9d65bc3bb23fc4d3c0ce81b763 (diff)
downloadforums-19b6ea8cf748034c041f88370bac620924fe1d7b.tar
forums-19b6ea8cf748034c041f88370bac620924fe1d7b.tar.gz
forums-19b6ea8cf748034c041f88370bac620924fe1d7b.tar.bz2
forums-19b6ea8cf748034c041f88370bac620924fe1d7b.tar.xz
forums-19b6ea8cf748034c041f88370bac620924fe1d7b.zip
Merge branch 'develop' of https://github.com/phpbb/phpbb3 into ticket/10714
* 'develop' of https://github.com/phpbb/phpbb3: (205 commits) [ticket/10786] Javascript toggle member search panel in memberlist.php [ticket/10786] Javascript toggle member search panel in memberlist.php [ticket/10786] Javascript toggle member search panel in memberlist.php [ticket/11201] Remove database column on update [ticket/10431] Remove .left class from reply-all [ticket/10431] Remove reply-all custom css [ticket/10431] Adjustments for large buttons [ticket/11323] Add tests for inclusion of defined variables [ticket/11324] Add PHP 5.5 environment to travis and allow it to fail. [ticket/11201] Remove MSN/WLM fields [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 ...
Diffstat (limited to 'phpBB/styles/prosilver/template/ajax.js')
-rw-r--r--phpBB/styles/prosilver/template/ajax.js137
1 files changed, 117 insertions, 20 deletions
diff --git a/phpBB/styles/prosilver/template/ajax.js b/phpBB/styles/prosilver/template/ajax.js
index fa31d3268f..6ce3b38981 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,
@@ -89,12 +174,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;
}
@@ -110,6 +192,21 @@ $('#quick-mod-select').change(function () {
$('#quickmodform').submit();
});
-
+/**
+* Toggle the member search panel in memberlist.php.
+*
+* If user returns to search page after viewing results the search panel is automatically displayed.
+* In any case the link will toggle the display status of the search panel and link text will be
+* appropriately changed based on the status of the search panel.
+*/
+$('#member_search').click(function () {
+ $('#memberlist_search').slideToggle('fast');
+ phpbb.ajax_callbacks['alt_text'].call(this);
+ // Focus on the username textbox if it's available and displayed
+ if ($('#memberlist_search').is(':visible')) {
+ $('#username').focus();
+ }
+ return false;
+});
})(jQuery); // Avoid conflicts with other libraries