diff options
Diffstat (limited to 'phpBB/styles')
| -rw-r--r-- | phpBB/styles/prosilver/template/ajax.js | 66 | ||||
| -rw-r--r-- | phpBB/styles/prosilver/template/overall_footer.html | 3 | ||||
| -rw-r--r-- | phpBB/styles/script.js | 400 |
3 files changed, 68 insertions, 401 deletions
diff --git a/phpBB/styles/prosilver/template/ajax.js b/phpBB/styles/prosilver/template/ajax.js new file mode 100644 index 0000000000..38233ad0e0 --- /dev/null +++ b/phpBB/styles/prosilver/template/ajax.js @@ -0,0 +1,66 @@ +(function($) { // Avoid conflicts with other libraries + + + +phpbb.add_ajax_callback('post_delete', function(el) { + if ($(this).data('refresh') === undefined) + { + var pid = el.href.split('&p=')[1]; + $(el).parents('div #p' + pid).fadeOut(function() { + $(this).remove(); + }); + } +}).add_ajax_callback('bookmark', function(el, res) { + var text = (res.MESSAGE_TEXT.indexOf('Removed') === -1); + text = (text) ? 'Remove from bookmarks' : 'Bookmark topic'; + $(el).text(el.title = text); +}).add_ajax_callback('topic_subscribe', function(el) { + $(el).text(el.title = 'Unsubscribe topic'); +}).add_ajax_callback('topic_unsubscribe', function(el) { + $(el).text(el.title = 'Subscribe forum'); +}).add_ajax_callback('forum_subscribe', function(el) { + $(el).text(el.title = 'Unsubscribe topic'); +}).add_ajax_callback('forum_unsubscribe', function(el) { + $(el).text(el.title = 'Subscribe forum'); +}).add_ajax_callback('post_approve', function(el, res, act) { + $(el).parents((act === 'approve') ? '.rules' : '.post').fadeOut(function() { + $(this).remove(); + }); +}).add_ajax_callback('qr-submit', function(el) { + $(el).parents('form').fadeOut(function() { + $(this).remove(); + }); +}).add_ajax_callback('row_delete', function(el) { + var tr = $(el).parents('tr'); + tr.remove(); +}).add_ajax_callback('zebra', function(el, res) { + if (res.success) { + $('.zebra').html(res.MESSAGE_TEXT); + $($('.zebra').get(1)).remove(); + } +});; + + + +$('[data-ajax]').each(function() { + var fn = ($(this).data('ajax') !== 'true') ? $(this).data('ajax') : null; + phpbb.ajaxify({selector: this}, $(this).data('refresh') !== undefined, fn); +}); + + + +phpbb.ajaxify({ + selector: '#quickmodform', + exception: function(el, act, data) { + var d = phpbb.parse_querystring(data).action; + if (d == 'make_normal') + { + return !(el.find('select option[value="make_global"]').length); + } + return !(d == 'lock' || d == 'unlock' || d == 'delete_topic' || d.slice(0, 5) == 'make_'); + } +}, true); + + + +})(jQuery); // Avoid conflicts with other libraries diff --git a/phpBB/styles/prosilver/template/overall_footer.html b/phpBB/styles/prosilver/template/overall_footer.html index 20f6ee1f91..a89cd7f04e 100644 --- a/phpBB/styles/prosilver/template/overall_footer.html +++ b/phpBB/styles/prosilver/template/overall_footer.html @@ -40,7 +40,8 @@ <script type="text/javascript" src="{T_JQUERY_LINK}"></script> <!-- IF S_JQUERY_FALLBACK --><script type="text/javascript">window.jQuery || document.write(unescape('%3Cscript src="{T_ASSETS_PATH}/javascript/jquery.js" type="text/javascript"%3E%3C/script%3E'));</script><!-- ENDIF --> -<script type="text/javascript" src="styles/script.js"></script> +<script type="text/javascript" src="{T_ASSETS_PATH}/javascript/core.js"></script> +<script type="text/javascript" src="{T_TEMPLATE_PATH}/ajax.js"></script> </body> </html> diff --git a/phpBB/styles/script.js b/phpBB/styles/script.js deleted file mode 100644 index dd9d2532cc..0000000000 --- a/phpBB/styles/script.js +++ /dev/null @@ -1,400 +0,0 @@ -var phpbb = {}; - -(function($) { // Avoid conflicts with other libraries - - -var dark = $('#darkenwrapper'), - loading_alert = $('#loadingalert'); - - -/** - * Display a loading screen. - * - * @returns object Returns loading_alert. - */ -phpbb.loading_alert = function() { - if (dark.is(':visible')) - { - loading_alert.fadeIn(100); - } - else - { - loading_alert.show(); - dark.fadeIn(100, function() { - setTimeout(function() { - if (loading_alert.is(':visible')) - { - phpbb.alert('Error', 'Error processing your request. Please try again.'); - } - }, 5000); - }); - } - - return loading_alert; -} - -/** - * Display a simple alert similar to JSs native alert(). - * - * @param string title Title of the message, eg "Information" - * @param string msg Message to display. Can be HTML. - * @param bool fadedark Remove the dark background when done? Defaults - * to yes. - * - * @returns object Returns the div created. - */ -phpbb.alert = function(title, msg, fadedark) { - var div = $('<div class="jalert"><h3>' + title + '</h3><p>' + msg + '</p></div>'); - - div.bind('click', function(e) { - e.stopPropagation(); - return true; - }); - dark.one('click', function(e) { - var fade = (typeof fadedark !== 'undefined' && !fadedark) ? div : dark; - fade.fadeOut(100, function() { - div.remove(); - }); - return false; - }); - - $(document).bind('keydown', function(e) { - if (e.keyCode === 13 || e.keyCode === 27) { - dark.trigger('click'); - return false; - } - return true; - }); - - if (loading_alert.is(':visible')) - { - loading_alert.fadeOut(100, function() { - dark.append(div); - div.fadeIn(100); - }); - } - else if (dark.is(':visible')) - { - dark.append(div); - div.fadeIn(100); - } - else - { - dark.append(div); - div.show(); - dark.fadeIn(100); - } - - return div; -} - -/** - * Display a simple yes / no box to the user. - * - * @param string msg Message to display. Can be HTML. - * @param function callback Callback. Bool param, whether the user pressed - * yes or no (or whatever their language is). - * @param bool fadedark Remove the dark background when done? Defaults - * to yes. - * - * @returns object Returns the div created. - */ -phpbb.confirm = function(msg, callback, fadedark) { - var div = $('<div class="jalert"><p>' + msg + '</p>\ - <input type="button" class="jalertbut button1" value="Yes" /> \ - <input type="button" class="jalertbut button2" value="No" /></div>'); - - div.find('.jalertbut').bind('click', function() { - var res = this.value === 'Yes'; - var fade = (typeof fadedark !== 'undefined' && !fadedark && res) ? div : dark; - fade.fadeOut(100, function() { - div.remove(); - }); - callback(res); - return false; - }); - - $(document).bind('keydown', function(e) { - if (e.keyCode === 13) { - $('.jalertbut.button1').trigger('click'); - return false; - } else if (e.keyCode === 27) { - $('.jalertbut.button2').trigger('click'); - return false; - } - return true; - }); - - if (loading_alert.is(':visible')) - { - loading_alert.fadeOut(100, function() { - dark.append(div); - div.fadeIn(100); - }); - } - else if (dark.is(':visible')) - { - dark.append(div); - div.fadeIn(100); - } - else - { - dark.append(div); - div.show(); - dark.fadeIn(100); - } - - return div; -} - -/** - * Turn a querystring into an array. - * - * @argument string string The querystring to parse. - * @returns array The array created. - */ -phpbb.parse_querystring = function(string) { - var end = {}, i; - - string = string.split('&'); - for (i = 0; i < string.length; i++) - { - end[string[i].split('=')[0]] = decodeURIComponent(string[i].split('=')[1]); - } - return end; -} - - -/** - * Makes a link use AJAX instead of loading an entire page. - * - * @param object options Options, if a string will be the selector. - * @param bool/function refresh If we are sent back a refresh, should it be - * acted upon? This can either be true / false / a function. - * @param function callback Callback. - */ -phpbb.ajaxify = function(options, refresh, callback) { - var selector = $((typeof options === 'string') ? options : options.selector); - var is_form = selector.is('form'); - if (is_form) - { - selector = selector.find('input:submit'); - } - - selector.click(function() { - var act, data, path, that = this; - - if ($(this).data('ajax') == false) - { - return true; - } - - function return_handler(res) - { - if (typeof res.S_CONFIRM_ACTION === 'undefined') - { - // It is a standard link, no confirm_box required. - if (typeof res.MESSAGE_TITLE !== 'undefined') - { - var alert = phpbb.alert(res.MESSAGE_TITLE, res.MESSAGE_TEXT); - } - else - { - dark.fadeOut(100); - } - - if (typeof phpbb.ajax_callbacks[callback] === 'function') - { - phpbb.ajax_callbacks[callback](that, res, (is_form) ? act : null); - } - - if (res.REFRESH_DATA) - { - if (typeof refresh === 'function') - { - refresh = refresh(res.REFRESH_DATA.url); - } - else if (typeof refresh !== 'boolean') - { - refresh = false; - } - - setTimeout(function() { - if (refresh) - { - window.location = res.REFRESH_DATA.url; - } - - dark.fadeOut(100, function() { - alert.remove(); - }); - }, res.REFRESH_DATA.time * 1000); - } - } - else - { - // confirm_box - confirm with the user and send back - phpbb.confirm(res.MESSAGE_TEXT, function(del) { - if (del) - { - phpbb.loading_alert(); - data = $('<form>' + res.S_HIDDEN_FIELDS + '</form>').serialize(); - $.post(res.S_CONFIRM_ACTION, data + '&confirm=' + res.YES_VALUE, return_handler); - } - }, false); - } - } - - var run_exception = (typeof options.exception === 'function'); - if (is_form) - { - act = /action\[([a-z]+)\]/.exec(this.name); - data = decodeURI($(this).closest('form').serialize()); - path = $(this).closest('form').attr('action').replace('&', '&'); - - if (act) - { - act = act[1] - data += '&action=' + act; - } - else - { - data += '&' + this.name + '=' + this.value; - } - - if (run_exception && options.exception($(this).parents('form'), act, data)) - { - return true; - } - phpbb.loading_alert(); - $.post(path, data, return_handler); - } - else - { - if (run_exception && options.exception($(this).parents('form'))) - { - return true; - } - phpbb.loading_alert(); - $.get(this.href, return_handler); - } - - return false; - }); - return this; -} - -phpbb.ajax_callbacks = {}; -phpbb.add_ajax_callback = function(id, callback) -{ - if (typeof callback === 'function') - { - phpbb.ajax_callbacks[id] = callback; - } - return this; -} - - -phpbb.add_ajax_callback('post_delete', function(el) { - if ($(this).data('refresh') === undefined) - { - var pid = el.href.split('&p=')[1]; - $(el).parents('div #p' + pid).fadeOut(function() { - $(this).remove(); - }); - } -}).add_ajax_callback('bookmark', function(el, res) { - var text = (res.MESSAGE_TEXT.indexOf('Removed') === -1); - text = (text) ? 'Remove from bookmarks' : 'Bookmark topic'; - $(el).text(el.title = text); -}).add_ajax_callback('topic_subscribe', function(el) { - $(el).text(el.title = 'Unsubscribe topic'); -}).add_ajax_callback('topic_unsubscribe', function(el) { - $(el).text(el.title = 'Subscribe forum'); -}).add_ajax_callback('forum_subscribe', function(el) { - $(el).text(el.title = 'Unsubscribe topic'); -}).add_ajax_callback('forum_unsubscribe', function(el) { - $(el).text(el.title = 'Subscribe forum'); -}).add_ajax_callback('post_approve', function(el, res, act) { - $(el).parents((act === 'approve') ? '.rules' : '.post').fadeOut(function() { - $(this).remove(); - }); -}).add_ajax_callback('qr-submit', function(el) { - $(el).parents('form').fadeOut(function() { - $(this).remove(); - }); -}).add_ajax_callback('forum_down', function(el) { - var tr = $(el).parents('tr'); - if (tr.is(':first-child')) - { - $(el).parents('span').siblings('.up').html('<a href="' + tr.data('up') + '"><img src="./images/icon_up.gif" alt="Move up" title="Move up" /></a>'); - tr.next().find('.up').html('<img src="./images/icon_up_disabled.gif" alt="Move up" title="Move up" />'); - phpbb.ajaxify({selector: $(el).parents('span').siblings('.up').children('a')}, false, 'forum_up'); - } - tr.insertAfter(tr.next()); - if (tr.is(':last-child')) - { - $(el).html('<img src="./images/icon_down_disabled.gif" alt="Move down" title="Move down" />'); - tr.prev().find('.down').html('<a href="' + tr.data('down') + '"><img src="./images/icon_down.gif" alt="Move down" title="Move down" /></a>'); - phpbb.ajaxify({selector: tr.prev().find('.down').children('a')}, false, 'forum_down'); - } -}).add_ajax_callback('forum_up', function(el) { - var tr = $(el).parents('tr'); - if (tr.is(':last-child')) - { - $(el).parents('span').siblings('.down').html('<a href="' + tr.data('down') + '"><img src="./images/icon_down.gif" alt="Move down" title="Move down" /></a>'); - tr.prev().find('.down').html('<img src="./images/icon_down_disabled.gif" alt="Move down" title="Move down" />'); - phpbb.ajaxify({selector: $(el).parents('span').siblings('.down').children('a')}, false, 'forum_down'); - } - tr.insertBefore(tr.prev()); - if (tr.is(':first-child')) - { - $(el).html('<img src="./images/icon_up_disabled.gif" alt="Move up" title="Move up" />'); - tr.next().find('.up').html('<a href="' + tr.data('up') + '"><img src="./images/icon_up.gif" alt="Move up" title="Move up" /></a>'); - phpbb.ajaxify({selector: tr.next().find('.up').children('a')}, false, 'forum_up'); - } -}).add_ajax_callback('act_deact', function(el, res) { - $(el).text(res.text); - var new_href = $(el).attr('href'); - if (new_href.indexOf('deactivate') !== -1) - { - new_href = new_href.replace('deactivate', 'activate') - } - else - { - new_href = new_href.replace('activate', 'deactivate') - } - $(el).attr('href', new_href); -}).add_ajax_callback('row_delete', function(el) { - var tr = $(el).parents('tr'); - tr.remove(); -}).add_ajax_callback('zebra', function(el, res) { - if (res.success) { - $('.zebra').html(res.MESSAGE_TEXT); - $($('.zebra').get(1)).remove(); - } -});; - - - -$('[data-ajax]').each(function() { - var fn = ($(this).data('ajax') !== 'true') ? $(this).data('ajax') : null; - phpbb.ajaxify({selector: this}, $(this).data('refresh') !== undefined, fn); -}); - - - -phpbb.ajaxify({ - selector: '#quickmodform', - exception: function(el, act, data) { - var d = phpbb.parse_querystring(data).action; - if (d == 'make_normal') - { - return !(el.find('select option[value="make_global"]').length); - } - return !(d == 'lock' || d == 'unlock' || d == 'delete_topic' || d.slice(0, 5) == 'make_'); - } -}, true); - - -})(jQuery); // Avoid conflicts with other libraries |
