From 6cc6b7a9bc9c4fd5a2d739803cbf73f7c5c60b3d Mon Sep 17 00:00:00 2001 From: Erik Amaru Ortiz Date: Thu, 10 Oct 2013 17:02:13 -0400 Subject: [PATCH] FEATURE Adding "Maintenance" interface and controller action - First maintenance taskk to resgister the PM Web designer (Rest Client) --- workflow/engine/controllers/admin.php | 56 +++++++----- workflow/engine/controllers/adminProxy.php | 56 ++++++++++++ workflow/engine/menus/setup.php | 4 +- .../engine/templates/admin/maintenance.html | 91 +++++++++++++++++++ 4 files changed, 180 insertions(+), 27 deletions(-) create mode 100644 workflow/engine/templates/admin/maintenance.html diff --git a/workflow/engine/controllers/admin.php b/workflow/engine/controllers/admin.php index dc556b438..b5d3f068b 100644 --- a/workflow/engine/controllers/admin.php +++ b/workflow/engine/controllers/admin.php @@ -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'); + } } diff --git a/workflow/engine/controllers/adminProxy.php b/workflow/engine/controllers/adminProxy.php index 4ef05adcd..985d1e9cd 100644 --- a/workflow/engine/controllers/adminProxy.php +++ b/workflow/engine/controllers/adminProxy.php @@ -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; + } } diff --git a/workflow/engine/menus/setup.php b/workflow/engine/menus/setup.php index b6ed73490..e9b036236 100755 --- a/workflow/engine/menus/setup.php +++ b/workflow/engine/menus/setup.php @@ -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"); +} \ No newline at end of file diff --git a/workflow/engine/templates/admin/maintenance.html b/workflow/engine/templates/admin/maintenance.html new file mode 100644 index 000000000..1be3b0d9a --- /dev/null +++ b/workflow/engine/templates/admin/maintenance.html @@ -0,0 +1,91 @@ + \ No newline at end of file