* @link https://TableTopElite.com */ namespace TheTempusProject\Controllers\Admin; use TheTempusProject\Houdini\Classes\Issues; use TheTempusProject\Houdini\Classes\Views; use TheTempusProject\Houdini\Classes\Components; use TheTempusProject\Bedrock\Functions\Input; use TheTempusProject\Bedrock\Functions\Check; use TheTempusProject\Classes\Forms; use TheTempusProject\Classes\AdminController; use TheTempusProject\Models\Traits as TraitsModel; use TheTempusProject\Houdini\Classes\Forms as HoudiniForms; class Traits extends AdminController { protected static $traits; public function __construct() { parent::__construct(); self::$title = 'Admin - D&D Traits'; self::$traits = new TraitsModel; } public function index( $data = null ) { Views::view( 'dnd.admin.traits.list', self::$traits->list() ); } public function view( $id = null ) { $data = self::$traits->findById( $id ); if ( $data == false ) { Issues::add( 'error', 'Trait not found.' ); return $this->index(); } Views::view( 'dnd.admin.traits.view', $data ); } public function create( $data = null ) { Components::set( 'privacyDropdown', Views::simpleView('dnd.forms.privacyDropdown') ); Components::set( 'versionDropdown', Views::simpleView('dnd.forms.versionDropdown') ); $sourcebookSelect = HoudiniForms::getFormFieldHtml( 'sourcebookID', 'SourceBook', 'select', 'none', self::$sourcebooks->simpleList() ); Components::set( 'sourcebookSelect', $sourcebookSelect ); if ( !Input::exists( 'submit' ) ) { Views::view( 'dnd.admin.traits.create' ); } if ( !Forms::check( 'createTrait' ) ) { Issues::add( 'error', [ 'There was an error with your request.' => Check::userErrors() ] ); return Views::view( 'dnd.admin.traits.create' ); } if ( self::$traits->create( Input::post( 'name' )) ) { Issues::add( 'success', 'Trait created' ); return $this->index(); } else { Issues::add( 'error', 'There was an error creating your trait.' ); return Views::view( 'dnd.admin.traits.create' ); } } public function edit( $id = null ) { $data = self::$traits->findById( $id ); if ( false == $data ) { return $this->index(); } Components::set( 'privacyDropdown', Views::simpleView('dnd.forms.privacyDropdown', $data) ); Components::set( 'versionDropdown', Views::simpleView('dnd.forms.versionDropdown', $data) ); $sourcebookSelect = HoudiniForms::getFormFieldHtml( 'sourcebookID', 'SourceBook', 'select', $data->sourcebookID, self::$sourcebooks->simpleList() ); Components::set( 'sourcebookSelect', $sourcebookSelect ); if ( !Input::exists( 'submit' ) ) { return Views::view( 'dnd.admin.traits.edit', $data ); } if ( !Forms::check( 'editTrait' ) ) { Issues::add( 'error', [ 'There was an error with your request.' => Check::userErrors() ] ); return Views::view( 'dnd.admin.traits.edit', $data ); } if ( self::$traits->update( $id, Input::post( 'title' ), Input::post( 'suggestion' ), Input::post( 'approved' ) ) ) { Issues::add( 'success', 'Trait updated' ); } else { return Views::view( 'dnd.admin.traits.edit', $data ); } } public function delete( $data = null ) { if ( Input::exists( 'submit' ) ) { $data = Input::post( 'TR_' ); } if ( !self::$traits->delete( $data ) ) { Issues::add( 'error', 'There was an error with your request.' ); } else { Issues::add( 'success', 'Trait has been deleted' ); } $this->index(); } }