travi/php-framework

View on GitHub
php/framework/src/travi/framework/collection/EntityBlock.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace travi\framework\collection;

use travi\framework\view\objects\LinkView;

class EntityBlock
{
    public $id;
    public $selfLink;

    private $title;
    private $type;
    private $preConf;
    private $summary;

    private $details         = array();
    private $extraActionRows = array();

    private $actions = array(
        'primary' => array()
    );

    public function __construct($id, $urlPrefix)
    {
        $this->id        = $id;
        $this->urlPrefix = $urlPrefix;
        $this->selfLink  = $urlPrefix . $id;

        $this->addPrimaryAction('Edit');
    }

    public function addRemoveAction()
    {
        $this->addPrimaryAction('Remove');
    }

    public function getPrimaryActions()
    {
        return $this->actions['primary'];
    }

    public function setTitle($title)
    {
        $this->title = $title;
    }
    public function getTitle()
    {
        return $this->title;
    }
    public function setId($id)
    {
        $this->id = $id;
    }
    public function getId()
    {
        return $this->id;
    }
    public function prependRemoveConfirmation($text)
    {
        $this->preConf = $text;
    }
    public function getPrependedRemovalConfirmation()
    {
        return $this->preConf;
    }
    public function setType($type)
    {
        $this->type = $type;
    }

    public function getType()
    {
        return $this->type;
    }

    /**
     * @deprecated
     * @param $detail
     */
    public function addDetail($detail)
    {
        array_push($this->details, $detail);
    }
    /**
     * @deprecated
     * @return array
     */
    public function getDetails()
    {
        return $this->details;
    }
    public function addActionRow($actions=array())
    {
        array_push($this->extraActionRows, $actions);
    }

    public function getExtraActionRows()
    {
        return $this->extraActionRows;
    }

    /**
     * @return mixed
     */
    public function getSummary()
    {
        return $this->summary;
    }

    /**
     * @param mixed $summary
     */
    public function setSummary($summary)
    {
        $this->summary = $summary;
    }

    /**
     * @param $actionName
     */
    private function addPrimaryAction($actionName)
    {
        $lowerCaseName = strtolower($actionName);

        $this->actions['primary'][$lowerCaseName] = new LinkView(
            $actionName,
            $this->urlPrefix . $this->id . '/' . $lowerCaseName
        );
    }
}