|
@@ -871,6 +871,58 @@ on_confirm_clear_local_data=function(data) {
|
|
|
location.reload();
|
|
|
}
|
|
|
|
|
|
+/*******************************
|
|
|
+ * Import/Export local data
|
|
|
+ *******************************/
|
|
|
+export_local_data=function() {
|
|
|
+ navbar_collapse_hide();
|
|
|
+ $('#export_local_data').attr('href','data:application/json;base64,' + btoa(JSON.stringify(scases.export())));
|
|
|
+}
|
|
|
+
|
|
|
+import_local_data=function() {
|
|
|
+ navbar_collapse_hide();
|
|
|
+ var input=$('<input type="file" accept="application/json">');
|
|
|
+ input.css('display', 'none');
|
|
|
+ input.bind('change',{'input': input},function(e) {
|
|
|
+ pleaseWaitShow();
|
|
|
+ var input=e.data.input;
|
|
|
+ var file=input.prop('files')[0];
|
|
|
+ if (file) {
|
|
|
+ var reader = new FileReader();
|
|
|
+ $(reader).bind('load',function(e) {
|
|
|
+ if ($.type(e.target.result)=='string') {
|
|
|
+ if (e.target.result.startsWith('data:application/json;base64,')) {
|
|
|
+ try {
|
|
|
+ json_data=atob(e.target.result.replace('data:application/json;base64,',''));
|
|
|
+ data=JSON.parse(json_data);
|
|
|
+ pleaseWaitHide();
|
|
|
+ myconfirm('Etes-vous sûre de vouloir écraser vos données locales par celle issues de ce fichier ?',function() {
|
|
|
+ scases.save();
|
|
|
+ var backData=localStorage.scases;
|
|
|
+ localStorage.scases=json_data;
|
|
|
+ scases=new SCaseList();
|
|
|
+ scases.loadFromLocalStorage(backData);
|
|
|
+ show_scases();
|
|
|
+ });
|
|
|
+ }
|
|
|
+ catch (e) {
|
|
|
+ alert('Impossible de décodé le fichier.');
|
|
|
+ pleaseWaitHide();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ alert('Fichier invalide.');
|
|
|
+ pleaseWaitHide();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ reader.readAsDataURL(file);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ $('body').append(input);
|
|
|
+ input[0].click();
|
|
|
+}
|
|
|
+
|
|
|
/*********************
|
|
|
* Activate
|
|
|
*********************/
|
|
@@ -888,6 +940,8 @@ $( document ).ready( function() {
|
|
|
}
|
|
|
|
|
|
$('#clear_local_data').bind('click',clear_local_data);
|
|
|
+ $('#import_local_data').bind('click',import_local_data);
|
|
|
+ $('#export_local_data').bind('click',export_local_data);
|
|
|
|
|
|
$('#add_scase_btn').bind('click',on_add_scase_btn_click);
|
|
|
$('#add_scase_submit').bind('click',on_valid_add_scase_modal);
|