builder = $builder;
}
/**
* Disable reset button.
*
* @param bool $disable
*
* @return $this
*/
public function disableReset(bool $disable = true)
{
if ($disable) {
array_delete($this->buttons, 'reset');
} elseif (! in_array('reset', $this->buttons)) {
array_push($this->buttons, 'reset');
}
return $this;
}
/**
* Disable submit button.
*
* @param bool $disable
*
* @return $this
*/
public function disableSubmit(bool $disable = true)
{
if ($disable) {
array_delete($this->buttons, 'submit');
} elseif (! in_array('submit', $this->buttons)) {
array_push($this->buttons, 'submit');
}
return $this;
}
/**
* Disable View Checkbox.
*
* @param bool $disable
*
* @return $this
*/
public function disableViewCheck(bool $disable = true)
{
if ($disable) {
array_delete($this->checkboxes, 'view');
} elseif (! in_array('view', $this->checkboxes)) {
array_push($this->checkboxes, 'view');
}
return $this;
}
/**
* Disable Editing Checkbox.
*
* @param bool $disable
*
* @return $this
*/
public function disableEditingCheck(bool $disable = true)
{
if ($disable) {
array_delete($this->checkboxes, 'continue_editing');
} elseif (! in_array('continue_editing', $this->checkboxes)) {
array_push($this->checkboxes, 'continue_editing');
}
return $this;
}
/**
* Disable Creating Checkbox.
*
* @param bool $disable
*
* @return $this
*/
public function disableCreatingCheck(bool $disable = true)
{
if ($disable) {
array_delete($this->checkboxes, 'continue_creating');
} elseif (! in_array('continue_creating', $this->checkboxes)) {
array_push($this->checkboxes, 'continue_creating');
}
return $this;
}
/**
* Build checkboxes.
*
* @return Checkbox|null
*/
protected function buildCheckboxes()
{
if ($this->builder->isEditing()) {
$this->disableCreatingCheck();
}
$options = [];
if (in_array('continue_editing', $this->checkboxes)) {
$options[1] = sprintf('%s', trans('admin.continue_editing'));
}
if (in_array('continue_creating', $this->checkboxes)) {
$options[2] = sprintf('%s', trans('admin.continue_creating'));
}
if (in_array('view', $this->checkboxes)) {
$options[3] = sprintf('%s', trans('admin.view'));
}
if (! $options) {
return;
}
return (new Checkbox('after-save', $options))->inline()->circle(true);
}
/**
* Render footer.
*
* @return string
*/
public function render()
{
$data = [
'buttons' => $this->buttons,
'checkboxes' => $this->buildCheckboxes(),
'width' => $this->builder->getWidth(),
];
return view($this->view, $data)->render();
}
}