Release notes: 20220427.164517

Wednesday, April 27, 2022 | Dr. Rich Lane

This is a massive change, think of it like Windows 98 to Windows XP or Mac OS9 to Mac OS10 - this lays the foundations for alot of future expantion and removes alot of complexity, although there is still alot of work to do. Most likely there will be some teething issues with this build as it's so big. We will slowly release it to all sites but expect sites to break perhaps, but we are monitoring and will be on it straight away.

New

Admin: Webapps: Direct slugs! Slugs directly on the first level with per record layouts, auth polices, and view control. Many use cases, sites that are simple and need to be edited by non tech people. Landing pages or once off pages. Pages that require different auth combos but are part of the same webapp (secure zones? member areas?). Webapps that need different layouts. Note this is a little slower than doing it the way you should do it with pages (but further testing and optimization should increase speed).
Admin: Webapps: Pre-processors or direct API response on direct slugs.
Admin: Pre-processors: Menu option, add, edit, delete.

Admin: Frontend: Webapp API frontend can optionally "get" now with no permissions.

Admin: Auth Policies: get_authpolicies_multifolders function to get all authpolices from an array of folders (ability to gather many different paths of auth policies - warning, can not be paginated ATM).

Admin: Auth Policies: API Deleting or editing a layout path updates all webapp items using that auth policy on save in a background thread.
Admin: Layouts: API Deleting or editing a layout path updates all webapp items using that layout on save in a background thread.
Admin: Viewmanager: API Deleting or editing a view path updates all webapp items using that view on save in a background thread.
Admin: Preprocessor: API Deleting or editing a preprocessor path updates all webapp items using that preprocessor on save in a background thread.

API: Webapps: transform_wa_api_into_view function to tranform (format) Webapp API data into structure required for views (could be optimized in the future).
API: Webapps: Now instance timezones and global functions are passed to the api endpoint for use.

General: Frontend: Baked in & uneditable (by designers) system fall back 404 page when an instance does not have a 404 page installed or it is deleted.
General: Everywhere: ifequal function to streamline if then else statements to one line. Warning it does not handle null check or assign yet.
General: string_or_json_to_singlearray function that will split a string into a single item string array or a single JSON wrapped array.

Admin: General: get_table_defaults function to get the initial starting columns that are used for webapps, productions, catalogs or users.
Admin: General: Default JSON liquid files for tables of webapps, productions, catalogs or users. Use with get_table_defaults function.
Admin: General: Default column structures for related and dynamic tables.
Admin: General: get_authpolicy_byid graphql with optional full content flag.
Admin: General: get_layout_byid graphql.
Admin: General: get_partial_byid graphql.
Admin: General: get_partial_by_path graphql.
Admin: General: get_record_by_slug graphql.
Admin: General: get_records_by_slug_value_in graphql.
Admin: General: update_int_value_by_id graphql.
Admin: General: getlayouts_folderstartswith graphql.
Admin: General: get_authpolicy_by_physical_file_path_or_name graphql.
Admin: General: New inline functions concept utilized.
Admin: General: New function based dynamic_authpolicy returns the object over a string we need to capture and pass.
Admin: General: get_all_webappitems_id_value graphql - get any webapp item that has an ID AND value of something (ID and path).
Admin: General: update_webapp_id_value function to update a webapp item based on an ID and a value (path).
Admin: General: Build filename function that strips liquid extentions but allows folders from the prepend.

Admin: Ecomm: Changed the SCK shipping engine to custom_example in order to include in all builds as an example.

Update

Admin: Forms: Output of hidden form elements had potientally invalid HTML, corrected.
Admin: Scheduled Tasks: Saving tasks now uses the correct variable for the table.
Admin: Webapps: On save float conversion now done as a float and not INT.
Admin: Auth Policies: Path prepend is now dynamic on edit.
Admin: Auth Policies: Physical file paths are now saved on edit as they were not before.
Admin: Auth Policies: Required fields errors now tell you the field missing.
API: Webapps: Put searchprops function in _admin so recursive view compile will work on all sites. Also cleaned up.

Change

Payments: Frontend: Cleaned up formbuilder payment include (this needs to be redone).

Admin: Recycler: Removal of unneeded raw_escape_string filters.
Admin: Site settings: Removal of unneeded logging.

Admin: API: API modularization of Auth policies, layouts, view manager, pre-processors endpoints.
Admin: API: If an unknown action is attempted an error message which says as such is generated.
Admin: API: function setpropertyvalue rewritten to make us of type_of and better array detection. Also cleaned up.

Admin: Page manager: Removal of unneeded raw_escape_string filters.
Admin: Page manager: Auth policies can now be _admin or homepage (default is _admin, backward compatability with homepage).

