Developers, the below email is most relevant for developers of SF and SRF (slideshow). It may also be of general interest to developers using sajax in private code.
Cheers, Markus -------- Original Message -------- Subject: [Wikitech-l] Call to eliminate sajax Date: Wed, 03 Oct 2012 10:18:48 -0700 From: Daniel Friesen <dan...@nadir-seen-fire.com> Reply-To: Wikimedia developers <wikitec...@lists.wikimedia.org> To: wikitec...@lists.wikimedia.org sajax is an ancient ajax library, it's part of our legacy code. And it still gets to sneak a license note into our README. It's probably about time that we start making sure that code is ready for the day it disappears. Just as code shouldn't be relying on bits and pieces of wikibits. Currently the only parts of core that depend on sajax are the legacy mwsuggest and upload.js. mwsuggest is going to disappear when Krinkle's work making simplesearch's suggestions work universally is finished. I'm not sure what's going on with upload.js. The real problem however is extensions. For some reason it appears that we STILL have extensions depending on sajax. And I'm not talking about ancient extensions on the wiki or in svn. I only did an ack through stuff that's currently in git. So I welcome anyone who is interested in going through extension code and eliminating the use of sajax in favor of jQuery.ajax and RL. core/skins/common/ajax.js 3:window.sajax_debug_mode = false; 4:window.sajax_request_type = 'GET'; 7: * if sajax_debug_mode is true, this function outputs given the message into 8: * the element with id = sajax_debug; if no such element exists in the document, 11:window.sajax_debug = function(text) { 12: if (!sajax_debug_mode) return false; 14: var e = document.getElementById( 'sajax_debug' ); 18: e.className = 'sajax_debug'; 19: e.id = 'sajax_debug'; 41:window.sajax_init_object = function() { 42: sajax_debug( 'sajax_init_object() called..' ); 61: sajax_debug( 'Could not create connection object.' ); 77: * sajax_do_call( 'doFoo', [1, 2, 3], document.getElementById( 'showFoo' ) ); 83:window.sajax_do_call = function(func_name, args, target) { 88: if ( sajax_request_type == 'GET' ) { 105: x = sajax_init_object(); 112: x.open( sajax_request_type, uri, true ); 119: if ( sajax_request_type == 'POST' ) { 130: sajax_debug( 'received (' + x.status + ' ' + x.statusText + ') ' + x.responseText ); 153: alert( 'bad target for sajax_do_call: not a function or object: ' + target ); 157: sajax_debug( func_name + ' uri = ' + uri + ' / post = ' + post_data ); 159: sajax_debug( func_name + ' waiting..' ); 169: var request = sajax_init_object(); core/skins/common/mwsuggest.js 489: var xmlhttp = sajax_init_object(); core/skins/common/upload.js 99: if ( !ajaxUploadDestCheck || !sajax_init_object() ) return; 124: if ( !ajaxUploadDestCheck || !sajax_init_object() ) return; 133: if ( !ajaxUploadDestCheck || !sajax_init_object() ) return; 141: sajax_do_call( 'SpecialUpload::ajaxGetExistsWarning', [this.nameToCheck], 287: var req = sajax_init_object(); extensions/CommunityVoice/Resources/CommunityVoice.js 100: var oldRequestType = sajax_request_type; 102: sajax_request_type = "POST"; 104: sajax_do_call( 114: sajax_request_type = oldRequestType; extensions/DonationInterface/modules/validate_input.js 14: sajax_do_call( 'efPayflowGatewayCheckSession', [], checkSession ); extensions/Drafts/Drafts.js 76: var oldRequestType = sajax_request_type; 78: sajax_request_type = 'POST'; 80: sajax_do_call( 98: sajax_request_type = oldRequestType; extensions/OnlineStatus/OnlineStatus.js 35: sajax_do_call( 'OnlineStatus::Ajax', ['get'], function( x ){ 71: sajax_do_call( 'OnlineStatus::Ajax', ['set', status], function( x ){ extensions/ReaderFeedback/readerfeedback.js 36: /*extern sajax_init_object, sajax_do_call */ 92: sajax_do_call( "ReaderFeedbackPage::AjaxReview", args, wgAjaxFeedback.processResult ); extensions/SecurePoll/resources/SecurePoll.js 95: sajax_do_call( 'wfSecurePollStrike', [ action, id, reason ], processResult ); extensions/SemanticForms/includes/SF_FormUtils.php 450:function FCK_sajax(func_name, args, target) { 451: sajax_request_type = 'POST' ; 452: sajax_do_call(func_name, args, function (x) { 716: sajax_request_type = 'POST' ; 718: sajax_do_call('wfSajaxWikiToHTML', [SRCtextarea.value], function ( result ){ 736: if (!oFCKeditor.ready) return false; //sajax_do_call in action 754: sajax_request_type = 'GET' ; 755: sajax_do_call( 'wfSajaxToggleFCKeditor', ['hide'], function(){} ) ; //remember closing in session extensions/SemanticForms/libs/SF_ajax_form_preview.js 43: var aj = sajax_init_object(); 44: var aj2 = sajax_init_object(); 70: // if (!oFCKeditor.ready) return false; //sajax_do_call in action - what do we do? extensions/SemanticForms/libs/SF_autoedit.js 35: sajax_request_type = 'POST'; 37: sajax_do_call( 'SFAutoeditAPI::handleAutoEdit', data, function( ajaxHeader ){ extensions/SemanticForms/libs/SF_submit.js 55: sajax_request_type = 'POST'; 58: sajax_do_call( 'SFAutoeditAPI::handleAutoEdit', new Array(collectData( form ), false), function( ajaxHeader ){ extensions/SemanticResultFormats/formats/slideshow/resources/ext.srf.slideshow.js 415: sajax_request_type = 'POST'; 418: sajax_do_call( 'SRFSlideShow::handleGetResult', [ results[index][0], template, printrequests ], function( ajaxHeader ){ -- ~Daniel Friesen (Dantman, Nadir-Seen-Fire) [http://daniel.friesen.name] _______________________________________________ Wikitech-l mailing list wikitec...@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l ------------------------------------------------------------------------------ Don't let slow site performance ruin your business. Deploy New Relic APM Deploy New Relic app performance management and know exactly what is happening inside your Ruby, Python, PHP, Java, and .NET app Try New Relic at no cost today and get our sweet Data Nerd shirt too! http://p.sf.net/sfu/newrelic-dev2dev _______________________________________________ Semediawiki-devel mailing list Semediawiki-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/semediawiki-devel