diff --git a/administrator/components/com_workflow/View/Stages/HtmlView.php b/administrator/components/com_workflow/View/Stages/HtmlView.php index ecec43122ce99..8c074ac292ff0 100644 --- a/administrator/components/com_workflow/View/Stages/HtmlView.php +++ b/administrator/components/com_workflow/View/Stages/HtmlView.php @@ -14,6 +14,7 @@ use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; +use Joomla\CMS\Toolbar\Toolbar; use Joomla\CMS\Toolbar\ToolbarHelper; use Joomla\CMS\Workflow\Workflow; use Joomla\Component\Workflow\Administrator\Helper\WorkflowHelper; @@ -155,6 +156,8 @@ protected function addToolbar() { $canDo = ContentHelper::getActions($this->extension, 'workflow', $this->workflowID); + $toolbar = Toolbar::getInstance('toolbar'); + $workflow = !empty($this->state->get('active_workflow', '')) ? Text::_($this->state->get('active_workflow', '')) . ': ' : ''; ToolbarHelper::title(Text::sprintf('COM_WORKFLOW_STAGES_LIST', $this->escape($workflow)), 'address contact'); @@ -166,37 +169,50 @@ protected function addToolbar() 'JTOOLBAR_BACK', $arrow ); - if ($canDo->get('core.create') && !$isCore) - { - ToolbarHelper::addNew('stage.add'); - } - - if ($canDo->get('core.edit.state')) + if (!$isCore) { - if (!$isCore) + if ($canDo->get('core.create')) { - ToolbarHelper::publishList('stages.publish'); - ToolbarHelper::unpublishList('stages.unpublish'); + $toolbar->addNew('stage.add'); } - ToolbarHelper::makeDefault('stages.setDefault', 'COM_WORKFLOW_TOOLBAR_DEFAULT'); - } - - if ($canDo->get('core.admin')) - { - ToolbarHelper::checkin('stages.checkin', 'JTOOLBAR_CHECKIN', true); - } + if ($canDo->get('core.edit.state') || $user->authorise('core.admin')) + { + $dropdown = $toolbar->dropdownButton('status-group') + ->text('JTOOLBAR_CHANGE_STATUS') + ->toggleSplit(false) + ->icon('fa fa-globe') + ->buttonClass('btn btn-info') + ->listCheck(true); + + $childBar = $dropdown->getChildToolbar(); + + $childBar->publish('stages.publish')->listCheck(true); + $childBar->unpublish('stages.unpublish')->listCheck(true); + $childBar->makeDefault('stages.setDefault', 'COM_WORKFLOW_TOOLBAR_DEFAULT'); + + if ($canDo->get('core.admin')) + { + // @ToDo Imlement the checked_out for workflows + // $childBar->checkin('stages.checkin', 'JTOOLBAR_CHECKIN', true); + } + + if ($this->state->get('filter.published') !== '-2') + { + $childBar->trash('stages.trash'); + } + } - if ($this->state->get('filter.published') === '-2' && $canDo->get('core.delete') && !$isCore) - { - ToolbarHelper::deleteList(Text::_('COM_WORKFLOW_ARE_YOU_SURE'), 'stages.delete'); - } - elseif ($canDo->get('core.edit.state') && !$isCore) - { - ToolbarHelper::trash('stages.trash'); + if ($this->state->get('filter.published') === '-2' && $canDo->get('core.delete') && !$isCore) + { + $toolbar->delete('stages.delete') + ->text('JTOOLBAR_EMPTY_TRASH') + ->message('JGLOBAL_CONFIRM_DELETE') + ->listCheck(true); + } } - ToolbarHelper::help('JHELP_WORKFLOW_STAGES_LIST'); + $toolbar->help('JHELP_WORKFLOW_STAGES_LIST'); } /** diff --git a/administrator/components/com_workflow/View/Transitions/HtmlView.php b/administrator/components/com_workflow/View/Transitions/HtmlView.php index 2e738fd05693d..0451b57dd5261 100644 --- a/administrator/components/com_workflow/View/Transitions/HtmlView.php +++ b/administrator/components/com_workflow/View/Transitions/HtmlView.php @@ -14,6 +14,7 @@ use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; +use Joomla\CMS\Toolbar\Toolbar; use Joomla\CMS\Toolbar\ToolbarHelper; use Joomla\Component\Workflow\Administrator\Helper\WorkflowHelper; @@ -143,6 +144,8 @@ protected function addToolbar() { $canDo = ContentHelper::getActions($this->extension, 'workflow', $this->workflowID); + $toolbar = Toolbar::getInstance('toolbar'); + $workflow = !empty($this->state->get('active_workflow', '')) ? Text::_($this->state->get('active_workflow', '')) . ': ' : ''; ToolbarHelper::title(Text::sprintf('COM_WORKFLOW_TRANSITIONS_LIST', $this->escape($workflow)), 'address contact'); @@ -154,26 +157,49 @@ protected function addToolbar() 'JTOOLBAR_BACK', $arrow ); - if ($canDo->get('core.create') && !$isCore) - { - ToolbarHelper::addNew('transition.add'); - } - - if ($canDo->get('core.edit.state') && !$isCore) - { - ToolbarHelper::publishList('transitions.publish'); - ToolbarHelper::unpublishList('transitions.unpublish'); - } - if ($this->state->get('filter.published') === '-2' && $canDo->get('core.delete') && !$isCore) - { - ToolbarHelper::deleteList(Text::_('COM_WORKFLOW_ARE_YOU_SURE'), 'transitions.delete'); - } - elseif ($canDo->get('core.edit.state') && !$isCore) + if (!$isCore) { - ToolbarHelper::trash('transitions.trash'); + if ($canDo->get('core.create')) + { + $toolbar->addNew('transition.add'); + } + + if ($canDo->get('core.edit.state') || $user->authorise('core.admin')) + { + $dropdown = $toolbar->dropdownButton('status-group') + ->text('JTOOLBAR_CHANGE_STATUS') + ->toggleSplit(false) + ->icon('fa fa-globe') + ->buttonClass('btn btn-info') + ->listCheck(true); + + $childBar = $dropdown->getChildToolbar(); + + $childBar->publish('transitions.publish'); + $childBar->unpublish('transitions.unpublish'); + + if ($canDo->get('core.admin')) + { + // @ToDo Imlement the checked_out for workflows + // $childBar->checkin('transitions.checkin', 'JTOOLBAR_CHECKIN', true); + } + + if ($this->state->get('filter.published') !== '-2') + { + $childBar->trash('transitions.trash'); + } + } + + if ($this->state->get('filter.published') === '-2' && $canDo->get('core.delete')) + { + $toolbar->delete('transitions.delete') + ->text('JTOOLBAR_EMPTY_TRASH') + ->message('JGLOBAL_CONFIRM_DELETE') + ->listCheck(true); + } } - ToolbarHelper::help('JHELP_WORKFLOW_TRANSITIONS_LIST'); + $toolbar->help('JHELP_WORKFLOW_TRANSITIONS_LIST'); } }