mirror of
https://github.com/Karaka-Management/oms-Admin.git
synced 2026-01-26 20:18:40 +00:00
Add module setting pages
This commit is contained in:
parent
f46bd36261
commit
fba7d2c382
|
|
@ -139,8 +139,38 @@
|
|||
"pid": "/admin/module",
|
||||
"type": 3,
|
||||
"subtype": 1,
|
||||
"name": "Info",
|
||||
"uri": "{/prefix}admin/module/info?{?}",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 4,
|
||||
"from": "Admin",
|
||||
"permission": { "permission": 2, "type": null, "element": null },
|
||||
"parent": 1000105001,
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"id": 1000105201,
|
||||
"pid": "/admin/module",
|
||||
"type": 3,
|
||||
"subtype": 1,
|
||||
"name": "Settings",
|
||||
"uri": "{/prefix}admin/module/setting?{?}",
|
||||
"uri": "{/prefix}admin/module/settings?{?}",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 4,
|
||||
"from": "Admin",
|
||||
"permission": { "permission": 2, "type": null, "element": null },
|
||||
"parent": 1000105001,
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"id": 1000105301,
|
||||
"pid": "/admin/module",
|
||||
"type": 3,
|
||||
"subtype": 1,
|
||||
"name": "Log",
|
||||
"uri": "{/prefix}admin/module/log?{?}",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 4,
|
||||
|
|
|
|||
|
|
@ -103,9 +103,31 @@ return [
|
|||
],
|
||||
],
|
||||
],
|
||||
'^.*/admin/module/info\?.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\Admin\Controller\BackendController:viewModuleInfo',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => BackendController::MODULE_NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionState::MODULE,
|
||||
],
|
||||
],
|
||||
],
|
||||
'^.*/admin/module/settings\?.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\Admin\Controller\BackendController:viewModuleProfile',
|
||||
'dest' => '\Modules\Admin\Controller\BackendController:viewModuleSettings',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => BackendController::MODULE_NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionState::MODULE,
|
||||
],
|
||||
],
|
||||
],
|
||||
'^.*/admin/module/log\?.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\Admin\Controller\BackendController:viewModuleLog',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => BackendController::MODULE_NAME,
|
||||
|
|
|
|||
|
|
@ -838,6 +838,17 @@ final class ApiController extends Controller
|
|||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Account', 'Account successfully created. Link: <a href="' . (UriFactory::build('{/prefix}admin/account/settings?{?}&id=' . $account->getId())) . '">Account</a>', $account);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create directory for an account
|
||||
*
|
||||
* @param int $id Account id
|
||||
* @param string $name Name of the directory/account
|
||||
* @param int $createdBy Creator of the directory
|
||||
*
|
||||
* @return Collection
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function createMediaDirForAccount(int $id, string $name, int $createdBy) : Collection
|
||||
{
|
||||
$collection = new Collection();
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ declare(strict_types=1);
|
|||
namespace Modules\Admin\Controller;
|
||||
|
||||
use Model\SettingMapper;
|
||||
use Model\NullSetting;
|
||||
use Model\SettingsEnum;
|
||||
use Modules\Admin\Models\AccountMapper;
|
||||
use Modules\Admin\Models\AccountPermissionMapper;
|
||||
|
|
@ -361,10 +362,11 @@ final class BackendController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function viewModuleProfile(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
|
||||
public function viewModuleInfo(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
|
||||
{
|
||||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
$view->setTemplate('/Modules/Admin/Theme/Backend/modules-single');
|
||||
$view->setTemplate('/Modules/Admin/Theme/Backend/modules-info');
|
||||
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000105001, $request, $response));
|
||||
|
||||
$id = $request->getData('id') ?? '';
|
||||
$view->setData('modules', $this->app->moduleManager->getAllModules());
|
||||
|
|
@ -372,21 +374,58 @@ final class BackendController extends Controller
|
|||
$view->setData('installed', $installed = $this->app->moduleManager->getInstalledModules());
|
||||
$view->setData('id', $id);
|
||||
|
||||
$path = \realpath(__DIR__ . '/../' . $id . '/info.json');
|
||||
|
||||
if (isset($installed[$id]) && $path !== false) {
|
||||
$info = new ModuleInfo($path);
|
||||
$info->load();
|
||||
|
||||
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(
|
||||
$info->getId(),
|
||||
$request, $response
|
||||
));
|
||||
}
|
||||
|
||||
$groupPermission = GroupMapper::getPermissionForModule($id);
|
||||
$view->setData('groupPermissions', $groupPermission);
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method which generates the module profile view.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return RenderableInterface Response can be rendered
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function viewModuleSettings(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
|
||||
{
|
||||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
$view->setTemplate('/Modules/Admin/Theme/Backend/modules-settings');
|
||||
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000105001, $request, $response));
|
||||
|
||||
$id = $request->getData('id') ?? '';
|
||||
|
||||
$settings = SettingMapper::getFor($id, 'module');
|
||||
if (!($settings instanceof NullSetting)) {
|
||||
$view->setData('settings', !\is_array($settings) ? [$settings] : $settings);
|
||||
}
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method which generates the module profile view.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return RenderableInterface Response can be rendered
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function viewModuleLog(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
|
||||
{
|
||||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
$view->setTemplate('/Modules/Admin/Theme/Backend/modules-log');
|
||||
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000105001, $request, $response));
|
||||
|
||||
$id = $request->getData('id') ?? '';
|
||||
|
||||
// audit log
|
||||
if ($request->getData('ptype') === 'p') {
|
||||
$view->setData('auditlogs', AuditMapper::with('module', (string) $request->getData('id'), [Audit::class])::getBeforePivot((int) $request->getData('audit'), null, 25));
|
||||
|
|
|
|||
|
|
@ -22,6 +22,9 @@ return [
|
|||
'List' => 'List',
|
||||
'Members' => 'Members',
|
||||
'Modules' => 'Modules',
|
||||
'Settings' => 'Settings',
|
||||
'Log' => 'Log',
|
||||
'Info' => 'Info',
|
||||
'Account' => 'Account',
|
||||
'Accounts' => 'Accounts',
|
||||
],
|
||||
|
|
|
|||
125
Theme/Backend/modules-info.tpl.php
Normal file
125
Theme/Backend/modules-info.tpl.php
Normal file
|
|
@ -0,0 +1,125 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 8.0
|
||||
*
|
||||
* @package Modules\Admin\Template\Backend
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
use Modules\Admin\Models\ModuleStatusUpdateType;
|
||||
use phpOMS\Message\Http\HttpHeader;
|
||||
use phpOMS\Uri\UriFactory;
|
||||
|
||||
/**
|
||||
* @var \phpOMS\Views\View $this
|
||||
*/
|
||||
$modules = $this->getData('modules');
|
||||
$active = $this->getData('active');
|
||||
$installed = $this->getData('installed');
|
||||
$id = $this->getData('id');
|
||||
|
||||
echo $this->getData('nav')->render();
|
||||
?>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-4">
|
||||
<div class="portlet">
|
||||
<div class="portlet-head"><?= $this->printHtml($modules[$id]->getExternalName()); ?></div>
|
||||
|
||||
<div class="portlet-body">
|
||||
<table class="list wf-100">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><?= $this->getHtml('Name'); ?>
|
||||
<td><?= $this->printHtml($modules[$id]->getExternalName()); ?>
|
||||
<tr>
|
||||
<td><?= $this->getHtml('Version'); ?>
|
||||
<td><?= $this->printHtml($modules[$id]->getVersion()); ?>
|
||||
<tr>
|
||||
<td><?= $this->getHtml('CreatedBy'); ?>
|
||||
<td><?= $this->printHtml($modules[$id]->get()['creator']['name']); ?>
|
||||
<tr>
|
||||
<td><?= $this->getHtml('Website'); ?>
|
||||
<td><?= $this->printHtml($modules[$id]->get()['creator']['website']); ?>
|
||||
<tr>
|
||||
<td><?= $this->getHtml('Description'); ?>
|
||||
<td><?= $this->printHtml($modules[$id]->get()['description']); ?>
|
||||
</table>
|
||||
</div>
|
||||
<div class="portlet-foot">
|
||||
<?php if (isset($active[$id])) : ?>
|
||||
<form id="fModuleDeactivate" action="<?= UriFactory::build('{/api}admin/module/status?module=' . $id); ?>" method="POST">
|
||||
<button id="fModuleDeactivateButton" name="status" type="submit" value="<?= ModuleStatusUpdateType::DEACTIVATE; ?>"><?= $this->getHtml('Deactivate'); ?></button>
|
||||
</form>
|
||||
<?php elseif (isset($installed[$id])) : ?>
|
||||
<div class="ipt-wrap">
|
||||
<div class="ipt-first">
|
||||
<form id="fModuleUninstall" action="<?= UriFactory::build('{/api}admin/module/status?module=' . $id); ?>" method="POST">
|
||||
<button id="fModuleUninstallButton" name="status" type="submit" value="<?= ModuleStatusUpdateType::UNINSTALL; ?>"><?= $this->getHtml('Uninstall'); ?></button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="ipt-second">
|
||||
<form id="fModuleActivate" action="<?= UriFactory::build('{/api}admin/module/status?module=' . $id); ?>" method="POST">
|
||||
<button id="fModuleActivateButton" name="status" type="submit" value="<?= ModuleStatusUpdateType::ACTIVATE; ?>"><?= $this->getHtml('Activate'); ?></button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<?php elseif (isset($modules[$id])) : ?>
|
||||
<div class="ipt-wrap">
|
||||
<div class="ipt-first">
|
||||
<form id="fModuleInstall" action="<?= UriFactory::build('{/api}admin/module/status?module=' . $id); ?>" method="POST">
|
||||
<button id="fModuleInstallButton" name="status" type="submit" value="<?= ModuleStatusUpdateType::INSTALL; ?>"><?= $this->getHtml('Install'); ?></button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="ipt-second">
|
||||
<form id="fModuleDelete" action="<?= UriFactory::build('{/api}admin/module/status?module=' . $id); ?>" method="POST">
|
||||
<button id="fModuleDeleteButton" name="status" type="submit" value="<?= ModuleStatusUpdateType::DELETE; ?>"><?= $this->getHtml('Delete'); ?></button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12 col-md-4">
|
||||
<div class="portlet">
|
||||
<div class="portlet-head"><?= $this->getHtml('Settings'); ?></div>
|
||||
|
||||
<div class="portlet-body">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12 col-md-4">
|
||||
<div class="portlet">
|
||||
<table id="iModuleGroupList" class="default">
|
||||
<caption><?= $this->getHtml('Permissions'); ?><i class="fa fa-download floatRight download btn"></i></caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<td><?= $this->getHtml('ID', '0', '0'); ?><i class="sort-asc fa fa-chevron-up"></i><i class="sort-desc fa fa-chevron-down"></i>
|
||||
<td>Type<i class="sort-asc fa fa-chevron-up"></i><i class="sort-desc fa fa-chevron-down"></i>
|
||||
<td class="wf-100"><?= $this->getHtml('Name'); ?><i class="sort-asc fa fa-chevron-up"></i><i class="sort-desc fa fa-chevron-down"></i>
|
||||
<tbody>
|
||||
<?php $c = 0; $groupPermissions = $this->getData('groupPermissions');
|
||||
foreach ($groupPermissions as $key => $value) : ++$c;
|
||||
$url = UriFactory::build('{/prefix}admin/group/settings?{?}&id=' . $value->getId()); ?>
|
||||
<tr data-href="<?= $url; ?>">
|
||||
<td><a href="<?= $url; ?>"><i class="fa fa-times"></i></a>
|
||||
<td><a href="<?= $url; ?>">Group</a>
|
||||
<td><a href="<?= $url; ?>"><?= $value->name; ?></a>
|
||||
<?php endforeach; ?>
|
||||
<?php if ($c === 0) : ?>
|
||||
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
78
Theme/Backend/modules-log.tpl.php
Normal file
78
Theme/Backend/modules-log.tpl.php
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 8.0
|
||||
*
|
||||
* @package Modules\Admin\Template\Backend
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
use Modules\Admin\Models\ModuleStatusUpdateType;
|
||||
use phpOMS\Message\Http\HttpHeader;
|
||||
use phpOMS\Uri\UriFactory;
|
||||
|
||||
/**
|
||||
* @var \phpOMS\Views\View $this
|
||||
*/
|
||||
$audits = $this->getData('auditlogs') ?? [];
|
||||
|
||||
$previous = empty($audits) ? HttpHeader::getAllHeaders()['Referer'] ?? '{/prefix}admin/module/settings?id={?id}#{\#}' : '{/prefix}admin/module/settings?{?}&audit=' . \reset($audits)->getId() . '&ptype=p#{\#}';
|
||||
$next = empty($audits) ? HttpHeader::getAllHeaders()['Referer'] ?? '{/prefix}admin/module/settings?id={?id}#{\#}' : '{/prefix}admin/module/settings?{?}&audit=' . \end($audits)->getId() . '&ptype=n#{\#}';
|
||||
|
||||
echo $this->getData('nav')->render();
|
||||
?>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="portlet">
|
||||
<div class="portlet-head"><?= $this->getHtml('Audits', 'Auditor'); ?><i class="fa fa-download floatRight download btn"></i></div>
|
||||
<table class="default fixed">
|
||||
<colgroup>
|
||||
<col style="width: 75px">
|
||||
<col style="width: 150px">
|
||||
<col style="width: 100px">
|
||||
<col>
|
||||
<col>
|
||||
<col style="width: 125px">
|
||||
<col style="width: 75px">
|
||||
<col style="width: 150px">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<td><?= $this->getHtml('ID', '0', '0'); ?>
|
||||
<td><?= $this->getHtml('Module', 'Auditor'); ?>
|
||||
<td><?= $this->getHtml('Type', 'Auditor'); ?>
|
||||
<td><?= $this->getHtml('Trigger', 'Auditor'); ?>
|
||||
<td><?= $this->getHtml('Content', 'Auditor'); ?>
|
||||
<td><?= $this->getHtml('By', 'Auditor'); ?>
|
||||
<td><?= $this->getHtml('Ref', 'Auditor'); ?>
|
||||
<td><?= $this->getHtml('Date', 'Auditor'); ?>
|
||||
<tbody>
|
||||
<?php $count = 0; foreach ($audits as $key => $audit) : ++$count;
|
||||
$url = UriFactory::build('{/prefix}admin/audit/single?{?}&id=' . $audit->getId()); ?>
|
||||
<tr tabindex="0" data-href="<?= $url; ?>">
|
||||
<td><?= $audit->getId(); ?>
|
||||
<td><?= $this->printHtml($audit->getModule()); ?>
|
||||
<td><?= $audit->getType(); ?>
|
||||
<td><?= $this->printHtml($audit->getTrigger()); ?>
|
||||
<td><?= $this->printHtml($audit->getContent()); ?>
|
||||
<td><?= $this->printHtml($audit->createdBy->login); ?>
|
||||
<td><?= $this->printHtml($audit->getRef()); ?>
|
||||
<td><?= $audit->createdAt->format('Y-m-d H:i'); ?>
|
||||
<?php endforeach; ?>
|
||||
<?php if ($count === 0) : ?>
|
||||
<tr><td colspan="8" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
<div class="portlet-foot">
|
||||
<a tabindex="0" class="button" href="<?= UriFactory::build($previous); ?>"><?= $this->getHtml('Previous', '0', '0'); ?></a>
|
||||
<a tabindex="0" class="button" href="<?= UriFactory::build($next); ?>"><?= $this->getHtml('Next', '0', '0'); ?></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,115 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 8.0
|
||||
*
|
||||
* @package Modules\Admin\Template\Backend
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
use Modules\Admin\Models\ModuleStatusUpdateType;
|
||||
use phpOMS\Message\Http\HttpHeader;
|
||||
use phpOMS\Uri\UriFactory;
|
||||
|
||||
/**
|
||||
* @var \phpOMS\Views\View $this
|
||||
*/
|
||||
$settings = $this->getData('settings') ?? [];
|
||||
|
||||
echo $this->getData('nav')->render();
|
||||
?>
|
||||
<div class="tabview tab-2">
|
||||
<div class="box wf-100 col-xs-12">
|
||||
<ul class="tab-links">
|
||||
<li><label for="c-tab-1"><?= $this->getHtml('Settings'); ?></label></li>
|
||||
<li><label for="c-tab-2"><?= $this->getHtml('List'); ?></label></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tab-content">
|
||||
<input type="radio" id="c-tab-2" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-2' ? ' checked' : ''; ?>>
|
||||
<div class="tab">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="portlet">
|
||||
<div class="portlet-head"><?= $this->getHtml('Settings'); ?><i class="fa fa-download floatRight download btn"></i></div>
|
||||
<table id="settingsList" class="default sticky">
|
||||
<thead>
|
||||
<tr>
|
||||
<td>
|
||||
<td><?= $this->getHtml('ID', '0', '0'); ?>
|
||||
<label for="settingsList-sort-1">
|
||||
<input type="radio" name="settingsList-sort" id="settingsList-sort-1">
|
||||
<i class="sort-asc fa fa-chevron-up"></i>
|
||||
</label>
|
||||
<label for="settingsList-sort-2">
|
||||
<input type="radio" name="settingsList-sort" id="settingsList-sort-2">
|
||||
<i class="sort-desc fa fa-chevron-down"></i>
|
||||
</label>
|
||||
<label>
|
||||
<i class="filter fa fa-filter"></i>
|
||||
</label>
|
||||
<td><?= $this->getHtml('Name'); ?>
|
||||
<label for="settingsList-sort-3">
|
||||
<input type="radio" name="settingsList-sort" id="settingsList-sort-3">
|
||||
<i class="sort-asc fa fa-chevron-up"></i>
|
||||
</label>
|
||||
<label for="settingsList-sort-4">
|
||||
<input type="radio" name="settingsList-sort" id="settingsList-sort-4">
|
||||
<i class="sort-desc fa fa-chevron-down"></i>
|
||||
</label>
|
||||
<label>
|
||||
<i class="filter fa fa-filter"></i>
|
||||
</label>
|
||||
<td class="wf-100"><?= $this->getHtml('Value'); ?>
|
||||
<td><?= $this->getHtml('Group'); ?>
|
||||
<label for="settingsList-sort-7">
|
||||
<input type="radio" name="settingsList-sort" id="settingsList-sort-7">
|
||||
<i class="sort-asc fa fa-chevron-up"></i>
|
||||
</label>
|
||||
<label for="settingsList-sort-8">
|
||||
<input type="radio" name="settingsList-sort" id="settingsList-sort-8">
|
||||
<i class="sort-desc fa fa-chevron-down"></i>
|
||||
</label>
|
||||
<label>
|
||||
<i class="filter fa fa-filter"></i>
|
||||
</label>
|
||||
<td><?= $this->getHtml('Account'); ?>
|
||||
<label for="settingsList-sort-9">
|
||||
<input type="radio" name="settingsList-sort" id="settingsList-sort-9">
|
||||
<i class="sort-asc fa fa-chevron-up"></i>
|
||||
</label>
|
||||
<label for="settingsList-sort-10">
|
||||
<input type="radio" name="settingsList-sort" id="settingsList-sort-10">
|
||||
<i class="sort-desc fa fa-chevron-down"></i>
|
||||
</label>
|
||||
<label>
|
||||
<i class="filter fa fa-filter"></i>
|
||||
</label>
|
||||
<tbody>
|
||||
<?php $count = 0;
|
||||
foreach ($settings as $key => $setting) : ++$count;
|
||||
?>
|
||||
<tr tabindex="0">
|
||||
<td><i class="fa fa-cogs"></i>
|
||||
<td data-label="<?= $this->getHtml('ID', '0', '0'); ?>"><?= $setting->getId(); ?>
|
||||
<td data-label="<?= $this->getHtml('Name'); ?>"><?= $this->printHtml($setting->name); ?>
|
||||
<td data-label="<?= $this->getHtml('Value'); ?>"><?= $this->printHtml($setting->content); ?>
|
||||
<td data-label="<?= $this->getHtml('Group'); ?>"><?= $this->printHtml($setting->group); ?>
|
||||
<td data-label="<?= $this->getHtml('Account'); ?>"><?= $this->printHtml($setting->account); ?>
|
||||
<?php endforeach; ?>
|
||||
<?php if ($count === 0) : ?>
|
||||
<tr><td colspan="6" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1,198 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 8.0
|
||||
*
|
||||
* @package Modules\Admin\Template\Backend
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
use Modules\Admin\Models\ModuleStatusUpdateType;
|
||||
use phpOMS\Message\Http\HttpHeader;
|
||||
use phpOMS\Uri\UriFactory;
|
||||
|
||||
/**
|
||||
* @var \phpOMS\Views\View $this
|
||||
*/
|
||||
$modules = $this->getData('modules');
|
||||
$active = $this->getData('active');
|
||||
$installed = $this->getData('installed');
|
||||
$id = $this->getData('id');
|
||||
$audits = $this->getData('auditlogs') ?? [];
|
||||
|
||||
$nav = $this->getData('nav');
|
||||
|
||||
$previous = empty($audits) ? HttpHeader::getAllHeaders()['Referer'] ?? '{/prefix}admin/module/settings?id={?id}#{\#}' : '{/prefix}admin/module/settings?{?}&audit=' . \reset($audits)->getId() . '&ptype=p#{\#}';
|
||||
$next = empty($audits) ? HttpHeader::getAllHeaders()['Referer'] ?? '{/prefix}admin/module/settings?id={?id}#{\#}' : '{/prefix}admin/module/settings?{?}&audit=' . \end($audits)->getId() . '&ptype=n#{\#}';
|
||||
|
||||
if ($nav !== null) {
|
||||
echo $this->getData('nav')->render();
|
||||
}
|
||||
?>
|
||||
<div class="tabview tab-2">
|
||||
<div class="box wf-100 col-xs-12">
|
||||
<ul class="tab-links">
|
||||
<li><label for="c-tab-1"><?= $this->getHtml('General'); ?></label></li>
|
||||
<li><label for="c-tab-2"><?= $this->getHtml('AuditLog'); ?></label></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tab-content">
|
||||
<input type="radio" id="c-tab-1" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-1' ? ' checked' : ''; ?>>
|
||||
<div class="tab">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-4">
|
||||
<div class="portlet">
|
||||
<div class="portlet-head"><?= $this->printHtml($modules[$id]->getExternalName()); ?></div>
|
||||
|
||||
<div class="portlet-body">
|
||||
<table class="list wf-100">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><?= $this->getHtml('Name'); ?>
|
||||
<td><?= $this->printHtml($modules[$id]->getExternalName()); ?>
|
||||
<tr>
|
||||
<td><?= $this->getHtml('Version'); ?>
|
||||
<td><?= $this->printHtml($modules[$id]->getVersion()); ?>
|
||||
<tr>
|
||||
<td><?= $this->getHtml('CreatedBy'); ?>
|
||||
<td><?= $this->printHtml($modules[$id]->get()['creator']['name']); ?>
|
||||
<tr>
|
||||
<td><?= $this->getHtml('Website'); ?>
|
||||
<td><?= $this->printHtml($modules[$id]->get()['creator']['website']); ?>
|
||||
<tr>
|
||||
<td><?= $this->getHtml('Description'); ?>
|
||||
<td><?= $this->printHtml($modules[$id]->get()['description']); ?>
|
||||
</table>
|
||||
</div>
|
||||
<div class="portlet-foot">
|
||||
<?php if (isset($active[$id])) : ?>
|
||||
<form id="fModuleDeactivate" action="<?= UriFactory::build('{/api}admin/module/status?module=' . $id); ?>" method="POST">
|
||||
<button id="fModuleDeactivateButton" name="status" type="submit" value="<?= ModuleStatusUpdateType::DEACTIVATE; ?>"><?= $this->getHtml('Deactivate'); ?></button>
|
||||
</form>
|
||||
<?php elseif (isset($installed[$id])) : ?>
|
||||
<div class="ipt-wrap">
|
||||
<div class="ipt-first">
|
||||
<form id="fModuleUninstall" action="<?= UriFactory::build('{/api}admin/module/status?module=' . $id); ?>" method="POST">
|
||||
<button id="fModuleUninstallButton" name="status" type="submit" value="<?= ModuleStatusUpdateType::UNINSTALL; ?>"><?= $this->getHtml('Uninstall'); ?></button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="ipt-second">
|
||||
<form id="fModuleActivate" action="<?= UriFactory::build('{/api}admin/module/status?module=' . $id); ?>" method="POST">
|
||||
<button id="fModuleActivateButton" name="status" type="submit" value="<?= ModuleStatusUpdateType::ACTIVATE; ?>"><?= $this->getHtml('Activate'); ?></button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<?php elseif (isset($modules[$id])) : ?>
|
||||
<div class="ipt-wrap">
|
||||
<div class="ipt-first">
|
||||
<form id="fModuleInstall" action="<?= UriFactory::build('{/api}admin/module/status?module=' . $id); ?>" method="POST">
|
||||
<button id="fModuleInstallButton" name="status" type="submit" value="<?= ModuleStatusUpdateType::INSTALL; ?>"><?= $this->getHtml('Install'); ?></button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="ipt-second">
|
||||
<form id="fModuleDelete" action="<?= UriFactory::build('{/api}admin/module/status?module=' . $id); ?>" method="POST">
|
||||
<button id="fModuleDeleteButton" name="status" type="submit" value="<?= ModuleStatusUpdateType::DELETE; ?>"><?= $this->getHtml('Delete'); ?></button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12 col-md-4">
|
||||
<div class="portlet">
|
||||
<div class="portlet-head"><?= $this->getHtml('Settings'); ?></div>
|
||||
|
||||
<div class="portlet-body">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12 col-md-4">
|
||||
<div class="portlet">
|
||||
<table id="iModuleGroupList" class="default">
|
||||
<caption><?= $this->getHtml('Permissions'); ?><i class="fa fa-download floatRight download btn"></i></caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<td><?= $this->getHtml('ID', '0', '0'); ?><i class="sort-asc fa fa-chevron-up"></i><i class="sort-desc fa fa-chevron-down"></i>
|
||||
<td>Type<i class="sort-asc fa fa-chevron-up"></i><i class="sort-desc fa fa-chevron-down"></i>
|
||||
<td class="wf-100"><?= $this->getHtml('Name'); ?><i class="sort-asc fa fa-chevron-up"></i><i class="sort-desc fa fa-chevron-down"></i>
|
||||
<tbody>
|
||||
<?php $c = 0; $groupPermissions = $this->getData('groupPermissions');
|
||||
foreach ($groupPermissions as $key => $value) : ++$c;
|
||||
$url = UriFactory::build('{/prefix}admin/group/settings?{?}&id=' . $value->getId()); ?>
|
||||
<tr data-href="<?= $url; ?>">
|
||||
<td><a href="<?= $url; ?>"><i class="fa fa-times"></i></a>
|
||||
<td><a href="<?= $url; ?>">Group</a>
|
||||
<td><a href="<?= $url; ?>"><?= $value->name; ?></a>
|
||||
<?php endforeach; ?>
|
||||
<?php if ($c === 0) : ?>
|
||||
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="radio" id="c-tab-2" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-2' ? ' checked' : ''; ?>>
|
||||
<div class="tab">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="portlet">
|
||||
<div class="portlet-head"><?= $this->getHtml('Audits', 'Auditor'); ?><i class="fa fa-download floatRight download btn"></i></div>
|
||||
<table class="default fixed">
|
||||
<colgroup>
|
||||
<col style="width: 75px">
|
||||
<col style="width: 150px">
|
||||
<col style="width: 100px">
|
||||
<col>
|
||||
<col>
|
||||
<col style="width: 125px">
|
||||
<col style="width: 75px">
|
||||
<col style="width: 150px">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<td><?= $this->getHtml('ID', '0', '0'); ?>
|
||||
<td><?= $this->getHtml('Module', 'Auditor'); ?>
|
||||
<td><?= $this->getHtml('Type', 'Auditor'); ?>
|
||||
<td><?= $this->getHtml('Trigger', 'Auditor'); ?>
|
||||
<td><?= $this->getHtml('Content', 'Auditor'); ?>
|
||||
<td><?= $this->getHtml('By', 'Auditor'); ?>
|
||||
<td><?= $this->getHtml('Ref', 'Auditor'); ?>
|
||||
<td><?= $this->getHtml('Date', 'Auditor'); ?>
|
||||
<tbody>
|
||||
<?php $count = 0; foreach ($audits as $key => $audit) : ++$count;
|
||||
$url = UriFactory::build('{/prefix}admin/audit/single?{?}&id=' . $audit->getId()); ?>
|
||||
<tr tabindex="0" data-href="<?= $url; ?>">
|
||||
<td><?= $audit->getId(); ?>
|
||||
<td><?= $this->printHtml($audit->getModule()); ?>
|
||||
<td><?= $audit->getType(); ?>
|
||||
<td><?= $this->printHtml($audit->getTrigger()); ?>
|
||||
<td><?= $this->printHtml($audit->getContent()); ?>
|
||||
<td><?= $this->printHtml($audit->createdBy->login); ?>
|
||||
<td><?= $this->printHtml($audit->getRef()); ?>
|
||||
<td><?= $audit->createdAt->format('Y-m-d H:i'); ?>
|
||||
<?php endforeach; ?>
|
||||
<?php if ($count === 0) : ?>
|
||||
<tr><td colspan="8" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
<div class="portlet-foot">
|
||||
<a tabindex="0" class="button" href="<?= UriFactory::build($previous); ?>"><?= $this->getHtml('Previous', '0', '0'); ?></a>
|
||||
<a tabindex="0" class="button" href="<?= UriFactory::build($next); ?>"><?= $this->getHtml('Next', '0', '0'); ?></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -47,6 +47,9 @@ class ApiControllerTest extends \PHPUnit\Framework\TestCase
|
|||
*/
|
||||
protected ModuleAbstract $module;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() : void
|
||||
{
|
||||
$this->app = new class() extends ApplicationAbstract
|
||||
|
|
|
|||
|
|
@ -26,6 +26,9 @@ class ModuleTest extends \PHPUnit\Framework\TestCase
|
|||
{
|
||||
protected Module $module;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() : void
|
||||
{
|
||||
$this->module = new Module();
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user