diff options
Diffstat (limited to 'js')
| -rw-r--r-- | js/classes/ElggPriorityList.js | 7 | ||||
| -rw-r--r-- | js/classes/ElggUser.js | 16 | ||||
| -rw-r--r-- | js/lib/avatar_cropper.js | 6 | ||||
| -rw-r--r-- | js/lib/configuration.js | 2 | ||||
| -rw-r--r-- | js/lib/elgglib.js | 12 | ||||
| -rw-r--r-- | js/lib/hooks.js | 10 | ||||
| -rw-r--r-- | js/lib/ui.js | 59 | ||||
| -rw-r--r-- | js/lib/ui.widgets.js | 12 | ||||
| -rw-r--r-- | js/lib/userpicker.js | 10 | ||||
| -rw-r--r-- | js/tests/ElggLanguagesTest.js | 2 | ||||
| -rw-r--r-- | js/tests/ElggPriorityListTest.js | 6 | ||||
| -rw-r--r-- | js/tests/ElggSecurityTest.js | 6 | ||||
| -rw-r--r-- | js/tests/jsTestDriver.conf | 3 | 
13 files changed, 84 insertions, 67 deletions
| diff --git a/js/classes/ElggPriorityList.js b/js/classes/ElggPriorityList.js index 831342f21..b4cec5044 100644 --- a/js/classes/ElggPriorityList.js +++ b/js/classes/ElggPriorityList.js @@ -16,7 +16,10 @@ elgg.ElggPriorityList = function() {   * @return {Void}   */  elgg.ElggPriorityList.prototype.insert = function(obj, opt_priority) { -	var priority = parseInt(opt_priority || 500, 10); +	var priority = 500; +	if (arguments.length == 2 && opt_priority != undefined) { +		priority = parseInt(opt_priority, 10); +	}  	priority = Math.max(priority, 0); @@ -31,7 +34,7 @@ elgg.ElggPriorityList.prototype.insert = function(obj, opt_priority) {  /**   * Iterates through each element in order.   * -* Unlike every, this ignores the return value of the callback. + * Unlike every, this ignores the return value of the callback.   *   * @param {Function} callback The callback function to pass each element through. See   *                            Array.prototype.every() for details. diff --git a/js/classes/ElggUser.js b/js/classes/ElggUser.js index 8a7a8b7eb..b8a976fba 100644 --- a/js/classes/ElggUser.js +++ b/js/classes/ElggUser.js @@ -6,9 +6,23 @@   * @class Represents an ElggUser   * @property {string} name   * @property {string} username + * @property {string} language + * @property {boolean} admin   */  elgg.ElggUser = function(o) {  	elgg.ElggEntity.call(this, o);  }; -elgg.inherit(elgg.ElggUser, elgg.ElggEntity);
\ No newline at end of file +elgg.inherit(elgg.ElggUser, elgg.ElggEntity); + +/** + * Is this user an admin? + * + * @warning The admin state of the user should be checked on the server for any + * actions taken that require admin privileges. + * + * @return {boolean} + */ +elgg.ElggUser.prototype.isAdmin = function() { +	return this.admin; +};
\ No newline at end of file diff --git a/js/lib/avatar_cropper.js b/js/lib/avatar_cropper.js index df6ba7866..fc32a0832 100644 --- a/js/lib/avatar_cropper.js +++ b/js/lib/avatar_cropper.js @@ -32,7 +32,7 @@ elgg.avatarCropper.init = function() {  		var selection = ias.getSelection();  		elgg.avatarCropper.preview($('#user-avatar-cropper'), selection);  	} -} +};  /**   * Handler for changing select area. @@ -57,7 +57,7 @@ elgg.avatarCropper.preview = function(img, selection) {  		marginLeft: '-' + Math.round(scaleX * selection.x1) + 'px',  		marginTop: '-' + Math.round(scaleY * selection.y1) + 'px'  	}); -} +};  /**   * Handler for updating the form inputs after select ends @@ -71,6 +71,6 @@ elgg.avatarCropper.selectChange = function(img, selection) {  	$('input[name=x2]').val(selection.x2);  	$('input[name=y1]').val(selection.y1);  	$('input[name=y2]').val(selection.y2); -} +};  elgg.register_hook_handler('init', 'system', elgg.avatarCropper.init);
\ No newline at end of file diff --git a/js/lib/configuration.js b/js/lib/configuration.js index f724a2f01..6e221c957 100644 --- a/js/lib/configuration.js +++ b/js/lib/configuration.js @@ -7,4 +7,4 @@ elgg.provide('elgg.config');   */  elgg.get_site_url = function() {  	return elgg.config.wwwroot; -}
\ No newline at end of file +};
\ No newline at end of file diff --git a/js/lib/elgglib.js b/js/lib/elgglib.js index 628adccfc..85251c1e8 100644 --- a/js/lib/elgglib.js +++ b/js/lib/elgglib.js @@ -467,7 +467,7 @@ elgg.parse_url = function(url, component, expand) {  		}  	}  	return results; -} +};  /**   * Returns an object with key/values of the parsed query string. @@ -535,12 +535,12 @@ elgg.push_to_object_array = function(object, parent, value) {  		object[parent] = []  	} -	if (object[parent].indexOf(value) < 0) { +	if ($.inArray(value, object[parent]) < 0) {  		return object[parent].push(value);  	}  	return false; -} +};  /**   * Tests if object[parent] contains child @@ -553,8 +553,8 @@ elgg.is_in_object_array = function(object, parent, value) {  	elgg.assertTypeOf('object', object);  	elgg.assertTypeOf('string', parent); -	return typeof(object[parent]) != 'undefined' && object[parent].indexOf(value) >= 0; -} +	return typeof(object[parent]) != 'undefined' && $.inArray(value, object[parent]) >= 0; +};  /**   * Triggers the init hook when the library is ready @@ -569,4 +569,4 @@ elgg.initWhenReady = function() {  		elgg.trigger_hook('init', 'system');  		elgg.trigger_hook('ready', 'system');  	} -}
\ No newline at end of file +};
\ No newline at end of file diff --git a/js/lib/hooks.js b/js/lib/hooks.js index edfd28f24..5e1808e22 100644 --- a/js/lib/hooks.js +++ b/js/lib/hooks.js @@ -115,7 +115,7 @@ elgg.trigger_hook = function(name, type, params, value) {  		return true;  	}); -	return (tempReturnValue !== null) ? tempReturnValue : returnValue; +	return (tempReturnValue != null) ? tempReturnValue : returnValue;  };  /** @@ -136,7 +136,7 @@ elgg.register_instant_hook = function(name, type) {  	elgg.assertTypeOf('string', type);  	return elgg.push_to_object_array(elgg.config.instant_hooks, name, type); -} +};  /**   * Is this hook registered as an instant hook? @@ -146,7 +146,7 @@ elgg.register_instant_hook = function(name, type) {   */  elgg.is_instant_hook = function(name, type) {  	return elgg.is_in_object_array(elgg.config.instant_hooks, name, type); -} +};  /**   * Records that a hook has been triggered. @@ -156,7 +156,7 @@ elgg.is_instant_hook = function(name, type) {   */  elgg.set_triggered_hook = function(name, type) {  	return elgg.push_to_object_array(elgg.config.triggered_hooks, name, type); -} +};  /**   * Has this hook been triggered yet? @@ -166,7 +166,7 @@ elgg.set_triggered_hook = function(name, type) {   */  elgg.is_triggered_hook = function(name, type) {  	return elgg.is_in_object_array(elgg.config.triggered_hooks, name, type); -} +};  elgg.register_instant_hook('init', 'system');  elgg.register_instant_hook('ready', 'system'); diff --git a/js/lib/ui.js b/js/lib/ui.js index 6cc1bc78a..c26cbe389 100644 --- a/js/lib/ui.js +++ b/js/lib/ui.js @@ -14,18 +14,14 @@ elgg.ui.init = function () {  	$('[rel=toggle]').live('click', elgg.ui.toggles); -	$('[rel=popup]').live('click', elgg.ui.popsUp); +	$('[rel=popup]').live('click', elgg.ui.popupOpen);  	$('.elgg-menu-page .elgg-menu-parent').live('click', elgg.ui.toggleMenu);  	$('.elgg-requires-confirmation').live('click', elgg.ui.requiresConfirmation);  	$('.elgg-autofocus').focus(); - -	if ($('.elgg-input-date').length) { -		elgg.ui.initDatePicker(); -	} -} +};  /**   * Toggles an element based on clicking a separate element @@ -43,7 +39,7 @@ elgg.ui.toggles = function(event) {  	var target = $(this).toggleClass('elgg-state-active').attr('href');  	$(target).slideToggle('medium'); -} +};  /**   * Pops up an element based on clicking a separate element @@ -63,7 +59,7 @@ elgg.ui.toggles = function(event) {   * @param {Object} event   * @return void   */ -elgg.ui.popsUp = function(event) { +elgg.ui.popupOpen = function(event) {  	event.preventDefault();  	event.stopPropagation(); @@ -105,7 +101,7 @@ elgg.ui.popsUp = function(event) {  	$('body')  		.die('click', elgg.ui.popupClose)  		.live('click', elgg.ui.popupClose); -} +};  /**   * Catches clicks that aren't in a popup and closes all popups. @@ -143,7 +139,7 @@ elgg.ui.popupClose = function(event) {  		$('body').die('click', elgg.ui.popClose);  	} -} +};  /**   * Toggles a child menu when the parent is clicked @@ -155,7 +151,7 @@ elgg.ui.toggleMenu = function(event) {  	$(this).siblings().slideToggle('medium');  	$(this).toggleClass('elgg-menu-closed elgg-menu-opened');  	event.preventDefault(); -} +};  /**   * Initialize the hover menu @@ -183,7 +179,7 @@ elgg.ui.initHoverMenu = function(parent) {  		var $hovermenu = $(this).data('hovermenu') || null;  		if (!$hovermenu) { -			var $hovermenu = $(this).parent().find(".elgg-menu-hover"); +			$hovermenu = $(this).parent().find(".elgg-menu-hover");  			$(this).data('hovermenu', $hovermenu);  		} @@ -215,7 +211,7 @@ elgg.ui.initHoverMenu = function(parent) {  			$(".elgg-menu-hover").fadeOut();  		}  	}); -} +};  /**   * Calls a confirm() and prevents default if denied. @@ -240,7 +236,7 @@ elgg.ui.requiresConfirmation = function(e) {   *   * @return {Object}   */ -elgg.ui.LoginHandler = function(hook, type, params, options) { +elgg.ui.loginHandler = function(hook, type, params, options) {  	if (params.target.attr('id') == 'login-dropdown-box') {  		options.my = 'right top';  		options.at = 'right bottom'; @@ -261,22 +257,25 @@ elgg.ui.LoginHandler = function(hook, type, params, options) {   * @return void   */  elgg.ui.initDatePicker = function() { -	$('.elgg-input-date').datepicker({ -		// ISO-8601 -		dateFormat: 'yy-mm-dd', -		onSelect: function(dateText) { -			if ($(this).is('.elgg-input-timestamp')) { -				// convert to unix timestamp -				var dateParts = dateText.split("-"); -				var timestamp = Date.UTC(dateParts[0], dateParts[1] - 1, dateParts[2]); -				timestamp = timestamp / 1000; - -				var id = $(this).attr('id'); -				$('input[name="' + id + '"]').val(timestamp); +	if ($('.elgg-input-date').length) { +		$('.elgg-input-date').datepicker({ +			// ISO-8601 +			dateFormat: 'yy-mm-dd', +			onSelect: function(dateText) { +				if ($(this).is('.elgg-input-timestamp')) { +					// convert to unix timestamp +					var dateParts = dateText.split("-"); +					var timestamp = Date.UTC(dateParts[0], dateParts[1] - 1, dateParts[2]); +					timestamp = timestamp / 1000; + +					var id = $(this).attr('id'); +					$('input[name="' + id + '"]').val(timestamp); +				}  			} -		} -	}); -} +		}); +	} +};  elgg.register_hook_handler('init', 'system', elgg.ui.init); -elgg.register_hook_handler('getOptions', 'ui.popup', elgg.ui.LoginHandler);
\ No newline at end of file +elgg.register_hook_handler('init', 'system', elgg.ui.initDatePicker); +elgg.register_hook_handler('getOptions', 'ui.popup', elgg.ui.loginHandler);
\ No newline at end of file diff --git a/js/lib/ui.widgets.js b/js/lib/ui.widgets.js index fb256672a..6435d2147 100644 --- a/js/lib/ui.widgets.js +++ b/js/lib/ui.widgets.js @@ -65,7 +65,7 @@ elgg.ui.widgets.add = function(event) {  		}  	});  	event.preventDefault(); -} +};  /**   * Persist the widget's new position @@ -96,7 +96,7 @@ elgg.ui.widgets.move = function(event, ui) {  	// @hack fixes jquery-ui/opera bug where draggable elements jump  	ui.item.css('top', 0);  	ui.item.css('left', 0); -} +};  /**   * Removes a widget from the layout @@ -134,7 +134,7 @@ elgg.ui.widgets.remove = function(event) {  		}  	});  	event.preventDefault(); -} +};  /**   * Toggle the collapse state of the widget @@ -146,7 +146,7 @@ elgg.ui.widgets.collapseToggle = function(event) {  	$(this).toggleClass('elgg-widget-collapsed');  	$(this).parent().parent().find('.elgg-body').slideToggle('medium');  	event.preventDefault(); -} +};  /**   * Save a widget's settings @@ -178,7 +178,7 @@ elgg.ui.widgets.saveSettings = function(event) {  		}  	});  	event.preventDefault(); -} +};  /**   * Make all elements have the same min-height @@ -197,6 +197,6 @@ elgg.ui.widgets.equalHeight = function(selector) {  		}  	})  	$(selector).css('min-height', maxHeight); -} +};  elgg.register_hook_handler('init', 'system', elgg.ui.widgets.init); diff --git a/js/lib/userpicker.js b/js/lib/userpicker.js index ae2add53f..8287ba91c 100644 --- a/js/lib/userpicker.js +++ b/js/lib/userpicker.js @@ -34,7 +34,7 @@ elgg.userpicker.init = function() {  	});  	$('.elgg-userpicker-remove').live('click', elgg.userpicker.removeUser); -} +};  /**   * Adds a user to the select user list @@ -59,7 +59,7 @@ elgg.userpicker.addUser = function(event, ui) {  	$(this).val('');  	event.preventDefault(); -} +};  /**   * Remove a user from the selected user list @@ -75,7 +75,7 @@ elgg.userpicker.removeUser = function(event) {  	item.remove();  	event.preventDefault(); -} +};  /**   * Render the list item for insertion into the selected user list @@ -96,7 +96,7 @@ elgg.userpicker.viewUser = function(info) {  	html += "</div";  	return html; -} +};  /**   * Get the parameters to use for autocomplete @@ -112,6 +112,6 @@ elgg.userpicker.getSearchParams = function(obj) {  	} else {  		return {'match_on[]': 'users', 'term' : obj.term};  	} -} +};  elgg.register_hook_handler('init', 'system', elgg.userpicker.init);
\ No newline at end of file diff --git a/js/tests/ElggLanguagesTest.js b/js/tests/ElggLanguagesTest.js index 1f66fc35b..9186ff5bb 100644 --- a/js/tests/ElggLanguagesTest.js +++ b/js/tests/ElggLanguagesTest.js @@ -6,7 +6,7 @@ ElggLanguagesTest.prototype.setUp = function() {  	//Immediately execute some dummy "returned" javascript instead of sending  	//an actual ajax request  	$.ajax = function(settings) { -		var lang = settings.data.js.split('/')[1]; +		var lang = settings.data.language;  		elgg.config.translations[lang] = {'language':lang};  	};  }; diff --git a/js/tests/ElggPriorityListTest.js b/js/tests/ElggPriorityListTest.js index 2549e0ee0..2329a8490 100644 --- a/js/tests/ElggPriorityListTest.js +++ b/js/tests/ElggPriorityListTest.js @@ -15,7 +15,7 @@ ElggPriorityListTest.prototype.testInsert = function() {  	this.list.insert('bar', 501); -	assertEquals('foo', this.list.priorities_[501][0]); +	assertEquals('bar', this.list.priorities_[501][0]);  };  ElggPriorityListTest.prototype.testInsertRespectsPriority = function() { @@ -25,9 +25,9 @@ ElggPriorityListTest.prototype.testInsertRespectsPriority = function() {  		this.list.insert(values[i], values[i]);  	} -	this.list.forEach(function(elem, idx)) { +	this.list.forEach(function(elem, idx) {  		assertEquals(elem, idx); -	} +	})  };  ElggPriorityListTest.prototype.testInsertHandlesDuplicatePriorities = function() { diff --git a/js/tests/ElggSecurityTest.js b/js/tests/ElggSecurityTest.js index f1111168f..c7309d55f 100644 --- a/js/tests/ElggSecurityTest.js +++ b/js/tests/ElggSecurityTest.js @@ -31,10 +31,10 @@ ElggSecurityTest.prototype.testAddTokenAcceptsString = function() {  		str = "__elgg_ts=" + this.ts + "&__elgg_token=" + this.token;  	input = ""; -	assertEquals(str, elgg.security.addToken(input)); +	assertEquals('?' + str, elgg.security.addToken(input)); -	input = "data=sofar"; -	assertEquals(input+'&'+str, elgg.security.addToken(input)); +	input = "?data=sofar"; +	assertEquals(input + '&' + str, elgg.security.addToken(input));  }; diff --git a/js/tests/jsTestDriver.conf b/js/tests/jsTestDriver.conf index 1bb06e811..1f9c0a6f7 100644 --- a/js/tests/jsTestDriver.conf +++ b/js/tests/jsTestDriver.conf @@ -1,9 +1,10 @@  server: http://localhost:42442  load: - - vendors/jquery/jquery-1.4.2.min.js + - vendors/jquery/jquery-1.6.2.min.js   - vendors/sprintf.js   - js/lib/elgglib.js + - js/lib/hooks.js   - js/classes/*.js   - js/lib/*.js   - js/tests/*.js
\ No newline at end of file | 
