FEATURE Adding "Maintenance" interface and controller action

- First maintenance taskk to resgister the PM Web designer (Rest Client)
This commit is contained in:
Erik Amaru Ortiz
2013-10-10 17:02:13 -04:00
parent 507101f6dd
commit 6cc6b7a9bc
4 changed files with 180 additions and 27 deletions

View File

@@ -17,12 +17,12 @@ class Admin extends Controller
{
require_once PATH_CONTROLLERS . 'main.php';
G::loadClass( 'system' );
$skinsList = System::getSkingList();
foreach ($skinsList['skins'] as $key => $value) {
if ($value['SKIN_WORKSPACE'] != 'Global') {
unset( $skinsList['skins'][$key] );
}
}
$skinsList = System::getSkingList();
foreach ($skinsList['skins'] as $key => $value) {
if ($value['SKIN_WORKSPACE'] != 'Global') {
unset( $skinsList['skins'][$key] );
}
}
$skins = array ();
$timeZonesList = System::getAllTimeZones();
$timeZonesList = array_keys( $timeZonesList );
@@ -39,16 +39,16 @@ class Admin extends Controller
}
$this->includeExtJS( 'admin/system' );
//G::LoadClass('configuration');
//G::LoadClass('configuration');
// $c = new Configurations();
// $configPage = $c->getConfiguration('usersList', 'pageSize','',$_SESSION['USER_LOGGED']);
// $Config['pageSize'] = isset($configPage['pageSize']) ? $configPage['pageSize'] : 20;
if (isset($sysConf["session.gc_maxlifetime"])) {
$sysConf["session_gc_maxlifetime"] = $sysConf["session.gc_maxlifetime"];
} else {
$sysConf["session_gc_maxlifetime"] = ini_get('session.gc_maxlifetime');
}
// $c = new Configurations();
// $configPage = $c->getConfiguration('usersList', 'pageSize','',$_SESSION['USER_LOGGED']);
// $Config['pageSize'] = isset($configPage['pageSize']) ? $configPage['pageSize'] : 20;
if (isset($sysConf["session.gc_maxlifetime"])) {
$sysConf["session_gc_maxlifetime"] = $sysConf["session.gc_maxlifetime"];
} else {
$sysConf["session_gc_maxlifetime"] = ini_get('session.gc_maxlifetime');
}
$this->setJSVar( 'skinsList', $skins );
$this->setJSVar( 'languagesList', $languagesList );
@@ -84,7 +84,7 @@ class Admin extends Controller
public function calendarEdit ($httpData)
{
global $RBAC;
//$RBAC->requirePermissions('PM_SETUP_ADVANCE');
//$RBAC->requirePermissions('PM_SETUP_ADVANCE');
G::LoadClass( 'configuration' );
G::LoadClass( 'calendar' );
@@ -95,18 +95,18 @@ class Admin extends Controller
$fields = $calendarObj->getCalendarInfoE( $CalendarUid );
$fields['OLD_NAME'] = $fields['CALENDAR_NAME'];
}
// For a new Calendar
if (! isset( $fields['CALENDAR_UID'] )) {
// For a new Calendar
if (! isset( $fields['CALENDAR_UID'] )) {
$fields['CALENDAR_UID'] = $CalendarUid;
$fields['OLD_NAME'] = '';
//Default Business Hour
//Default Business Hour
$fields['BUSINESS_DAY'][1]['CALENDAR_BUSINESS_DAY'] = 7;
$fields['BUSINESS_DAY'][1]['CALENDAR_BUSINESS_START'] = "09:00";
$fields['BUSINESS_DAY'][1]['CALENDAR_BUSINESS_END'] = "17:00";
}
// Copy Calendar
if ((isset( $_GET['cp'] )) && ($_GET['cp'] == 1)) {
// Copy Calendar
if ((isset( $_GET['cp'] )) && ($_GET['cp'] == 1)) {
$fields['CALENDAR_UID'] = G::GenerateUniqueID();
$fields['CALENDAR_NAME'] = G::LoadTranslation( "ID_COPY_OF" ) . " " . $fields['CALENDAR_NAME'];
$fields['OLD_NAME'] = $fields['CALENDAR_NAME'];
@@ -125,7 +125,7 @@ class Admin extends Controller
}
$fields['BUSINESS_DAY'] = $businessDayArray;
//validating if the calendar is new, it means that we don't have the $_GET array
//validating if the calendar is new, it means that we don't have the $_GET array
$fields['HOLIDAY'] = (isset( $_GET['id'] ) && $_GET['id'] != '') ? $fields['HOLIDAY'] : array ();
$holidayArray = array ();
for ($i = 0; $i < sizeof( $fields['HOLIDAY'] ); $i ++) {
@@ -156,7 +156,7 @@ class Admin extends Controller
$RBAC->requirePermissions( 'PM_SETUP_ADVANCE' );
$this->includeExtJS( 'admin/emails' );
//render content
//render content
G::RenderPage( 'publish', 'extJs' );
}
@@ -178,7 +178,7 @@ class Admin extends Controller
$this->includeExtJS( 'admin/pmLogo' );
$this->setView( 'admin/pmLogo' );
//assigning js variables
//assigning js variables
$this->setJSVar( 'FORMATS', $c->getFormats() );
$this->setJSVar( 'CONFIG', $Config );
$this->setJSVar( 'PRO_UID', isset( $_GET['PRO_UID'] ) ? $_GET['PRO_UID'] : false );
@@ -190,8 +190,14 @@ class Admin extends Controller
if (isset( $_SESSION['ADD_TAB_UID'] )) {
unset( $_SESSION['ADD_TAB_UID'] );
}
//render content
//render content
G::RenderPage( 'publish', 'extJs' );
}
public function maintenance()
{
$this->setView('admin/maintenance');
$this->render('extJs');
}
}

