function uploadAttachment(formObject, type, allowedFiles){ var form = formObject.form; var formId = new String(form.attributes.getNamedItem("id").nodeValue); var objectId = form.elements["id"].value; var isNew = 0; if(objectId === ""){ objectId = form.elements["tempId"].value; isNew = 1; } var object = formId.substr(0, formId.length - 4); if(object == "nlTemplateBase"){ //2009-11-02 JJMR: Esto lo implemento para newsletters, se que no es muy limpo var template = new String(form.elements["template"].value); object+= "_"+template; } var attributeName = formObject.id; if(validateAttachment(formObject, allowedFiles)){ var action = form.action; var target = form.target; form.action = CONFIG.get("SERVER_NAME")+CONFIG.get("FOLDER_RESOURCES")+"/fileUpload.php?object="+object+"&objectId="+objectId+"&type="+type+"&attributeName="+attributeName+"&isNew="+isNew; form.target = attributeName+"IframeUpload"; form.submit(); form.action = action; form.target = target; } } function validateAttachment(formObject, allowedFiles){ if(formObject){ var form = formObject.form; var formObjectClass = form.elements[formObject.id+"_formObjectClass"].value; allowedFiles = ","+allowedFiles+","; if(allowedFiles != ",,"){ var fileName = formObject.value; while (fileName.indexOf("\\") != -1) fileName = fileName.slice(fileName.indexOf("\\") + 1); var fileExtension = fileName.slice(fileName.lastIndexOf(".")+1).toLowerCase(); } if(allowedFiles == ",," || allowedFiles.indexOf(","+fileExtension+",") >=0){ switch(formObjectClass){ case "inputOneFile": case "inputImageNL": showWaitImage(formObject.id); break; case "inputMultiFile": addEmptyThumbnail(formObject.id); break; } return true; }else{ var allowedFilesLabel = new String(allowedFiles.substr(1, allowedFiles.length-2)); allowedFilesLabel = allowedFilesLabel.replace(/,/gi, ", "); alert(ML.get("ERROR_TYPE_FILE")+allowedFilesLabel+"."); return false; } } return false; } function fileUploadCallback(object, attributeName, fileId, fileName, fileSrc, filePreview, isNew){ if(object.indexOf("nlTemplateBase") !== -1){ //2009-11-02 JJMR: Esto lo implemento para newsletters, se que no es muy limpo object = "nlTemplateBase"; } var form = document.getElementById(object+"Form"); var formObjectClass = form.elements[attributeName+"_formObjectClass"].value; switch(formObjectClass){ case "inputOneFile": case "inputImageNL": if(form){ form.elements[attributeName].disabled = true; form.elements[attributeName].value = ""; } break; case "inputMultiFile": if(form){ form.elements[attributeName].value = ""; } break; } var dummyId = attributeName+"Dummy"; var dummy = document.getElementById(dummyId); var innerHTMLCode = "" innerHTMLCode+= "\""+fileName+"\"/"; innerHTMLCode+= ""; innerHTMLCode+= "Eliminar…"; dummy.innerHTML = innerHTMLCode; dummy.id = "thumb"+fileId; } function deleteAttach(id, isNew){ if(confirm("\u00BFRealmente lo desea eliminar?")){ var paramsGET = "?func=deleteAttach&id="+id+"&isNew="+isNew; var urlServlet = CONFIG.get("SERVER_NAME")+CONFIG.get("URL_ENGINE_SERVLET"); callAjax(deleteAttachCallback, paramsGET, urlServlet); } } function deleteAttachCallback(xmlhttp){ var info = xmlhttp.responseXML.getElementsByTagName("info")[0]; var formObjectClass = info.getAttribute("formObjectClass"); var object = info.getAttribute("object"); var attributeName = info.getAttribute("attributeName"); var id = info.getAttribute("id"); var thumbnail = document.getElementById("thumb"+id); var form = document.getElementById(object+"Form"); switch(formObjectClass){ case "inputOneFile": case "inputImageNL": form.elements[attributeName].disabled = false; form.elements[attributeName].value = ""; thumbnail.innerHTML = ""; thumbnail.id = attributeName+"Dummy"; break; case "inputMultiFile": thumbnail.parentNode.removeChild(thumbnail); break; } } function showWaitImage(id){ var dummyId = id+"Dummy"; var dummy = document.getElementById(dummyId); if(dummy){ dummy.innerHTML = ""; } } function addEmptyThumbnail(id){ var dummyId = id+"Dummy"; var dummy = document.getElementById(dummyId); if(!dummy){ var thumbContent = document.getElementById(id+"ThumbnailContent"); thumbContent.innerHTML+= "
"; } } function refreshInput(type, attributeName, object, callbackFunction){ var paramsGET = "?func=refreshAttachments&type="+type+"&attributeName="+attributeName+"&object="+object; if(callbackFunction == refreshAttachListTable){ paramsGET+="&list=1"; } var myFormName = object; //2008-04-21 JJMR: Esto lo implemento para newsletters, se que no es muy limpo var pos = myFormName.indexOf("_"); if(pos > 0){ myFormName = myFormName.slice(0, pos); } myFormName+="Form"; var myForm = document.getElementById(myFormName); //-- var id = myForm.elements["id"].value; //AQUI //2008-04-28 JJMR: Esto lo implemento para newsletters, se que no es muy limpo if(pos > 0){ var template_id = myForm.elements["template_id"].value; var template_id_bck = myForm.elements["template_id_bck"].value; if(template_id != template_id_bck){ id = ""; } } //-- var tempId = myForm.elements["tempId"].value; if(id == ""){ paramsGET+="&objectId="+tempId+"&isNew=1"; }else{ paramsGET+="&objectId="+id; } var urlServlet = CONFIG.get("SERVER_NAME")+CONFIG.get("URL_ENGINE_SERVLET"); callAjax(callbackFunction, paramsGET, urlServlet); } function refreshInputOneCallback(xmlhttp){ var data = xmlhttp.responseXML.getElementsByTagName("data")[0]; var isNew = data.getAttribute("isNew"); var attributeName = data.getAttribute("attributeName"); var type = data.getAttribute("type"); if(isNew=="") isNew = 0; var tagName = typeToString(type); var attachForm = document.getElementById(attributeName+"Form"); var thumbDiv = document.getElementById(attributeName+"Thumbnail"); var attach = xmlhttp.responseXML.getElementsByTagName(tagName)[0]; if(attach == null){ attachForm.elements["userfile"].disabled = false; thumbDiv.innerHTML = "
"; }else{ var id = attach.getAttribute("id"); var preview = attach.getAttribute("preview"); var fileSrc = attach.getAttribute("fileSrc"); var name = attach.getAttribute("name"); attachForm.elements["userfile"].disabled = true; attachForm.elements["userfile"].blur(); innerHTMLCode = "
"; innerHTMLCode+= "
"; innerHTMLCode+= "" innerHTMLCode+= "\""+name+"\"/"; innerHTMLCode+= ""; innerHTMLCode+= "Eliminar…"; innerHTMLCode+= "
"; thumbDiv.innerHTML = innerHTMLCode; } } function refreshInputGridTable(xmlhttp){ var dummyId = id+"Dummy"; var dummy = document.getElementById(dummyId); if(dummy){ var thumbContent = document.getElementById(id+"ThumbnailContent"); thumbContent.innerHTML+= "
"; } } function refreshAttachListTable(xmlhttp){ var data = xmlhttp.responseXML.getElementsByTagName("data")[0]; var attributeName = data.getAttribute("attributeName"); var type = data.getAttribute("type"); var tagName = typeToString(type); var tableName = attributeName+"ListTable"; var table = document.getElementById(tableName); if(table){ emptyTable(tableName); var classA = true; var attachments = xmlhttp.responseXML.getElementsByTagName(tagName); for(i=0; i< attachments.length; i++){ var attach = attachments[i]; var id = attach.getAttribute("id"); var donwloadId = attach.getAttribute("donwloadId"); var type = attach.getAttribute("type"); var name = attach.getAttribute("name"); var preview = attach.getAttribute("preview"); var fileSrc = attach.getAttribute("fileSrc"); //if(myType == null || myType == type){ var oRow = table.insertRow(table.rows.length); oRow.id = "trattach"+id; if(classA) var className = "listsRowA"; else var className = "listsRowB"; oRow.className = className; var oCell = oRow.insertCell(oRow.cells.length); oCell.className = className; oCell.innerHTML = " "; var oCell = oRow.insertCell(oRow.cells.length); oCell.className = className; oCell.width = 250; oCell.innerHTML = ""+name+""; var oCell = oRow.insertCell(oRow.cells.length); oCell.className = className; oCell.align = "center"; oCell.innerHTML = ""; classA=!classA; //} } } var thumbnail = document.getElementById(attributeName+"Thumbnail"); thumbnail.innerHTML = ""; }