Merge branch 'master' of bitbucket.org:colosa/processmaker

This commit is contained in:
Victor Saisa Lopez
2015-06-01 15:24:39 -04:00
11 changed files with 313 additions and 25 deletions

View File

@@ -1078,6 +1078,7 @@ class Cases
$Fields['DEL_INDEX'] = 1;
}
$inbox = new ListInbox();
unset($Fields['DEL_INIT_DATE']);
$inbox->update(array_merge($Fields, $arrayNewCaseTitleAndDescription));
/*----------------------------------********---------------------------------*/

View File

@@ -805,7 +805,6 @@ class Derivation
unset( $aSP );
} //end foreach
/* Start Block : UPDATES APPLICATION */
//Set THE APP_STATUS

View File

@@ -219,18 +219,12 @@ class pmDynaform
$cells = array();
foreach ($json->columns as $column) {
//data
if ($column->type === "text" || $column->type === "textarea" || $column->type === "dropdown" || $column->type === "datetime" || $column->type === "checkbox" || $column->type === "file" || $column->type === "link" || $value === "hidden") {
if ($column->type === "text" || $column->type === "textarea" || $column->type === "dropdown" || $column->type === "suggest" || $column->type === "datetime" || $column->type === "checkbox" || $column->type === "file" || $column->type === "link" || $value === "hidden") {
array_push($cells, array(
"value" => isset($row[$column->name]) ? $row[$column->name] : "",
"label" => isset($row[$column->name . "_label"]) ? $row[$column->name . "_label"] : (isset($row[$column->name]) ? $row[$column->name] : "")
));
}
if ($column->type === "suggest") {
array_push($cells, array(
"value" => isset($row[$column->name . "_label"]) ? $row[$column->name . "_label"] : "",
"label" => isset($row[$column->name]) ? $row[$column->name] : ""
));
}
}
$rows[$keyRow] = $cells;
}

View File

