Current File : /home/escuelai/public_html/biblioteca.escuelaintegral.edu.uy/javascript/handle_drop.js |
/* +-------------------------------------------------+
// � 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
// +-------------------------------------------------+
// $Id: handle_drop.js,v 1.10 2021/10/04 09:24:39 dgoron Exp $ */
requete=new Array();
function creerRequete(id) {
try {
requete[id]=new XMLHttpRequest();
} catch (essaimicrosoft) {
try {
requete[id]=new ActiveXObject("Msxml2.XMLHTTP");
} catch (autremicrosoft) {
try {
requete[id]=new ActiveXObject("Microsoft.XMLHTTP");
} catch (echec) {
requete[id]=null;
}
}
}
}
function show_info(id) {
var cadre;
if (requete[id].readyState==4) {
cadre=document.getElementById(id);
if (requete[id].status=="200") {
cadre.innerHTML=requete[id].responseText;
document.getElementById('close_cart_pannel').onclick=function(){
hide_carts('','','');
return false;
}
init_recept();
} else {
cadre.innerHTML="Impossible d'obtenir la page !";
}
}
}
function get_info(id,url,datas) {
creerRequete(id);
requete[id].open("POST",url,true);
requete[id].onreadystatechange=function() { show_info(id) };
requete[id].setRequestHeader("Content-Type","application/x-www-form-urlencoded");
requete[id].send(datas);
}
function notice_cart(dragged,target) {
id=dragged.getAttribute("id");
id=id.substring(10);
target.src="cart_info.php?id="+id+"&header="+encode_URL(dragged.innerHTML);
}
function cart_highlight(obj) {
obj.style.background="#DDD";
}
function cart_downlight(obj) {
obj.style.background="";
}
function show_carts(t,e) {
if(!document.getElementById("pannel_carts")){
var pannel=document.createElement("div");
pannel.setAttribute("id","pannel_carts");
pannel.style.width="300px";
pannel.style.border="#000000 solid 1px";
pannel.style.position="absolute";
//pannel.style.float="right";
pannel.style.background="#FFFFFF";
pannel.style.overflow="auto";
//pannel.className="main";
if (window.innerWidth) {
pannel.style.top=window.pageYOffset+"px";
pannel.style.left=(parseFloat(window.innerWidth)+parseFloat(window.pageXOffset)-322)+"px";
pannel.style.height=(window.innerHeight-3)+"px";
} else {
if (document.documentElement) {
pannel.style.top=document.documentElement.scrollTop+"px";
pannel.style.height=(document.documentElement.clientHeight-3)+"px";
pannel.style.left=(parseFloat(document.documentElement.clientWidth)+parseFloat(document.documentElement.scrollLeft)-300)+"px";
} else {
pannel.style.top=document.body.scrollTop+"px";
pannel.style.height=(document.body.clientHeight-3)+"px";
pannel.style.left=(parseFloat(document.body.clientWidth)+parseFloat(document.body.scrollLeft)-300)+"px";
}
}
pannel.style.zIndex=1500;
document.getElementById("att").appendChild(pannel);
get_info("pannel_carts","cart_list.php","");
}
return true;
}
function hide_carts(t,e,r) {
var pannel_carts=document.getElementById("pannel_carts");
if (pannel_carts) {
pannel_carts.parentNode.removeChild(pannel_carts);
}
}
function notice_caddie(dragged,target) {
// alert(dragged.getAttribute("id"));
var url= "./ajax.php?module=catalog&categ=caddie&caddie="+target.getAttribute("id")+"&object="+dragged.getAttribute("id");
var ajout_caddie = new http_request();
retour_ajout = ajout_caddie.request(url);
message_ajout=ajout_caddie.get_text();
if ((retour_ajout) || (isNaN(message_ajout))) {
alert (message_ajout) ;
}
else{
var id_nbitem=target.getAttribute("id").replace("_","_nbitem_");
document.getElementById(id_nbitem).innerHTML= " ("+message_ajout+") ";
affichage_clignotant(target,0);
}
}
var recepteurListe;
function affichage_clignotant(objet,cpt){
recepteurListe = objet;
if(cpt%2 == 0){
cart_highlight(recepteurListe);
} else{
cart_downlight(recepteurListe);
}
cpt++;
if(cpt<8){
setTimeout("affichage_clignotant(recepteurListe,"+cpt+")", 200);
}
}
/**********************************
* *
* Tri des notices li�es *
* *
**********************************/
/*
* Fonction pour trier les filles
*/
function link_link(dragged,target){
var pere_id = dragged.getAttribute("pere");
var pere_cible_id = target.getAttribute("pere");
var pere_type = dragged.getAttribute("type_rel");
var pere_cible_type = target.getAttribute("type_rel");
if(pere_id != pere_cible_id || pere_type != pere_cible_type) {
recalc_recept();
noti_downlight(target);
alert('Vous ne pouvez changer le type de relation par le tri');
return;
}
var pere=target.parentNode;
let nodeTarget = target;
if (dragged.getAttribute('order') < target.getAttribute('order')) {
nodeTarget = target.nextSibling;
}
pere.insertBefore(dragged, nodeTarget);
noti_downlight(target);
recalc_recept();
update_order(dragged,target);
}
function parents_parents(dragged,target) {
link_link(dragged,target);
}
function pairs_pairs(dragged,target) {
link_link(dragged,target);
}
function childs_childs(dragged,target) {
link_link(dragged,target);
}
/*
* Mis � jour de l'ordre
*/
function update_order(source,cible){
var pere = source.parentNode.parentNode;
var index = 0;
var notices_relations_ids = new Array();
for(var i=0;i<pere.childNodes.length;i++){
if(pere.childNodes[i].nodeType == 1){
pere.childNodes[i].setAttribute("order",index);
if(pere.childNodes[i].getAttribute("notice_relation_id")){
notices_relations_ids[index] = pere.childNodes[i].getAttribute("notice_relation_id");
}
index++;
}
if (pere.childNodes[i].childNodes.length) {
for(var j=0;j<pere.childNodes[i].childNodes.length;j++){
if(pere.childNodes[i].childNodes[j].nodeType == 1){
pere.childNodes[i].childNodes[j].setAttribute("order",index);
if(pere.childNodes[i].childNodes[j].getAttribute("notice_relation_id")){
notices_relations_ids[index] = pere.childNodes[i].childNodes[j].getAttribute("notice_relation_id");
}
index++;
}
}
}
}
var url= "./ajax.php?module=ajax&categ=tri&quoifaire=up_order";
var action = new http_request();
action.request(url,true,"notices_relations_ids="+notices_relations_ids.join(","));
}
function noti_highlight(obj) {
obj.style.background="#DDD";
}
function noti_downlight(obj) {
obj.style.background="";
}
function is_expandable(cible,e){
var el = e.target || e.srcElement;
var id_cible = (cible.id).substring(5);
var drag = true;
if(el.id == "el"+id_cible+"Img"){
drag = false;
}
return drag;
}