Merged in release/3.3.7 (pull request #6825)

Updating branch develop with last changes from release/3.3.7

Approved-by: Julio Cesar Laura Avendaño <contact@julio-laura.com>
This commit is contained in:
Julio Cesar Laura Avendaño
2019-03-28 16:40:42 +00:00
8 changed files with 85 additions and 35 deletions

View File

@@ -13,6 +13,7 @@ this.warning=function(title,msg,fn){Ext.MessageBox.show({id:'warningMessageBox',
this.error=function(title,msg,fn){Ext.MessageBox.show({id:'errorMessageBox',title:title,msg:msg,buttons:Ext.MessageBox.OK,animEl:'mb9',fn:fn!=undefined?fn:function(){},icon:Ext.MessageBox.ERROR});} this.error=function(title,msg,fn){Ext.MessageBox.show({id:'errorMessageBox',title:title,msg:msg,buttons:Ext.MessageBox.OK,animEl:'mb9',fn:fn!=undefined?fn:function(){},icon:Ext.MessageBox.ERROR});}
this.notify=function(title,msg,type,time) this.notify=function(title,msg,type,time)
{Ext.msgBoxSlider.msg(title,msg,type,time);} {Ext.msgBoxSlider.msg(title,msg,type,time);}
this.escapeHtml=function(v){var pre=document.createElement('pre');var text=document.createTextNode(v);pre.appendChild(text);return pre.innerHTML;}
this.getBrowser=function(){var browsersList=["opera","msie","firefox","chrome","safari","trident"],browserMeta=navigator.userAgent.toLowerCase(),name='Unknown',version='',screen={width:Ext.getBody().getViewSize().width,height:Ext.getBody().getViewSize().height};for(var i=0;i<browsersList.length;i++){if((name==="")&&(browserMeta.indexOf(browsersList[i])!==-1)){name=browsersList[i];version=String(parseFloat(browserMeta.substr(browserMeta.indexOf(browsersList[i])+browsersList[i].length+1)));break;}} this.getBrowser=function(){var browsersList=["opera","msie","firefox","chrome","safari","trident"],browserMeta=navigator.userAgent.toLowerCase(),name='Unknown',version='',screen={width:Ext.getBody().getViewSize().width,height:Ext.getBody().getViewSize().height};for(var i=0;i<browsersList.length;i++){if((name==="")&&(browserMeta.indexOf(browsersList[i])!==-1)){name=browsersList[i];version=String(parseFloat(browserMeta.substr(browserMeta.indexOf(browsersList[i])+browsersList[i].length+1)));break;}}
return{name:name,version:version,screen:screen}};this.createInfoPanel=function(url,params,columnsSize){var labelColumnWidth=170;var valueColumnWidth=350;params=params||{};if(typeof columnsSize!=='undefined'){labelColumnWidth=columnsSize[0]||labelColumnWidth;valueColumnWidth=columnsSize[1]||valueColumnWidth;} return{name:name,version:version,screen:screen}};this.createInfoPanel=function(url,params,columnsSize){var labelColumnWidth=170;var valueColumnWidth=350;params=params||{};if(typeof columnsSize!=='undefined'){labelColumnWidth=columnsSize[0]||labelColumnWidth;valueColumnWidth=columnsSize[1]||valueColumnWidth;}
return new Ext.grid.GridPanel({store:new Ext.data.GroupingStore({autoLoad:true,proxy:new Ext.data.HttpProxy({url:url,method:'POST'}),baseParams:params,reader:new Ext.data.JsonReader({fields:[{name:'label'},{name:'value'},{name:'section'}]}),groupField:'section'}),columns:[{width:labelColumnWidth,dataIndex:"label",renderer:function(v){return"<b><font class='selectText' color=\"#465070\">"+v+"</font></b>";},align:"right"},{width:valueColumnWidth,dataIndex:"value",renderer:function(v){return"<b class='selectText'>"+v+"</b>";}},{hidden:true,dataIndex:"section"}],autoHeight:true,columnLines:true,trackMouseOver:false,disableSelection:true,view:new Ext.grid.GroupingView({forceFit:true,headersDisabled:true,groupTextTpl:'{group}'}),loadMask:true});};this.cookie={create:function(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString();}else var expires="";document.cookie=name+"="+value+expires+"; path=/";},read:function(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length);} return new Ext.grid.GridPanel({store:new Ext.data.GroupingStore({autoLoad:true,proxy:new Ext.data.HttpProxy({url:url,method:'POST'}),baseParams:params,reader:new Ext.data.JsonReader({fields:[{name:'label'},{name:'value'},{name:'section'}]}),groupField:'section'}),columns:[{width:labelColumnWidth,dataIndex:"label",renderer:function(v){return"<b><font class='selectText' color=\"#465070\">"+v+"</font></b>";},align:"right"},{width:valueColumnWidth,dataIndex:"value",renderer:function(v){return"<b class='selectText'>"+v+"</b>";}},{hidden:true,dataIndex:"section"}],autoHeight:true,columnLines:true,trackMouseOver:false,disableSelection:true,view:new Ext.grid.GroupingView({forceFit:true,headersDisabled:true,groupTextTpl:'{group}'}),loadMask:true});};this.cookie={create:function(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString();}else var expires="";document.cookie=name+"="+value+expires+"; path=/";},read:function(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length);}

View File

@@ -68,6 +68,14 @@ PMExtJSCommon = function() {
{ {
Ext.msgBoxSlider.msg(title, msg, type, time); Ext.msgBoxSlider.msg(title, msg, type, time);
} }
//TODO we need to review how many places using this kind of validation
this.escapeHtml = function (v) {
var pre = document.createElement('pre');
var text = document.createTextNode( v );
pre.appendChild(text);
return pre.innerHTML;
}
this.getBrowser = function () { this.getBrowser = function () {
var browsersList = ["opera", "msie", "firefox", "chrome", "safari", "trident"], var browsersList = ["opera", "msie", "firefox", "chrome", "safari", "trident"],

View File

@@ -160,7 +160,13 @@ try {
define('SERVER_NAME', $SERVER_INFO['SERVER_NAME']); define('SERVER_NAME', $SERVER_INFO['SERVER_NAME']);
define('SERVER_PORT', $SERVER_INFO['SERVER_PORT']); define('SERVER_PORT', $SERVER_INFO['SERVER_PORT']);
//to do improvement G::is_https()
if ((isset($SERVER_INFO['HTTPS']) && $SERVER_INFO['HTTPS'] == 'on') ||
(isset($SERVER_INFO['HTTP_X_FORWARDED_PROTO']) && $SERVER_INFO['HTTP_X_FORWARDED_PROTO'] == 'https')) {
define('REQUEST_SCHEME', 'https');
} else {
define('REQUEST_SCHEME', $SERVER_INFO['REQUEST_SCHEME']); define('REQUEST_SCHEME', $SERVER_INFO['REQUEST_SCHEME']);
}
} else { } else {
eprintln('WARNING! No server info found!', 'red'); eprintln('WARNING! No server info found!', 'red');
} }

View File

@@ -369,16 +369,17 @@ class SpoolRun
} }
/** /**
* handle all recipients to compose the mail * Handle all recipients to compose the mail
* *
* @param none * @return void
* @return boolean true or exception *
* @see SpoolRun::sendMail()
*/ */
private function handleEnvelopeTo() private function handleEnvelopeTo()
{ {
$hold = array(); $hold = [];
$holdcc = array(); $holdcc = [];
$holdbcc = array(); $holdbcc = [];
$text = trim($this->fileData['to']); $text = trim($this->fileData['to']);
$textcc = ''; $textcc = '';
@@ -399,10 +400,15 @@ class SpoolRun
$this->fileData['envelope_to'][] = "$val"; $this->fileData['envelope_to'][] = "$val";
} }
} }
} elseif ($text != '') { } elseif ($text != '') {
$this->fileData['envelope_to'][] = "$text"; $this->fileData['envelope_to'][] = "$text";
} else { } else {
$this->fileData['envelope_to'] = Array(); $this->fileData['envelope_to'] = [];
}
if (empty($this->fileData['envelope_to'])){
$this->updateSpoolError('Invalid address: ' . $text);
} }
//CC //CC
@@ -417,7 +423,7 @@ class SpoolRun
} elseif ($textcc != '') { } elseif ($textcc != '') {
$this->fileData['envelope_cc'][] = "$textcc"; $this->fileData['envelope_cc'][] = "$textcc";
} else { } else {
$this->fileData['envelope_cc'] = Array(); $this->fileData['envelope_cc'] = [];
} }
//BCC //BCC
@@ -432,7 +438,7 @@ class SpoolRun
} elseif ($textbcc != '') { } elseif ($textbcc != '') {
$this->fileData['envelope_bcc'][] = "$textbcc"; $this->fileData['envelope_bcc'][] = "$textbcc";
} else { } else {
$this->fileData['envelope_bcc'] = Array(); $this->fileData['envelope_bcc'] = [];
} }
} }
@@ -520,36 +526,66 @@ class SpoolRun
} }
} }
//To //To
foreach ($this->fileData['envelope_to'] as $sEmail) { foreach ($this->fileData['envelope_to'] as $email) {
if (strpos($sEmail, '<') !== false) { if (strpos($email, '<') !== false) {
preg_match($this->longMailEreg, $sEmail, $matches); preg_match($this->longMailEreg, $email, $matches);
$sTo = trim($matches[3]); $toAddress = '';
$sToName = trim($matches[1]); if (!empty($matches[3])) {
$phpMailer->AddAddress($sTo, $sToName); $toAddress = trim($matches[3]);
}
$toName = '';
if (!empty($matches[1])) {
$toName = trim($matches[1]);
}
if (!empty($toAddress)) {
$phpMailer->AddAddress($toAddress, $toName);
} else { } else {
$phpMailer->AddAddress($sEmail); throw new Exception('Invalid address: ' . $email);
}
} else {
$phpMailer->AddAddress($email);
} }
} }
//CC //CC
foreach ($this->fileData['envelope_cc'] as $sEmail) { foreach ($this->fileData['envelope_cc'] as $email) {
if (strpos($sEmail, '<') !== false) { if (strpos($email, '<') !== false) {
preg_match($this->longMailEreg, $sEmail, $matches); preg_match($this->longMailEreg, $email, $matches);
$sTo = trim($matches[3]); $ccAddress = '';
$sToName = trim($matches[1]); if (!empty($matches[3])) {
$phpMailer->AddCC($sTo, $sToName); $ccAddress = trim($matches[3]);
}
$ccName = '';
if (!empty($matches[1])) {
$ccName = trim($matches[1]);
}
if (!empty($ccAddress)) {
$phpMailer->AddCC($ccAddress, $ccName);
} else { } else {
$phpMailer->AddCC($sEmail); throw new Exception('Invalid address: ' . $email);
}
} else {
$phpMailer->AddCC($email);
} }
} }
//BCC //BCC
foreach ($this->fileData['envelope_bcc'] as $sEmail) { foreach ($this->fileData['envelope_bcc'] as $email) {
if (strpos($sEmail, '<') !== false) { if (strpos($email, '<') !== false) {
preg_match($this->longMailEreg, $sEmail, $matches); preg_match($this->longMailEreg, $email, $matches);
$sTo = trim($matches[3]); $bccAddress = '';
$sToName = trim($matches[1]); if (!empty($matches[3])) {
$phpMailer->AddBCC($sTo, $sToName); $bccAddress = trim($matches[3]);
}
$bccName = '';
if (!empty($matches[1])) {
$bccName = trim($matches[1]);
}
if (!empty($bccAddress)) {
$phpMailer->AddBCC($bccAddress, $bccName);
} else { } else {
$phpMailer->AddBCC($sEmail); throw new Exception('Invalid address: ' . $email);
}
} else {
$phpMailer->AddBCC($email);
} }
} }
//IsHtml //IsHtml

