FreeNew
base-promotions
No summary provided by the publisher yet.
Install
msc install --appId=base-promotionsWhat this extension does
Promotions API
A module for managing promotions with GraphQL support.
Abstract
The base-promotions module provides functionality for handling promotions in modern applications. It integrates with GraphQL APIs, offering queries for promotion management.
What it does
This module enables your application to:
- Manage promotions through GraphQL queries
- Handle promotion data and banners
- Provide real-time updates via subscriptions
Key Features
- GraphQL Integration: Provides queries for promotion data
- Data Storage: Persists promotion information in the database
- Event System: Supports subscriptions for real-time promotion updates
Changelog
1.5.2 (2026-10-28)
- The banners page takes a picture of any image type (
image/*, the extension from the type) up to 5 MB, as the panel's media manager; a bigger file is refused on the page before it is sent - the proxy in front of the server answered 413 with no reason said.
1.5.1 (2026-10-28)
- Built with TypeScript 5 (was ^3.1.6): 3.x dropped the import of
slugifyfrom the compiled admin app (1.5.0: the picture upload and a new stock without an address failed with "slugify is not defined"). - The hook's
adminizer:loadedhandler catches: a failure of the module's admin part is logged and does not stop the panel (Adminizer emits the event inside its start; base-pages 1.5.0 left the HP server's panel unmounted that way).
1.5.0
- The module's part of the admin panel is an Adminizer app (
src/adminizer/BannersApp, enabled onadminizer:loaded):- the page "Banners" in "Marketing" (
/admin/banners-manager, rightbanners-manager): two lists, the slides of the menu and the stocks of the site (isStock), each with the switch (saved at once) and the order by dragging (sortOrder, saved on the drop); a banner's title, link, the pictures for the desktop (required), tablet and phone; a stock also its address (/stocks/<mnemonicId>; empty - made from the title), teaser, text (Tiptap) and days. Video, concepts and hours are not edited and are kept. A banner is switched off before it is deleted: the storefronts' subscription cannot tell a record is gone; - a picture is uploaded as the request's body and saved as
upload-imageof the stand does:.tmp/public/uploads/<slug>-<hash>.<ext>, the field stores[{ url: "/uploads/..." }]; - the info widget
banners-count- banners in the carousel, switched on and not a stock; its right iswidget-banners-count.
- the page "Banners" in "Marketing" (
- The page's source is
ui/BannersManager.jsx, the bundle the panel imports -assets/adminizer/BannersManager.js, in the repository: after a change of the sourcenpm run build:adminizer. - The model's table in the admin panel is gone (
src/lib/bindAdminpanelconfig), and with it the hook'safterHook, which only bound it. The compiled.jsand.d.tsofsrcare gone from the repository, as in the other modules: the build (tsc) makes them. slugifyis a dependency: the model and the page use it.- The editor's Save, Undo changes and Delete stay at the top while the form scrolls; the questions (unsaved changes, deleting, the link of the text) are the panel's dialog (
window.UIComponents.Dialog,ui/ask.jsx), not the browser's confirm and prompt. - Each banner of the list has Edit.
1.4.2
- MCP tools for banners (group
banners):banner-list,banner-get,banner-create,banner-update,banner-delete. Image fields take an address (whatupload-imagereturns), a list of them, or{ url, "url@0_5x", "url@2x" }objects;nullclears one. Registered onmcp:readywhenMCP_ENABLED=true, like the tools of banner-cards. - The stock resolver is named after its schema field (
stock, wasstreets): the places core refuses a resolver its schema does not declare and halts.
Release history
15 releases| Version | Channel | Status |
|---|---|---|
| 1.5.2 | staging | Latest on staging |
| 1.5.1 | staging | Archived |
| 1.5.0 | staging | Archived |
| 1.4.2 | staging | Archived |
| 1.4.1 | staging | Archived |
| 1.4.0 | main | Latest stable |
| 1.3.0 | staging | Archived |
| 1.2.8 | main | Archived |
| 1.2.7 | main | Archived |
| 1.2.6 | main | Archived |
| 1.2.5 | main | Archived |
| 1.2.4 | main | Archived |
| 1.2.3 | main | Archived |
| 1.2.2 | main | Archived |
| 1.2.1 | main | Archived |
Support
Issues with the extension itself go to the publisher. Anything about the registry goes to us.