From a functional point of view, portals are filling the gap between the DAM and Boards. A portal allows to group together different assets and to feature this group within the DAM.
From a DAM perspective, portals is just a tree metadata to index assets. The main relationship for linking an asset to a portal is by checking the asset portals
metadata.
In order for portals to have their own landing page, they require some additional properties for storing content.
The portal object
portal
is a PONO (Plain Old Noheto Object) defined to meet within a single object, all the needs of a portal to be displayed :
it is a tree so it can manage sections, with sorting capabilities (portal, position)
it is i18n and can handle indexed description OR HTML description
it can be shared with a team like collaborativespace
it can be private like a board
it can have viewers
it can provide a list of assets per entry position
its visibility can be easily managed through visibility
it allows the front end to store any view option
Portals fields
name | type | comments | |
---|---|---|---|
Visibility / Security | status |
| It is expected that the workflow defines online as well as archived steps. |
private |
| When set to | |
team |
| Defines the list of users allowed to update the instance. | |
viewers |
| Defines the list of users allowed to view the instance, even if instance is private | |
visibility |
| A property used by the Front-End to change the visibility of the instance. 3 different values are handled :
| |
Portal / Section common | portal |
| Allows to define portals and sections as a tree |
position |
| Allows to order the sections within a portal | |
name, namefr, namede |
| Name of portal/section | |
state |
| Used as a state by Front End to store any display option | |
Portal specific | description, descriptionfr, descriptionde |
| Description of a portal. This property is indexed |
logo |
| Logo for the portal | |
cover |
| Cover image for the portal | |
Section specific | firstitems |
| |
newestitems |
| ||
descriptiohtml, descriptionhtmlfr, descriptionhtmlde |
|
The portal object regarding assets
Additional structures and changes to the model
Home widgets
Overview
Faces
Faces of vueapphomewidget have been updated to have BO forms with better behaviour.
Only faces for rowX2, rowX3, rowX4 elements have been updated. Faces for carousel and waffle are still the same. Here you will find a plantuml graph explaining the behaviour.
Download assets of a portal
Overview
The media download functionality allows users to download a selection of assets from a portal as a ZIP file. The process involves creating a download request and then retrieving the file through a download link.
Registering the download request
To initiate a media download, a download request must be registered. This is done by requesting the service api/packaged/portals/zip/register/{portalUUID}
, which creates an instance of the portaldownload
object. This object contains all the necessary information to prepare the ZIP file.
The service will generate a portaldownload
object, which holds details like:
name
: The name of the ZIP file (without the extension).portal
: The unique identifier (UUID) of the portals/section from which assets are downloaded.uuids
: The UUIDs of the selected media files for download.data
: Additional metadata about the request such as download options, file transformation profiles, etc.expires
: The expiration date for the download link.
Once it reaches its expiration date, the instance will be automatically deleted. The expiration date is obtained by adding to the date of the request creation, the value of the parameter portal_download_expiration of the plugin PACKAGED_Portals (the Default value is 7 days).query
: If provided, this specifies a query to dynamically select assets for download. If filled, the value set in theuuids
property is ignored
Downloading the media
The
download
service lets users retrieve the ZIP file from aportaldownload
instance.The download link uses the UUID of the
portaldownload
instance created during theregister
step.API Example:
GET api/packaged/portals/zip/download/{portalDownloadUUID}
Optional parameter :
filename: Custom name for the ZIP file
Registered Services
Below is a list of services that are used within the plugin PACKAGED_Portals plugin for the portals feature.
1. Portal Object Trigger Service
Service Class:
com.wedia.packaged.portals.extensions.PortalsTrigger
Interface:
com.noheto.extensions.interfaces.services.IObjectTriggerBusinessService
Description:
This service contains the logic for managing object triggers related to the "portal" object. It ensures that the appropriate actions are performed whenever certain events (here insertion or update) occur on the portal object.
2. Assets Object Trigger Service
Service Class:
com.wedia.packaged.portals.extensions.AssetsTrigger
Interface:
com.noheto.extensions.interfaces.services.IObjectTriggerBusinessService
Description:
This service manages the triggers associated with DAM Objects that have a property namedportals
and that points to theportal
object. It handles the management of assignments/removal of portal’s sections when inserting or updating assets, through theportals
property.
3. Plugin Lifecycle Management Service
Service Class:
com.wedia.packaged.portals.extensions.PluginLifecycle
Interface:
com.noheto.extensions.interfaces.services.IPluginLifeCycleBusinessService
Description:
This service handles the lifecycle of the plugin, initializing various singletons and thread pools when the plugin PACKAGED_Portals starts or stops.
4. Portals API Service
Service Class:
com.wedia.packaged.portals.extensions.PortalsAPIService
Interface:
com.noheto.extensions.interfaces.services.AbstractPluginApiService
Description:
This service acts as the entry point for the public APIs related to portals. It exposes functionality that allows the front or external systems/users to interact with the portals and perform operations such as assignments/removal of assets to/from sections, media downloads, etc.
5. Portals Admin API Service
Service Class :
com.wedia.packaged.portals.extensions.PortalsAdminAPIService
Interface:
com.noheto.extensions.interfaces.services.AbstractPluginApiService
Description:
This service serves as the entry point for administrative APIs related to the portals. It allows administrators to configure, manage, and monitor portal-related features and availability.
6. WXM_RESTAPI Extension Service
Service Identifier:
com.noheto.restapi.startup.ApiBusinessServiceStartup
Service Class:
com.wedia.packaged.portals.extensions.PortalsCustomSection
Interface:
com.noheto.extensions.interfaces.services.InstallableService
Description:
This service extends the standard APIs provided by the WXM_RESTAPI plugin. It is mainly used to provide a$custom
section when using DAM/DATA services onportal
object in order to provide additional pieces of information for the front.