Started to implement profile admin functionality

This commit is contained in:
Dennis Eichhorn 2018-09-15 13:31:50 +02:00
parent 316d564b65
commit 685c7cd8ac
3 changed files with 38 additions and 31 deletions

View File

@ -94,7 +94,7 @@ return [
], ],
], ],
], ],
'^.*/backend/admin/module/settings.*$' => [ '^.*/backend/admin/module/settings\?.*$' => [
[ [
'dest' => '\Modules\Admin\Controller:viewModuleProfile', 'dest' => '\Modules\Admin\Controller:viewModuleProfile',
'verb' => RouteVerb::GET, 'verb' => RouteVerb::GET,

View File

@ -41,6 +41,7 @@ use phpOMS\System\MimeType;
use phpOMS\Utils\Parser\Markdown\Markdown; use phpOMS\Utils\Parser\Markdown\Markdown;
use phpOMS\Views\View; use phpOMS\Views\View;
use phpOMS\DataStorage\Database\RelationType; use phpOMS\DataStorage\Database\RelationType;
use phpOMS\Module\InfoManager;
/** /**
* Admin controller class. * Admin controller class.
@ -359,6 +360,22 @@ final class Controller extends ModuleAbstract implements WebInterface
$view->setTemplate('/Modules/Admin/Theme/Backend/modules-single'); $view->setTemplate('/Modules/Admin/Theme/Backend/modules-single');
$id = $request->getData('id') ?? '';
$view->setData('modules', $this->app->moduleManager->getAllModules());
$view->setData('active', $this->app->moduleManager->getActiveModules());
$view->setData('installed', $installed = $this->app->moduleManager->getInstalledModules());
$view->setData('id', $id);
if (isset($installed[$id]) && ($path = \realpath(__DIR__ . '/../' . $id . '/info.json')) !== false) {
$info = new InfoManager($path);
$info->load();
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(
$info->getId(),
$request, $response
));
}
return $view; return $view;
} }

View File

@ -14,11 +14,16 @@
/** /**
* @var \phpOMS\Views\View $this * @var \phpOMS\Views\View $this
*/ */
$modules = $this->app->moduleManager->getAllModules(); $modules = $this->getData('modules');
$active = $this->app->moduleManager->getActiveModules(); $active = $this->getData('active');
$installed = $this->app->moduleManager->getInstalledModules(); $installed = $this->getData('installed');
$id = $this->getData('id');
$id = (string) $this->request->getData('id') ?? 1; $nav = $this->getData('nav');
if ($nav !== null) {
echo $this->getData('nav')->render();
}
?> ?>
<div class="row"> <div class="row">
@ -46,32 +51,17 @@ $id = (string) $this->request->getData('id') ?? 1;
<td><?= $this->printHtml($modules[$id]['description'] ); ?> <td><?= $this->printHtml($modules[$id]['description'] ); ?>
<tr> <tr>
<td colspan="2"> <td colspan="2">
<?php if (\in_array($id, $active)) : ?> <?php if (isset($active[$id])) : ?>
<button id="iModuleDeactivateButton" data-action='[ <form id="fModuleDeactivate" action="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/admin/module/status?status=deactivate&module=' . $id); ?>" method="POST">
{ <button id="fModuleDeactivateButton" type="submit" value="deactivate"><?= $this->getHtml('Deactivate'); ?></button>
"key": 1, "listener": "click", "action": [ </form>
{"key": 1, "type": "message.request", "uri": "<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/admin/module/status?status=deactivate&module=' . $id); ?>", "method": "POST", "request_type": "json"}, <?php elseif (isset($installed[$id])) : ?>
{"key": 2, "type": "message.log"} <form id="fModuleUninstall" action="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/admin/module/status?status=uninstall&module=' . $id); ?>" method="POST">
] <button id="fModuleUninstallButton" type="submit" value="uninstall"><?= $this->getHtml('Uninstall'); ?></button>
} </form>
]'><?= $this->getHtml('Deactivate'); ?></button> <form id="fModuleActivate" action="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/admin/module/status?status=activate&module=' . $id); ?>" method="POST">
<?php elseif (\in_array($id, $installed)) : ?> <button id="fModuleActivateButton" type="submit" value="activate"><?= $this->getHtml('Activate'); ?></button>
<button id="iModuleUninstallButton" data-action='[ </form>
{
"key": 1, "listener": "click", "action": [
{"key": 1, "type": "message.request", "uri": "<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/admin/module/status?status=uninstall&module=' . $id); ?>", "method": "POST", "request_type": "json"},
{"key": 2, "type": "message.log"}
]
}
]'>><?= $this->getHtml('Uninstall'); ?></button>
<button id="iModuleActivateButton" data-action='[
{
"key": 1, "listener": "click", "action": [
{"key": 1, "type": "message.request", "uri": "<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/admin/module/status?status=activate&module=' . $id); ?>", "method": "POST", "request_type": "json"},
{"key": 2, "type": "message.log"}
]
}
]'><?= $this->getHtml('Activate'); ?></button>
<?php elseif (isset($modules[$id])) : ?> <?php elseif (isset($modules[$id])) : ?>
<button id="iModuleInstallButton" data-action='[ <button id="iModuleInstallButton" data-action='[
{ {