summaryrefslogtreecommitdiff
path: root/core/controllers/admin_dashboard.php
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2009-01-18 09:06:46 +0000
committerBharat Mediratta <bharat@menalto.com>2009-01-18 09:06:46 +0000
commit8ec0e8471f424ead77a335277d86706c4b6d3add (patch)
tree10ed731ec427af0982f2007ccdaeecdc685d06db /core/controllers/admin_dashboard.php
parent9380e306f4e40da8f6d9a4e9cbe7231b7738ed60 (diff)
Drag and drop in the admin dashboard now saves the location.
* Make block_adder a real block * Suppress the "close" link on block_adder * Move the drag/drop JS into the core code out of the admin theme
Diffstat (limited to 'core/controllers/admin_dashboard.php')
-rw-r--r--core/controllers/admin_dashboard.php56
1 files changed, 32 insertions, 24 deletions
diff --git a/core/controllers/admin_dashboard.php b/core/controllers/admin_dashboard.php
index aeac75d8..a1393dc1 100644
--- a/core/controllers/admin_dashboard.php
+++ b/core/controllers/admin_dashboard.php
@@ -19,24 +19,19 @@
*/
class Admin_Dashboard_Controller extends Admin_Controller {
public function index() {
- $blocks = unserialize(module::get_var("core", "dashboard_blocks"));
-
- $block_adder = new Block();
- $block_adder->id = "core:block_adder";
- $block_adder->title = t("Dashboard Content");
- $block_adder->content = $this->get_add_block_form();
-
$view = new Admin_View("admin.html");
- $view->content = block_manager::get_html("dashboard_center");
- $view->sidebar = $block_adder . block_manager::get_html("dashboard_sidebar");
+ $view->content = new View("admin_dashboard.html");
+ $view->content->blocks = block_manager::get_html("dashboard_center");
+ $view->sidebar = "<div id=\"gAdminDashboardSidebar\">" .
+ $block_adder . block_manager::get_html("dashboard_sidebar") .
+ "</div>";
print $view;
}
public function add_block() {
- $form = $this->get_add_block_form();
+ $form = core_block::get_add_block_form();
if ($form->validate()) {
list ($module_name, $block_id) = explode(":", $form->add_block->id->value);
- $blocks = block_manager::get_active();
$available = block_manager::get_available();
if ($form->add_block->center->value) {
@@ -56,13 +51,15 @@ class Admin_Dashboard_Controller extends Admin_Controller {
public function remove_block($id) {
access::verify_csrf();
- $blocks = block_manager::get_active();
- if (array_key_exists($id, $blocks["sidebar"])) {
- $deleted = $blocks["sidebar"][$id];
+ $blocks_center = block_manager::get_active("dashboard_center");
+ $blocks_sidebar = block_manager::get_active("dashboard_sidebar");
+
+ if (array_key_exists($id, $blocks_sidebar)) {
+ $deleted = $blocks_sidebar[$id];
block_manager::remove("dashboard_sidebar", $id);
- } else if (array_key_exists($id, $blocks["main"])) {
- $deleted = $blocks["main"][$id];
- block_manager::remove("dashboard_main", $id);
+ } else if (array_key_exists($id, $blocks_center)) {
+ $deleted = $blocks_center[$id];
+ block_manager::remove("dashboard_center", $id);
}
if (!empty($deleted)) {
@@ -74,12 +71,23 @@ class Admin_Dashboard_Controller extends Admin_Controller {
url::redirect("admin");
}
- public function get_add_block_form() {
- $form = new Forge("admin/dashboard/add_block", "", "post");
- $group = $form->group("add_block")->label(t("Add Block"));
- $group->dropdown("id")->label("Available Blocks")->options(block_manager::get_available());
- $group->submit("center")->value(t("Add to center"));
- $group->submit("sidebar")->value(t("Add to sidebar"));
- return $form;
+ public function reorder() {
+ access::verify_csrf();
+ $active_set = array();
+ foreach (array("dashboard_sidebar", "dashboard_center") as $location) {
+ foreach (block_manager::get_active($location) as $id => $info) {
+ $active_set[$id] = $info;
+ }
+ }
+
+ foreach (array("dashboard_sidebar", "dashboard_center") as $location) {
+ $new_blocks = array();
+ foreach ($this->input->get($location, array()) as $id) {
+ $new_blocks[$id] = $active_set[$id];
+ }
+ block_manager::set_active($location, $new_blocks);
+ }
+
+ $this->_force_block_adder();
}
}