# HG changeset patch
# User Dan
# Date 1184032887 14400
# Node ID b354deeaa4c4b0a6e40c6238fe3e51ef7f7aa4a5
# Parent eb8eacb056d1729e573c0e2e1034aae5f5ff0129
Vastly improved compatibility with older versions of IE, particularly 5.0, through the use of a kill switch that turns off all AJAX functions
diff -r eb8eacb056d1 -r b354deeaa4c4 includes/clientside/static/ajax.js
--- a/includes/clientside/static/ajax.js Mon Jul 09 15:30:22 2007 -0400
+++ b/includes/clientside/static/ajax.js Mon Jul 09 22:01:27 2007 -0400
@@ -51,7 +51,11 @@
// Page editor
-function ajaxEditor() {
+function ajaxEditor()
+{
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
setAjaxLoading();
ajaxGet(stdAjaxPrefix+'&_mode=getsource', function() {
if(ajax.readyState == 4) {
@@ -106,7 +110,11 @@
$('switcher').object.innerHTML = 'wikitext editor | graphical editor';
}
-function ajaxViewSource() {
+function ajaxViewSource()
+{
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
setAjaxLoading();
ajaxGet(stdAjaxPrefix+'&_mode=getsource', function() {
if(ajax.readyState == 4) {
@@ -135,6 +143,9 @@
function ajaxShowPreview()
{
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
goBusy('Loading preview...');
var text = ajaxEscape($('ajaxEditArea').getContent());
if(document.mdgAjaxEditor.minor.checked) minor='&minor';
@@ -148,7 +159,11 @@
});
}
-function ajaxSavePage() {
+function ajaxSavePage()
+{
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
goBusy('Saving page...');
var text = ajaxEscape($('ajaxEditArea').getContent());
if(document.mdgAjaxEditor.minor.checked) minor='&minor';
@@ -164,13 +179,21 @@
});
}
-function ajaxDiscard() {
+function ajaxDiscard()
+{
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
c = confirm('Do you really want to discard your changes?');
if(!c) return;
ajaxReset();
}
-function ajaxReset() {
+function ajaxReset()
+{
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
enableUnload();
setAjaxLoading();
ajaxGet(stdAjaxPrefix+'&_mode=getpage&noheaders', function() {
@@ -187,6 +210,9 @@
// Miscellaneous AJAX applets
function ajaxProtect(l) {
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
if(shift) {
r = 'NO_REASON';
} else {
@@ -207,7 +233,11 @@
});
}
-function ajaxRename() {
+function ajaxRename()
+{
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
r = prompt('What title should this page be renamed to?\nNote: This does not and will never change the URL of this page, that must be done from the admin panel.');
if(!r || r=='') return;
setAjaxLoading();
@@ -219,7 +249,11 @@
});
}
-function ajaxMakePage() {
+function ajaxMakePage()
+{
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
setAjaxLoading();
ajaxPost(ENANO_SPECIAL_CREATEPAGE, ENANO_CREATEPAGE_PARAMS, function() {
if(ajax.readyState == 4) {
@@ -229,7 +263,11 @@
});
}
-function ajaxDeletePage() {
+function ajaxDeletePage()
+{
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
var reason = prompt('Please enter your reason for deleting this page.');
if ( !reason || reason == '' )
{
@@ -250,7 +288,11 @@
});
}
-function ajaxDelVote() {
+function ajaxDelVote()
+{
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
c = confirm('Are you sure that you want to vote that this page be deleted?');
if(!c) return;
setAjaxLoading();
@@ -262,7 +304,11 @@
});
}
-function ajaxResetDelVotes() {
+function ajaxResetDelVotes()
+{
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
c = confirm('This will reset the number of votes against this page to zero. Do you really want to do this?');
if(!c) return;
setAjaxLoading();
@@ -281,6 +327,9 @@
}
function ajaxSetWikiMode(val) {
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
setAjaxLoading();
document.getElementById('wikibtn_0').style.textDecoration = 'none';
document.getElementById('wikibtn_1').style.textDecoration = 'none';
@@ -301,7 +350,11 @@
// This was not easy to write, I hope enjoy it, and dang I swear I'm gonna
// find someone to work on just the Javascript part of Enano...
-function ajaxCatEdit() {
+function ajaxCatEdit()
+{
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
setAjaxLoading();
ajaxGet(stdAjaxPrefix+'&_mode=catedit', function() {
if(ajax.readyState == 4) {
@@ -314,6 +367,9 @@
function ajaxCatSave()
{
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
if(!catlist)
{
alert('Var catlist has no properties');
@@ -340,7 +396,11 @@
// History stuff
-function ajaxHistory() {
+function ajaxHistory()
+{
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
setAjaxLoading();
ajaxGet(stdAjaxPrefix+'&_mode=histlist', function() {
if(ajax.readyState == 4) {
@@ -355,6 +415,9 @@
}
function ajaxHistView(oldid, tit) {
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
if(!tit) tit=title;
setAjaxLoading();
ajaxGet(append_sid(scriptPath+'/ajax.php?title='+tit+'&_mode=getpage&oldid='+oldid), function() {
@@ -367,6 +430,9 @@
}
function ajaxRollback(id) {
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
setAjaxLoading();
ajaxGet(stdAjaxPrefix+'&_mode=rollback&id='+id, function() {
if(ajax.readyState == 4) {
@@ -376,7 +442,11 @@
});
}
-function ajaxClearLogs() {
+function ajaxClearLogs()
+{
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
c = confirm('You are about to DESTROY all log entries for this page. As opposed to (example) deleting this page, this action is completely IRREVERSIBLE and should not be used except in dire circumstances. Do you REALLY want to do this?');
if(!c) return;
c = confirm('You\'re ABSOLUTELY sure???');
@@ -450,6 +520,9 @@
function ajaxHistDiff()
{
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
var id1=false;
var id2=false;
for ( i = 0; i < arrDiff1Buttons.length; i++ )
@@ -476,6 +549,9 @@
function ajaxChangeStyle()
{
+ // IE <6 pseudo-compatibility
+ if ( KILL_SWITCH )
+ return true;
var inner_html = '';
inner_html += '