aboutsummaryrefslogtreecommitdiff
path: root/views/default/js/elgg.php
diff options
context:
space:
mode:
Diffstat (limited to 'views/default/js/elgg.php')
-rw-r--r--views/default/js/elgg.php231
1 files changed, 13 insertions, 218 deletions
diff --git a/views/default/js/elgg.php b/views/default/js/elgg.php
index f7f1e942c..c3b56e398 100644
--- a/views/default/js/elgg.php
+++ b/views/default/js/elgg.php
@@ -28,11 +28,13 @@ foreach ($model_files as $file) {
$libs = array(
//libraries
'prototypes',
- 'events',
+ 'hooks',
'security',
'languages',
'ajax',
'session',
+ 'pageowner',
+ 'configuration',
//ui
'ui',
@@ -41,238 +43,31 @@ $libs = array(
foreach ($libs as $file) {
include("{$CONFIG->path}js/lib/$file.js");
+ // putting a new line between the files to address https://github.com/elgg/elgg/issues/3081
+ echo "\n";
}
/**
* Set some values that are cacheable
*/
+if (0) { ?><script><?php }
?>
elgg.version = '<?php echo get_version(); ?>';
elgg.release = '<?php echo get_version(true); ?>';
elgg.config.wwwroot = '<?php echo elgg_get_site_url(); ?>';
-elgg.security.interval = 5 * 60 * 1000; <?php //@todo make this configurable ?>
-
-//Mimic PHP engine boot process
-
-//Before the DOM is ready -- note that plugins aren't loaded yet
-elgg.trigger_event('boot', 'system');
+<?php //@todo make this configurable ?>
+elgg.security.interval = 5 * 60 * 1000;
+elgg.config.domReady = false;
+elgg.config.language = '<?php echo isset($CONFIG->language) ? $CONFIG->language : 'en'; ?>';
+elgg.config.languageReady = false;
//After the DOM is ready
$(function() {
- elgg.trigger_event('init', 'system');
-});
-
-$(document).ready(function () {
-
- elgg_system_message();
-
-}); /* end document ready function */
-
-
-
-// display & hide elgg system messages
-function elgg_system_message() {
- $("#elgg-system-message").animate({opacity: 0.9}, 1000);
- $("#elgg-system-message").animate({opacity: 0.9}, 5000);
- $("#elgg-system-message").fadeOut('slow');
-
- $("#elgg-system-message").click(function () {
- $("#elgg-system-message").stop();
- $("#elgg-system-message").fadeOut('slow');
- return false;
- });
-}
-
-// reusable slide in/out toggle function
-function elgg_slide_toggle(activateLink, parentElement, toggleElement) {
- $(activateLink).closest(parentElement).find(toggleElement).animate({"height": "toggle"}, { duration: 400 });
- return false;
-}
-
-// ELGG DROP DOWN MENU
-$.fn.elgg_dropdownmenu = function(options) {
-
-options = $.extend({speed: 350}, options || {});
-
-this.each(function() {
-
- var root = this, zIndex = 5000;
-
- function getSubnav(ele) {
- if (ele.nodeName.toLowerCase() == 'li') {
- var subnav = $('> ul', ele);
- return subnav.length ? subnav[0] : null;
- } else {
-
- return ele;
- }
- }
-
- function getActuator(ele) {
- if (ele.nodeName.toLowerCase() == 'ul') {
- return $(ele).parents('li')[0];
- } else {
- return ele;
- }
- }
-
- function hide() {
- var subnav = getSubnav(this);
- if (!subnav) return;
- $.data(subnav, 'cancelHide', false);
- setTimeout(function() {
- if (!$.data(subnav, 'cancelHide')) {
- $(subnav).slideUp(100);
- }
- }, 250);
- }
-
- function show() {
- var subnav = getSubnav(this);
- if (!subnav) return;
- $.data(subnav, 'cancelHide', true);
- $(subnav).css({zIndex: zIndex++}).slideDown(options.speed);
- if (this.nodeName.toLowerCase() == 'ul') {
- var li = getActuator(this);
- $(li).addClass('hover');
- $('> a', li).addClass('hover');
- }
- }
-
- $('ul, li', this).hover(show, hide);
- $('li', this).hover(
- function() { $(this).addClass('hover'); $('> a', this).addClass('hover'); },
- function() { $(this).removeClass('hover'); $('> a', this).removeClass('hover'); }
- );
-
+ elgg.config.domReady = true;
+ elgg.initWhenReady();
});
-};
-
-
-var submenuLayer = 1000;
-
-function setup_avatar_menu(parent) {
- if (!parent) {
- parent = document;
- }
-
- // avatar image menu link
- $(parent).find("div.elgg-user-icon img").mouseover(function() {
- // find nested avatar_menu_button and show
- $(this.parentNode.parentNode).children(".avatar_menu_button").show();
- $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow");
- //$(this.parentNode.parentNode).css("z-index", submenuLayer);
- })
- .mouseout(function() {
- if($(this).parent().parent().find("div.sub_menu").css('display')!="block") {
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_on");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover");
- $(this.parentNode.parentNode).children(".avatar_menu_button").hide();
- }
- else {
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_on");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover");
- $(this.parentNode.parentNode).children(".avatar_menu_button").show();
- $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow");
- }
- });
-
-
- // avatar contextual menu
- $(".avatar_menu_button img").click(function(e) {
-
- //var submenu = $(this).parent().parent().find("div.sub_menu");
- var submenu = $(this).parent().parent().find(".elgg-hover-menu");
-
- // close submenu if arrow is clicked & menu already open
- if (submenu.css('display') == "block") {
- //submenu.hide();
- } else {
- // get avatar dimensions
- var avatar = $(this).parent().parent().parent().find("div.elgg-user-icon");
- //alert( "avatarWidth: " + avatar.width() + ", avatarHeight: " + avatar.height() );
-
- // move submenu position so it aligns with arrow graphic
- if (e.pageX < 840) { // popup menu to left of arrow if we're at edge of page
- submenu.css("top",(avatar.height()) + "px")
- .css("left",(avatar.width()-15) + "px")
- .fadeIn('normal');
- } else {
- submenu.css("top",(avatar.height()) + "px")
- .css("left",(avatar.width()-166) + "px")
- .fadeIn('normal');
- }
-
- // force z-index - workaround for IE z-index bug
- avatar.css("z-index", submenuLayer);
- avatar.find("a.icon img").css("z-index", submenuLayer);
- submenu.css("z-index", submenuLayer+1);
-
- submenuLayer++;
-
- // change arrow to 'on' state
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow_on");
- }
-
- // hide any other open submenus and reset arrows
- $("div.sub_menu:visible").not(submenu).hide();
- $(".avatar_menu_button").removeClass("avatar_menu_arrow");
- $(".avatar_menu_button").removeClass("avatar_menu_arrow_on");
- $(".avatar_menu_button").removeClass("avatar_menu_arrow_hover");
- $(".avatar_menu_button").hide();
- $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow_on");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").show();
- //alert("submenuLayer = " +submenu.css("z-index"));
- })
- // hover arrow each time mouseover enters arrow graphic (eg. when menu is already shown)
- .mouseover(function() {
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_on");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow_hover");
- })
- // if menu not shown revert arrow, else show 'menu open' arrow
- .mouseout(function() {
- if($(this).parent().parent().find("div.sub_menu").css('display')!="block"){
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow");
- }
- else {
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow_on");
- }
- });
-
- // hide avatar menu if click occurs outside of menu
- // and hide arrow button
- $(document).click(function(event) {
- var target = $(event.target);
- if (target.parents(".elgg-user-icon").length == 0) {
- $(".elgg-hover-menu").fadeOut();
- $(".avatar_menu_button").removeClass("avatar_menu_arrow");
- $(".avatar_menu_button").removeClass("avatar_menu_arrow_on");
- $(".avatar_menu_button").removeClass("avatar_menu_arrow_hover");
- $(".avatar_menu_button").hide();
- }
- });
-
-
-}
-
-$(document).ready(function() {
-
- setup_avatar_menu();
-
-});
-
-
<?php
$previous_content = elgg_view('js/initialise_elgg');