Admin: General: Removed redudant second queries for search text and optimized json arh building on several sections of the site.
Admin: General: slugdupecheck function uses new ifequals function and uses ID as an INT to prevent possible conversition issues.
Admin: General: Some API code clean up.
Admin: General: update_authpolicy graphql reformat.
Admin: General: getviewpath graphql reformat.
Admin: General: GetFormnameFromID graphql reformatting and now returns metadata.
Admin: General: get_softredirect graphql reformatted.
Admin: General: GetSchema graphql added the optional ability to include ID or not (to match existing or new schemas).
Admin: General: get_model_schema_by_name graphql now outputs metadata.
Admin: General: Dynamic auth policies strip newlines on eval to hopefully get a clean true or not true.
Admin: General: Views, auth policies, preprocessors, layouts wont process variables if a delete.
Admin: General: getpartials_folderstartswith graphql now has optional search on path.
Admin: General: All dates and times listed in admin tool should now be localized to the timezone set.
Admin: General: Fixed various incorrect raw encoding locations, more fixes as they are found.
Admin: General: Changed getauthpolicies_folderstartswith graphql to have optional search path (name).
Admin: General: Change to is_json function to use more of POS's new native type_of and don't attempt to convert everything to JSON to find out (reducing error messages in log)
Admin: General: Block code some of the type detection on save. Several custom field pages now using same logic for detection.
Admin: General: All relational tables and custom columns now use same build generator.
Admin: General: Slug generation function converts existing ID's to int in all cases.

General: Everywhere: Cleaned up doublesort function.

Frontend: Forms: Cleaned up formbuilder_form_render a little, still need to merge all this into one render at some point.
Frontend: API: Webapps: Webapp frontend API now can get data without any permissions.
Frontend: General: Changed for function and include dynamic_authpolicy to check if there is a path so we don't just get the first record of everything.
Frontend: General: Changed dynamic_authpolicy (include version) to generate JSON via object
Frontend: General: Changed CompileDataRecursive view controller to output "webapp_item_title" or "webapp_item_slug" or "webapp_item_publishdate" or "webapp_item_expirydate" if found.
Frontend: General: Change to new get_partial_if_exists function for the two view controllers.
Frontend: Webapps: Re-wrote parts of DD and used new function based dynamic auth policy.
Frontend: Webapps: DD content uses updated record (over model) graphql.

Admin: Dashboard: Default dashboard elements now use instance correct timezone.
Admin: Dashboard: Changed to new get_partial_if_exists function to make sure partial exists before loading.
Admin: Dashboard: Changed / fixed loader of custom dashboard.

Admin: Forms: Renamed Form manager wizard to just Form manager.
Admin: Forms: Removed bloat code in build_configuration_formbuilder and converted to real function.
Admin: Forms: Form property builder dramically reduced in bloat code (needs to be re-written to use same method as API in the future).

Admin: Layouts: Names are now clickable to edit and use if there is no name.
Admin: Layouts: Form cleanup.

Admin: Auth Policies: You can show add and edit the redirect to (on fail) in the UI.
Admin: Auth Policies: Names are now clickable to edit and use if there is no name.
Admin: Auth Policies: Changed list view to show both the path (to use it) and the actual truncated physical path.
Admin: Auth Policies: Changed edit view to allow for backward compatability with move to all auth policies moving the public _admin.
Admin: Auth Policies: Adding new auth policy now defaults to _admin to save as auth polices are universal.

Admin: Webapps: Changed dynamic eval to look for != true rather than false as this might be problematic in liquid.
Admin: Webapps: The process of determining what columns are new and old when resaving a webapp (and creating a new schema) has been dramitically optimized, re-written and is modular.
Admin: Webapps: On load if exclude from sitemaps.xml (or direct slug) is optioned ON the "advanced panel" is automatically shown.
Admin: Webapps: API: Removed 6 of the same query getting the same data and replaced it with one.
Admin: Webapps: We now save the path to the granual view in the record to save having to load it on every page view and in the future be able to fix relationships after cloning a site.
Admin: Webapps: Webapp save config and generate webapp table API backend completely rewritten using set properties function.
Admin: Webapps: Error catching on save for webapps and custom fields, no more "it didn't save" it will tell you why.
Admin: Webapps: Default webapp columns are now fully editable and will process on resave.
Admin: Webapps: All auth policies now use the same directories to form the list keeping this universal.

Other

Remove: Admin: General: Removed some unneeded POS console logging.
Remove: Admin: Webapps: Removed build_dd_page which actually never went live because it was rewriten to be dynamic before launching.
Remove: Admin: Webapps: Removed allow_* row permissions as it is all saved in JSON anyway.