Implementing basic activate/deactivate

This commit is contained in:
Dennis Eichhorn 2016-07-02 12:39:31 +02:00
parent 82a9c5c797
commit 0ed5f2b473
6 changed files with 43 additions and 4 deletions

View File

@ -18,6 +18,7 @@ namespace Modules\Admin\Admin;
use phpOMS\DataStorage\Database\Pool;
use phpOMS\Module\ActivateAbstract;
use phpOMS\Module\InfoManager;
/**
* Navigation class.
@ -36,7 +37,7 @@ class Activate extends ActivateAbstract
/**
* {@inheritdoc}
*/
public static function activate(Pool $dbPool, array $info)
public static function activate(Pool $dbPool, InfoManager $info)
{
parent::activate($dbPool, $info);
}

View File

@ -18,6 +18,7 @@ namespace Modules\Admin\Admin;
use phpOMS\DataStorage\Database\Pool;
use phpOMS\Module\DeactivateAbstract;
use phpOMS\Module\InfoManager;
/**
* Navigation class.
@ -36,7 +37,7 @@ class Deactivate extends DeactivateAbstract
/**
* {@inheritdoc}
*/
public static function deactivate(Pool $dbPool, array $info)
public static function deactivate(Pool $dbPool, InfoManager $info)
{
parent::deactivate($dbPool, $info);
}

View File

@ -106,4 +106,11 @@ return [
'verb' => RouteVerb::GET,
],
],
'^.*/api/admin/module/status.*$' => [
[
'dest' => '\Modules\Admin\Controller:apiModuleStatusUpdate',
'verb' => RouteVerb::SET,
],
],
];

View File

@ -15,6 +15,7 @@
*/
namespace Modules\Admin;
use Model\Message\Notify;
use Modules\Admin\Models\Account;
use Modules\Admin\Models\AccountMapper;
use Modules\Admin\Models\GroupMapper;
@ -356,4 +357,33 @@ class Controller extends ModuleAbstract implements WebInterface
$response->set('account', ['status' => $status, 'account' => $account->__toString()]);
}
public function apiModuleStatusUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null)
{
$module = $request->getData('module');
$status = $request->getData('status');
if(!$module || !$status) {
// todo: create failure response
}
switch($status) {
case 'activate':
$done = $this->app->moduleManager->activate($module);
break;
case 'deactivate':
$done = $this->app->moduleManager->deactivate($module);
break;
case 'install':
$done = $this->app->moduleManager->install($module);
break;
case 'uninstall':
//$done = $this->app->moduleManager->uninstall($module);
$done = true;
break;
default:
$done = false;
}
$response->set('module', [$status => $done, 'module' => $module]);
}
}

View File

@ -49,7 +49,7 @@ $id = $this->request->getData('id') ?? 1;
<td colspan="2">
<?php if (in_array($id, $active)) : ?>
<button
data-reload="<?= \phpOMS\Uri\UriFactory::build('POST:/{/lang}/backend/admin/module/deactivate?id=' . $id); ?>"><?= $this->l11n->lang['Admin']['Deactivate'] ?></button>
data-reload="<?= \phpOMS\Uri\UriFactory::build('POST:/{/lang}/backend/admin/module/status?status=deactivate&module=' . $id); ?>"><?= $this->l11n->lang['Admin']['Deactivate'] ?></button>
<?php elseif (in_array($id, $installed)) : ?>
<button data-reload="<?= \phpOMS\Uri\UriFactory::build('POST:/{/lang}/backend/admin/module/deactivate?id=' . $id); ?>"><?= $this->l11n->lang['Admin']['Uninstall'] ?></button>
<button data-reload="<?= \phpOMS\Uri\UriFactory::build('POST:/{/lang}/backend/admin/module/deactivate?id=' . $id); ?>"><?= $this->l11n->lang['Admin']['Activate'] ?></button>

View File

@ -49,7 +49,7 @@ $id = $this->request->getData('id') ?? 1;
<td colspan="2">
<?php if (in_array($id, $active)) : ?>
<button
data-reload="<?= \phpOMS\Uri\UriFactory::build('POST:/{/lang}/backend/admin/module/deactivate?id=' . $id); ?>"><?= $this->l11n->lang['Admin']['Deactivate'] ?></button>
data-reload="<?= \phpOMS\Uri\UriFactory::build('POST:/{/lang}/backend/admin/module/status?status=deactivate&module=' . $id); ?>"><?= $this->l11n->lang['Admin']['Deactivate'] ?></button>
<?php elseif (in_array($id, $installed)) : ?>
<button data-reload="<?= \phpOMS\Uri\UriFactory::build('POST:/{/lang}/backend/admin/module/deactivate?id=' . $id); ?>"><?= $this->l11n->lang['Admin']['Uninstall'] ?></button>
<button data-reload="<?= \phpOMS\Uri\UriFactory::build('POST:/{/lang}/backend/admin/module/deactivate?id=' . $id); ?>"><?= $this->l11n->lang['Admin']['Activate'] ?></button>