Skip to content

Commit d8b3d26

Browse files
authored
Merge pull request joomla#15 from joomla-projects/gsoc-workflow-experiment
Gsoc workflow experiment
2 parents b63d859 + 2897829 commit d8b3d26

File tree

20 files changed

+525
-281
lines changed

20 files changed

+525
-281
lines changed

administrator/components/com_workflow/layouts/toolbar/redo.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,19 @@
1313
use Joomla\CMS\Factory;
1414
use Joomla\CMS\Language\Text;
1515

16-
Factory::getDocument()->getWebAssetManager()
16+
Factory::getApplication()->getDocument()->getWebAssetManager()
1717
->useScript('webcomponent.toolbar-button');
1818

1919
?>
2020
<joomla-toolbar-button>
21-
<button class="btn btn-info action-button" onclick="WorkflowGraph.Event.fire('onClickRedoWorkflow');" tabindex="0">
21+
<button id="redo-workflow" class="btn btn-info action-button" tabindex="0">
2222
<span class="icon-redo icon-fw" aria-hidden="true"></span>
2323
<?php echo Text::_('COM_WORKFLOW_REDO'); ?>
2424
</button>
2525
</joomla-toolbar-button>
26+
27+
<script>
28+
document.getElementById('redo-workflow')?.addEventListener('click', () => {
29+
WorkflowGraph.Event.fire('onClickRedoWorkflow');
30+
});
31+
</script>

administrator/components/com_workflow/layouts/toolbar/shortcuts.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
use Joomla\CMS\Factory;
1414
use Joomla\CMS\Language\Text;
1515

16-
Factory::getDocument()->getWebAssetManager()
16+
Factory::getApplication()->getDocument()->getWebAssetManager()
1717
->useScript('webcomponent.toolbar-button');
1818

