Skip to content
Open
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
31 changes: 31 additions & 0 deletions resources/js/next/initializeScreenCacheFromMeta.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import { initializeScreenCache } from "@processmaker/screen-builder";
import { getGlobalPMVariable, setGlobalPMVariable } from "./globalVariables";

let cacheInitialized = false;

function getScreenConfigFromMeta() {
const screenCacheEnabled = document.head.querySelector('meta[name="screen-cache-enabled"]')?.content ?? "false";
const screenCacheTimeout = document.head.querySelector('meta[name="screen-cache-timeout"]')?.content ?? "5000";
const screenSecureHandlerToggleVisible = document.head.querySelector("meta[name='screen-secure-handler-toggle-visible']");
const screenMergeDraftOnRestore = document.head.querySelector("meta[name='screen-merge-draft-on-restore']")?.content ?? "true";

return {
cacheEnabled: screenCacheEnabled === "true",
cacheTimeout: Number(screenCacheTimeout),
secureHandlerToggleVisible: !!Number(screenSecureHandlerToggleVisible?.content),
mergeDraftOnRestore: screenMergeDraftOnRestore === "true",
};
}

export default function initializeScreenCacheFromMeta(apiClient = getGlobalPMVariable("apiClient")) {
if (cacheInitialized) {
return getGlobalPMVariable("screen");
}

const screen = getScreenConfigFromMeta();
setGlobalPMVariable("screen", screen);
initializeScreenCache(apiClient, screen);
cacheInitialized = true;

return screen;
}
21 changes: 3 additions & 18 deletions resources/js/next/screenBuilder.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import {
getGlobalVariable, setGlobalVariable, getGlobalPMVariable, setGlobalPMVariable,
getGlobalVariable, setGlobalVariable, getGlobalPMVariable,
} from "./globalVariables";
import initializeScreenCacheFromMeta from "./initializeScreenCacheFromMeta";

