"button", "value" => "Add Note", "onclick" => "addNewNote()"])); } public function request_button(int $image_id): HTMLElement { return SHM_SIMPLE_FORM( "note/add_request", INPUT(["type" => "hidden", "name" => "image_id", "value" => $image_id]), INPUT(["type" => "submit", "value" => "Add Note Request"]), ); } public function nuke_notes_button(int $image_id): HTMLElement { return SHM_SIMPLE_FORM( "note/nuke_notes", INPUT(["type" => "hidden", "name" => "image_id", "value" => $image_id]), INPUT(["type" => "submit", "value" => "Nuke Notes", "onclick" => "return confirm_action('Are you sure?')"]), ); } public function nuke_requests_button(int $image_id): HTMLElement { return SHM_SIMPLE_FORM( "note/nuke_requests", INPUT(["type" => "hidden", "name" => "image_id", "value" => $image_id]), INPUT(["type" => "submit", "value" => "Nuke Requests", "onclick" => "return confirm_action('Are you sure?')"]), ); } // check action POST on form /** * @param Note[] $recovered_notes */ public function display_note_system(Page $page, int $image_id, array $recovered_notes, bool $adminOptions, bool $editOptions): void { $to_json = []; foreach ($recovered_notes as $note) { $to_json[] = [ 'image_id' => $image_id, 'x1' => $note["x1"], 'y1' => $note["y1"], 'height' => $note["height"], 'width' => $note["width"], 'note' => $note["note"], 'note_id' => $note["id"], ]; } $page->add_html_header(SCRIPT( ["type" => "text/javascript"], " window.notes = ".\Safe\json_encode($to_json)."; window.notes_image_id = $image_id; window.notes_admin = ".($adminOptions ? "true" : "false")."; window.notes_edit = ".($editOptions ? "true" : "false")."; " )); } /** * @param array $images */ public function display_note_list(array $images, int $pageNumber, int $totalPages): void { global $page; $pool_images = ''; foreach ($images as $image) { $thumb_html = $this->build_thumb_html($image); $pool_images .= ''. ' '.$thumb_html.''. ''; } $this->display_paginator($page, "note/list", null, $pageNumber, $totalPages); $page->set_title("Notes"); $page->set_heading("Notes"); $page->add_block(new Block("Notes", $pool_images, "main", 20)); } /** * @param array $images */ public function display_note_requests(array $images, int $pageNumber, int $totalPages): void { global $page; $pool_images = ''; foreach ($images as $image) { $thumb_html = $this->build_thumb_html($image); $pool_images .= ''. ' '.$thumb_html.''. ''; } $this->display_paginator($page, "requests/list", null, $pageNumber, $totalPages); $page->set_title("Note Requests"); $page->set_heading("Note Requests"); $page->add_block(new Block("Note Requests", $pool_images, "main", 20)); } /** * @param NoteHistory[] $histories */ private function get_history(array $histories): string { global $user; $html = "". "". "". "". "". "". ""; if (!$user->is_anonymous()) { $html .= ""; } $html .= "". ""; foreach ($histories as $history) { $image_link = "".$history['image_id'].""; $history_link = "".$history['note_id'].".".$history['review_id'].""; $user_link = "".$history['user_name'].""; $revert_link = "Revert"; $html .= "". "". "". "". "". ""; if (!$user->is_anonymous()) { $html .= ""; } } $html .= "
PostNoteBodyUpdaterDateAction
".$image_link."".$history_link."".$history['note']."".$user_link."".autodate($history['date'])."".$revert_link."
"; return $html; } /** * @param NoteHistory[] $histories */ public function display_histories(array $histories, int $pageNumber, int $totalPages): void { global $page; $html = $this->get_history($histories); $page->set_title("Note Updates"); $page->set_heading("Note Updates"); $page->add_block(new Block("Note Updates", $html, "main", 10)); $this->display_paginator($page, "note/updated", null, $pageNumber, $totalPages); } /** * @param NoteHistory[] $histories */ public function display_history(array $histories, int $pageNumber, int $totalPages): void { global $page; $html = $this->get_history($histories); $page->set_title("Note History"); $page->set_heading("Note History"); $page->add_block(new Block("Note History", $html, "main", 10)); $this->display_paginator($page, "note/updated", null, $pageNumber, $totalPages); } public function get_help_html(): string { return '

Search for posts with notes.

note=noted

Returns posts with a note matching "noted".

notes>0

Returns posts with 1 or more notes.

Can use <, <=, >, >=, or =.

notes_by=username

Returns posts with note(s) by "username".

notes_by_user_id=123

Returns posts with note(s) by user 123.

'; } }