diff --git a/Admin/Activate.php b/Admin/Activate.php new file mode 100644 index 0000000..b95ebbf --- /dev/null +++ b/Admin/Activate.php @@ -0,0 +1,44 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Support\Admin; + + +use phpOMS\DataStorage\Database\DatabasePool; +use phpOMS\Module\ActivateAbstract; +use phpOMS\Module\InfoManager; + +/** + * Navigation class. + * + * @category Modules + * @package Modules\Admin + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Activate extends ActivateAbstract +{ + + /** + * {@inheritdoc} + */ + public static function activate(DatabasePool $dbPool, InfoManager $info) + { + parent::activate($dbPool, $info); + } +} diff --git a/Admin/Deactivate.php b/Admin/Deactivate.php new file mode 100644 index 0000000..bd57aef --- /dev/null +++ b/Admin/Deactivate.php @@ -0,0 +1,44 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Support\Admin; + + +use phpOMS\DataStorage\Database\DatabasePool; +use phpOMS\Module\DeactivateAbstract; +use phpOMS\Module\InfoManager; + +/** + * Navigation class. + * + * @category Modules + * @package Modules\Admin + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Deactivate extends DeactivateAbstract +{ + + /** + * {@inheritdoc} + */ + public static function deactivate(DatabasePool $dbPool, InfoManager $info) + { + parent::deactivate($dbPool, $info); + } +} diff --git a/Admin/Install/Navigation.install.json b/Admin/Install/Navigation.install.json new file mode 100644 index 0000000..38081a2 --- /dev/null +++ b/Admin/Install/Navigation.install.json @@ -0,0 +1,114 @@ +[ + { + "id": 1002901001, + "pid": "754a08ddf8bcb1cf22f310f09206dd783d42f7dd", + "type": 2, + "subtype": 0, + "name": "Support", + "uri": null, + "target": "self", + "icon": "fa fa-question-circle", + "order": 80, + "from": "Support", + "permission": null, + "parent": 1000201001, + "children": [ + { + "id": 1002901101, + "pid": "754a08ddf8bcb1cf22f310f09206dd783d42f7dd", + "type": 2, + "subtype": 1, + "name": "Ticket", + "uri": "/{/lang}/backend/support/list?{?}", + "target": "self", + "icon": null, + "order": 1, + "from": "Support", + "permission": null, + "parent": 1002901001, + "children": [ + { + "id": 1002903101, + "pid": "165b4fe348524450aa8471c275ea8f685856e196", + "type": 3, + "subtype": 1, + "name": "List", + "uri": "/{/lang}/backend/support/list?{?}", + "target": "self", + "icon": null, + "order": 1, + "from": "Support", + "permission": null, + "parent": 1002901101, + "children": [ + ] + }, + { + "id": 1002903201, + "pid": "165b4fe348524450aa8471c275ea8f685856e196", + "type": 3, + "subtype": 1, + "name": "Create", + "uri": "/{/lang}/backend/support/create?{?}", + "target": "self", + "icon": null, + "order": 5, + "from": "Support", + "permission": null, + "parent": 1002901101, + "children": [ + ] + } + ] + }, + { + "id": 1002901201, + "pid": "754a08ddf8bcb1cf22f310f09206dd783d42f7dd", + "type": 2, + "subtype": 1, + "name": "Settings", + "uri": "/{/lang}/backend/support/settings/dashboard?{?}", + "target": "self", + "icon": null, + "order": 5, + "from": "Support", + "permission": null, + "parent": 1002901001, + "children": [ + ] + }, + { + "id": 1002901301, + "pid": "754a08ddf8bcb1cf22f310f09206dd783d42f7dd", + "type": 2, + "subtype": 1, + "name": "Analysis", + "uri": "/{/lang}/backend/support/analysis/dashboard?{?}", + "target": "self", + "icon": null, + "order": 10, + "from": "Support", + "permission": null, + "parent": 1002901001, + "children": [ + ] + } + ] + }, + { + "id": 1002902001, + "pid": "754a08ddf8bcb1cf22f310f09206dd783d42f7dd", + "type": 2, + "subtype": 1, + "name": "Support", + "uri": "/{/lang}/backend/private/support/dashboard?{?}", + "target": "self", + "icon": null, + "order": 5, + "from": "Support", + "permission": null, + "parent": 1003401001, + "children": [ + ] + } +] diff --git a/Admin/Install/Navigation.php b/Admin/Install/Navigation.php new file mode 100644 index 0000000..327f8e3 --- /dev/null +++ b/Admin/Install/Navigation.php @@ -0,0 +1,40 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Support\Admin\Install; +use phpOMS\DataStorage\Database\DatabasePool; + +/** + * Navigation class. + * + * @category Modules + * @package Modules\Admin + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Navigation +{ + public static function install(string $path, DatabasePool $dbPool) + { + $navData = json_decode(file_get_contents(__DIR__ . '/Navigation.install.json'), true); + + $class = '\\Modules\\Navigation\\Admin\\Installer'; + /** @var $class \Modules\Navigation\Admin\Installer */ + $class::installExternal($dbPool, $navData); + } +} diff --git a/Admin/Installer.php b/Admin/Installer.php new file mode 100644 index 0000000..5a68bb6 --- /dev/null +++ b/Admin/Installer.php @@ -0,0 +1,50 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Support\Admin; + +use phpOMS\DataStorage\Database\DatabaseType; +use phpOMS\DataStorage\Database\DatabasePool; +use phpOMS\Module\InfoManager; +use phpOMS\Module\InstallerAbstract; + +/** + * Support install class. + * + * @category Modules + * @package Modules\Support + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Installer extends InstallerAbstract +{ + + /** + * {@inheritdoc} + */ + public static function install(string $path, DatabasePool $dbPool, InfoManager $info) + { + parent::install($path, $dbPool, $info); + + switch ($dbPool->get('core')->getType()) { + case DatabaseType::MYSQL: + + break; + } + } +} diff --git a/Admin/Routes/Web/Backend.php b/Admin/Routes/Web/Backend.php new file mode 100644 index 0000000..ec75998 --- /dev/null +++ b/Admin/Routes/Web/Backend.php @@ -0,0 +1,42 @@ + [ + [ + 'dest' => '\Modules\Support\Controller:viewSupportList', + 'verb' => RouteVerb::GET, + ], + ], + '^.*/backend/support/single.*$' => [ + [ + 'dest' => '\Modules\Support\Controller:viewSupportTicket', + 'verb' => RouteVerb::GET, + ], + ], + '^.*/backend/support/create.*$' => [ + [ + 'dest' => '\Modules\Support\Controller:viewSupportCreate', + 'verb' => RouteVerb::GET, + ], + ], + '^.*/backend/support/analysis.*$' => [ + [ + 'dest' => '\Modules\Support\Controller:viewSupportAnalysis', + 'verb' => RouteVerb::GET, + ], + ], + '^.*/backend/support/settings.*$' => [ + [ + 'dest' => '\Modules\Support\Controller:viewSupportSettings', + 'verb' => RouteVerb::GET, + ], + ], + '^.*/backend/private/support/dashboard.*$' => [ + [ + 'dest' => '\Modules\Support\Controller:viewPrivateSupportDashboard', + 'verb' => RouteVerb::GET, + ], + ], +]; diff --git a/Admin/Routes/console.php b/Admin/Routes/console.php new file mode 100644 index 0000000..1ecbfac --- /dev/null +++ b/Admin/Routes/console.php @@ -0,0 +1,3 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Support\Admin; + + +use phpOMS\DataStorage\Database\DatabasePool; +use phpOMS\Module\UninstallAbstract; + +/** + * Navigation class. + * + * @category Modules + * @package Modules\Admin + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Uninstall extends UninstallAbstract +{ + + /** + * {@inheritdoc} + */ + public static function uninstall(DatabasePool $dbPool, InfoManager $info) + { + parent::uninstall($dbPool, $info); + } +} diff --git a/Admin/Update.php b/Admin/Update.php new file mode 100644 index 0000000..803a239 --- /dev/null +++ b/Admin/Update.php @@ -0,0 +1,46 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Support\Admin; + + +use phpOMS\DataStorage\Database\DatabasePool; +use phpOMS\Module\UpdateAbstract; +use phpOMS\System\File\Directory; + +/** + * Navigation class. + * + * @category Modules + * @package Modules\Admin + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Update extends UpdateAbstract +{ + + /** + * {@inheritdoc} + */ + public static function update(DatabasePool $dbPool, array $info) + { + Directory::deletePath(__DIR__ . '/Update'); + mkdir('Update'); + parent::update($dbPool, $info); + } +} diff --git a/Controller.php b/Controller.php new file mode 100644 index 0000000..0bbdea4 --- /dev/null +++ b/Controller.php @@ -0,0 +1,174 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Support; + +use phpOMS\Message\RequestAbstract; +use phpOMS\Message\ResponseAbstract; +use phpOMS\Module\ModuleAbstract; +use phpOMS\Module\WebInterface; +use phpOMS\Views\View; + +/** + * Support controller class. + * + * @category Modules + * @package Modules\Support + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Controller extends ModuleAbstract implements WebInterface +{ + + /** + * Module path. + * + * @var string + * @since 1.0.0 + */ + /* public */ const MODULE_PATH = __DIR__; + + /** + * Module version. + * + * @var string + * @since 1.0.0 + */ + /* public */ const MODULE_VERSION = '1.0.0'; + + /** + * Module name. + * + * @var string + * @since 1.0.0 + */ + /* public */ const MODULE_NAME = 'Support'; + + /** + * Providing. + * + * @var string + * @since 1.0.0 + */ + protected static $providing = []; + + /** + * Dependencies. + * + * @var string + * @since 1.0.0 + */ + protected static $dependencies = [ + ]; + + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return \Serializable + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function viewSupportList(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/Support/Theme/Backend/support-list'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1002901101, $request, $response)); + + return $view; + } + + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return \Serializable + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function viewSupportCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/Support/Theme/Backend/ticket-create'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1002901101, $request, $response)); + + return $view; + } + + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return \Serializable + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function viewSupportAnalysis(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/Support/Theme/Backend/support-analysis'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1002901101, $request, $response)); + + return $view; + } + + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return \Serializable + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function viewSupportSettings(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/Support/Theme/Backend/support-settings'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1002901101, $request, $response)); + + return $view; + } + + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return \Serializable + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function viewPrivateSupportDashboard(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/Support/Theme/Backend/user-support-dashboard'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1002901101, $request, $response)); + + return $view; + } + +} diff --git a/Models/Issue.php b/Models/Issue.php new file mode 100644 index 0000000..2961ad5 --- /dev/null +++ b/Models/Issue.php @@ -0,0 +1,164 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Support; + +use phpOMS\Pattern\Multition; + +/** + * Issue class. + * + * @category Support + * @package Framework + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Issue implements Multition +{ + + /** + * Name. + * + * @var string + * @since 1.0.0 + */ + private $name = ''; + + /** + * Description. + * + * @var string + * @since 1.0.0 + */ + private $description = ''; + + /** + * Created. + * + * @var \DateTime + * @since 1.0.0 + */ + private $created = null; + + /** + * Creator. + * + * @var int + * @since 1.0.0 + */ + private $creator = null; + + private static $instances = []; + + public function __construct($id) + { + } + + public function getInstance($id) + { + if (!isset(self::$instances[$id])) { + self::$instances[$id] = new self($id); + } + + return self::$instances[$id]; + } + + /** + * {@inheritdoc} + */ + public function init($id) + { + } + + /** + * {@inheritdoc} + */ + public function __clone() + { + } + + public function getId() + { + return $this->id; + } + + public function getName() + { + return $this->name; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getCreated() + { + return $this->created; + } + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreator() + { + return $this->creator; + } + + public function setCreator($creator) + { + $this->creator = $creator; + } + + /** + * {@inheritdoc} + */ + public function delete() + { + } + + /** + * {@inheritdoc} + */ + public function create() + { + } + + /** + * {@inheritdoc} + */ + public function update() + { + } + + /** + * {@inheritdoc} + */ + public function serialize() + { + } + + /** + * {@inheritdoc} + */ + public function unserialize($data) + { + } +} diff --git a/Models/Message.php b/Models/Message.php new file mode 100644 index 0000000..212d39b --- /dev/null +++ b/Models/Message.php @@ -0,0 +1,178 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Support; + +use phpOMS\Pattern\Multition; + +/** + * Issue class. + * + * @category Support + * @package Framework + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Message implements Multition +{ + + /** + * Name. + * + * @var string + * @since 1.0.0 + */ + private $name = ''; + + /** + * Description. + * + * @var string + * @since 1.0.0 + */ + private $description = ''; + + /** + * Created. + * + * @var \Datetime + * @since 1.0.0 + */ + private $created = null; + + /** + * Creator. + * + * @var int + * @since 1.0.0 + */ + private $creator = null; + + private static $instances = []; + + public function __construct($id) + { + } + + public function getInstance($id) + { + if (!isset(self::$instances[$id])) { + self::$instances[$id] = new self($id); + } + + return self::$instances[$id]; + } + + public function getId() + { + return $this->id; + } + + public function getName() + { + return $this->name; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getCreated() + { + return $this->created; + } + + public function setCreated($created) + { + $this->created = $created; + } + + public function getCreator() + { + return $this->creator; + } + + public function setCreator($creator) + { + $this->creator = $creator; + } + + /** + * {@inheritdoc} + */ + public function delete() + { + } + + /** + * {@inheritdoc} + */ + public function create() + { + } + + /** + * {@inheritdoc} + */ + public function update() + { + } + + /** + * {@inheritdoc} + */ + public function serialize() + { + } + + /** + * {@inheritdoc} + */ + public function unserialize($data) + { + } + + /** + * Init object by ID. + * + * This usually happens from DB or cache + * + * @param int $id Object ID + * + * @return void + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function init($id) + { + // TODO: Implement init() method. + } + + /** + * Overwriting clone in order to maintain singleton pattern. + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function __clone() + { + // TODO: Implement __clone() method. + } +} diff --git a/Models/SupportStatus.php b/Models/SupportStatus.php new file mode 100644 index 0000000..32d99b0 --- /dev/null +++ b/Models/SupportStatus.php @@ -0,0 +1,46 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Support; + +use phpOMS\Datatypes\Enum; + +/** + * Support status enum. + * + * @category Support + * @package Framework + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +abstract class SupportStatus extends Enum +{ + /* public */ const OPEN = 0; + + /* public */ const REVIEW = 1; + + /* public */ const LIVE = 2; + + /* public */ const HOLD = 3; + + /* public */ const UNSOLVABLE = 4; + + /* public */ const SOLVED = 5; + + /* public */ const CLOSED = 6; +} diff --git a/Models/Ticket.php b/Models/Ticket.php new file mode 100644 index 0000000..55adf22 --- /dev/null +++ b/Models/Ticket.php @@ -0,0 +1,58 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Support; + +use Modules\Tasks\Models\Task; + +/** + * Issue class. + * + * @category Support + * @package Framework + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Ticket extends Task +{ + + private $id = 0; + private $task = 0; + + /** + * Assigned group. + * + * @var int + * @since 1.0.0 + */ + private $group = 0; + + /** + * Assigned person. + * + * @var int + * @since 1.0.0 + */ + private $person = 0; + + public function __construct() + { + parent::__construct(); + } + +} diff --git a/Models/TicketMapper.php b/Models/TicketMapper.php new file mode 100644 index 0000000..45f60b6 --- /dev/null +++ b/Models/TicketMapper.php @@ -0,0 +1,138 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Tasks\Models; + +use phpOMS\DataStorage\Database\DataMapperAbstract; +use phpOMS\DataStorage\Database\Query\Builder; +use phpOMS\DataStorage\Database\Query\Column; +use phpOMS\DataStorage\Database\RelationType; + +/** + * Mapper class. + * + * @category Tasks + * @package Modules + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class TicketMapper extends DataMapperAbstract +{ + + /** + * Columns. + * + * @var array + * @since 1.0.0 + */ + protected static $columns = [ + 'ticket_id' => ['name' => 'ticket_id', 'type' => 'int', 'internal' => 'id'], + 'ticket_task' => ['name' => 'ticket_task', 'type' => 'int', 'internal' => 'task'], + ]; + + /** + * Has one relation. + * + * @var array + * @since 1.0.0 + */ + protected static $isExtending = [ + 'task' => [ + 'mapper' => \Modules\Tasks\Models\TaskMapper::class, + 'src' => 'ticket_task', + ], + ]; + + /** + * Primary table. + * + * @var string + * @since 1.0.0 + */ + protected static $table = 'ticket'; + + /** + * Primary field name. + * + * @var string + * @since 1.0.0 + */ + protected static $primaryField = 'ticket_id'; + + /** + * Create object. + * + * @param mixed $obj Object + * @param int $relations Behavior for relations creation + * + * @return mixed + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public static function create($obj, int $relations = RelationType::ALL) + { + try { + $objId = parent::create($obj, $relations); + $query = new Builder(self::$db); + + $query->prefix(self::$db->getPrefix()) + ->insert( + 'account_permission_account', + 'account_permission_from', + 'account_permission_for', + 'account_permission_id1', + 'account_permission_id2', + 'account_permission_r', + 'account_permission_w', + 'account_permission_m', + 'account_permission_d', + 'account_permission_p' + ) + ->into('account_permission') + ->values($obj->getCreatedBy(), 'task', 'task', 1, $objId, 1, 1, 1, 1, 1); + + self::$db->con->prepare($query->toSql())->execute(); + } catch (\Exception $e) { + var_dump($e->getMessage()); + + return false; + } + + return $objId; + } + + /** + * Find. + * + * @param array $columns Columns to select + * + * @return Builder + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public static function find(...$columns) : Builder + { + return parent::find(...$columns)->from('account_permission') + ->where('account_permission.account_permission_for', '=', 'task') + ->where('account_permission.account_permission_id1', '=', 1) + ->where('task.task_id', '=', new Column('account_permission.account_permission_id2')) + ->where('account_permission.account_permission_r', '=', 1); + } +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..1a26fee --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# Support # diff --git a/Theme/Backend/Lang/Navigation.en.lang.php b/Theme/Backend/Lang/Navigation.en.lang.php new file mode 100644 index 0000000..a6deca5 --- /dev/null +++ b/Theme/Backend/Lang/Navigation.en.lang.php @@ -0,0 +1,19 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +return ['Navigation' => [ + 'Support' => 'Support', + 'Ticket' => 'Ticket', +]]; diff --git a/Theme/Backend/Lang/en.lang.php b/Theme/Backend/Lang/en.lang.php new file mode 100644 index 0000000..357e16e --- /dev/null +++ b/Theme/Backend/Lang/en.lang.php @@ -0,0 +1,60 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +return ['Support' => [ + 'Account' => 'Account', + 'All' => 'All', + 'AverageProcessTime' => 'Avg. Process Time', + 'AverageAmount' => 'Average Amount', + 'Created' => 'Created', + 'Creator' => 'Creator', + 'Day' => 'Day', + 'Department' => 'Department', + 'Description' => 'Description', + 'Due' => 'Due', + 'Files' => 'Files', + 'Forwarded' => 'Forwarded', + 'From' => 'From', + 'Group' => 'Group', + 'Interval' => 'Interval', + 'InTime' => 'In Time', + 'Message' => 'Message', + 'Media' => 'Media', + 'Month' => 'Month', + 'Name' => 'Name', + 'New' => 'New', + 'Open' => 'Open', + 'Person' => 'Person', + 'Priority' => 'Priority', + 'Received' => 'Received', + 'Receiver' => 'Receiver', + 'Redirected' => 'Redirected', + 'Responsible' => 'Responsible', + 'Select' => 'Select', + 'Settings' => 'Settings', + 'Size' => 'Size', + 'Statistics' => 'Statistics', + 'Status' => 'Status', + 'Support' => 'Support', + 'Ticket' => 'Ticket', + 'Tickets' => 'Tickets', + 'Title' => 'Title', + 'To' => 'To', + 'Today' => 'Today', + 'Topic' => 'Topic', + 'Type' => 'Type', + 'Week' => 'Week', + 'Year' => 'Year', +]]; diff --git a/Theme/Backend/support-list.tpl.php b/Theme/Backend/support-list.tpl.php new file mode 100644 index 0000000..2453cfc --- /dev/null +++ b/Theme/Backend/support-list.tpl.php @@ -0,0 +1,34 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +/** + * @var \phpOMS\Views\View $this + */ +echo $this->getData('nav')->render(); ?> + +
+ + + + + +
getText('Tickets'); ?>
getText('ID', 0, 0); ?> + getText('Status'); ?> + getText('Priority'); ?> + getText('Title'); ?> + getText('Responsible'); ?> +
getText('Empty', 0, 0); ?> +
+
diff --git a/Theme/Backend/support-settings.tpl.php b/Theme/Backend/support-settings.tpl.php new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Theme/Backend/support-settings.tpl.php @@ -0,0 +1 @@ + diff --git a/Theme/Backend/ticket-create.tpl.php b/Theme/Backend/ticket-create.tpl.php new file mode 100644 index 0000000..8dce721 --- /dev/null +++ b/Theme/Backend/ticket-create.tpl.php @@ -0,0 +1,41 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +/** + * @var \phpOMS\Views\View $this + */ +echo $this->getData('nav')->render(); ?> + +
+

getText('Ticket') ?>

+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Theme/Backend/user-support-dashboard.tpl.php b/Theme/Backend/user-support-dashboard.tpl.php new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Theme/Backend/user-support-dashboard.tpl.php @@ -0,0 +1 @@ + diff --git a/img/module_teaser_small.png b/img/module_teaser_small.png new file mode 100644 index 0000000..f56e6ff Binary files /dev/null and b/img/module_teaser_small.png differ diff --git a/info.json b/info.json new file mode 100644 index 0000000..459cf6c --- /dev/null +++ b/info.json @@ -0,0 +1,45 @@ +{ + "name": { + "id": 1002900000, + "internal": "Support", + "external": "OMS Support" + }, + "version": "1.0.0", + "requirements": { + "phpOMS": "1.0.0", + "phpOMS-db": "1.0.0" + }, + "creator": { + "name": "Orange Management", + "website": "www.spl1nes.com" + }, + "description": "Support module.", + "directory": "Support", + "dependencies": { + "Admin" : "1.0.0" + }, + "providing": { + "Navigation": "*" + }, + "load": [ + { + "pid": [ + "165b4fe348524450aa8471c275ea8f685856e196", + "90604e24f45665d3036937960efcc695dfd6e149" + ], + "type": 4, + "for": 0, + "from": "Support", + "file": "Support" + }, + { + "pid": [ + "754a08ddf8bcb1cf22f310f09206dd783d42f7dd" + ], + "type": 5, + "from": "Support", + "for": "Navigation", + "file": "Navigation" + } + ] +}