diff --git a/administrator/components/com_workflow/View/Workflows/HtmlView.php b/administrator/components/com_workflow/View/Workflows/HtmlView.php
index 669d93d96599..5a96a9a38e74 100644
--- a/administrator/components/com_workflow/View/Workflows/HtmlView.php
+++ b/administrator/components/com_workflow/View/Workflows/HtmlView.php
@@ -13,6 +13,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;
@@ -123,40 +124,57 @@ protected function addToolbar()
{
$canDo = ContentHelper::getActions($this->extension);
+ // Get the toolbar object instance
+ $toolbar = Toolbar::getInstance('toolbar');
+
ToolbarHelper::title(Text::_('COM_WORKFLOW_WORKFLOWS_LIST'), 'address contact');
if ($canDo->get('core.create'))
{
- ToolbarHelper::addNew('workflow.add');
+ $toolbar->addNew('workflow.add');
}
- if ($canDo->get('core.edit.state'))
- {
- ToolbarHelper::publishList('workflows.publish');
- ToolbarHelper::unpublishList('workflows.unpublish');
- ToolbarHelper::makeDefault('workflows.setDefault', 'COM_WORKFLOW_TOOLBAR_DEFAULT');
- }
-
- if ($canDo->get('core.admin'))
- {
- ToolbarHelper::checkin('workflows.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('workflows.publish');
+ $childBar->unpublish('workflows.unpublish');
+ $childBar->makeDefault('workflows.setDefault', 'COM_WORKFLOW_TOOLBAR_DEFAULT');
+
+ if ($canDo->get('core.admin'))
+ {
+ // @Todo implement the checked_out/checkin feature
+ // $childBar->checkin('workflows.checkin');
+ }
+
+ if ($canDo->get('core.edit.state') && $this->state->get('filter.published') != -2)
+ {
+ $childBar->trash('workflows.trash');
+ }
}
if ($this->state->get('filter.published') === '-2' && $canDo->get('core.delete'))
{
- ToolbarHelper::deleteList(Text::_('COM_WORKFLOW_ARE_YOU_SURE'), 'workflows.delete');
- }
- elseif ($canDo->get('core.edit.state'))
- {
- ToolbarHelper::trash('workflows.trash');
+ $toolbar->delete('workflows.delete')
+ ->text('JTOOLBAR_EMPTY_TRASH')
+ ->message('JGLOBAL_CONFIRM_DELETE')
+ ->listCheck(true);
}
if ($canDo->get('core.admin') || $canDo->get('core.options'))
{
- ToolbarHelper::preferences($this->extension);
+ $toolbar->preferences($this->extension);
}
- ToolbarHelper::help('JHELP_WORKFLOWS_LIST');
+ $toolbar->help('JHELP_WORKFLOWS_LIST');
}
/**
diff --git a/administrator/templates/atum/templateDetails.xml b/administrator/templates/atum/templateDetails.xml
index 5fdd4554e715..78020cf75a68 100644
--- a/administrator/templates/atum/templateDetails.xml
+++ b/administrator/templates/atum/templateDetails.xml
@@ -23,7 +23,6 @@
css
html
images
- img
js
language
scss
diff --git a/components/com_finder/Model/SearchModel.php b/components/com_finder/Model/SearchModel.php
index 0b46faf6a366..fae032ff96cf 100644
--- a/components/com_finder/Model/SearchModel.php
+++ b/components/com_finder/Model/SearchModel.php
@@ -171,13 +171,15 @@ protected function getListQuery()
{
// Convert the associative array to a numerically indexed array.
$groups = array_values($this->searchquery->filters);
+ $taxonomies = call_user_func_array('array_merge', array_values($this->searchquery->filters));
- // Iterate through each taxonomy group and add the join and where.
+ $query->join('INNER', $db->quoteName('#__finder_taxonomy_map') . ' AS t ON t.link_id = l.link_id')
+ ->where('t.node_id IN (' . implode(',', array_unique($taxonomies)) . ')');
+
+ // Iterate through each taxonomy group.
for ($i = 0, $c = count($groups); $i < $c; $i++)
{
- // We use the offset because each join needs a unique alias.
- $query->join('INNER', $db->quoteName('#__finder_taxonomy_map') . ' AS t' . $i . ' ON t' . $i . '.link_id = l.link_id')
- ->where('t' . $i . '.node_id IN (' . implode(',', $groups[$i]) . ')');
+ $query->having('SUM(t.node_id IN (' . implode(',', $groups[$i]) . ')) > 0');
}
}
@@ -283,6 +285,7 @@ protected function getListQuery()
// Since we need to return a query, we simplify this one.
$query->clear('join')
->clear('where')
+ ->clear('having')
->clear('group')
->where('false');
@@ -308,13 +311,16 @@ protected function getListQuery()
*/
if (count($this->requiredTerms))
{
- $i = 0;
-
foreach ($this->requiredTerms as $terms)
{
- $query->join('INNER', $this->_db->quoteName('#__finder_links_terms') . ' AS r' . $i . ' ON r' . $i . '.link_id = l.link_id')
- ->where('r' . $i . '.term_id IN (' . implode(',', $terms) . ')');
- $i++;
+ if (count($terms))
+ {
+ $query->having('SUM(m.term_id IN (' . implode(',', $terms) . ')) > 0');
+ }
+ else
+ {
+ $query->where('false');
+ }
}
}