LoggerPage.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace ThurData\Servers\KerioEmail\App\UI\Admin\LoggerManager\Pages;
  3. use \ThurData\Servers\KerioEmail\Core\Helper;
  4. use \ThurData\Servers\KerioEmail\Core\UI\Interfaces\AdminArea;
  5. use \ThurData\Servers\KerioEmail\Core\UI\Widget\DataTable\DataTable;
  6. use \ThurData\Servers\KerioEmail\Core\UI\Widget\DataTable\Column;
  7. use \ThurData\Servers\KerioEmail\Core\UI\Widget\DataTable\DataProviders\DataProvider;
  8. use \ThurData\Servers\KerioEmail\Core\UI\Widget\DataTable\DataProviders\Providers\ArrayDataProvider;
  9. use \ThurData\Servers\KerioEmail\Core\UI\Widget\Others;
  10. use \ThurData\Servers\KerioEmail\Core\Logger\Entity;
  11. use \ThurData\Servers\KerioEmail\App\UI\Admin\LoggerManager\Buttons\DeleteLoggerModalButton;
  12. use \ThurData\Servers\KerioEmail\App\UI\Admin\LoggerManager\Buttons\MassDeleteLoggerButton;
  13. /**
  14. * Description of Filters
  15. *
  16. * @autor ThurData <info@thurdata.ch>
  17. */
  18. class LoggerPage extends DataTable implements AdminArea
  19. {
  20. protected $id = 'loggercont';
  21. protected $name = 'loggercont';
  22. protected $title = null;
  23. protected $colorArray = [
  24. Entity::TYPE_DEBUG => [
  25. 'color' => '7b007b',
  26. 'backgroundColor' => 'e9ebf0'
  27. ],
  28. Entity::TYPE_ERROR => [
  29. 'color' => 'fcffff',
  30. 'backgroundColor' => 'ed4040'
  31. ],
  32. Entity::TYPE_INFO => [
  33. 'color' => 'e9fff7',
  34. 'backgroundColor' => '737980'
  35. ],
  36. Entity::TYPE_SUCCESS => [
  37. 'color' => 'e5fff4',
  38. 'backgroundColor' => '5bc758'
  39. ],
  40. Entity::TYPE_CRITICAL => [
  41. 'color' => 'fcffff',
  42. 'backgroundColor' => 'ed4040'
  43. ]
  44. ];
  45. protected function loadHtml()
  46. {
  47. $this
  48. ->addColumn((new Column('id'))
  49. ->setOrderable(DataProvider::SORT_DESC)
  50. ->setSearchable(true, Column::TYPE_INT))
  51. ->addColumn((new Column('message'))
  52. ->setOrderable()
  53. ->setSearchable(true))
  54. ->addColumn((new Column('type'))
  55. ->setOrderable()
  56. ->setSearchable(true))
  57. ->addColumn((new Column('date'))
  58. ->setSearchable(true, Column::TYPE_DATE)
  59. ->setOrderable());
  60. }
  61. public function replaceFieldMessage($key, $row)
  62. {
  63. return html_entity_decode($row[$key]);
  64. }
  65. public function replaceFieldType($key, $row)
  66. {
  67. return (new Others\Label())->initIds('label')
  68. ->setMessage($row['typeLabel'])
  69. ->setTitle($row['typeLabel'])
  70. ->setColor($this->colorArray[$row[$key]]['color'])
  71. ->setBackgroundColor($this->colorArray[$row[$key]]['backgroundColor'])
  72. ->getHtml();
  73. }
  74. public function initContent()
  75. {
  76. $this->addActionButton((new DeleteLoggerModalButton()));
  77. $this->addMassActionButton((new MassDeleteLoggerButton()));
  78. }
  79. protected function loadData()
  80. {
  81. $collection = Helper\sl('entityLogger')->all();
  82. $data = [];
  83. foreach ($collection as $model)
  84. {
  85. $data[] = $model->toArray();
  86. }
  87. $dataProv = new ArrayDataProvider();
  88. $dataProv->setDefaultSorting('id', 'desc')->setData($data);
  89. $this->setDataProvider($dataProv);
  90. }
  91. }