Owen Leonard
22ff2118a7
This patch removes the definition of translatable strings out of templates and into the corresponding JavaScript file, using the new JS i81n function. To test (a non-comprehensive list): - Apply the patch, go to Administration -> System preference - Modify any system preference. "modified" should appear next to the preference name. - Click the "Save" button. You should get a message, "Saved preference <pref name>" - Hover your mouse over a section heading (e.g. "Features" under Accounting). You should see a tooltip, "Click to collapse this section." - Click to collapse the section. The tooltip should change to "Click to expand the section." - Open a new tab for the staff interface and log out. - In the original tab, modify and try to save a system preference. You should get a message, "Error; your data might not have been saved." TESTING TRANSLATABILITY - Update a translation, e.g. fr-FR: > cd misc/translator > perl translate update fr-FR - Open the corresponding .po file for JavaScript strings, e.g. misc/translator/po/fr-FR-messages-js.po - Locate strings pulled from koha-tmpl/intranet-tmpl/prog/js/pages/preferences.js for translation, e.g.: msgid "Saved preference %s" msgstr "" - Edit the "msgstr" string however you want (it's just for testing). - Install the updated translation: > perl translate install fr-FR - Switch to your newly translated language in the staff client and repeat the test plan above. The translated strings should appear. Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
88 lines
3.4 KiB
JavaScript
88 lines
3.4 KiB
JavaScript
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 )
|
|
.prop('disabled', true)
|
|
.each( function () {
|
|
var $spinner = $( '<span class="loading"></span>' );
|
|
var selector_type = this.localName;
|
|
if (selector_type === undefined) selector_type = this.nodeName; // IE only
|
|
switch ( selector_type.toLowerCase() ) {
|
|
case 'input':
|
|
$( this ).data( 'original-text', this.value );
|
|
this.value = text;
|
|
break;
|
|
case 'a':
|
|
$( this )
|
|
.data( 'original-text', $( this ).text )
|
|
.text( text )
|
|
.before( $spinner )
|
|
.bind( 'click.disabled', function () { return false; } );
|
|
break;
|
|
case 'button':
|
|
$( this )
|
|
.data( 'original-text', $( this ).text() )
|
|
.text( text )
|
|
.prepend( $spinner );
|
|
break;
|
|
}
|
|
} );
|
|
},
|
|
MarkDone: function ( selector ) {
|
|
$( selector )
|
|
.prop('disabled', false)
|
|
.each( function () {
|
|
var selector_type = this.localName;
|
|
if (selector_type === undefined) selector_type = this.nodeName; // IE only
|
|
switch ( selector_type.toLowerCase() ) {
|
|
case 'input':
|
|
this.value = $( this ).data( 'original-text' );
|
|
break;
|
|
case 'a':
|
|
$( this )
|
|
.text( $( this ).data( 'original-text' ) )
|
|
.unbind( 'click.disabled' )
|
|
.prevAll( 'span.loading' ).remove();
|
|
break;
|
|
case 'button':
|
|
$( this )
|
|
.text( $( this ).data( 'original-text' ) )
|
|
.find( 'span.loading' ).remove();
|
|
break;
|
|
}
|
|
} )
|
|
.removeData( 'original-text' );
|
|
}
|
|
};
|