From 5211ec986347c985043aeeb8276ce73daaff2483 Mon Sep 17 00:00:00 2001 From: Jesse Weaver Date: Sun, 6 Sep 2009 23:00:59 -0600 Subject: [PATCH] Add basic client-side AJAX wrappers --- koha-tmpl/intranet-tmpl/prog/en/js/ajax.js | 84 ++++++++++++++++++ .../intranet-tmpl/prog/en/js/staff-global.js | 1 + .../intranet-tmpl/prog/img/spinner-small.gif | Bin 0 -> 1849 bytes 3 files changed, 85 insertions(+) create mode 100644 koha-tmpl/intranet-tmpl/prog/en/js/ajax.js create mode 100644 koha-tmpl/intranet-tmpl/prog/img/spinner-small.gif diff --git a/koha-tmpl/intranet-tmpl/prog/en/js/ajax.js b/koha-tmpl/intranet-tmpl/prog/en/js/ajax.js new file mode 100644 index 0000000000..95d59e77ab --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/en/js/ajax.js @@ -0,0 +1,84 @@ +if ( KOHA === undefined ) var KOHA = {}; + +KOHA.AJAX = { + Submit: function ( options ) { + var error_callback = options.error; + $.extend( options, { + cache: false, + dataType: 'json', + type: 'POST', + error: function ( xhr, stat, error ) { KOHA.AJAX.BaseError( error_callback, xhr, stat, error ) }, + } ); + $.ajax( options ); + }, + BaseError: function ( callback, xhr, stat, e ) { + KOHA.xhr = xhr; + if ( !xhr.getResponseHeader( 'content-type' ).match( 'application/json' ) ) { + // Something really failed + humanMsg.displayAlert( _( 'Internal Server Error, please reload the page' ) ); + return; + } + + var error = eval( '(' + xhr.responseText + ')' ); + + if ( error.type == 'auth' ) { + humanMsg.displayMsg( _( 'You need to log in again, your session has timed out' ) ); + } + + if ( callback ) { + callback( error ); + } else { + humanMsg.displayAlert( _( 'Error; your data might not have been saved' ) ); + } + }, + MarkRunning: function ( selector, text ) { + text = text || _( 'Loading...' ); + $( selector ) + .attr( 'disabled', 'disabled' ) + .each( function () { + var $image = $( '' ); + switch ( this.localName.toLowerCase() ) { + case 'input': + $( this ).data( 'original-text', this.value ); + this.value = text; + break; + case 'a': + $( this ) + .data( 'original-text', $( this ).text ) + .text( text ) + .before( $image ) + .bind( 'click.disabled', function () { return false; } ); + break; + case 'button': + $( this ) + .data( 'original-text', $( this ).text() ) + .text( text ) + .prepend( $image ); + break; + } + } ); + }, + MarkDone: function ( selector ) { + $( selector ) + .removeAttr( 'disabled' ) + .each( function () { + switch ( this.localName.toLowerCase() ) { + case 'input': + this.value = $( this ).data( 'original-text' ); + break; + case 'a': + $( this ) + .text( $( this ).data( 'original-text' ) ) + .unbind( 'click.disabled' ) + .prevAll( 'img.spinner' ).remove(); + break; + case 'button': + $( this ) + .text( $( this ).data( 'original-text' ) ) + .find( 'img.spinner' ).remove(); + break; + } + } ) + .removeData( 'original-text' ); + } +} diff --git a/koha-tmpl/intranet-tmpl/prog/en/js/staff-global.js b/koha-tmpl/intranet-tmpl/prog/en/js/staff-global.js index 7810beff77..c9b151c17e 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/js/staff-global.js +++ b/koha-tmpl/intranet-tmpl/prog/en/js/staff-global.js @@ -1,4 +1,5 @@ // staff-global.js +if ( KOHA === undefined ) var KOHA = {}; function _(s) { return s } // dummy function for gettext diff --git a/koha-tmpl/intranet-tmpl/prog/img/spinner-small.gif b/koha-tmpl/intranet-tmpl/prog/img/spinner-small.gif new file mode 100644 index 0000000000000000000000000000000000000000..9fb03395ae028dceb604ebd3641a43caa9fa22bf GIT binary patch literal 1849 zcma*odr(tX9tZI2z31lM+(&Y_A`Ou`mk=}wi3zU|#p+D}L0}Q6Ld!!EF|470fr_wg zMDjog@>HsekE$)(qF@X7nB8tcjLc~5xGS^H?y$R^(GKfq>vmyxJF7F@N5UWbS9WI4 zpXV{>GvD9&&B@-e-L%OD5s3U9L7qH$f*{Dk!h*}?x_9s1wr$%Q8XAH#J9qBndH&3q zGvnjq9LM$c_F@=jFc|ji*%Ms-|3~b<>4L0XuV}k!=(kg8+8!IuawueR2=+~VnP&0} zGwhk_o?D)kMCiw&tQS#O3dUf}VbJI|asmq_v)oM@fij=BTQulpmRcU5a#2hIWz z*m(0R-_bWCYx*KUK3b)~aLP#~TfC)i00G@q>B<+e6~^Q5y52c$I+s?S7M9W)qAV~$ z3dkh06lDKYx6eD9)TAAIjm#*mrepXcS<`1`0Yzhm?G&ZPWZ>?I*vI1^t$s3 zdG}-Me4*;3k@P;ka8ACoTmJ(uCTWcp_|yPXCFm;^bvrxsM>XcR29KQRrt^k+x+~3X zM&kuz*j(yXN+b*Aq9E@quM1K-*V4@N41(!?Yck{j&NJEmT0#0n=E1#)UB0a658!mv zCu_cITm$7#NB%r%f1mkg_kp~ms?xH*e$`Xrzm{10<5FN34mRiL^)1$I9sZiOxa0nl z#-S5&VF7I+z%R5xfJZ@km*sOB>S#LSEWR3#`X=HGqLI_qi~Ov7!|m!})kqXJlq(1^ z>u$bs>pB-H*C*a`U@5RGV4W_xBKHH#^7Tv!kh0B(eTr&=z-027fBi#eW35ou z@v;BqXAwN(`%AoV1wg!IyiCnQpR*2AQT?6nhgbSYvhn+7&FUzEC|+MJf?~o-NY!c; zLtw<)N2+oMK-bo)3JI}6l3kxh_9(+^RvLOmgKD(Lc-5R{M)iXwwVX?ot(xM0RyOsU z9k%_kqU=+b?X9wRrk>{-y6iWNvjL&RwR;Q)%PF7T$gH30h*wJPpZV4)V<>S2foCIF zt60n)MuY_50t|yniPsV+BJqSyoMlTz>(t>bE6J$OE{?vx!F)FF((z9p{k~WG!Hs`P zzzKg=g{sbb_R{+FRKE8SOyx5DbJ6XFr|YgJdu-zd9d~Taz;#`WWd7BQv$7%3ciZdC zNr{Abi5SMS4vfI0Qp#CgtZ<3Z9+Z>}#!9C~cj zaGtiEPXFDp2NSE_G`aU$Q=T=9tfK>?mc58)?=M?pW^nD~t%niOGlLfzj|?A zCFY2`(-W`qfF?!p)K-jONt|Y=Bn=>>Xg4a7IyAIckK>!+aDo!U4u#h=hhEK!rmp<5 z@-a1)3meNn3^X#y!`7nm7n0P~?iZV*CEf2WfgNwe8fKf!nI;*NacFGdi%9&BIfXTj zh?zwPQZxkmz2-u}xfW)K*!WC@Efhf@ElM#mco4%nsvRgK3u+B5tWO=jrT$x`jZEXr zD5cFt=}&SY(xmz{CU?NZkewMzi<*e;&ZCxV+F^NL$2aR`Tc{3q&$T~9bNeTm(l#CZ ze9$_t6*HYDzaNolpKrxbC`zYTQ*pr-Esb@+Es49Nuu_ClKdlCXr#7&SZz(Auq)88b HL@VPzU#kpc literal 0 HcmV?d00001 -- 2.20.1