What's new in EzyPlatform 1.2.1?
This release improves the Admin Global Search experience, introduces a schema system for template parameters, expands CommonDataSchema capabilities, and enhances media file-name generation.
- New shortcut for opening Global Search in AdminAdministrators can now open the Global Search bar by pressing
Shifttwice within500ms. The existing shortcutCtrl + Alt + Shift/Meta + Fremains fully supported. PressingEscapecontinues to close the search bar when it is open. - Introduced template-parameter schema supportAdded
TemplateParametersSchemato describe template variables, general documentation, and extended metadata for templates. A newTemplateParametersSchema.VariableSchemamodel, extendingCommonDataSchema, is available for describing individual template variables. This provides a structured and reusable way to document template parameters. - Added TemplateParametersSchemaFetcher infrastructureIntroduced
TemplateParametersSchemaFetcherso modules and plugins can provide schema definitions for specifictemplateTypeandtemplateNamecombinations. AddedTemplateParametersSchemaFetcherManagerto register, manage, and retrieve fetchers at runtime. The manager supports retrieving all fetchers or resolving a fetcher by template type and template name. When multiple fetchers are registered for the same template, the most recently registered fetcher takes precedence. - Template schema managers integrated into Admin and WebAdded
AdminTemplateParametersSchemaFetcherManagerandWebTemplateParametersSchemaFetcherManager. Both managers are registered as singleton components, allowing admin and web plugins to access template parameter schemas directly. - Expanded CommonDataSchema capabilitiesAdded a new
propertiesfield for storing extended metadata. Introduced the static methodCommonDataSchema.builder()and enhanced the builder to accept field collections containing subclasses ofCommonDataSchema, making schema inheritance and reuse more convenient. - Improved media file-name generation
MediaService.generateMediaFileNamenow usesSystem.nanoTime()instead ofSystem.currentTimeMillis()when generating unique file names. This reduces the probability of filename collisions when multiple media files are created within very short time intervals.