<?php declare(strict_types=1);
use function MicroHTML\INPUT;

class RegenThumbTheme extends Themelet
{
    /**
     * Show a form which offers to regenerate the thumb of an image with ID #$image_id
     */
    public function get_buttons_html(int $image_id): string
    {
        return (string)SHM_SIMPLE_FORM(
            "regen_thumb/one",
            INPUT(["type"=>'hidden', "name"=>'image_id', "value"=>$image_id]),
            SHM_SUBMIT('Regenerate Thumbnail')
        );
    }

    /**
     * Show a link to the new thumbnail.
     */
    public function display_results(Page $page, Image $image)
    {
        $page->set_title("Thumbnail Regenerated");
        $page->set_heading("Thumbnail Regenerated");
        $page->add_html_header("<meta http-equiv=\"cache-control\" content=\"no-cache\">");
        $page->add_block(new NavBlock());
        $page->add_block(new Block("Thumbnail", $this->build_thumb_html($image)));
    }

    public function bulk_html()
    {
        return "<label><input type='checkbox' name='bulk_regen_thumb_missing_only' id='bulk_regen_thumb_missing_only' style='width:13px' value='true' />Only missing thumbs</label>";
    }

    public function display_admin_block()
    {
        global $page, $database;

        $mimes = [];
        $results = $database->get_all("SELECT mime, count(*) count FROM images group by mime");
        foreach ($results as $result) {
            array_push($mimes, "<option value='".$result["mime"]."'>".$result["mime"]." (".$result["count"].")</option>");
        }

        $html = "
            Will only regenerate missing thumbnails, unless force is selected. Force will override the limit and will likely take a very long time to process.
			<p>".make_form(make_link("admin/regen_thumbs"))."
				<table class='form'>
                <tr><th><label for='regen_thumb_force'>Force</label></th><td><input type='checkbox' name='regen_thumb_force' id='regen_thumb_force' value='true' /></td></tr>
                <tr><th><label for='regen_thumb_limit'>Limit</label></th><td><input type='number' name='regen_thumb_limit' id='regen_thumb_limit' value='1000' /></td></tr>
                <tr><th><label for='regen_thumb_mime'>MIME</label></th><td>
                    <select name='regen_thumb_mime' id='regen_thumb_mime'>
                        <option value=''>All</option>
                        ".implode($mimes)."
                    </select>
                </td></tr>
                <tr><td colspan='2'><input type='submit' value='Regenerate Thumbnails'></td></tr>
				</table>
			</form></p>
			<p>".make_form(make_link("admin/delete_thumbs"), "POST", false, "", "return confirm('Are you sure you want to delete all thumbnails?')")."
				<table class='form'>
                    <tr><th><label for='delete_thumb_mime'>MIME</label></th><td>
                        <select name='delete_thumb_mime' id='delete_thumb_mime'>
                            <option value=''>All</option>
                            ".implode($mimes)."
                        </select>
                    </td></tr>
					<tr><td colspan='2'><input type='submit' value='Delete Thumbnails'></td></tr>
				</table>
            </form></p>
            		";
        $page->add_block(new Block("Regen Thumbnails", $html));
    }
}