From 06412695eda333c3941fb1f3a927eeae885b1ad5 Mon Sep 17 00:00:00 2001 From: Luis Fernando Saisa Lopez Date: Thu, 18 Sep 2014 14:01:56 -0400 Subject: [PATCH 1/2] BUG 10957 "Feature request - Limit input document..." SOLVED MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Feature request - Limit input document maximum size - Problema resuelto, al crear un nuevo Input Document se ha adicionado un nuevo campo "Maximum file size" y un dropdown que determina la unidad de medida en "KB y MB", esto permite definir el limite del tamaƱel archivo a anexar. Cuando se ejectua el caso al hacer click en "Attach", se muestra el tamaƱaximo que se puede adjuntar el archivo si es mayor al limite se mostrara un mensaje; asi tambien si se tiene un file asocioado a un input document al igual que lo anterior se mostrara un mensaje. --- gulliver/js/form/core/form.js | 2 +- gulliver/js/maborak/core/maborak.js | 2 +- workflow/engine/classes/class.case.php | 8 +++++--- .../cases/cases_AttachInputDocumentGeneral.xml | 10 ++++++---- .../xmlform/inputdocs/inputdocs_Edit.xml | 2 +- .../xmlform/inputdocs/inputdocs_Options.xml | 18 +++++------------- 6 files changed, 19 insertions(+), 23 deletions(-) diff --git a/gulliver/js/form/core/form.js b/gulliver/js/form/core/form.js index 0de601c8b..e69a56446 100755 --- a/gulliver/js/form/core/form.js +++ b/gulliver/js/form/core/form.js @@ -3324,7 +3324,7 @@ var validateForm = function(sRequiredFields) { if (input.value != "") { var pmindocmaxfilesize = input.getAttribute("pmindocmaxfilesize"); - if (pmindocmaxfilesize != null && pmindocmaxfilesize != "") { + if (pmindocmaxfilesize != null && pmindocmaxfilesize != "" && pmindocmaxfilesize > 0) { var flagFilesize = inputDocumentVerifySize(parseInt(pmindocmaxfilesize), input); if (flagFilesize == 0) { diff --git a/gulliver/js/maborak/core/maborak.js b/gulliver/js/maborak/core/maborak.js index afebb1177..be6a8f6b4 100644 --- a/gulliver/js/maborak/core/maborak.js +++ b/gulliver/js/maborak/core/maborak.js @@ -1241,7 +1241,7 @@ if(fielEmailInvalid.length>0){systemMessaggeInvalid+="\n \n"+G_STRINGS.ID_VALIDA alert(systemMessaggeInvalid);swSubmitValidateForm=1;return false;} else{var arrayForm=document.getElementsByTagName("form");var inputAux;var id="";var i1=0;var i2=0;for(i1=0;i1<=arrayForm.length-1;i1++){var frm=arrayForm[i1];for(i2=0;i2<=frm.elements.length-1;i2++){var elem=frm.elements[i2];if(elem.type=="checkbox"&&elem.disabled&&elem.checked){id=elem.id+"_";if(!document.getElementById(id)){inputAux=document.createElement("input");inputAux.type="hidden";inputAux.id=id;inputAux.name=elem.name;inputAux.value=elem.value;frm.appendChild(inputAux);}}} var arrayLink=frm.getElementsByTagName("a");for(i2=0;i2<=arrayLink.length-1;i2++){var link=arrayLink[i2];if(typeof link.id!="undefined"&&link.id!=""&&link.id!="form[DYN_BACKWARD]"&&link.id!="form[DYN_FORWARD]"){var strHtml=link.parentNode.innerHTML;strHtml=stringReplace("\\x0A","",strHtml);strHtml=stringReplace("\\x0D","",strHtml);strHtml=stringReplace("\\x09","",strHtml);if(/^.*pm:field.*$/.test(strHtml)){id=link.id+"_";if(!document.getElementById(id)){var strAux=link.id.replace("form[","");strAux=strAux.substring(0,strAux.length-1);inputAux=document.createElement("input");inputAux.type="hidden";inputAux.id=id;inputAux.name=link.id;inputAux.value=link.href;frm.appendChild(inputAux);inputAux=document.createElement("input");inputAux.type="hidden";inputAux.id=id+"label";inputAux.name="form["+strAux+"_label]";inputAux.value=link.innerHTML;frm.appendChild(inputAux);}}}}} -var arrayForm=document.getElementsByTagName("form");var i1=0;var i2=0;for(i1=0;i1<=arrayForm.length-1;i1++){var frm=arrayForm[i1];var arrayInput=frm.getElementsByTagName("input");for(i2=0;i2<=arrayInput.length-1;i2++){var input=arrayInput[i2];if(input.type=="file"){if(input.value!=""){var pmindocmaxfilesize=input.getAttribute("pmindocmaxfilesize");if(pmindocmaxfilesize!=null&&pmindocmaxfilesize!=""){var flagFilesize=inputDocumentVerifySize(parseInt(pmindocmaxfilesize),input);if(flagFilesize==0){new leimnud.module.app.alert().make({label:_("ID_SIZE_VERY_LARGE_PERMITTED")});swSubmitValidateForm=1;return false;}}}}}} +var arrayForm=document.getElementsByTagName("form");var i1=0;var i2=0;for(i1=0;i1<=arrayForm.length-1;i1++){var frm=arrayForm[i1];var arrayInput=frm.getElementsByTagName("input");for(i2=0;i2<=arrayInput.length-1;i2++){var input=arrayInput[i2];if(input.type=="file"){if(input.value!=""){var pmindocmaxfilesize=input.getAttribute("pmindocmaxfilesize");if(pmindocmaxfilesize!=null&&pmindocmaxfilesize!=""&&pmindocmaxfilesize>0){var flagFilesize=inputDocumentVerifySize(parseInt(pmindocmaxfilesize),input);if(flagFilesize==0){new leimnud.module.app.alert().make({label:_("ID_SIZE_VERY_LARGE_PERMITTED")});swSubmitValidateForm=1;return false;}}}}}} return true;}}else{return false;}};var getObject=function(sObject){var i;var oAux=null;var iLength=__aObjects__.length;for(i=0;i0){oAux[0].action+='&_REFRESH_=1';oAux[0].submit();}}};var sessionPersits=function(){var rpc=new leimnud.module.rpc.xmlhttp({url:'../services/sessionPersists',args:'dynaformRestoreValues='+(typeof(__dynaformSVal__)!='undefined'?__dynaformSVal__:''),async:false});rpc.make();var response=rpc.xmlhttp.responseText.parseJSON();return response.status;};var showPromptLogin=function(lastAction){lastActionPerformed=lastAction;promptPanel=new leimnud.module.panel();promptPanel.options={statusBarButtons:[{value:_('LOGIN')}],position:{center:true},size:{w:300,h:130},control:{close:false,resize:false},fx:{modal:true}};promptPanel.setStyle={content:{padding:10,paddingBottom:2,textAlign:'left',paddingLeft:50,backgroundRepeat:'no-repeat',backgroundPosition:'10 50%',backgroundColor:'transparent',borderWidth:0}};promptPanel.make();promptPanel.addContent(_('ID_DYNAFORM_EDITOR_LOGIN_AGAIN'));promptPanel.addContent('
');var thePassword=$dce('input');thePassword.type='password';thePassword.id='thePassword';leimnud.dom.setStyle(thePassword,{font:'normal 8pt Tahoma,MiscFixed',color:'#000',width:'100%',marginTop:3,backgroundColor:'white',border:'1px solid #919B9C'});promptPanel.addContent(thePassword);thePassword.focus();thePassword.onkeyup=function(evt) diff --git a/workflow/engine/classes/class.case.php b/workflow/engine/classes/class.case.php index e1ed55cc1..37625de1a 100755 --- a/workflow/engine/classes/class.case.php +++ b/workflow/engine/classes/class.case.php @@ -3550,14 +3550,16 @@ class Cases $inputDocument = new InputDocument(); $arrayInputDocumentData = $inputDocument->load($inputDocumentUid); - //--- + //--- Validate Filesize of $_FILE $inpDocMaxFilesize = $arrayInputDocumentData["INP_DOC_MAX_FILESIZE"]; $inpDocMaxFilesizeUnit = $arrayInputDocumentData["INP_DOC_MAX_FILESIZE_UNIT"]; $inpDocMaxFilesize = $inpDocMaxFilesize * (($inpDocMaxFilesizeUnit == "MB")? 1024 *1024 : 1024); //Bytes - if ($fileSize > $inpDocMaxFilesize) { - throw new Exception(G::LoadTranslation("ID_SIZE_VERY_LARGE_PERMITTED")); + if ($inpDocMaxFilesize > 0 && $fileSize > 0) { + if ($fileSize > $inpDocMaxFilesize) { + throw new Exception(G::LoadTranslation("ID_SIZE_VERY_LARGE_PERMITTED")); + } } //Get the Custom Folder ID (create if necessary) diff --git a/workflow/engine/xmlform/cases/cases_AttachInputDocumentGeneral.xml b/workflow/engine/xmlform/cases/cases_AttachInputDocumentGeneral.xml index cca858f55..0937c5d7f 100755 --- a/workflow/engine/xmlform/cases/cases_AttachInputDocumentGeneral.xml +++ b/workflow/engine/xmlform/cases/cases_AttachInputDocumentGeneral.xml @@ -51,11 +51,13 @@ var verifyInfo = function(oForm) return; } - var flagFilesize = inputDocumentVerifySize(parseInt(getField("INP_DOC_MAX_FILESIZE").value), getField("APP_DOC_FILENAME")); + if (getField("INP_DOC_MAX_FILESIZE").value != "" && getField("INP_DOC_MAX_FILESIZE").value > 0) { + var flagFilesize = inputDocumentVerifySize(parseInt(getField("INP_DOC_MAX_FILESIZE").value), getField("APP_DOC_FILENAME")); - if (flagFilesize == 0) { - new leimnud.module.app.alert().make({label: _("ID_SIZE_VERY_LARGE_PERMITTED")}); - return; + if (flagFilesize == 0) { + new leimnud.module.app.alert().make({label: _("ID_SIZE_VERY_LARGE_PERMITTED")}); + return; + } } docType = oAux.value.split("."); diff --git a/workflow/engine/xmlform/inputdocs/inputdocs_Edit.xml b/workflow/engine/xmlform/inputdocs/inputdocs_Edit.xml index 4363d6570..d876abc7d 100755 --- a/workflow/engine/xmlform/inputdocs/inputdocs_Edit.xml +++ b/workflow/engine/xmlform/inputdocs/inputdocs_Edit.xml @@ -31,7 +31,7 @@ - + Maximum file size diff --git a/workflow/engine/xmlform/inputdocs/inputdocs_Options.xml b/workflow/engine/xmlform/inputdocs/inputdocs_Options.xml index e7bfe1c46..f5a44d55c 100755 --- a/workflow/engine/xmlform/inputdocs/inputdocs_Options.xml +++ b/workflow/engine/xmlform/inputdocs/inputdocs_Options.xml @@ -45,29 +45,21 @@ var currentPagedTable = @#PAGED_TABLE_ID; } } - if (getField("INP_DOC_MAX_FILESIZE").value.trim() != "") { - var maxFilesize = parseInt(getField("INP_DOC_MAX_FILESIZE").value.trim()); - var maxFilesizeUnit = getField("INP_DOC_MAX_FILESIZE_UNIT").value; + var maxFilesize = parseInt(getField("INP_DOC_MAX_FILESIZE").value.trim()); + var maxFilesizeUnit = getField("INP_DOC_MAX_FILESIZE_UNIT").value; - var uploadMaxFilesize = parseInt(getField("INP_DOC_UPLOAD_MAX_FILESIZE").value); + var uploadMaxFilesize = parseInt(getField("INP_DOC_UPLOAD_MAX_FILESIZE").value); - maxFilesize = maxFilesize * ((maxFilesizeUnit == "MB")? 1024 * 1024 : 1024); + maxFilesize = maxFilesize * ((maxFilesizeUnit == "MB")? 1024 * 1024 : 1024); + if (maxFilesize != "" && maxFilesize != 0) { if(maxFilesize > 0) { if(maxFilesize > uploadMaxFilesize) { new leimnud.module.app.alert().make({label: _("ID_SIZE_VERY_LARGE_PERMITTED")}); getField("INP_DOC_MAX_FILESIZE").focus(); return false; } - } else { - new leimnud.module.app.alert().make({label: _("ID_MAXIMUM_SIZE_FILE_GREATER_THAN_ZERO")}); - getField("INP_DOC_MAX_FILESIZE").focus(); - return false; } - } else { - new leimnud.module.app.alert().make({label: _("ID_MAXIMUM_SIZE_FILE_REQUIRED")}); - getField("INP_DOC_MAX_FILESIZE").focus(); - return false; } return true; From 677625fb27c807932d2ad5942c97ad110a569bc9 Mon Sep 17 00:00:00 2001 From: Luis Fernando Saisa Lopez Date: Thu, 18 Sep 2014 14:18:01 -0400 Subject: [PATCH 2/2] BUG 10957 "Feature request - Limit input document..." SOLVED --- workflow/engine/xmlform/inputdocs/inputdocs_Edit.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/engine/xmlform/inputdocs/inputdocs_Edit.xml b/workflow/engine/xmlform/inputdocs/inputdocs_Edit.xml index d876abc7d..756d9ec06 100755 --- a/workflow/engine/xmlform/inputdocs/inputdocs_Edit.xml +++ b/workflow/engine/xmlform/inputdocs/inputdocs_Edit.xml @@ -32,7 +32,7 @@ - Maximum file size + Maximum file size (Use zero if unlimited)