- Added new controller system/messages/MessageClient used to read and write messages using a new GUI based on ajax and tabulator

- system/messages/MessageClient currently has only two methods: read and listMessages
- Added new view system/messages/ajaxRead.php used for the GUI to read messages
- Added new parameters to templates/FHC-Header: tabulator and momentjs
- Added new packages to composer: tabulator and momentjs
This commit is contained in:
Paolo
2019-06-19 17:53:51 +02:00
parent b364cfae06
commit 1cb9c28f7d
9 changed files with 114 additions and 24 deletions
@@ -0,0 +1,39 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
class MessageClient extends Auth_Controller
{
public function __construct()
{
parent::__construct(
array(
'read' => array('basis/message:r'),
'listMessages' => array('basis/message:r')
)
);
// Loads model CLMessagesModel which contains the GUI logic
$this->load->model('CL/Messages_model', 'CLMessagesModel');
}
/**
* Starts the GUI used to read all the personal messages
*/
public function read()
{
// Loads the view to read messages
$this->load->view('system/messages/ajaxRead');
}
/**
* Returns JSON that that contains all the received messages by the currently logged user
* This JSON structure is nested data used by tabulator
*/
public function listMessages()
{
$jsonNestedData = $this->CLMessagesModel->prepareAjaxRead();
$this->outputJson($jsonNestedData);
}
}
@@ -30,7 +30,7 @@ class Messages extends Auth_Controller
}
// -----------------------------------------------------------------------------------------------------------------
// Public methods - HTML output
// Methods with HTML output
/**
* Initialize all the parameters used by view system/messages/htmlWriteTemplate
@@ -71,7 +71,7 @@ class Messages extends Auth_Controller
}
// -----------------------------------------------------------------------------------------------------------------
// Public methods - JSON output - called by this controller and FASMessages (view system/messages/htmlWriteTemplate)
// Methods with JSON output called by this controller and FASMessages (view system/messages/htmlWriteTemplate)
/**
* Returns an object that represent a template store in database
@@ -98,7 +98,7 @@ class Messages extends Auth_Controller
}
// -----------------------------------------------------------------------------------------------------------------
// Public methods - JSON output - called by infocenter
// Methods with JSON output called by infocenter
/**
* Outputs message data for a message (identified my msg id and receiver id) in JSON format
@@ -0,0 +1,20 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'Read personal messages',
'jquery' => true,
'bootstrap' => true,
'momentjs' => true,
'tabulator' => true,
'ajaxlib' => true,
'customJSs' => array('public/js/messaging/messageClient.js')
)
);
?>
<body>
<div id="lstMessagesPanel"></div>
<div id="readMessagePanel"></div>
</body>
<?php $this->load->view("templates/FHC-Footer"); ?>
@@ -2,7 +2,7 @@
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'MessageSent',
'title' => 'Read a message',
'jquery' => true,
'bootstrap' => true,
'fontawesome' => true,
@@ -2,7 +2,7 @@
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'MessageReply',
'title' => 'Reply to a message',
'jquery' => true,
'bootstrap' => true,
'fontawesome' => true,
@@ -2,7 +2,7 @@
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'Write a message',
'title' => 'Write a new message or reply using templates',
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
+19 -11
View File
@@ -25,10 +25,12 @@
$jqueryui = isset($jqueryui) ? $jqueryui : false;
$jquerycheckboxes = isset($jquerycheckboxes) ? $jquerycheckboxes : false;
$jquerytreetable = isset($jquerytreetable) ? $jquerytreetable : false;
$momentjs = isset($momentjs) ? $momentjs : false;
$navigationwidget = isset($navigationwidget) ? $navigationwidget : false;
$pivotui = isset($pivotui) ? $pivotui : false;
$sbadmintemplate = isset($sbadmintemplate) ? $sbadmintemplate : false;
$tablesorter = isset($tablesorter) ? $tablesorter : false;
$tabulator = isset($tabulator) ? $tabulator : false;
$tinymce = isset($tinymce) ? $tinymce : false;
$widgets = isset($widgets) ? $widgets : false;
?>
@@ -61,10 +63,7 @@
if ($fontawesome === true) generateCSSsInclude('vendor/components/font-awesome/css/font-awesome.min.css');
// PivotUI CSS
if ($pivotui === true)
{
generateCSSsInclude('vendor/nicolaskruchten/pivottable/dist/pivot.min.css');
}
if ($pivotui === true) generateCSSsInclude('vendor/nicolaskruchten/pivottable/dist/pivot.min.css');
// SB Admin 2 template CSS
if ($sbadmintemplate === true)
@@ -80,6 +79,9 @@
generateCSSsInclude('vendor/mottie/tablesorter/dist/css/jquery.tablesorter.pager.min.css');
}
// Tabulator CSS
if ($tabulator === true) generateCSSsInclude('vendor/olifolkerd/tabulator/dist/css/bootstrap/tabulator_bootstrap.min.css');
// --------------------------------------------------------------------------------------------------------
// From public folder
@@ -101,6 +103,7 @@
// Eventually required CSS
generateCSSsInclude($customCSSs); // Eventually required CSS
// --------------------------------------------------------------------------------------------------------
// Javascripts
@@ -126,10 +129,7 @@
}
// jQuery checkboxes
if ($jquerycheckboxes === true)
{
generateJSsInclude('vendor/rmariuzzo/jquery-checkboxes/dist/jquery.checkboxes-1.0.7.min.js');
}
if ($jquerycheckboxes === true) generateJSsInclude('vendor/rmariuzzo/jquery-checkboxes/dist/jquery.checkboxes-1.0.7.min.js');
// Bootstrap JS
if ($bootstrap === true) generateJSsInclude('vendor/twbs/bootstrap/dist/js/bootstrap.min.js');
@@ -138,12 +138,17 @@
// NOTE: keep it after jQuery includes
if ($jquerytreetable === true) generateJSsInclude('vendor/ludo/jquery-treetable/jquery.treetable.js');
// PivotUI CSS
if ($pivotui === true)
// MomentJS
if ($momentjs === true)
{
generateJSsInclude('vendor/nicolaskruchten/pivottable/dist/pivot.min.js');
generateJSsInclude('vendor/moment/momentjs/min/moment.min.js');
generateJSsInclude('vendor/moment/momentjs/locale/de-at.js');
generateJSsInclude('vendor/moment/momentjs/locale/en-ie.js');
}
// PivotUI JS
if ($pivotui === true) generateJSsInclude('vendor/nicolaskruchten/pivottable/dist/pivot.min.js');
// Table sorter JS
if ($tablesorter === true)
{
@@ -152,6 +157,9 @@
generateJSsInclude('vendor/mottie/tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js');
}
// Tabulator JS
if ($tabulator === true) generateJSsInclude('vendor/olifolkerd/tabulator/dist/js/tabulator.min.js');
// Tinymce JS
if ($tinymce === true) generateJSsInclude('vendor/tinymce/tinymce/tinymce.min.js');