/** * Called to update a dashboard structure */ public function updateDashboard() { $dashboardId = (int) $this->request->postVar('dashboard'); $items = (array) $this->request->postVar('order'); if ($dashboardId) { $dashboard = $this->dataService->memberDashboardById($dashboardId); if ($dashboard && $dashboard->exists()) { $dashboard->Widgets()->removeAll(); if (is_array($items)) { foreach ($items as $i => $widgetId) { $widget = $this->dataService->dashletById($widgetId); if ($widget) { $widget->ParentID = $dashboard->ID; $widget->Sort = $i + 1; // need +1 here so there's no 0 sort val, otherwise onbeforewrite sets it automatically. $widget->write(); } } } } } }