Merge pull request 'Introduce edit menu for admins' (#49) from edit-menu into master
Reviewed-on: #49
This commit was merged in pull request #49.
This commit is contained in:
@@ -30,6 +30,40 @@ class EditAsset extends HTMLController
|
||||
header('Location: ' . $redirectUrl);
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
$isPrioChange = isset($_REQUEST['inc_prio']) || isset($_REQUEST['dec_prio']);
|
||||
$isCoverChange = isset($_REQUEST['album_cover'], $_REQUEST['in']);
|
||||
$madeChanges = false;
|
||||
|
||||
if ($user->isAdmin() && $isPrioChange && Session::validateSession('get'))
|
||||
{
|
||||
if (isset($_REQUEST['inc_prio']))
|
||||
$priority = $asset->priority + 1;
|
||||
else
|
||||
$priority = $asset->priority - 1;
|
||||
|
||||
$asset->priority = max(0, min(100, $priority));
|
||||
$asset->save();
|
||||
$madeChanges = true;
|
||||
}
|
||||
elseif ($user->isAdmin() && $isCoverChange && Session::validateSession('get'))
|
||||
{
|
||||
$tag = Tag::fromId($_REQUEST['in']);
|
||||
$tag->id_asset_thumb = $asset->getId();
|
||||
$tag->save();
|
||||
$madeChanges = true;
|
||||
}
|
||||
|
||||
if ($madeChanges)
|
||||
{
|
||||
if (isset($_SERVER['HTTP_REFERER']))
|
||||
header('Location: ' . $_SERVER['HTTP_REFERER']);
|
||||
else
|
||||
header('Location: ' . BASEURL . '/' . $asset->getSubdir());
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
// Get a list of available photo albums
|
||||
$allAlbums = [];
|
||||
@@ -61,10 +95,12 @@ class EditAsset extends HTMLController
|
||||
// Key info
|
||||
if (isset($_POST['title'], $_POST['slug'], $_POST['date_captured'], $_POST['priority']))
|
||||
{
|
||||
$date_captured = !empty($_POST['date_captured']) ?
|
||||
$asset->date_captured = !empty($_POST['date_captured']) ?
|
||||
new DateTime(str_replace('T', ' ', $_POST['date_captured'])) : null;
|
||||
$slug = Asset::cleanSlug($_POST['slug']);
|
||||
$asset->setKeyData(htmlspecialchars($_POST['title']), $slug, $date_captured, intval($_POST['priority']));
|
||||
$asset->slug = Asset::cleanSlug($_POST['slug']);
|
||||
$asset->title = htmlspecialchars($_POST['title']);
|
||||
$asset->priority = intval($_POST['priority']);
|
||||
$asset->save();
|
||||
}
|
||||
|
||||
// Changing parent album?
|
||||
|
||||
@@ -107,8 +107,11 @@ class ViewPhotoAlbum extends HTMLController
|
||||
if (!empty($active_filter))
|
||||
$url_params['by'] = $active_filter;
|
||||
|
||||
if (!empty($url_params))
|
||||
$index->setUrlSuffix('?' . http_build_query($url_params));
|
||||
$url_suffix = http_build_query($url_params);
|
||||
$index->setUrlSuffix('?' . $url_suffix);
|
||||
|
||||
$menu_items = $this->getEditMenuItems('&' . $url_suffix);
|
||||
$index->setEditMenuItems($menu_items);
|
||||
}
|
||||
|
||||
// Make a page index as needed, while we're at it.
|
||||
@@ -228,6 +231,46 @@ class ViewPhotoAlbum extends HTMLController
|
||||
return $buttons;
|
||||
}
|
||||
|
||||
private function getEditMenuItems($url_suffix)
|
||||
{
|
||||
$items = [];
|
||||
$sess = '&' . Session::getSessionTokenKey() . '=' . Session::getSessionToken();
|
||||
|
||||
if (Registry::get('user')->isLoggedIn())
|
||||
{
|
||||
$items[] = [
|
||||
'label' => 'Edit image',
|
||||
'uri' => fn($image) => $image->getEditUrl() . $url_suffix,
|
||||
];
|
||||
|
||||
$items[] = [
|
||||
'label' => 'Delete image',
|
||||
'uri' => fn($image) => $image->getDeleteUrl() . $url_suffix . $sess,
|
||||
'onclick' => 'return confirm(\'Are you sure you want to delete this image?\');',
|
||||
];
|
||||
}
|
||||
|
||||
if (Registry::get('user')->isAdmin())
|
||||
{
|
||||
$items[] = [
|
||||
'label' => 'Make album cover',
|
||||
'uri' => fn($image) => $image->getEditUrl() . $url_suffix . '&album_cover' . $sess,
|
||||
];
|
||||
|
||||
$items[] = [
|
||||
'label' => 'Increase priority',
|
||||
'uri' => fn($image) => $image->getEditUrl() . $url_suffix . '&inc_prio' . $sess,
|
||||
];
|
||||
|
||||
$items[] = [
|
||||
'label' => 'Decrease priority',
|
||||
'uri' => fn($image) => $image->getEditUrl() . $url_suffix . '&dec_prio' . $sess,
|
||||
];
|
||||
}
|
||||
|
||||
return $items;
|
||||
}
|
||||
|
||||
private function getHeaderBox(Tag $tag)
|
||||
{
|
||||
// Can we go up a level?
|
||||
|
||||
Reference in New Issue
Block a user