<?php
use SilverStripe\ORM\DataObject;
use SilverStripe\Assets\Image;
use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\Forms\TextField;
use SilverStripe\AssetAdmin\Forms\UploadField;
use SilverStripe\Forms\HTMLEditor\HTMLEditorField;
use SilverStripe\Forms\DropdownField;

class BlockWidgetServiceDetailItem extends DataObject {

    private static $singular_name = "Service Detail Row";

    private static $db = array(
        "Title" => "Varchar",
        "Content" => "HTMLText",
        "Sort"     => "Int",
        "Icon"              => "Enum(array('Box White','Building White','Card White','Flag White','Globe White','Mail White','Phone White','Quote White','Repair White','Return White','Tick White'))",
    );

    public function getDisplayIcon(){
        switch($this->Icon){
            case "Box White":
                return "images/icons/suite/box-white.svg";                                                               
            case "Building White":
                return "images/icons/suite/building-white.svg";
            case "Card White":
                return "images/icons/suite/card-white.svg";
            case "Flag White":
                return "images/icons/suite/flag-white.svg";
            case "Globe White":
                return "images/icons/suite/globe-white.svg";
            case "Mail White":
                return "images/icons/suite/mail-white.svg";
            case "Phone White":
                return "images/icons/suite/phone-white.svg";
            case "Quote White":
                return "images/icons/suite/quote-white.svg";
            case "Repair White":
                return "images/icons/suite/repair-white.svg";
            case "Return White":
                return "images/icons/suite/return-white.svg";
            case "Tick White":
                return "images/icons/suite/tick-white.svg";                                                                                                                                                                                                                          
        }
    }

    private static $default_sort = "Sort";
    
    private static $has_one = array(
        "BlockWidgetServiceDetail" => BlockWidgetServiceDetail::class,
        "Image"         => Image::class,
    );
    
    private static $owns = [
        'Image'
    ];

    public function getCMSFields(){

        $fields = parent::getCMSFields();
        $fields->removeByName("Sort");
        $fields->removeByName("BlockWidgetServiceDetailID");
        $fields->addFieldToTab("Root.Main", new TextField("Title", "Title"));
        $fields->addFieldToTab('Root.Main', new DropdownField(
              'Icon',
              'Icon',
              singleton('BlockWidgetServiceDetailItem')->dbObject('Icon')->enumValues()
        ));        
        $fields->addFieldToTab("Root.Main", new UploadField("Image", "Image"));
        $fields->addFieldToTab("Root.Main", new HTMLEditorField("Content", "Content"));
        return $fields;
    }

    public function Output()
        {
    //      Requirements::css("themes/" . Config::inst()->get('SSViewer', 'theme') . "/css/.css");
    //      Requirements::javascript("themes/" . Config::inst()->get('SSViewer', 'theme') . "/javascript/.js");
            return parent::Output();
        }

}
