//CHARGEMENT DE LA PAGE var isProcessing = false; function init_plugin_export(){ switch($.urlParam('page')){ case 'sheet': // export_exportmodel_list_dataset(); export_exportmodel_get_dataset($('#dataset')); break; default: break; } } //Init des settings function init_setting_export(parameter){ switch(parameter.section){ case 'export': break; } $('#exportmodels').sortable_table({ onSort : export_exportmodel_search }); } /* EXPORTMODELE */ //Récuperation d'une liste de exportmodel dans le tableau #exportmodels function export_exportmodel_search(callback){ $('#exportmodels').fill({ action:'export_exportmodel_search', filters : $('#filters').filters(), sort : $('#exportmodels').sortable_table('get') }, function(){ if(callback!=null) callback(); }); } //Ajout ou modification d'élément exportmodel function export_exportmodel_save(){ var data = $('#exportmodel-form').toJson(); $.action(data,function(r){ $('#exportmodel-form').attr('data-id',r.id); $('#document_temporary').val(''); $('#exportmodel-form [data-type="dropzone"] ul > li').attr('data-path', r.relativePath); $('#exportmodel-form [data-type="dropzone"] ul > li > a').attr('href', r.filePath); $('#exportmodel-form [data-type="dropzone"] ul > li > i.fa-times').attr('onclick', 'export_exportmodel_delete_document(this)'); $('.options-box').load(document.URL + ' .options-box>*'); $.message('success','Export modèle enregistré'); }); } //Récuperation ou edition d'élément exportmodel function export_exportmodel_edit(element){ var line = $(element).closest('tr'); $.action({ action:'export_exportmodel_edit', id:line.attr('data-id') },function(r){ $.setForm('#exportmodel-form',r); $('#exportmodel-form').attr('data-id',r.id); }); } //Suppression d'élement exportmodel function export_exportmodel_delete(element){ if(!confirm('Êtes-vous sûr de vouloir supprimer cet item ?')) return; var line = $(element).closest('tr'); $.action({ action : 'export_exportmodel_delete', id : line.attr('data-id') },function(r){ line.remove(); $.message('info','Export modèle supprimé'); }); } //Ajout de document function export_exportmodel_add_document(files){ var form = $('#exportmodel-form'); var exportmodelId = form.attr('data-id'); $.action({ action : 'export_exportmodel_add_document', id: exportmodelId, files : files, plugin: $('#plugin').val() }, function(r){ form.attr('data-id', r.id); $.each(r.files, function(i, file){ var line = $('li[data-path="'+file.oldPath+'"]', form); line.attr('data-path', file.relative); line.find('a').attr('href', file.url); line.find('i.pointer').attr('onclick', 'export_exportmodel_delete_document(this)'); $('[data-type="dropzone"] input:not(:visible)', form).val(''); $.message('success', 'Fichier "'+file.name+'" sauvegardé'); }); $('.options-box').load(document.URL + ' .options-box>*'); }); } //Suppression de document function export_exportmodel_delete_document(element){ if(!confirm("Êtes-vous sûr de vouloir supprimer ce fichier ?")) return; var line = $(element).closest('li'); $.action({ action : 'export_exportmodel_delete_document', path : line.attr('data-path') },function(r){ $('.options-box').load(document.URL + ' .options-box>*'); line.remove(); $.message('info','Élement supprimé'); }); } //Permet de récupérer les jeux de //données associés au plugin choisi function export_exportmodel_list_dataset(){ var parameters = { plugin: $('#plugin').val() } $.action({ action: 'export_exportmodel_list_dataset', params: parameters }, function(r){ var datasetSelect = $('#dataset'); var tpl = datasetSelect.find('option.hidden').get(0).outerHTML; datasetSelect.find('option:not(.template)').remove(); datasetSelect.val(''); $.each(r.rows, function(slug, dataset){ var option = $(Mustache.render(tpl, dataset)); option.removeClass('hidden template'); datasetSelect.find('option.hidden').before(option); }); export_exportmodel_get_dataset($('#dataset')); }); } //Récupération du jeu de données //associé à l'élément exportmodel function export_exportmodel_get_dataset(element){ var container = $('#dataset-container'); container.addClass('hidden'); $('#empty-files').removeClass('hidden'); $('li:not(.template)', container).remove(); var datasetSelect = $(element); var curVal = datasetSelect.val(); var pluginVal = $('#plugin').val(); if(!curVal || !pluginVal) return; var parameters = { dataset: curVal, plugin: pluginVal } $.action({ action: 'export_exportmodel_get_dataset', params: parameters }, function(r){ container.removeClass('hidden'); if(r.dataset){ var showcase = $('.dataset-showcase'); var tpl = $('li.hidden',showcase).get(0).outerHTML; $.each(r.dataset, function(macro, info){ var datas = { macro: (info.type == 'list')?'{{#'+macro+'}}{{/'+macro+'}}':'{{'+macro+'}}', description:info.desc, type:info.type, badge: (info.type == 'list')?'Liste':'Valeur' }; if(info.type == 'photo') datas.badge = 'Photo'; var li = $(Mustache.render(tpl, datas)); if(info.subitems) { var ul = $(''); $.each(info.subitems, function(tag, val){ var subDatas = { macro: '{{'+tag+'}}', description: val !== null && typeof val === 'object' ? val.desc : val, type: val.type ? val.type : 'value', badge: val.type == 'photo' ? 'Photo' : 'Valeur' }; var subLi = $(Mustache.render(tpl, subDatas)); subLi.removeClass('hidden template'); ul.append(subLi); }); li.append(ul); } li.removeClass('hidden template'); $('> ul', showcase).append(li); }); } if(r.files && r.files.length){ var exampleFiles = $('.dataset-example-files'); $('#empty-files').addClass('hidden'); var aTpl = $('li.hidden',exampleFiles).get(0).outerHTML; $.each(r.files, function(i, file){ var a = $(Mustache.render(aTpl, file)); a.removeClass('hidden template'); $('ul', exampleFiles).append(a); }); } }); } //Suppression de document function export_exportmodel_export(element){ if(isProcessing) return; var exportmodelId = $('#exportModel').val(); var parameters = $('#exportmodel-form').attr('data-parameters'); var url = window.location.href; var previousUrl = url.substring(url.lastIndexOf('/')+1); isProcessing = true; var exportUrl = 'action.php?action=export_exportmodel_export&exportmodel='; window.location = exportUrl+btoa(exportmodelId)+'¶ms='+btoa(parameters)+'&url='+btoa(previousUrl); isProcessing = false; }