All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and the Common Changelog.
- Web tags have been implemented so that frontend dependencies can be easily updated using NPM scripts without code changes in HTML web pages
- Added Dev Container
- A static site generator allows an online and offline page renderer to output complete standalone SEO-compliant websites powered by Nginx. See
MakeStaticSiteApp
and set environment variables
- Added a visual column editor for collections so that table columns can be selected and arranged
- Environment variables can provide a value for any Site Property
- SSO using OIDC can parse the initial token response for both access and user id information, instead of a separate call
- When using SSO with Azure EntraId and OIDC, the MS ActiveDirectory groups are found in the user id information
- Additional logging in the console to explain and report on OIDC setup and configuration
- Outgoing mail can be configured with TLS setting
- Fixed adding a self-hosted logo graphic used on outgoing emails when the site was private
- Refactored FileSystem classes for OS compatibility
- In the layout editor, widget examples and their preferences are shown in an accordion
- Widgets can specify a Thymeleaf HTML template in addition to a JSP (for static site generator SSG feature)
- Added OAuth OpenID Connect endpoint discovery
- Added OAUTH environment variables:
OAUTH_ENABLED
,OAUTH_SERVER_URL
,OAUTH_CLIENT_ID
,OAUTH_CLIENT_SECRET
,OAUTH_REDIRECT_URI
- Added HTML widget templates
- Changed Menu tabs to gain highlighting when a submenu item matches the current page
- Refactored instances of business logic from presentation layer to application layer
- Minimum of Java 17 is required
- Added MKDocs style TechDocs
- Datasets can load TSV files
- Updated item editor to allow linking an image to the item
- Added
CMS_PATH
environment variable to specify the file library location
- Added option so that dataset downloads can be scheduled
- Datasets can be sync'd to items
- Added collection custom fields editor
- Added collection custom fields
- Added editor for items with custom fields
- Added Moodle calendar events
- Added MermaidJS to the wiki module
- Added Apache Superset dashboard widget
- Changed Square dependency and removed deprecated/unsupported Square Connect
- Added integration with Moodle
- Added integration with PERLS
- Added integration with BigBlueButton
- Added RemoteCourseList widget to display courses for student, teacher, or any enrolled status
- Added dataset transforms with realtime previews
- Added progressCard and statisticCard widgets
- Updated to Full Calendar 5
- Added calendar view preferences
- Added card view preference for item lists
- User groups added to menu navigation
- User groups added to search results
CMS_URL
environment variable added for container deployments
- Added OAuth integration, includes Keycloak example
- Added option so web components can require a user group for access by using the group="example-group" attribute
Public Project
- Added configuration directory for reloadable system files
- Added Font Awesome 6
- Collections now have icons, themes, and directory listing and search preferences
- Added Collection and Item editing links
- The user is emailed after registering with the site
- New /show/itemUniqueId/* pages, collection-based tabs
- Added fields for marketing and sales funnels
- Added BlogPostPublishedEvent, WebPagePublishedEvent, WebPageUpdatedEvent
- Integrated asynchronous workflow engine and playbooks
- Added xAPI Statements
- Added product catalog Strike Price which is shown with a strike through the price
- Added ETL setting to skip duplicate data when previewing a dataset
- Checks for spam in forms using
spam-list.csv
- Added product catalog BOGO-like pricing rules
- Order Management supports multiple fulfillment options and multiple tracking numbers
- Order shipment tracking numbers can be manually entered
- Fulfillment Shipping rates can exclude specific SKUs
- Updated cart pricing rules based on eligible amounts, limits, valid SKUs, min subtotal, min order qty
- Product catalog supports multiple fulfillment options
- In the content editor, the add link command shows a list of web pages to choose from
- In the content editor, the user can choose to turn a link into a button
- Added "itemsMapApp", an items list widget with multiple markers shown on a map with interactive filters
- Added Security module to the admin menu
- Added blocked IP list manager
- Added auto-refreshing stat tables
- Creates Square orders with line-items, discounts, taxes, and shipping
- Square Location Id property can be set for orders
- Improved dataset module with tabbed ui, grid preview, text preview, remote download, conversion formats
- Added Bot detection with customizable
bot-list.csv
and integrated with site statistics
- Added blog cards to new page templates
- Added nested accordions by using H1 tags in the content editor
- Added Upload/Remote Download of JSON datasets with admin customizable data mapping
- E-Commerce analytics module shows map, orders, and shipping info
- When user validates their email, associated orders are now linked
- Tracking numbers have links to the respective delivery carrier website
- Added admin feature to download a CSV list of orders
- Community analytics module updated to show number of users online now, and for the current day
- Content analytics module updated to show top paths and top web hits
- Editing the product catalog creates and updates the product catalog in Square
- Fixed Instagram issue so cached Instagram media will update on the website when the admin access token has changed
- Added Admin UI to create and update product catalog pricing rules
- Orders are checked on a schedule for customer processing updates and for tracking information updates
- Added a product catalog promo codes database, rules engine, and promo code entry form
- Added order management capabilities to cancel orders, refund payments, get tracking numbers, search orders and customers with partial information
- Added site keyword property for title SEO
- Added globalMessage widget for shared page UI messages for success, errors, etc.
- Users can create an account during e-commerce checkout to see orders
- Sends order confirmation email to customer with order details
- Boxzooka product fulfillment and order integration
- Square order payment integration charges credit card
- Added searching customers and orders
- Added product catalog restricted shipping locations
- Formatting for product catalog item attributes
- Feature added to allow admin seeing checkout process without a processor
- Fixed compile errors on e-commerce pages
- Changed CMS edit page layout to use CodeMirror XML editor
- When HTML page renders, styles and javascripts are combined for browsers
- Added Instagram photos widget and background scheduler to retrieve new images
- Email subscribes are added to Mail Chimp Lists/Audiences
- Added Mailing List settings for MailChimp API integration
- Added Social Media settings for Instagram API integration
- Added page template for Photo Album and Gallery
- 'Add to cart' allows a user to choose from any configured product options
- Page XML layouts have new attributes for section style, column style, and widget style
- Added Blog page keywords and description
- Blog content is indexed as text for the search engine
- Added Folder categories, which allows files to be assigned to a category
- Added File URLs, so files can be added by specifying a URL, without uploading a file
- Added Sub-Folders under Folders admin module
- Added Album Gallery (albumGallery) widget and Photo Gallery (photoGallery) widget
- Added /admin/sticky-footer-links
- Added search feature to search web pages, sitemap titles, table of contents, and upcoming calendar events
- Search terms are highlighted in the results
- Added new widgets: searchInfo, webPageSearchResults, webPageTitleSearchResults
- Added calendar event landing pages
- Added Blog post list preference showSort=true to show sort drop-down
- Added blogPostName widget to use and style the blog post name
- BlogPost preference showTitle=false to hide title
- Added content widget preference view=carousel and display=text|images
- When choosing a web page template, the web page title can be entered
- Added editing footer useful links for some footer layouts
- Added a site preference to show a Site Confirmation prompt before accessing the site
- Added content widget preference to embed content to reveal on a link click "addReveal"
- Added blog list preferences for view=cards, view=masonry
- Added upcoming event list preferences for view=cards, includeLastEvent=true/false
- Added data widgets: addItemForm, editItemForm, approveItemButton, hideItemButton, deleteItemButton
- Added itemsList widget preference view=table
- Added feature so mailing lists can be downloaded as CSV files
- Added productName widget to show product name and price from database
- Streamlined the add to cart based on SKUs and product attributes
- Shipping rates can display text to the user during checkout
- Email is sent to data managers when a form is submitted, configurable per form
- Added Data Manager administrative role
- Added HTML content editor 'anchors' for section targeting on a page
- Added UpcomingCalendarWidget preference 'showMonthName'
- Added BlogPostListWidget preferences 'showDate', 'addDateToTitle'
- Added Content 'accordion' view and preferences for 'smallCardCount', 'mediumCardCount', 'largeCardCount'
- Added AddItemButtonWidget preferences 'requiresPermission', 'buttonName', 'addUrl'
- Added CategoriesListWidget preference 'directoryUrl'
- Added CreateAnItemWidget preferences 'requiresPermission', 'form'='business'
- Added ItemsListWidget preference 'view'='table'
- Added PropertyMapAppWidget custom CSS
- Added PropertyMapAppWidget preferences 'titleHtml', 'city' for POIs
- Added Google Analytics and configuration setting
- Added Footer settings for Address, Phone Number, and Hours to be used in Footer design
- Added CSS animate
- Directory item widget can allow any item to be added, for approval
- Property Map allows for CSS customization
- Added CSS animations
- Added footer values for address, phone, hours
- Added content accordion
- Added order confirmation page
- Added order history details to the user page
- Admin can look at customers and orders
- Added saving and restoring themes
- Footer and Header configuration improvements
- Admin can upload site logos
- Stripe integration creates customer, order, and charges card
- Added system-level order number formatting
- The cart calculates the US sales tax amount based on nexus addresses
- Admin can add/update shipping rates
- The cart calculates the shipping and handling amount
- If USPS makes an address suggestion, the user can choose which address to use
- Added title, subtitle to form widget
- USPS formats the shipping address when configured
- Added 'reveal' view to content widget
- Added a Utility Bar header choice
- Added default footers including e-mail subscription form
- Added image 'gallery' view to content widget
- Users can subscribe and unsubscribe to mailing lists
- Users can view their order history
- Added Sales Tax nexus addresses in Admin
- Added E-Commerce Manager administrative role
- Added saving the cart contact and shipping information
- Added US Sales Tax Rates 2019-04
- Added 'card' view to content widget
- Added cart module features: price change, item no longer available, remove item
- Added visitor tracking
- Added Cart tracking, database, and module
- User roles for adding and updating users
- Content can be saved as a draft, then published or reverted
- Added MailingList, MailingListForm, and EmailSubscribe widgets
- Added Mailing List settings in Admin
- Added ProductList and ProductForm widgets
- Added E-Commerce settings in Admin
- Added interactive property map PropertyMapApp widget
- Added Documentation section in Admin
- Fixed UTF-8 character encoding issues
- Form fields set to required="true" will generate a form submit warning
- Added UpcomingCalendarEvents widget
- Blog posts now have an HTML page title for SEO
- Added calendarUniqueId preference to Calendar widget
- Added Wiki module
- Added Logo Color site property
- Added preview data grid
- Added GeoJSON datasets loading
- Admin UI changed to use an off-canvas menu
- Added FileDropZone widget
- Added FileList widget preferences: showLinks, folderUniqueId, rules, orderBy, withinLastDays, showWhenEmpty
- Implemented Dropbox (write-only) folders
- Fixed new versions of uploaded documents did not update the modified date field
- Added emailTo preference for Form widget, otherwise defaults to community manager
- A
user.csv
file can be uploaded to batch add users with First Name, Last Name, Email, Date, Groups - Added email and telephone footer options
- Logins go to "my-page" and "my-page" is now customizable
- Added Files widget
- Added Map preferences showMarker, mapZoomLevel
- Files can be moved to other folders, file versions can be added, summary can be edited
- Videos and PDF Files can be selected in the HTML editor
- Videos form now includes poster image and alternative video type
- File uploads and downloads have been added
- Videos can be played back using HTML5 tags
- A Folder and File management system has been added to Admin with user groups
- In HTML Editor,
<hr>
tag is now allowed - In HTML Editor, Added image-left/image-right layout content class tags
- New page template for Content With Table of Contents
- New Table of Contents widget with editor
- New page templates for Calendar and Content With Sub-Tabs
- Boolean settings now have a checkbox UI slider
- Added a default timezone setting in Admin
- Blog and Calendar use system timezone
- Updated GeoIP data
- Analytics show values when there are 0 records for the date
- Content managers can duplicate calendar events
- Content managers can update and delete calendar events
- Admins can delete whole blogs and calendars
- Change money types to numeric(15,6) for exact precision
- Added
check-site.sh
script for monitoring the site's availability - Added check for header
X-Monitor
to skip statistics, like with health checks
- Calendar uses dynamic queries to show events
- Added calendar event tooltips
- Users can add Calendar Events
- Form data shows url data
- Added form-data record paging
- Medicine tracker
/med/medicineLogList
- API session tracking added for guests
- Removed autofocus from forms due to Safari page scrolling
- CMS: Added 'pro' theme
- Updated blog editor to upload banner images
- Blog list can show "titles" only with links for recent posts
- Added API medicine tracker features
- Access to item relationships now uses the user's group and member settings
- Captcha preference added to user registration form
- Access to collections (add/edit/delete) now uses the user's group settings
- Improved analytics reporting for top web paths
- Added default Timezone, User GeoIP Timezone fallback
- Added resource filter for LetsEncrypt renewals
- Added 'center', 'left', 'right', 'none' top bar menu options
- Users can be added as Members to Items
- List of items now uses user member permissions
- Added Google ReCaptcha site setting and useCaptcha form preference
- Added Activity Stream
- Added Profile Messages UI for Activity Stream
- Added "Blog Posts" and "Blog Post Article" templates
- Added chooser for blog post banner image
- Dataset split() function added
- Added Search Form name auto-complete
- Added Item custom fields
- Collection access implemented
- Added Icon Chooser to Content Editor
- Support for custom fields added to Items
- Added Blogs for Blogging, News, Press, Videos, Webinars
- Added dynamic web page URLs
- Added "Bio Page" template
- Content Tab widget can use links to other web pages
- Video background can be placed behind any section
- Item relationships to other items can be made
- Collection relationships can be made to other collections
- Expanded the collection user group access to include add, edit, delete permissions
- Added features for user management to Update, Suspend, Restore, Delete, Reset Password, Assign Roles and Groups
- Admins can assign user groups to collections
- Email for user registration event and form data events
First release.
- Platform: Java-based Widgets (based on micro-frontends), Connection Pool, Cache, Scheduler, Upgrade Scripts, Record Paging
- Settings: Theme, Site SEO Settings, Social Media, Mail Server, Maps
- CMS: Site Map, Web Pages (Templates, UI Designer, SEO), Content, Images, HTML Editor, Form Data
- Analytics: Tracking for Sessions, Hits, Geolocation, Content; Charts
- Data: Datasets (CSV and RSS sources), Collections (Geolocation, Multiple Categories, Indexed, Searchable)
- Collaboration: Users (Register, Validation, Login), User Groups
- Web Browser and Mobile API accessible