@@ -152,7 +152,7 @@ activate_autocompletes = function(element){
152152 }
153153 } ) ;
154154 } ) ;
155- }
155+ } ;
156156
157157Event . observe ( window , 'load' , function ( ) {
158158 activate_links ( $$ ( 'body' ) [ 0 ] ) ;
@@ -243,15 +243,15 @@ function update_languages(languages) {
243243 $ ( 'lexeme_dictionary_ids' ) . enable ( ) ;
244244 update_add_links ( ) ;
245245 $$ ( ".translatable" ) . each ( function ( content ) {
246- oldlangs = content . down ( '.language-content' ) . childElements ( ) . invoke ( 'identify' ) . invoke ( 'gsub' , / . * _ / , ' ') ;
246+ oldlangs = content . down ( '.language-content' ) . childElements ( ) . invoke ( 'readAttribute' , 'data-language ') ;
247247 langtype = content . readAttribute ( "data-languages" ) ;
248248 langtabs = content . down ( '.language-list ul' ) ;
249249 // go through each language in the languages for the appropriate language class
250250 languages [ langtype ] . each ( function ( language ) {
251251 // if an existing div is in the languages, keep it (moving it to the appropriate position); if it's not, flag it as not to be saved (if content) or remove it (if not)
252- if ( oldlangs . include ( language . code ) ) {
252+ if ( oldlangs . include ( language . underscore_code ) ) {
253253 // old field and tab
254- oldfield = content . down ( 'input[id$=_' + language . code + '],textarea[id$=_ '+ language . code + ']' ) ;
254+ oldfield = content . down ( '[data- language= ' + language . underscore_code + ']' ) ;
255255 oldtab_index = oldfield . up ( ) . childElements ( ) . indexOf ( oldfield ) + 1 ;
256256 oldtab = content . down ( 'li' , oldtab_index ) ;
257257
@@ -266,33 +266,34 @@ function update_languages(languages) {
266266 // if it's in the languages and doesn't already have a field, duplicate, blanken, re-ID, and add it in its place
267267 oldfield = content . down ( 'input,textarea' ) ;
268268 oldtab = content . down ( 'li' , 1 ) ;
269+ oldlang = oldfield . readAttribute ( 'data-language' ) ;
269270
270271 newfield = oldfield . up ( ) . appendChild ( oldfield . clone ( true ) ) ;
271- newfield . id = oldfield . identify ( ) . replace ( / ( .+ _ ) .+ $ / , "$1" + language . code ) ;
272- newfield . name = oldfield . name . replace ( / ( .+ _ ) .* ?\] $ / , "$1" + language . code + "]" ) ;
272+ posindex = oldfield . identify ( ) . lastIndexOf ( oldlang ) ;
273+ newfield . id = oldfield . identify ( ) . substring ( 0 , posindex ) + language . underscore_code + oldfield . identify ( ) . substring ( 0 , posindex + oldlang . length )
274+ // newfield.id = oldfield.identify().replace(/(.+_).+$/, "$1"+language.underscore_code);
275+ posindex = oldfield . name . lastIndexOf ( oldlang ) ;
276+ newfield . name = oldfield . name . substring ( 0 , posindex ) + language . underscore_code + oldfield . name . substring ( 0 , posindex + oldlang . length )
277+ // newfield.name = oldfield.name.replace(/(.+_).*?\]$/, "$1"+language.underscore_code+"]");
273278 newfield . clear ( ) ;
274279 newtab = oldtab . up ( ) . appendChild ( oldtab . clone ( true ) ) ;
275280 newtab . innerHTML = language . tab ;
276281 newtab . removeClassName ( 'warning' ) ;
277282 newtab . removeClassName ( 'default' ) ;
283+ newfield . writeAttribute ( 'data-language' , language . underscore_code ) ;
278284 Effect . Appear ( newtab , { duration : 0.25 } ) ;
279285 }
280286 } ) ;
281287
282- dropped_languages = oldlangs . without . apply ( oldlangs , languages [ langtype ] . collect ( function ( lang ) { return lang . code } ) ) ;
288+ dropped_languages = oldlangs . without . apply ( oldlangs , languages [ langtype ] . collect ( function ( lang ) { return lang . underscore_code } ) ) ;
283289 dropped_languages . each ( function ( language ) {
284- oldfield = content . down ( 'input[id$=_' + language + '],textarea[id$=_ '+ language + ']' ) ;
290+ oldfield = content . down ( '[data- language= ' + language + ']' ) ;
285291 oldtab_index = oldfield . up ( ) . childElements ( ) . indexOf ( oldfield ) + 1 ;
286292 oldtab = content . down ( 'li' , oldtab_index ) ;
287293
288- if ( $F ( oldfield ) == "" ) {
289- oldfield . remove ( ) ;
290- oldtab . remove ( ) ;
291- } else {
292-
293294 // if droppable is DEFAULT then add its content to any blank, then remove.
294- if ( oldtab . hasClassName ( 'default' ) ) {
295- clean_defaults ( content , oldfield , oldtab ) ;
295+ if ( oldtab . hasClassName ( 'default' ) ) {
296+ clean_defaults ( content , oldfield , oldtab ) ;
296297
297298// newfields = content.select('input,textarea');
298299// newfields.each(function(newfield) {
@@ -301,15 +302,14 @@ function update_languages(languages) {
301302// oldfield.remove();
302303// oldtab.remove();
303304
304- } else {
305- oldfield . enable ( ) ;
306- oldtab . addClassName ( 'warning' ) ;
305+ }
306+
307+ oldfield . enable ( ) ;
308+ oldtab . addClassName ( 'warning' ) ;
307309
308- oldfield . up ( ) . appendChild ( oldfield ) ;
309- oldtab . up ( ) . appendChild ( oldtab ) ;
310- Effect . Appear ( oldtab , { duration : 0.25 } ) ;
311- }
312- }
310+ oldfield . up ( ) . appendChild ( oldfield ) ;
311+ oldtab . up ( ) . appendChild ( oldtab ) ;
312+ Effect . Appear ( oldtab , { duration : 0.25 } ) ;
313313 } ) ;
314314
315315 // deselect all tabs
@@ -335,12 +335,13 @@ function update_add_links(){
335335 } ) ;
336336} ;
337337
338- // if a language is DEFAULT (old db style, or new lexeme) then add its content to any blank, then remove .
338+ // if a language is DEFAULT (old db style, or new lexeme) then add its content to any blank.
339339function clean_defaults ( content , oldfield , oldtab ) {
340340 newfields = content . select ( 'input,textarea' ) ;
341341 newfields . each ( function ( newfield ) {
342342 if ( newfield . getValue ( ) == "" ) { newfield . setValue ( $F ( oldfield ) ) ; }
343343 } ) ;
344- oldfield . remove ( ) ;
345- oldtab . remove ( ) ;
344+ oldfield . setValue ( "" ) ;
345+ //oldfield.remove();
346+ //oldtab.remove();
346347}
0 commit comments