Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion resources/js/components/Menu.vue
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,16 @@ export default {
return item.items.filter((button) => button.hide !== true);
},
isVisible(item, type) {
return item.type === type && item.hide !== true;
if (item.type === type && item.hide !== true) {
if (item.displayCondition) {
// eslint-disable-next-line no-eval
return eval(`this.environment.${item.displayCondition}`);
}

return true;
}

return false;
},
changeItem(id, value) {
this.changeItems[id] = value;
Expand Down
42 changes: 41 additions & 1 deletion resources/js/processes/screen-builder/screen.vue
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
id="preview"
class="h-100 m-0"
>
<b-col class="overflow-auto h-100">
<b-col class="d-flex overflow-auto h-100">
<vue-form-renderer
v-if="renderComponent === 'task-screen'"
ref="renderer"
Expand All @@ -55,6 +55,7 @@
:watchers="preview.watchers"
:show-errors="true"
:mock-magic-variables="mockMagicVariables"
:device-screen="deviceScreen"
@submit="previewSubmit"
@update="onUpdate"
@css-errors="cssErrors = $event"
Expand Down Expand Up @@ -372,6 +373,30 @@ export default {
},
],
},
{
id: "group_preview",
type: "group",
section: "left",
displayCondition: "displayPreview",
items: [
{
id: "button_preview_desktop",
type: "button",
title: this.$t("Preview Desktop"),
variant: "secondary",
icon: "fas fa-desktop",
action: "changeDeviceScreen(\"desktop\")",
},
{
id: "button_preview_mobile",
type: "button",
title: this.$t("Preview Mobile"),
variant: "outline-secondary",
icon: "fas fa-mobile pr-1",
action: "changeDeviceScreen(\"mobile\")",
},
],
},
{
id: "group_properties",
type: "group",
Expand Down Expand Up @@ -454,6 +479,7 @@ export default {
},
type: formTypes.form,
mode: "editor",
deviceScreen: "desktop",
// Computed properties
computed: [],
// Watchers
Expand Down Expand Up @@ -771,6 +797,20 @@ export default {
this.$refs.builder.refreshContent();
}
},
changeDeviceScreen(deviceScreen) {
this.$refs.menuScreen.changeItem("button_preview_desktop", {
variant: deviceScreen === "desktop" ? "secondary" : "outline-secondary",
});
this.$refs.menuScreen.changeItem("button_preview_mobile", {
variant: deviceScreen === "mobile" ? "secondary" : "outline-secondary",
});

this.deviceScreen = deviceScreen;

this.$nextTick(() => {
this.$refs.renderer.checkIfIsMobile();
});
},
onUpdate(data) {
this.updateDataPreview();
ProcessMaker.EventBus.$emit("form-data-updated", data);
Expand Down
2 changes: 2 additions & 0 deletions resources/lang/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -638,6 +638,8 @@
"Preview Screen was Submitted": "Preview Screen was Submitted",
"Preview": "Preview",
"Preview Screen": "Preview Screen",
"Preview Desktop": "Preview Desktop",
"Preview Mobile": "Preview Mobile",
"Previous Task Assignee": "Previous Task Assignee",
"primary": "primary",
"Print": "Print",
Expand Down
2 changes: 1 addition & 1 deletion routes/api.php
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@
Route::get('processes', [ProcessController::class, 'index'])->name('processes.index')->middleware('can:view-processes');
Route::get('processes/{process}', [ProcessController::class, 'show'])->name('processes.show')->middleware('can:view-processes');
Route::post('processes/{process}/export', [ProcessController::class, 'export'])->name('processes.export')->middleware('can:export-processes');
Route::get('processes/{process}/bpmn', [ProcessController::class, 'downloadBpmn'])->name('processes.export')->middleware('can:view-processes');
Route::get('processes/{process}/bpmn', [ProcessController::class, 'downloadBpmn'])->name('processes.export.bpmn')->middleware('can:view-processes');
Route::post('processes/import', [ProcessController::class, 'import'])->name('processes.import')->middleware('can:import-processes');
Route::post('processes/import/validation', [ProcessController::class, 'preimportValidation'])->name('processes.preimportValidation')->middleware('can:import-processes');
Route::get('processes/import/{code}/is_ready', [ProcessController::class, 'import_ready'])->name('processes.import_is_ready')->middleware('can:import-processes');
Expand Down