BUG 8742 Migrate Processmaker Heartbeat to ExtJS SOLVED

- Migrate Processmaker Heartbeat to ExtJS (from master branch)
- Heartbeat ExtJS migrated from the master branch.
This commit is contained in:
Hector Cortez
2012-03-19 12:29:37 -04:00
parent 914704ea5e
commit ff6dc5fd9b
3 changed files with 141 additions and 56 deletions

View File

@@ -0,0 +1,30 @@
<?php
switch($_GET['action']){
case 'saveOption':
try {
G::LoadClass('serverConfiguration');
$oServerConf =& serverConf::getSingleton();
/*you can use SYS_TEMP or SYS_SYS ON HEAR_BEAT_CONF to save for each workspace*/
$oServerConf->unsetHeartbeatProperty('HB_BEAT_TYPE', 'HEART_BEAT_CONF');
if (isset($_POST['acceptHB'])) {
$oServerConf->setHeartbeatProperty('HB_OPTION', 1, 'HEART_BEAT_CONF');
$oServerConf->unsetHeartbeatProperty('HB_NEXT_BEAT_DATE', 'HEART_BEAT_CONF');
$response->enable = true;
}
else {
$oServerConf->setHeartbeatProperty('HB_OPTION', 0, 'HEART_BEAT_CONF');
$oServerConf->unsetHeartbeatProperty('HB_NEXT_BEAT_DATE', 'HEART_BEAT_CONF');
$oServerConf->setHeartbeatProperty('HB_BEAT_TYPE', 'endbeat', 'HEART_BEAT_CONF');
$response->enable = false;
}
$response->success = true;
} catch ( Exception $e ) {
$response->success = false;
$response->msg = $e->getMessage();
}
echo G::json_encode($response);
break;
}

View File

@@ -1,61 +1,38 @@
<?php
/**
* main.php Cases List main processor
*
* ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2010 Colosa Inc.23
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
*
*/
$oHeadPublisher =& headPublisher::getSingleton();
G::LoadClass('serverConfiguration');
$oServerConf =& serverConf::getSingleton();
if($RBAC->userCanAccess('PM_SETUP') != 1 && $RBAC->userCanAccess('PM_SETUP_ADVANCE') != 1){
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
//G::header('location: ../login/login');
die;
}
//you can use SYS_TEMP or SYS_SYS ON HEAR_BEAT_CONF to save for each workspace
$sflag = $oServerConf->getHeartbeatProperty('HB_OPTION', 'HEART_BEAT_CONF');
$heartBeatChecked = $sflag == 1? true: false;
try {
$G_PUBLISH = new Publisher;
G::LoadClass('serverConfiguration');
$oServerConf =& serverConf::getSingleton();
/*you can use SYS_TEMP or SYS_SYS ON HEAR_BEAT_CONF to save for each workspace*/
$sflag = $oServerConf->getHeartbeatProperty('HB_OPTION','HEART_BEAT_CONF');
if(($sflag)||(is_null($sflag))){
$aRow['HB_OPTION']='1';
$nextBeatDate = $oServerConf->getHeartbeatProperty('HB_NEXT_BEAT_DATE','HEART_BEAT_CONF');
$nextBeatMessage=" ".G::LoadTranslation("ID_NEXT_BEAT");
if(is_null($nextBeatDate)){
$nextBeatMessage.=" ".G::LoadTranslation("ID_NEXT_BEAT_LOGIN");
}else{
$nextBeatMessage.=" ".date("Y-m-d H:i:s",$nextBeatDate);
}
$aRow['HB_MESSAGE']=$nextBeatMessage;
}else{
$aRow['HB_OPTION']='0';
$aRow['HB_MESSAGE']="";
}
if($oServerConf->getHeartbeatProperty('HB_BEAT_TYPE','HEART_BEAT_CONF')=="endbeat"){
$oHeadPublisher =& headPublisher::getSingleton();
$oHeadPublisher->addScriptCode('
function processHbInfo(){
ajax_server="../services/processHeartBeat_Ajax.php";
parameters="action=processInformation";
method="POST";
callback="";
asynchronous=true;
ajax_post(ajax_server, parameters, method, callback, asynchronous );
}
processHbInfo();
');
}
$G_PUBLISH->AddContent ( 'xmlform', 'xmlform', 'setup/processHeartBeatConfig', '', $aRow, 'processHeartBeatSave' );
$oHeadPublisher->addExtJsScript('setup/processHeartBeatConfig', true ); //adding a javascript file .js
$oHeadPublisher->assign('heartBeatChecked', $heartBeatChecked);
G::RenderPage('publish', 'extJs');
G::RenderPage('publishBlank', 'blank');
}
catch ( Exception $e ) {
$G_PUBLISH = new Publisher;
$aMessage['MESSAGE'] = $e->getMessage();
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showMessage', '', $aMessage );
G::RenderPage( 'publishBlank', 'blank' );
}
?>

View File

@@ -0,0 +1,78 @@
Ext.onReady(function() {
HeartFields = new Ext.form.FieldSet({
title : _('ID_HEARTBEAT_DISPLAY'),
items : [
{
xtype : 'checkbox',
checked : heartBeatChecked,
name : 'acceptHB',
fieldLabel : 'Terms of Use',
hideLabel : true,
id : 'ch_ii',
style : 'margin-top:15px',
boxLabel : '<b>' + _('ID_ENABLE_HEART_BEAT') + '</b>'
},
{
xtype : 'box',
autoEl : { tag : 'div',
html : '<br />' + _('ID_HEART_BEAT_DETAILS_1') + _('ID_HEART_BEAT_DETAILS_2')
+ '<br>' + _('ID_SEE') + ' <a href="' + 'http://wiki.processmaker.com/index.php/Heartbeat'
+ '" target="_blank" align="center">' + _('ID_MORE_INFORMATION') + '</a>.'
},
style : 'margin-left:20px'
},
],
buttons : [{
text : _('ID_SAVE'),
handler : saveOption
}]
});
var frm = new Ext.FormPanel( {
title : '&nbsp',
id : 'frmHeart',
labelWidth : 150,
width : 600,
labelAlign : 'right',
autoScroll : true,
bodyStyle : 'padding:2px',
waitMsgTarget : true,
frame : true,
defaults: {
allowBlank : false,
msgTarget : 'side',
align : 'center'
},
items : [ HeartFields ]
});
//render to process-panel
frm.render(document.body);
});
function saveOption() {
Ext.getCmp('frmHeart').getForm().submit( {
url : 'processHeartBeatAjax?action=saveOption',
waitMsg : _('ID_SAVING_PROCESS'),
timeout : 36000,
success : function(obj, resp) {
//nothing to do
response = Ext.decode(resp.response.responseText);
if (response.enable) {
parent.PMExt.notify(_('ID_HEARTBEAT_DISPLAY'), _('ID_HEART_BEAT_ENABLED'));
}
else {
parent.PMExt.notify(_('ID_HEARTBEAT_DISPLAY'), _('ID_HEART_BEAT_DISABLED'));
}
},
failure : function(obj, resp) {
Ext.Msg.alert( _('ID_ERROR'), resp.result.msg);
}
});
}