Team:TU Delft/files/main.js

From 2010.igem.org

(Difference between revisions)
(New page: //Global Vars var activePage; // Set document ready callback $(function() { // Initialize history plugin. $(window).hashchange(historyCallback); rewriteLinks($("#navlist")); historyC...)
Line 1: Line 1:
 +
//Global Vars
//Global Vars
var activePage;
var activePage;
Line 32: Line 33:
}
}
return kvmap;
return kvmap;
 +
}
 +
 +
function setHash(page, kvmap) {
 +
  var str = '#page=' + page;
 +
  var i;
 +
  for(i in kvmap) {
 +
    str += '&' + i + '=' + kvmap[i];
 +
  }
 +
  location.hash = str;
 +
}
 +
 +
function processPage()
 +
{
 +
$(window).trigger('page_init');
 +
rewriteLinks($("#load"));
}
}
Line 38: Line 54:
activePage = page;
activePage = page;
var url = wgServer + "/Team:TU_Delft/" + page + "?action=render";
var url = wgServer + "/Team:TU_Delft/" + page + "?action=render";
 +
$(window).trigger('page_close');
$("#load").fadeOut(200);
$("#load").fadeOut(200);
-
if (isDefined('page_init'))
 
-
delete page_init;
 
$.get(url, function(data) {
$.get(url, function(data) {
-
$("#load").html(data).fadeIn(200).queue(function() {
+
alert('page downloaded: ' + page);
-
if(isDefined('page_init')) page_init();
+
$("#load").html(data).fadeIn(200).queue(processPage);
-
rewriteLinks($("#load"));
+
-
});
+
});
});
}
}
Line 55: Line 68:
hash = hash.substring(1);
hash = hash.substring(1);
if(hash.split('=').length > 1) {
if(hash.split('=').length > 1) {
-
    var kvmap = splitHash(hash);
+
var kvmap = splitHash(hash);
-
if (kvmap.page && kvmap.page != activePage) {
+
var changepage;
-
loadPage(kvmap.page);
+
 
 +
// looks a little clumsy, but js AND operator conflicts with mediawiki markup
 +
if (kvmap.page) if(kvmap.page != activePage) changepage = kvmap.page;
 +
 
 +
if (changepage) {
 +
loadPage(changepage);
} else
} else
$(window).trigger('hashupdate', [ kvmap ]);
$(window).trigger('hashupdate', [ kvmap ]);

Revision as of 13:10, 24 July 2010

//Global Vars var activePage;

// Set document ready callback $(function() { // Initialize history plugin. $(window).hashchange(historyCallback); rewriteLinks($("#navlist"));

historyCallback();

// setup hovering $(".menu_button").hover( function () { $(this).addClass("hover"); }, function () { $(this).removeClass("hover"); } ); });


function isDefined(variable) {

   return typeof(window[variable]) != "undefined";

}

function splitHash(hash) { var kvpairs = hash.split('&'); var i; var kvmap = {}; for(i=0;i<kvpairs.length;i++) { var s = kvpairs[i].split('='); kvmap[s[0]] = s[1]; } return kvmap; }

function setHash(page, kvmap) {

 var str = '#page=' + page;
 var i;
 for(i in kvmap) {
   str += '&' + i + '=' + kvmap[i];
 }
 location.hash = str;

}

function processPage() { $(window).trigger('page_init'); rewriteLinks($("#load")); }

function loadPage(page) { activePage = page; var url = wgServer + "/Team:TU_Delft/" + page + "?action=render"; $(window).trigger('page_close'); $("#load").fadeOut(200);

$.get(url, function(data) { alert('page downloaded: ' + page); $("#load").html(data).fadeIn(200).queue(processPage); }); }

function historyCallback() { var hash = location.hash; if(hash) { hash = hash.substring(1); if(hash.split('=').length > 1) { var kvmap = splitHash(hash); var changepage;

// looks a little clumsy, but js AND operator conflicts with mediawiki markup if (kvmap.page) if(kvmap.page != activePage) changepage = kvmap.page;

if (changepage) { loadPage(changepage); } else $(window).trigger('hashupdate', [ kvmap ]); } } else { loadPage('pages/home'); } }


function rewriteLinks(elem) { $("a",elem).each(function() { var txt = $(this).text();

if(this.hash) this.href = this.hash; else if(txt != "edit") this.href = this.href.replace("https://2010.igem.org/Team:TU_Delft/", "#page="); }); }