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(); } }