EditAlbum: make parent selection more intuitive
This commit is contained in:
parent
4684482d67
commit
54df35073d
@ -61,13 +61,24 @@ class EditAlbum extends HTMLController
|
|||||||
elseif (!$id_tag)
|
elseif (!$id_tag)
|
||||||
$after_form = '<button name="submit_and_new" class="btn">Save and add another</button>';
|
$after_form = '<button name="submit_and_new" class="btn">Save and add another</button>';
|
||||||
|
|
||||||
|
// Gather possible parents for this album to be filed into
|
||||||
|
$parentChoices = [0 => '-root-'];
|
||||||
|
foreach (PhotoAlbum::getHierarchy('tag', 'up') as $parent)
|
||||||
|
{
|
||||||
|
if (!empty($id_tag) && $parent['id_tag'] == $id_tag)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
$parentChoices[$parent['id_tag']] = $parent['tag'];
|
||||||
|
}
|
||||||
|
|
||||||
$form = new Form([
|
$form = new Form([
|
||||||
'request_url' => BASEURL . '/editalbum/?' . ($id_tag ? 'id=' . $id_tag : 'add'),
|
'request_url' => BASEURL . '/editalbum/?' . ($id_tag ? 'id=' . $id_tag : 'add'),
|
||||||
'content_below' => $after_form,
|
'content_below' => $after_form,
|
||||||
'fields' => [
|
'fields' => [
|
||||||
'id_parent' => [
|
'id_parent' => [
|
||||||
'type' => 'numeric',
|
'type' => 'select',
|
||||||
'label' => 'Parent album ID',
|
'label' => 'Parent album',
|
||||||
|
'options' => $parentChoices,
|
||||||
],
|
],
|
||||||
'id_asset_thumb' => [
|
'id_asset_thumb' => [
|
||||||
'type' => 'numeric',
|
'type' => 'numeric',
|
||||||
@ -127,6 +138,12 @@ class EditAlbum extends HTMLController
|
|||||||
|
|
||||||
$data = $form->getData();
|
$data = $form->getData();
|
||||||
|
|
||||||
|
// Sanity check: don't let an album be its own parent
|
||||||
|
if ($data['id_parent'] == $id_tag)
|
||||||
|
{
|
||||||
|
return $formview->adopt(new Alert('Invalid parent', 'An album cannot be its own parent.', 'danger'));
|
||||||
|
}
|
||||||
|
|
||||||
// Quick stripping.
|
// Quick stripping.
|
||||||
$data['tag'] = htmlentities($data['tag']);
|
$data['tag'] = htmlentities($data['tag']);
|
||||||
$data['description'] = htmlentities($data['description']);
|
$data['description'] = htmlentities($data['description']);
|
||||||
|
Loading…
Reference in New Issue
Block a user