diff --git a/inc/myco.js b/inc/myco.js
index c177b4d..94fb659 100644
--- a/inc/myco.js
+++ b/inc/myco.js
@@ -887,6 +887,68 @@ on_click_sync_btn=function(e) {
}
}
+/**************************
+ * Export/Import all
+ **************************/
+
+on_export_all_btn_click=function(e) {
+ e.preventDefault();
+ navbar_collapse_hide();
+ var blob=new Blob([JSON.stringify(groups.export(),null,2)],{type: 'text/plain'});
+ var a=$('download');
+ a.attr('href',window.URL.createObjectURL(blob));
+ a.css('display','none');
+ $('body').append(a);
+ a[0].click();
+ a.remove();
+}
+
+on_import_all_btn_click=function(e) {
+ e.preventDefault();
+ navbar_collapse_hide();
+ myconfirm(
+ "Voulez-vous vraiment inporter des données à partir d'un fichier externe ?
Important : cela écrasera l'ensemble des données actuellement présente dans l'application.');
+ input.css('display','none');
+ $('body').append(input);
+ input[0].click();
+ input.bind('change',{'input': input},function(e) {
+ pleaseWaitShow();
+ var file=input.prop('files')[0];
+ if (file) {
+ var reader = new FileReader();
+ $(reader).bind('load',function(e) {
+ try {
+ var data=JSON.parse(e.target.result);
+ if (jQuery.type(data)!='object') {
+ alert("Fichier invalide !");
+ pleaseWaitHide();
+ }
+ else {
+ var backup=groups.export();
+ try {
+ groups.import(data);
+ groups.save();
+ view_home();
+ }
+ catch(e) {
+ groups.import(backup);
+ alert("Une erreur est survenue durant l'importation des données.");
+ }
+ }
+ }
+ catch(e) {
+ alert("Une erreur est survenue durant le parsing du contenu du fichier.");
+ }
+ pleaseWaitHide();
+ });
+ reader.readAsText(file);
+ }
+ });
+ });
+}
+
/*
* User menu
*/
@@ -1084,6 +1146,9 @@ $( document ).ready( function() {
$('#view-group-categories span.input-group-addon').bind('click',on_categories_group_add_btn_click);
$('#view-group-categories form').bind('submit',on_categories_group_add_btn_click);
$("#view-group-categories button.go-back-group").bind('click',on_categories_go_back_group_btn_click);
+
+ $('#export_all_btn').bind('click',on_export_all_btn_click);
+ $('#import_all_btn').bind('click',on_import_all_btn_click);
view_home();
pleaseWaitHide();
diff --git a/index.html b/index.html
index 2ff8af6..6eaa50a 100644
--- a/index.html
+++ b/index.html
@@ -172,10 +172,13 @@ span.cat-color {