const addScriptsToDOM = async function (scripts) {
for (const script of scripts) {
Expand All @@ -26,24 +27,8 @@ export default () => {
import("@processmaker/screen-builder").then((ScreenBuilder) => {
const apiClient = getGlobalPMVariable("apiClient");

const { initializeScreenCache } = ScreenBuilder;
// Configuration Global object used by ScreenBuilder
// @link https://processmaker.atlassian.net/browse/FOUR-6833 Cache configuration
const screenCacheEnabled = document.head.querySelector("meta[name=\"screen-cache-enabled\"]")?.content ?? "false";
const screenCacheTimeout = document.head.querySelector("meta[name=\"screen-cache-timeout\"]")?.content ?? "5000";
const screenSecureHandlerToggleVisible = document.head.querySelector("meta[name='screen-secure-handler-toggle-visible']");
const screenMergeDraftOnRestore = document.head.querySelector("meta[name='screen-merge-draft-on-restore']")?.content ?? "true";
const screen = {
cacheEnabled: screenCacheEnabled === "true",
cacheTimeout: Number(screenCacheTimeout),
secureHandlerToggleVisible: !!Number(screenSecureHandlerToggleVisible?.content),
mergeDraftOnRestore: screenMergeDraftOnRestore === "true",
};

setGlobalVariable("ScreenBuilder", ScreenBuilder);
setGlobalPMVariable("screen", screen);
// Initialize screen-builder cache
initializeScreenCache(apiClient, screen);// TODO: Its a bad practice to use the apiClient here
initializeScreenCacheFromMeta(apiClient);
if (screenBuilderScripts) {
addScriptsToDOM(screenBuilderScripts).then(() => {
// The order of the scripts is important, the screenBuilderScripts must be loaded before the ScreenBuilder.default
Expand Down
2 changes: 2 additions & 0 deletions resources/js/processes/screen-builder/loaderScreen.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import * as ScreenBuilder from "@processmaker/screen-builder";
import initializeScreenCacheFromMeta from "../../next/initializeScreenCacheFromMeta";
import { setupMain } from "../../next/setupMain";
import monaco from "../../next/monaco";
import vueFormElements from "../../next/libraries/vueFormElements";
Expand All @@ -10,6 +11,7 @@ import("@processmaker/screen-builder/dist/vue-form-builder.css");
window.ScreenBuilder = ScreenBuilder;

setupMain();
initializeScreenCacheFromMeta();
monaco();
window.Vue.use(ScreenBuilder.default);

Expand Down
3 changes: 3 additions & 0 deletions resources/js/processes/screens/loaderScreenPreview.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import * as ScreenBuilder from "@processmaker/screen-builder";
import VueFormElements from "@processmaker/vue-form-elements";
import initializeScreenCacheFromMeta from "../../next/initializeScreenCacheFromMeta";
import { setupMain } from "../../next/setupMain";

setupMain();
initializeScreenCacheFromMeta();

window.ScreenBuilder = ScreenBuilder;
window.VueFormElements = VueFormElements;
window.Vue.use(ScreenBuilder.default);
Expand Down
2 changes: 2 additions & 0 deletions resources/js/requests/loaderRequestsPreview.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@ import Mustache from "mustache";
import "../next/libraries/vueFormElements";
import screenBuilder from "../next/screenBuilder";
import * as ScreenBuilder from "@processmaker/screen-builder";
import initializeScreenCacheFromMeta from "../next/initializeScreenCacheFromMeta";
import { setupMain } from "../next/setupMain";
import "./preview";
import ScreenDetail from "./components/screenDetail.vue";

window.Mustache = Mustache;
setupMain();
initializeScreenCacheFromMeta();
screenBuilder();

Vue.use(ScreenBuilder.default);
Expand Down
2 changes: 2 additions & 0 deletions resources/js/requests/loaderRequestsShow.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import initializeScreenCacheFromMeta from "../next/initializeScreenCacheFromMeta";
import { setupMain } from "../next/setupMain";
import monaco from "../next/monaco";
import modeler from "../next/modeler";
Expand All @@ -9,6 +10,7 @@ import("@processmaker/screen-builder/dist/vue-form-builder.css");
import("@processmaker/vue-form-elements/dist/vue-form-elements.css");

setupMain();
initializeScreenCacheFromMeta();
monaco();
modeler();

Expand Down
2 changes: 2 additions & 0 deletions resources/js/tasks/loaderTasks.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import * as ScreenBuilder from "@processmaker/screen-builder";
import VueFormElement from "../next/libraries/vueFormElements";
import initializeScreenCacheFromMeta from "../next/initializeScreenCacheFromMeta";
import { setupMain } from "../next/setupMain";
import screenBuilderNext from "../next/screenBuilder";
import "@processmaker/screen-builder/dist/vue-form-builder.css";

setupMain();
initializeScreenCacheFromMeta();
screenBuilderNext();
window.ScreenBuilder = ScreenBuilder;
window.Vue.use(ScreenBuilder.default);
Expand Down
2 changes: 2 additions & 0 deletions resources/js/vite/tasks/loaderTasks.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import "../../../js/vite/bootstrap-globals.js";
import initializeScreenCacheFromMeta from "../../../js/next/initializeScreenCacheFromMeta";
import { setupMain } from "../../../js/next/setupMain";
import { withMomentDateFormats } from "../../next/config/user";
import vueFormElements from "../../../js/next/libraries/vueFormElements";
Expand All @@ -12,6 +13,7 @@ import "@processmaker/screen-builder/dist/vue-form-builder.css";
window.ScreenBuilder = ScreenBuilder;

setupMain();
initializeScreenCacheFromMeta();
screenBuilderNext();
window.Vue.use(ScreenBuilder.default);
modeler();
Expand Down
1 change: 0 additions & 1 deletion resources/views/layouts/previewscreennextvite.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,6 @@
@endforeach
<!--javascript!-->

PORE
@yield('js')
</body>

Expand Down
Loading