diff --git a/ext/image/theme.php b/ext/image/theme.php index 26c268d7..d85a7cb5 100644 --- a/ext/image/theme.php +++ b/ext/image/theme.php @@ -9,11 +9,11 @@ class ImageIOTheme extends Themelet */ public function get_deleter_html(int $image_id): string { - return (string)SHM_SIMPLE_FORM( + return (string)"".SHM_SIMPLE_FORM( "image/delete", INPUT(["type"=>'hidden', "name"=>'image_id', "value"=>$image_id]), - INPUT(["type"=>'submit', "value"=>'Delete', "onclick"=>'return confirm("Delete the image?");']), - ); + INPUT(["type"=>'submit', "value"=>'Delete', "onclick"=>'return confirm("Delete the image?");', "id"=>"image_delete_button"]), + ).""; } /** diff --git a/ext/view/main.php b/ext/view/main.php index e6a4f79a..ca4b79c6 100644 --- a/ext/view/main.php +++ b/ext/view/main.php @@ -77,7 +77,13 @@ class ViewImage extends Extension if (!$image->is_locked() || $user->can(Permissions::EDIT_IMAGE_LOCK)) { send_event(new ImageInfoSetEvent($image)); $page->set_mode(PageMode::REDIRECT); - $page->set_redirect(make_link("post/view/$image_id", url_escape(@$_POST['query']))); + + if (isset($_GET['search'])) { + $query = "search=" . url_escape($_GET['search']); + } else { + $query = null; + } + $page->set_redirect(make_link("post/view/$image_id", null, $query)); } else { $this->theme->display_error(403, "Post Locked", "An admin has locked this post"); } diff --git a/ext/view/script.js b/ext/view/script.js index 3c966a11..3c8799f3 100644 --- a/ext/view/script.js +++ b/ext/view/script.js @@ -1,18 +1,29 @@ +function joinUrlSegments(base, query) { + let separatorChar = "?"; + if(base.includes("?")) { + separatorChar = "&"; + } + return base + separatorChar + query; +} + document.addEventListener('DOMContentLoaded', () => { if(document.location.hash.length > 3) { var query = document.location.hash.substring(1); $('LINK#prevlink').attr('href', function(i, attr) { - return attr + '?' + query; + return joinUrlSegments(attr,query); }); $('LINK#nextlink').attr('href', function(i, attr) { - return attr + '?' + query; + return joinUrlSegments(attr,query); }); $('A#prevlink').attr('href', function(i, attr) { - return attr + '?' + query; + return joinUrlSegments(attr,query); }); $('A#nextlink').attr('href', function(i, attr) { - return attr + '?' + query; + return joinUrlSegments(attr,query); }); + $('span#image_delete_form form').attr('action', function(i, attr) { + return joinUrlSegments(attr,query); + }); } });