/*! AdIm - v0.0.0 - 2018-03-02 - Copyright (C) 2018 Université de Lausanne - see licence */
/*! AdIm - v0.0.0 - 2018-03-04 - Copyright (C) 2018 Université de Lausanne - see licence */
define('adim/io',["jquery","underscore","paper","signals","adim/config","adim/view"],function(a,b,c,d,e,f){function g(){}function h(b,c,d,f){b=parseInt(b,10);var g=!b;f=parseInt(f,10)||0;var h={item:c,order:f};if(d)for(var i in d)h[i]=d[i];var j,k=e.api.annotations;return g?(j="POST",a.extend(h,{annotable:e.annotable.id,owner:e.user.id,owner_id:e.user.id})):(j="PATCH",k+=b+"/"),a.ajax({url:k,type:j,dataType:"json",data:h}).done(function(a,b,c){201===c.status?m.annotationAdded.dispatch(a):200===c.status&&m.annotationSaved.dispatch(a)}).fail(function(a){m.loadingError.dispatch({msg:"Erreur lors de l'enregistrement d'une annotation",jqXHR:a})})}function i(b,c){var d=new FormData;return d.append("aid",b),d.append("file",c),a.ajax({type:"POST",url:e.annotable.thumbnail,data:d,processData:!1,contentType:!1}).done(function(a){})}function j(a){function c(a,c){e.push(a),e.length===f&&m.annotationsSavedStatusChanged.dispatch({status:b.every(e)?"saved":"error"})}for(var d,e=[],f=a.length,g=0;d=a[g];g++)h(d.id,d.itemStr,d.prop,d.index).done(function(a){return function(){c(!0,a)}}(d.id)).fail(function(a){return function(){c(!1,a)}}(d.id))}function k(b){a.ajax({url:e.api.annotations+parseInt(b,10)+"/",type:"DELETE",success:function(a,c,d){204===d.status&&m.annotationRemoved.dispatch(b)},error:function(a){404!==a.status&&m.loadingError.dispatch({msg:"Erreur lors de la suppression d'une annotation"})}})}function l(b,c){return a.ajax({url:e.api.annotables+parseInt(b,10)+"/",type:"PATCH",dataType:"json",data:{name:c},success:function(a){m.annotableChanged.dispatch(a)}})}var m={annotableLoaded:new d,annotableChanged:new d,annotationsLoaded:new d,loadingError:new d,annotationAdded:new d,annotationSaved:new d,annotationRemoved:new d,annotationsSavedStatusChanged:new d},n=!1;return{init:g,events:m,setAutoSave:function(a){return n=!!a},getAutoSave:function(){return n},loadData:function(b){console.time("loadData"),a.ajax({url:b,dataType:"json",success:function(a){console.timeEnd("loadData"),m.annotableLoaded.dispatch(a)},error:function(){m.loadingError.dispatch({msg:"Une erreur est survenue lors du chargement des données."})}})},loadSharedAnnotations:function(b){console.log("loadSharedAnnotations");var c=a.Deferred();return a.ajax({url:b,dataType:"json",success:function(a){c.resolve(a)},error:function(){var a={msg:"Une erreur est survenue lors du chargement des données."};m.loadingError.dispatch(a),c.reject(a)}}),c},saveUserAnnotations:function(a){a=a||e.user.id;var b=f.getUserAnnnotationsSerialized(a);return j(b),!0},saveAnnotations:function(a,b){if(!n&&!b)return!1;m.annotationsSavedStatusChanged.dispatch({status:"dirty"});var c=f.getAnnotationsSerialized(a);return j(c),!0},removeAnnotation:k,saveThumbnail:i,setAnnotableName:l}});
/*! AdIm - v0.0.0 - 2018-03-02 - Copyright (C) 2018 Université de Lausanne - see licence */
/*! AdIm - v0.0.0 - 2018-03-04 - Copyright (C) 2018 Université de Lausanne - see licence */