Better module error handling and removed the 'restart' function of the start page.

master
penguinc 2005-01-23 06:39:20 +00:00
parent 9648184fde
commit db4b7919db
4 changed files with 24 additions and 17 deletions

View File

@ -225,14 +225,32 @@ class NWNDriver
return $data; return $data;
} }
function useModule($moduleName) function useModule($moduleName, $flush = false)
{ {
$settings = &$this->_settingsbackend->getSettings(); $settings = &$this->_settingsbackend->getSettings();
$settings['module'] = $moduleName; $settings['module'] = $moduleName;
if ($this->serverRunning()) { if ($this->serverRunning()) {
$this->sendCommand('module ' . $moduleName); $this->sendCommand('module ' . $moduleName, $flush);
sleep(2);
$result = $this->getLogContent();
$lines = explode("\n", $result);
$found = false;
foreach ($lines as $l) {
$l = trim($l);
if (!strpos($l, $moduleName) && strpos($l, 'Module loaded')) {
$found = true;
} }
return $this->_settingsbackend->setData($settings); }
if (!$found) {
unset($settings['module']);
$this->_settingsbackend->setData($settings);
return PEAR::raiseError(_("Could not load the module!"));
}
} else {
$result = PEAR::raiseError(_("Server is not running!"));
}
$this->_settingsbackend->setData($settings);
return true;
} }
function getModule() function getModule()

View File

@ -39,7 +39,7 @@ if (isset($actionId) && !isset($moduleName)) {
break; break;
case 'activate': case 'activate':
if ($admin) { if ($admin) {
$result = $nwndriver->useModule($moduleName); $result = $nwndriver->useModule($moduleName, true);
if (is_a($result, 'PEAR_Error')) { if (is_a($result, 'PEAR_Error')) {
$notification->push( $notification->push(
_("Module load failure: ") . _("Module load failure: ") .

View File

@ -26,7 +26,6 @@ if (!$params || is_a($params, 'PEAR_Error') ||
$actionId = Util::getFormData('actionId'); $actionId = Util::getFormData('actionId');
switch ($actionId) { switch ($actionId) {
case 'stop': case 'stop':
case 'restart':
$wait = true; $wait = true;
$result = $nwndriver->stopServer(); $result = $nwndriver->stopServer();
if (is_a($result, 'PEAR_Error')) { if (is_a($result, 'PEAR_Error')) {
@ -35,7 +34,7 @@ case 'restart':
} else { } else {
$notification->push(_("The server was stopped."), 'horde.success'); $notification->push(_("The server was stopped."), 'horde.success');
} }
if ($actionId == 'stop') { break; } break;
case 'start': case 'start':
$wait = true; $wait = true;
$result = $nwndriver->startServer(); $result = $nwndriver->startServer();

View File

@ -8,16 +8,6 @@ class="button" /></td></tr>
<br /> <br />
<form name="restartserver" action="<?php echo Horde::selfUrl() ?>"
method="POST"><table width="100%" cellpadding="0" cellspacing="0">
<tr class="header"><td class="header">Restart Server</td></tr>
<tr class="control"><td class="control"><input type="hidden" name="actionId"
value="restart" /><input type="submit" name="submitbutton" value="Restart"
class="button" /></td></tr>
</table></form>
<br />
<form name="killserver" action="<?php echo Horde::selfUrl() ?>" <form name="killserver" action="<?php echo Horde::selfUrl() ?>"
method="POST"><table width="100%" cellpadding="0" cellspacing="0"> method="POST"><table width="100%" cellpadding="0" cellspacing="0">
<tr class="header"><td class="header">Kill Server</td></tr> <tr class="header"><td class="header">Kill Server</td></tr>