Merge code from github to bitbucket 2014-08-14

This commit is contained in:
Julio Cesar Laura
2014-08-14 13:53:06 -04:00
37 changed files with 484 additions and 154 deletions

View File

@@ -1213,8 +1213,17 @@ function G_Text(form, element, name)
if (me.validate == 'Any' && me.mask == '') return true; if (me.validate == 'Any' && me.mask == '') return true;
var pressKey = (window.event)? window.event.keyCode : event.which; var pressKey = (window.event)? window.event.keyCode : event.which;
if (pressKey == 107 || pressKey == 187 || pressKey == 191 || pressKey == 192 || pressKey == 172 || pressKey == 171 || pressKey == 226 || pressKey == 220 || pressKey == 226 || pressKey == 0 || pressKey == 221 || pressKey == 222 || pressKey == 186) {
pressKey = 43; if (me.validate == "NodeName" && (pressKey == 189 || pressKey == 173)) {
return true;
}
if (me.validate == "NodeName" && (pressKey == 0 || pressKey == 192 || pressKey == 109)) {
return false;
}
if (pressKey == 107 || pressKey == 187 || pressKey == 191 || pressKey == 172 || pressKey == 171 || pressKey == 226 || pressKey == 220 || pressKey == 226 || pressKey == 221 || pressKey == 222 || pressKey == 186) {
pressKey = 43;
} }
switch(pressKey){ switch(pressKey){
@@ -1464,6 +1473,14 @@ function G_Text(form, element, name)
if (keyCode == 0) return true; if (keyCode == 0) return true;
} }
if (me.browser.name == 'Microsoft Internet Explorer' || me.browser.name == 'Netscape'){
if (event.preventDefault) {
event.preventDefault();
} else {
event.returnValue = false;
}
}
if (me.browser.name == 'Chrome' || me.browser.name == 'Safari'){ if (me.browser.name == 'Chrome' || me.browser.name == 'Safari'){
event.returnValue = false; event.returnValue = false;
} }
@@ -2960,6 +2977,7 @@ var validateForm = function(sRequiredFields) {
* i.ei <form onsubmit="myaction(MyjsString)" ... with var MyjsString = "some string that is into a variable, so this broke the html"; * i.ei <form onsubmit="myaction(MyjsString)" ... with var MyjsString = "some string that is into a variable, so this broke the html";
*/ */
sRequiredFields = sRequiredFields.replace(/\n/g, " ");
if( typeof(sRequiredFields) != 'object' || sRequiredFields.indexOf("%27") > 0 ) { if( typeof(sRequiredFields) != 'object' || sRequiredFields.indexOf("%27") > 0 ) {
sRequiredFields = sRequiredFields.replace(/%27/gi, '"'); sRequiredFields = sRequiredFields.replace(/%27/gi, '"');
} }
@@ -3930,15 +3948,15 @@ function dropDownSetOption(elem, arrayOption)
function dynaFormChanged(frm) function dynaFormChanged(frm)
{ {
for (var i1 = 0; i1 <= frm.elements.length - 1; i1++) { for (var i1 = 0; i1 <= frm.elements.length - 1; i1++) {
if((frm.elements[i1].type=="radio" || frm.elements[i1].type=="checkbox") && (frm.elements[i1].checked!=frm.elements[i1].defaultChecked)) { if((frm.elements[i1].type=="radio" || frm.elements[i1].type=="checkbox") && (frm.elements[i1].checked!=frm.elements[i1].defaultChecked)) {
return true; return true;
} }
if((frm.elements[i1].type=="textarea" || frm.elements[i1].type=="text" || frm.elements[i1].type=="file") && (frm.elements[i1].value!=frm.elements[i1].defaultValue)) { if((frm.elements[i1].type=="textarea" || frm.elements[i1].type=="text" || frm.elements[i1].type=="file") && (frm.elements[i1].value!=frm.elements[i1].defaultValue)) {
return true; return true;
} }
if (frm.elements[i1].tagName.toLowerCase() == "select") { if (frm.elements[i1].tagName.toLowerCase() == "select") {
var selectDefaultValue = frm.elements[i1].value; var selectDefaultValue = frm.elements[i1].value;

View File

@@ -98,6 +98,13 @@ var G_Grid = function(oForm, sGridName){
this.aElements[this.aElements.length - 1].mask = this.aFields[j].oProperties.sMask; this.aElements[this.aElements.length - 1].mask = this.aFields[j].oProperties.sMask;
} }
break; break;
case "date":
this.aElements.push(new G_Date(oForm, elem, elemName));
if (this.aFields[j].oProperties) {
this.aElements[this.aElements.length - 1].mask = dateSetMask(this.aFields[j].oProperties.mask);
}
break;
default: default:
this.aElements.push(new G_Field(oForm, elem, elemName)); this.aElements.push(new G_Field(oForm, elem, elemName));

View File

@@ -1024,7 +1024,9 @@ switch(action){case'mask':case'move':dataNewMask=me.replaceMasks(newValue,newCur
break;case 256:newValue=currentValue.substring(0,cursorStart);newValue+='.';newValue+=currentValue.substring(cursorEnd,currentValue.length);newCursor=cursorStart+1;break;case 35:case 36:case 37:case 38:case 39:case 40:newValue=currentValue;switch(keyCode){case 36:newCursor=0;break;case 35:newCursor=currentValue.length;break;case 37:newCursor=cursorStart-1;break;case 39:newCursor=cursorStart+1;break;} break;case 256:newValue=currentValue.substring(0,cursorStart);newValue+='.';newValue+=currentValue.substring(cursorEnd,currentValue.length);newCursor=cursorStart+1;break;case 35:case 36:case 37:case 38:case 39:case 40:newValue=currentValue;switch(keyCode){case 36:newCursor=0;break;case 35:newCursor=currentValue.length;break;case 37:newCursor=cursorStart-1;break;case 39:newCursor=cursorStart+1;break;}
break;default:newKey=String.fromCharCode(keyCode);newValue=currentValue.substring(0,cursorStart);newValue+=newKey;newValue+=currentValue.substring(cursorEnd,currentValue.length);newCursor=cursorStart+1;break;} break;default:newKey=String.fromCharCode(keyCode);newValue=currentValue.substring(0,cursorStart);newValue+=newKey;newValue+=currentValue.substring(cursorEnd,currentValue.length);newCursor=cursorStart+1;break;}
if(newCursor<0)newCursor=0;me.element.value=newValue;me.setSelectionRange(newCursor,newCursor);}};this.sendOnChange=function(){if(me.element.fireEvent){me.element.fireEvent("onchange");}else{var evObj=document.createEvent('HTMLEvents');evObj.initEvent('change',true,true);me.element.dispatchEvent(evObj);}};this.handleKeyDown=function(event){if(me.element.readOnly){return true;} if(newCursor<0)newCursor=0;me.element.value=newValue;me.setSelectionRange(newCursor,newCursor);}};this.sendOnChange=function(){if(me.element.fireEvent){me.element.fireEvent("onchange");}else{var evObj=document.createEvent('HTMLEvents');evObj.initEvent('change',true,true);me.element.dispatchEvent(evObj);}};this.handleKeyDown=function(event){if(me.element.readOnly){return true;}
if(me.validate=='Any'&&me.mask=='')return true;var pressKey=(window.event)?window.event.keyCode:event.which;if(pressKey==107||pressKey==187||pressKey==191||pressKey==192||pressKey==172||pressKey==171||pressKey==226||pressKey==220||pressKey==226||pressKey==0||pressKey==221||pressKey==222||pressKey==186){pressKey=43;} if(me.validate=='Any'&&me.mask=='')return true;var pressKey=(window.event)?window.event.keyCode:event.which;if(me.validate=="NodeName"&&(pressKey==189||pressKey==173)){return true;}
if(me.validate=="NodeName"&&(pressKey==0||pressKey==192||pressKey==109)){return false;}
if(pressKey==107||pressKey==187||pressKey==191||pressKey==172||pressKey==171||pressKey==226||pressKey==220||pressKey==226||pressKey==221||pressKey==222||pressKey==186){pressKey=43;}
switch(pressKey){case 8:case 46:case 35:case 36:case 37:case 38:case 39:case 40:case 43:if((pressKey==8||pressKey==46)&&me.validate=="NodeName"){return true;} switch(pressKey){case 8:case 46:case 35:case 36:case 37:case 38:case 39:case 40:case 43:if((pressKey==8||pressKey==46)&&me.validate=="NodeName"){return true;}
if(pressKey==46&&me.validate=="Email"){return true;} if(pressKey==46&&me.validate=="Email"){return true;}
if(me.validate=="Email"&&pressKey!=8&&(me.element.value.length>me.element.maxLength-1)){return false;} if(me.validate=="Email"&&pressKey!=8&&(me.element.value.length>me.element.maxLength-1)){return false;}
@@ -1058,6 +1060,7 @@ if(pressKey==46){me.applyMask(256);}
else{me.applyMask(pressKey);} else{me.applyMask(pressKey);}
if(updateOnChange){me.sendOnChange();}} if(updateOnChange){me.sendOnChange();}}
if(me.browser.name=='Firefox'){if(keyCode==0)return true;} if(me.browser.name=='Firefox'){if(keyCode==0)return true;}
if(me.browser.name=='Microsoft Internet Explorer'||me.browser.name=='Netscape'){if(event.preventDefault){event.preventDefault();}else{event.returnValue=false;}}
if(me.browser.name=='Chrome'||me.browser.name=='Safari'){event.returnValue=false;} if(me.browser.name=='Chrome'||me.browser.name=='Safari'){event.returnValue=false;}
else{return false;}}};if(this.element){this.element.onblur=function(event) else{return false;}}};if(this.element){this.element.onblur=function(event)
{var evt=event||window.event;var keyPressed=evt.which||evt.keyCode;if((me.mask!='')&&((me.mType=='currency')||(me.mType=='percentage')||((me.validate=="Real")&&(me.mType=='text')))&&(me.mask.indexOf('-')==-1)&&(me.element.value!='')){masks=me.mask;aMasks=masks.split(';');for(m=0;m<aMasks.length;m++){var separatorField=",";if(typeof(me.comma_separator)!='undefined'){separatorField=me.comma_separator;}else{txtRealMask=aMasks[m].split('');p=txtRealMask.length-1;for(;p>=0;p--){if(txtRealMask[p]!='#'&&txtRealMask[p]!='%'&&txtRealMask[p]!=' '){separatorField=txtRealMask[p];break;}}} {var evt=event||window.event;var keyPressed=evt.which||evt.keyCode;if((me.mask!='')&&((me.mType=='currency')||(me.mType=='percentage')||((me.validate=="Real")&&(me.mType=='text')))&&(me.mask.indexOf('-')==-1)&&(me.element.value!='')){masks=me.mask;aMasks=masks.split(';');for(m=0;m<aMasks.length;m++){var separatorField=",";if(typeof(me.comma_separator)!='undefined'){separatorField=me.comma_separator;}else{txtRealMask=aMasks[m].split('');p=txtRealMask.length-1;for(;p>=0;p--){if(txtRealMask[p]!='#'&&txtRealMask[p]!='%'&&txtRealMask[p]!=' '){separatorField=txtRealMask[p];break;}}}
@@ -1207,7 +1210,7 @@ dropdowns=grids[j].getElementsByTagName('select');for(i=0;i<dropdowns.length;i++
fieldGridName=$label[1]+"["+$label[2]+"["+$label[3].split("]")[0];if(!notValidateThisFields.inArray(fieldGridName)){invalidFields.push($fieldName);} fieldGridName=$label[1]+"["+$label[2]+"["+$label[3].split("]")[0];if(!notValidateThisFields.inArray(fieldGridName)){invalidFields.push($fieldName);}
vtext.failed();}else{vtext.passed();}}} vtext.failed();}else{vtext.passed();}}}
return(invalidFields);};var swSubmitValidateForm=1;var validateForm=function(sRequiredFields){if(swSubmitValidateForm==1){swSubmitValidateForm=0;sFormName=document.getElementById('__DynaformName__');if(typeof(__dynaformSVal__)!='undefined'&&(typeof(sFormName)!='undefined'&&sFormName!='login')&&(typeof(__usernameLogged__)!='undefined'&&__usernameLogged__!='')){if(!sessionPersits()){showPromptLogin('session');swSubmitValidateForm=1;return false;}} return(invalidFields);};var swSubmitValidateForm=1;var validateForm=function(sRequiredFields){if(swSubmitValidateForm==1){swSubmitValidateForm=0;sFormName=document.getElementById('__DynaformName__');if(typeof(__dynaformSVal__)!='undefined'&&(typeof(sFormName)!='undefined'&&sFormName!='login')&&(typeof(__usernameLogged__)!='undefined'&&__usernameLogged__!='')){if(!sessionPersits()){showPromptLogin('session');swSubmitValidateForm=1;return false;}}
if(typeof(sRequiredFields)!='object'||sRequiredFields.indexOf("%27")>0){sRequiredFields=sRequiredFields.replace(/%27/gi,'"');} sRequiredFields=sRequiredFields.replace(/\n/g," ");if(typeof(sRequiredFields)!='object'||sRequiredFields.indexOf("%27")>0){sRequiredFields=sRequiredFields.replace(/%27/gi,'"');}
if(typeof(sRequiredFields)!='object'||sRequiredFields.indexOf("%39")>0){sRequiredFields=sRequiredFields.replace(/%39/gi,"'");} if(typeof(sRequiredFields)!='object'||sRequiredFields.indexOf("%39")>0){sRequiredFields=sRequiredFields.replace(/%39/gi,"'");}
aRequiredFields=eval(sRequiredFields);var sMessage='';var invalid_fields=Array();var fielEmailInvalid=Array();for(var i=0;i<aRequiredFields.length;i++){aRequiredFields[i].label=(aRequiredFields[i].label=='')?aRequiredFields[i].name:aRequiredFields[i].label;if(!notValidateThisFields.inArray(aRequiredFields[i].name)){if(typeof aRequiredFields[i].required!='undefined'){required=aRequiredFields[i].required;}else{required=1;} aRequiredFields=eval(sRequiredFields);var sMessage='';var invalid_fields=Array();var fielEmailInvalid=Array();for(var i=0;i<aRequiredFields.length;i++){aRequiredFields[i].label=(aRequiredFields[i].label=='')?aRequiredFields[i].name:aRequiredFields[i].label;if(!notValidateThisFields.inArray(aRequiredFields[i].name)){if(typeof aRequiredFields[i].required!='undefined'){required=aRequiredFields[i].required;}else{required=1;}
if(typeof aRequiredFields[i].validate!='undefined'){validate=aRequiredFields[i].validate;}else{validate='';} if(typeof aRequiredFields[i].validate!='undefined'){validate=aRequiredFields[i].validate;}else{validate='';}
@@ -1355,6 +1358,7 @@ this.aElements[this.aElements.length-1].validate=this.aFields[j].oProperties.val
break;case"percentage":this.aElements.push(new G_Percentage(oForm,elem,elemName));if(this.aFields[j].oProperties){if(this.aFields[j].oProperties.comma_separator){this.aElements[this.aElements.length-1].comma_separator=this.aFields[j].oProperties.comma_separator;} break;case"percentage":this.aElements.push(new G_Percentage(oForm,elem,elemName));if(this.aFields[j].oProperties){if(this.aFields[j].oProperties.comma_separator){this.aElements[this.aElements.length-1].comma_separator=this.aFields[j].oProperties.comma_separator;}
this.aElements[this.aElements.length-1].validate=this.aFields[j].oProperties.validate;this.aElements[this.aElements.length-1].mask=this.aFields[j].oProperties.mask;} this.aElements[this.aElements.length-1].validate=this.aFields[j].oProperties.validate;this.aElements[this.aElements.length-1].mask=this.aFields[j].oProperties.mask;}
break;case"dropdown":this.aElements.push(new G_DropDown(oForm,elem,elemName));if(this.aFields[j].oProperties){this.aElements[this.aElements.length-1].mask=this.aFields[j].oProperties.sMask;} break;case"dropdown":this.aElements.push(new G_DropDown(oForm,elem,elemName));if(this.aFields[j].oProperties){this.aElements[this.aElements.length-1].mask=this.aFields[j].oProperties.sMask;}
break;case"date":this.aElements.push(new G_Date(oForm,elem,elemName));if(this.aFields[j].oProperties){this.aElements[this.aElements.length-1].mask=dateSetMask(this.aFields[j].oProperties.mask);}
break;default:this.aElements.push(new G_Field(oForm,elem,elemName));if(this.aFields[j].oProperties){this.aElements[this.aElements.length-1].mask=this.aFields[j].oProperties.sMask;} break;default:this.aElements.push(new G_Field(oForm,elem,elemName));if(this.aFields[j].oProperties){this.aElements[this.aElements.length-1].mask=this.aFields[j].oProperties.sMask;}
break;}}}} break;}}}}
var sw=false;if(this.allDependentFields==""){sw=true;} var sw=false;if(this.allDependentFields==""){sw=true;}

View File

@@ -376,7 +376,30 @@ class Form extends XmlForm
switch ($v->type) { switch ($v->type) {
case 'radiogroup': case 'radiogroup':
$values[$k] = $newValues[$k]; $values[$k] = $newValues[$k];
$values[$k . "_label"] = $newValues[$k . "_label"] = $v->options[$newValues[$k]];
if (isset($v->options[$newValues[$k]])) {
$values[$k . "_label"] = $newValues[$k . "_label"] = $v->options[$newValues[$k]];
} else {
$query = G::replaceDataField( $this->fields[$k]->sql, $newValues );
//Execute just if a query was set, it should be not empty
if (trim($query) == "") {
continue; //if it is empty string skip it
}
//We do the query to the external connection and we've got the label
$con = Propel::getConnection(($this->fields[$k]->sqlConnection != "") ? $this->fields[$k]->sqlConnection : "workflow");
$stmt = $con->prepareStatement($query);
$rs = $stmt->executeQuery(ResultSet::FETCHMODE_NUM);
while ($rs->next()) {
list ($rowId, $rowContent) = $rs->getRow();
if ($newValues[$k] == $rowId) {
$values[$k . "_label"] = $rowContent;
break;
}
}
}
break; break;
case 'suggest': case 'suggest':
$values[$k] = $newValues[$k]; $values[$k] = $newValues[$k];
@@ -548,6 +571,15 @@ class Form extends XmlForm
//This value is added when the user does not mark any checkbox //This value is added when the user does not mark any checkbox
$values[$k] = "__NULL__"; $values[$k] = "__NULL__";
break; break;
case "grid":
$values[$k] = $_FILES["form"]["name"][$k];
foreach ($values[$k] as $inp => $ii){
foreach ($ii as $oo => $ee){
$x = $v->fields;
$_POST["INPUTS"][$k][$oo] = $x[$oo]->input;
}
}
break;
} }
} }
} else { } else {
@@ -690,6 +722,9 @@ class Form extends XmlForm
break; break;
case "grid": case "grid":
$i = 0; $i = 0;
if (!is_array($data[$v->name])) {
$data[$v->name] = array();
}
foreach ($data[$v->name] as $dataGrid) { foreach ($data[$v->name] as $dataGrid) {
$i = $i + 1; $i = $i + 1;

View File

@@ -319,6 +319,15 @@ class XmlForm_Field
if ($this->sql === '') { if ($this->sql === '') {
return 1; return 1;
} }
if(isset($this->mode) && $this->mode == "edit" && (isset($this->owner->values[$this->name]) && $this->owner->values[$this->name] !== "")){
return 1;
}
if(isset($this->mode) && $this->mode == "view" && ($this->type == "text" || $this->type == "currency" || $this->type == "percentage" || $this->type == "textarea" || $this->type == "hidden" || $this->type == "suggest")){
return 1;
}
if (! $this->sqlConnection) { if (! $this->sqlConnection) {
$this->sqlConnection = 'workflow'; $this->sqlConnection = 'workflow';
} }

View File

@@ -577,7 +577,7 @@ class Cases
if ($jump != '') { if ($jump != '') {
$aCases = $oAppDel->LoadParallel($sAppUid); $aCases = $oAppDel->LoadParallel($sAppUid);
$aFields['TAS_UID'] = ''; $aFields['TAS_UID'] = '';
$aFields['CURRENT_USER'] = ''; $aFields['CURRENT_USER'] = array();
foreach ($aCases as $key => $value) { foreach ($aCases as $key => $value) {
$oCurUser->load($value['USR_UID']); $oCurUser->load($value['USR_UID']);
$aFields['CURRENT_USER'][]= $oCurUser->getUsrFirstname() . ' ' . $oCurUser->getUsrLastname(); $aFields['CURRENT_USER'][]= $oCurUser->getUsrFirstname() . ' ' . $oCurUser->getUsrLastname();
@@ -5069,7 +5069,8 @@ class Cases
"INPUT" => Array(), "INPUT" => Array(),
"OUTPUT" => Array(), "OUTPUT" => Array(),
"CASES_NOTES" => 0, "CASES_NOTES" => 0,
"MSGS_HISTORY" => Array() "MSGS_HISTORY" => Array(),
"SUMMARY_FORM" => 0
); );
//permissions per user //permissions per user
@@ -5226,6 +5227,7 @@ class Cases
$oDataset->next(); $oDataset->next();
} }
$RESULT['CASES_NOTES'] = 1; $RESULT['CASES_NOTES'] = 1;
$RESULT['SUMMARY_FORM'] = 1;
// Message History // Message History
$RESULT['MSGS_HISTORY'] = array('PERMISSION' => $ACTION); $RESULT['MSGS_HISTORY'] = array('PERMISSION' => $ACTION);
@@ -5373,6 +5375,9 @@ class Cases
case 'CASES_NOTES': case 'CASES_NOTES':
$RESULT['CASES_NOTES'] = 1; $RESULT['CASES_NOTES'] = 1;
break; break;
case 'SUMMARY_FORM':
$RESULT['SUMMARY_FORM'] = 1;
break;
case 'MSGS_HISTORY': case 'MSGS_HISTORY':
// Permission // Permission
$RESULT['MSGS_HISTORY'] = array('PERMISSION' => $ACTION); $RESULT['MSGS_HISTORY'] = array('PERMISSION' => $ACTION);
@@ -5424,7 +5429,8 @@ class Cases
"INPUT_DOCUMENTS" => $RESULT['INPUT'], "INPUT_DOCUMENTS" => $RESULT['INPUT'],
"OUTPUT_DOCUMENTS" => $RESULT['OUTPUT'], "OUTPUT_DOCUMENTS" => $RESULT['OUTPUT'],
"CASES_NOTES" => $RESULT['CASES_NOTES'], "CASES_NOTES" => $RESULT['CASES_NOTES'],
"MSGS_HISTORY" => $RESULT['MSGS_HISTORY'] "MSGS_HISTORY" => $RESULT['MSGS_HISTORY'],
"SUMMARY_FORM" => $RESULT['SUMMARY_FORM']
); );
} }