View File

@@ -1255,5 +1255,61 @@ class adminProxy extends HttpProxyController
die;
exit();
}
public function getMaintenanceInfo()
{
$data = array('info' => array());
//$oauthClients = new OauthClients();
//$oauthClients->
$pmRestClient = OauthClientsPeer::retrieveByPK('x-pm-local-client');
$statuses['pm_rest_client'] = (!empty($pmRestClient));
//$data = $pmRestClient->toArray(BasePeer::TYPE_COLNAME);
$data['info'] = array(
array(
'name' => 'PM Web Designer (REST Client)',
'value' => ($statuses['pm_rest_client']? 'Registered' : 'Not Registered'),
'value_ok' => $statuses['pm_rest_client'],
'option' => array(
'label' => ($statuses['pm_rest_client']? 'Restore' : 'Register'),
'action' => 'doRegisterPMDesignerClient'
)
)
);
return $data;
}
public function registerPMDesignerClient()
{
$result = array();
try {
$pmRestClient = OauthClientsPeer::retrieveByPK('x-pm-local-client');
if (! empty($pmRestClient)) {
$pmRestClient->delete();
}
$oauthClients = new OauthClients();
$oauthClients->setClientId('x-pm-local-client');
$oauthClients->setClientSecret('179ad45c6ce2cb97cf1029e212046e81');
$oauthClients->setClientName('PM Web Designer');
$oauthClients->setClientDescription('ProcessMaker Web Designer App');
$oauthClients->setClientWebsite('www.processmaker.com');
$oauthClients->setRedirectUri('http://pmos/sysworkflow/en/neoclassic/services/oauth2_grant');
$oauthClients->save();
$result['success'] = true;
$result['message'] = '';
} catch (Exception $e) {
$result['success'] = false;
$result['message'] = $e->getMessage();
}
return $result;
}
}

View File

@@ -100,5 +100,5 @@ if ($RBAC->userCanAccess('PM_SETUP') == 1) {
if ($RBAC->userCanAccess("PM_SETUP") == 1) {
$G_TMP_MENU->AddIdRawOption("PM_REQUIREMENTS", "../setup/systemInfo", G::LoadTranslation("ID_PROCESSMAKER_REQUIREMENTS_CHECK"), "", "", "settings");
$G_TMP_MENU->AddIdRawOption("PHP_INFO", "../setup/systemInfo?option=php", G::LoadTranslation("ID_PHP_INFO"), "", "", "settings");
}
$G_TMP_MENU->AddIdRawOption("PHP_MAINTENANCE", "../admin/maintenance", 'Maintenance', "", "", "settings");
}

View File

@@ -0,0 +1,91 @@
<script>
Ext.onReady(main);
var infoGrid;
var store;
function main()
{
store = new Ext.data.Store( {
autoLoad: true,
proxy: new Ext.data.HttpProxy({
url: '../adminProxy/getMaintenanceInfo',
method: 'POST'
}),
baseParams : { request : 'info'},
reader : new Ext.data.JsonReader( {
root : 'info',
fields : [
{name : 'name'},
{name : 'value'},
{name : 'value_ok'},
{name : 'option'}
]
})
});
infoGrid = new Ext.grid.GridPanel({
title : 'Maintenance',
stripeRows : true,
autoHeight : true,
width : 550,
enableColumnHide: false,
enableColumnResize: false,
enableHdMenu: false,
disableSelection: true,
loading: true,
store : store,
columns : [
{
id : 'name',
header : 'Application',
width : 350,
sortable : false,
dataIndex : 'name'
},
{
header : 'Status',
width : 100,
sortable : false,
dataIndex : 'value',
renderer: function(val, el, row){
if(row.data.value_ok) {
return '<font color="green">'+val+'</font>';
} else {
return '<font color="red">'+val+'</font>';
}
}
},
{
header : '',
width : 100,
sortable : false,
dataIndex : 'option',
renderer: function(val, el, row){
return '<a href="#" onclick="'+val.action+'(); return false;">'+val.label+'</a>';
}
}
]
});
infoGrid.render(document.body)
}
function doRegisterPMDesignerClient()
{
Ext.Ajax.request({
url: '../adminProxy/registerPMDesignerClient',
method: 'POST',
params: {},
waitMsg: 'Registering, please wait!',
success: function(r, o){
var resp = Ext.util.JSON.decode(r.responseText);
console.log(resp);
store.reload();
}
});
return false;
}
</script>