Lines 149-155
Link Here
|
149 |
var message; |
149 |
var message; |
150 |
if ( type == 'success_on_update' ) { |
150 |
if ( type == 'success_on_update' ) { |
151 |
message = $('<div class="alert alert-info"></div>'); |
151 |
message = $('<div class="alert alert-info"></div>'); |
152 |
message.text(_("Entity %s (code %s) for lang %s has correctly been updated with '%s'").format(data.entity, data.code, data.lang, data.translation)); |
152 |
message.text(_("Entity %s (code %s) for lang %s has been updated with '%s'").format(data.entity, data.code, data.lang, data.translation)); |
153 |
} else if ( type == 'error_on_update' ) { |
153 |
} else if ( type == 'error_on_update' ) { |
154 |
message = $('<div class="alert alert-warning"></div>'); |
154 |
message = $('<div class="alert alert-warning"></div>'); |
155 |
if ( data.error_code == 'already_exists' ) { |
155 |
if ( data.error_code == 'already_exists' ) { |
Lines 252-283
Link Here
|
252 |
[% END %] |
252 |
[% END %] |
253 |
[% END %] |
253 |
[% END %] |
254 |
|
254 |
|
255 |
$("td.translation").on('focus', function(){ |
255 |
$("body").on('focus', "td.translation", function(){ |
256 |
$(this).css('background-color', ''); |
256 |
$(this).css('background-color', ''); |
257 |
}); |
257 |
}); |
258 |
$("td.lang").on('click', function(){ |
258 |
$("body").on('click', "td.lang", function(){ |
259 |
var td = this; |
259 |
var td = $(this); |
260 |
var lang = $(td).text(); |
260 |
var tr = td.parent(); |
261 |
$(td).css('background-color', ''); |
261 |
var id = tr.data('id'); |
262 |
var my_select = $(languages_select).clone(); |
262 |
var lang = td.text(); |
263 |
$(my_select).find('option[value="' + lang + '"]').attr('selected', 'selected'); |
263 |
td.css('background-color', ''); |
264 |
$(my_select).on('click', function(e){ |
264 |
var my_select = languages_select.clone(); |
|
|
265 |
my_select.find('option[value="' + lang + '"]').attr('selected', 'selected'); |
266 |
my_select.on('click', function(e){ |
265 |
e.stopPropagation(); |
267 |
e.stopPropagation(); |
266 |
}); |
268 |
}); |
267 |
$(my_select).on('change', function(){ |
269 |
var lang; |
268 |
var tr = $(this).parent().parent(); |
270 |
my_select.on('change', function(){ |
269 |
var id = $(tr).data('id'); |
271 |
lang = td.find('option:selected').val(); |
270 |
var lang = $(this).find('option:selected').val(); |
272 |
var translation = tr.find("td.translation").text(); |
271 |
var translation = $(this).text(); |
273 |
send_update_request( {id, lang, translation}, td[0] ); |
272 |
send_update_request( {id, lang, translation}, td ); |
|
|
273 |
}); |
274 |
}); |
274 |
$(my_select).on('blur', function(){ |
275 |
my_select.on('blur', function(){ |
275 |
$(td).html(lang); |
276 |
td.html(lang); |
276 |
}); |
277 |
}); |
277 |
$(this).html(my_select); |
278 |
td.html(my_select); |
278 |
}); |
279 |
}); |
279 |
|
280 |
|
280 |
$("td.translation").on('blur', function(){ |
281 |
$("body").on('blur', "td.translation", function(){ |
281 |
var tr = $(this).parent(); |
282 |
var tr = $(this).parent(); |
282 |
var id = $(tr).data('id'); |
283 |
var id = $(tr).data('id'); |
283 |
var lang = $(tr).find('td.lang').text(); |
284 |
var lang = $(tr).find('td.lang').text(); |
Lines 311-316
Link Here
|
311 |
} else { |
312 |
} else { |
312 |
var new_row = table_dt.row.add( [ success.id, success.entity, success.code, success.lang, success.translation, "<a href=\"#\" class=\"btn btn-default btn-xs delete\"><i class=\"fa fa-trash-can\"></i> Delete</a>" ] ).draw().node(); |
313 |
var new_row = table_dt.row.add( [ success.id, success.entity, success.code, success.lang, success.translation, "<a href=\"#\" class=\"btn btn-default btn-xs delete\"><i class=\"fa fa-trash-can\"></i> Delete</a>" ] ).draw().node(); |
313 |
$( new_row ).attr("id", "row_id_" + success.id ).data("id", success.id ); |
314 |
$( new_row ).attr("id", "row_id_" + success.id ).data("id", success.id ); |
|
|
315 |
/* Is there a better way to target contenteditable cells than by index? */ |
316 |
$( new_row.children[3] ).prop("contenteditable", true).addClass("lang") |
317 |
$( new_row.children[4] ).prop("contenteditable", true).addClass("translation") |
314 |
show_message({ type: 'success_on_insert', data: success }); |
318 |
show_message({ type: 'success_on_insert', data: success }); |
315 |
} |
319 |
} |
316 |
}, |
320 |
}, |
Lines 320-326
Link Here
|
320 |
} |
324 |
} |
321 |
); |
325 |
); |
322 |
}); |
326 |
}); |
323 |
|
|
|
324 |
}); |
327 |
}); |
325 |
</script> |
328 |
</script> |
326 |
[% END %] |
329 |
[% END %] |
327 |
- |
|
|