News regarding changes and new releases can be found here.
-
a.gneady
- Site Admin
- Posts: 1354
- Joined: 2012-09-27 14:46
-
Contact:
Post
by a.gneady » 2025-08-21 13:42
Download free trial
Free upgrade if you ordered AppGini Pro (or an upgrade license) on or after Aug 21, 2024.
Discounted upgrade if you ordered before that date.
New features
- Added vertical navigation bar support to users area.
The video below demonstrates the new vertical navigation bar in action:
Animated image showing the new vertical navbar in AppGini users area
Users can switch between horizontal and vertical navigation bars in the member profile page:
Animated image showing configuring navbar orientation in member profile page
- Added option to copy project database schema as markdown for use in LLM prompts (Project menu > Copy schema as markdown).
Screenshot showing the copy schema as markdown option in the project menu
- Added option to copy selected table as markdown for use in LLM prompts (Tables menu > Copy as markdown).
Screenshot showing the copy selected table as markdown option in the tables menu
UI/UX enhancements in generated applications
- Clicking 'Default theme' in user profile reverts to default navmenu orientation.
- Improved clarity of app keyboard shortcuts dialog.
Screenshot showing the improved keyboard shortcuts dialog
- when clicking the children count link of a record in TV, a link in the modal title is displayed allowing users to open the modal contents in a new tab in non-embedded mode.
Animated image showing the new tab link in modal title
- Showing confirmation before leaving unsaved new child record modal opened from TV.
- Removed record selectors from TV if opened in embedded mode (in a modal).
- The
onbeforeunload
is no longer triggered when leaving the parent page due to changes made in a modal. Instead, a confirmation is displayed in the modal itself if closing without saving.
- Refactored admin styles and improved RTL support across multiple pages.
- Showing troubleshooting info in case of captcha errors in setup.
- Enhanced membership profile page layout with tabbed navigation and improved UI elements.
Screenshot showing the enhanced membership profile page layout
- Improved positioning of navbar buttons.
- Fixed date picker display in dark themes.
- Preserve filters, sorting, .. etc when clicking the table title in DV to return to TV (same as clicking 'Back').
- Don't auto-focus next field in filters page as this disrupts keyboard searching in select2 drop-downs.
- Enhanced error handling and notifications in backup restore database page.
- Add bottom margin to pagination section for better appearance in TVDV.
- Prevent focus in mobile devices to avoid displaying the virtual keyboard and sacrificing screen area.
UI/UX enhancements in AppGini
- Add option in project settings to set the default nav menu orientation.
Screenshot showing the default nav menu orientation option in project settings
- Improved table icon dialog UX.
- Improved AppGini speed when handling network dirs by using better caching.
- Improved treeview navigation responsiveness for large AXP files.
-
PgUp
moves to same control in previous field/table.
-
PgDn
moves to same control in next field/table.
- Expand width of field and table caption in AppGini UI to same as description to allow better visibility of long captions.
Bug fixes
- Fixed table icon dialog issues in high DPI screens.
- Fixed bug where updating a parent record in a modal launched from child DV didn't instantly update the lookup field in the child.
- Fixed bug where updating or adding a new parent from child TV doesn't update the correct lookup when 2+ lookups point to the same parent.
- Fixed table icon selection dialog in high DPI screens.
- Fixed menu/close icon color in mobile view of various themes.
- Fixed curl command issue.
- Updated curl request headers and upload logging for better handling of uploads.
- Fixed
.hidden
rule in dynamic.css
.
- Fixed new lines in client-side translation.
- Stripped leading single quote from each field when importing CSV files to AppGini apps.
Security fixes
- Prevent direct access to
lib.php
, footer.php
, settings-manager.php
.
Server-side programmatic improvements
- Added the following table querying functions that return arrays of matching table names:
tablesHiddenInNavMenu()
, tablesHiddenInHomepage()
, tablesWithAddNewInHomepage()
, tablesToFilterBeforeTV()
.
- Added
VerticalNav
class for rendering vertical navbar by calling VerticalNav::html()
.
- Gracefully handle
'groups'
being set to '*'
in hooks/links-navmenu.php
.
- Added
DEFAULT_NAV_MENU
constant for managing default navigation menu items (allowed values are 'horizontal'
and 'vertical'
).
- Added
HOMEPAGE_FIRST_TABLE_DOUBLE_WIDTH
constant for managing homepage first table double width behavior (allowed values are true
and false
).
- Added
HOMEPAGE_TABLES_PER_ROW
constant for managing homepage tables per row behavior (allowed values are 1
, 2
, 3
and 4
).
- Added
HOMEPAGE_PANEL_HEIGHT
constant for specifying homepage panel height in pixels (allowed values are positive integers).
- Added
FILTER_GROUPS
constant for managing the maximum number of filter groups (allowed values are positive integers).
Client-side programmatic improvements
- Added
cache
option to AppGini.lookupText
function, a boolean to control whether to use local cache before sending request.
- When adding
escape-embedded
CSS class to links that have modal-link
class, a link to open the modal content in a new tab is appended to the modal title, allowing users to open the modal in non-embedded view.
- Refactored children count CSS classes for consistency:
children-count
link changed to children-count-link
, and count-children
span changed to children-count
. This is a breaking change if you have custom code depending on these selectors. Update the selectors accordingly in your custom code.
- Adjusted
modal_window(options)
function so that the passed options
object accepts an optional beforeClose
callback to execute right before closing the modal. The hide.bs.modal
event object is passed as argument. If this function returns false, the modal is not closed.
- Passing the
shown.bs.modal
event object to show
callback if provided in the options
object when calling modal_window()
.
- Passing the
hidden.bs.modal
event object to close
callback if provided in the options
object when calling modal_window()
.
- Added
AppGini.getModal()
function to return the currently open modal element, or null
if no modal is open.
- Added
AppGini.isEmbedded()
function to return true
if the current page is embedded, false
otherwise.
- Added
AppGini.localStorage
class which provides a safe, namespaced, and JSON-friendly wrapper for working with localStorage
.
- Added
--tab-content-border-color
theme-specific CSS variable for setting tab content pane border color.
- Admin area button now selectable via
.btn-admin-area
selector.
- Added CSS variable
--navbar-border-color
for setting vertical navbar border color, with theme-specific values. Can be customized via hooks.
- Added
AppGini.darkTheme()
and AppGini.lightTheme()
functions that return a boolean indicating whether current theme is dark or light, useful for styling custom page components.
- Wrapping users area page content in
<div class="main-content">..</div>
via header and footer for easier programmatic access.
- Loading client-side translations in admin area.
Other changes
- Removed obsolete CSV import utility from admin area (the much better user area CSV import tool has been the default since AppGini 24.10).
- Enhanced service worker: improve caching strategy, add navigation preload, and refine fetch handling.
- Caching Kufi fonts in service worker.
- Included curl command in
upload.log
(the upload key is stripped from the logged command).
AppGini plugins to add more power to your apps: