. -------------------------------------------------------------------------- */ class PluginProcessmakerConfig extends CommonDBTM { /** * Summary of getTypeName * @param mixed $nb plural * @return mixed */ static function getTypeName($nb = 0) { return __('ProcessMaker setup', 'processmaker'); } /** * Summary of getName * @param mixed $with_comment with comment * @return mixed */ function getName($with_comment = 0) { return __('ProcessMaker', 'processmaker'); } /** * Summary of showConfigForm * @param mixed $item is the config * @return boolean */ static function showConfigForm($item) { global $PM_DB, $CFG_GLPI, $PM_SOAP; $setup_ok = false; $ui_theme = [ 'glpi_classic' => 'glpi_classic', 'glpi_neoclassic' => 'glpi_neoclassic' ]; $pmconfig = $PM_SOAP->config; echo "
"; echo "
"; echo ""; echo ""; if (!$pmconfig['maintenance']) { echo ""; echo "\n"; echo ""; echo ""; echo ""; echo "\n"; echo ""; echo ""; echo "\n"; echo ""; echo ""; echo "\n"; echo ""; echo "\n"; echo ""; if ($setup_ok) { $info = $PM_SOAP->systemInformation( ); $pm_version = explode('-RE-', $info->version); $pm_requested_minversion = explode('-RE-', PLUGIN_PROCESSMAKER_MIN_PM); $pm_requested_maxversion = explode('-RE-', PLUGIN_PROCESSMAKER_MAX_PM); if (version_compare($pm_version[0], $pm_requested_minversion[0], 'ge') && version_compare($pm_version[0], $pm_requested_maxversion[0], 'le') && isset($pm_version[1]) && version_compare($pm_version[1], $pm_requested_minversion[1], 'ge') && version_compare($pm_version[1], $pm_requested_maxversion[1], 'le')) { echo '"; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } else { echo ''; } } else { echo ''; } echo ""; echo ""; echo ""; echo "\n"; echo ""; echo ""; echo "\n"; echo ""; echo ""; echo "\n"; echo ""; echo ""; echo "\n"; echo ""; echo "\n"; echo ""; echo ""; echo ""; echo ""; echo "\n"; echo ""; echo "\n"; echo ""; echo "\n"; echo ""; echo ""; echo "\n"; echo ""; echo ""; echo "\n"; } else { echo ""; } echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo "
" . __('ProcessMaker setup') . "
".__('Server URL (if GLPI is using HTTPS, PM server must also use HTTPS)', 'processmaker').""; echo ""; echo "
".__('Verify SSL certificate', 'processmaker').""; Dropdown::showYesNo("ssl_verify", $pmconfig['ssl_verify']); echo "
".__('Workspace Name', 'processmaker').""; echo ""; echo "
".__('Server administrator name', 'processmaker').""; echo "
".__('Server administrator password', 'processmaker').""; echo "  "; echo "
".__('Connection status', 'processmaker').""; if ($pmconfig['pm_server_URL'] != '' && $pmconfig['pm_workspace'] != '' && $pmconfig["pm_admin_user"] != '' && ($PM_SOAP->login(true))) { echo "".__('Test successful'); $setup_ok = true; } else { echo "".__('Test failed')."
".print_r($PM_SOAP->lasterror, true); } echo "
".__('ProcessMaker server information', 'processmaker')."
'.__('Version', 'processmaker')."".$info->version." -> OK
'.__('Web server', 'processmaker').''.$info->webServer.'
'.__('Server name', 'processmaker').''.$info->serverName.'
'.__('PHP version', 'processmaker').''.$info->phpVersion.'
'.__('DB version', 'processmaker').''.$info->databaseVersion.'
'.__('DB server IP', 'processmaker').''.$info->databaseServerIp.'
'.__('DB name', 'processmaker').''.$info->databaseName.'
'.__('User browser', 'processmaker').''.$info->userBrowser.'
'.__('User IP', 'processmaker').''.$info->userIp.'
'.__('Version', 'processmaker').''.$info->version.' -> NOK
'. sprintf(__('This plugin requires PM server >= %s and < %s', 'processmaker'), PLUGIN_PROCESSMAKER_MIN_PM, PLUGIN_PROCESSMAKER_MAX_PM). '
'.__('Version', 'processmaker')."
".__('SQL server setup', 'processmaker')."
" . __('SQL server (MariaDB or MySQL)', 'processmaker') . ""; echo "
" . __('Database name', 'processmaker') . ""; echo "
" . __('SQL user', 'processmaker') . ""; echo "
" . __('SQL password', 'processmaker') . ""; echo "  "; echo "
".__('Connection status', 'processmaker').""; if (isset($PM_DB) && $PM_DB->connected && isset($PM_DB->dbdefault) && $PM_DB->dbdefault != '') { echo "".__('Test successful'); } else { echo "".__('Test failed'); } echo "
".__('Settings')."
".__('Theme Name', 'processmaker').""; Dropdown::showFromArray('pm_theme', $ui_theme, ['value' => $pmconfig['pm_theme']]); echo "
".__('Main Task Category (edit to change name)', 'processmaker').""; TaskCategory::dropdown(['name' => 'taskcategories_id', 'display_emptychoice' => true, 'value' => $pmconfig['taskcategories_id']]); echo "
".__('Task writer (edit to change name)', 'processmaker').""; $rand = mt_rand(); User::dropdown(['name' => 'users_id', 'display_emptychoice' => true, 'right' => 'all', 'rand' => $rand, 'value' => $pmconfig['users_id']]); // this code adds the + sign to the form echo ""; echo Ajax::createIframeModalWindow('add_dropdown'.$rand, User::getFormURL(), ['display' => false]); // end of + sign echo "
".__('Group in ProcessMaker which will contain all GLPI users', 'processmaker').""; $pmGroups = [ 0 => Dropdown::EMPTY_VALUE ]; if ($PM_DB->connected) { $res = $PM_DB->request([ 'DISTINCT' => 'CON_ID', 'FIELDS' => ['CON_ID', 'CON_VALUE'], 'FROM' => 'CONTENT', 'WHERE' => ['CON_CATEGORY' => 'GRP_TITLE'], 'ORDER' => 'CON_VALUE' ]); foreach ($res as $row) { $pmGroups[ $row['CON_ID'] ] = $row['CON_VALUE']; } Dropdown::showFromArray('pm_group_guid', $pmGroups, ['value' => $pmconfig['pm_group_guid']]); } else { echo "".__('Not connected'); } echo "
" . __('Max cases per item (0=unlimited)', 'processmaker') . ""; echo "
" . __('Re-assign reason is mandatory (can be changed in process settings)', 'processmaker') . ""; Dropdown::showYesNo('is_reassignreason_mandatory', $pmconfig['is_reassignreason_mandatory']); echo "
"; PluginProcessmakerProcessmaker::showUnderMaintenance(); echo "
".__('Maintenance')."
".__('Maintenance mode').""; Dropdown::showYesNo("maintenance", $pmconfig['maintenance']); echo "
"; echo ""; echo "
"; echo ""; echo ""; echo ""; Html::closeForm(); return false; } static function configUpdate($input) { if (isset($input["pm_admin_passwd"]) && $input["pm_admin_passwd"] == '') { unset($input["pm_admin_passwd"]); } if (isset($input["_blank_pm_admin_passwd"]) && $input["_blank_pm_admin_passwd"]) { $input['pm_admin_passwd'] = ''; } if (isset($input["pm_dbserver_passwd"]) && $input["pm_dbserver_passwd"] == '') { unset($input["pm_dbserver_passwd"]); } if (isset($input["_blank_pm_dbserver_passwd"]) && $input["_blank_pm_dbserver_passwd"]) { $input['pm_dbserver_passwd'] = ''; } return $input; } function getTabNameForItem(CommonGLPI $item, $withtemplate = 0) { if ($item->getType()=='Config') { return __('ProcessMaker', 'processmaker'); } return ''; } static function displayTabContentForItem(CommonGLPI $item, $tabnum = 1, $withtemplate = 0) { if ($item->getType()=='Config') { self::showConfigForm($item); } return true; } }