<?php declare(strict_types=1);

class BulkActionsTheme extends Themelet
{
    public function display_selector(Page $page, array $actions, string $query)
    {
        $body = "<input type='hidden' name='bulk_selected_ids' id='bulk_selected_ids' />
				<input id='bulk_selector_activate' type='button' onclick='activate_bulk_selector();' value='Activate (M)anual Select' accesskey='m'/>
				<div id='bulk_selector_controls' style='display: none;'>
					<input id='bulk_selector_deactivate' type='button' onclick='deactivate_bulk_selector();' value='Deactivate (M)anual Select' accesskey='m'/>
					Click on posts to mark them.
					<br />
					<table><tr><td>
					<input id='bulk_selector_select_all' type='button'
						onclick='select_all();' value='All'/>
					</td><td>
					<input id='bulk_selector_select_invert' type='button'
						onclick='select_invert();' value='Invert'/>
					</td><td>
					<input id='bulk)selector_select_none' type='button'
						onclick='select_none();' value='Clear'/>
					</td></tr></table>
		";

        $hasQuery = ($query != null && $query != "");

        if ($hasQuery) {
            $body .= "</div>";
        }

        foreach ($actions as $action) {
            $body .= "<div class='bulk_action'>" . make_form(make_link("bulk_action"), "POST", false, "", "return validate_selections(this,'" . html_escape($action["confirmation_message"]) . "');") .
                "<input type='hidden' name='bulk_query' value='" . html_escape($query) . "'>" .
                "<input type='hidden' name='bulk_selected_ids' />" .
                "<input type='hidden' name='bulk_action' value='" . $action["action"] . "' />" .
                $action["block"] .
                "<input type='submit' name='submit_button' accesskey='{$action["access_key"]}' value='" . $action["button_text"] . "'/>" .
                "</form></div>";
        }

        if (!$hasQuery) {
            $body .= "</div>";
        }
        $block = new Block("Bulk Actions", $body, "left", 30);
        $page->add_block($block);
    }

    public function render_ban_reason_input()
    {
        if (class_exists("ImageBan")) {
            return "<input type='text' name='bulk_ban_reason' placeholder='Ban reason (leave blank to not ban)' />";
        } else {
            return "";
        }
    }

    public function render_tag_input()
    {
        return "<label><input type='checkbox' style='width:13px;' name='bulk_tags_replace' value='true'/>Replace tags</label>" .
            "<input type='text' name='bulk_tags' required='required' placeholder='Enter tags here' />";
    }

    public function render_source_input()
    {
        return "<input type='text' name='bulk_source' required='required' placeholder='Enter source here' />";
    }
}