Skip to content

Commit 01ad82c

Browse files
committed
Update the config with the last version. Show alert for draft
1 parent b950af3 commit 01ad82c

3 files changed

Lines changed: 39 additions & 3 deletions

File tree

‎ProcessMaker/Http/Controllers/Api/ScreenController.php‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,9 +272,11 @@ public function store(Request $request)
272272
*/
273273
public function update(Screen $screen, Request $request)
274274
{
275+
$lastVersion = $screen->getDraftOrPublishedLatestVersion();
275276
$request->validate(Screen::rules($screen));
276277
$screen->fill($request->input());
277278
$original = $screen->getOriginal();
279+
$screen->config = $lastVersion->config;
278280
$screen->saveOrFail();
279281
$screen->syncProjectAsset($request, Screen::class);
280282

‎ProcessMaker/Http/Controllers/Process/ScreenController.php‎

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,21 @@ public function edit(Screen $screen)
8383
{
8484
$addons = $this->getPluginAddons('edit', compact(['screen']));
8585
$assignedProjects = json_decode($screen->projects, true);
86+
87+
$lastDraftOrPublishedVersion = $screen->getDraftOrPublishedLatestVersion();
8688

87-
return view('processes.screens.edit', compact('screen', 'addons', 'assignedProjects'));
89+
$isDraft = 0;
90+
if ($lastDraftOrPublishedVersion) {
91+
$isDraft = $lastDraftOrPublishedVersion->draft;
92+
}
93+
94+
return view('processes.screens.edit', compact(
95+
'screen',
96+
'addons',
97+
'assignedProjects',
98+
'isDraft'
99+
)
100+
);
88101
}
89102

90103
/**

‎resources/views/processes/screens/edit.blade.php‎

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,14 @@
6464
</project-select>
6565
<br>
6666
<div class="text-right">
67-
{!! Form::button(__('Cancel'), ['class'=>'btn btn-outline-secondary', '@click' => 'onClose']) !!}
68-
{!! Form::button(__('Save'), ['class'=>'btn btn-secondary ml-2', '@click' => 'onUpdate']) !!}
67+
{!! Form::button(__('Cancel'), [
68+
'class'=>'btn btn-outline-secondary',
69+
'@click' => 'onClose'
70+
]) !!}
71+
{!! Form::button(__('Save and publish'), [
72+
'class'=>'btn btn-secondary ml-2',
73+
'@click' => 'onUpdate'
74+
]) !!}
6975
</div>
7076
</div>
7177
@isset($addons)
@@ -92,6 +98,7 @@
9298
return {
9399
formData: @json($screen),
94100
assignedProjects: @json($assignedProjects),
101+
isDraft: @json($isDraft),
95102
selectedProjects: '',
96103
errors: {
97104
'title': null,
@@ -123,6 +130,20 @@
123130
window.location.href = projectId ? `/designer/projects/${projectId}`: '/designer/screens';
124131
},
125132
onUpdate() {
133+
if (this.isDraft) {
134+
ProcessMaker.confirmModal(
135+
this.$t("Caution!"),
136+
this.$t("You are about to publish a draft version. Are you sure you want to proceed?"),
137+
"",
138+
() => {
139+
this.handleUpdate();
140+
}
141+
);
142+
} else {
143+
this.handleUpdate();
144+
}
145+
},
146+
handleUpdate() {
126147
this.resetErrors();
127148
ProcessMaker.apiClient.put('screens/' + this.formData.id, this.formData)
128149
.then(response => {

0 commit comments

Comments
 (0)