1919
$shortcutsPopupOptions = json_encode([

administrator/components/com_workflow/layouts/toolbar/undo.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,21 @@
1313
use Joomla\CMS\Factory;
1414
use Joomla\CMS\Language\Text;
1515

16-
Factory::getDocument()->getWebAssetManager()
16+
Factory::getApplication()->getDocument()->getWebAssetManager()
1717
->useScript('webcomponent.toolbar-button');
1818

1919
?>
2020
<joomla-toolbar-button>
21-
<button class="btn btn-info action-button" onclick="WorkflowGraph.Event.fire('onClickUndoWorkflow');" tabindex="0">
21+
<button id="undo-workflow" class="btn btn-info action-button" tabindex="0">
2222
<span class="icon-undo-2 icon-fw" aria-hidden="true"></span>
2323
<?php echo Text::_('COM_WORKFLOW_UNDO'); ?>
2424
</button>
2525
</joomla-toolbar-button>
26+
27+
28+
<script>
29+
document.getElementById('undo-workflow')?.addEventListener('click', () => {
30+
WorkflowGraph.Event.fire('onClickUndoWorkflow');
31+
});
32+
</script>
33+

administrator/components/com_workflow/resources/scripts/components/App.vue

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
<template>
22
<div
33
id="workflow-app"
4-
class="workflow-app-container d-flex flex-column flex-grow-1 min-vh-80"
5-
role="application"
6-
aria-label="appTitle"
4+
class="d-flex flex-column flex-grow-1 min-vh-80"
75
>
86
<div
7+
id="workflow-title"
98
class="d-flex flex-column flex-shrink-0"
10-
role="banner"
119
>
1210
<WorkflowTitlebar
1311
:save-status="saveStatus"
@@ -17,8 +15,6 @@
1715
<div
1816
id="main-canvas"
1917
class="flex-grow-1 position-relative"
20-
role="main"
21-
aria-labelledby="workflow-heading"
2218
>
2319
<WorkflowCanvas
2420
ref="canvas"
@@ -51,10 +47,10 @@ function handleCanvasFocus() {
5147
onMounted(() => {
5248
const { workflowId: idFromOpts = null } = Joomla.getOptions('com_workflow', {});
5349
const idFromURL = parseInt(new URL(window.location.href).searchParams.get('id'), 10);
54-
const workflowIdFinal = idFromOpts || idFromURL;
50+
const currentWorkflowId = idFromOpts || idFromURL;
5551
56-
if (workflowIdFinal !== null && !Number.isNaN(workflowIdFinal)) {
57-
store.dispatch('loadWorkflow', workflowIdFinal);
52+
if (currentWorkflowId !== null && !Number.isNaN(currentWorkflowId)) {
53+
store.dispatch('loadWorkflow', currentWorkflowId);
5854
} else {
5955
throw new Error('COM_WORKFLOW_GRAPH_ERROR_INVALID_ID');
6056
}

administrator/components/com_workflow/resources/scripts/components/Titlebar.vue

Lines changed: 30 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,51 @@
11
<template>
22
<section
3-
class="workflow-graph-titlebar d-flex flex-wrap align-items-center justify-content-between"
3+
class="d-flex flex-wrap align-items-center justify-content-between"
44
aria-labelledby="workflow-title"
5-
role="region"
65
>
76
<div class="col-md-6 d-flex flex-column">
8-
<h2
9-
id="workflow-title"
10-
class="mb-2"
11-
>
7+
<h2 class="mb-2">
128
{{ translate(workflow?.title) }}
139
</h2>
1410
<dl
1511
class="d-flex align-items-center flex-wrap mb-0"
1612
aria-label="workflow details"
1713
>
18-
<div class="me-3 mb-1 d-flex align-items-center">
19-
<dt class="visually-hidden">
20-
{{ translate('COM_WORKFLOW_GRAPH_STATUS') }}
21-
</dt>
22-
<dd>
23-
<span
24-
class="badge"
25-
:class="workflow.published ? 'bg-success text-white' : 'bg-warning text-dark'"
26-
role="status"
27-
>
28-
{{ workflow.published ? translate('COM_WORKFLOW_GRAPH_ENABLED') : translate('COM_WORKFLOW_GRAPH_DISABLED') }}
29-
</span>
30-
</dd>
31-
</div>
32-
<div class="me-3 mb-1 d-flex align-items-center">
33-
<dt class="visually-hidden">
34-
{{ translate('COM_WORKFLOW_GRAPH_STAGE_COUNT') }}
35-
</dt>
36-
<dd>
37-
{{ stagesCount }} {{ stagesCount === 1 ? translate('COM_WORKFLOW_GRAPH_STAGE') : translate('COM_WORKFLOW_GRAPH_STAGES') }}
38-
</dd>
39-
</div>
40-
<div class="me-3 mb-1 d-flex align-items-center">
41-
<dt class="visually-hidden">
42-
{{ translate('COM_WORKFLOW_GRAPH_TRANSITION_COUNT') }}
43-
</dt>
44-
<dd>
45-
{{ transitionsCount }} {{ transitionsCount === 1 ? translate('COM_WORKFLOW_GRAPH_TRANSITION') :
46-
translate('COM_WORKFLOW_GRAPH_TRANSITIONS') }}
47-
</dd>
48-
</div>
14+
<dt class="visually-hidden">
15+
{{ sprintf('COM_WORKFLOW_GRAPH_STATUS', workflow.published ? 'COM_WORKFLOW_GRAPH_ENABLED' : 'COM_WORKFLOW_GRAPH_DISABLED') }}
16+
</dt>
17+
<dd class="me-3 mb-1 d-flex">
18+
<span
19+
class="badge"
20+
:class="workflow.published ? 'bg-success' : 'bg-warning'"
21+
role="status"
22+
>
23+
{{ workflow.published ? translate('COM_WORKFLOW_GRAPH_ENABLED') : translate('COM_WORKFLOW_GRAPH_DISABLED') }}
24+
</span>
25+
</dd>
26+
27+
<dt class="visually-hidden">
28+
{{ sprintf('COM_WORKFLOW_GRAPH_STAGE_COUNT', stagesCount) }}
29+
</dt>
30+
<dd class="me-3 mb-1 d-flex">
31+
{{ stagesCount }} {{ stagesCount === 1 ? translate('COM_WORKFLOW_GRAPH_STAGE') : translate('COM_WORKFLOW_GRAPH_STAGES') }}
32+
</dd>
33+
34+
<dt class="visually-hidden">
35+
{{ sprintf('COM_WORKFLOW_GRAPH_TRANSITION_COUNT', transitionsCount) }}
36+
</dt>
37+
<dd class="me-3 mb-1 d-flex">
38+
{{ transitionsCount }} {{ transitionsCount === 1 ? translate('COM_WORKFLOW_GRAPH_TRANSITION')
39+
: translate('COM_WORKFLOW_GRAPH_TRANSITIONS') }}
40+
</dd>
4941
</dl>
5042
</div>
5143
<div
5244
id="save-message"
45+
class="mb-2 fw-bold"
5346
:class="{
5447
'text-warning': saveStatus.value === 'unsaved',
55-
'text-muted': saveStatus.value !== 'unsaved'
5648
}"
57-
class="mb-2 text-primary fw-bold"
5849
>
5950
{{
6051
saveStatus.value === 'unsaved'

administrator/components/com_workflow/resources/scripts/components/canvas/ControlsPanel.vue

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -29,21 +29,6 @@
2929
/>
3030
{{ translate('COM_WORKFLOW_GRAPH_ADD_TRANSITION') }}
3131
</button>
32-
33-
<!--<button
34-
:class="['btn toolbar-button', isTransitionMode ? 'btn-success' : 'btn-primary', 'd-flex', 'align-items-center', 'gap-1']"
35-
tabindex="0"
36-
:aria-pressed="isTransitionMode"
37-
:aria-label="isTransitionMode ? translate('COM_WORKFLOW_GRAPH_EXIT_TRANSITION_MODE')
38-
: translate('COM_WORKFLOW_GRAPH_ENTER_TRANSITION_MODE')"
39-
@click="$emit('toggle-transition-mode')"
40-
>
41-
<span
42-
:class="isTransitionMode ? 'icon icon-toggle-on' : 'icon icon-toggle-off'"
43-
aria-hidden="true"
44-
/>
45-
{{ isTransitionMode ? translate('COM_WORKFLOW_GRAPH_EXIT_TRANSITION_MODE') : translate('COM_WORKFLOW_GRAPH_ENTER_TRANSITION_MODE') }}
46-
</button> -->
4732
</Panel>
4833
</template>
4934

@@ -53,12 +38,6 @@ import { Panel } from '@vue-flow/core';
5338
export default {
5439
name: 'ControlsPanel',
5540
components: { Panel },
56-
props: {
57-
isTransitionMode: {
58-
type: Boolean,
59-
default: false,
60-
},
61-
},
62-
emits: ['add-stage', 'add-transition', 'toggle-transition-mode'],
41+
emits: ['add-stage', 'add-transition'],
6342
};
6443
</script>

administrator/components/com_workflow/resources/scripts/components/canvas/CustomControls.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<template>
22
<div
33
ref="controlsContainer"
4-
class="custom-controls"
4+
class="custom-controls z-10"
55
tabindex="0"
66
>
77
<button

0 commit comments

Comments
 (0)