Add-on Directory

AppJars Dynamic Menu - Vaadin Add-on Directory

Runtime-managed navigation for Vaadin apps: build multi-level menus in an admin UI, show each entry only to authorized users and move menus between environments as JSON. Commercial AppJar with a free mode. AppJars Dynamic Menu - Vaadin Add-on Directory
> **Licensing:** this add-on is a thin wrapper licensed under **Apache 2.0**. It contains no code of its own and simply pulls in the **Dynamic Menu AppJar** modules, which are **commercial software** distributed under the [AppJars Software License Agreement](https://www.appjars.com/legal/license/v1/). You can use Dynamic Menu for free in **free mode** (up to 5 menu items; separators, items without a URL and items that open an AppJar view are not counted). A license removes all limits. See [Licensing](https://docs.appjars.com/licensing/). **Dynamic Menu** moves your application's navigation menu out of the code and into an administration UI built with Vaadin Flow. Administrators create, nest and reorder menu items at runtime, decide who sees each entry, and carry the whole configuration between environments, with no code changes or redeployments. ## Features - **Runtime menu management:** create, edit and delete menu items from a dedicated view, and reorder or nest them by dragging rows in a tree grid. - **Multi-level hierarchy:** nest items into groups and sub-groups, with section headers and separators to structure long menus. - **Internal routes and external URLs:** point items at any registered route, including routes with parameters, or at an external link, with icons and tooltips. - **Permission-based visibility:** each item either follows the access rules of the view it opens or carries explicit role constraints (required, any-of and excluded roles); groups left empty are hidden automatically. - **Multilingual labels:** labels and tooltips can be i18n keys, translated at runtime into the user's language. - **JSON import and export:** back up the menu or move it between environments, with a preview and a choice of merge strategies on import. ## Installation If your project doesn't declare it yet, add the Vaadin add-ons repository: ```xml vaadin-addons https://maven.vaadin.com/vaadin-addons ``` Add the dependency. The wrapper declares the AppJars repository (`https://maven.appjars.com`), so Maven resolves the modules automatically: ```xml org.vaadin.addons.appjars appjars-dynamic-menu 2.1.0 ``` - **Gradle** ignores repositories declared in dependency POMs, so add `maven { url "https://maven.appjars.com" }` to your repositories. - **Nexus/Artifactory mirroring everything (`mirrorOf *`):** your administrator needs to add a proxy for `https://maven.appjars.com`. Then follow the [Getting started guide](https://docs.appjars.com/dynamic-menu/getting-started/). ## Requirements - Java 21 - Vaadin 25.2 - Spring Boot 4.1 - A `DynamicMenuAuthorityUtils` bean exposing the application's roles ([details](https://docs.appjars.com/dynamic-menu/developer-guide/)) - JPA / Hibernate, with `hibernate.event.merge.entity_copy_observer=allow` ([details](https://docs.appjars.com/dynamic-menu/getting-started/)) ## Included dependencies | Artifact | License | |---|---| | `com.appjars:appjars-dynamic-menu-flow` | AppJars Software License Agreement v1 (commercial) | | `com.appjars:appjars-dynamic-menu-business-impl` | AppJars Software License Agreement v1 (commercial) | | `com.appjars:appjars-dynamic-menu-data-impl` | AppJars Software License Agreement v1 (commercial) | These modules transitively bring in the rest of the Dynamic Menu modules and `appjars-*-utils` (same commercial license), plus open-source libraries such as Vaadin add-ons by Flowing Code (Apache 2.0). ## Links - [Product page](https://www.appjars.com/catalog/dynamic-menu/) - [Documentation](https://docs.appjars.com/dynamic-menu/overview/) - [Demo application](https://github.com/AppJars/dynamic-menu-demo) - [Licensing and free mode](https://docs.appjars.com/licensing/) AppJars are built and maintained by [Flowing Code](https://www.flowingcode.com).
Issue tracker
Online Demo
Discussion Forum
Author Homepage
View on GitHub

AppJars Dynamic Menu version 2.1.0
A minor release, with a fairer free-mode item count and a fix for icon families. #### Free mode - **Only your own menu entries count** towards the 5-item allowance: separators, items without a URL of their own and items that open a view provided by an AppJar (including Dynamic Menu itself) are no longer counted. - **New item and Import stay available** at the limit; the item editor disables **Save** only when the item being composed would take the count past 5, and re-checks it whenever the separator or URL fields change. - The **import dialog projects the count per strategy**, including nested items: *Remove All & Import* starts from an empty menu, *Add New Only* skips existing items and *Overwrite* counts a replaced item only once. - The free-mode bar now **explains what counts** towards the limit. - `MenuItemService` adds **`getFreeLimitStatus`, `canSaveWithinFreeLimit` and `canImportWithinFreeLimit`**; applications that implement the interface themselves must implement them. #### Fixes - Editing an item