Blog from May, 2017

Across 2.1.0

  • Added LocalizedTextResolver to easily localize (eg. translate) text snippets
    • The default implementation MessageCodeSupportingLocalizedTextResolver supports special message code snippets, examples:
      • Some text will always return Some text
      • #{my.code} will return the resolved message code or my.code if no message found
      • #{my.code=Some text} will return the resolved message code or Some text if no message found
    • A default singleton bean is exposed and attached to the current MessageSource
  • ViewElementBuilderContext implements the LocalizedTextResolver interface as well as now having several message code related methods
    • This makes it useful to localize texts when creating a ViewElement inside a ViewElementBuilder

BootstrapUiModule 1.1.0

  • Menu structures can now also be rendered to panels based markup (sidebar as in AdminWebModule) and as breadcrumb
    • BootstrapUiComponentFactory provides access to the specific builders
    • Builders support filtering of items making it useful to render the same Menu in multiple ways (example in AdminWebModule: AdminMenu and AdminWebLayoutTemplate)
    • Builders also support message code snippets for item titles, eg you can now put #{my.item=My default item title} as title
  • Select box controls now support more advanced bootstrap-select controls
    • These can be customised by setting a SelectFormElementConfiguration

AdminWebModule 2.1.0

  • Improved AdminWeb layout template:
    • slightly improved base styling and nav components
    • fix some styling issues in mobile view
    • support full customisation of all navigational components:  top menu (left & right), sidebar and breadcrumb
    • FontAwesome icon set is also added by default
  • All dismissible alerts are now rendered as Toastr notifications that automatically disappear after a number of seconds

EntityModule 2.1.0

  • improve the ability to customise page titles and layouts
    • all entity views now set a page (sub) title if a matching message code returns a non-empty string
    • there is a default title for all views except the list view
    • list views now also publish an EntityPageStructureRenderedEvent
  • all select options are by default rendered as a bootstrap-select
    • a SelectFormElementConfiguration attribute on a property descriptor will be used as the configuration for a select box type property

WebCmsModule 0.0.2

  • Implement basic web component infrastructure
    • Ability to render components in Thymeleaf markup but use default template markup if no component present
    • Allow creation of web components to be triggered from Thymeleaf and be prefilled with Thymeleaf markup
    • Support placeholder segments defined in the Thymeleaf templates
    • Provide component hierarchy: multiple scopes can be defined (eg: global, page...) and components can be searched for bottom-up
      • This allows overriding default components on a per page/asset level
    • Basic components can be imported using YAML
    • The WebCmsComponentModel also implements ViewElement making it very easy to mix with other ViewElement rendering functionality
  • Add default components:
    • Image component that allows selecting a WebCmsImage asset (type: image)
    • Text component that supports plain-text, rich-text or html markup (types: plain-text, text-field, rich-text, html)
      • Markup supports content markers for rendering other components or placeholders inside the markup
    • Container component that represents an ordered collection of other components (type: container)
  • Add shared components functionality: global components
  • Article assets now use web components for their fields
    • This allows templates to be used for different article types and applications to customize which fields they want an article to have
    • Article template can be configured on WebCmsArticleType

Across Platform 2.0.0 has been released and this includes new release versions for several modules.  See the reference documentation for an overview of the different module versions.

Anyone working with platform-bom 2.0.0-SNAPSHOT should switch as soon as possible as the SNAPSHOT versions will be removed from the repository.

The Across starter project has been updated for release 2.0.0 as well.

EntityModule 2.0.0

  • Transaction support for default entity views has been added
    • the default PlatformTransactionManager is now detected for all Spring Data repositories and the bean name added as a EntityConfiguration attribute: EntityAttributes.TRANSACTION_MANAGER_NAME
    • EntityViewFactoryBuilder supports configuring transactions for state modifying HTTP methods (POST, PUT, PATCH or DELETE) - all doControl() methods of all processors involved will happen in a single transaction
      • configuration can be done by specifying either the transaction manager bean name, the PlatformTransactionManager to use or the specific TransactionTemplate that should be used
      • if a transaction manager bean name is registered on the EntityConfiguration, transaction support will be enabled for all form views (create, update, delete and custom form views)
  • If an OptionIterableBuilder (select, radio or multi-checkbox) returns only a single item and a value for the control is required, the single item will be automatically selected
  • The default Hibernate Validator ValidationMessages properties is now included by EntityModule
  • Improve the ability to customize view page layouts
    • If a message code is non-empty a page title and optional sub title will always be set for every view
    • the EntityPageStructureRenderedEvent is published for all view types - allowing modifications across multiple views without requiring separate EntityViewProcessors
  • Bug fixes:
    • It is now possible to force a String property to generate a TextareaFormElement even if it has a length/size validator that would generate a single-line control

BootstrapUiModule 1.0.0

  • Bug fixes:
    • The HTML id of a generated SelectFormElement will now always be the same as the control name unless explicitly set
    • The wrapping div of radio or checkbox options control now has a HTML id of the form options-CONTROL_NAME

WebCmsModule 0.0.1

  • Implement basic web component infrastructure
    • Ability to render components in Thymeleaf markup but use default template markup if no component present
    • Allow creation of web components to be triggered from Thymeleaf and be prefilled with Thymeleaf markup
    • Provide component hierarchy: multiple scopes can be defined (eg: global, page...) and components can be searched for bottom-up
      • This allows overriding default components on a per page/asset level
    • Basic components can be imported using YAML
    • The WebCmsComponentModel also implements ViewElement making it very easy to mix with other ViewElement rendering functionality
  • Add default components:
    • Image component that allows selecting a WebCmsImage asset (type: image)
    • Text component that supports plain-text, rich-text or html markup (types: plain-text, text-field, rich-text, html)
    • Container component that represents an ordered collection of other components (type: container)
      • Container components can currently only be manages from code or YAML - the UI does not yet support adding members
  • Add shared components functionality: global components
  • Article assets now use web components for their fields
    • This allows templates to be used for different article types and applications to customize which fields they want an article to have
    • Article template can be configured on Publication type