mirror of
https://github.com/phpbb/phpbb.git
synced 2025-01-17 22:28:46 +01:00
Merge pull request #3658 from callumacrae/js-refactoring-again
JS Refactoring
This commit is contained in:
commit
d6cd90d325
@ -1,3 +1,5 @@
|
||||
/* global bbfontstyle */
|
||||
|
||||
var phpbb = {};
|
||||
phpbb.alertTime = 100;
|
||||
|
||||
@ -21,7 +23,7 @@ phpbb.isTouch = (window && typeof window.ontouchstart !== 'undefined');
|
||||
/**
|
||||
* Display a loading screen
|
||||
*
|
||||
* @returns object Returns loadingIndicator.
|
||||
* @returns {object} Returns loadingIndicator.
|
||||
*/
|
||||
phpbb.loadingIndicator = function() {
|
||||
if (!$loadingIndicator.is(':visible')) {
|
||||
@ -54,7 +56,7 @@ phpbb.clearLoadingTimeout = function() {
|
||||
/**
|
||||
* Close popup alert after a specified delay
|
||||
*
|
||||
* @param int Delay in ms until darkenwrapper's click event is triggered
|
||||
* @param {int} delay Delay in ms until darkenwrapper's click event is triggered
|
||||
*/
|
||||
phpbb.closeDarkenWrapper = function(delay) {
|
||||
phpbbAlertTimer = setTimeout(function() {
|
||||
@ -67,14 +69,12 @@ phpbb.closeDarkenWrapper = function(delay) {
|
||||
*
|
||||
* You can only call one alert or confirm box at any one time.
|
||||
*
|
||||
* @param string title Title of the message, eg "Information" (HTML).
|
||||
* @param string msg Message to display (HTML).
|
||||
* @param bool fadedark Remove the dark background when done? Defaults
|
||||
* to yes.
|
||||
* @param {string} title Title of the message, eg "Information" (HTML).
|
||||
* @param {string} msg Message to display (HTML).
|
||||
*
|
||||
* @returns object Returns the div created.
|
||||
* @returns {object} Returns the div created.
|
||||
*/
|
||||
phpbb.alert = function(title, msg, fadedark) {
|
||||
phpbb.alert = function(title, msg) {
|
||||
var $alert = $('#phpbb_alert');
|
||||
$alert.find('.alert_title').html(title);
|
||||
$alert.find('.alert_text').html(msg);
|
||||
@ -94,7 +94,7 @@ phpbb.alert = function(title, msg, fadedark) {
|
||||
/**
|
||||
* Handler for opening an alert box.
|
||||
*
|
||||
* @param jQuery $alert jQuery object.
|
||||
* @param {jQuery} $alert jQuery object.
|
||||
*/
|
||||
phpbb.alert.open = function($alert) {
|
||||
if (!$dark.is(':visible')) {
|
||||
@ -134,8 +134,8 @@ phpbb.alert.open = function($alert) {
|
||||
/**
|
||||
* Handler for closing an alert box.
|
||||
*
|
||||
* @param jQuery $alert jQuery object.
|
||||
* @param bool fadedark Whether to remove dark background.
|
||||
* @param {jQuery} $alert jQuery object.
|
||||
* @param {bool} fadedark Whether to remove dark background.
|
||||
*/
|
||||
phpbb.alert.close = function($alert, fadedark) {
|
||||
var $fade = (fadedark) ? $dark : $alert;
|
||||
@ -153,13 +153,13 @@ phpbb.alert.close = function($alert, fadedark) {
|
||||
*
|
||||
* You can only call one alert or confirm box at any one time.
|
||||
*
|
||||
* @param string msg Message to display (HTML).
|
||||
* @param function callback Callback. Bool param, whether the user pressed
|
||||
* @param {string} msg Message to display (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
|
||||
* @param {bool} fadedark Remove the dark background when done? Defaults
|
||||
* to yes.
|
||||
*
|
||||
* @returns object Returns the div created.
|
||||
* @returns {object} Returns the div created.
|
||||
*/
|
||||
phpbb.confirm = function(msg, callback, fadedark) {
|
||||
var $confirmDiv = $('#phpbb_confirm');
|
||||
@ -197,8 +197,8 @@ phpbb.confirm = function(msg, callback, fadedark) {
|
||||
/**
|
||||
* Turn a querystring into an array.
|
||||
*
|
||||
* @argument string string The querystring to parse.
|
||||
* @returns object The object created.
|
||||
* @argument {string} string The querystring to parse.
|
||||
* @returns {object} The object created.
|
||||
*/
|
||||
phpbb.parseQuerystring = function(string) {
|
||||
var params = {}, i, split;
|
||||
@ -223,12 +223,7 @@ phpbb.parseQuerystring = function(string) {
|
||||
* For more info, view the following page on the phpBB wiki:
|
||||
* http://wiki.phpbb.com/JavaScript_Function.phpbb.ajaxify
|
||||
*
|
||||
* @param object options Options.
|
||||
* @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 to call on completion of event. Has
|
||||
* three parameters: the element that the event was evoked from, the JSON
|
||||
* that was returned and (if it is a form) the form action.
|
||||
* @param {object} options Options.
|
||||
*/
|
||||
phpbb.ajaxify = function(options) {
|
||||
var $elements = $(options.selector),
|
||||
@ -290,7 +285,7 @@ phpbb.ajaxify = function(options) {
|
||||
* It cannot be called from outside this function, and is purely here to
|
||||
* avoid repetition of code.
|
||||
*
|
||||
* @param object res The object sent back by the server.
|
||||
* @param {object} res The object sent back by the server.
|
||||
*/
|
||||
function returnHandler(res) {
|
||||
var alert;
|
||||
@ -436,8 +431,8 @@ phpbb.search = {
|
||||
/**
|
||||
* Get cached search data.
|
||||
*
|
||||
* @param string id Search ID.
|
||||
* @return bool|object. Cached data object. Returns false if no data exists.
|
||||
* @param {string} id Search ID.
|
||||
* @returns {bool|object} Cached data object. Returns false if no data exists.
|
||||
*/
|
||||
phpbb.search.cache.get = function(id) {
|
||||
if (this.data[id]) {
|
||||
@ -449,11 +444,9 @@ phpbb.search.cache.get = function(id) {
|
||||
/**
|
||||
* Set search cache data value.
|
||||
*
|
||||
* @param string id Search ID.
|
||||
* @param string key Data key.
|
||||
* @param string value Data value.
|
||||
*
|
||||
* @return undefined
|
||||
* @param {string} id Search ID.
|
||||
* @param {string} key Data key.
|
||||
* @param {string} value Data value.
|
||||
*/
|
||||
phpbb.search.cache.set = function(id, key, value) {
|
||||
if (!this.data[id]) {
|
||||
@ -465,21 +458,19 @@ phpbb.search.cache.set = function(id, key, value) {
|
||||
/**
|
||||
* Cache search result.
|
||||
*
|
||||
* @param string id Search ID.
|
||||
* @param string keyword Keyword.
|
||||
* @param array results Search results.
|
||||
*
|
||||
* @return undefined
|
||||
* @param {string} id Search ID.
|
||||
* @param {string} keyword Keyword.
|
||||
* @param {Array} results Search results.
|
||||
*/
|
||||
phpbb.search.cache.setResults = function(id, keyword, value) {
|
||||
this.data[id].results[keyword] = value;
|
||||
phpbb.search.cache.setResults = function(id, keyword, results) {
|
||||
this.data[id].results[keyword] = results;
|
||||
};
|
||||
|
||||
/**
|
||||
* Trim spaces from keyword and lower its case.
|
||||
*
|
||||
* @param string keyword Search keyword to clean.
|
||||
* @return string Cleaned string.
|
||||
* @param {string} keyword Search keyword to clean.
|
||||
* @returns {string} Cleaned string.
|
||||
*/
|
||||
phpbb.search.cleanKeyword = function(keyword) {
|
||||
return $.trim(keyword).toLowerCase();
|
||||
@ -489,11 +480,11 @@ phpbb.search.cleanKeyword = function(keyword) {
|
||||
* Get clean version of search keyword. If textarea supports several keywords
|
||||
* (one per line), it fetches the current keyword based on the caret position.
|
||||
*
|
||||
* @param jQuery $input Search input|textarea.
|
||||
* @param string keyword Input|textarea value.
|
||||
* @param bool multiline Whether textarea supports multiple search keywords.
|
||||
* @param {jQuery} $input Search input|textarea.
|
||||
* @param {string} keyword Input|textarea value.
|
||||
* @param {bool} multiline Whether textarea supports multiple search keywords.
|
||||
*
|
||||
* @return string Clean string.
|
||||
* @returns string Clean string.
|
||||
*/
|
||||
phpbb.search.getKeyword = function($input, keyword, multiline) {
|
||||
if (multiline) {
|
||||
@ -507,8 +498,8 @@ phpbb.search.getKeyword = function($input, keyword, multiline) {
|
||||
* Get the textarea line number on which the keyword resides - for textareas
|
||||
* that support multiple keywords (one per line).
|
||||
*
|
||||
* @param jQuery $textarea Search textarea.
|
||||
* @return int
|
||||
* @param {jQuery} $textarea Search textarea.
|
||||
* @returns {int} The line number.
|
||||
*/
|
||||
phpbb.search.getKeywordLine = function ($textarea) {
|
||||
var selectionStart = $textarea.get(0).selectionStart;
|
||||
@ -519,11 +510,9 @@ phpbb.search.getKeywordLine = function ($textarea) {
|
||||
* Set the value on the input|textarea. If textarea supports multiple
|
||||
* keywords, only the active keyword is replaced.
|
||||
*
|
||||
* @param jQuery $input Search input|textarea.
|
||||
* @param string value Value to set.
|
||||
* @param bool multiline Whether textarea supports multiple search keywords.
|
||||
*
|
||||
* @return undefined
|
||||
* @param {jQuery} $input Search input|textarea.
|
||||
* @param {string} value Value to set.
|
||||
* @param {bool} multiline Whether textarea supports multiple search keywords.
|
||||
*/
|
||||
phpbb.search.setValue = function($input, value, multiline) {
|
||||
if (multiline) {
|
||||
@ -538,12 +527,10 @@ phpbb.search.setValue = function($input, value, multiline) {
|
||||
/**
|
||||
* Sets the onclick event to set the value on the input|textarea to the selected search result.
|
||||
*
|
||||
* @param jQuery $input Search input|textarea.
|
||||
* @param object value Result object.
|
||||
* @param jQuery $row Result element.
|
||||
* @param jQuery $container jQuery object for the search container.
|
||||
*
|
||||
* @return undefined
|
||||
* @param {jQuery} $input Search input|textarea.
|
||||
* @param {object} value Result object.
|
||||
* @param {jQuery} $row Result element.
|
||||
* @param {jQuery} $container jQuery object for the search container.
|
||||
*/
|
||||
phpbb.search.setValueOnClick = function($input, value, $row, $container) {
|
||||
$row.click(function() {
|
||||
@ -558,11 +545,11 @@ phpbb.search.setValueOnClick = function($input, value, $row, $container) {
|
||||
* already, those are displayed instead. Executes the AJAX request function
|
||||
* itself due to the need to use a timeout to limit the number of requests.
|
||||
*
|
||||
* @param array data Data to be sent to the server.
|
||||
* @param object event Onkeyup event object.
|
||||
* @param function sendRequest Function to execute AJAX request.
|
||||
* @param {Array} data Data to be sent to the server.
|
||||
* @param {object} event Onkeyup event object.
|
||||
* @param {function} sendRequest Function to execute AJAX request.
|
||||
*
|
||||
* @return bool Returns false.
|
||||
* @returns {bool} Returns false.
|
||||
*/
|
||||
phpbb.search.filter = function(data, event, sendRequest) {
|
||||
var $this = $(this),
|
||||
@ -616,12 +603,10 @@ phpbb.search.filter = function(data, event, sendRequest) {
|
||||
/**
|
||||
* Handle search result response.
|
||||
*
|
||||
* @param object res Data received from server.
|
||||
* @param jQuery $input Search input|textarea.
|
||||
* @param bool fromCache Whether the results are from the cache.
|
||||
* @param function callback Optional callback to run when assigning each search result.
|
||||
*
|
||||
* @return undefined
|
||||
* @param {object} res Data received from server.
|
||||
* @param {jQuery} $input Search input|textarea.
|
||||
* @param {bool} fromCache Whether the results are from the cache.
|
||||
* @param {function} callback Optional callback to run when assigning each search result.
|
||||
*/
|
||||
phpbb.search.handleResponse = function(res, $input, fromCache, callback) {
|
||||
if (typeof res !== 'object') {
|
||||
@ -648,12 +633,10 @@ phpbb.search.handleResponse = function(res, $input, fromCache, callback) {
|
||||
/**
|
||||
* Show search results.
|
||||
*
|
||||
* @param array results Search results.
|
||||
* @param jQuery $input Search input|textarea.
|
||||
* @param jQuery $container Search results container element.
|
||||
* @param function callback Optional callback to run when assigning each search result.
|
||||
*
|
||||
* @return undefined
|
||||
* @param {Array} results Search results.
|
||||
* @param {jQuery} $input Search input|textarea.
|
||||
* @param {jQuery} $container Search results container element.
|
||||
* @param {function} callback Optional callback to run when assigning each search result.
|
||||
*/
|
||||
phpbb.search.showResults = function(results, $input, $container, callback) {
|
||||
var $resultContainer = $('.search-results', $container);
|
||||
@ -690,8 +673,7 @@ phpbb.search.showResults = function(results, $input, $container, callback) {
|
||||
/**
|
||||
* Clear search results.
|
||||
*
|
||||
* @param jQuery $container Search results container.
|
||||
* @return undefined
|
||||
* @param {jQuery} $container Search results container.
|
||||
*/
|
||||
phpbb.search.clearResults = function($container) {
|
||||
$container.children(':not(.search-result-tpl)').remove();
|
||||
@ -710,8 +692,8 @@ phpbb.history = {};
|
||||
/**
|
||||
* Check whether a method in the native history object is supported.
|
||||
*
|
||||
* @param string fn Method name.
|
||||
* @return bool Returns true if the method is supported.
|
||||
* @param {string} fn Method name.
|
||||
* @returns {bool} Returns true if the method is supported.
|
||||
*/
|
||||
phpbb.history.isSupported = function(fn) {
|
||||
return !(typeof history === 'undefined' || typeof history[fn] === 'undefined');
|
||||
@ -721,12 +703,10 @@ phpbb.history.isSupported = function(fn) {
|
||||
* Wrapper for the pushState and replaceState methods of the
|
||||
* native history object.
|
||||
*
|
||||
* @param string mode Mode. Either push or replace.
|
||||
* @param string url New URL.
|
||||
* @param string title Optional page title.
|
||||
* @patam object obj Optional state object.
|
||||
*
|
||||
* @return undefined
|
||||
* @param {string} mode Mode. Either push or replace.
|
||||
* @param {string} url New URL.
|
||||
* @param {string} [title] Optional page title.
|
||||
* @param {object} [obj] Optional state object.
|
||||
*/
|
||||
phpbb.history.alterUrl = function(mode, url, title, obj) {
|
||||
var fn = mode + 'State';
|
||||
@ -747,11 +727,9 @@ phpbb.history.alterUrl = function(mode, url, title, obj) {
|
||||
/**
|
||||
* Wrapper for the native history.replaceState method.
|
||||
*
|
||||
* @param string url New URL.
|
||||
* @param string title Optional page title.
|
||||
* @patam object obj Optional state object.
|
||||
*
|
||||
* @return undefined
|
||||
* @param {string} url New URL.
|
||||
* @param {string} [title] Optional page title.
|
||||
* @param {object} [obj] Optional state object.
|
||||
*/
|
||||
phpbb.history.replaceUrl = function(url, title, obj) {
|
||||
phpbb.history.alterUrl('replace', url, title, obj);
|
||||
@ -760,11 +738,9 @@ phpbb.history.replaceUrl = function(url, title, obj) {
|
||||
/**
|
||||
* Wrapper for the native history.pushState method.
|
||||
*
|
||||
* @param string url New URL.
|
||||
* @param string title Optional page title.
|
||||
* @patam object obj Optional state object.
|
||||
*
|
||||
* @return undefined
|
||||
* @param {string} url New URL.
|
||||
* @param {string} [title] Optional page title.
|
||||
* @param {object} [obj] Optional state object.
|
||||
*/
|
||||
phpbb.history.pushUrl = function(url, title, obj) {
|
||||
phpbb.history.alterUrl('push', url, title, obj);
|
||||
@ -773,7 +749,8 @@ phpbb.history.pushUrl = function(url, title, obj) {
|
||||
/**
|
||||
* Hide the optgroups that are not the selected timezone
|
||||
*
|
||||
* @param bool keepSelection Shall we keep the value selected, or shall the user be forced to repick one.
|
||||
* @param {bool} keepSelection Shall we keep the value selected, or shall the
|
||||
* user be forced to repick one.
|
||||
*/
|
||||
phpbb.timezoneSwitchDate = function(keepSelection) {
|
||||
var $timezoneCopy = $('#timezone_copy');
|
||||
@ -796,7 +773,7 @@ phpbb.timezoneSwitchDate = function(keepSelection) {
|
||||
}
|
||||
|
||||
if ($tzDate.val() !== '') {
|
||||
$timezone.children('optgroup').remove(':not([data-tz-value="' + $('#tz_date').val() + '"])');
|
||||
$timezone.children('optgroup').remove(':not([data-tz-value="' + $tzDate.val() + '"])');
|
||||
}
|
||||
|
||||
if ($tzDate.val() === $tzSelectDateSuggest.attr('data-suggested-tz')) {
|
||||
@ -831,7 +808,7 @@ phpbb.timezoneEnableDateSelection = function() {
|
||||
/**
|
||||
* Preselect a date/time or suggest one, if it is not picked.
|
||||
*
|
||||
* @param bool forceSelector Shall we select the suggestion?
|
||||
* @param {bool} forceSelector Shall we select the suggestion?
|
||||
*/
|
||||
phpbb.timezonePreselectSelect = function(forceSelector) {
|
||||
|
||||
@ -900,8 +877,8 @@ phpbb.ajaxCallbacks = {};
|
||||
*
|
||||
* See the phpbb.ajaxify comments for information on stuff like parameters.
|
||||
*
|
||||
* @param string id The name of the callback.
|
||||
* @param function callback The callback to be called.
|
||||
* @param {string} id The name of the callback.
|
||||
* @param {function} callback The callback to be called.
|
||||
*/
|
||||
phpbb.addAjaxCallback = function(id, callback) {
|
||||
if (typeof callback === 'function') {
|
||||
@ -992,7 +969,7 @@ phpbb.addAjaxCallback('toggle_link', function() {
|
||||
* types text.
|
||||
*
|
||||
* @param {jQuery} $items jQuery object(s) to resize
|
||||
* @param {object} options Optional parameter that adjusts default
|
||||
* @param {object} [options] Optional parameter that adjusts default
|
||||
* configuration. See configuration variable
|
||||
*
|
||||
* Optional parameters:
|
||||
@ -1036,7 +1013,7 @@ phpbb.resizeTextArea = function($items, options) {
|
||||
|
||||
function autoResize(item) {
|
||||
function setHeight(height) {
|
||||
height += parseInt($item.css('height')) - $item.height();
|
||||
height += parseInt($item.css('height'), 10) - $item.height();
|
||||
$item.css({height: height + 'px', resize: 'none'}).addClass('auto-resized');
|
||||
configuration.resizeCallback.call(item, $item);
|
||||
}
|
||||
@ -1053,7 +1030,7 @@ phpbb.resizeTextArea = function($items, options) {
|
||||
configuration.maxHeight
|
||||
),
|
||||
$item = $(item),
|
||||
height = parseInt($item.height()),
|
||||
height = parseInt($item.height(), 10),
|
||||
scrollHeight = (item.scrollHeight) ? item.scrollHeight : 0;
|
||||
|
||||
if (height < 0) {
|
||||
@ -1092,7 +1069,7 @@ phpbb.resizeTextArea = function($items, options) {
|
||||
* @param {Array} endTags List of end tags to look for
|
||||
* For example, Array('[/code]')
|
||||
*
|
||||
* @return {boolean} True if cursor is in bbcode tag
|
||||
* @returns {boolean} True if cursor is in bbcode tag
|
||||
*/
|
||||
phpbb.inBBCodeTag = function(textarea, startTags, endTags) {
|
||||
var start = textarea.selectionStart,
|
||||
@ -1164,7 +1141,7 @@ phpbb.applyCodeEditor = function(textarea) {
|
||||
* @param {boolean} stripCodeStart If true, only part of line
|
||||
* after [code] tag will be returned.
|
||||
*
|
||||
* @return {string} Line of text
|
||||
* @returns {string} Line of text
|
||||
*/
|
||||
function getLastLine(stripCodeStart) {
|
||||
var start = textarea.selectionStart,
|
||||
@ -1197,7 +1174,7 @@ phpbb.applyCodeEditor = function(textarea) {
|
||||
/**
|
||||
* Append text at cursor position
|
||||
*
|
||||
* @param {string} Text Text to append
|
||||
* @param {string} text Text to append
|
||||
*/
|
||||
function appendText(text) {
|
||||
var start = textarea.selectionStart,
|
||||
@ -1245,10 +1222,10 @@ phpbb.applyCodeEditor = function(textarea) {
|
||||
* This function will enable the drag and drop animation for a specified
|
||||
* textarea.
|
||||
*
|
||||
* @param {object} textarea Textarea DOM object to apply editor to
|
||||
* @param {HTMLElement} textarea Textarea DOM object to apply editor to
|
||||
*/
|
||||
phpbb.showDragNDrop = function(textarea) {
|
||||
if (textarea == null) {
|
||||
if (!textarea) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1423,9 +1400,9 @@ phpbb.registerDropdown = function(toggle, dropdown, options) {
|
||||
/**
|
||||
* Get the HTML for a color palette table.
|
||||
*
|
||||
* @param string dir Palette direction - either v or h
|
||||
* @param int width Palette cell width.
|
||||
* @param int height Palette cell height.
|
||||
* @param {string} dir Palette direction - either v or h
|
||||
* @param {int} width Palette cell width.
|
||||
* @param {int} height Palette cell height.
|
||||
*/
|
||||
phpbb.colorPalette = function(dir, width, height) {
|
||||
var r = 0,
|
||||
@ -1477,7 +1454,7 @@ phpbb.colorPalette = function(dir, width, height) {
|
||||
/**
|
||||
* Register a color palette.
|
||||
*
|
||||
* @param object el jQuery object for the palette container.
|
||||
* @param {jQuery} el jQuery object for the palette container.
|
||||
*/
|
||||
phpbb.registerPalette = function(el) {
|
||||
var orientation = el.attr('data-orientation'),
|
||||
@ -1506,15 +1483,15 @@ phpbb.registerPalette = function(el) {
|
||||
}
|
||||
e.preventDefault();
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Set display of page element
|
||||
*
|
||||
* @param string id The ID of the element to change
|
||||
* @param int action Set to 0 if element display should be toggled, -1 for
|
||||
* @param {string} id The ID of the element to change
|
||||
* @param {int} action Set to 0 if element display should be toggled, -1 for
|
||||
* hiding the element, and 1 for showing it.
|
||||
* @param string type Display type that should be used, e.g. inline, block or
|
||||
* @param {string} type Display type that should be used, e.g. inline, block or
|
||||
* other CSS "display" types
|
||||
*/
|
||||
phpbb.toggleDisplay = function(id, action, type) {
|
||||
@ -1535,8 +1512,7 @@ phpbb.toggleDisplay = function(id, action, type) {
|
||||
* Toggle additional settings based on the selected
|
||||
* option of select element.
|
||||
*
|
||||
* @param jQuery el jQuery select element object.
|
||||
* @return undefined
|
||||
* @param {jQuery} el jQuery select element object.
|
||||
*/
|
||||
phpbb.toggleSelectSettings = function(el) {
|
||||
el.children().each(function() {
|
||||
@ -1550,8 +1526,8 @@ phpbb.toggleSelectSettings = function(el) {
|
||||
* Get function from name.
|
||||
* Based on http://stackoverflow.com/a/359910
|
||||
*
|
||||
* @param string functionName Function to get.
|
||||
* @return function
|
||||
* @param {string} functionName Function to get.
|
||||
* @returns function
|
||||
*/
|
||||
phpbb.getFunctionByName = function (functionName) {
|
||||
var namespaces = functionName.split('.'),
|
||||
|
@ -159,7 +159,7 @@ function insert_text(text, spaces, popup) {
|
||||
/**
|
||||
* Add inline attachment at position
|
||||
*/
|
||||
function attach_inline(index, filename) {
|
||||
function attachInline(index, filename) {
|
||||
insert_text('[attachment=' + index + ']' + filename + '[/attachment]');
|
||||
document.forms[form_name].elements[text_name].focus();
|
||||
}
|
||||
|
@ -1,14 +1,14 @@
|
||||
/* global phpbb, plupload, attachInline */
|
||||
|
||||
plupload.addI18n(phpbb.plupload.i18n);
|
||||
phpbb.plupload.ids = [];
|
||||
|
||||
(function($) { // Avoid conflicts with other libraries
|
||||
|
||||
"use strict";
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Set up the uploader.
|
||||
*
|
||||
* @return undefined
|
||||
*/
|
||||
phpbb.plupload.initialize = function() {
|
||||
// Initialize the Plupload uploader.
|
||||
@ -20,7 +20,7 @@ phpbb.plupload.initialize = function() {
|
||||
|
||||
// Only execute if Plupload initialized successfully.
|
||||
phpbb.plupload.uploader.bind('Init', function() {
|
||||
phpbb.plupload.form = $(phpbb.plupload.config.form_hook)[0],
|
||||
phpbb.plupload.form = $(phpbb.plupload.config.form_hook)[0];
|
||||
phpbb.plupload.rowTpl = $('#attach-row-tpl')[0].outerHTML;
|
||||
|
||||
// Hide the basic upload panel and remove the attach row template.
|
||||
@ -48,8 +48,6 @@ phpbb.plupload.initialize = function() {
|
||||
/**
|
||||
* Unsets all elements in the object uploader.settings.multipart_params whose keys
|
||||
* begin with 'attachment_data['
|
||||
*
|
||||
* @return undefined
|
||||
*/
|
||||
phpbb.plupload.clearParams = function() {
|
||||
var obj = phpbb.plupload.uploader.settings.multipart_params;
|
||||
@ -65,20 +63,17 @@ phpbb.plupload.clearParams = function() {
|
||||
/**
|
||||
* Update uploader.settings.multipart_params object with new data.
|
||||
*
|
||||
* @param object obj
|
||||
* @return undefined
|
||||
* @param {object} obj
|
||||
*/
|
||||
phpbb.plupload.updateMultipartParams = function(obj) {
|
||||
phpbb.plupload.uploader.settings.multipart_params = $.extend(
|
||||
phpbb.plupload.uploader.settings.multipart_params,
|
||||
obj
|
||||
);
|
||||
var settings = phpbb.plupload.uploader.settings;
|
||||
settings.multipart_params = $.extend(settings.multipart_params, obj);
|
||||
};
|
||||
|
||||
/**
|
||||
* Convert the array of attachment objects into an object that PHP would expect as POST data.
|
||||
*
|
||||
* @return object An object in the form 'attachment_data[i][key]': value as
|
||||
* @returns {object} An object in the form 'attachment_data[i][key]': value as
|
||||
* expected by the server
|
||||
*/
|
||||
phpbb.plupload.getSerializedData = function() {
|
||||
@ -100,22 +95,19 @@ phpbb.plupload.getSerializedData = function() {
|
||||
* Get the index from the phpbb.plupload.data array where the given
|
||||
* attachment id appears.
|
||||
*
|
||||
* @param int attach_id The attachment id of the file.
|
||||
* @return bool Returns false if the id cannot be found.
|
||||
* @return int Returns the index of the file if it exists.
|
||||
* @param {int} attachId The attachment id of the file.
|
||||
* @returns {bool|int} Index of the file if exists, otherwise false.
|
||||
*/
|
||||
phpbb.plupload.getIndex = function(attach_id) {
|
||||
var index = $.inArray(Number(attach_id), phpbb.plupload.ids);
|
||||
phpbb.plupload.getIndex = function(attachId) {
|
||||
var index = $.inArray(Number(attachId), phpbb.plupload.ids);
|
||||
return (index !== -1) ? index : false;
|
||||
};
|
||||
|
||||
/**
|
||||
* Set the data in phpbb.plupload.data and phpbb.plupload.ids arrays.
|
||||
*
|
||||
* @param array data Array containing the new data to use. In the form of
|
||||
* @param {Array} data Array containing the new data to use. In the form of
|
||||
* array(index => object(property: value). Requires attach_id to be one of the object properties.
|
||||
*
|
||||
* @return undefined
|
||||
*/
|
||||
phpbb.plupload.setData = function(data) {
|
||||
// Make sure that the array keys are reset.
|
||||
@ -130,11 +122,10 @@ phpbb.plupload.setData = function(data) {
|
||||
/**
|
||||
* Update the attachment data in the HTML and the phpbb & phpbb.plupload objects.
|
||||
*
|
||||
* @param array data Array containing the new data to use.
|
||||
* @param string action The action that required the update. Used to update the inline attachment bbcodes.
|
||||
* @param int index The index from phpbb.plupload_ids that was affected by the action.
|
||||
* @param array downloadUrl Optional array of download urls to update.
|
||||
* @return undefined
|
||||
* @param {Array} data Array containing the new data to use.
|
||||
* @param {string} action The action that required the update. Used to update the inline attachment bbcodes.
|
||||
* @param {int} index The index from phpbb.plupload_ids that was affected by the action.
|
||||
* @param {Array} downloadUrl Optional array of download urls to update.
|
||||
*/
|
||||
phpbb.plupload.update = function(data, action, index, downloadUrl) {
|
||||
|
||||
@ -148,8 +139,7 @@ phpbb.plupload.update = function(data, action, index, downloadUrl) {
|
||||
/**
|
||||
* Update the relevant elements and hidden data for all attachments.
|
||||
*
|
||||
* @param array downloadUrl Optional array of download urls to update.
|
||||
* @return undefined
|
||||
* @param {Array} downloadUrl Optional array of download urls to update.
|
||||
*/
|
||||
phpbb.plupload.updateRows = function(downloadUrl) {
|
||||
for (var i = 0; i < phpbb.plupload.ids.length; i++) {
|
||||
@ -163,8 +153,7 @@ phpbb.plupload.updateRows = function(downloadUrl) {
|
||||
* data for the file inserted into it. The row is then appended or prepended to
|
||||
* #file-list based on the attach_order setting.
|
||||
*
|
||||
* @param object file Plupload file object for the new attachment.
|
||||
* @return undefined
|
||||
* @param {object} file Plupload file object for the new attachment.
|
||||
*/
|
||||
phpbb.plupload.insertRow = function(file) {
|
||||
var row = $(phpbb.plupload.rowTpl);
|
||||
@ -183,9 +172,8 @@ phpbb.plupload.insertRow = function(file) {
|
||||
/**
|
||||
* Update the relevant elements and hidden data for an attachment.
|
||||
*
|
||||
* @param int index The index from phpbb.plupload.ids of the attachment to edit.
|
||||
* @param array downloadUrl Optional array of download urls to update.
|
||||
* @return undefined
|
||||
* @param {int} index The index from phpbb.plupload.ids of the attachment to edit.
|
||||
* @param {Array} downloadUrl Optional array of download urls to update.
|
||||
*/
|
||||
phpbb.plupload.updateRow = function(index, downloadUrl) {
|
||||
var attach = phpbb.plupload.data[index],
|
||||
@ -197,7 +185,7 @@ phpbb.plupload.updateRow = function(index, downloadUrl) {
|
||||
link = $('<a></a>');
|
||||
|
||||
link.attr('href', url).html(attach.real_filename);
|
||||
row.find('.file-name').html(link)
|
||||
row.find('.file-name').html(link);
|
||||
}
|
||||
|
||||
row.find('textarea').attr('name', 'comment_list[' + index + ']');
|
||||
@ -207,15 +195,18 @@ phpbb.plupload.updateRow = function(index, downloadUrl) {
|
||||
/**
|
||||
* Update hidden input data for an attachment.
|
||||
*
|
||||
* @param object row jQuery object for the attachment row.
|
||||
* @param object attach Attachment data object from phpbb.plupload.data
|
||||
* @param int index Attachment index from phpbb.plupload.ids
|
||||
* @return undefined
|
||||
* @param {object} row jQuery object for the attachment row.
|
||||
* @param {object} attach Attachment data object from phpbb.plupload.data
|
||||
* @param {int} index Attachment index from phpbb.plupload.ids
|
||||
*/
|
||||
phpbb.plupload.updateHiddenData = function(row, attach, index) {
|
||||
row.find('input[type="hidden"]').remove();
|
||||
|
||||
for (var key in attach) {
|
||||
if (!attach.hasOwnProperty(key)) {
|
||||
return;
|
||||
}
|
||||
|
||||
var input = $('<input />')
|
||||
.attr('type', 'hidden')
|
||||
.attr('name', 'attachment_data[' + index + '][' + key +']')
|
||||
@ -230,10 +221,8 @@ phpbb.plupload.updateHiddenData = function(row, attach, index) {
|
||||
* responds with the updated attachment data list so that any future
|
||||
* uploads can maintain state with the server
|
||||
*
|
||||
* @param object row jQuery object for the attachment row.
|
||||
* @param int attachId Attachment id of the file to be removed.
|
||||
*
|
||||
* @return undefined
|
||||
* @param {object} row jQuery object for the attachment row.
|
||||
* @param {int} attachId Attachment id of the file to be removed.
|
||||
*/
|
||||
phpbb.plupload.deleteFile = function(row, attachId) {
|
||||
// If there's no attach id, then the file hasn't been uploaded. Simply delete the row.
|
||||
@ -300,14 +289,12 @@ phpbb.plupload.deleteFile = function(row, attachId) {
|
||||
|
||||
/**
|
||||
* Check the attachment list and hide its container if it's empty.
|
||||
*
|
||||
* @return undefined
|
||||
*/
|
||||
phpbb.plupload.hideEmptyList = function() {
|
||||
if (!$('#file-list').children().length) {
|
||||
$('#file-list-container').slideUp(100);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Update the indices used in inline attachment bbcodes. This ensures that the bbcodes
|
||||
@ -315,10 +302,8 @@ phpbb.plupload.hideEmptyList = function() {
|
||||
* before the phpbb.plupload,data and phpbb.plupload.ids arrays are updated, otherwise it will
|
||||
* not work correctly.
|
||||
*
|
||||
* @param string action The action that occurred -- either "addition" or "removal"
|
||||
* @param int index The index of the attachment from phpbb.plupload.ids that was affected.
|
||||
*
|
||||
* @return undefined
|
||||
* @param {string} action The action that occurred -- either "addition" or "removal"
|
||||
* @param {int} index The index of the attachment from phpbb.plupload.ids that was affected.
|
||||
*/
|
||||
phpbb.plupload.updateBbcode = function(action, index) {
|
||||
var textarea = $('#message', phpbb.plupload.form),
|
||||
@ -330,46 +315,41 @@ phpbb.plupload.updateBbcode = function(action, index) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Private function used to replace the bbcode.
|
||||
var updateBbcode = function(match, fileName) {
|
||||
// Remove the bbcode if the file was removed.
|
||||
if (removal && index === i) {
|
||||
return '';
|
||||
}
|
||||
var newIndex = i + ((removal) ? -1 : 1);
|
||||
return '[attachment=' + newIndex +']' + fileName + '[/attachment]';
|
||||
};
|
||||
function runUpdate(i) {
|
||||
var regex = new RegExp('\\[attachment=' + i + '\\](.*?)\\[\\/attachment\\]', 'g');
|
||||
text = text.replace(regex, function updateBbcode(_, fileName) {
|
||||
// Remove the bbcode if the file was removed.
|
||||
if (removal && index === i) {
|
||||
return '';
|
||||
}
|
||||
var newIndex = i + ((removal) ? -1 : 1);
|
||||
return '[attachment=' + newIndex +']' + fileName + '[/attachment]';
|
||||
});
|
||||
}
|
||||
|
||||
// Private function used to generate search regexp
|
||||
var searchRegexp = function(index) {
|
||||
return new RegExp('\\[attachment=' + index + '\\](.*?)\\[\\/attachment\\]', 'g');
|
||||
}
|
||||
// The update order of the indices is based on the action taken to ensure that we don't corrupt
|
||||
// the bbcode index by updating it several times as we move through the loop.
|
||||
// Removal loop starts at the removed index and moves to the end of the array.
|
||||
// Addition loop starts at the end of the array and moves to the added index at 0.
|
||||
var searchLoop = function() {
|
||||
if (typeof i === 'undefined') {
|
||||
i = (removal) ? index : phpbb.plupload.ids.length - 1;
|
||||
}
|
||||
return (removal) ? (i < phpbb.plupload.ids.length): (i >= index);
|
||||
}
|
||||
// Loop forwards when removing and backwards when adding ensures we don't
|
||||
// corrupt the bbcode index.
|
||||
var i;
|
||||
|
||||
while (searchLoop()) {
|
||||
text = text.replace(searchRegexp(i), updateBbcode);
|
||||
(removal) ? i++ : i--;
|
||||
if (removal) {
|
||||
for (i = index; i < phpbb.plupload.ids.length; i++) {
|
||||
runUpdate(i);
|
||||
}
|
||||
} else {
|
||||
for (i = phpbb.plupload.ids.length - 1; i >= index; i--) {
|
||||
runUpdate(i);
|
||||
}
|
||||
}
|
||||
|
||||
textarea.val(text);
|
||||
};
|
||||
|
||||
/**
|
||||
* Get Plupload file objects based on their upload status.
|
||||
*
|
||||
* @param int status Plupload status - plupload.DONE, plupload.FAILED, plupload.QUEUED,
|
||||
* plupload.STARTED, plupload.STOPPED
|
||||
* @param {int} status Plupload status - plupload.DONE, plupload.FAILED,
|
||||
* plupload.QUEUED, plupload.STARTED, plupload.STOPPED
|
||||
*
|
||||
* @return Returns an array of the Plupload file objects matching the status.
|
||||
* @returns {Array} The Plupload file objects matching the status.
|
||||
*/
|
||||
phpbb.plupload.getFilesByStatus = function(status) {
|
||||
var files = [];
|
||||
@ -380,14 +360,14 @@ phpbb.plupload.getFilesByStatus = function(status) {
|
||||
}
|
||||
});
|
||||
return files;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Check whether the user has reached the maximun number of files that he's allowed
|
||||
* to upload. If so, disables the uploader and marks the queued files as failed. Otherwise
|
||||
* makes sure that the uploader is enabled.
|
||||
*
|
||||
* @return bool Returns true if the limit has been reached. False if otherwise.
|
||||
* @returns {bool} True if the limit has been reached. False if otherwise.
|
||||
*/
|
||||
phpbb.plupload.handleMaxFilesReached = function() {
|
||||
// If there is no limit, the user is an admin or moderator.
|
||||
@ -408,33 +388,28 @@ phpbb.plupload.handleMaxFilesReached = function() {
|
||||
phpbb.plupload.enableUploader();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Disable the uploader
|
||||
*
|
||||
* @return undefined
|
||||
*/
|
||||
phpbb.plupload.disableUploader = function() {
|
||||
$('#add_files').addClass('disabled');
|
||||
phpbb.plupload.uploader.disableBrowse();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Enable the uploader
|
||||
*
|
||||
* @return undefined
|
||||
*/
|
||||
phpbb.plupload.enableUploader = function() {
|
||||
$('#add_files').removeClass('disabled');
|
||||
phpbb.plupload.uploader.disableBrowse(false);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Mark all queued files as failed.
|
||||
*
|
||||
* @param string error Error message to present to the user.
|
||||
* @return undefined
|
||||
* @param {string} error Error message to present to the user.
|
||||
*/
|
||||
phpbb.plupload.markQueuedFailed = function(error) {
|
||||
var files = phpbb.plupload.getFilesByStatus(plupload.QUEUED);
|
||||
@ -443,22 +418,24 @@ phpbb.plupload.markQueuedFailed = function(error) {
|
||||
$('#' + file.id).find('.file-progress').hide();
|
||||
phpbb.plupload.fileError(file, error);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Marks a file as failed and sets the error message for it.
|
||||
*
|
||||
* @param object file Plupload file object that failed.
|
||||
* @param string error Error message to present to the user.
|
||||
* @return undefined
|
||||
* @param {object} file Plupload file object that failed.
|
||||
* @param {string} error Error message to present to the user.
|
||||
*/
|
||||
phpbb.plupload.fileError = function(file, error) {
|
||||
file.status = plupload.FAILED;
|
||||
file.error = error;
|
||||
$('#' + file.id).find('.file-status').addClass('file-error').attr({'data-error-title': phpbb.plupload.lang.ERROR, 'data-error-message': error});
|
||||
}
|
||||
|
||||
|
||||
$('#' + file.id).find('.file-status')
|
||||
.addClass('file-error')
|
||||
.attr({
|
||||
'data-error-title': phpbb.plupload.lang.ERROR,
|
||||
'data-error-message': error
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
@ -467,24 +444,23 @@ phpbb.plupload.fileError = function(file, error) {
|
||||
phpbb.plupload.uploader = new plupload.Uploader(phpbb.plupload.config);
|
||||
phpbb.plupload.initialize();
|
||||
|
||||
|
||||
|
||||
var $fileList = $('#file-list');
|
||||
|
||||
/**
|
||||
* Insert inline attachment bbcode.
|
||||
*/
|
||||
$('#file-list').on('click', '.file-inline-bbcode', function(e) {
|
||||
$fileList.on('click', '.file-inline-bbcode', function(e) {
|
||||
var attachId = $(this).parents('.attach-row').attr('data-attach-id'),
|
||||
index = phpbb.plupload.getIndex(attachId);
|
||||
|
||||
attach_inline(index, phpbb.plupload.data[index].real_filename);
|
||||
attachInline(index, phpbb.plupload.data[index].real_filename);
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
/**
|
||||
* Delete a file.
|
||||
*/
|
||||
$('#file-list').on('click', '.file-delete', function(e) {
|
||||
$fileList.on('click', '.file-delete', function(e) {
|
||||
var row = $(this).parents('.attach-row'),
|
||||
attachId = row.attr('data-attach-id');
|
||||
|
||||
@ -495,7 +471,7 @@ $('#file-list').on('click', '.file-delete', function(e) {
|
||||
/**
|
||||
* Display the error message for a particular file when the error icon is clicked.
|
||||
*/
|
||||
$('#file-list').on('click', '.file-error', function(e) {
|
||||
$fileList.on('click', '.file-error', function(e) {
|
||||
phpbb.alert($(this).attr('data-error-title'), $(this).attr('data-error-message'));
|
||||
e.preventDefault();
|
||||
});
|
||||
@ -520,11 +496,8 @@ phpbb.plupload.uploader.bind('Error', function(up, error) {
|
||||
* send the real filename along with the chunk. This is necessary because
|
||||
* for some reason the filename is set to 'blob' whenever a file is chunked
|
||||
*
|
||||
* @param object up The plupload.Uploader object
|
||||
* @param object file The plupload.File object that is about to be
|
||||
* uploaded
|
||||
*
|
||||
* @return undefined
|
||||
* @param {object} up The plupload.Uploader object
|
||||
* @param {object} file The plupload.File object that is about to be uploaded
|
||||
*/
|
||||
phpbb.plupload.uploader.bind('BeforeUpload', function(up, file) {
|
||||
if (phpbb.plupload.handleMaxFilesReached()) {
|
||||
@ -539,12 +512,10 @@ phpbb.plupload.uploader.bind('BeforeUpload', function(up, file) {
|
||||
* response from the server and checks for an error. If an error occurs it
|
||||
* is reported to the user and the upload of this particular file is halted
|
||||
*
|
||||
* @param object up The plupload.Uploader object
|
||||
* @param object file The plupload.File object whose chunk has just
|
||||
* @param {object} up The plupload.Uploader object
|
||||
* @param {object} file The plupload.File object whose chunk has just
|
||||
* been uploaded
|
||||
* @param object response The response object from the server
|
||||
*
|
||||
* @return undefined
|
||||
* @param {object} response The response object from the server
|
||||
*/
|
||||
phpbb.plupload.uploader.bind('ChunkUploaded', function(up, file, response) {
|
||||
if (response.chunk >= response.chunks - 1) {
|
||||
@ -584,8 +555,6 @@ phpbb.plupload.uploader.bind('ChunkUploaded', function(up, file, response) {
|
||||
|
||||
/**
|
||||
* Fires when files are added to the queue.
|
||||
*
|
||||
* @return undefined
|
||||
*/
|
||||
phpbb.plupload.uploader.bind('FilesAdded', function(up, files) {
|
||||
// Prevent unnecessary requests to the server if the user already uploaded
|
||||
@ -595,13 +564,14 @@ phpbb.plupload.uploader.bind('FilesAdded', function(up, files) {
|
||||
}
|
||||
|
||||
// Switch the active tab if the style supports it
|
||||
if (typeof activateSubPanel == 'function') {
|
||||
activateSubPanel('attach-panel');
|
||||
if (typeof activateSubPanel === 'function') {
|
||||
activateSubPanel('attach-panel'); // jshint ignore: line
|
||||
}
|
||||
|
||||
// Show the file list if there aren't any files currently.
|
||||
if (!$('#file-list-container').is(':visible')) {
|
||||
$('#file-list-container').show(100);
|
||||
var $fileListContainer = $('#file-list-container');
|
||||
if (!$fileListContainer.is(':visible')) {
|
||||
$fileListContainer.show(100);
|
||||
}
|
||||
|
||||
$.each(files, function(i, file) {
|
||||
@ -609,7 +579,7 @@ phpbb.plupload.uploader.bind('FilesAdded', function(up, files) {
|
||||
});
|
||||
|
||||
up.bind('UploadProgress', function(up, file) {
|
||||
$('#' + file.id + " .file-progress-bar").css('width', file.percent + '%');
|
||||
$('.file-progress-bar', '#' + file.id).css('width', file.percent + '%');
|
||||
$('#file-total-progress-bar').css('width', up.total.percent + '%');
|
||||
});
|
||||
|
||||
@ -627,12 +597,10 @@ phpbb.plupload.uploader.bind('FilesAdded', function(up, files) {
|
||||
* appends it to the next file upload so that the server can maintain state
|
||||
* with regards to the attachments in a given post
|
||||
*
|
||||
* @param object up The plupload.Uploader object
|
||||
* @param object file The plupload.File object that has just been
|
||||
* @param {object} up The plupload.Uploader object
|
||||
* @param {object} file The plupload.File object that has just been
|
||||
* uploaded
|
||||
* @param string response The response string from the server
|
||||
*
|
||||
* @return undefined
|
||||
* @param {string} response The response string from the server
|
||||
*/
|
||||
phpbb.plupload.uploader.bind('FileUploaded', function(up, file, response) {
|
||||
var json = {},
|
||||
@ -643,7 +611,7 @@ phpbb.plupload.uploader.bind('FileUploaded', function(up, file, response) {
|
||||
row.find('.file-progress').hide();
|
||||
|
||||
try {
|
||||
json = $.parseJSON(response.response);
|
||||
json = JSON.parse(response.response);
|
||||
} catch (e) {
|
||||
error = 'Error parsing server response.';
|
||||
}
|
||||
@ -662,25 +630,19 @@ phpbb.plupload.uploader.bind('FileUploaded', function(up, file, response) {
|
||||
if (typeof error !== 'undefined') {
|
||||
phpbb.plupload.fileError(file, error);
|
||||
} else if (file.status === plupload.DONE) {
|
||||
file.attachment_data = json['data'][0];
|
||||
file.attachment_data = json.data[0];
|
||||
|
||||
row.attr('data-attach-id', file.attachment_data.attach_id);
|
||||
row.find('.file-inline-bbcode').show();
|
||||
row.find('.file-status').addClass('file-uploaded');
|
||||
phpbb.plupload.update(json['data'], 'addition', 0, [json['download_url']]);
|
||||
phpbb.plupload.update(json.data, 'addition', 0, [json.download_url]);
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Fires when the entire queue of files have been uploaded.
|
||||
*
|
||||
* @param object up The plupload.Uploader object
|
||||
* @param array files An array of plupload.File objects that have just
|
||||
* been uploaded as part of a queue
|
||||
*
|
||||
* @return undefined
|
||||
*/
|
||||
phpbb.plupload.uploader.bind('UploadComplete', function(up, files) {
|
||||
phpbb.plupload.uploader.bind('UploadComplete', function() {
|
||||
// Hide the progress bar
|
||||
setTimeout(function() {
|
||||
$('#file-total-progress-bar').fadeOut(500, function() {
|
||||
|
@ -42,8 +42,8 @@ phpbb.addAjaxCallback('mark_forums_read', function(res) {
|
||||
/**
|
||||
* This callback will mark all topic icons read
|
||||
*
|
||||
* @param update_topic_links bool Whether "Mark topics read" links should be
|
||||
* updated. Defaults to true.
|
||||
* @param {bool} [update_topic_links=true] Whether "Mark topics read" links
|
||||
* should be updated. Defaults to true.
|
||||
*/
|
||||
phpbb.addAjaxCallback('mark_topics_read', function(res, updateTopicLinks) {
|
||||
var readTitle = res.NO_UNREAD_POSTS;
|
||||
@ -138,9 +138,9 @@ phpbb.markNotifications = function($popup, unreadCount) {
|
||||
}
|
||||
|
||||
// Update page title
|
||||
$('title').text(
|
||||
(unreadCount ? '(' + unreadCount + ')' : '') + $('title').text().replace(/(\(([0-9])\))/, '')
|
||||
);
|
||||
var $title = $('title');
|
||||
var originalTitle = $title.text().replace(/(\((\d+)\))/, '');
|
||||
$title.text((unreadCount ? '(' + unreadCount + ')' : '') + originalTitle);
|
||||
};
|
||||
|
||||
// This callback finds the post from the delete link, and removes it.
|
||||
@ -205,7 +205,7 @@ phpbb.addAjaxCallback('vote_poll', function(res) {
|
||||
|
||||
// Set min-height to prevent the page from jumping when the content changes
|
||||
var updatePanelHeight = function (height) {
|
||||
var height = (typeof height === 'undefined') ? panel.find('.inner').outerHeight() : height;
|
||||
height = (typeof height === 'undefined') ? panel.find('.inner').outerHeight() : height;
|
||||
panel.css('min-height', height);
|
||||
};
|
||||
updatePanelHeight();
|
||||
@ -378,7 +378,7 @@ $('#member_search').click(function () {
|
||||
*/
|
||||
$(function() {
|
||||
phpbb.resizeTextArea($('textarea:not(#message-box textarea, .no-auto-resize)'), {minHeight: 75, maxHeight: 250});
|
||||
phpbb.resizeTextArea($('#message-box textarea'));
|
||||
phpbb.resizeTextArea($('textarea', '#message-box'));
|
||||
});
|
||||
|
||||
|
||||
|
@ -221,7 +221,7 @@
|
||||
<!-- IF S_INLINE_ATTACHMENT_OPTIONS -->
|
||||
<tr>
|
||||
<td class="row1"><b class="genmed">{L_ATTACHMENTS}{L_COLON}</b></td>
|
||||
<td class="row2"><select name="attachments">{S_INLINE_ATTACHMENT_OPTIONS}</select> <input type="button" class="btnbbcode" accesskey="a" value="{L_PLACE_INLINE}" name="attachinline" onclick="attach_form = document.forms[form_name].elements['attachments']; attach_inline(attach_form.value, attach_form.options[attach_form.selectedIndex].text);" onmouseover="helpline('a')" onmouseout="helpline('tip')" />
|
||||
<td class="row2"><select name="attachments">{S_INLINE_ATTACHMENT_OPTIONS}</select> <input type="button" class="btnbbcode" accesskey="a" value="{L_PLACE_INLINE}" name="attachinline" onclick="attach_form = document.forms[form_name].elements['attachments']; attachInline(attach_form.value, attach_form.options[attach_form.selectedIndex].text);" onmouseover="helpline('a')" onmouseout="helpline('tip')" />
|
||||
</td>
|
||||
</tr>
|
||||
<!-- ENDIF -->
|
||||
|
Loading…
x
Reference in New Issue
Block a user