From ff6dc5fd9bf9823cc9b79bc5441ff7c493a803f6 Mon Sep 17 00:00:00 2001 From: Hector Cortez Date: Mon, 19 Mar 2012 12:29:37 -0400 Subject: [PATCH] BUG 8742 Migrate Processmaker Heartbeat to ExtJS SOLVED - Migrate Processmaker Heartbeat to ExtJS (from master branch) - Heartbeat ExtJS migrated from the master branch. --- .../methods/setup/processHeartBeatAjax.php | 30 +++++++ .../methods/setup/processHeartBeatConfig.php | 89 +++++++------------ .../templates/setup/processHeartBeatConfig.js | 78 ++++++++++++++++ 3 files changed, 141 insertions(+), 56 deletions(-) create mode 100644 workflow/engine/methods/setup/processHeartBeatAjax.php create mode 100644 workflow/engine/templates/setup/processHeartBeatConfig.js diff --git a/workflow/engine/methods/setup/processHeartBeatAjax.php b/workflow/engine/methods/setup/processHeartBeatAjax.php new file mode 100644 index 000000000..66697a5cc --- /dev/null +++ b/workflow/engine/methods/setup/processHeartBeatAjax.php @@ -0,0 +1,30 @@ +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; +} diff --git a/workflow/engine/methods/setup/processHeartBeatConfig.php b/workflow/engine/methods/setup/processHeartBeatConfig.php index 04e7a2b3c..b3c8ae992 100755 --- a/workflow/engine/methods/setup/processHeartBeatConfig.php +++ b/workflow/engine/methods/setup/processHeartBeatConfig.php @@ -1,61 +1,38 @@ . + * + * 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' ); - } -?> \ No newline at end of file diff --git a/workflow/engine/templates/setup/processHeartBeatConfig.js b/workflow/engine/templates/setup/processHeartBeatConfig.js new file mode 100644 index 000000000..e33cbe15d --- /dev/null +++ b/workflow/engine/templates/setup/processHeartBeatConfig.js @@ -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 : '' + _('ID_ENABLE_HEART_BEAT') + '' + + }, + { + xtype : 'box', + autoEl : { tag : 'div', + html : '
' + _('ID_HEART_BEAT_DETAILS_1') + _('ID_HEART_BEAT_DETAILS_2') + + '
' + _('ID_SEE') + ' ' + _('ID_MORE_INFORMATION') + '.' + }, + style : 'margin-left:20px' + }, + ], + buttons : [{ + text : _('ID_SAVE'), + handler : saveOption + }] + }); + + + var frm = new Ext.FormPanel( { + title : ' ', + 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); + } + }); +} + +