// JavaScript Document
jQuery.fn.async_upload = function(add_function) {
return this.ajaxForm({
beforeSubmit:async_upload_before_submit,
success:add_function,
iframe:true
});
}
// Safari plante quand on utilise clone() -> on utilise html()
// Mais FF a un bug sur les urls contenant ~ quand on utilise html() -> on utilise clone()
jQuery.fn.clone2 = jQuery.browser.mozilla ? jQuery.fn.clone : jQuery.fn.html;
var iframeHandler = function(data,jForm,success) {
//remove the previous message
jQuery("div.upload_message",$(jForm).parent()).remove();
var res = jQuery(data).filter(".upload_answer");
//possible classes
//upload_document_added
if(res.is(".upload_document_added")) {
return res;
}
//upload_error
if(res.is(".upload_error")) {
var msg = jQuery("
").append(ajax_image_searching)[0]);
//if not present add the iframe input
if(!form.find("input[name=iframe]").length)
form.append("");
//reset the redirect input
form
.find("input[name='redirect']")
.val("");
};
function async_upload_article_edit(res,s,jForm){
res = iframeHandler(res,jForm,async_upload_article_edit);
if(!res) return true;
var cont;
//verify if a new document or a customized vignette
var bloc = jQuery(res.find(">div:first[id^=document]"));
if(jQuery("#"+bloc.attr('id')).size()) {
cont = jQuery("#"+bloc.attr('id')).html(bloc.html());
} else {
//add a class to new documents
res.
find(">div[class]")
.addClass("documents_added")
.css("display","none");
if (jForm.find("input[name='arg']").val().search("/0/image")!=-1){
cont = jQuery("#liste_images");
// cas de l'interface document unifiee
if (!cont.length)
cont = jQuery("#liste_documents");
}
else
cont = jQuery("#liste_documents");
cont
.prepend(res.clone2());
//find added documents, remove label and show them nicely
cont = cont.
find("div.documents_added")
.removeClass("documents_added")
.show("slow",function(){
var anim = jQuery(this).css("height","");
//bug explorer-opera-safari
if(!jQuery.browser.mozilla)
anim.css('width', jQuery(this).width()-2);
a = jQuery(anim).find("img[onclick]")
if (a.length) a.get(0).onclick();
})
.css('overflow','');
}
jQuery("form.form_upload",cont).async_upload(async_upload_article_edit);
verifForm(cont);
return true;
}
function async_upload_icon(res,s,jForm) {
res = iframeHandler(res,jForm);
if(!res) return true;
res.find(">div").each(function(){
var cont = jQuery("#"+this.id);
verifForm(cont.html(jQuery(this).html()));
jQuery("form.form_upload_icon",cont).async_upload(async_upload_icon);
cont.find("img[onclick]").each(function(){this.onclick();});
});
return true;
}
function async_upload_portfolio_documents(res,s,jForm){
res = iframeHandler(res,jForm,async_upload_portfolio_documents);
if(!res) return true;
// on dirait que ca passe mieux sur Safari avec un setTimeout cf #1408
setTimeout(function() {
res.find(">div").each(function(){
// this.id = documenter--id_article ou documenter-id_article
var cont = jQuery("#"+this.id);
var self = jQuery(this);
if(!cont.size()) {
cont = jQuery(this.id.search(/--/)!=-1 ? "#portfolio":"#documents")
.append(self.clone2());
}
verifForm(cont.html(self.html()));
jQuery("form.form_upload",cont).async_upload(async_upload_portfolio_documents);
});
}, 50);
return true;
}