Skip to content

Commit 72422df

Browse files
committed
added workflowgraphbtn field
1 parent 0742756 commit 72422df

File tree

8 files changed

+57
-52
lines changed

8 files changed

+57
-52
lines changed

administrator/components/com_content/forms/article.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,14 @@
260260
validate="rules"
261261
/>
262262

263+
<field
264+
name="workflowgraphbtn"
265+
type="transition"
266+
workflow_stage="0"
267+
extension="com_content"
268+
layout="joomla.form.field.workflow.graphbtn"
269+
/>
270+
263271
</fieldset>
264272

265273
<fields name="attribs" label="COM_CONTENT_ATTRIBS_FIELDSET_LABEL">

administrator/components/com_content/tmpl/article/edit.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,3 @@
182182
<?php echo $this->form->renderControlFields(); ?>
183183
</div>
184184
</form>
185-
<?php echo LayoutHelper::render('joomla.workflow.graphmodal', [
186-
'workflow_id' => isset($this->item->workflow_id) ? $this->item->workflow_id : null,
187-
]);
188-
?>

components/com_content/forms/article.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,15 @@
211211
validate="captcha"
212212
namespace="article"
213213
/>
214+
215+
<field
216+
name="workflowgraphbtn"
217+
type="transition"
218+
workflow_stage="0"
219+
extension="com_content"
220+
layout="joomla.form.field.workflow.graphbtn"
221+
/>
222+
214223
</fieldset>
215224
<fields name="images">
216225
<fieldset name="image-intro">

components/com_content/tmpl/form/edit.php

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@
105105
<div class="w-100">
106106
<?php echo $this->form->renderField('transition'); ?>
107107
</div>
108-
<?php echo LayoutHelper::render('joomla.workflow.workflowgraphbtn'); ?>
108+
<?php echo $this->form->renderField('workflowgraphbtn'); ?>
109109
</div>
110110
<?php echo $this->form->renderField('state'); ?>
111111
<?php echo $this->form->renderField('catid'); ?>
@@ -182,7 +182,3 @@
182182
</div>
183183
</form>
184184
</div>
185-
<?php echo LayoutHelper::render('joomla.workflow.graphmodal', [
186-
'workflow_id' => isset($this->item->workflow_id) ? $this->item->workflow_id : null,
187-
]);
188-
?>

layouts/joomla/edit/article_options.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
use Joomla\CMS\Factory;
1515
use Joomla\CMS\Language\Multilanguage;
1616
use Joomla\CMS\Language\Text;
17-
use Joomla\CMS\Layout\LayoutHelper;
1817

1918
$app = Factory::getApplication();
2019
$wa = Factory::getDocument()->getWebAssetManager();
@@ -71,10 +70,13 @@
7170

7271
// Special handling for transition field
7372
if ($f === 'transition') {
74-
$html[] = '<div style="display:flex;align-items:center;gap:8px;"><div class="w-100">';
73+
$html[] = '<div class="d-flex align-items-center gap-3">';
74+
$html[] = '<div class="flex-grow-1">';
7575
$html[] = $form->renderField($f);
7676
$html[] = '</div>';
77-
$html[] = LayoutHelper::render('joomla.workflow.workflowgraphbtn');
77+
$html[] = '<div class="flex-shrink-0 w-15">';
78+
$html[] = $form->renderField('workflowgraphbtn');
79+
$html[] = '</div>';
7880
$html[] = '</div>';
7981
} else {
8082
$html[] = $form->renderField($f);

layouts/joomla/workflow/graphmodal.php renamed to layouts/joomla/form/field/workflow/graphbtn.php

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,41 @@
99
*/
1010

1111
defined('_JEXEC') or die;
12-
use Joomla\CMS\Factory;
1312

14-
$app = Factory::getApplication();
15-
$wa = $app->getDocument()->getWebAssetManager();
13+
use Joomla\CMS\Factory;
14+
use Joomla\CMS\Language\Text;
1615

16+
$wa = Factory::getApplication()->getDocument()->getWebAssetManager();
1717
$wa->getRegistry()->addExtensionRegistryFile('com_workflow');
18+
19+
$wa->useScript('joomla.dialog-autocreate');
1820
$wa->useStyle('com_workflow.workflowgraphclient');
19-
$script = $wa->getAsset('script', name: 'com_workflow.workflowgraphclient')->getUri(true);
2021

21-
$workflowId = $displayData['workflow_id'];
22+
$script = $wa->getAsset('script', name: 'com_workflow.workflowgraphclient')->getUri(true);
23+
$field = $displayData['field'] ?? null;
24+
$workflowId = $field ? $field->getAttribute('workflow_id') : null;
25+
$ishidden = $field && $field->getAttribute('type') === 'hidden';
26+
if ($ishidden || !$workflowId) {
27+
return;
28+
}
29+
$popupId = 'workflow-graph-modal-content';
30+
$popupOptions = json_encode([
31+
'src' => '#' . $popupId,
32+
'height' => 'fit-content',
33+
'textHeader' => Text::_('COM_WORKFLOW_GRAPH'),
34+
'preferredParent' => 'body',
35+
'modal' => true,
36+
]);
37+
2238
?>
39+
<div class="align-center text-center btns" style="width: max-content;">
40+
<button type="button" class="btn btn-primary px-3 py-2" data-joomla-dialog="<?php echo htmlspecialchars($popupOptions, ENT_QUOTES, 'UTF-8'); ?>">
41+
<span class="fa fa-diagram-project" aria-hidden="true"></span>
42+
</button>
43+
<div role="tooltip" id="tip-graph">
44+
<?php echo Text::_('COM_WORKFLOW_GRAPH'); ?>
45+
</div>
46+
</div>
2347
<template id="workflow-graph-modal-content">
2448

2549
<div class="p-3">

layouts/joomla/workflow/workflowgraphbtn.php

Lines changed: 0 additions & 35 deletions
This file was deleted.

libraries/src/MVC/Model/WorkflowBehaviorTrait.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,11 @@ protected function addTransitionField(Form $form, $data)
356356
if (!empty($assoc->stage_id)) {
357357
$form->setFieldAttribute('transition', 'workflow_stage', (int) $assoc->stage_id);
358358
}
359+
360+
if (!empty($assoc->workflow_id)) {
361+
$form->setFieldAttribute('workflowgraphbtn', 'workflow_id', (int) $assoc->workflow_id);
362+
$form->setFieldAttribute('workflowgraphbtn', 'type', $this->workflowEnabled ? 'transition' : 'hidden');
363+
}
359364
} else {
360365
$stage_id = $this->getStageForNewItem($form, $data);
361366

0 commit comments

Comments
 (0)