You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2024/04/17 15:24:54 UTC

(ofbiz-framework) branch trunk updated: Improved: FACILITY- Move from hard-coded menu location to parameterized (OFBIZ-12976) (#758)

This is an automated email from the ASF dual-hosted git repository.

jleroux pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 98d2b78bec Improved: FACILITY- Move from hard-coded menu location to parameterized (OFBIZ-12976) (#758)
98d2b78bec is described below

commit 98d2b78bece10ac2ddea7e75bcb66dd4aa7276fc
Author: Pierre Smits <pi...@somonar.com>
AuthorDate: Wed Apr 17 17:24:49 2024 +0200

    Improved: FACILITY- Move from hard-coded menu location to parameterized (OFBIZ-12976) (#758)
    
    Improved: FACILITY- Move from hard-coded menu location to parameterized (OFBIZ-12976)
    
    Move the menu location in the various facility screens from hard-coded to parameterized.
    
    modified: CommonScreens.xml, FacilityGroupScreens.xml, FacilityScreens.xml
    changed location of various menus from hard-coded to parameterized
    
    modified:
    - FacilitiesMenus.xml: added menus re shipment
    - ShipmentScreens.xml: changed location of menus from hard-coded to parameterized
    
    Improved: Move the menu location in the various facility screens from hard-coded to parameterized. (OFBIZ-12976)
    
    removed: ShipmentMenus.xml
---
 .../product/widget/facility/FacilityMenus.xml      | 128 +++++++++++++++++
 .../facility/ShipmentGatewayConfigScreens.xml      |   2 +-
 .../product/widget/facility/ShipmentMenus.xml      | 152 ---------------------
 .../product/widget/facility/ShipmentScreens.xml    |   4 +-
 .../webapp/common-theme/js/package-lock.json       |  81 ++++++++---
 5 files changed, 191 insertions(+), 176 deletions(-)

diff --git a/applications/product/widget/facility/FacilityMenus.xml b/applications/product/widget/facility/FacilityMenus.xml
index 2661f121fc..b97e881d06 100644
--- a/applications/product/widget/facility/FacilityMenus.xml
+++ b/applications/product/widget/facility/FacilityMenus.xml
@@ -318,5 +318,133 @@ under the License.
                 <parameter param-name="facilityGroupId" from-field="facilityGroupId"/>
             </link>
         </menu-item>
+    </menu>    
+    <menu name="ShipmentTabBar" title=" " extends="CommonTabBarMenu" 
+        extends-resource="component://common/widget/CommonMenus.xml" default-menu-item-name="ViewShipment">
+        
+        <menu-item name="ViewShipment" title="${uiLabelMap.CommonView}">
+            <link target="ViewShipment">
+                <parameter param-name="shipmentId"/>
+            </link>
+        </menu-item>
+        <menu-item name="EditShipment" title="${uiLabelMap.CommonEdit}">
+            <link target="EditShipment">
+                <parameter param-name="shipmentId"/>
+            </link>
+        </menu-item>
+        <menu-item name="AddItemsFromInventory" title="${uiLabelMap.ProductOrderItems}">
+            <condition>
+                <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_RETURN"/>
+            </condition>
+            <link target="AddItemsFromInventory">
+                <parameter param-name="shipmentId"/>
+            </link>
+        </menu-item>
+        <menu-item name="EditShipmentPlan" title="${uiLabelMap.ProductShipmentPlan}">
+            <condition>
+                <or>
+                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT"/>
+                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
+                </or>
+            </condition>
+            <link target="EditShipmentPlan">
+                <parameter param-name="shipmentId"/>
+            </link>
+        </menu-item>
+        <menu-item name="ViewShipmentReceipts" title="${uiLabelMap.ProductShipmentReceipts}">
+            <condition>
+                <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT"/>
+            </condition>
+            <link target="ViewShipmentReceipts">
+                <parameter param-name="shipmentId"/>
+            </link>
+        </menu-item>
+        <menu-item name="AddItemsFromOrder" title="${uiLabelMap.ProductOrderItems}">
+            <condition>
+                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
+            </condition>
+            <link target="AddItemsFromOrder">
+                <parameter param-name="shipmentId"/>
+            </link>
+        </menu-item>
+        <menu-item name="EditShipmentItems" title="${uiLabelMap.ProductItems}">
+            <condition>
+                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
+            </condition>
+            <link target="EditShipmentItems">
+                <parameter param-name="shipmentId"/>
+            </link>
+        </menu-item>
+        <menu-item name="EditShipmentPackages" title="${uiLabelMap.ProductPackages}">
+            <condition>
+                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
+            </condition>
+            <link target="EditShipmentPackages">
+                <parameter param-name="shipmentId"/>
+            </link>
+        </menu-item>
+        <menu-item name="EditShipmentPackages" title="${uiLabelMap.ProductPackages}">
+            <condition>
+                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
+            </condition>
+            <link target="EditShipmentPackages">
+                <parameter param-name="shipmentId"/>
+            </link>
+        </menu-item>
+        <menu-item name="EditShipmentRouteSegments" title="${uiLabelMap.ProductRouteSegments}">
+            <condition>
+                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
+            </condition>
+            <link target="EditShipmentRouteSegments">
+                <parameter param-name="shipmentId"/>
+            </link>
+        </menu-item>
+    </menu>
+    <menu name="ShipmentActionBar" menu-container-style="button-bar button-style-2" default-selected-style="selected">
+        <menu-item name="ReceiveInventory" title="${uiLabelMap.ProductReceiveInventory}">
+            <condition>
+                <and>
+                    <not><if-empty field="facility"/></not>
+                    <not><if-empty field="shipment"/></not>
+                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT" />
+                </and>
+            </condition>
+            <link target="ReceiveInventory">
+                <parameter param-name="shipmentId"/>
+                <parameter param-name="facilityId" from-field="facility.facilityId"/>
+                <parameter param-name="purchaseOrderId" from-field="shipment.primaryOrderId"/>
+                <parameter param-name="initialSelected" value="Y"/>
+            </link>
+        </menu-item>
+        <menu-item name="ReceiveInventoryAgainstPurchaseOrder" title="${uiLabelMap.ProductReceiveInventoryAgainstPO}">
+            <condition>
+                <and>
+                    <not><if-empty field="facility"/></not>
+                    <not><if-empty field="shipment"/></not>
+                    <not><if-empty field="shipment.primaryOrderId"/></not>
+                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT" />
+                </and>
+            </condition>
+            <link target="ReceiveInventoryAgainstPurchaseOrder">
+                <parameter param-name="shipmentId"/>
+                <parameter param-name="purchaseOrderId" from-field="shipment.primaryOrderId"/>
+            </link>
+        </menu-item>
+        <menu-item name="ReceiveInventoryAgainstPurchaseOrder" title="${uiLabelMap.ProductReceiveInventoryAgainstPO}">
+            <link target="ReceiveInventoryAgainstPurchaseOrder">
+                <parameter param-name="shipmentId"/>
+                <parameter param-name="purchaseOrderId" from-field="shipment.primaryOrderId"/>
+            </link>
+        </menu-item>
+        <menu-item name="CreateShipmentNote" title="${uiLabelMap.CommonAdd} ${uiLabelMap.CommonNote}">
+            <link target="CreateShipmentNote">
+                <parameter param-name="shipmentId"/>
+            </link>
+        </menu-item>
+        <menu-item name="CreateManifest" title="${uiLabelMap.ProductGenerateShipmentManifestReport}">
+            <link target="ShipmentManifest.pdf" target-window="_BLANK">
+                <parameter param-name="shipmentId"/>
+            </link>
+        </menu-item>
     </menu>
 </menus>
diff --git a/applications/product/widget/facility/ShipmentGatewayConfigScreens.xml b/applications/product/widget/facility/ShipmentGatewayConfigScreens.xml
index 7b3f2a812e..2458d9f385 100644
--- a/applications/product/widget/facility/ShipmentGatewayConfigScreens.xml
+++ b/applications/product/widget/facility/ShipmentGatewayConfigScreens.xml
@@ -29,7 +29,7 @@ under the License.
                 <!-- main defines the regions of the HTML page -->
                 <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
                     <decorator-section name="pre-body">
-                        <include-menu name="ShipmentGatewayConfigTabBar" location="component://product/widget/facility/FacilityMenus.xml"/>
+                        <include-menu name="ShipmentGatewayConfigTabBar" location="${parameters.mainMenuLocation}"/>
                     </decorator-section>
                     <decorator-section name="body">
                         <section>
diff --git a/applications/product/widget/facility/ShipmentMenus.xml b/applications/product/widget/facility/ShipmentMenus.xml
deleted file mode 100644
index 2b971f9fab..0000000000
--- a/applications/product/widget/facility/ShipmentMenus.xml
+++ /dev/null
@@ -1,152 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<menus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns="http://ofbiz.apache.org/Widget-Menu" xsi:schemaLocation="http://ofbiz.apache.org/Widget-Menu http://ofbiz.apache.org/dtds/widget-menu.xsd">
-    
-    <menu name="ShipmentTabBar" title=" " extends="CommonTabBarMenu" 
-        extends-resource="component://common/widget/CommonMenus.xml" default-menu-item-name="ViewShipment">
-        
-        <menu-item name="ViewShipment" title="${uiLabelMap.CommonView}">
-            <link target="ViewShipment">
-                <parameter param-name="shipmentId"/>
-            </link>
-        </menu-item>
-        <menu-item name="EditShipment" title="${uiLabelMap.CommonEdit}">
-            <link target="EditShipment">
-                <parameter param-name="shipmentId"/>
-            </link>
-        </menu-item>
-        <menu-item name="AddItemsFromInventory" title="${uiLabelMap.ProductOrderItems}">
-            <condition>
-                <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_RETURN"/>
-            </condition>
-            <link target="AddItemsFromInventory">
-                <parameter param-name="shipmentId"/>
-            </link>
-        </menu-item>
-        <menu-item name="EditShipmentPlan" title="${uiLabelMap.ProductShipmentPlan}">
-            <condition>
-                <or>
-                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT"/>
-                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
-                </or>
-            </condition>
-            <link target="EditShipmentPlan">
-                <parameter param-name="shipmentId"/>
-            </link>
-        </menu-item>
-        <menu-item name="ViewShipmentReceipts" title="${uiLabelMap.ProductShipmentReceipts}">
-            <condition>
-                <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT"/>
-            </condition>
-            <link target="ViewShipmentReceipts">
-                <parameter param-name="shipmentId"/>
-            </link>
-        </menu-item>
-        <menu-item name="AddItemsFromOrder" title="${uiLabelMap.ProductOrderItems}">
-            <condition>
-                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
-            </condition>
-            <link target="AddItemsFromOrder">
-                <parameter param-name="shipmentId"/>
-            </link>
-        </menu-item>
-        <menu-item name="EditShipmentItems" title="${uiLabelMap.ProductItems}">
-            <condition>
-                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
-            </condition>
-            <link target="EditShipmentItems">
-                <parameter param-name="shipmentId"/>
-            </link>
-        </menu-item>
-        <menu-item name="EditShipmentPackages" title="${uiLabelMap.ProductPackages}">
-            <condition>
-                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
-            </condition>
-            <link target="EditShipmentPackages">
-                <parameter param-name="shipmentId"/>
-            </link>
-        </menu-item>
-        <menu-item name="EditShipmentPackages" title="${uiLabelMap.ProductPackages}">
-            <condition>
-                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
-            </condition>
-            <link target="EditShipmentPackages">
-                <parameter param-name="shipmentId"/>
-            </link>
-        </menu-item>
-        <menu-item name="EditShipmentRouteSegments" title="${uiLabelMap.ProductRouteSegments}">
-            <condition>
-                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
-            </condition>
-            <link target="EditShipmentRouteSegments">
-                <parameter param-name="shipmentId"/>
-            </link>
-        </menu-item>
-    </menu>
-    <menu name="ShipmentActionBar" menu-container-style="button-bar button-style-2" default-selected-style="selected">
-        <menu-item name="ReceiveInventory" title="${uiLabelMap.ProductReceiveInventory}">
-            <condition>
-                <and>
-                    <not><if-empty field="facility"/></not>
-                    <not><if-empty field="shipment"/></not>
-                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT" />
-                </and>
-            </condition>
-            <link target="ReceiveInventory">
-                <parameter param-name="shipmentId"/>
-                <parameter param-name="facilityId" from-field="facility.facilityId"/>
-                <parameter param-name="purchaseOrderId" from-field="shipment.primaryOrderId"/>
-                <parameter param-name="initialSelected" value="Y"/>
-            </link>
-        </menu-item>
-        <menu-item name="ReceiveInventoryAgainstPurchaseOrder" title="${uiLabelMap.ProductReceiveInventoryAgainstPO}">
-            <condition>
-                <and>
-                    <not><if-empty field="facility"/></not>
-                    <not><if-empty field="shipment"/></not>
-                    <not><if-empty field="shipment.primaryOrderId"/></not>
-                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT" />
-                </and>
-            </condition>
-            <link target="ReceiveInventoryAgainstPurchaseOrder">
-                <parameter param-name="shipmentId"/>
-                <parameter param-name="purchaseOrderId" from-field="shipment.primaryOrderId"/>
-            </link>
-        </menu-item>
-        <menu-item name="ReceiveInventoryAgainstPurchaseOrder" title="${uiLabelMap.ProductReceiveInventoryAgainstPO}">
-            <link target="ReceiveInventoryAgainstPurchaseOrder">
-                <parameter param-name="shipmentId"/>
-                <parameter param-name="purchaseOrderId" from-field="shipment.primaryOrderId"/>
-            </link>
-        </menu-item>
-        <menu-item name="CreateShipmentNote" title="${uiLabelMap.CommonAdd} ${uiLabelMap.CommonNote}">
-            <link target="CreateShipmentNote">
-                <parameter param-name="shipmentId"/>
-            </link>
-        </menu-item>
-        <menu-item name="CreateManifest" title="${uiLabelMap.ProductGenerateShipmentManifestReport}">
-            <link target="ShipmentManifest.pdf" target-window="_BLANK">
-                <parameter param-name="shipmentId"/>
-            </link>
-        </menu-item>
-    </menu>
-</menus>
\ No newline at end of file
diff --git a/applications/product/widget/facility/ShipmentScreens.xml b/applications/product/widget/facility/ShipmentScreens.xml
index 96d07edb7c..95c18e31a8 100644
--- a/applications/product/widget/facility/ShipmentScreens.xml
+++ b/applications/product/widget/facility/ShipmentScreens.xml
@@ -99,8 +99,8 @@ under the License.
                                     <widgets>
                                         <label style="h1" text="${uiLabelMap.ProductShipmentId}: ${shipment.shipmentId}"/>
                                         <container>
-                                            <include-menu location="component://product/widget/facility/ShipmentMenus.xml" name="ShipmentTabBar"/>
-                                            <include-menu location="component://product/widget/facility/ShipmentMenus.xml" name="ShipmentActionBar"/>
+                                            <include-menu location="${parameters.mainMenuLocation}" name="ShipmentTabBar"/>
+                                            <include-menu location="${parameters.mainMenuLocation}" name="ShipmentActionBar"/>
                                         </container>
                                     </widgets>
                                 </section>
diff --git a/themes/common-theme/webapp/common-theme/js/package-lock.json b/themes/common-theme/webapp/common-theme/js/package-lock.json
index 980e395fed..4af6c1cb59 100644
--- a/themes/common-theme/webapp/common-theme/js/package-lock.json
+++ b/themes/common-theme/webapp/common-theme/js/package-lock.json
@@ -1,70 +1,109 @@
 {
     "name": "ofbiz-common-theme",
+    "lockfileVersion": 3,
     "requires": true,
-    "lockfileVersion": 1,
-    "dependencies": {
-        "@chinchilla-software/jquery-ui-timepicker-addon": {
+    "packages": {
+        "": {
+            "name": "ofbiz-common-theme",
+            "license": "Apache-2.0",
+            "dependencies": {
+                "@chinchilla-software/jquery-ui-timepicker-addon": "^1.6.3",
+                "dompurify": "^3.1.0",
+                "featherlight": "^1.7.14",
+                "flot": "^4.2.6",
+                "inputmask": "^5.0.8",
+                "jquery": "^3.7.1",
+                "jquery-migrate": "^3.4.1",
+                "jquery-ui-dist": "^1.13.2",
+                "jquery-validation": "^1.20.0",
+                "jquery.browser": "^0.1.0",
+                "trumbowyg": "^2.28.0",
+                "uglify-js": "3.17.4"
+            }
+        },
+        "node_modules/@chinchilla-software/jquery-ui-timepicker-addon": {
             "version": "1.6.3",
             "resolved": "https://registry.npmjs.org/@chinchilla-software/jquery-ui-timepicker-addon/-/jquery-ui-timepicker-addon-1.6.3.tgz",
-            "integrity": "sha512-P2rOR4MWcBMTbkaA0AE77COj8BTBIeNp9trtUKbvWFAoBoWHpwGhN8WIEjST7h/1nVQH+4CSpa4i9XoXZYvWXg=="
+            "integrity": "sha512-P2rOR4MWcBMTbkaA0AE77COj8BTBIeNp9trtUKbvWFAoBoWHpwGhN8WIEjST7h/1nVQH+4CSpa4i9XoXZYvWXg==",
+            "engines": {
+                "node": ">= 0.8.0"
+            }
         },
-        "dompurify": {
+        "node_modules/dompurify": {
             "version": "3.1.0",
             "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.0.tgz",
             "integrity": "sha512-yoU4rhgPKCo+p5UrWWWNKiIq+ToGqmVVhk0PmMYBK4kRsR3/qhemNFL8f6CFmBd4gMwm3F4T7HBoydP5uY07fA=="
         },
-        "featherlight": {
+        "node_modules/featherlight": {
             "version": "1.7.14",
             "resolved": "https://registry.npmjs.org/featherlight/-/featherlight-1.7.14.tgz",
             "integrity": "sha512-4R0Vk0pTN5IPCuMABPtXJ6hgGgoK1qwbxGB4Nf06gXovw/i+r3s/f94ksZYjsW3c2oMEAS9A8exdlNaX9YSSRQ=="
         },
-        "flot": {
+        "node_modules/flot": {
             "version": "4.2.6",
             "resolved": "https://registry.npmjs.org/flot/-/flot-4.2.6.tgz",
             "integrity": "sha512-Iz4HCet1ZBQnjGwECz4jseD1zMnh7m2XJIMI6A62l8h2SeceLYOEmYGNQto1XhkSM9fUmqzyKhWwJ+RolWLydg=="
         },
-        "inputmask": {
+        "node_modules/inputmask": {
             "version": "5.0.8",
             "resolved": "https://registry.npmjs.org/inputmask/-/inputmask-5.0.8.tgz",
             "integrity": "sha512-1WcbyudPTXP1B28ozWWyFa6QRIUG4KiLoyR6LFHlpT4OfTzRqFfWgHFadNvRuMN1S9XNVz9CdNvCGjJi+uAMqQ=="
         },
-        "jquery": {
+        "node_modules/jquery": {
             "version": "3.7.1",
             "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz",
             "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg=="
         },
-        "jquery-migrate": {
+        "node_modules/jquery-migrate": {
             "version": "3.4.1",
             "resolved": "https://registry.npmjs.org/jquery-migrate/-/jquery-migrate-3.4.1.tgz",
-            "integrity": "sha512-6RaV23lLAYccu8MtLfy2sIxOvx+bulnWHm/pvffAi7KOzPk1sN9IYglpkl1ZNCj1FSgSNDPS2fSZ1hWsXc200Q=="
+            "integrity": "sha512-6RaV23lLAYccu8MtLfy2sIxOvx+bulnWHm/pvffAi7KOzPk1sN9IYglpkl1ZNCj1FSgSNDPS2fSZ1hWsXc200Q==",
+            "peerDependencies": {
+                "jquery": ">=3 <4"
+            }
         },
-        "jquery-ui-dist": {
+        "node_modules/jquery-ui-dist": {
             "version": "1.13.2",
             "resolved": "https://registry.npmjs.org/jquery-ui-dist/-/jquery-ui-dist-1.13.2.tgz",
             "integrity": "sha512-oVDRd1NLtTbBwpRKAYdIRgpWVDzeBhfy7Gu0RmY6JEaZtmBq6kDn1pm5SgDiAotrnDS+RoTRXO6xvcNTxA9tOA==",
-            "requires": {
+            "dependencies": {
                 "jquery": ">=1.8.0 <4.0.0"
             }
         },
-        "jquery-validation": {
+        "node_modules/jquery-validation": {
             "version": "1.20.0",
             "resolved": "https://registry.npmjs.org/jquery-validation/-/jquery-validation-1.20.0.tgz",
-            "integrity": "sha512-c8tg4ltIIP6L7l0bZ79sRzOJYquyjS48kQZ6iv8MJ2r0OYztxtkWYKTReZyU2/zVFYiINB29i0Z/IRNNuJQN1g=="
+            "integrity": "sha512-c8tg4ltIIP6L7l0bZ79sRzOJYquyjS48kQZ6iv8MJ2r0OYztxtkWYKTReZyU2/zVFYiINB29i0Z/IRNNuJQN1g==",
+            "peerDependencies": {
+                "jquery": "^1.7 || ^2.0 || ^3.1"
+            }
         },
-        "jquery.browser": {
+        "node_modules/jquery.browser": {
             "version": "0.1.0",
             "resolved": "https://registry.npmjs.org/jquery.browser/-/jquery.browser-0.1.0.tgz",
-            "integrity": "sha512-5GjtLzzEBzxs/nwSVpCbSdk0acssfKsP7Upp43zmdHVV1Vb6E9VayyqPAQlfLrTeZL3YSWocCbkOvKdAc2CN4g=="
+            "integrity": "sha512-5GjtLzzEBzxs/nwSVpCbSdk0acssfKsP7Upp43zmdHVV1Vb6E9VayyqPAQlfLrTeZL3YSWocCbkOvKdAc2CN4g==",
+            "engines": {
+                "node": ">= 0.4.0"
+            }
         },
-        "trumbowyg": {
+        "node_modules/trumbowyg": {
             "version": "2.28.0",
             "resolved": "https://registry.npmjs.org/trumbowyg/-/trumbowyg-2.28.0.tgz",
-            "integrity": "sha512-K4KX6psV+hUt03Y3RNdQM5Y+JLfZOUliNnCz5lm12Llfhwvx0P0geBsM0w9ZHeX5g8q7d2MC5X7sPOwGv0Q7Kw=="
+            "integrity": "sha512-K4KX6psV+hUt03Y3RNdQM5Y+JLfZOUliNnCz5lm12Llfhwvx0P0geBsM0w9ZHeX5g8q7d2MC5X7sPOwGv0Q7Kw==",
+            "peerDependencies": {
+                "jquery": ">=1.8"
+            }
         },
-        "uglify-js": {
+        "node_modules/uglify-js": {
             "version": "3.17.4",
             "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
-            "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g=="
+            "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
+            "bin": {
+                "uglifyjs": "bin/uglifyjs"
+            },
+            "engines": {
+                "node": ">=0.8.0"
+            }
         }
     }
 }


Re: (ofbiz-framework) branch trunk updated: Improved: FACILITY- Move from hard-coded menu location to parameterized (OFBIZ-12976) (#758)

Posted by Jacques Le Roux <jl...@apache.org>.
Hi,

Just FYI: I inadvertently pushed /webapp/common-theme/js/package-lock.json which was part of Pierre's PR. It uses lockfileVersion 3.

So it was build with npm 9* which is "Backwards compatible to npm v7." Actually it's also "Backwards compatible to v1 lockfiles as I experienced 
(using Win7 I stuck with Node.js v13.14.0 hence npm 8.1.0)

* https://docs.npmjs.com/cli/v9/configuring-npm/package-lock-json

Jacques

Le 17/04/2024 à 17:24, jleroux@apache.org a écrit :
> This is an automated email from the ASF dual-hosted git repository.
>
> jleroux pushed a commit to branch trunk
> in repositoryhttps://gitbox.apache.org/repos/asf/ofbiz-framework.git
>
>
> The following commit(s) were added to refs/heads/trunk by this push:
>       new 98d2b78bec Improved: FACILITY- Move from hard-coded menu location to parameterized (OFBIZ-12976) (#758)
> 98d2b78bec is described below
>
> commit 98d2b78bece10ac2ddea7e75bcb66dd4aa7276fc
> Author: Pierre Smits<pi...@somonar.com>
> AuthorDate: Wed Apr 17 17:24:49 2024 +0200
>
>      Improved: FACILITY- Move from hard-coded menu location to parameterized (OFBIZ-12976) (#758)
>      
>      Improved: FACILITY- Move from hard-coded menu location to parameterized (OFBIZ-12976)
>      
>      Move the menu location in the various facility screens from hard-coded to parameterized.
>      
>      modified: CommonScreens.xml, FacilityGroupScreens.xml, FacilityScreens.xml
>      changed location of various menus from hard-coded to parameterized
>      
>      modified:
>      - FacilitiesMenus.xml: added menus re shipment
>      - ShipmentScreens.xml: changed location of menus from hard-coded to parameterized
>      
>      Improved: Move the menu location in the various facility screens from hard-coded to parameterized. (OFBIZ-12976)
>      
>      removed: ShipmentMenus.xml
> ---
>   .../product/widget/facility/FacilityMenus.xml      | 128 +++++++++++++++++
>   .../facility/ShipmentGatewayConfigScreens.xml      |   2 +-
>   .../product/widget/facility/ShipmentMenus.xml      | 152 ---------------------
>   .../product/widget/facility/ShipmentScreens.xml    |   4 +-
>   .../webapp/common-theme/js/package-lock.json       |  81 ++++++++---
>   5 files changed, 191 insertions(+), 176 deletions(-)
>
> diff --git a/applications/product/widget/facility/FacilityMenus.xml b/applications/product/widget/facility/FacilityMenus.xml
> index 2661f121fc..b97e881d06 100644
> --- a/applications/product/widget/facility/FacilityMenus.xml
> +++ b/applications/product/widget/facility/FacilityMenus.xml
> @@ -318,5 +318,133 @@ under the License.
>                   <parameter param-name="facilityGroupId" from-field="facilityGroupId"/>
>               </link>
>           </menu-item>
> +    </menu>
> +    <menu name="ShipmentTabBar" title=" " extends="CommonTabBarMenu"
> +        extends-resource="component://common/widget/CommonMenus.xml" default-menu-item-name="ViewShipment">
> +
> +        <menu-item name="ViewShipment" title="${uiLabelMap.CommonView}">
> +            <link target="ViewShipment">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="EditShipment" title="${uiLabelMap.CommonEdit}">
> +            <link target="EditShipment">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="AddItemsFromInventory" title="${uiLabelMap.ProductOrderItems}">
> +            <condition>
> +                <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_RETURN"/>
> +            </condition>
> +            <link target="AddItemsFromInventory">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="EditShipmentPlan" title="${uiLabelMap.ProductShipmentPlan}">
> +            <condition>
> +                <or>
> +                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT"/>
> +                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> +                </or>
> +            </condition>
> +            <link target="EditShipmentPlan">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="ViewShipmentReceipts" title="${uiLabelMap.ProductShipmentReceipts}">
> +            <condition>
> +                <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT"/>
> +            </condition>
> +            <link target="ViewShipmentReceipts">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="AddItemsFromOrder" title="${uiLabelMap.ProductOrderItems}">
> +            <condition>
> +                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> +            </condition>
> +            <link target="AddItemsFromOrder">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="EditShipmentItems" title="${uiLabelMap.ProductItems}">
> +            <condition>
> +                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> +            </condition>
> +            <link target="EditShipmentItems">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="EditShipmentPackages" title="${uiLabelMap.ProductPackages}">
> +            <condition>
> +                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> +            </condition>
> +            <link target="EditShipmentPackages">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="EditShipmentPackages" title="${uiLabelMap.ProductPackages}">
> +            <condition>
> +                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> +            </condition>
> +            <link target="EditShipmentPackages">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="EditShipmentRouteSegments" title="${uiLabelMap.ProductRouteSegments}">
> +            <condition>
> +                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> +            </condition>
> +            <link target="EditShipmentRouteSegments">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +    </menu>
> +    <menu name="ShipmentActionBar" menu-container-style="button-bar button-style-2" default-selected-style="selected">
> +        <menu-item name="ReceiveInventory" title="${uiLabelMap.ProductReceiveInventory}">
> +            <condition>
> +                <and>
> +                    <not><if-empty field="facility"/></not>
> +                    <not><if-empty field="shipment"/></not>
> +                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT" />
> +                </and>
> +            </condition>
> +            <link target="ReceiveInventory">
> +                <parameter param-name="shipmentId"/>
> +                <parameter param-name="facilityId" from-field="facility.facilityId"/>
> +                <parameter param-name="purchaseOrderId" from-field="shipment.primaryOrderId"/>
> +                <parameter param-name="initialSelected" value="Y"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="ReceiveInventoryAgainstPurchaseOrder" title="${uiLabelMap.ProductReceiveInventoryAgainstPO}">
> +            <condition>
> +                <and>
> +                    <not><if-empty field="facility"/></not>
> +                    <not><if-empty field="shipment"/></not>
> +                    <not><if-empty field="shipment.primaryOrderId"/></not>
> +                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT" />
> +                </and>
> +            </condition>
> +            <link target="ReceiveInventoryAgainstPurchaseOrder">
> +                <parameter param-name="shipmentId"/>
> +                <parameter param-name="purchaseOrderId" from-field="shipment.primaryOrderId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="ReceiveInventoryAgainstPurchaseOrder" title="${uiLabelMap.ProductReceiveInventoryAgainstPO}">
> +            <link target="ReceiveInventoryAgainstPurchaseOrder">
> +                <parameter param-name="shipmentId"/>
> +                <parameter param-name="purchaseOrderId" from-field="shipment.primaryOrderId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="CreateShipmentNote" title="${uiLabelMap.CommonAdd} ${uiLabelMap.CommonNote}">
> +            <link target="CreateShipmentNote">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="CreateManifest" title="${uiLabelMap.ProductGenerateShipmentManifestReport}">
> +            <link target="ShipmentManifest.pdf" target-window="_BLANK">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
>       </menu>
>   </menus>
> diff --git a/applications/product/widget/facility/ShipmentGatewayConfigScreens.xml b/applications/product/widget/facility/ShipmentGatewayConfigScreens.xml
> index 7b3f2a812e..2458d9f385 100644
> --- a/applications/product/widget/facility/ShipmentGatewayConfigScreens.xml
> +++ b/applications/product/widget/facility/ShipmentGatewayConfigScreens.xml
> @@ -29,7 +29,7 @@ under the License.
>                   <!-- main defines the regions of the HTML page -->
>                   <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
>                       <decorator-section name="pre-body">
> -                        <include-menu name="ShipmentGatewayConfigTabBar" location="component://product/widget/facility/FacilityMenus.xml"/>
> +                        <include-menu name="ShipmentGatewayConfigTabBar" location="${parameters.mainMenuLocation}"/>
>                       </decorator-section>
>                       <decorator-section name="body">
>                           <section>
> diff --git a/applications/product/widget/facility/ShipmentMenus.xml b/applications/product/widget/facility/ShipmentMenus.xml
> deleted file mode 100644
> index 2b971f9fab..0000000000
> --- a/applications/product/widget/facility/ShipmentMenus.xml
> +++ /dev/null
> @@ -1,152 +0,0 @@
> -<?xml version="1.0" encoding="UTF-8"?>
> -<!--
> -Licensed to the Apache Software Foundation (ASF) under one
> -or more contributor license agreements.  See the NOTICE file
> -distributed with this work for additional information
> -regarding copyright ownership.  The ASF licenses this file
> -to you under the Apache License, Version 2.0 (the
> -"License"); you may not use this file except in compliance
> -with the License.  You may obtain a copy of the License at
> -
> -http://www.apache.org/licenses/LICENSE-2.0
> -
> -Unless required by applicable law or agreed to in writing,
> -software distributed under the License is distributed on an
> -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> -KIND, either express or implied.  See the License for the
> -specific language governing permissions and limitations
> -under the License.
> --->
> -
> -<menus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> -    xmlns="http://ofbiz.apache.org/Widget-Menu"  xsi:schemaLocation="http://ofbiz.apache.org/Widget-Menu http://ofbiz.apache.org/dtds/widget-menu.xsd">
> -
> -    <menu name="ShipmentTabBar" title=" " extends="CommonTabBarMenu"
> -        extends-resource="component://common/widget/CommonMenus.xml" default-menu-item-name="ViewShipment">
> -
> -        <menu-item name="ViewShipment" title="${uiLabelMap.CommonView}">
> -            <link target="ViewShipment">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="EditShipment" title="${uiLabelMap.CommonEdit}">
> -            <link target="EditShipment">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="AddItemsFromInventory" title="${uiLabelMap.ProductOrderItems}">
> -            <condition>
> -                <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_RETURN"/>
> -            </condition>
> -            <link target="AddItemsFromInventory">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="EditShipmentPlan" title="${uiLabelMap.ProductShipmentPlan}">
> -            <condition>
> -                <or>
> -                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT"/>
> -                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> -                </or>
> -            </condition>
> -            <link target="EditShipmentPlan">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="ViewShipmentReceipts" title="${uiLabelMap.ProductShipmentReceipts}">
> -            <condition>
> -                <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT"/>
> -            </condition>
> -            <link target="ViewShipmentReceipts">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="AddItemsFromOrder" title="${uiLabelMap.ProductOrderItems}">
> -            <condition>
> -                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> -            </condition>
> -            <link target="AddItemsFromOrder">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="EditShipmentItems" title="${uiLabelMap.ProductItems}">
> -            <condition>
> -                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> -            </condition>
> -            <link target="EditShipmentItems">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="EditShipmentPackages" title="${uiLabelMap.ProductPackages}">
> -            <condition>
> -                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> -            </condition>
> -            <link target="EditShipmentPackages">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="EditShipmentPackages" title="${uiLabelMap.ProductPackages}">
> -            <condition>
> -                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> -            </condition>
> -            <link target="EditShipmentPackages">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="EditShipmentRouteSegments" title="${uiLabelMap.ProductRouteSegments}">
> -            <condition>
> -                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> -            </condition>
> -            <link target="EditShipmentRouteSegments">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -    </menu>
> -    <menu name="ShipmentActionBar" menu-container-style="button-bar button-style-2" default-selected-style="selected">
> -        <menu-item name="ReceiveInventory" title="${uiLabelMap.ProductReceiveInventory}">
> -            <condition>
> -                <and>
> -                    <not><if-empty field="facility"/></not>
> -                    <not><if-empty field="shipment"/></not>
> -                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT" />
> -                </and>
> -            </condition>
> -            <link target="ReceiveInventory">
> -                <parameter param-name="shipmentId"/>
> -                <parameter param-name="facilityId" from-field="facility.facilityId"/>
> -                <parameter param-name="purchaseOrderId" from-field="shipment.primaryOrderId"/>
> -                <parameter param-name="initialSelected" value="Y"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="ReceiveInventoryAgainstPurchaseOrder" title="${uiLabelMap.ProductReceiveInventoryAgainstPO}">
> -            <condition>
> -                <and>
> -                    <not><if-empty field="facility"/></not>
> -                    <not><if-empty field="shipment"/></not>
> -                    <not><if-empty field="shipment.primaryOrderId"/></not>
> -                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT" />
> -                </and>
> -            </condition>
> -            <link target="ReceiveInventoryAgainstPurchaseOrder">
> -                <parameter param-name="shipmentId"/>
> -                <parameter param-name="purchaseOrderId" from-field="shipment.primaryOrderId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="ReceiveInventoryAgainstPurchaseOrder" title="${uiLabelMap.ProductReceiveInventoryAgainstPO}">
> -            <link target="ReceiveInventoryAgainstPurchaseOrder">
> -                <parameter param-name="shipmentId"/>
> -                <parameter param-name="purchaseOrderId" from-field="shipment.primaryOrderId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="CreateShipmentNote" title="${uiLabelMap.CommonAdd} ${uiLabelMap.CommonNote}">
> -            <link target="CreateShipmentNote">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="CreateManifest" title="${uiLabelMap.ProductGenerateShipmentManifestReport}">
> -            <link target="ShipmentManifest.pdf" target-window="_BLANK">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -    </menu>
> -</menus>
> \ No newline at end of file
> diff --git a/applications/product/widget/facility/ShipmentScreens.xml b/applications/product/widget/facility/ShipmentScreens.xml
> index 96d07edb7c..95c18e31a8 100644
> --- a/applications/product/widget/facility/ShipmentScreens.xml
> +++ b/applications/product/widget/facility/ShipmentScreens.xml
> @@ -99,8 +99,8 @@ under the License.
>                                       <widgets>
>                                           <label style="h1" text="${uiLabelMap.ProductShipmentId}: ${shipment.shipmentId}"/>
>                                           <container>
> -                                            <include-menu location="component://product/widget/facility/ShipmentMenus.xml" name="ShipmentTabBar"/>
> -                                            <include-menu location="component://product/widget/facility/ShipmentMenus.xml" name="ShipmentActionBar"/>
> +                                            <include-menu location="${parameters.mainMenuLocation}" name="ShipmentTabBar"/>
> +                                            <include-menu location="${parameters.mainMenuLocation}" name="ShipmentActionBar"/>
>                                           </container>
>                                       </widgets>
>                                   </section>
> diff --git a/themes/common-theme/webapp/common-theme/js/package-lock.json b/themes/common-theme/webapp/common-theme/js/package-lock.json
> index 980e395fed..4af6c1cb59 100644
> --- a/themes/common-theme/webapp/common-theme/js/package-lock.json
> +++ b/themes/common-theme/webapp/common-theme/js/package-lock.json
> @@ -1,70 +1,109 @@
>   {
>       "name": "ofbiz-common-theme",
> +    "lockfileVersion": 3,
>       "requires": true,
> -    "lockfileVersion": 1,
> -    "dependencies": {
> -        "@chinchilla-software/jquery-ui-timepicker-addon": {
> +    "packages": {
> +        "": {
> +            "name": "ofbiz-common-theme",
> +            "license": "Apache-2.0",
> +            "dependencies": {
> +                "@chinchilla-software/jquery-ui-timepicker-addon": "^1.6.3",
> +                "dompurify": "^3.1.0",
> +                "featherlight": "^1.7.14",
> +                "flot": "^4.2.6",
> +                "inputmask": "^5.0.8",
> +                "jquery": "^3.7.1",
> +                "jquery-migrate": "^3.4.1",
> +                "jquery-ui-dist": "^1.13.2",
> +                "jquery-validation": "^1.20.0",
> +                "jquery.browser": "^0.1.0",
> +                "trumbowyg": "^2.28.0",
> +                "uglify-js": "3.17.4"
> +            }
> +        },
> +        "node_modules/@chinchilla-software/jquery-ui-timepicker-addon": {
>               "version": "1.6.3",
>               "resolved":"https://registry.npmjs.org/@chinchilla-software/jquery-ui-timepicker-addon/-/jquery-ui-timepicker-addon-1.6.3.tgz",
> -            "integrity": "sha512-P2rOR4MWcBMTbkaA0AE77COj8BTBIeNp9trtUKbvWFAoBoWHpwGhN8WIEjST7h/1nVQH+4CSpa4i9XoXZYvWXg=="
> +            "integrity": "sha512-P2rOR4MWcBMTbkaA0AE77COj8BTBIeNp9trtUKbvWFAoBoWHpwGhN8WIEjST7h/1nVQH+4CSpa4i9XoXZYvWXg==",
> +            "engines": {
> +                "node": ">= 0.8.0"
> +            }
>           },
> -        "dompurify": {
> +        "node_modules/dompurify": {
>               "version": "3.1.0",
>               "resolved":"https://registry.npmjs.org/dompurify/-/dompurify-3.1.0.tgz",
>               "integrity": "sha512-yoU4rhgPKCo+p5UrWWWNKiIq+ToGqmVVhk0PmMYBK4kRsR3/qhemNFL8f6CFmBd4gMwm3F4T7HBoydP5uY07fA=="
>           },
> -        "featherlight": {
> +        "node_modules/featherlight": {
>               "version": "1.7.14",
>               "resolved":"https://registry.npmjs.org/featherlight/-/featherlight-1.7.14.tgz",
>               "integrity": "sha512-4R0Vk0pTN5IPCuMABPtXJ6hgGgoK1qwbxGB4Nf06gXovw/i+r3s/f94ksZYjsW3c2oMEAS9A8exdlNaX9YSSRQ=="
>           },
> -        "flot": {
> +        "node_modules/flot": {
>               "version": "4.2.6",
>               "resolved":"https://registry.npmjs.org/flot/-/flot-4.2.6.tgz",
>               "integrity": "sha512-Iz4HCet1ZBQnjGwECz4jseD1zMnh7m2XJIMI6A62l8h2SeceLYOEmYGNQto1XhkSM9fUmqzyKhWwJ+RolWLydg=="
>           },
> -        "inputmask": {
> +        "node_modules/inputmask": {
>               "version": "5.0.8",
>               "resolved":"https://registry.npmjs.org/inputmask/-/inputmask-5.0.8.tgz",
>               "integrity": "sha512-1WcbyudPTXP1B28ozWWyFa6QRIUG4KiLoyR6LFHlpT4OfTzRqFfWgHFadNvRuMN1S9XNVz9CdNvCGjJi+uAMqQ=="
>           },
> -        "jquery": {
> +        "node_modules/jquery": {
>               "version": "3.7.1",
>               "resolved":"https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz",
>               "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg=="
>           },
> -        "jquery-migrate": {
> +        "node_modules/jquery-migrate": {
>               "version": "3.4.1",
>               "resolved":"https://registry.npmjs.org/jquery-migrate/-/jquery-migrate-3.4.1.tgz",
> -            "integrity": "sha512-6RaV23lLAYccu8MtLfy2sIxOvx+bulnWHm/pvffAi7KOzPk1sN9IYglpkl1ZNCj1FSgSNDPS2fSZ1hWsXc200Q=="
> +            "integrity": "sha512-6RaV23lLAYccu8MtLfy2sIxOvx+bulnWHm/pvffAi7KOzPk1sN9IYglpkl1ZNCj1FSgSNDPS2fSZ1hWsXc200Q==",
> +            "peerDependencies": {
> +                "jquery": ">=3 <4"
> +            }
>           },
> -        "jquery-ui-dist": {
> +        "node_modules/jquery-ui-dist": {
>               "version": "1.13.2",
>               "resolved":"https://registry.npmjs.org/jquery-ui-dist/-/jquery-ui-dist-1.13.2.tgz",
>               "integrity": "sha512-oVDRd1NLtTbBwpRKAYdIRgpWVDzeBhfy7Gu0RmY6JEaZtmBq6kDn1pm5SgDiAotrnDS+RoTRXO6xvcNTxA9tOA==",
> -            "requires": {
> +            "dependencies": {
>                   "jquery": ">=1.8.0 <4.0.0"
>               }
>           },
> -        "jquery-validation": {
> +        "node_modules/jquery-validation": {
>               "version": "1.20.0",
>               "resolved":"https://registry.npmjs.org/jquery-validation/-/jquery-validation-1.20.0.tgz",
> -            "integrity": "sha512-c8tg4ltIIP6L7l0bZ79sRzOJYquyjS48kQZ6iv8MJ2r0OYztxtkWYKTReZyU2/zVFYiINB29i0Z/IRNNuJQN1g=="
> +            "integrity": "sha512-c8tg4ltIIP6L7l0bZ79sRzOJYquyjS48kQZ6iv8MJ2r0OYztxtkWYKTReZyU2/zVFYiINB29i0Z/IRNNuJQN1g==",
> +            "peerDependencies": {
> +                "jquery": "^1.7 || ^2.0 || ^3.1"
> +            }
>           },
> -        "jquery.browser": {
> +        "node_modules/jquery.browser": {
>               "version": "0.1.0",
>               "resolved":"https://registry.npmjs.org/jquery.browser/-/jquery.browser-0.1.0.tgz",
> -            "integrity": "sha512-5GjtLzzEBzxs/nwSVpCbSdk0acssfKsP7Upp43zmdHVV1Vb6E9VayyqPAQlfLrTeZL3YSWocCbkOvKdAc2CN4g=="
> +            "integrity": "sha512-5GjtLzzEBzxs/nwSVpCbSdk0acssfKsP7Upp43zmdHVV1Vb6E9VayyqPAQlfLrTeZL3YSWocCbkOvKdAc2CN4g==",
> +            "engines": {
> +                "node": ">= 0.4.0"
> +            }
>           },
> -        "trumbowyg": {
> +        "node_modules/trumbowyg": {
>               "version": "2.28.0",
>               "resolved":"https://registry.npmjs.org/trumbowyg/-/trumbowyg-2.28.0.tgz",
> -            "integrity": "sha512-K4KX6psV+hUt03Y3RNdQM5Y+JLfZOUliNnCz5lm12Llfhwvx0P0geBsM0w9ZHeX5g8q7d2MC5X7sPOwGv0Q7Kw=="
> +            "integrity": "sha512-K4KX6psV+hUt03Y3RNdQM5Y+JLfZOUliNnCz5lm12Llfhwvx0P0geBsM0w9ZHeX5g8q7d2MC5X7sPOwGv0Q7Kw==",
> +            "peerDependencies": {
> +                "jquery": ">=1.8"
> +            }
>           },
> -        "uglify-js": {
> +        "node_modules/uglify-js": {
>               "version": "3.17.4",
>               "resolved":"https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
> -            "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g=="
> +            "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
> +            "bin": {
> +                "uglifyjs": "bin/uglifyjs"
> +            },
> +            "engines": {
> +                "node": ">=0.8.0"
> +            }
>           }
>       }
>   }
>

Re: (ofbiz-framework) branch trunk updated: Improved: FACILITY- Move from hard-coded menu location to parameterized (OFBIZ-12976) (#758)

Posted by Jacques Le Roux <jl...@apache.org>.
Hi,

Just FYI: I inadvertently pushed /webapp/common-theme/js/package-lock.json which was part of Pierre's PR. It uses lockfileVersion 3.

So it was build with npm 9* which is "Backwards compatible to npm v7." Actually it's also "Backwards compatible to v1 lockfiles as I experienced 
(using Win7 I stuck with Node.js v13.14.0 hence npm 8.1.0)

* https://docs.npmjs.com/cli/v9/configuring-npm/package-lock-json

Jacques

Le 17/04/2024 à 17:24, jleroux@apache.org a écrit :
> This is an automated email from the ASF dual-hosted git repository.
>
> jleroux pushed a commit to branch trunk
> in repositoryhttps://gitbox.apache.org/repos/asf/ofbiz-framework.git
>
>
> The following commit(s) were added to refs/heads/trunk by this push:
>       new 98d2b78bec Improved: FACILITY- Move from hard-coded menu location to parameterized (OFBIZ-12976) (#758)
> 98d2b78bec is described below
>
> commit 98d2b78bece10ac2ddea7e75bcb66dd4aa7276fc
> Author: Pierre Smits<pi...@somonar.com>
> AuthorDate: Wed Apr 17 17:24:49 2024 +0200
>
>      Improved: FACILITY- Move from hard-coded menu location to parameterized (OFBIZ-12976) (#758)
>      
>      Improved: FACILITY- Move from hard-coded menu location to parameterized (OFBIZ-12976)
>      
>      Move the menu location in the various facility screens from hard-coded to parameterized.
>      
>      modified: CommonScreens.xml, FacilityGroupScreens.xml, FacilityScreens.xml
>      changed location of various menus from hard-coded to parameterized
>      
>      modified:
>      - FacilitiesMenus.xml: added menus re shipment
>      - ShipmentScreens.xml: changed location of menus from hard-coded to parameterized
>      
>      Improved: Move the menu location in the various facility screens from hard-coded to parameterized. (OFBIZ-12976)
>      
>      removed: ShipmentMenus.xml
> ---
>   .../product/widget/facility/FacilityMenus.xml      | 128 +++++++++++++++++
>   .../facility/ShipmentGatewayConfigScreens.xml      |   2 +-
>   .../product/widget/facility/ShipmentMenus.xml      | 152 ---------------------
>   .../product/widget/facility/ShipmentScreens.xml    |   4 +-
>   .../webapp/common-theme/js/package-lock.json       |  81 ++++++++---
>   5 files changed, 191 insertions(+), 176 deletions(-)
>
> diff --git a/applications/product/widget/facility/FacilityMenus.xml b/applications/product/widget/facility/FacilityMenus.xml
> index 2661f121fc..b97e881d06 100644
> --- a/applications/product/widget/facility/FacilityMenus.xml
> +++ b/applications/product/widget/facility/FacilityMenus.xml
> @@ -318,5 +318,133 @@ under the License.
>                   <parameter param-name="facilityGroupId" from-field="facilityGroupId"/>
>               </link>
>           </menu-item>
> +    </menu>
> +    <menu name="ShipmentTabBar" title=" " extends="CommonTabBarMenu"
> +        extends-resource="component://common/widget/CommonMenus.xml" default-menu-item-name="ViewShipment">
> +
> +        <menu-item name="ViewShipment" title="${uiLabelMap.CommonView}">
> +            <link target="ViewShipment">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="EditShipment" title="${uiLabelMap.CommonEdit}">
> +            <link target="EditShipment">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="AddItemsFromInventory" title="${uiLabelMap.ProductOrderItems}">
> +            <condition>
> +                <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_RETURN"/>
> +            </condition>
> +            <link target="AddItemsFromInventory">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="EditShipmentPlan" title="${uiLabelMap.ProductShipmentPlan}">
> +            <condition>
> +                <or>
> +                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT"/>
> +                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> +                </or>
> +            </condition>
> +            <link target="EditShipmentPlan">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="ViewShipmentReceipts" title="${uiLabelMap.ProductShipmentReceipts}">
> +            <condition>
> +                <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT"/>
> +            </condition>
> +            <link target="ViewShipmentReceipts">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="AddItemsFromOrder" title="${uiLabelMap.ProductOrderItems}">
> +            <condition>
> +                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> +            </condition>
> +            <link target="AddItemsFromOrder">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="EditShipmentItems" title="${uiLabelMap.ProductItems}">
> +            <condition>
> +                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> +            </condition>
> +            <link target="EditShipmentItems">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="EditShipmentPackages" title="${uiLabelMap.ProductPackages}">
> +            <condition>
> +                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> +            </condition>
> +            <link target="EditShipmentPackages">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="EditShipmentPackages" title="${uiLabelMap.ProductPackages}">
> +            <condition>
> +                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> +            </condition>
> +            <link target="EditShipmentPackages">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="EditShipmentRouteSegments" title="${uiLabelMap.ProductRouteSegments}">
> +            <condition>
> +                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> +            </condition>
> +            <link target="EditShipmentRouteSegments">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +    </menu>
> +    <menu name="ShipmentActionBar" menu-container-style="button-bar button-style-2" default-selected-style="selected">
> +        <menu-item name="ReceiveInventory" title="${uiLabelMap.ProductReceiveInventory}">
> +            <condition>
> +                <and>
> +                    <not><if-empty field="facility"/></not>
> +                    <not><if-empty field="shipment"/></not>
> +                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT" />
> +                </and>
> +            </condition>
> +            <link target="ReceiveInventory">
> +                <parameter param-name="shipmentId"/>
> +                <parameter param-name="facilityId" from-field="facility.facilityId"/>
> +                <parameter param-name="purchaseOrderId" from-field="shipment.primaryOrderId"/>
> +                <parameter param-name="initialSelected" value="Y"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="ReceiveInventoryAgainstPurchaseOrder" title="${uiLabelMap.ProductReceiveInventoryAgainstPO}">
> +            <condition>
> +                <and>
> +                    <not><if-empty field="facility"/></not>
> +                    <not><if-empty field="shipment"/></not>
> +                    <not><if-empty field="shipment.primaryOrderId"/></not>
> +                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT" />
> +                </and>
> +            </condition>
> +            <link target="ReceiveInventoryAgainstPurchaseOrder">
> +                <parameter param-name="shipmentId"/>
> +                <parameter param-name="purchaseOrderId" from-field="shipment.primaryOrderId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="ReceiveInventoryAgainstPurchaseOrder" title="${uiLabelMap.ProductReceiveInventoryAgainstPO}">
> +            <link target="ReceiveInventoryAgainstPurchaseOrder">
> +                <parameter param-name="shipmentId"/>
> +                <parameter param-name="purchaseOrderId" from-field="shipment.primaryOrderId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="CreateShipmentNote" title="${uiLabelMap.CommonAdd} ${uiLabelMap.CommonNote}">
> +            <link target="CreateShipmentNote">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
> +        <menu-item name="CreateManifest" title="${uiLabelMap.ProductGenerateShipmentManifestReport}">
> +            <link target="ShipmentManifest.pdf" target-window="_BLANK">
> +                <parameter param-name="shipmentId"/>
> +            </link>
> +        </menu-item>
>       </menu>
>   </menus>
> diff --git a/applications/product/widget/facility/ShipmentGatewayConfigScreens.xml b/applications/product/widget/facility/ShipmentGatewayConfigScreens.xml
> index 7b3f2a812e..2458d9f385 100644
> --- a/applications/product/widget/facility/ShipmentGatewayConfigScreens.xml
> +++ b/applications/product/widget/facility/ShipmentGatewayConfigScreens.xml
> @@ -29,7 +29,7 @@ under the License.
>                   <!-- main defines the regions of the HTML page -->
>                   <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
>                       <decorator-section name="pre-body">
> -                        <include-menu name="ShipmentGatewayConfigTabBar" location="component://product/widget/facility/FacilityMenus.xml"/>
> +                        <include-menu name="ShipmentGatewayConfigTabBar" location="${parameters.mainMenuLocation}"/>
>                       </decorator-section>
>                       <decorator-section name="body">
>                           <section>
> diff --git a/applications/product/widget/facility/ShipmentMenus.xml b/applications/product/widget/facility/ShipmentMenus.xml
> deleted file mode 100644
> index 2b971f9fab..0000000000
> --- a/applications/product/widget/facility/ShipmentMenus.xml
> +++ /dev/null
> @@ -1,152 +0,0 @@
> -<?xml version="1.0" encoding="UTF-8"?>
> -<!--
> -Licensed to the Apache Software Foundation (ASF) under one
> -or more contributor license agreements.  See the NOTICE file
> -distributed with this work for additional information
> -regarding copyright ownership.  The ASF licenses this file
> -to you under the Apache License, Version 2.0 (the
> -"License"); you may not use this file except in compliance
> -with the License.  You may obtain a copy of the License at
> -
> -http://www.apache.org/licenses/LICENSE-2.0
> -
> -Unless required by applicable law or agreed to in writing,
> -software distributed under the License is distributed on an
> -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> -KIND, either express or implied.  See the License for the
> -specific language governing permissions and limitations
> -under the License.
> --->
> -
> -<menus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> -    xmlns="http://ofbiz.apache.org/Widget-Menu"  xsi:schemaLocation="http://ofbiz.apache.org/Widget-Menu http://ofbiz.apache.org/dtds/widget-menu.xsd">
> -
> -    <menu name="ShipmentTabBar" title=" " extends="CommonTabBarMenu"
> -        extends-resource="component://common/widget/CommonMenus.xml" default-menu-item-name="ViewShipment">
> -
> -        <menu-item name="ViewShipment" title="${uiLabelMap.CommonView}">
> -            <link target="ViewShipment">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="EditShipment" title="${uiLabelMap.CommonEdit}">
> -            <link target="EditShipment">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="AddItemsFromInventory" title="${uiLabelMap.ProductOrderItems}">
> -            <condition>
> -                <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_RETURN"/>
> -            </condition>
> -            <link target="AddItemsFromInventory">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="EditShipmentPlan" title="${uiLabelMap.ProductShipmentPlan}">
> -            <condition>
> -                <or>
> -                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT"/>
> -                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> -                </or>
> -            </condition>
> -            <link target="EditShipmentPlan">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="ViewShipmentReceipts" title="${uiLabelMap.ProductShipmentReceipts}">
> -            <condition>
> -                <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT"/>
> -            </condition>
> -            <link target="ViewShipmentReceipts">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="AddItemsFromOrder" title="${uiLabelMap.ProductOrderItems}">
> -            <condition>
> -                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> -            </condition>
> -            <link target="AddItemsFromOrder">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="EditShipmentItems" title="${uiLabelMap.ProductItems}">
> -            <condition>
> -                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> -            </condition>
> -            <link target="EditShipmentItems">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="EditShipmentPackages" title="${uiLabelMap.ProductPackages}">
> -            <condition>
> -                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> -            </condition>
> -            <link target="EditShipmentPackages">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="EditShipmentPackages" title="${uiLabelMap.ProductPackages}">
> -            <condition>
> -                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> -            </condition>
> -            <link target="EditShipmentPackages">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="EditShipmentRouteSegments" title="${uiLabelMap.ProductRouteSegments}">
> -            <condition>
> -                <if-compare field="shipment.shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/>
> -            </condition>
> -            <link target="EditShipmentRouteSegments">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -    </menu>
> -    <menu name="ShipmentActionBar" menu-container-style="button-bar button-style-2" default-selected-style="selected">
> -        <menu-item name="ReceiveInventory" title="${uiLabelMap.ProductReceiveInventory}">
> -            <condition>
> -                <and>
> -                    <not><if-empty field="facility"/></not>
> -                    <not><if-empty field="shipment"/></not>
> -                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT" />
> -                </and>
> -            </condition>
> -            <link target="ReceiveInventory">
> -                <parameter param-name="shipmentId"/>
> -                <parameter param-name="facilityId" from-field="facility.facilityId"/>
> -                <parameter param-name="purchaseOrderId" from-field="shipment.primaryOrderId"/>
> -                <parameter param-name="initialSelected" value="Y"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="ReceiveInventoryAgainstPurchaseOrder" title="${uiLabelMap.ProductReceiveInventoryAgainstPO}">
> -            <condition>
> -                <and>
> -                    <not><if-empty field="facility"/></not>
> -                    <not><if-empty field="shipment"/></not>
> -                    <not><if-empty field="shipment.primaryOrderId"/></not>
> -                    <if-compare field="shipment.shipmentTypeId" operator="equals" value="PURCHASE_SHIPMENT" />
> -                </and>
> -            </condition>
> -            <link target="ReceiveInventoryAgainstPurchaseOrder">
> -                <parameter param-name="shipmentId"/>
> -                <parameter param-name="purchaseOrderId" from-field="shipment.primaryOrderId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="ReceiveInventoryAgainstPurchaseOrder" title="${uiLabelMap.ProductReceiveInventoryAgainstPO}">
> -            <link target="ReceiveInventoryAgainstPurchaseOrder">
> -                <parameter param-name="shipmentId"/>
> -                <parameter param-name="purchaseOrderId" from-field="shipment.primaryOrderId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="CreateShipmentNote" title="${uiLabelMap.CommonAdd} ${uiLabelMap.CommonNote}">
> -            <link target="CreateShipmentNote">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -        <menu-item name="CreateManifest" title="${uiLabelMap.ProductGenerateShipmentManifestReport}">
> -            <link target="ShipmentManifest.pdf" target-window="_BLANK">
> -                <parameter param-name="shipmentId"/>
> -            </link>
> -        </menu-item>
> -    </menu>
> -</menus>
> \ No newline at end of file
> diff --git a/applications/product/widget/facility/ShipmentScreens.xml b/applications/product/widget/facility/ShipmentScreens.xml
> index 96d07edb7c..95c18e31a8 100644
> --- a/applications/product/widget/facility/ShipmentScreens.xml
> +++ b/applications/product/widget/facility/ShipmentScreens.xml
> @@ -99,8 +99,8 @@ under the License.
>                                       <widgets>
>                                           <label style="h1" text="${uiLabelMap.ProductShipmentId}: ${shipment.shipmentId}"/>
>                                           <container>
> -                                            <include-menu location="component://product/widget/facility/ShipmentMenus.xml" name="ShipmentTabBar"/>
> -                                            <include-menu location="component://product/widget/facility/ShipmentMenus.xml" name="ShipmentActionBar"/>
> +                                            <include-menu location="${parameters.mainMenuLocation}" name="ShipmentTabBar"/>
> +                                            <include-menu location="${parameters.mainMenuLocation}" name="ShipmentActionBar"/>
>                                           </container>
>                                       </widgets>
>                                   </section>
> diff --git a/themes/common-theme/webapp/common-theme/js/package-lock.json b/themes/common-theme/webapp/common-theme/js/package-lock.json
> index 980e395fed..4af6c1cb59 100644
> --- a/themes/common-theme/webapp/common-theme/js/package-lock.json
> +++ b/themes/common-theme/webapp/common-theme/js/package-lock.json
> @@ -1,70 +1,109 @@
>   {
>       "name": "ofbiz-common-theme",
> +    "lockfileVersion": 3,
>       "requires": true,
> -    "lockfileVersion": 1,
> -    "dependencies": {
> -        "@chinchilla-software/jquery-ui-timepicker-addon": {
> +    "packages": {
> +        "": {
> +            "name": "ofbiz-common-theme",
> +            "license": "Apache-2.0",
> +            "dependencies": {
> +                "@chinchilla-software/jquery-ui-timepicker-addon": "^1.6.3",
> +                "dompurify": "^3.1.0",
> +                "featherlight": "^1.7.14",
> +                "flot": "^4.2.6",
> +                "inputmask": "^5.0.8",
> +                "jquery": "^3.7.1",
> +                "jquery-migrate": "^3.4.1",
> +                "jquery-ui-dist": "^1.13.2",
> +                "jquery-validation": "^1.20.0",
> +                "jquery.browser": "^0.1.0",
> +                "trumbowyg": "^2.28.0",
> +                "uglify-js": "3.17.4"
> +            }
> +        },
> +        "node_modules/@chinchilla-software/jquery-ui-timepicker-addon": {
>               "version": "1.6.3",
>               "resolved":"https://registry.npmjs.org/@chinchilla-software/jquery-ui-timepicker-addon/-/jquery-ui-timepicker-addon-1.6.3.tgz",
> -            "integrity": "sha512-P2rOR4MWcBMTbkaA0AE77COj8BTBIeNp9trtUKbvWFAoBoWHpwGhN8WIEjST7h/1nVQH+4CSpa4i9XoXZYvWXg=="
> +            "integrity": "sha512-P2rOR4MWcBMTbkaA0AE77COj8BTBIeNp9trtUKbvWFAoBoWHpwGhN8WIEjST7h/1nVQH+4CSpa4i9XoXZYvWXg==",
> +            "engines": {
> +                "node": ">= 0.8.0"
> +            }
>           },
> -        "dompurify": {
> +        "node_modules/dompurify": {
>               "version": "3.1.0",
>               "resolved":"https://registry.npmjs.org/dompurify/-/dompurify-3.1.0.tgz",
>               "integrity": "sha512-yoU4rhgPKCo+p5UrWWWNKiIq+ToGqmVVhk0PmMYBK4kRsR3/qhemNFL8f6CFmBd4gMwm3F4T7HBoydP5uY07fA=="
>           },
> -        "featherlight": {
> +        "node_modules/featherlight": {
>               "version": "1.7.14",
>               "resolved":"https://registry.npmjs.org/featherlight/-/featherlight-1.7.14.tgz",
>               "integrity": "sha512-4R0Vk0pTN5IPCuMABPtXJ6hgGgoK1qwbxGB4Nf06gXovw/i+r3s/f94ksZYjsW3c2oMEAS9A8exdlNaX9YSSRQ=="
>           },
> -        "flot": {
> +        "node_modules/flot": {
>               "version": "4.2.6",
>               "resolved":"https://registry.npmjs.org/flot/-/flot-4.2.6.tgz",
>               "integrity": "sha512-Iz4HCet1ZBQnjGwECz4jseD1zMnh7m2XJIMI6A62l8h2SeceLYOEmYGNQto1XhkSM9fUmqzyKhWwJ+RolWLydg=="
>           },
> -        "inputmask": {
> +        "node_modules/inputmask": {
>               "version": "5.0.8",
>               "resolved":"https://registry.npmjs.org/inputmask/-/inputmask-5.0.8.tgz",
>               "integrity": "sha512-1WcbyudPTXP1B28ozWWyFa6QRIUG4KiLoyR6LFHlpT4OfTzRqFfWgHFadNvRuMN1S9XNVz9CdNvCGjJi+uAMqQ=="
>           },
> -        "jquery": {
> +        "node_modules/jquery": {
>               "version": "3.7.1",
>               "resolved":"https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz",
>               "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg=="
>           },
> -        "jquery-migrate": {
> +        "node_modules/jquery-migrate": {
>               "version": "3.4.1",
>               "resolved":"https://registry.npmjs.org/jquery-migrate/-/jquery-migrate-3.4.1.tgz",
> -            "integrity": "sha512-6RaV23lLAYccu8MtLfy2sIxOvx+bulnWHm/pvffAi7KOzPk1sN9IYglpkl1ZNCj1FSgSNDPS2fSZ1hWsXc200Q=="
> +            "integrity": "sha512-6RaV23lLAYccu8MtLfy2sIxOvx+bulnWHm/pvffAi7KOzPk1sN9IYglpkl1ZNCj1FSgSNDPS2fSZ1hWsXc200Q==",
> +            "peerDependencies": {
> +                "jquery": ">=3 <4"
> +            }
>           },
> -        "jquery-ui-dist": {
> +        "node_modules/jquery-ui-dist": {
>               "version": "1.13.2",
>               "resolved":"https://registry.npmjs.org/jquery-ui-dist/-/jquery-ui-dist-1.13.2.tgz",
>               "integrity": "sha512-oVDRd1NLtTbBwpRKAYdIRgpWVDzeBhfy7Gu0RmY6JEaZtmBq6kDn1pm5SgDiAotrnDS+RoTRXO6xvcNTxA9tOA==",
> -            "requires": {
> +            "dependencies": {
>                   "jquery": ">=1.8.0 <4.0.0"
>               }
>           },
> -        "jquery-validation": {
> +        "node_modules/jquery-validation": {
>               "version": "1.20.0",
>               "resolved":"https://registry.npmjs.org/jquery-validation/-/jquery-validation-1.20.0.tgz",
> -            "integrity": "sha512-c8tg4ltIIP6L7l0bZ79sRzOJYquyjS48kQZ6iv8MJ2r0OYztxtkWYKTReZyU2/zVFYiINB29i0Z/IRNNuJQN1g=="
> +            "integrity": "sha512-c8tg4ltIIP6L7l0bZ79sRzOJYquyjS48kQZ6iv8MJ2r0OYztxtkWYKTReZyU2/zVFYiINB29i0Z/IRNNuJQN1g==",
> +            "peerDependencies": {
> +                "jquery": "^1.7 || ^2.0 || ^3.1"
> +            }
>           },
> -        "jquery.browser": {
> +        "node_modules/jquery.browser": {
>               "version": "0.1.0",
>               "resolved":"https://registry.npmjs.org/jquery.browser/-/jquery.browser-0.1.0.tgz",
> -            "integrity": "sha512-5GjtLzzEBzxs/nwSVpCbSdk0acssfKsP7Upp43zmdHVV1Vb6E9VayyqPAQlfLrTeZL3YSWocCbkOvKdAc2CN4g=="
> +            "integrity": "sha512-5GjtLzzEBzxs/nwSVpCbSdk0acssfKsP7Upp43zmdHVV1Vb6E9VayyqPAQlfLrTeZL3YSWocCbkOvKdAc2CN4g==",
> +            "engines": {
> +                "node": ">= 0.4.0"
> +            }
>           },
> -        "trumbowyg": {
> +        "node_modules/trumbowyg": {
>               "version": "2.28.0",
>               "resolved":"https://registry.npmjs.org/trumbowyg/-/trumbowyg-2.28.0.tgz",
> -            "integrity": "sha512-K4KX6psV+hUt03Y3RNdQM5Y+JLfZOUliNnCz5lm12Llfhwvx0P0geBsM0w9ZHeX5g8q7d2MC5X7sPOwGv0Q7Kw=="
> +            "integrity": "sha512-K4KX6psV+hUt03Y3RNdQM5Y+JLfZOUliNnCz5lm12Llfhwvx0P0geBsM0w9ZHeX5g8q7d2MC5X7sPOwGv0Q7Kw==",
> +            "peerDependencies": {
> +                "jquery": ">=1.8"
> +            }
>           },
> -        "uglify-js": {
> +        "node_modules/uglify-js": {
>               "version": "3.17.4",
>               "resolved":"https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
> -            "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g=="
> +            "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
> +            "bin": {
> +                "uglifyjs": "bin/uglifyjs"
> +            },
> +            "engines": {
> +                "node": ">=0.8.0"
> +            }
>           }
>       }
>   }
>