Skip to content

Commit 792c3b1

Browse files
committed
Add flow for screen generation
1 parent fba3cb3 commit 792c3b1

5 files changed

Lines changed: 30 additions & 13 deletions

File tree

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class ScreenBuilderController extends Controller
1919
*
2020
* @return Factory|View
2121
*/
22-
public function edit(ScreenBuilderManager $manager, Screen $screen)
22+
public function edit(ScreenBuilderManager $manager, Screen $screen, $processId = null)
2323
{
2424
/**
2525
* Emit the ModelerStarting event, passing in our ModelerManager instance. This will
@@ -44,6 +44,7 @@ public function edit(ScreenBuilderManager $manager, Screen $screen)
4444
'autoSaveDelay' => config('versions.delay.process', 5000),
4545
'isVersionsInstalled' => PackageHelper::isPmPackageVersionsInstalled(),
4646
'isDraft' => $draft !== null,
47+
'processId' => $processId,
4748
]);
4849
}
4950
}

‎resources/js/processes/screen-builder/screen.vue‎

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
:screen-type="type"
2929
:screen="screen"
3030
:render-controls="displayBuilder"
31+
:process-id="processId"
3132
@change="updateConfig"
3233
>
3334
<data-loading-basic
@@ -373,6 +374,9 @@ export default {
373374
type: Boolean,
374375
default: false,
375376
},
377+
processId: {
378+
default: 0,
379+
},
376380
},
377381
data() {
378382
const defaultConfig = [
@@ -486,7 +490,7 @@ export default {
486490
variant: "secondary",
487491
icon: "fas fa-save",
488492
action: () => {
489-
ProcessMaker.EventBus.$emit("save-screen", false);
493+
ProcessMaker.EventBus.$emit("save-screen", false, this.processId);
490494
},
491495
},
492496
];
@@ -783,8 +787,8 @@ export default {
783787
that.previewInput = "{}";
784788
that.preview.custom_css = that.customCSS;
785789
ProcessMaker.EventBus.$emit("screen-builder-start", that);
786-
ProcessMaker.EventBus.$on("save-screen", (value, onSuccess, onError) => {
787-
that.saveScreen(value, onSuccess, onError);
790+
ProcessMaker.EventBus.$on("save-screen", (value, processId, onSuccess, onError) => {
791+
that.saveScreen(value, processId, onSuccess, onError);
788792
});
789793
ProcessMaker.EventBus.$on("screen-change", () => {
790794
this.handleAutosave();
@@ -1025,7 +1029,7 @@ export default {
10251029
window.location.reload();
10261030
});
10271031
},
1028-
saveScreen(exportScreen, onSuccess, onError) {
1032+
saveScreen(exportScreen, processId, onSuccess, onError) {
10291033
if (this.allErrors !== 0) {
10301034
ProcessMaker.alert(
10311035
this.$t("This screen has validation errors."),
@@ -1054,6 +1058,9 @@ export default {
10541058
if (typeof onSuccess === "function") {
10551059
onSuccess(response);
10561060
}
1061+
if (processId !== 0 && processId !== undefined) {
1062+
window.location = `/modeler/${this.processId}`;
1063+
}
10571064
})
10581065
.catch((err) => {
10591066
if (typeof onError === "function") {

‎resources/js/processes/screens/components/CreateScreenModal.vue‎

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -159,15 +159,22 @@ export default {
159159
.post("screens", this.formData)
160160
.then(({ data }) => {
161161
ProcessMaker.alert(this.$t("The screen was created."), "success");
162-
channel.postMessage({
163-
assetType: "screen",
164-
id: data.id,
165-
});
166-
window.location = `/designer/screen-builder/${data.id}/edit`;
162+
163+
const url = `/designer/screen-builder/${data.id}/edit`;
164+
165+
if (this.callFromAiModeler) {
166+
this.$emit("screen-created-from-modeler", url);
167+
} else {
168+
channel.postMessage({
169+
assetType: "screen",
170+
id: data.id,
171+
});
172+
window.location = url;
173+
}
167174
})
168175
.catch((error) => {
169176
this.disabled = false;
170-
if (error.response.status && error.response.status === 422) {
177+
if (error?.response?.status && error?.response?.status === 422) {
171178
this.errors = error.response.data.errors;
172179
}
173180
});

‎resources/views/processes/screen-builder/screen.blade.php‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323
:permission="{{ \Auth::user()->hasPermissionsFor('screens') }}"
2424
:auto-save-delay="{{ $autoSaveDelay }}"
2525
:is-versions-installed="@json($isVersionsInstalled)"
26-
:is-draft="@json($isDraft)">
26+
:is-draft="@json($isDraft)"
27+
:process-id="{{ $processId }}">
2728
</component>
2829
</div>
2930
@endsection

‎routes/web.php‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,12 @@
7171
Route::get('screens/import', [ScreenController::class, 'import'])->name('screens.import')->middleware('can:import-screens');
7272
Route::get('screens/{screen}/download/{key}', [ScreenController::class, 'download'])->name('screens.download')->middleware('can:export-screens');
7373
Route::get('screen-builder/{screen}/edit', [ScreenBuilderController::class, 'edit'])->name('screen-builder.edit')->middleware('can:edit-screens,screen');
74+
Route::get('screen-builder/{screen}/edit/{processId?}', [ScreenBuilderController::class, 'edit'])->name('screen-builder.edit')->middleware('can:edit-screens,screen');
7475

7576
Route::get('scripts', [ScriptController::class, 'index'])->name('scripts.index')->middleware('can:view-scripts');
7677
Route::get('scripts/{script}/edit', [ScriptController::class, 'edit'])->name('scripts.edit')->middleware('can:edit-scripts,script');
7778
Route::get('scripts/{script}/builder', [ScriptController::class, 'builder'])->name('scripts.builder')->middleware('can:edit-scripts,script');
78-
Route::get('scripts/{script}/builder/{processId}', [ScriptController::class, 'builder'])->name('scripts.builder')->middleware('can:edit-scripts,script');
79+
Route::get('scripts/{script}/builder/{processId?}', [ScriptController::class, 'builder'])->name('scripts.builder')->middleware('can:edit-scripts,script');
7980

8081
Route::get('signals', [SignalController::class, 'index'])->name('signals.index')->middleware('can:view-signals');
8182
Route::get('signals/{signalId}/edit', [SignalController::class, 'edit'])->name('signals.edit')->middleware('can:edit-signals');

0 commit comments

Comments
 (0)