<?php

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 "
			".make_form(make_link("regen_thumb/one"))."
			<input type='hidden' name='image_id' value='$image_id'>
			<input type='submit' value='Regenerate Thumbnail'>
			</form>
		";
    }

    /**
     * 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 mtr_html(string $terms)
    {
        $h_terms = html_escape($terms);
        $html = make_form(make_link("regen_thumb/mass"), "POST") . "
				<input type='hidden' name='tags' value='$h_terms'>
				<input type='submit' value='Regen all thumbs' onclick='return confirm(\"This can use a lot of CPU time.\\nAre you sure you want to do this?\")'>
			</form>
		";
        return $html;
    }

    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;

        $types = [];
        $results = $database->get_all("SELECT ext, count(*) count FROM images group by ext");
        foreach ($results as $result) {
            array_push($types, "<option value='".$result["ext"]."'>".$result["ext"]." (".$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_type'>Type</label></th><td>
                    <select name='regen_thumb_type' id='regen_thumb_type' value='1000'>
                        <option value=''>All</option>
                        ".implode($types)."
                    </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_type'>Type</label></th><td>
                        <select name='delete_thumb_type' id='delete_thumb_type' value='1000'>
                            <option value=''>All</option>
                            ".implode($types)."
                        </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));
    }
}