View File

@@ -223,7 +223,6 @@ class AppDelegation extends BaseAppDelegation
try { try {
$res = $this->save(); $res = $this->save();
} catch (PropelException $e) { } catch (PropelException $e) {
error_log($e->getMessage());
return; return;
} }
} else { } else {

View File

@@ -130,7 +130,6 @@ switch ($req) {
$tasTitleDefault = G::LoadTranslation('ID_TASK_NOT_RELATED'); $tasTitleDefault = G::LoadTranslation('ID_TASK_NOT_RELATED');
while ($result->next()) { while ($result->next()) {
$row = $result->getRow(); $row = $result->getRow();
$row['APP_MSG_FROM'] = htmlentities($row['APP_MSG_FROM'], ENT_QUOTES, "UTF-8");
$row['APP_MSG_STATUS'] = ucfirst($row['APP_MSG_STATUS']); $row['APP_MSG_STATUS'] = ucfirst($row['APP_MSG_STATUS']);
switch ($filterBy) { switch ($filterBy) {

View File

@@ -1578,7 +1578,7 @@ class System
public static function getServerHost() public static function getServerHost()
{ {
$port = self::getServerPort(); $port = self::getServerPort();
if (!empty($port) && $port != '80') { if (!empty($port) && $port != '80' && $port != '443') {
return self::getServerHostname() . ':' . $port; return self::getServerHostname() . ':' . $port;
} }
return self::getServerHostname(); return self::getServerHostname();

View File

@@ -44,7 +44,8 @@ Ext.onReady(function(){
} }
} }
metadata.attr = 'ext:qtip="' + data + '" style="'+ style +' white-space: normal; "'; metadata.attr = 'ext:qtip="' + data + '" style="'+ style +' white-space: normal; "';
return data;
return PMExt.escapeHtml(data);
}; };
var dateFrom = new Ext.form.DateField({ var dateFrom = new Ext.form.DateField({