aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/styles/prosilver/template/forum_fn.js
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/styles/prosilver/template/forum_fn.js')
-rw-r--r--phpBB/styles/prosilver/template/forum_fn.js277
1 files changed, 145 insertions, 132 deletions
diff --git a/phpBB/styles/prosilver/template/forum_fn.js b/phpBB/styles/prosilver/template/forum_fn.js
index eccb12e827..693211983f 100644
--- a/phpBB/styles/prosilver/template/forum_fn.js
+++ b/phpBB/styles/prosilver/template/forum_fn.js
@@ -25,8 +25,19 @@ function popup(url, width, height, name) {
/**
* Jump to page
*/
-function jumpto() {
- var page = prompt(jump_page, on_page);
+function jumpto(item) {
+ if (!item || !item.length) {
+ item = $('a.pagination-trigger[data-lang-jump-page]');
+ if (!item.length) {
+ return;
+ }
+ }
+
+ var jump_page = item.attr('data-lang-jump-page'),
+ on_page = item.attr('data-on-page'),
+ per_page = item.attr('data-per-page'),
+ base_url = item.attr('data-base-url'),
+ page = prompt(jump_page, on_page);
if (page !== null && !isNaN(page) && page == Math.floor(page) && page > 0) {
if (base_url.indexOf('?') === -1) {
@@ -42,19 +53,12 @@ function jumpto() {
* id = ID of parent container, name = name prefix, state = state [true/false]
*/
function marklist(id, name, state) {
- var parent = document.getElementById(id) || document[id];
-
- if (!parent) {
- return;
- }
-
- var rb = parent.getElementsByTagName('input');
-
- for (var r = 0; r < rb.length; r++) {
- if (rb[r].name.substr(0, name.length) === name) {
- rb[r].checked = state;
+ jQuery('#' + id + ' input[type=checkbox][name]').each(function() {
+ var $this = jQuery(this);
+ if ($this.attr('name').substr(0, name.length) == name) {
+ $this.prop('checked', state);
}
- }
+ });
}
/**
@@ -124,29 +128,15 @@ jQuery(document).ready(function() {
}
function subPanels(p) {
- var i, e, t;
+ var i;
if (typeof(p) === 'string') {
show_panel = p;
}
for (i = 0; i < panels.length; i++) {
- e = document.getElementById(panels[i]);
- t = document.getElementById(panels[i] + '-tab');
-
- if (e) {
- if (panels[i] === show_panel) {
- e.style.display = 'block';
- if (t) {
- t.className = 'activetab';
- }
- } else {
- e.style.display = 'none';
- if (t) {
- t.className = '';
- }
- }
- }
+ jQuery('#' + panels[i]).css('display', panels[i] === show_panel ? 'block' : 'none');
+ jQuery('#' + panels[i] + '-tab').toggleClass('activetab', panels[i] === show_panel);
}
}
});
@@ -255,57 +245,6 @@ function play_qt_file(obj) {
obj.Play();
}
-/**
-* Check if the nodeName of elem is name
-* @author jQuery
-*/
-function is_node_name(elem, name) {
- return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
-}
-
-/**
-* Check if elem is in array, return position
-* @author jQuery
-*/
-function is_in_array(elem, array) {
- for (var i = 0, length = array.length; i < length; i++) {
- // === is correct (IE)
- if (array[i] === elem) {
- return i;
- }
- }
-
- return -1;
-}
-
-/**
-* Find Element, type and class in tree
-* Not used, but may come in handy for those not using JQuery
-* @author jQuery.find, Meik Sievertsen
-*/
-function find_in_tree(node, tag, type, class_name) {
- var result, element, i = 0, length = node.childNodes.length;
-
- for (element = node.childNodes[0]; i < length; element = node.childNodes[++i]) {
- if (!element || element.nodeType !== 1) {
- continue;
- }
-
- if ((!tag || is_node_name(element, tag)) && (!type || element.type === type)
- && (!class_name || is_in_array(class_name, (element.className || element).toString().split(/\s+/)) > -1)) {
- return element;
- }
-
- if (element.childNodes.length) {
- result = find_in_tree(element, tag, type, class_name);
- }
-
- if (result) {
- return result;
- }
- }
-}
-
var in_autocomplete = false;
var last_key_entered = '';
@@ -337,50 +276,7 @@ function phpbb_check_key(event) {
}
/**
-* Usually used for onkeypress event, to submit a form on enter
-*/
-function submit_default_button(event, selector, class_name) {
- // Add which for key events
- if (!event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode)) {
- event.which = event.charCode || event.keyCode;
- }
-
- if (phpbb_check_key(event)) {
- return true;
- }
-
- var current = selector.parentNode;
-
- // Search parent form element
- while (current && (!current.nodeName || current.nodeType !== 1 || !is_node_name(current, 'form')) && current !== document) {
- current = current.parentNode;
- }
-
- // Find the input submit button with the class name
- //current = find_in_tree(current, 'input', 'submit', class_name);
- var input_tags = current.getElementsByTagName('input');
- current = false;
-
- for (var i = 0, element = input_tags[0]; i < input_tags.length; element = input_tags[++i]) {
- if (element.type === 'submit' && is_in_array(class_name, (element.className || element).toString().split(/\s+/)) > -1) {
- current = element;
- }
- }
-
- if (!current) {
- return true;
- }
-
- // Submit form
- current.focus();
- current.click();
- return false;
-}
-
-/**
* Apply onkeypress event for forcing default submit button on ENTER key press
-* The jQuery snippet used is based on http://greatwebguy.com/programming/dom/default-html-button-submit-on-enter-with-jquery/
-* The non-jQuery code is a mimick of the jQuery code ;)
*/
function apply_onkeypress_event() {
jQuery('form input[type=text], form input[type=password]').on('keypress', function (e) {
@@ -406,20 +302,137 @@ function apply_onkeypress_event() {
jQuery(document).ready(apply_onkeypress_event);
/**
-* Adjust HTML code for IE8 and older versions
+* Run MSN action
+*/
+function msn_action(action, address)
+{
+ // Does the browser support the MSNM object?
+ var app = document.getElementById('objMessengerApp');
+
+ if (!app || !app.MyStatus) {
+ var lang = $('form[data-lang-im-msnm-browser]');
+ if (lang.length) {
+ alert(lang.attr('data-lang-im-msnm-browser'));
+ }
+ return false;
+ }
+
+ // Is MSNM connected?
+ if (app.MyStatus == 1) {
+ var lang = $('form[data-lang-im-msnm-connect]');
+ if (lang.length) {
+ alert(lang.attr('data-lang-im-msnm-connect'));
+ }
+ return false;
+ }
+
+ // Do stuff
+ try {
+ switch (action) {
+ case 'add':
+ app.AddContact(0, address);
+ break;
+
+ case 'im':
+ app.InstantMessage(address);
+ break;
+ }
+ }
+ catch (e) {
+ return;
+ }
+}
+
+/**
+* Add to your contact list
+*/
+function add_contact(address)
+{
+ msn_action('add', address);
+}
+
+/**
+* Write IM to contact
+*/
+function im_contact(address)
+{
+ msn_action('im', address);
+}
+
+/**
+* Functions for user search popup
+*/
+function insert_user(formId, value)
+{
+ var form = jQuery(formId),
+ formName = form.attr('data-form-name'),
+ fieldName = form.attr('data-field-name'),
+ item = opener.document.forms[formName][fieldName];
+
+ if (item.value.length && item.type == 'textarea') {
+ value = item.value + "\n" + value;
+ }
+
+ item.value = value;
+}
+
+function insert_marked_users(formId, users)
+{
+ if (typeof(users.length) == "undefined")
+ {
+ if (users.checked)
+ {
+ insert_user(formId, users.value);
+ }
+ }
+ else if (users.length > 0)
+ {
+ for (i = 0; i < users.length; i++)
+ {
+ if (users[i].checked)
+ {
+ insert_user(formId, users[i].value);
+ }
+ }
+ }
+
+ self.close();
+}
+
+function insert_single_user(formId, user)
+{
+ insert_user(formId, user);
+ self.close();
+}
+
+/**
+* Run onload functions
*/
(function($) {
$(document).ready(function() {
+ // Focus forms
+ $('form[data-focus]:first').each(function() {
+ $('#' + this.getAttribute('data-focus')).focus();
+ });
+
+ // Reset avatar dimensions when changing URL or EMAIL
+ $('input[data-reset-on-edit]').bind('keyup', function() {
+ $(this.getAttribute('data-reset-on-edit')).val('');
+ });
+
+ // Pagination
+ $('a.pagination-trigger').click(function() {
+ jumpto($(this));
+ });
+
+ // Adjust HTML code for IE8 and older versions
var test = document.createElement('div'),
oldBrowser = (typeof test.style.borderRadius == 'undefined');
delete test;
- if (!oldBrowser) {
- return;
+ if (oldBrowser) {
+ // Fix .linkslist.bulletin lists
+ $('ul.linklist.bulletin li:first-child, ul.linklist.bulletin li.rightside:last-child').addClass('no-bulletin');
}
-
- // Fix .linkslist.bulletin lists
- $('ul.linklist.bulletin li:first-child, ul.linklist.bulletin li.rightside:last-child').addClass('no-bulletin');
});
})(jQuery);
-