@@ -1357,6 +1357,10 @@ class workspaceTools
}
if ( !$flag && !is_null($flagFunction) ) {
//Replace TYPE by ENGINE
$script = file_get_contents($filename);
$script = preg_replace('/\)TYPE\=|\)\sTYPE\=/', ')ENGINE=', $script);
file_put_contents($filename,$script);
$aHost = explode(':',$parameters['dbHost']);
$dbHost = $aHost[0];
if(isset($aHost[1])){

View File

@@ -751,9 +751,11 @@ class AdditionalTables extends BaseAdditionalTables
} else {
// grids
foreach ($caseData[$dKey] as $dIndex => $dRow) {
foreach ($dRow as $k => $v) {
if (trim($v) === '') {
$caseData[$dKey][$dIndex][$k] = null;
if (!is_array($dRow)) {
foreach ($dRow as $k => $v) {
if (trim($v) === '') {
$caseData[$dKey][$dIndex][$k] = null;
}
}
}
}

View File

@@ -915,17 +915,31 @@ class pmTablesProxy extends HttpProxyController
*/
public function import ($httpData)
{
$fromAdmin = false;
if (isset( $_POST["form"]["TYPE_TABLE"] ) && ! empty( $_POST["form"]["TYPE_TABLE"] )) {
if($_POST["form"]["TYPE_TABLE"] == 'admin') {
$fromAdmin = true;
}
}
require_once 'classes/model/AdditionalTables.php';
try {
$result = new stdClass();
$errors = '';
$fromConfirm = false;
$overWrite = isset( $_POST['form']['OVERWRITE'] ) ? true : false;
if (isset( $_POST["form"]["FROM_CONFIRM"] ) && ! empty( $_POST["form"]["FROM_CONFIRM"] )) {
$fromConfirm = $_POST["form"]["FROM_CONFIRM"];
$_FILES['form'] = $_SESSION['FILES_FORM'];
}
//save the file
if ($_FILES['form']['error']['FILENAME'] !== 0) {
throw new Exception( G::loadTranslation( 'ID_PMTABLE_UPLOADING_FILE_PROBLEM' ) );
}
$_SESSION['FILES_FORM'] = $_FILES['form'];
$oAdditionalTables = new AdditionalTables();
$tableNameMap = array ();
@@ -935,7 +949,14 @@ class pmTablesProxy extends HttpProxyController
$PUBLIC_ROOT_PATH = PATH_DATA . 'sites' . PATH_SEP . SYS_SYS . PATH_SEP . 'public' . PATH_SEP;
$filename = $_FILES['form']['name']['FILENAME'];
$tempName = $_FILES['form']['tmp_name']['FILENAME'];
G::uploadFile( $tempName, $PUBLIC_ROOT_PATH, $filename );
if(!$fromConfirm) {
G::uploadFile( $tempName, $PUBLIC_ROOT_PATH, $filename );
}
if ($fromConfirm == 'clear') {
$fromConfirm = true;
}
$fileContent = file_get_contents( $PUBLIC_ROOT_PATH . $filename );
@@ -947,6 +968,17 @@ class pmTablesProxy extends HttpProxyController
$fsData = intval( fread( $fp, 9 ) ); //reading the metadata
$sType = fread( $fp, $fsData );
$pmTables = $this->getList('');
$proUids = Array();
if($pmTables['count']) {
$pmTables = $pmTables['rows'];
foreach($pmTables as $val) {
if($val['PRO_UID'] != '') {
$proUids[] = $val['PRO_UID'];
}
}
}
// first create the tables structures
while (! feof( $fp )) {
@@ -964,7 +996,57 @@ class pmTablesProxy extends HttpProxyController
$additionalTable = new additionalTables();
$tableExists = $additionalTable->loadByName( $contentSchema['ADD_TAB_NAME'] );
$tableNameMap[$contentSchema['ADD_TAB_NAME']] = $contentSchema['ADD_TAB_NAME'];
$tableData = new stdClass();
if (isset( $_POST["form"]["PRO_UID"] ) && ! empty( $_POST["form"]["PRO_UID"] )) {
$tableData->PRO_UID = $_POST["form"]["PRO_UID"];
} else {
$tableData->PRO_UID = isset( $contentSchema["PRO_UID"] ) ? $contentSchema["PRO_UID"] : "";
}
$isPmTable = false; /*is a report table*/
if($contentSchema["PRO_UID"] == "" ) {
$isPmTable = true;
}
if (isset( $_POST["form"]["PRO_UID_HELP"] ) && !empty($_POST["form"]["PRO_UID_HELP"])) {
$currentPRO_UID = $_POST["form"]["PRO_UID_HELP"];
} else {
$currentPRO_UID = (isset( $_SESSION['PROCESS'] ) && !empty( $_SESSION['PROCESS'] )) ? $_SESSION['PROCESS'] : '';
}
if($fromAdmin) { /* from admin tab */
if ($tableExists !== false && !$fromConfirm) {
$validationType = 1;
throw new Exception( G::loadTranslation( 'ID_OVERWRITE_PMTABLE' ) );
}
if(!in_array($tableData->PRO_UID, $proUids) && !$isPmTable) {
$validationType = 2;
throw new Exception( G::loadTranslation( 'ID_NO_RELATED_PROCESS' ) );
}
} else { /* from designer tab */
if($isPmTable){
$validationType = '';
throw new Exception( G::loadTranslation( 'ID_NO_REPORT_TABLE' ) );
}
if ($tableExists !== false && !$fromConfirm) {
$validationType = 1;
throw new Exception( G::loadTranslation( 'ID_OVERWRITE_PMTABLE' ) );
}
if($currentPRO_UID != $tableData->PRO_UID) {
if(!in_array($tableData->PRO_UID, $proUids)) {
$validationType = 2;
if(($fromConfirm == $validationType || !$fromConfirm) && !$isPmTable) {
throw new Exception( G::loadTranslation( 'ID_OVERWRITE_RELATED_PROCESS' ) );
} else {
$tableData->PRO_UID = $currentPRO_UID;
}
} else {
$validationType = 3;
throw new Exception( G::loadTranslation( 'ID_ALREADY_RELATED_TABLE ' ) );
}
}
}
if ($overWrite) {
if ($tableExists !== false) {
$additionalTable->deleteAll( $tableExists['ADD_TAB_UID'] );
@@ -995,18 +1077,11 @@ class pmTablesProxy extends HttpProxyController
$columns[] = $column;
}
$tableData = new stdClass();
$tableData->REP_TAB_UID = $contentSchema['ADD_TAB_UID'];
$tableData->REP_TAB_NAME = $contentSchema['ADD_TAB_NAME'];
$tableData->REP_TAB_DSC = $contentSchema['ADD_TAB_DESCRIPTION'];
$tableData->REP_TAB_CONNECTION = $contentSchema['DBS_UID'];
if (isset( $_POST["form"]["PRO_UID"] ) && ! empty( $_POST["form"]["PRO_UID"] )) {
$tableData->PRO_UID = $_POST["form"]["PRO_UID"];
} else {
$tableData->PRO_UID = isset( $contentSchema["PRO_UID"] ) ? $contentSchema["PRO_UID"] : "";
}
$tableData->REP_TAB_TYPE = isset( $contentSchema['ADD_TAB_TYPE'] ) ? $contentSchema['ADD_TAB_TYPE'] : '';
$tableData->REP_TAB_GRID = isset( $contentSchema['ADD_TAB_GRID'] ) ? $contentSchema['ADD_TAB_GRID'] : '';
$tableData->columns = G::json_encode( $columns );
@@ -1147,6 +1222,8 @@ class pmTablesProxy extends HttpProxyController
$result->message = $msg;
} catch (Exception $e) {
$result = new stdClass();
$result->fromAdmin = $fromAdmin;
$result->validationType = $validationType;
$result->errorType = 'error';
$result->buildResult = ob_get_contents();
ob_end_clean();

View File

@@ -4,6 +4,7 @@ var setVariablePickerJS = function(){
if(this.value.substring(0,5) == 'gridt') {
try {
updateEditorContent(this.value.substring(5));
closePluginPopup();
} catch(err) {
closePluginPopup();
}
@@ -21,6 +22,7 @@ var setVariablePickerJS = function(){
if(element.value.substring(0,5) == 'gridt') {
try {
updateEditorContent(element.value.substring(5));
closePluginPopup();
} catch(err) {
closePluginPopup();
}

View File

@@ -71,6 +71,13 @@ $_SESSION['STEP_POSITION'] = 0;
/* Redirect to next step */
$aNextStep = $oCase->getNextSupervisorStep( $_SESSION['PROCESS'], 0 );
$sPage = "cases_StepToRevise?type=DYNAFORM&PRO_UID=" . $aFields['PRO_UID'] . "&DYN_UID=" . $aNextStep['UID'] . "&APP_UID=$sAppUid&DEL_INDEX=$iDelIndex&position=1"; //$aNextStep['PAGE'];
G::header( 'location: ' . $sPage );
if($aNextStep['UID'] != ''){
$sPage = "cases_StepToRevise?type=DYNAFORM&PRO_UID=" . $aFields['PRO_UID'] . "&DYN_UID=" . $aNextStep['UID'] . "&APP_UID=$sAppUid&DEL_INDEX=$iDelIndex&position=1"; //$aNextStep['PAGE'];
G::header( 'location: ' . $sPage );
}else{
$aMessage = array ();
$aMessage['MESSAGE'] = G::LoadTranslation( 'ID_SUPERVISOR_DOES_NOT_HAVE_DYNAFORMS' );
$G_PUBLISH = new Publisher();
$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'login/showMessage', '', $aMessage );
G::RenderPage( 'publishBlank', 'blank' );
}

View File

@@ -293,6 +293,7 @@ INPUT {
background-color: black;
left: 0px;
top: 0px;
height:100% !important;
}
.panel_iframe___processmaker {
width: 100%;

View File

@@ -1539,7 +1539,7 @@ Ext.onReady(function(){
TabPanel.setActiveTab(tabId);
}
else {
if(name == "processMap" && isBrowserIE()){
if(name == "processMap" && isBrowserIE() && _PROJECT_TYPE === 'bpmn'){
var windContainer = window.open(uri,"winContainer");
} else {
TabPanel.add({

View File

@@ -561,6 +561,10 @@ ImportPMTable = function(){
fieldLabel: '',
boxLabel: _('ID_OVERWRITE_EXIST'), // 'Overwrite if exists?',
name: 'form[OVERWRITE]'
}, {
xtype: 'hidden',
name: 'form[TYPE_TABLE]',
value: (PRO_UID? 'designer' : 'admin')
}],
buttons: [{
id: 'importPMTableButtonUpload',
@@ -613,7 +617,204 @@ ImportPMTable = function(){
PMExt.warning(_('ID_WARNING'), result.message.replace(/\n/g,' <br>'));
}
else {
PMExt.error(_('ID_ERROR'), result.message.replace(/\n/g,' <br>'));
if(result.fromAdmin) { /* from admin tab */
if(result.validationType == 1) {
Ext.MessageBox.confirm('Confirmation', result.message.replace(/\n/g,' <br>'), function(btn, text){
if (btn == 'yes'){
Ext.Ajax.request({
url: 'pmTablesProxy/import',
params: {
'form[FROM_CONFIRM]':'overWrite',
'form[TYPE_TABLE]':(PRO_UID? 'designer' : 'admin'),
'form[OVERWRITE]':true
},
success: function(resp){
var result = Ext.util.JSON.decode(resp.responseText);
if (result.success) {
PMExt.notify(_('ID_IMPORT_RESULT'), result.message);
Ext.getCmp('infoGrid').getStore().reload();
} else {
if(result.validationType == 2) {
PMExt.error(_('ID_ERROR'), result.message.replace(/\n/g,' <br>'));
}
}
},
failure: function(obj, resp){
var result = Ext.util.JSON.decode(resp.responseText);
if(result.validationType == 2) {
PMExt.error(_('ID_ERROR'), result.message.replace(/\n/g,' <br>'));
}
}
});
} else {
Ext.Ajax.request({
url: 'pmTablesProxy/import',
params: {
'form[FROM_CONFIRM]':'clear',
'form[TYPE_TABLE]':(PRO_UID? 'designer' : 'admin')
},
success: function(resp) {
var result = Ext.util.JSON.decode(resp.responseText);
PMExt.notify(_('ID_IMPORT_RESULT'), result.message);
Ext.getCmp('infoGrid').getStore().reload();
}
});
}
Ext.getCmp('infoGrid').getStore().reload();
});
return false;
} else {
PMExt.error(_('ID_ERROR'), result.message.replace(/\n/g,' <br>'));
}
} else { /* from designer tab */
if(result.validationType == 1) {
Ext.MessageBox.confirm('Confirmation', result.message.replace(/\n/g,' <br>'), function(btn, text){
if (btn == 'yes'){
Ext.Ajax.request({
url: 'pmTablesProxy/import',
params: {
'form[FROM_CONFIRM]':'2',
'form[TYPE_TABLE]':(PRO_UID? 'designer' : 'admin'),
'form[OVERWRITE]':true
},
success: function(resp){
var result = Ext.util.JSON.decode(resp.responseText);
if (result.success) {
PMExt.notify(_('ID_IMPORT_RESULT'), result.message);
Ext.getCmp('infoGrid').getStore().reload();
} else {
if(result.validationType == 2) {
Ext.MessageBox.confirm('Confirmation', result.message.replace(/\n/g,' <br>'), function(btn, text){
if (btn == 'yes'){
Ext.Ajax.request({
url: 'pmTablesProxy/import',
params: {
'form[FROM_CONFIRM]':'overWrite',
'form[TYPE_TABLE]':(PRO_UID? 'designer' : 'admin'),
'form[OVERWRITE]':true
},
success: function(resp){
var result = Ext.util.JSON.decode(resp.responseText);
if (result.success) {
PMExt.notify(_('ID_IMPORT_RESULT'), result.message);
Ext.getCmp('infoGrid').getStore().reload();
} else {
PMExt.error(_('ID_ERROR'), result.message.replace(/\n/g,' <br>'));
}
},
failure: function(obj, resp){
PMExt.error(_('ID_ERROR'), result.message.replace(/\n/g,' <br>'));
}
});
Ext.getCmp('infoGrid').getStore().reload();
}
});
return false;
}
else {
PMExt.error(_('ID_ERROR'), result.message.replace(/\n/g,' <br>'));
}
}
},
failure: function(obj, resp){
var result = Ext.util.JSON.decode(resp.responseText);
if(result.validationType == 2) {
PMExt.error(_('ID_ERROR'), result.message.replace(/\n/g,' <br>'));
}
}
});
Ext.getCmp('infoGrid').getStore().reload();
} else {
Ext.Ajax.request({
url: 'pmTablesProxy/import',
params: {
'form[FROM_CONFIRM]':'2',
'form[TYPE_TABLE]':(PRO_UID? 'designer' : 'admin'),
'form[PRO_UID_HELP]':PRO_UID
},
success: function(resp) {
var result = Ext.util.JSON.decode(resp.responseText);
if(result.validationType == 2) {
/*add code if related process*/
Ext.MessageBox.confirm('Confirmation', result.message.replace(/\n/g,' <br>'), function(btn, text){
if (btn == 'yes'){
Ext.Ajax.request({
url: 'pmTablesProxy/import',
params: {
'form[FROM_CONFIRM]':'overWrite',
'form[TYPE_TABLE]':(PRO_UID? 'designer' : 'admin'),
'form[PRO_UID_HELP]':PRO_UID
},
success: function(resp){
var result = Ext.util.JSON.decode(resp.responseText);
if (result.success) {
PMExt.notify(_('ID_IMPORT_RESULT'), result.message);
Ext.getCmp('infoGrid').getStore().reload();
} else {
PMExt.error(_('ID_ERROR'), result.message.replace(/\n/g,' <br>'));
}
},
failure: function(obj, resp){
PMExt.error(_('ID_ERROR'), result.message.replace(/\n/g,' <br>'));
}
});
Ext.getCmp('infoGrid').getStore().reload();
}
});
return false;
} else {
var result = Ext.util.JSON.decode(resp.responseText);
if (result.success) {
PMExt.notify(_('ID_IMPORT_RESULT'), result.message);
Ext.getCmp('infoGrid').getStore().reload();
} else {
PMExt.error(_('ID_ERROR'), result.message.replace(/\n/g,' <br>'));
}
}
//PMExt.notify(_('ID_IMPORT_RESULT'), result.message);
},
failure: function(obj, resp){
var result = Ext.util.JSON.decode(resp.responseText);
PMExt.error(_('ID_ERROR'), result.message.replace(/\n/g,' <br>'));
}
});
}
Ext.getCmp('infoGrid').getStore().reload();
});
return false;
}
if(result.validationType == 2) {
Ext.MessageBox.confirm('Confirmation', result.message.replace(/\n/g,' <br>'), function(btn, text){
if (btn == 'yes'){
Ext.Ajax.request({
url: 'pmTablesProxy/import',
params: {
'form[FROM_CONFIRM]':'overWrite',
'form[TYPE_TABLE]':(PRO_UID? 'designer' : 'admin'),
'form[OVERWRITE]':true,
'form[PRO_UID_HELP]':PRO_UID
},
success: function(resp){
var result = Ext.util.JSON.decode(resp.responseText);
if (result.success) {
PMExt.notify(_('ID_IMPORT_RESULT'), result.message);
Ext.getCmp('infoGrid').getStore().reload();
} else {
PMExt.error(_('ID_ERROR'), result.message.replace(/\n/g,' <br>'));
}
},
failure: function(obj, resp){
PMExt.error(_('ID_ERROR'), result.message.replace(/\n/g,' <br>'));
}
});
Ext.getCmp('infoGrid').getStore().reload();
}
});
return false;
} else {
PMExt.error(_('ID_ERROR'), result.message.replace(/\n/g,' <br>'));
}
}
}
}
});