mirror of
https://github.com/Karaka-Management/oms-Support.git
synced 2026-01-11 09:08:40 +00:00
draft support templates
This commit is contained in:
parent
ec9b55229b
commit
d568109a05
|
|
@ -53,7 +53,7 @@ class Installer extends InstallerAbstract
|
|||
|
||||
$dbPool->get('core')->con->prepare(
|
||||
'ALTER TABLE `' . $dbPool->get('core')->prefix . 'support_ticket`
|
||||
ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'task_ibfk_1` FOREIGN KEY (`support_ticket`) REFERENCES `' . $dbPool->get('core')->prefix . 'task` (`task_id`);'
|
||||
ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'support_ticket_ibfk_1` FOREIGN KEY (`support_ticket_task`) REFERENCES `' . $dbPool->get('core')->prefix . 'task` (`task_id`);'
|
||||
)->execute();
|
||||
|
||||
$dbPool->get('core')->con->commit();
|
||||
|
|
|
|||
|
|
@ -65,7 +65,9 @@ class Controller extends ModuleAbstract implements WebInterface
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static $providing = [];
|
||||
protected static $providing = [
|
||||
'Navigation'
|
||||
];
|
||||
|
||||
/**
|
||||
* Dependencies.
|
||||
|
|
@ -91,12 +93,33 @@ class Controller extends ModuleAbstract implements WebInterface
|
|||
$view->setTemplate('/Modules/Support/Theme/Backend/support-list');
|
||||
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1002901101, $request, $response));
|
||||
|
||||
$ticktes = TicketMapper::getNewest(50);
|
||||
$tickets = TicketMapper::getAll();
|
||||
$view->setData('tickets', $tickets);
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return \Serializable
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function viewSupportTicket(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable
|
||||
{
|
||||
$view = new View($this->app, $request, $response);
|
||||
$view->setTemplate('/Modules/Support/Theme/Backend/ticket-single');
|
||||
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1002901101, $request, $response));
|
||||
|
||||
$ticket = TicketMapper::get((int) $request->getData('id'));
|
||||
$view->addData('ticket', $ticket);
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
* @link http://orange-management.com
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
namespace Modules\Support;
|
||||
namespace Modules\Support\Models;
|
||||
|
||||
use Modules\Tasks\Models\Task;
|
||||
use Modules\Tasks\Models\TaskType;
|
||||
|
|
@ -39,6 +39,11 @@ class Ticket
|
|||
$this->task->setType(TaskType::HIDDEN);
|
||||
}
|
||||
|
||||
public function getId() : int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function getTask() : Task
|
||||
{
|
||||
return $this->task;
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ use phpOMS\DataStorage\Database\Query\Builder;
|
|||
use phpOMS\DataStorage\Database\Query\Column;
|
||||
use phpOMS\DataStorage\Database\RelationType;
|
||||
|
||||
use Modules\Tasks\Models\Task;
|
||||
use Modules\Tasks\Models\TaskMapper;
|
||||
|
||||
/**
|
||||
* Mapper class.
|
||||
|
|
@ -52,7 +52,7 @@ class TicketMapper extends DataMapperAbstract
|
|||
*/
|
||||
protected static $ownsOne = [
|
||||
'task' => [
|
||||
'mapper' => Task::class,
|
||||
'mapper' => TaskMapper::class,
|
||||
'src' => 'support_ticket_task',
|
||||
],
|
||||
];
|
||||
|
|
@ -71,7 +71,7 @@ class TicketMapper extends DataMapperAbstract
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static $primaryField = 'ticket_id';
|
||||
protected static $primaryField = 'support_ticket_id';
|
||||
|
||||
/**
|
||||
* Create object.
|
||||
|
|
@ -108,7 +108,7 @@ class TicketMapper extends DataMapperAbstract
|
|||
'account_permission_p'
|
||||
)
|
||||
->into('account_permission')
|
||||
->values($obj->getCreatedBy(), 'task', 'task', 1, $objId, 1, 1, 1, 1, 1);
|
||||
->values($obj->getTask()->getCreatedBy(), 'ticket', 'ticket', 1, $objId, 1, 1, 1, 1, 1);
|
||||
|
||||
self::$db->con->prepare($query->toSql())->execute();
|
||||
} catch (\Exception $e) {
|
||||
|
|
|
|||
|
|
@ -15,14 +15,14 @@
|
|||
* @var \phpOMS\Views\View $this
|
||||
* @var \Modules\Tasks\Models\Task[] $tickets
|
||||
*/
|
||||
$tickets = $this->getData('tasks');
|
||||
$tickets = $this->getData('tickets');
|
||||
echo $this->getData('nav')->render(); ?>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-9">
|
||||
<div class="box wf-100">
|
||||
<table class="table red">
|
||||
<caption><?= $this->getHtml('Tasks') ?></caption>
|
||||
<caption><?= $this->getHtml('Tickets') ?></caption>
|
||||
<thead>
|
||||
<td><?= $this->getHtml('Status') ?>
|
||||
<td><?= $this->getHtml('Due') ?>
|
||||
|
|
|
|||
112
Theme/Backend/ticket-single.tpl.php
Normal file
112
Theme/Backend/ticket-single.tpl.php
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.1
|
||||
*
|
||||
* @category TBD
|
||||
* @package TBD
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link http://orange-management.com
|
||||
*/
|
||||
/**
|
||||
* @var \phpOMS\Views\View $this
|
||||
* @var \Modules\Support\Models\Ticket $ticket
|
||||
*/
|
||||
$ticket = $this->getData('ticket');
|
||||
$elements = $ticket->getTask()->getTaskElements();
|
||||
$cElements = count($elements);
|
||||
|
||||
if($ticket->getTask()->getStatus() === \Modules\Tasks\Models\TaskStatus::OPEN) { $color = 'darkblue'; }
|
||||
elseif($ticket->getTask()->getStatus() === \Modules\Tasks\Models\TaskStatus::WORKING) { $color = 'purple'; }
|
||||
elseif($ticket->getTask()->getStatus() === \Modules\Tasks\Models\TaskStatus::CANCELED) { $color = 'red'; }
|
||||
elseif($ticket->getTask()->getStatus() === \Modules\Tasks\Models\TaskStatus::SUSPENDED) { $color = 'yellow'; }
|
||||
|
||||
echo $this->getData('nav')->render(); ?>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<section class="box wf-100">
|
||||
<header><h1><?= htmlspecialchars($ticket->getTask()->getTitle(), ENT_COMPAT, 'utf-8'); ?></h1></header>
|
||||
<div class="inner">
|
||||
<div class="floatRight">Due <?= htmlspecialchars($ticket->getTask()->getDue()->format('Y-m-d H:i'), ENT_COMPAT, 'utf-8'); ?></div>
|
||||
<div>Created <?= htmlspecialchars($ticket->getTask()->getCreatedAt()->format('Y-m-d H:i'), ENT_COMPAT, 'utf-8'); ?></div>
|
||||
</div>
|
||||
<div class="inner">
|
||||
<blockquote>
|
||||
<?= htmlspecialchars($ticket->getTask()->getDescription(), ENT_COMPAT, 'utf-8'); ?>
|
||||
</blockquote>
|
||||
</div>
|
||||
<div class="inner">
|
||||
<div class="pAlignTable">
|
||||
<div class="vCenterTable wf-100">Created <?= htmlspecialchars($ticket->getTask()->getCreatedBy()->getName1(), ENT_COMPAT, 'utf-8'); ?></div>
|
||||
<span class="vCenterTable nobreak tag"><?= $this->getHtml('S' . $ticket->getTask()->getStatus()) ?></span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<?php $c = 0;
|
||||
foreach ($elements as $key => $element) : $c++;
|
||||
if($element->getStatus() === \Modules\Tasks\Models\TaskStatus::DONE) { $color = 'green'; }
|
||||
elseif($element->getStatus() === \Modules\Tasks\Models\TaskStatus::OPEN) { $color = 'darkblue'; }
|
||||
elseif($element->getStatus() === \Modules\Tasks\Models\TaskStatus::WORKING) { $color = 'purple'; }
|
||||
elseif($element->getStatus() === \Modules\Tasks\Models\TaskStatus::CANCELED) { $color = 'red'; }
|
||||
elseif($element->getStatus() === \Modules\Tasks\Models\TaskStatus::SUSPENDED) { $color = 'yellow'; } ?>
|
||||
<section class="box wf-100">
|
||||
<div class="inner pAlignTable">
|
||||
<div class="vCenterTable wf-100"><?= htmlspecialchars($element->getCreatedBy()->getName1(), ENT_COMPAT, 'utf-8'); ?> - <?= htmlspecialchars($element->getCreatedAt()->format('Y-m-d H:i'), ENT_COMPAT, 'utf-8'); ?></div>
|
||||
<span class="vCenterTable tag <?= htmlspecialchars($color, ENT_COMPAT, 'utf-8'); ?>"><?= $this->getHtml('S' . $element->getStatus()) ?></span>
|
||||
</div>
|
||||
|
||||
<?php if ($element->getDescription() !== '') : ?>
|
||||
<div class="inner">
|
||||
<blockquote>
|
||||
<?= htmlspecialchars($element->getDescription(), ENT_COMPAT, 'utf-8'); ?>
|
||||
</blockquote>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="inner pAlignTable">
|
||||
<?php if ($element->getForwarded() !== 0) : ?>
|
||||
<div class="vCenterTable wf-100">Forwarded <?= htmlspecialchars($element->getForwarded()->getName1(), ENT_COMPAT, 'utf-8'); ?></div>
|
||||
<?php endif; ?>
|
||||
<?php if ($element->getStatus() !== \Modules\Tasks\Models\TaskStatus::CANCELED ||
|
||||
$element->getStatus() !== \Modules\Tasks\Models\TaskStatus::DONE ||
|
||||
$element->getStatus() !== \Modules\Tasks\Models\TaskStatus::SUSPENDED || $c != $cElements
|
||||
) : ?>
|
||||
<div class="vCenterTable nobreak">Due <?= htmlspecialchars($element->getDue()->format('Y-m-d H:i'), ENT_COMPAT, 'utf-8'); ?></div>
|
||||
<?php endif; ?>
|
||||
</section>
|
||||
<?php endforeach; ?>
|
||||
|
||||
<section class="box wf-100">
|
||||
<div class="inner">
|
||||
<form id="taskElementCreate" method="POST" action="<?= \phpOMS\Uri\UriFactory::build('{/base}/{/lang}/api/task/element?{?}&csrf={$CSRF}'); ?>">
|
||||
<table class="layout wf-100">
|
||||
<tr><td><label for="iMessage"><?= $this->getHtml('Message') ?></label>
|
||||
<tr><td><textarea id="iMessage" name="description"></textarea>
|
||||
<tr><td><label for="iDue"><?= $this->getHtml('Due') ?></label>
|
||||
<tr><td><input type="datetime-local" id="iDue" name="due" value="<?= htmlspecialchars(!empty($elements) ? end($elements)->getDue()->format('Y-m-d\TH:i:s') : $ticket->getTask()->getDue()->format('Y-m-d\TH:i:s'), ENT_COMPAT, 'utf-8'); ?>">
|
||||
<tr><td><label for="iStatus"><?= $this->getHtml('Status') ?></label>
|
||||
<tr><td><select id="iStatus" name="status">
|
||||
<option value="<?= htmlspecialchars(\Modules\Tasks\Models\TaskStatus::OPEN, ENT_COMPAT, 'utf-8'); ?>" selected>Open
|
||||
<option value="<?= htmlspecialchars(\Modules\Tasks\Models\TaskStatus::WORKING, ENT_COMPAT, 'utf-8'); ?>">Working
|
||||
<option value="<?= htmlspecialchars(\Modules\Tasks\Models\TaskStatus::SUSPENDED, ENT_COMPAT, 'utf-8'); ?>">Suspended
|
||||
<option value="<?= htmlspecialchars(\Modules\Tasks\Models\TaskStatus::CANCELED, ENT_COMPAT, 'utf-8'); ?>">Canceled
|
||||
<option value="<?= htmlspecialchars(\Modules\Tasks\Models\TaskStatus::DONE, ENT_COMPAT, 'utf-8'); ?>">Done
|
||||
</select>
|
||||
<tr><td><label for="iReceiver"><?= $this->getHtml('To') ?></label>
|
||||
<tr><td><input type="text" id="iReceiver" name="forward" value="<?= htmlspecialchars($this->request->getHeader()->getAccount(), ENT_COMPAT, 'utf-8'); ?>" placeholder=" Guest">
|
||||
<tr><td colspan="2"><label for="iMedia"><?= $this->getHtml('Media') ?></label>
|
||||
<tr><td><input type="text" id="iMedia" placeholder=" File"><td><button><?= $this->getHtml('Select') ?></button>
|
||||
<tr><td colspan="2"><label for="iUpload"><?= $this->getHtml('Upload') ?></label>
|
||||
<tr><td><input type="file" id="iUpload" form="fTask"><input form="fTask" type="hidden" name="type"><td>
|
||||
<tr><td><input type="submit" value="<?= $this->getHtml('Create', 0, 0); ?>"><input type="hidden" name="task" value="<?= htmlspecialchars($this->request->getData('id')); ?>"><input type="hidden" name="type" value="1">
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
Loading…
Reference in New Issue
Block a user