<?php declare(strict_types=1);
use function MicroHTML\INPUT;
use function MicroHTML\TABLE;
use function MicroHTML\TR;
use function MicroHTML\TH;
use function MicroHTML\TD;
use function MicroHTML\SELECT;
use function MicroHTML\OPTION;

class MediaTheme extends Themelet
{
    public function display_form(array $types)
    {
        global $page;

        $select = SELECT(["name"=>"media_rescan_type"]);
        $select->appendChild(OPTION(["value"=>""], "All"));
        foreach ($types as $type) {
            $select->appendChild(OPTION(["value"=>$type["ext"]], "{$type["ext"]} ({$type["count"]})"));
        }

        $html = (string)SHM_SIMPLE_FORM(
            "admin/media_rescan",
            "Use this to force scanning for media properties.",
            TABLE(
                ["class"=>"form"],
                TR(TH("Image Type"), TD($select)),
                TR(TD(["colspan"=>"2"], SHM_SUBMIT('Scan Media Information')))
            )
        );
        $page->add_block(new Block("Media Tools", $html));
    }

    public function get_buttons_html(int $image_id): string
    {
        return (string)SHM_SIMPLE_FORM(
            "media_rescan/",
            INPUT(["type"=>'hidden', "name"=>'image_id', "value"=>$image_id]),
            SHM_SUBMIT('Scan Media Properties'),
        );
    }

    public function get_help_html()
    {
        return '<p>Search for items based on the type of media.</p>
        <div class="command_example">
        <pre>content:audio</pre>
        <p>Returns items that contain audio, including videos and audio files.</p>
        </div>
        <div class="command_example">
        <pre>content:video</pre>
        <p>Returns items that contain video, including animated GIFs.</p>
        </div>
        <p>These search terms depend on the items being scanned for media content. Automatic scanning was implemented in mid-2019, so items uploaded before, or items uploaded on a system without ffmpeg, will require additional scanning before this will work.</p>
        ';
    }
}