View File

@@ -49,6 +49,15 @@ class p11835 extends patch
return patch::$isPathchable; return patch::$isPathchable;
} }
public static function pmVersion($version)
{
if (preg_match("/^\D*([\d\.]+)\D*$/", $version, $matches)) {
$version = $matches[1];
}
return $version;
}
/* /*
* Note.- Use after DB was upgraded. * Note.- Use after DB was upgraded.
* Set the patch, setting all the TAS_GROUP_VARIABLE to '' * Set the patch, setting all the TAS_GROUP_VARIABLE to ''
@@ -83,7 +92,38 @@ class p11835 extends patch
$aRow = $recordSet->getRow(); $aRow = $recordSet->getRow();
} }
} }
echo $count. " records where patched to use SELF_SERVICE feature.\n";
//Fix BUG-15394
G::LoadClass("configuration");
$conf = new Configurations();
if (!$conf->exists("HOTFIX")) {
//HOTFIX, Create empty record
$conf->aConfig = array();
$conf->saveConfig("HOTFIX", "");
}
$arrayHotfix = $conf->getConfiguration("HOTFIX", "");
$arrayHotfix = (is_array($arrayHotfix))? $arrayHotfix : array($arrayHotfix);
$pmVersion = self::pmVersion(System::getVersion()) . "";
if (($pmVersion == "2.5.2.4" || $pmVersion == "2.8") && !in_array("15394", $arrayHotfix)) {
$cnn = Propel::getConnection("workflow");
$stmt = $cnn->prepareStatement("UPDATE USERS_PROPERTIES SET USR_LOGGED_NEXT_TIME = 0");
$rs = $stmt->executeQuery();
//HOTFIX, Update record (add 15394)
$arrayHotfix[] = "15394";
$conf->aConfig = $arrayHotfix;
$conf->saveConfig("HOTFIX", "");
}
//echo
echo $count . " records where patched to use SELF_SERVICE feature.\n";
} }
} }

View File

@@ -42,6 +42,7 @@ define('PM_CREATE_NEW_DELEGATION', 1013);
define('PM_SINGLE_SIGN_ON', 1014); define('PM_SINGLE_SIGN_ON', 1014);
define('PM_GET_CASES_AJAX_LISTENER', 1015); define('PM_GET_CASES_AJAX_LISTENER', 1015);
define('PM_BEFORE_CREATE_USER', 1016); define('PM_BEFORE_CREATE_USER', 1016);
define('PM_AFTER_LOGIN', 1017);

View File

@@ -3639,6 +3639,10 @@ class processMap
$sObjectType = G::LoadTranslation('MSGS_HISTORY'); $sObjectType = G::LoadTranslation('MSGS_HISTORY');
$sObject = G::LoadTranslation('ID_ALL'); $sObject = G::LoadTranslation('ID_ALL');
break; break;
case 'SUMMARY_FORM':
$sObjectType = G::LoadTranslation('ID_SUMMARY_FORM');
$sObject = G::LoadTranslation('ID_ALL');
break;
default: default:
$sObjectType = G::LoadTranslation('ID_ALL'); $sObjectType = G::LoadTranslation('ID_ALL');
$sObject = G::LoadTranslation('ID_ALL'); $sObject = G::LoadTranslation('ID_ALL');

View File

@@ -1142,7 +1142,7 @@ class System
@preg_match( $patt, $content, $match ); @preg_match( $patt, $content, $match );
if (is_array( $match ) && count( $match ) > 0 && isset( $match[1] )) { if (is_array( $match ) && count( $match ) > 0 && isset( $match[1] )) {
$newUrl = 'sys/' . $conf['lang'] . '/' . $conf['skin'] . '/login/login'; $newUrl = "sys/" . (($conf["lang"] != "")? $conf["lang"] : ((defined("SYS_LANG") && SYS_LANG != "")? SYS_LANG : "en")) . "/" . $conf["skin"] . "/login/login";
$newMetaStr = str_replace( $match[1], $newUrl, $match[0] ); $newMetaStr = str_replace( $match[1], $newUrl, $match[0] );
$newContent = str_replace( $match[0], $newMetaStr, $content ); $newContent = str_replace( $match[0], $newMetaStr, $content );

View File

@@ -532,6 +532,29 @@ class workspaceTools
$oCriteria->add(ConfigurationPeer::OBJ_UID, array("todo", "draft", "sent", "unassigned", "paused", "cancelled"), Criteria::NOT_IN); $oCriteria->add(ConfigurationPeer::OBJ_UID, array("todo", "draft", "sent", "unassigned", "paused", "cancelled"), Criteria::NOT_IN);
ConfigurationPeer::doDelete($oCriteria); ConfigurationPeer::doDelete($oCriteria);
// end of reset // end of reset
//close connection
$connection = Propel::getConnection( 'workflow' );
$sql_sleep = "SELECT * FROM information_schema.processlist WHERE command = 'Sleep' and user = SUBSTRING_INDEX(USER(),'@',1) and db = DATABASE() ORDER BY id;";
$stmt_sleep = $connection->createStatement();
$rs_sleep = $stmt_sleep->executeQuery( $sql_sleep, ResultSet::FETCHMODE_ASSOC );
while ($rs_sleep->next()) {
$row_sleep = $rs_sleep->getRow();
$oStatement_sleep = $connection->prepareStatement( "kill ". $row_sleep['ID'] );
$oStatement_sleep->executeQuery();
}
$sql_query = "SELECT * FROM information_schema.processlist WHERE user = SUBSTRING_INDEX(USER(),'@',1) and db = DATABASE() ORDER BY id;";
$stmt_query = $connection->createStatement();
$rs_query = $stmt_query->executeQuery( $sql_query, ResultSet::FETCHMODE_ASSOC );
while ($rs_query->next()) {
$row_query = $rs_query->getRow();
$oStatement_query = $connection->prepareStatement( "kill ". $row_query['ID'] );
$oStatement_query->executeQuery();
}
} }
/** /**

View File

@@ -1051,8 +1051,8 @@ class AppCacheView extends BaseAppCacheView
$criteria->getNewCriterion(AppCacheViewPeer::APP_STATUS, "CANCELLED", CRITERIA::EQUAL)->addAnd( $criteria->getNewCriterion(AppCacheViewPeer::APP_STATUS, "CANCELLED", CRITERIA::EQUAL)->addAnd(
$criteria->getNewCriterion(AppCacheViewPeer::DEL_THREAD_STATUS, "CLOSED")) $criteria->getNewCriterion(AppCacheViewPeer::DEL_THREAD_STATUS, "CLOSED"))
)->addOr( )->addOr(
//Completed - getCompleted() $criteria->getNewCriterion(AppCacheViewPeer::APP_STATUS, "COMPLETED", CRITERIA::EQUAL)->addAnd(
$criteria->getNewCriterion(AppCacheViewPeer::APP_STATUS, "COMPLETED", CRITERIA::EQUAL) $criteria->getNewCriterion(AppCacheViewPeer::DEL_LAST_INDEX, '1', Criteria::EQUAL))
); );
if (!$doCount) { if (!$doCount) {

View File

@@ -211,6 +211,8 @@ class AppDelegation extends BaseAppDelegation
public function LoadParallel ($AppUid) public function LoadParallel ($AppUid)
{ {
$aCases = array();
$c = new Criteria( 'workflow' ); $c = new Criteria( 'workflow' );
$c->addSelectColumn( AppDelegationPeer::APP_UID ); $c->addSelectColumn( AppDelegationPeer::APP_UID );
$c->addSelectColumn( AppDelegationPeer::DEL_INDEX ); $c->addSelectColumn( AppDelegationPeer::DEL_INDEX );

View File

@@ -844,7 +844,9 @@ class OutputDocument extends BaseOutputDocument
//$pdf->SetFont('dejavusans', '', 14, '', true); //$pdf->SetFont('dejavusans', '', 14, '', true);
// Detect chinese, japanese, thai // Detect chinese, japanese, thai
if (preg_match('/[\x{30FF}\x{3040}-\x{309F}\x{4E00}-\x{9FFF}\x{0E00}-\x{0E7F}]/u', $sContent, $matches)) { if (preg_match('/[\x{30FF}\x{3040}-\x{309F}\x{4E00}-\x{9FFF}\x{0E00}-\x{0E7F}]/u', $sContent, $matches)) {
$pdf->SetFont('kozminproregular'); $fileArialunittf = PATH_THIRDPARTY . "tcpdf" . PATH_SEP . "fonts" . PATH_SEP . "arialuni.ttf";
$pdf->SetFont((!file_exists($fileArialunittf))? "kozminproregular" : $pdf->addTTFfont($fileArialunittf, "TrueTypeUnicode", "", 32));
} }
// Add a page // Add a page

View File

@@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ProcessMaker 2.5.2.3\n" "Project-Id-Version: ProcessMaker 2.5.2.3\n"
"POT-Creation-Date: \n" "POT-Creation-Date: \n"
"PO-Revision-Date: 2014-07-03 12:29:08\n" "PO-Revision-Date: 2014-07-22 13:19:57\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Colosa Developers Team <developers@colosa.com>\n" "Language-Team: Colosa Developers Team <developers@colosa.com>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -5032,8 +5032,8 @@ msgstr "To delete a language you should select a item from the list first."
# TRANSLATION # TRANSLATION
# LABEL/ID_DELETE_LANGUAGE_CONFIRM # LABEL/ID_DELETE_LANGUAGE_CONFIRM
#: LABEL/ID_DELETE_LANGUAGE_CONFIRM #: LABEL/ID_DELETE_LANGUAGE_CONFIRM
msgid "Do you want remove the language \"{0}\" ?" msgid "Are you sure you want to delete the language \"{0}\"?"
msgstr "Do you want remove the language \"{0}\" ?" msgstr "Are you sure you want to delete the language \"{0}\"?"
# TRANSLATION # TRANSLATION
# LABEL/ID_DELETE_LANGUAGE # LABEL/ID_DELETE_LANGUAGE
@@ -16339,6 +16339,18 @@ msgstr "The variable \"{0}\" required the variables \"{1}\" for the query."
msgid "The Output Document with {0}: {1} it's assigned in \"{2}\"." msgid "The Output Document with {0}: {1} it's assigned in \"{2}\"."
msgstr "The Output Document with {0}: {1} it's assigned in \"{2}\"." msgstr "The Output Document with {0}: {1} it's assigned in \"{2}\"."
# TRANSLATION
# LABEL/ID_EXISTS_FILES
#: LABEL/ID_EXISTS_FILES
msgid "The file exists."
msgstr "The file exists."
# TRANSLATION
# LABEL/ID_FILENAME_REQUIRED
#: LABEL/ID_FILENAME_REQUIRED
msgid "The filename is required."
msgstr "The filename is required."
# additionalTables/additionalTablesData.xml?ADD_TAB_NAME # additionalTables/additionalTablesData.xml?ADD_TAB_NAME
# additionalTables/additionalTablesData.xml # additionalTables/additionalTablesData.xml
#: text - ADD_TAB_NAME #: text - ADD_TAB_NAME

View File

@@ -30,6 +30,7 @@ class Admin extends Controller
$timeZonesList = array_keys( $timeZonesList ); $timeZonesList = array_keys( $timeZonesList );
$mainController = new Main(); $mainController = new Main();
$languagesList = $mainController->getLanguagesList(); $languagesList = $mainController->getLanguagesList();
$languagesList[] = array ("", G::LoadTranslation("ID_USE_LANGUAGE_URL"));
$sysConf = System::getSystemConfiguration( PATH_CONFIG . 'env.ini' ); $sysConf = System::getSystemConfiguration( PATH_CONFIG . 'env.ini' );
foreach ($skinsList['skins'] as $skin) { foreach ($skinsList['skins'] as $skin) {

View File

@@ -119,7 +119,7 @@ class adminProxy extends HttpProxyController
$this->success = true; $this->success = true;
$this->restart = $restart; $this->restart = $restart;
$this->url = '/sys' . SYS_SYS . '/' . $sysConf['default_lang'] . '/' . $sysConf['default_skin'] . $urlPart; $this->url = "/sys" . SYS_SYS . "/" . (($sysConf["default_lang"] != "")? $sysConf["default_lang"] : ((defined("SYS_LANG") && SYS_LANG != "")? SYS_LANG : "en")) . "/" . $sysConf["default_skin"] . $urlPart;
$this->message = 'Saved Successfully'; $this->message = 'Saved Successfully';
} }

View File

@@ -334,6 +334,7 @@ class Ajax
$processData['PRO_AUTHOR'] = '(USER DELETED)'; $processData['PRO_AUTHOR'] = '(USER DELETED)';
} }
G::LoadClass('configuration');
$conf = new Configurations(); $conf = new Configurations();
$conf->getFormats(); $conf->getFormats();
$processData['PRO_CREATE_DATE'] = $conf->getSystemDate($processData['PRO_CREATE_DATE']); $processData['PRO_CREATE_DATE'] = $conf->getSystemDate($processData['PRO_CREATE_DATE']);
@@ -809,7 +810,7 @@ class Ajax
public function dynaformViewFromHistory() public function dynaformViewFromHistory()
{ {
?> ?>
<link rel="stylesheet" type="text/css" href="/css/classic.css" /> <link rel="stylesheet" type="text/css" href="/css/<?php echo SYS_SKIN; ?>.css" />
<script type="text/javascript"> <script type="text/javascript">
//!Code that simulated reload library javascript maborak //!Code that simulated reload library javascript maborak

View File

@@ -47,6 +47,12 @@ try {
} }
$applicationFields = $case->loadCase( $_REQUEST['APP_UID'], $_REQUEST['DEL_INDEX'] ); $applicationFields = $case->loadCase( $_REQUEST['APP_UID'], $_REQUEST['DEL_INDEX'] );
$respView = $case->getAllObjectsFrom( $applicationFields['PRO_UID'], $_REQUEST['APP_UID'], $applicationFields['TAS_UID'], $_SESSION['USER_LOGGED'], 'VIEW' );
if ($respView['SUMMARY_FORM'] == 0) {
throw new Exception( G::LoadTranslation( 'ID_SUMMARY_FORM_NO_PERMISSIONS' ) );
}
if (file_exists( PATH_DYNAFORM . $applicationFields['PRO_UID'] . PATH_SEP . $_REQUEST['DYN_UID'] . '.xml' )) { if (file_exists( PATH_DYNAFORM . $applicationFields['PRO_UID'] . PATH_SEP . $_REQUEST['DYN_UID'] . '.xml' )) {
$applicationFields['APP_DATA']['__DYNAFORM_OPTIONS']['PREVIOUS_STEP_LABEL'] = ''; $applicationFields['APP_DATA']['__DYNAFORM_OPTIONS']['PREVIOUS_STEP_LABEL'] = '';
$applicationFields['APP_DATA']['__DYNAFORM_OPTIONS']['PREVIOUS_STEP'] = '#'; $applicationFields['APP_DATA']['__DYNAFORM_OPTIONS']['PREVIOUS_STEP'] = '#';

View File

@@ -93,7 +93,7 @@ try {
} }
if (!isset($uid) || $uid < 0) { if (!isset($uid) || $uid < 0) {
if (isset($_SESSION['FAILED_LOGINS'])) { if (isset($_SESSION['FAILED_LOGINS']) && ($uid == -1 || $uid == -2)) {
$_SESSION['FAILED_LOGINS']++; $_SESSION['FAILED_LOGINS']++;
} }
if (!defined('PPP_FAILED_LOGINS')) { if (!defined('PPP_FAILED_LOGINS')) {
@@ -113,8 +113,13 @@ try {
$oStatement = $oConnection->prepareStatement("UPDATE USERS SET USR_STATUS = 'INACTIVE' WHERE USR_UID = '" . $sUserUID . "'"); $oStatement = $oConnection->prepareStatement("UPDATE USERS SET USR_STATUS = 'INACTIVE' WHERE USR_UID = '" . $sUserUID . "'");
$oStatement->executeQuery(); $oStatement->executeQuery();
unset($_SESSION['FAILED_LOGINS']); unset($_SESSION['FAILED_LOGINS']);
G::SendMessageText(G::LoadTranslation('ID_ACCOUNT') . ' "' . $usr . '" ' . G::LoadTranslation('ID_ACCOUNT_DISABLED_CONTACT_ADMIN'), 'warning'); $errLabel = G::LoadTranslation('ID_ACCOUNT') . ' "' . $usr . '" ' . G::LoadTranslation('ID_ACCOUNT_DISABLED_CONTACT_ADMIN');
} }
//Log failed authentications
$message = "| Many failed authentication attempts for USER: " . $usr . " | IP: " . G::getIpAddress() . " | WS: " . SYS_SYS;
$message .= " | BROWSER: " . $_SERVER['HTTP_USER_AGENT'] ." | \n" ;
G::log($message, PATH_DATA, 'loginFailed.log');
} }
} }
@@ -131,20 +136,6 @@ try {
} }
} }
//LOG Filed authentications
$filedTimes = (defined(PPP_FAILED_LOGINS)) ? PPP_FAILED_LOGINS : 3;
if($_SESSION['FAILED_LOGINS'] > $filedTimes){
$ip = G::getIpAddress();
$browser = $_SERVER['HTTP_USER_AGENT'];
$path = PATH_DATA;
$message = "| Many failed authentication attempts for USER: " . $usr . " | IP: " . $ip . " | WS: " . SYS_SYS . " | BROWSER: " .$browser ." | \n" ;
$file = "loginFailed.log";
G::log($message, $path, $file);
}
G::header("location: $loginUrl"); G::header("location: $loginUrl");
die; die;
} }
@@ -200,7 +191,7 @@ try {
$lang = $frm['USER_LANG']; $lang = $frm['USER_LANG'];
} }
} else { } else {
if (defined('SYS_LANG')) { if (defined("SYS_LANG") && SYS_LANG != "") {
$lang = SYS_LANG; $lang = SYS_LANG;
} else { } else {
$lang = 'en'; $lang = 'en';
@@ -319,6 +310,12 @@ try {
$oHeadPublisher->addExtJsScript('login/init', false); //adding a javascript file .js $oHeadPublisher->addExtJsScript('login/init', false); //adding a javascript file .js
$oHeadPublisher->assign('uriReq', $sLocation); $oHeadPublisher->assign('uriReq', $sLocation);
$oPluginRegistry =& PMPluginRegistry::getSingleton();
if ($oPluginRegistry->existsTrigger ( PM_AFTER_LOGIN )) {
$oPluginRegistry->executeTriggers ( PM_AFTER_LOGIN , $_SESSION['USER_LOGGED'] );
}
G::RenderPage('publish', 'extJs'); G::RenderPage('publish', 'extJs');
//G::header('Location: ' . $sLocation); //G::header('Location: ' . $sLocation);
die; die;

View File

@@ -149,9 +149,14 @@ G::LoadClass('configuration');
$oConf = new Configurations(); $oConf = new Configurations();
$oConf->loadConfig($obj, 'ENVIRONMENT_SETTINGS', ''); $oConf->loadConfig($obj, 'ENVIRONMENT_SETTINGS', '');
$aFields['USER_LANG'] = isset($oConf->aConfig['login_defaultLanguage'])
? $oConf->aConfig['login_defaultLanguage'] $myUrl = explode("/", $_SERVER["REQUEST_URI"]);
: 'en';
if (isset($myUrl) && $myUrl != "") {
$aFields["USER_LANG"] = $myUrl[2];
} else {
$aFields["USER_LANG"] = isset($oConf->aConfig["login_defaultLanguage"])? $oConf->aConfig["login_defaultLanguage"] : SYS_LANG;
}
$G_PUBLISH = new Publisher(); $G_PUBLISH = new Publisher();
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/login', '', $aFields, SYS_URI . 'login/authentication.php'); $G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/login', '', $aFields, SYS_URI . 'login/authentication.php');

View File

@@ -488,6 +488,22 @@ try {
// '; // ';
// $oHeadPublisher->addScriptCode($jscriptCode); // $oHeadPublisher->addScriptCode($jscriptCode);
$_REQUEST['fcontent'] = $fcontent; $_REQUEST['fcontent'] = $fcontent;
preg_match_all('/\@(?:([\>])([a-zA-Z\_]\w*)|([a-zA-Z\_][\w\-\>\:]*)\(((?:[^\\\\\)]*(?:[\\\\][\w\W])?)*)\))((?:\s*\[[\'"]?\w+[\'"]?\])+)?/',$fcontent,$matches);
foreach ($matches[0] as $key => $value) {
preg_match('/(\!--)'.$value.'(-->)/',$fcontent, $match);
if (count($match)==0) {
$fcontent = preg_replace ('/'.$value.'/i','<!--'.$value.'-->',$fcontent);
}
}
preg_match_all('/\@(?:([\<])([a-zA-Z\_]\w*)|([a-zA-Z\_][\w\-\>\:]*)\(((?:[^\\\\\)]*(?:[\\\\][\w\W])?)*)\))((?:\s*\[[\'"]?\w+[\'"]?\])+)?/',$fcontent,$matches);
foreach ($matches[0] as $key => $value) {
preg_match('/(\!--)'.$value.'(-->)/',$fcontent, $match);
if (count($match)==0) {
$fcontent = preg_replace ('/'.$value.'/i','<!--'.$value.'-->',$fcontent);
}
}
//if($extion[count($extion)-1]=='html' || $extion[count($extion)-1]=='txt'){ //if($extion[count($extion)-1]=='html' || $extion[count($extion)-1]=='txt'){
$aData = Array('pro_uid' => $_REQUEST['pro_uid'], 'fcontent' => $fcontent, 'filename' => $_REQUEST['filename']); $aData = Array('pro_uid' => $_REQUEST['pro_uid'], 'fcontent' => $fcontent, 'filename' => $_REQUEST['filename']);
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'processes/processes_FileEdit', '', $aData); $G_PUBLISH->AddContent('xmlform', 'xmlform', 'processes/processes_FileEdit', '', $aData);
@@ -695,6 +711,21 @@ try {
//$json = new Services_JSON(); //$json = new Services_JSON();
$sOutput = Bootstrap::json_encode($response); $sOutput = Bootstrap::json_encode($response);
break; break;
case "verifyNameFile":
$response = array();
$status = "OK";
$filename = $_POST["filename"];
$pathDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST["pro_uid"] . PATH_SEP;
if (file_exists($pathDirectory . PATH_SEP . $filename)) {
$status = "ERROR";
}
$response["status"] = $status;
echo Bootstrap::json_encode($response);
break;
} }
if (isset($sOutput)) { if (isset($sOutput)) {
die($sOutput); die($sOutput);

View File

@@ -152,17 +152,25 @@ try {
$oContent = new Content(); $oContent = new Content();
$aRow = $oDataset->getRow(); $aRow = $oDataset->getRow();
//THERE IS NO ANY CASE STARTED FROM THES LANGUAGE if($locale != "en"){ //Default Lengage 'en'
if ($aRow[0] == 0) { //so we can delete this language if($locale != SYS_LANG){ //Current lenguage
try { //THERE IS NO ANY CASE STARTED FROM THES LANGUAGE
Content::removeLanguageContent( $locale ); if ($aRow[0] == 0) { //so we can delete this language
$trn->removeTranslationEnvironment( $locale ); try {
echo G::LoadTranslation( 'ID_LANGUAGE_DELETED_SUCCESSFULLY' ); Content::removeLanguageContent( $locale );
} catch (Exception $e) { $trn->removeTranslationEnvironment( $locale );
echo $e->getMessage(); echo G::LoadTranslation( 'ID_LANGUAGE_DELETED_SUCCESSFULLY' );
} } catch (Exception $e) {
echo $e->getMessage();
}
} else {
echo str_replace( '{0}', $aRow[0], G::LoadTranslation( 'ID_LANGUAGE_CANT_DELETE' ) );
}
} else {
echo str_replace( '{0}', $aRow[0], G::LoadTranslation( 'ID_LANGUAGE_CANT_DELETE_CURRENTLY' ) );
}
} else { } else {
echo str_replace( '{0}', $aRow[0], G::LoadTranslation( 'ID_LANGUAGE_CANT_DELETE' ) ); echo str_replace( '{0}', $aRow[0], G::LoadTranslation( 'ID_LANGUAGE_CANT_DELETE_DEFAULT' ) );
} }
break; break;
} }

View File

@@ -14,6 +14,8 @@ switch ($request) {
); );
} }
$result->rows[] = array ("LAN_ID" => "", "LAN_NAME" => G::LoadTranslation("ID_USE_LANGUAGE_URL"));
print (G::json_encode( $result )) ; print (G::json_encode( $result )) ;
break; break;
case 'saveSettings': case 'saveSettings':

View File

@@ -1,4 +1,6 @@
<?php <?php
global $RBAC;
$RBAC->requirePermissions( 'PM_USERS' );
//calculating the max upload file size; //calculating the max upload file size;
$POST_MAX_SIZE = ini_get( 'post_max_size' ); $POST_MAX_SIZE = ini_get( 'post_max_size' );

View File

@@ -1589,4 +1589,11 @@ td.x-cnotes-label {
padding-bottom: 15px; padding-bottom: 15px;
padding-left: 3px; padding-left: 3px;
padding-right: 3px; padding-right: 3px;
} }
.x-grid3-cell-inner, .x-grid3-hd-inner {
overflow:hidden;
padding:3px 3px 3px 5px;
white-space:normal;
}

View File

@@ -1673,3 +1673,9 @@ td.x-cnotes-label {
#ext-comp-1010.xtb-text { #ext-comp-1010.xtb-text {
font-size: 9px; font-size: 9px;
} }
.x-grid3-cell-inner, .x-grid3-hd-inner {
overflow:hidden;
padding:3px 3px 3px 5px;
white-space:normal;
}

View File

@@ -66,6 +66,7 @@ Ext.onReady(function() {
name: 'DAS_INS_TITLE', name: 'DAS_INS_TITLE',
fieldLabel: _('ID_TITLE'), fieldLabel: _('ID_TITLE'),
allowBlank: false, allowBlank: false,
maxLength: 200,
width: 320, width: 320,
listeners: { listeners: {
blur: function() { blur: function() {

View File

@@ -185,6 +185,11 @@ Ext.onReady(function(){
} }
}); });
function formatLineWrap(value){
str = '<div class="title-dashboard-text">'+value+'</div>';
return str;
}
cmodel = new Ext.grid.ColumnModel({ cmodel = new Ext.grid.ColumnModel({
defaults: { defaults: {
width: 50, width: 50,
@@ -192,7 +197,7 @@ Ext.onReady(function(){
}, },
columns: [ columns: [
{id:'DAS_INS_UID', dataIndex: 'DAS_INS_UID', hidden:true, hideable:false}, {id:'DAS_INS_UID', dataIndex: 'DAS_INS_UID', hidden:true, hideable:false},
{header: _("ID_TITLE"), dataIndex: "DAS_INS_TITLE", width: 150, hidden: false, align: "left"}, {header: _("ID_TITLE"), dataIndex: "DAS_INS_TITLE", width: 150, hidden: false, align: "left", renderer : formatLineWrap},
{header: _("ID_DASHLET"), dataIndex: "DAS_TITLE", width: 200, hidden: false, align: "left"}, {header: _("ID_DASHLET"), dataIndex: "DAS_TITLE", width: 200, hidden: false, align: "left"},
{header: _('ID_VERSION'), dataIndex: 'DAS_VERSION', width: 60, hidden: false, align: 'center'}, {header: _('ID_VERSION'), dataIndex: 'DAS_VERSION', width: 60, hidden: false, align: 'center'},
{header: _('ID_ASSIGNED_TO'), dataIndex: 'DAS_INS_OWNER_TITLE', width: 200, hidden: false, align: 'center'}, {header: _('ID_ASSIGNED_TO'), dataIndex: 'DAS_INS_OWNER_TITLE', width: 200, hidden: false, align: 'center'},

View File

@@ -144,7 +144,7 @@
&nbsp;<?php echo "$node_name";?> &nbsp;<?php echo "$node_name";?>
</td> </td>
<td><p style="font-size:12px; color:#1C3166; font-weight:bold"> <td><p style="font-size:12px; color:#1C3166; font-weight:bold">
<?php if( isset($node['__CONTENT__'][SYS_LANG]['__VALUE__']) ){ <?php if (isset($node["__CONTENT__"][SYS_LANG]["__VALUE__"]) && $node["__CONTENT__"][SYS_LANG]["__VALUE__"] != "") {
if( strlen($node['__CONTENT__'][SYS_LANG]['__VALUE__']) > 30 ){ if( strlen($node['__CONTENT__'][SYS_LANG]['__VALUE__']) > 30 ){
$label = substr(trim(strip_tags(G::stripCDATA($node['__CONTENT__'][SYS_LANG]['__VALUE__']))), 0, 30 ) . '...'; $label = substr(trim(strip_tags(G::stripCDATA($node['__CONTENT__'][SYS_LANG]['__VALUE__']))), 0, 30 ) . '...';
} else { } else {

View File

@@ -275,6 +275,7 @@ Ext.onReady(function(){
region: 'center', region: 'center',
xtype : 'fieldset', xtype : 'fieldset',
labelWidth: 200, labelWidth: 200,
autoScroll: true,
items:[ items:[
{ {
xtype : 'displayfield', xtype : 'displayfield',
@@ -683,6 +684,7 @@ Ext.onReady(function(){
region: 'center', region: 'center',
xtype : 'panel', xtype : 'panel',
bodyStyle : 'background:none;padding-left:20px;padding-right:20px;padding-top:20px;padding-bottom:20px;font-size:1.2em;', bodyStyle : 'background:none;padding-left:20px;padding-right:20px;padding-top:20px;padding-bottom:20px;font-size:1.2em;',
autoScroll: true,
items:[ items:[
{ {
xtype:'fieldset', xtype:'fieldset',

View File

@@ -622,12 +622,14 @@ render_lastlogin = function(v){
//Load Grid By Default //Load Grid By Default
GridByDefault = function(){ GridByDefault = function(){
searchText.reset(); searchText.reset();
infoGrid.store.load(); store.setBaseParam( 'textFilter', '');
store.load();
}; };
//Do Search Function //Do Search Function
DoSearch = function(){ DoSearch = function(){
infoGrid.store.load({params: {textFilter: searchText.getValue()}}); store.setBaseParam( 'textFilter', searchText.getValue());
store.load();
}; };
//Delete User Function //Delete User Function

View File

@@ -1,51 +1,85 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<dynaForm name="processes_EditObjectPermission" width="100%" enableTemplate="1"> <dynaForm name="processes_EditObjectPermission" width="100%" enableTemplate="1">
<TITLE type="title"> <TITLE type="title">
<en><![CDATA[Edit Specific Permission]]></en> <en>Edit Specific Permission</en>
</TITLE> </TITLE>
<LANG type="private"/> <LANG type="private"/>
<PRO_UID type="hidden"/> <PRO_UID type="hidden"/>
<OP_UID type="hidden"/> <OP_UID type="hidden"/>
<OP_CASE_STATUS type="dropdown" mode="edit">
<en><![CDATA[Status Case]]><option name="ALL"><![CDATA[ALL]]></option><option name="DRAFT"><![CDATA[DRAFT]]></option><option name="TO_DO"><![CDATA[TO_DO]]></option><option name="PAUSED"><![CDATA[PAUSED]]></option><option name="COMPLETED"><![CDATA[COMPLETED]]></option></en> <OP_CASE_STATUS type="dropdown" mode="edit">
</OP_CASE_STATUS> <en>Status Case
<TAS_UID type="dropdown" mode="edit"><![CDATA[SELECT TAS_UID, CON_VALUE AS TAS_TITLE FROM TASK LEFT JOIN CONTENT ON (TAS_UID = CON_ID AND CON_CATEGORY = 'TAS_TITLE' AND CON_LANG = @@LANG) WHERE PRO_UID = @@PRO_UID AND TAS_TYPE = 'NORMAL' ORDER BY TAS_TITLE]]><en><![CDATA[Target Task]]><option name=""><![CDATA[All Tasks]]></option></en></TAS_UID> <option name="ALL">ALL</option>
<GROUP_USER type="text" mode="view"> <option name="DRAFT">DRAFT</option>
<en><![CDATA[Group or User]]></en> <option name="TO_DO">TO_DO</option>
</GROUP_USER> <option name="PAUSED">PAUSED</option>
<GROUP_USER_DROPDOWN type="title" mode="view" enableHtml="1" label="@#GROUP_USER"/> <option name="COMPLETED">COMPLETED</option>
<OP_TASK_SOURCE type="dropdown" mode="edit"><![CDATA[SELECT TAS_UID, CON_VALUE AS TAS_TITLE FROM TASK LEFT JOIN CONTENT ON (TAS_UID = CON_ID AND CON_CATEGORY = 'TAS_TITLE' AND CON_LANG = @@LANG) WHERE PRO_UID = @@PRO_UID AND TAS_TYPE = 'NORMAL' ORDER BY TAS_TITLE]]><en><![CDATA[Origin Task]]><option name=""><![CDATA[All Tasks]]></option></en></OP_TASK_SOURCE> </en>
<OP_PARTICIPATE type="yesno" defaultvalue="1" mode="edit"> </OP_CASE_STATUS>
<en><![CDATA[Participation required?]]></en>
</OP_PARTICIPATE> <TAS_UID type="dropdown" mode="edit">
<OP_OBJ_TYPE type="dropdown" mode="edit" dependentfields="OP_OBJ_UID"> <![CDATA[SELECT TAS_UID, CON_VALUE AS TAS_TITLE FROM TASK LEFT JOIN CONTENT ON (TAS_UID = CON_ID AND CON_CATEGORY = 'TAS_TITLE' AND CON_LANG = @@LANG) WHERE PRO_UID = @@PRO_UID AND TAS_TYPE = 'NORMAL' ORDER BY TAS_TITLE]]>
<en><![CDATA[Type]]><option name="ANY"><![CDATA[All]]></option><option name="DYNAFORM"><![CDATA[Dynaform]]></option><option name="INPUT"><![CDATA[Input Document]]></option><option name="OUTPUT"><![CDATA[Output Document]]></option><option name="CASES_NOTES"><![CDATA[Cases Notes]]></option><option name="MSGS_HISTORY"><![CDATA[Messages History]]></option></en> <en>Target Task
</OP_OBJ_TYPE> <option name="">All Tasks</option>
<ALL type="dropdown" mode="edit" sqlConnection="dbarray"> </en>
</TAS_UID>
<GROUP_USER type="text" mode="view">
<en>Group or User</en>
</GROUP_USER>
<GROUP_USER_DROPDOWN type="title" mode="view" enableHtml="1" label="@#GROUP_USER" />
<OP_TASK_SOURCE type="dropdown" mode="edit">
<![CDATA[SELECT TAS_UID, CON_VALUE AS TAS_TITLE FROM TASK LEFT JOIN CONTENT ON (TAS_UID = CON_ID AND CON_CATEGORY = 'TAS_TITLE' AND CON_LANG = @@LANG) WHERE PRO_UID = @@PRO_UID AND TAS_TYPE = 'NORMAL' ORDER BY TAS_TITLE]]><en>Origin Task<option name="">All Tasks</option></en>
</OP_TASK_SOURCE>
<OP_PARTICIPATE type="yesno" defaultvalue="1" mode="edit">
<en>Participation required?</en>
</OP_PARTICIPATE>
<OP_OBJ_TYPE type="dropdown" mode="edit" dependentfields="OP_OBJ_UID">
<en>Type
<option name="ANY">All</option>
<option name="DYNAFORM">Dynaform</option>
<option name="INPUT">Input Document</option>
<option name="OUTPUT">Output Document</option>
<option name="CASES_NOTES">Cases Notes</option>
<option name="MSGS_HISTORY">Messages History</option>
</en>
</OP_OBJ_TYPE>
<ALL type="dropdown" mode="edit" sqlConnection="dbarray">
SELECT * FROM allObjects SELECT * FROM allObjects
<en><![CDATA[Object]]><option name=""><![CDATA[All]]></option></en> <en>Object
<option name="">All</option>
</en>
</ALL> </ALL>
<DYNAFORMS type="dropdown" mode="edit" sqlConnection="dbarray"> <DYNAFORMS type="dropdown" mode="edit" sqlConnection="dbarray">
SELECT * FROM allDynaforms SELECT * FROM allDynaforms
<en><![CDATA[DynaForm]]><option name=""><![CDATA[All]]></option></en> <en>DynaForm<option name="">All</option></en>
</DYNAFORMS> </DYNAFORMS>
<INPUTS type="dropdown" mode="edit" sqlConnection="dbarray"> <INPUTS type="dropdown" mode="edit" sqlConnection="dbarray">
SELECT * FROM allInputs SELECT * FROM allInputs
<en><![CDATA[Input Document]]><option name=""><![CDATA[All]]></option></en> <en>Input Document<option name="">All</option></en>
</INPUTS> </INPUTS>
<OUTPUTS type="dropdown" mode="edit" sqlConnection="dbarray"> <OUTPUTS type="dropdown" mode="edit" sqlConnection="dbarray">
SELECT * FROM allOutputs SELECT * FROM allOutputs
<en><![CDATA[Output Document]]><option name=""><![CDATA[All]]></option></en> <en>Output Document<option name="">All</option></en>
</OUTPUTS> </OUTPUTS>
<OP_ACTION type="dropdown" mode="edit"> <OP_ACTION type="dropdown" mode="edit">
<en><![CDATA[Permission]]><option name="VIEW"><![CDATA[View]]></option><option name="BLOCK"><![CDATA[Block]]></option><option name="DELETE"><![CDATA[Delete]]></option><option name="RESEND"><![CDATA[Resend]]></option></en> <en>Permission
</OP_ACTION> <option name="VIEW">View</option>
<CREATE type="button" onclick="saveObjectPermission(this.form);"> <option name="BLOCK">Block</option>
<en><![CDATA[Save]]></en> <option name="DELETE">Delete</option>
</CREATE> <option name="RESEND">Resend</option>
<ID_DELETE type="private"/> </en>
<ID_RESEND type="private"/> </OP_ACTION>
<JS type="javascript"><![CDATA[
<CREATE type="button" onclick="saveObjectPermission(this.form);">
<en>Save</en>
</CREATE>
<ID_DELETE type="private"/>
<ID_RESEND type="private"/>
<JS type="javascript"><![CDATA[
var aOptions = []; var aOptions = [];
var getOptions = function() { var getOptions = function() {
var oAux = getField('OP_ACTION'); var oAux = getField('OP_ACTION');

View File

@@ -146,25 +146,48 @@ function showCreateEmptyOptions(e, MAIN_DIRECTORY){
} }
function saveEmptyFile(){ function saveEmptyFile(){
var fileName = getField('emptyfilename').value + ".html"; var fileName = getField("emptyfilename").value.trim();
fileName = fileName.trim();
var oRPC = new leimnud.module.rpc.xmlhttp({ if(fileName != "") {
url : 'processes_Ajax', fileName = fileName + ".html";
args: 'action=saveFile&filename='+fileName+'&pro_uid='+CURRENT_PRO_UID+'&MAIN_DIRECTORY='+CURRENT_MAIN_DIRECTORY+'&fcontent=' fileName = fileName.trim();
});
oRPC.callback = function(rpc){ var rpcAjax = new leimnud.module.rpc.xmlhttp({
showCreateEmptyOptionsPanel.remove(); url: "processes_Ajax",
/// goToDirectory(CURRENT_PRO_UID, 'mailTemplates', ''); method: "POST",
if(typeof(CURRENT_MAIN_DIRECTORY) != "undefined" ) { args: "action=verifyNameFile&filename=" + fileName + "&pro_uid=" + CURRENT_PRO_UID + "&MAIN_DIRECTORY=" + CURRENT_MAIN_DIRECTORY + "&fcontent="
goToDirectory(CURRENT_PRO_UID, CURRENT_MAIN_DIRECTORY, ''); });
} else {
goToDirectory(CURRENT_PRO_UID, 'mailTemplates', ''); rpcAjax.callback = function (rpc)
} {
editFile(CURRENT_PRO_UID, fileName) var response = rpc.xmlhttp.responseText.parseJSON();
}.extend(this); var status = response.status;
oRPC.make();
if (status == "OK") {
var oRPC = new leimnud.module.rpc.xmlhttp({
url : 'processes_Ajax',
args: 'action=saveFile&filename='+fileName+'&pro_uid='+CURRENT_PRO_UID+'&MAIN_DIRECTORY='+CURRENT_MAIN_DIRECTORY+'&fcontent='
});
oRPC.callback = function(rpc){
showCreateEmptyOptionsPanel.remove();
/// goToDirectory(CURRENT_PRO_UID, 'mailTemplates', '');
if(typeof(CURRENT_MAIN_DIRECTORY) != "undefined" ) {
goToDirectory(CURRENT_PRO_UID, CURRENT_MAIN_DIRECTORY, '');
} else {
goToDirectory(CURRENT_PRO_UID, 'mailTemplates', '');
}
editFile(CURRENT_PRO_UID, fileName)
}.extend(this);
oRPC.make();
} else {
new leimnud.module.app.alert().make({label: _("ID_EXISTS_FILES")});
}
}.extend(this);
rpcAjax.make();
} else {
new leimnud.module.app.alert().make({label: _("ID_FILENAME_REQUIRED")});
}
} }
function xReaload(){ function xReaload(){

View File

@@ -1,53 +1,87 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<dynaForm name="processes_NewObjectPermission" width="100%" enableTemplate="1"> <dynaForm name="processes_NewObjectPermission" width="100%" enableTemplate="1">
<TITLE type="title"> <TITLE type="title">
<en><![CDATA[New Specific Permission]]></en> <en>New Specific Permission</en>
</TITLE> </TITLE>
<LANG type="private"/> <LANG type="private"/>
<PRO_UID type="hidden"/> <PRO_UID type="hidden"/>
<OP_CASE_STATUS type="dropdown" mode="edit">
<en><![CDATA[Status Case]]><option name="ALL"><![CDATA[All]]></option><option name="DRAFT"><![CDATA[DRAFT]]></option><option name="TO_DO"><![CDATA[TO DO]]></option><option name="PAUSED"><![CDATA[PAUSED]]></option><option name="COMPLETED"><![CDATA[COMPLETED]]></option></en>
</OP_CASE_STATUS> <OP_CASE_STATUS type="dropdown" mode="edit">
<TAS_UID type="dropdown" mode="edit"><![CDATA[SELECT TAS_UID, CON_VALUE AS TAS_TITLE FROM TASK LEFT JOIN CONTENT ON (TAS_UID = CON_ID AND CON_CATEGORY = 'TAS_TITLE' AND CON_LANG = @@LANG) WHERE PRO_UID = @@PRO_UID AND TAS_TYPE = 'NORMAL' ORDER BY TAS_TITLE]]><en><![CDATA[Target Task]]><option name=""><![CDATA[All Tasks]]></option></en></TAS_UID> <en>Status Case
<GROUP_USER type="text" mode="view"> <option name="ALL">All</option>
<en><![CDATA[Group or User]]></en> <option name="DRAFT">DRAFT</option>
</GROUP_USER> <option name="TO_DO">TO DO</option>
<GROUP_USER_DROPDOWN type="title" mode="view" enableHtml="1" label="@#GROUP_USER"/> <option name="PAUSED">PAUSED</option>
<OP_TASK_SOURCE type="dropdown" mode="edit"><![CDATA[SELECT TAS_UID, CON_VALUE AS TAS_TITLE FROM TASK LEFT JOIN CONTENT ON (TAS_UID = CON_ID AND CON_CATEGORY = 'TAS_TITLE' AND CON_LANG = @@LANG) WHERE PRO_UID = @@PRO_UID AND TAS_TYPE = 'NORMAL' ORDER BY TAS_TITLE]]><en><![CDATA[Origin Task]]><option name=""><![CDATA[All Tasks]]></option></en></OP_TASK_SOURCE> <option name="COMPLETED">COMPLETED</option>
<OP_PARTICIPATE type="yesno" defaultvalue="1" mode="edit"> </en>
<en><![CDATA[Participation required?]]></en> </OP_CASE_STATUS>
</OP_PARTICIPATE>
<OP_OBJ_TYPE type="dropdown" mode="edit" dependentfields="OP_OBJ_UID"> <TAS_UID type="dropdown" mode="edit">
<en><![CDATA[Type]]><option name="ANY"><![CDATA[All]]></option><option name="DYNAFORM"><![CDATA[Dynaform]]></option><option name="INPUT"><![CDATA[Input Document]]></option><option name="OUTPUT"><![CDATA[Output Document]]></option><option name="CASES_NOTES"><![CDATA[Cases Notes]]></option><option name="MSGS_HISTORY"><![CDATA[Messages History]]></option></en> <![CDATA[SELECT TAS_UID, CON_VALUE AS TAS_TITLE FROM TASK LEFT JOIN CONTENT ON (TAS_UID = CON_ID AND CON_CATEGORY = 'TAS_TITLE' AND CON_LANG = @@LANG) WHERE PRO_UID = @@PRO_UID AND TAS_TYPE = 'NORMAL' ORDER BY TAS_TITLE]]>
</OP_OBJ_TYPE> <en>Target Task
<ALL type="dropdown" mode="edit" sqlConnection="dbarray"> <option name="">All Tasks</option>
</en>
</TAS_UID>
<GROUP_USER type="text" mode="view">
<en>Group or User</en>
</GROUP_USER>
<GROUP_USER_DROPDOWN type="title" mode="view" enableHtml="1" label="@#GROUP_USER" />
<OP_TASK_SOURCE type="dropdown" mode="edit">
<![CDATA[SELECT TAS_UID, CON_VALUE AS TAS_TITLE FROM TASK LEFT JOIN CONTENT ON (TAS_UID = CON_ID AND CON_CATEGORY = 'TAS_TITLE' AND CON_LANG = @@LANG) WHERE PRO_UID = @@PRO_UID AND TAS_TYPE = 'NORMAL' ORDER BY TAS_TITLE]]><en>Origin Task<option name="">All Tasks</option></en>
</OP_TASK_SOURCE>
<OP_PARTICIPATE type="yesno" defaultvalue="1" mode="edit">
<en>Participation required?</en>
</OP_PARTICIPATE>
<OP_OBJ_TYPE type="dropdown" mode="edit" dependentfields="OP_OBJ_UID">
<en>Type
<option name="ANY">All</option>
<option name="DYNAFORM">Dynaform</option>
<option name="INPUT">Input Document</option>
<option name="OUTPUT">Output Document</option>
<option name="CASES_NOTES">Cases Notes</option>
<option name="MSGS_HISTORY">Messages History</option>
</en>
</OP_OBJ_TYPE>
<ALL type="dropdown" mode="edit" sqlConnection="dbarray">
SELECT * FROM allObjects SELECT * FROM allObjects
<en><![CDATA[Object]]><option name=""><![CDATA[All]]></option></en> <en>Object
<option name="">All</option>
</en>
</ALL> </ALL>
<DYNAFORMS type="dropdown" mode="edit" sqlConnection="dbarray"> <DYNAFORMS type="dropdown" mode="edit" sqlConnection="dbarray">
SELECT * FROM allDynaforms SELECT * FROM allDynaforms
<en><![CDATA[DynaForm]]><option name=""><![CDATA[All]]></option></en> <en>DynaForm<option name="">All</option></en>
</DYNAFORMS> </DYNAFORMS>
<INPUTS type="dropdown" mode="edit" sqlConnection="dbarray"> <INPUTS type="dropdown" mode="edit" sqlConnection="dbarray">
SELECT * FROM allInputs SELECT * FROM allInputs
<en><![CDATA[Input Document]]><option name=""><![CDATA[All]]></option></en> <en>Input Document<option name="">All</option></en>
</INPUTS> </INPUTS>
<OUTPUTS type="dropdown" mode="edit" sqlConnection="dbarray"> <OUTPUTS type="dropdown" mode="edit" sqlConnection="dbarray">
SELECT * FROM allOutputs SELECT * FROM allOutputs
<en><![CDATA[Output Document]]><option name=""><![CDATA[All]]></option></en> <en>Output Document<option name="">All</option></en>
</OUTPUTS> </OUTPUTS>
<OP_ACTION type="dropdown" mode="edit"> <OP_ACTION type="dropdown" mode="edit">
<en><![CDATA[Permission]]><option name="VIEW"><![CDATA[View]]></option><option name="BLOCK"><![CDATA[Block]]></option></en> <en>Permission
</OP_ACTION> <option name="VIEW">View</option>
<BTN_CANCEL type="button" onclick="cancel();"> <option name="BLOCK">Block</option>
<en><![CDATA[Cancel]]></en> </en>
</BTN_CANCEL> </OP_ACTION>
<CREATE type="button" onclick="saveObjectPermission(this.form);">
<en><![CDATA[Create]]></en> <BTN_CANCEL type="button" onclick="cancel();">
</CREATE> <en>Cancel</en>
<ID_DELETE type="private"/> </BTN_CANCEL>
<ID_RESEND type="private"/>
<JS type="javascript"><![CDATA[ <CREATE type="button" onclick="saveObjectPermission(this.form);">
<en>Create</en>
</CREATE>
<ID_DELETE type="private"/>
<ID_RESEND type="private"/>
<JS type="javascript"><![CDATA[
var aOptions = []; var aOptions = [];
var getOptions = function() { var getOptions = function() {
var oAux = getField('OP_ACTION'); var oAux = getField('OP_ACTION');
@@ -259,4 +293,4 @@ function cancel(){
} }
]]></JS> ]]></JS>
</dynaForm> </dynaForm>

View File

@@ -227,7 +227,7 @@
if (!file_exists(PATH_HTML . 'index.html')) { // if not, create it from template if (!file_exists(PATH_HTML . 'index.html')) { // if not, create it from template
file_put_contents( file_put_contents(
PATH_HTML . 'index.html', PATH_HTML . 'index.html',
G::parseTemplate(PATH_TPL . 'index.html', array('lang' => SYS_LANG, 'skin' => SYS_SKIN)) G::parseTemplate(PATH_TPL . "index.html", array("lang" => ((defined("SYS_LANG") && SYS_LANG != "")? SYS_LANG : "en"), "skin" => SYS_SKIN))
); );
} }

View File

@@ -473,7 +473,7 @@ if (Bootstrap::isPMUnderUpdating()) {
// verify if index.html exists // verify if index.html exists
if (! file_exists( PATH_HTML . 'index.html' )) { // if not, create it from template if (! file_exists( PATH_HTML . 'index.html' )) { // if not, create it from template
file_put_contents( PATH_HTML . 'index.html', Bootstrap::parseTemplate( PATH_TPL . 'index.html', array ('lang' => SYS_LANG,'skin' => SYS_SKIN file_put_contents( PATH_HTML . "index.html", Bootstrap::parseTemplate( PATH_TPL . "index.html", array ("lang" => ((defined("SYS_LANG") && SYS_LANG != "")? SYS_LANG : "en"), "skin" => SYS_SKIN
) ) ); ) ) );
} }