From 65cf04faed9f7a9cb6f84676b9908011e43d3f98 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Fri, 14 Aug 2015 06:23:16 -0600 Subject: [PATCH] progress so far.. --- classes/admin.php | 21 ++++++++++++++++-- classes/controller.php | 22 ++++++++++--------- .../forms/fields/toggle/toggle.html.twig | 22 +++++++++++-------- 3 files changed, 44 insertions(+), 21 deletions(-) diff --git a/classes/admin.php b/classes/admin.php index 8fb265c2..65aa99ed 100644 --- a/classes/admin.php +++ b/classes/admin.php @@ -534,9 +534,26 @@ class Admin if (isset($this->session->{$page->route()})) { // Found the type and header from the session. $data = $this->session->{$page->route()}; - $visible = isset($data['visible']) && $data['visible'] != '' ? (bool)$data['visible'] : $this->guessVisibility($page); - $header = ['title' => $data['title'], 'visible' => $visible]; + $header = ['title' => $data['title']]; + + if (isset($data['visible'])) { + if ($data['visible'] == '') { + // if auto (ie '') + $children = $page->parent()->children(); + foreach ($children as $child) { + if ($child->order()) { + // set page order + $page->order(1000); + break; + } + } + } else { + // else visible explicitly set + $header['visible'] = (bool) $data['visible']; + } + + } if ($data['type'] == 'modular') { $header['body_classes'] = 'modular'; diff --git a/classes/controller.php b/classes/controller.php index 95e69b96..2b5506dd 100644 --- a/classes/controller.php +++ b/classes/controller.php @@ -827,6 +827,7 @@ class AdminController $obj = $this->admin->page(true); $original_slug = $obj->slug(); + $original_order = intval(trim($obj->order(), '.')); // Change parent if needed and initialize move (might be needed also on ordering/folder change). $obj = $obj->move($parent); @@ -837,19 +838,20 @@ class AdminController $obj->validate(); $obj->filter(); - $visible_after = $obj->visible(); +// $visible_after = $obj->visible(); // force reordering - $reorder = true; +// $reorder = true; // rename folder based on visible - if ($visible_after && !$obj->order()) { - // needs to have order set - $obj->order(1000); - } elseif (!$visible_after && $obj->order()) { - // needs to have order removed - $obj->folder($obj->slug()); + if ($original_order == 1000) { + // increment order to force reshuffle + $obj->order($original_order + 1); } +// } elseif (!$visible_after && $obj->order()) { +// // needs to have order removed +// $obj->folder($obj->slug()); +// } } else { // Handle standard data types. @@ -859,7 +861,7 @@ class AdminController } if ($obj) { - $obj->save($reorder); + $obj->save(true); $this->admin->setMessage('Successfully saved', 'info'); } @@ -1171,7 +1173,7 @@ class AdminController } } else { if (isset($input['toggleable_header'][$key]) && !$input['toggleable_header'][$key]) { - $header[$key] = ''; + $header[$key] = null; } } } diff --git a/themes/grav/templates/forms/fields/toggle/toggle.html.twig b/themes/grav/templates/forms/fields/toggle/toggle.html.twig index 1264d1b6..38eae6ac 100644 --- a/themes/grav/templates/forms/fields/toggle/toggle.html.twig +++ b/themes/grav/templates/forms/fields/toggle/toggle.html.twig @@ -22,15 +22,19 @@ {% set id = "toggle_" ~ field.name ~ key %} {% endfor %}