1 elgg.provide(
'elgg.ui');
3 elgg.ui.init =
function () {
6 $(
'.elgg-page').attr(
"onclick",
"return true");
9 elgg.ui.initHoverMenu();
12 $(
'.elgg-system-messages li').live(
'click',
function() {
13 $(
this).stop().fadeOut(
'fast');
16 $(
'.elgg-system-messages li').animate({opacity: 0.9}, 6000);
17 $(
'.elgg-system-messages li.elgg-state-success').fadeOut(
'slow');
19 $(
'[rel=toggle]').live(
'click',
elgg.ui.toggles);
21 $(
'[rel=popup]').live(
'click',
elgg.ui.popupOpen);
23 $(
'.elgg-menu-page .elgg-menu-parent').live(
'click',
elgg.ui.toggleMenu);
25 $(
'*[data-confirm], .elgg-requires-confirmation').live(
'click',
elgg.ui.requiresConfirmation);
26 if ($(
'.elgg-requires-confirmation').length > 0) {
27 elgg.deprecated_notice(
'Use of .elgg-requires-confirmation is deprecated by data-confirm',
'1.10');
30 $(
'.elgg-autofocus').focus();
31 if ($(
'.elgg-autofocus').length > 0) {
32 elgg.deprecated_notice(
'Use of .elgg-autofocus is deprecated by html5 autofocus', 1.9);
35 elgg.ui.initAccessInputs();
51 elgg.ui.toggles =
function(event) {
52 event.preventDefault();
54 target = $this.data().toggleSelector;
59 target = $this.attr(
'href');
62 $this.toggleClass(
'elgg-state-active');
64 $(target).each(
function(
index, elem) {
66 if ($elem.data().toggleSlide !=
false) {
67 $elem.slideToggle(
'medium');
92 elgg.ui.popupOpen =
function(event) {
93 event.preventDefault();
94 event.stopPropagation();
96 var target =
elgg.getSelectorFromUrlFragment($(
this).toggleClass(
'elgg-state-active').attr(
'href'));
101 targetSelector: target,
113 options =
elgg.trigger_hook(
'getOptions',
'ui.popup', params, options);
121 if ($target.is(
':visible')) {
123 $(
'body').die(
'click',
elgg.ui.popupClose);
127 $target.appendTo(
'body')
132 .die(
'click',
elgg.ui.popupClose)
133 .live(
'click',
elgg.ui.popupClose);
139 elgg.ui.popupClose =
function(event) {
140 $eventTarget = $(
event.target);
141 var inTarget =
false;
142 var $popups = $(
'[rel=popup]');
145 $popups.each(
function(
i, e) {
146 var target =
elgg.getSelectorFromUrlFragment($(e).attr(
'href')) +
':visible';
149 if (!$target.is(
':visible')) {
154 if ($eventTarget.closest(target).length > 0) {
161 $popups.each(
function(
i, e) {
163 var
$target = $(
elgg.getSelectorFromUrlFragment($e.attr(
'href')) +
':visible');
164 if ($target.length > 0) {
166 $e.removeClass(
'elgg-state-active');
170 $(
'body').die(
'click',
elgg.ui.popClose);
180 elgg.ui.toggleMenu =
function(event) {
181 $(
this).siblings().slideToggle(
'medium');
182 $(
this).toggleClass(
'elgg-menu-closed elgg-menu-opened');
183 event.preventDefault();
192 elgg.ui.initHoverMenu =
function(parent) {
198 $(parent).find(
".elgg-avatar").live(
'mouseover',
function() {
199 $(
this).children(
".elgg-icon-hover-menu").show();
201 .live(
'mouseout',
function() {
202 $(
this).children(
".elgg-icon-hover-menu").hide();
207 $(
".elgg-avatar > .elgg-icon-hover-menu").live(
'click',
function(e) {
209 var $hovermenu = $(
this).data(
'hovermenu') || null;
212 $hovermenu = $(
this).parent().find(
".elgg-menu-hover");
213 $(
this).data(
'hovermenu', $hovermenu);
217 if ($hovermenu.css(
'display') ==
"block") {
218 $hovermenu.fadeOut();
220 $avatar = $(
this).closest(
".elgg-avatar");
223 var offset = $avatar.offset();
224 var
top = $avatar.height() + offset.top +
'px';
225 var
left = $avatar.width() - 15 + offset.left +
'px';
227 $hovermenu.appendTo(
'body')
228 .css(
'position',
'absolute')
235 $(
".elgg-menu-hover:visible").not($hovermenu).fadeOut();
240 if ($(event.target).parents(
".elgg-avatar").length === 0) {
241 $(
".elgg-menu-hover").fadeOut();
252 elgg.ui.requiresConfirmation =
function(e) {
253 var confirmText = $(
this).data(
'confirm') ||
elgg.echo(
'question:areyousure');
254 if (!confirm(confirmText)) {
269 elgg.ui.loginHandler =
function(hook,
type, params, options) {
270 if (params.target.attr(
'id') ==
'login-dropdown-box') {
271 options.my =
'right top';
272 options.at =
'right bottom';
290 elgg.ui.initDatePicker =
function() {
291 function loadDatePicker() {
294 dateFormat:
'yy-mm-dd',
295 onSelect:
function(dateText) {
296 if ($(
this).is(
'.elgg-input-timestamp')) {
298 var dateParts = dateText.split(
"-");
299 var timestamp = Date.UTC(dateParts[0], dateParts[1] - 1, dateParts[2]);
300 timestamp = timestamp / 1000;
302 var
id = $(
this).attr(
'id');
303 $(
'input[name="' +
id +
'"]').val(timestamp);
311 if (!$(
'.elgg-input-date').length) {
315 if (
elgg.get_language() ==
'en') {
320 url:
elgg.config.wwwroot +
'vendors/jquery/i18n/jquery.ui.datepicker-'+
elgg.get_language() +
'.js',
324 error: loadDatePicker
336 elgg.ui.registerTogglableMenuItems =
function(menuItemNameA, menuItemNameB) {
338 $(
'.elgg-menu-item-' + menuItemNameA +
' a').live(
'click',
function() {
339 var
$menu = $(
this).closest(
'.elgg-menu');
342 elgg.ui.toggleMenuItems($menu, menuItemNameB, menuItemNameA);
345 elgg.action($(
this).attr(
'href'), {
347 if (json.system_messages.error.length) {
349 elgg.ui.toggleMenuItems($menu, menuItemNameA, menuItemNameB);
354 elgg.ui.toggleMenuItems($menu, menuItemNameA, menuItemNameB);
363 $(
'.elgg-menu-item-' + menuItemNameB +
' a').live(
'click',
function() {
364 var
$menu = $(
this).closest(
'.elgg-menu');
367 elgg.ui.toggleMenuItems($menu, menuItemNameA, menuItemNameB);
370 elgg.action($(
this).attr(
'href'), {
372 if (json.system_messages.error.length) {
374 elgg.ui.toggleMenuItems($menu, menuItemNameB, menuItemNameA);
379 elgg.ui.toggleMenuItems($menu, menuItemNameB, menuItemNameA);
388 elgg.ui.toggleMenuItems =
function(
$menu, nameOfItemToShow, nameOfItemToHide) {
389 $menu.find(
'.elgg-menu-item-' + nameOfItemToShow).removeClass(
'hidden').find(
'a').focus();
390 $menu.find(
'.elgg-menu-item-' + nameOfItemToHide).addClass(
'hidden');
402 elgg.ui.initAccessInputs =
function () {
403 $(
'.elgg-input-access').each(
function () {
404 function updateMembersonlyNote() {
405 var val = $select.val();
406 if (val != acl && val !== 0) {
408 $note.css(
'visibility',
'visible');
410 $note.css(
'visibility',
'hidden');
413 var $select = $(
this),
414 acl = $select.data(
'group-acl'),
415 $note = $(
'.elgg-input-access-membersonly', this.parentNode);
417 updateMembersonlyNote();
418 $select.change(updateMembersonlyNote);
423 elgg.register_hook_handler(
'init',
'system',
elgg.ui.init);
424 elgg.register_hook_handler(
'init',
'system',
elgg.ui.initDatePicker);
425 elgg.register_hook_handler(
'getOptions',
'ui.popup',
elgg.ui.loginHandler);
426 elgg.ui.registerTogglableMenuItems(
'add-friend',
'remove-friend');
elgg message elgg state success
elgg message elgg state error
GNU GENERAL PUBLIC LICENSE June Free Software Franklin Fifth MA USA Everyone is permitted to copy and distribute verbatim copies of this license document
function elgg combo checkbox click(function(){if($(this).is(':checked')){$(this).prev().attr('disabled', true);$(this).prev().val('');}else{$(this).prev().attr('disabled', false);}})
if(!$site) if(!($site instanceof ElggSite)) $site url