').appendTo('.tjdashboard');
jQuery.each (response.data.widget_data, function(index, value)
{
var colorClass = "panel-default";
var icon = "";
+ var filterClass = "";
+ var groupHeadClass = "";
+ var titleLink = "";
if(value.params)
{
try
{
- value.params = JSON.parse(value.params);
-
- if(value.params.color){
- colorClass=value.params.color;
- }
-
- if(value.params.icon){
- icon = value.params.icon;
- }
- }
- catch(e)
- {
- value.params = {};
- }
+ value.params = JSON.parse(value.params);
+
+ if(value.params.color){
+ colorClass=value.params.color;
+ }
+
+ if(value.params.icon){
+ icon = value.params.icon;
+ }
+
+ if(value.params.filter!=undefined && (value.params.filter == true))
+ {
+ filterClass = " filter-widget";
+ }
+
+ if(value.params.grouping!=undefined && (value.params.grouping == true))
+ {
+ groupHeadClass = " dashboard-widget-label";
+ }
+
+ if(value.params.titlelink!=undefined && (value.params.titlelink !== ''))
+ {
+ titleLink = value.params.titlelink;
+ }
+ }
+ catch(e)
+ {
+ value.params = {};
+ }
+ }
+
+ if (parseInt(value.size) === 12 && j > 1)
+ {
+ j++;
+ jQuery('
').appendTo('.tjdashboard');
divSpan = 0;
}
@@ -78,10 +123,10 @@ var TJDashboardUI = {
});
},
- initWidget : function(widgetData){
+ initWidget : function(widgetData, extraParams = null){
/** global: TJDashboardService */
- var promise = TJDashboardService.getWidget(widgetData.dashboard_widget_id);
+ var promise = TJDashboardService.getWidget(widgetData.dashboard_widget_id, extraParams);
promise.done(function(response) {
if(!response.data.dashboard_widget_id)
@@ -114,7 +159,7 @@ var TJDashboardUI = {
var linkArrayCount = 0;
var renderData = JSON.parse(sourceData['data']);
var showLinks ='';
-
+
if (renderData.links)
{
linkArrayCount = renderData.links.length;
@@ -153,7 +198,7 @@ var TJDashboardUI = {
_addJsFiles: function(jsObj,method,sourceData,libraryClassName){
jQuery.each(jsObj,function(index,value){
jQuery.getScript(value, function() {
- window[libraryClassName].renderData(method,sourceData);
+ window[libraryClassName].renderData(method,sourceData);
});
});
},
@@ -190,7 +235,7 @@ var TJDashboardUI = {
});
jQuery('#jform_renderer_plugin').val(defaultValue);
});
-
+
var promiseParams = TJDashboardService.getWidgetParams(selectedDataPlugin);
promiseParams.done(function(response) {
jQuery('#jform_params').val(response.data);
@@ -201,6 +246,27 @@ var TJDashboardUI = {
var defaultValue = jQuery('#jform_size').val();
jQuery('#jform_size').replaceWith('
');
jQuery('#jform_size').val(defaultValue);
- }
+ },
+ widgetListener: function(){
+ var widgetData = {'dashboard_widget_id':0,'params':''};
+ var formData = jQuery(".widget-filters").serialize();
+ var widgetIds = [];
+ var id = '';
+ jQuery(".filter-widget").each(function() {
+ id = jQuery(this).data('dashboard-widget-id');
+ if (jQuery.inArray(id, widgetIds) == -1)
+ {
+ jQuery('#dashboard-widget-'+id).html('
');
+
+ widgetIds.push(id);
+ widgetData.dashboard_widget_id = id;
+ TJDashboardUI.initWidget(widgetData, formData);
+ }
+ });
+ }
}
+
+jQuery(document).on("change", ".widget-filters", function () {
+ TJDashboardUI.widgetListener();
+});
diff --git a/src/components/com_tjdashboard/site/assets/js/tjDashboardUI.min.js b/src/components/com_tjdashboard/site/assets/js/tjDashboardUI.min.js
index ba8822d4..e4b6da56 100644
--- a/src/components/com_tjdashboard/site/assets/js/tjDashboardUI.min.js
+++ b/src/components/com_tjdashboard/site/assets/js/tjDashboardUI.min.js
@@ -1 +1 @@
-var TJDashboardUI={initDashboard:function(a){TJDashboardService.getDashboard(a).done(function(a){if(!a.data.dashboard_id)return!1;if(a.data.widget_data.length<=0)return jQuery('
'+Joomla.JText._("COM_TJDASHBOARD_WIDGETS_NOTSHOW_ERROR_MESSAGE")+"
").appendTo(".tjdashboard"),!1;var e=0,r=0,d=1;return jQuery('
').appendTo(".tjdashboard"),e=0),a.data.widget_data.length===r&&jQuery("
").appendTo(".tjdashboard")}),!0})},initWidget:function(a){TJDashboardService.getWidget(a.dashboard_widget_id).done(function(e){if(!e.data.dashboard_widget_id)return jQuery('
'+Joomla.JText._("COM_TJDASHBOARD_NO_DATA_AVAILABLE_MESSAGE")+"
").appendTo("#dashboard-widget-"+a.dashboard_widget_id),!1;if(!TJDashboardUI._validWidget(e.data.widget_render_data)||0==e.data.widget_render_data.length)return jQuery('
'+Joomla.JText._("COM_TJDASHBOARD_NO_DATA_AVAILABLE_MESSAGE")+"
").appendTo("#dashboard-widget-"+e.data.dashboard_widget_id),!1;jQuery(window).trigger("resize");var r=[];r.element="dashboard-widget-"+e.data.dashboard_widget_id,r.data=e.data.widget_render_data,r.params=a.params;var d=e.data.renderer_plugin.split("."),i=d[0],t=d[1];if(!r&&!e.data.renderer_plugin)return!1;var o=[],n=0,s=JSON.parse(r.data),_="";if(s.links){n=s.links.length,o=s.links;for(var l=0;l
'+o[l].title+" ";jQuery("#view-all-"+e.data.dashboard_widget_id).replaceWith(''+_+"")}var u="TJDashboard"+TJDashboardUI._jsUcFirst(i);return TJDashboardUI._addCssFiles(e.data.widget_css),TJDashboardUI._addJsFiles(e.data.widget_js,t,r,u),!0})},_addCssFiles:function(a){jQuery.each(a,function(a,e){var r=document.createElement("link");r.href=e,r.type="text/css",r.rel="stylesheet",0==jQuery.find("link [href='"+e+"']").length&&jQuery("head").append(r)})},_addJsFiles:function(a,e,r,d){jQuery.each(a,function(a,i){jQuery.getScript(i,function(){window[d].renderData(e,r)})})},_validWidget:function(a){try{JSON.parse(a)}catch(a){return!1}return!0},_jsUcFirst:function(a){return a.charAt(0).toUpperCase()+a.slice(1)},_setRenderers:function(){var a=jQuery("#jform_data_plugin").val(),e=jQuery("#jform_renderer_plugin").val(),r=TJDashboardService.getRenderers(a);jQuery("#jform_renderer_plugin").replaceWith('"),jQuery("#jform_renderer_plugin").find("option").not(":first").remove(),r.done(function(a){var r=jQuery("#jform_renderer_plugin");jQuery.each(a.data,function(a,e){r.append(new Option(e,a))}),jQuery("#jform_renderer_plugin").val(e)}),TJDashboardService.getWidgetParams(a).done(function(a){jQuery("#jform_params").val(a.data)})},_setSize:function(){var a=jQuery("#jform_size").val();jQuery("#jform_size").replaceWith('"),jQuery("#jform_size").val(a)}};
\ No newline at end of file
+var TJDashboardUI={initDashboard:function(a){TJDashboardService.getDashboard(a).done(function(a){if(!a.data.dashboard_id)return!1;if(a.data.widget_data.length<=0)return jQuery(''+Joomla.JText._("COM_TJDASHBOARD_WIDGETS_NOTSHOW_ERROR_MESSAGE")+"
").appendTo(".tjdashboard"),!1;var e=0,r=0,d=1;return jQuery('').appendTo(".tjdashboard"),jQuery.each(a.data.widget_data,function(i,t){var s="panel-default",n="",o="",l="",_="";if(t.params)try{t.params=JSON.parse(t.params),t.params.color&&(s=t.params.color),t.params.icon&&(n=t.params.icon),null!=t.params.filter&&1==t.params.filter&&(o=" filter-widget"),null!=t.params.grouping&&1==t.params.grouping&&(l=" dashboard-widget-label"),null!=t.params.titlelink&&""!==t.params.titlelink&&(_=t.params.titlelink)}catch(a){t.params={}}12===parseInt(t.size)&&d>1&&(d++,jQuery('
').appendTo(".tjdashboard"),e=0),a.data.widget_data.length===r&&jQuery("
").appendTo(".tjdashboard")}),!0})},initWidget:function(a,e=null){TJDashboardService.getWidget(a.dashboard_widget_id,e).done(function(e){if(!e.data.dashboard_widget_id)return jQuery(''+Joomla.JText._("COM_TJDASHBOARD_NO_DATA_AVAILABLE_MESSAGE")+"
").appendTo("#dashboard-widget-"+a.dashboard_widget_id),!1;if(!TJDashboardUI._validWidget(e.data.widget_render_data)||0==e.data.widget_render_data.length)return jQuery(''+Joomla.JText._("COM_TJDASHBOARD_NO_DATA_AVAILABLE_MESSAGE")+"
").appendTo("#dashboard-widget-"+e.data.dashboard_widget_id),!1;jQuery(window).trigger("resize");var r=[];r.element="dashboard-widget-"+e.data.dashboard_widget_id,r.data=e.data.widget_render_data,r.params=a.params;var d=e.data.renderer_plugin.split("."),i=d[0],t=d[1];if(!r&&!e.data.renderer_plugin)return!1;var s=[],n=0,o=JSON.parse(r.data),l="";if(o.links){n=o.links.length,s=o.links;for(var _=0;_'+s[_].title+" ";jQuery("#view-all-"+e.data.dashboard_widget_id).replaceWith(''+l+"")}var u="TJDashboard"+TJDashboardUI._jsUcFirst(i);return TJDashboardUI._addCssFiles(e.data.widget_css),TJDashboardUI._addJsFiles(e.data.widget_js,t,r,u),!0})},_addCssFiles:function(a){jQuery.each(a,function(a,e){var r=document.createElement("link");r.href=e,r.type="text/css",r.rel="stylesheet",0==jQuery.find("link [href='"+e+"']").length&&jQuery("head").append(r)})},_addJsFiles:function(a,e,r,d){jQuery.each(a,function(a,i){jQuery.getScript(i,function(){window[d].renderData(e,r)})})},_validWidget:function(a){try{JSON.parse(a)}catch(a){return!1}return!0},_jsUcFirst:function(a){return a.charAt(0).toUpperCase()+a.slice(1)},_setRenderers:function(){var a=jQuery("#jform_data_plugin").val(),e=jQuery("#jform_renderer_plugin").val(),r=TJDashboardService.getRenderers(a);jQuery("#jform_renderer_plugin").replaceWith('"),jQuery("#jform_renderer_plugin").find("option").not(":first").remove(),r.done(function(a){var r=jQuery("#jform_renderer_plugin");jQuery.each(a.data,function(a,e){r.append(new Option(e,a))}),jQuery("#jform_renderer_plugin").val(e)}),TJDashboardService.getWidgetParams(a).done(function(a){jQuery("#jform_params").val(a.data)})},_setSize:function(){var a=jQuery("#jform_size").val();jQuery("#jform_size").replaceWith('"),jQuery("#jform_size").val(a)},widgetListener:function(){var a={dashboard_widget_id:0,params:""},e=jQuery(".widget-filters").serialize(),r=[],d="";jQuery(".filter-widget").each(function(){d=jQuery(this).data("dashboard-widget-id"),-1==jQuery.inArray(d,r)&&(jQuery("#dashboard-widget-"+d).html(''),r.push(d),a.dashboard_widget_id=d,TJDashboardUI.initWidget(a,e))})}};jQuery(document).on("change",".widget-filters",function(){TJDashboardUI.widgetListener()});
diff --git a/src/components/com_tjdashboard/site/views/dashboard/tmpl/default.php b/src/components/com_tjdashboard/site/views/dashboard/tmpl/default.php
index 79e5de9a..b2f8a481 100644
--- a/src/components/com_tjdashboard/site/views/dashboard/tmpl/default.php
+++ b/src/components/com_tjdashboard/site/views/dashboard/tmpl/default.php
@@ -10,11 +10,12 @@
// No direct access
defined('_JEXEC') or die;
+use Joomla\CMS\Factory;
+use Joomla\CMS\HTML\HTMLHelper;
+HTMLHelper::_('behavior.modal');
+HTMLHelper::_('formbehavior.chosen', 'select');
-JHTML::_('behavior.modal');
-
-
-$document = JFactory::getDocument();
+$document = Factory::getDocument();
$document->addStylesheet('components/com_tjdashboard/assets/css/dashboard.css');
$document->addStylesheet('media/techjoomla_strapper/css/bootstrap.j3.min.css');
@@ -33,9 +34,7 @@
-
-
item->title);?>
-
+
item->title);?>
diff --git a/src/plugins/tjdashboardrenderer/filterbox/assets/js/renderer.js b/src/plugins/tjdashboardrenderer/filterbox/assets/js/renderer.js
new file mode 100644
index 00000000..4f9df7fa
--- /dev/null
+++ b/src/plugins/tjdashboardrenderer/filterbox/assets/js/renderer.js
@@ -0,0 +1,76 @@
+var TJDashboardFilterbox = {
+ renderData: function(method,sourceData)
+ {
+ this[method](sourceData);
+ },
+ tjdashfilter: function(sourceData)
+ {
+ var content = '";
+
+ jQuery("#"+sourceData.element).html(content);
+
+ /* IMP : to add chz-done into selects*/
+ jQuery(".widget-filters").chosen({disable_search_threshold: 8});
+ }
+}
+
+/* Code written for remove empty div */
+jQuery(document).ready(function() {
+ var divRow = 1;
+ jQuery(".widget-boxes").each(function() {
+ if (jQuery('.dashboard-widget-row-'+divRow).html() == '')
+ {
+ jQuery('.dashboard-widget-row-'+divRow).remove();
+ }
+ divRow++;
+ });
+});
diff --git a/src/plugins/tjdashboardrenderer/filterbox/assets/js/renderer.min.js b/src/plugins/tjdashboardrenderer/filterbox/assets/js/renderer.min.js
new file mode 100644
index 00000000..a941a7e7
--- /dev/null
+++ b/src/plugins/tjdashboardrenderer/filterbox/assets/js/renderer.min.js
@@ -0,0 +1 @@
+var TJDashboardFilterbox={renderData:function(e,t){this[e](t)},tjdashfilter:function(e){var t='",jQuery("#"+e.element).html(t),jQuery(".widget-filters").chosen({disable_search_threshold:8})}};jQuery(document).ready(function(){var e=1;jQuery(".widget-boxes").each(function(){""==jQuery(".dashboard-widget-row-"+e).html()&&jQuery(".dashboard-widget-row-"+e).remove(),e++})});
diff --git a/src/plugins/tjdashboardrenderer/filterbox/filterbox.php b/src/plugins/tjdashboardrenderer/filterbox/filterbox.php
new file mode 100644
index 00000000..78222225
--- /dev/null
+++ b/src/plugins/tjdashboardrenderer/filterbox/filterbox.php
@@ -0,0 +1,47 @@
+
+ * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved.
+ * @license GNU General Public License version 2 or later; see LICENSE.txt
+ */
+
+defined('_JEXEC') or die('Restricted access');
+
+use Joomla\CMS\Uri\Uri;
+
+/**
+ * plugin of TJDashboardRendererFilterbox
+ *
+ * @since __DEPLOY_VERSION__
+ */
+class PlgTjdashboardRendererFilterbox
+{
+ /**
+ * Get the widget JS files
+ *
+ * @return Array JS files paths
+ *
+ * @since __DEPLOY_VERSION__
+ **/
+ public function getJS()
+ {
+ $JS1 = Uri::root() . 'plugins/tjdashboardrenderer/filterbox/assets/js/renderer.min.js';
+
+ return array($JS1);
+ }
+
+ /**
+ * Get the widget CSS files
+ *
+ * @return Array CSS files paths
+ *
+ * @since __DEPLOY_VERSION__
+ **/
+ public function getCSS()
+ {
+ return array();
+ }
+}
diff --git a/src/plugins/tjdashboardrenderer/filterbox/filterbox.xml b/src/plugins/tjdashboardrenderer/filterbox/filterbox.xml
new file mode 100644
index 00000000..8bbf6c7a
--- /dev/null
+++ b/src/plugins/tjdashboardrenderer/filterbox/filterbox.xml
@@ -0,0 +1,25 @@
+
+
+ PLG_TJDASHBOARDRENDERER_FILTERBOX
+ Techjoomla
+ https://techjoomla.com
+ Copyright (C) 2009 - 2019 Techjoomla. All rights reserved.
+ http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
+ extensions@techjoomla.com
+ https://techjoomla.com
+ 9th Oct 2019
+ 1.0.0
+ PLG_TJDASHBOARDRENDERER_FILTERBOX_DESC
+
+
+ filterbox.php
+ index.html
+ assets
+
+
+
+ en-GB/en-GB.plg_tjdashboardrenderer_filterbox.ini
+ en-GB/en-GB.plg_tjdashboardrenderer_filterbox.sys.ini
+
+
+
diff --git a/src/plugins/tjdashboardrenderer/filterbox/index.html b/src/plugins/tjdashboardrenderer/filterbox/index.html
new file mode 100644
index 00000000..2efb97f3
--- /dev/null
+++ b/src/plugins/tjdashboardrenderer/filterbox/index.html
@@ -0,0 +1 @@
+
diff --git a/src/plugins/tjdashboardrenderer/filterbox/language/en-GB/en-GB.plg_tjdashboardrenderer_filterbox.ini b/src/plugins/tjdashboardrenderer/filterbox/language/en-GB/en-GB.plg_tjdashboardrenderer_filterbox.ini
new file mode 100644
index 00000000..29955f79
--- /dev/null
+++ b/src/plugins/tjdashboardrenderer/filterbox/language/en-GB/en-GB.plg_tjdashboardrenderer_filterbox.ini
@@ -0,0 +1,2 @@
+PLG_TJDASHBOARDRENDERER_FILTERBOX="Dashboard Filter Box"
+PLG_TJDASHBOARDRENDERER_FILTERBOX_DESC="Dashboard Filter Box renderer plugin"
diff --git a/src/plugins/tjdashboardrenderer/filterbox/language/en-GB/en-GB.plg_tjdashboardrenderer_filterbox.sys.ini b/src/plugins/tjdashboardrenderer/filterbox/language/en-GB/en-GB.plg_tjdashboardrenderer_filterbox.sys.ini
new file mode 100644
index 00000000..29955f79
--- /dev/null
+++ b/src/plugins/tjdashboardrenderer/filterbox/language/en-GB/en-GB.plg_tjdashboardrenderer_filterbox.sys.ini
@@ -0,0 +1,2 @@
+PLG_TJDASHBOARDRENDERER_FILTERBOX="Dashboard Filter Box"
+PLG_TJDASHBOARDRENDERER_FILTERBOX_DESC="Dashboard Filter Box renderer plugin"
diff --git a/src/plugins/tjdashboardsource/dashboard/dashboard.php b/src/plugins/tjdashboardsource/dashboard/dashboard.php
new file mode 100644
index 00000000..bdf303ce
--- /dev/null
+++ b/src/plugins/tjdashboardsource/dashboard/dashboard.php
@@ -0,0 +1,22 @@
+
+ * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved.
+ * @license GNU General Public License version 2 or later; see LICENSE.txt
+ */
+
+// No direct access
+defined('_JEXEC') or die('Restricted access');
+use Joomla\CMS\Plugin\CMSPlugin;
+
+/**
+ * plugin of PlgTjdashboardDashboard
+ *
+ * @since __DEPLOY_VERSION__
+ */
+class PlgTjdashboardDashboard extends CMSPlugin
+{
+}
diff --git a/src/plugins/tjdashboardsource/dashboard/dashboard.xml b/src/plugins/tjdashboardsource/dashboard/dashboard.xml
new file mode 100644
index 00000000..bb95081d
--- /dev/null
+++ b/src/plugins/tjdashboardsource/dashboard/dashboard.xml
@@ -0,0 +1,23 @@
+
+
+ PLG_TJDASHBOARDSOURCE_DASHBOARD
+ Techjoomla
+ 9th Oct 2019
+ Copyright (C) 2009 - 2019 Techjoomla. All rights reserved.
+ http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
+ extensions@techjoomla.com
+ https://techjoomla.com
+ 1.0.0
+ PLG_TJDASHBOARDSOURCE_DASHBOARD
+
+
+ dashboard.php
+ dashboard
+
+
+
+ en-GB/en-GB.plg_tjdashboardsource_dashboard.ini
+ en-GB/en-GB.plg_tjdashboardsource_dashboard.sys.ini
+
+
+
diff --git a/src/plugins/tjdashboardsource/dashboard/dashboard/widgetfilters.php b/src/plugins/tjdashboardsource/dashboard/dashboard/widgetfilters.php
new file mode 100644
index 00000000..3cc01972
--- /dev/null
+++ b/src/plugins/tjdashboardsource/dashboard/dashboard/widgetfilters.php
@@ -0,0 +1,133 @@
+
+ * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved.
+ * @license GNU General Public License version 2 or later; see LICENSE.txt
+ */
+
+// No direct access
+defined('_JEXEC') or die('Restricted access');
+use Joomla\CMS\Factory;
+use Joomla\CMS\Component\ComponentHelper;
+use Joomla\CMS\Language\Text;
+use Joomla\CMS\Router\Route;
+use Joomla\CMS\HTML\HTMLHelper;
+
+$lang = Factory::getLanguage();
+$lang->load('plg_tjdashboardsource_dashboard', JPATH_ADMINISTRATOR);
+
+JLoader::import("/components/com_cluster/includes/cluster", JPATH_ADMINISTRATOR);
+
+/**
+ * Plugin for tjdashboardsource to get dashboard filters
+ *
+ * @since __DEPLOY_VERSION__
+ */
+
+class DashboardWidgetFiltersDatasource
+{
+ public $dataSourceName = "PLG_TJDASHBOARDSOURCE_DASHBOARD_WIDGET_FILTERS";
+
+ /**
+ * Function to get data of the whole block
+ *
+ * @return Array data.
+ *
+ * @since __DEPLOY_VERSION__
+ */
+ public function getData()
+ {
+ try
+ {
+ $clusterList = array();
+
+ // Check if com_cluster component is installed
+ if (ComponentHelper::getComponent('com_cluster', true)->enabled)
+ {
+ $user = Factory::getUser();
+ $clusterUserModel = ClusterFactory::model('ClusterUser', array('ignore_request' => true));
+ $clusters = $clusterUserModel->getUsersClusters($user->id);
+
+ if (count($clusters) > 1)
+ {
+ $clusterList['cluster_id'][] = HTMLHelper::_('select.option', "", Text::_('PLG_TJDASHBOARDSOURCE_DASHBOARD_SELECT_CLUSTER'));
+ }
+
+ // Get com_subusers component status
+ $subUserExist = ComponentHelper::getComponent('com_subusers', true)->enabled;
+
+ if ($subUserExist)
+ {
+ JLoader::import("/components/com_subusers/includes/rbacl", JPATH_ADMINISTRATOR);
+ }
+
+ // Create oprion for each cluster
+ foreach ($clusters as $cluster)
+ {
+ // DPE - Hack to check its manager
+ if ($subUserExist)
+ {
+ // Check user have permission to manage all clusters
+ if (!$user->authorise('core.manageall', 'com_cluster'))
+ {
+ // Check user having permission to add staff
+ if (RBACL::authorise($user->id, 'com_multiagency', 'core.adduser', $cluster->client_id))
+ {
+ $clusterList['cluster_id'][] = HTMLHelper::_('select.option', $cluster->cluster_id, trim($cluster->name));
+ }
+ }
+ else
+ {
+ $clusterList['cluster_id'][] = HTMLHelper::_('select.option', $cluster->cluster_id, trim($cluster->name));
+ }
+ }
+ else
+ {
+ $clusterList['cluster_id'][] = HTMLHelper::_('select.option', $cluster->cluster_id, trim($cluster->name));
+ }
+ }
+ }
+ }
+ catch (Exception $e)
+ {
+ throw new Exception($e->getMessage());
+ }
+
+ $recordInfo = array(Text::_('PLG_TJDASHBOARDSOURCE_DASHBOARD_CLUSTER_FILTER') => '');
+ $recordInfo[Text::_('PLG_TJDASHBOARDSOURCE_DASHBOARD_CLUSTER_FILTER')] = $clusterList;
+
+ return $recordInfo;
+ }
+
+ /**
+ * Get Data for Filter
+ *
+ * @return string dataArray
+ *
+ * @since __DEPLOY_VERSION__
+ * */
+ public function getDataFilterboxTjdashfilter()
+ {
+ $items = [];
+ $items['data'] = ['filters' => $this->getData(),
+ 'title' => ''
+ ];
+
+ return json_encode($items);
+ }
+
+ /**
+ * Get supported Renderers List
+ *
+ * @return array supported renderes for this data source
+ *
+ * @since __DEPLOY_VERSION__
+ * */
+ public function getSupportedRenderers()
+ {
+ return array('filterbox.tjdashfilter' => "PLG_TJDASHBOARDRENDERER_FILTERBOX");
+ }
+}
diff --git a/src/plugins/tjdashboardsource/dashboard/language/en-GB/en-GB.plg_tjdashboardsource_dashboard.ini b/src/plugins/tjdashboardsource/dashboard/language/en-GB/en-GB.plg_tjdashboardsource_dashboard.ini
new file mode 100644
index 00000000..bd4a62f4
--- /dev/null
+++ b/src/plugins/tjdashboardsource/dashboard/language/en-GB/en-GB.plg_tjdashboardsource_dashboard.ini
@@ -0,0 +1,2 @@
+PLG_TJDASHBOARDSOURCE_DASHBOARD="Data Source Dashboard"
+PLG_TJDASHBOARDSOURCE_DASHBOARD_WIDGET_FILTERS="Widget Filters"
diff --git a/src/plugins/tjdashboardsource/dashboard/language/en-GB/en-GB.plg_tjdashboardsource_dashboard.sys.ini b/src/plugins/tjdashboardsource/dashboard/language/en-GB/en-GB.plg_tjdashboardsource_dashboard.sys.ini
new file mode 100644
index 00000000..cd28ed4c
--- /dev/null
+++ b/src/plugins/tjdashboardsource/dashboard/language/en-GB/en-GB.plg_tjdashboardsource_dashboard.sys.ini
@@ -0,0 +1 @@
+PLG_TJDASHBOARDSOURCE_DASHBOARD="Data Source Dashboard"