Server : Apache System : Linux indy02.toastserver.com 3.10.0-962.3.2.lve1.5.85.el7.x86_64 #1 SMP Thu Apr 18 15:18:36 UTC 2024 x86_64 User : palandch ( 1163) PHP Version : 7.1.33 Disable Function : NONE Directory : /home/palandch/www/manager/controllers/default/system/dashboards/widget/ |
<?php /** * @package modx * @subpackage manager.controllers */ /** * Loads the dashboard update page * * @package modx * @subpackage manager.controllers */ class SystemDashboardsWidgetUpdateManagerController extends modManagerController { /** @var modDashboard $dashboard */ public $dashboard; /** @var modDashboardWidget $widget */ public $widget; /** @var array $widgetArray */ public $widgetArray = array(); /** * Check for any permissions or requirements to load page * @return bool */ public function checkPermissions() { return $this->modx->hasPermission('dashboards'); } /** * Get the active widget * @return void */ public function initialize() { if (!empty($this->scriptProperties['id']) && strlen($this->scriptProperties['id']) === strlen((integer)$this->scriptProperties['id'])) { $this->widget = $this->modx->getObject('modDashboardWidget', array('id' => $this->scriptProperties['id'])); } } /** * Custom logic code here for setting placeholders, etc * * @param array $scriptProperties * @return array */ public function process(array $scriptProperties = array()) { if (empty($this->widget)) return $this->failure($this->modx->lexicon('widget_err_nf')); $this->widgetArray = $this->widget->toArray(); $this->widgetArray['dashboards'] = $this->getDashboards(); return $this->widgetArray; } /** * Get the Dashboards this Widget has been placed on * @return array */ public function getDashboards() { $list = array(); $c = $this->modx->newQuery('modDashboardWidgetPlacement'); $c->innerJoin('modDashboard','Dashboard'); $c->where(array( 'widget' => $this->widget->get('id'), )); $c->sortby('Dashboard.name','ASC'); $c->select($this->modx->getSelectColumns('modDashboardWidgetPlacement','modDashboardWidgetPlacement')); $c->select(array( 'Dashboard.name', 'Dashboard.description', )); $placements = $this->widget->getMany('Placements',$c); /** @var modDashboardWidgetPlacement $placement */ foreach ($placements as $placement) { $list[] = array( $placement->get('dashboard'), $placement->get('name'), $placement->get('description'), ); } return $list; } /** * Register custom CSS/JS for the page * @return void */ public function loadCustomCssJs() { $mgrUrl = $this->modx->getOption('manager_url',null,MODX_MANAGER_URL); $this->addJavascript($mgrUrl."assets/modext/widgets/system/modx.panel.dashboard.widget.js"); $this->addJavascript($mgrUrl.'assets/modext/sections/system/dashboards/widget/update.js'); $this->addHtml('<script type="text/javascript">Ext.onReady(function() { MODx.load({ xtype: "modx-page-dashboard-widget-update" ,record: '.$this->modx->toJSON($this->widgetArray).' }); });</script>'); } /** * Return the pagetitle * * @return string */ public function getPageTitle() { return $this->modx->lexicon('dashboards'); } /** * Return the location of the template file * @return string */ public function getTemplateFile() { return 'system/dashboards/widget/update.tpl'; } /** * Specify the language topics to load * @return array */ public function getLanguageTopics() { $topics = array('dashboards','user'); if ($this->widget) { $lexicon = $this->widget->get('lexicon'); if (!empty($lexicon) && $lexicon != 'core:dashboards') { $topics[] = $lexicon; } } return $topics; } }