Changelog-Turnkey
This page was created by Wikiadmin on 2024-03-06. Last edited by Edgar on 2025-05-15.


Release Notes
MDRIVEN: CHANGELOG - TURNKEY
All the latest MDriven Fixes and Updates
ChangeLog - MDriven Turnkey

May 2025

  • Revision 16663 (Modified on 2025-05-14): --text-on-primary text on buttons was set to white - but several issues made it not reach the theme-default, the theme-default issues has been resolved and then text on button became white - this is now changed to black Width of tk-input-field--datepicker was reduced - for no apparent reason - now its treated as any other input StylesInModel was unable to reach and set the text of buttons - now fixed Turnkey runtime prepared for new PlacingContainer property that controls flexbasis called IgnoreContent
  • Revision 16656 (Modified on 2025-05-13): Save and Keep open did not notify "CHanges saved" - fixed better
  • Revision 16653 (Modified on 2025-05-13): ExecuteFrameworkRuntimeActionRT.ReadOnlyModeToogle is corrected to ExecuteFrameworkRuntimeActionRT.ReadOnlyModeToggle
  • Revision 16652 (Modified on 2025-05-13): Reverting back to alert dialog due to none support of nested dialogs in angular Save and Keep open did not notify "CHanges saved" - fixed
  • Revision 16651 (Modified on 2025-05-13): Changes to TS client - 1. Modal ESC key lingers after close due to bad event implementation - Fixed issue 2. Modal ESC uses browser alert to warn - I will test to use $mdDialog on top of modal - not sure 3. When in Modal we should not listen for Ctrl+e (enter edit) Ctrl+s
  • Revision 16636 (Modified on 2025-05-08): ReadOnlyMode when turned on globally also affected MVCAutoForms - and that made debug editing harder - we now let these forms ignore ReadOnlyMode SERIOUS BUG: A month old bug regarding IdentityChangers (new objects has guid id, and saved get permanent id) - when on root webclients did not correctly update url to show new id, and whats client side viewmodels did not get all the needed IdChange messages to correctly upgrade id on objects held deeper in hierarchy than root. Fixed
  • Revision 16634 (Modified on 2025-05-07): Turnkey did not correctly handle up-promotion from new to save object - and the viewmodel was recreated and it lost variable state - should be fixed
  • Revision 16626 (Modified on 2025-05-06): Changes on all operations for GraphAPI access to deduce if it is "InvalidAuthenticationToken" and if so - refresh the token and execute the operation again
  • Revision 16623 (Modified on 2025-05-06): When having Save and Save&KeepOpen, ctrl+enter should use Save&KeepOpen otherwise save Extra defined check in typescript UpdateSelectedStateForTable

April 2025

  • Revision 16622 (Modified on 2025-04-30): Missed style flex-grow for .tk-data-table.ctGridYBottom .tk-data-table__content made modal grids not expand
  • Revision 16619 (Modified on 2025-04-30): Issue with ctrl+enter turnkey hotkey showing Save even when nothing to save - fixed. Issue with Turnkey angular double click execute of single action that navigates when holding control did not open in new tab fixed ViewModel ShownByAction will now show if it is popup,modal or normal
  • Revision 16613 (Modified on 2025-04-28): Issue in angularclient that ctrl keys did not fully do their after action due to roundtrip fillup Add variable-dialog now offers a As-collection checkbox instead of having all the types all the time
  • Revision 16611 (Modified on 2025-04-27): Removed the blazor specific table row heights - harmonized to the existing variables
  • Revision 16610 (Modified on 2025-04-27): Corrections i scss so that it not is able to transpile to css again
  • Revision 16607 (Modified on 2025-04-26): Major updates to advanced styling with LLM support and fast-track-CSS to help you shine
  • Revision 16605 (Modified on 2025-04-25): Implementation of Alt-key in Web-ui (blazor and angularjs), first try to focus toolbar, and if not possible - mainmenu, and if you are already AT first item in toolbar, try mainmenu, if you are already at mainmenu - try toolbar
  • Revision 16604 (Modified on 2025-04-25):
  • Revision 16603 (Modified on 2025-04-25):
  • Revision 16602 (Modified on 2025-04-25):
  • Revision 16601 (Modified on 2025-04-25): x
  • Revision 16600 (Modified on 2025-04-25): Table border color now use variable
  • Revision 16597 (Modified on 2025-04-24): New keyboard shortcuts; only ask AreYouSure if we are dirty. Only actually save is we are dirty
  • Revision 16596 (Modified on 2025-04-24): New keyboard shortcuts; only ask AreYouSure if we are dirty. Only actually save is we are dirty
  • Revision 16595 (Modified on 2025-04-24): Escape in AngularJS should ask before doing cancel
  • Revision 16594 (Modified on 2025-04-24): Fixes with theme styling Remove of old ActionDefinition view Fix of Asking before escaping in Blazor shortcut keys
  • Revision 16593 (Modified on 2025-04-23):
  • Revision 16592 (Modified on 2025-04-23): ThemeStyling continued work
  • Revision 16591 (Modified on 2025-04-23): ThemeStyling continued work
  • Revision 16590 (Modified on 2025-04-23): Issue in debugger when cloning ViewModel vars and one is a Tuple - Fixed issue Changes for Keyboard shortcuts for Save(ctrl+s) SaveAndLock(ctrl+enter) EditMode(ctrl+e) CancelAndLock(ESC) undo(ctrl+z) redo(ctrl+y). This is in angularjs and Blazor-client
  • Revision 16589 (Modified on 2025-04-23): Blazor datagrid styling better aligned with angular
  • Revision 16588 (Modified on 2025-04-23): ThemeStyling continued work, scss definitions did not use variables correctly
  • Revision 16587 (Modified on 2025-04-22): ThemeStyling continued work
  • Revision 16586 (Modified on 2025-04-22): scss Sidebar width variable respected
  • Revision 16583 (Modified on 2025-04-21): New Tab in LiveEdit - advanced-styling, work in progress
  • Revision 16576 (Modified on 2025-04-16): Updates to enable MDriven VS2022 on ARM64 - this required .netFramework48 and late VS2022 (Version 17.13.6) Everything that WAS compiled with .netFramework472 has been raised to .netFramework48 (this does not concern things compiled with netStandard or netcore+ (net6,7,8)) THIS IS IMPORTANT: Update your VS2022, Update your MDriven Nugets, If you get build breaks check that YOUR THINGS TARGET at least .netFramework48 Saying again with other words: WE NOW LEAVE .netFramework472 and older behind forever - use .netFramework48 as the minimum.
  • Revision 16572 (Modified on 2025-04-15): SysTurnkeyTrace now also tracks Exceptions in the same structure as the navigations
  • Revision 16553 (Modified on 2025-04-09): When the MDrivenServer was "Not Started" or when the MDrivenServer is not reachable at all, stars aligned in such a way that the Turnkey-log said NOTHING. This has been changed and TK log will now reflect communication breach with MDrivenServer clearly
  • Revision 16548 (Modified on 2025-04-07): Added ability to post binary data to Turnkey exposed Rest service. Add single column BYTEARRAYCONTENT that receives blob, this is following the pattern of string data STRINGCONTENT - if the uploaded content is not a Form-record these 2 types are checked instead
  • Revision 16539 (Modified on 2025-04-03): x
  • Revision 16538 (Modified on 2025-04-03): x
  • Revision 16537 (Modified on 2025-04-03): x
  • Revision 16536 (Modified on 2025-04-03): introducing numberhash:dec for StringFormatAngular , where number:2 is two decimals , but the new numberhash:2 is two decimals unless there are more decimals (ie 0.00#)
  • Revision 16534 (Modified on 2025-04-02): Adding special name BYTEARRAYCONTENT to upload with restPut,post,patch a single blob (no multipart content) - works the same as STRINGCONTENT RestHead ocl operator has been added to only ask external service to return the headers. vResponseHeaders variable - when found and Rest call is made we populate variable with a return separated list of header-name:header-value
  • Revision 16532 (Modified on 2025-04-02): In turnkey angularjs we could get blurry fonts in popups due to use of transform - reworked to flex to solve

March 2025

  • Revision 16526 (Modified on 2025-03-31): New property on selfVM called DisplayMode - that has one of the values enum DisplayModeEnum { UINormal, UIModal, UIPopup,Technical, RestPost, RestGet, RestPatch, RestPut,RestDelete }; Since ViewModels may have multiple usages it is good to be able to know the current use
  • Revision 16525 (Modified on 2025-03-28): Changes to let a popup window bring up another popup or modal (first popup closes and new opens)
  • Revision 16523 (Modified on 2025-03-27): RendersAction columns should take their ReadOnly state from the action-column they render, and this was not correctly implemented causing these columns to be enabled even when ReadOnlyMode was true. Actions in turnkey check again if they are enabled on the server just before execution to stop any injecting and outofsync execution Blazor checkboxes that render action should not also toggle their value - the action needs to be responsible for all data change Null check in client side VMClass Null check in debugger
  • Revision 16498 (Modified on 2025-03-21): Modlr WebView2 reload safeguarded. In Turnkey we upgrade new keys when objects are saved with a special command - if your UI was only transients (or new unsaved objects) all keys are monitored for upgrade - and this logic failed when having nestings over a singlelink - then the replace of a singlelink value was mistaken as a key change - and this gave ripple effects further down the viewmodel graph - ending up as ghost rows in multilinks below the swap key point. Fixed
  • Revision 16489 (Modified on 2025-03-20): Saw a deadlock between XMLPersistence and Init of singletons - rewrote to TryLock to Fix Issues with angularSort from new fixes to remember sorted indexes - turned out that angularJS flipped if there where many such grid in a UI - rewrote to own sorting logic
  • Revision 16485 (Modified on 2025-03-20): Issues with new _SortedMem solution in angular tables - fix2 Turnkey multiview comma on id could creep into MVC and wreck things - fixed.
  • Revision 16483 (Modified on 2025-03-20): Issues with new _SortedMem solution in angular tables - fix
  • Revision 16476 (Modified on 2025-03-19): the taggedvalue autofocus was glitchy in AngularJS and not implemented in Blazor - both fixed. Cleaned up console errors
  • Revision 16475 (Modified on 2025-03-19): Turnkey Angular issue: selectWithShift in Tables that had been header-sorted did not work due to indices used where from unsorted data. Fixed
  • Revision 16465 (Modified on 2025-03-17): Nullcheck after dirtylist change
  • Revision 16456 (Modified on 2025-03-13): The GlobalUnRootedAlwaysNew setting messed up OnShowExpressions on actions - fixed
  • Revision 16455 (Modified on 2025-03-13): Issue that Modals opening from a null rooted view and having the SysMDrivenMiscSettingsSingleton.GlobalUnRootedAlwaysNew=true gave null root on modal due to it not opening with the uniquified VMClassID
  • Revision 16454 (Modified on 2025-03-12): FileDownload option from turnkey seekers now include a byteorder indicator making excel recognise its UTF8
  • Revision 16452 (Modified on 2025-03-12): Cell select etc did not check for uppercase correctly
  • Revision 16451 (Modified on 2025-03-12): BREAKING CHANGE: in AfterModalOk in actions we no longer provide vModalResult_selfVM variable. It was an old mistake that that in WPF the handover of vDirties to instigating view did not happen correctly - so vModalResult_selfVM.save was sometimes used. The mistake/bug is removed and hand-over of dirties is now the same in Turnkey and WPF - but vModalResult_selfVM.save would then be moot - and to signal this change the vModalResult_selfVM variable was removed altogether from AfterModalOk. There were also issues in turnkey when handover sometimes caused nullref exceptions and breaking signaling
  • Revision 16437 (Modified on 2025-03-03): Version updates
  • Revision 16431 (Modified on 2025-03-01): CodeDress filters away anything starting with "system." and "microsoft." now we get a second change to load such files if AssemblyResolve asks for them ChatGTP integration now uses 1.0.0.17
  • Revision 16429 (Modified on 2025-03-01): Refactoring to reduce complexity of TurnkeyInterfaces project Added MDrivenServerCore and MDrivenServer WebApi for portalPush

February 2025

  • Revision 16426 (Modified on 2025-02-28): Toolbar-abstractactions refered to in Buttons , skipped their AreYourSure due to an oversight that Toolbar collects actions from all levels in its own group. Fixed in Angular and Blazor CodeGen checkbox could easily be pressed by mistake because it was too long; Fixed
  • Revision 16412 (Modified on 2025-02-21): Both angular and blazor had issue with double-click-in-table-in-modal-should-try-ModalOk - both fixed
  • Revision 16411 (Modified on 2025-02-21): ctrl click on things that navigate should consistently bring up new tab - but both angularJS and Blazor had issues that now all resolved: MainMenyCtrlClick Blaz-Check Angu-Check LeftSideAction Blaz-Check Angu-Check GridAction Blaz-Check Angu-Check ButtonAction Blaz-Check Angu-Check
  • Revision 16409 (Modified on 2025-02-20): Move of datacontract PortalPushConfiguration
  • Revision 16401 (Modified on 2025-02-20): Bug that ActAsForActions expressions did not include VM variables in runtime - causing runtime error when variables were used - fixed New GlobalUnRootedAlwaysNew was not honored if leftside action - only GlobalAction - this is fixed
  • Revision 16400 (Modified on 2025-02-19): Renaming SysMDrivenMiscSettingSingleton.GlobalSeekersAlwaysNew to GlobalUnRootedAlwaysNew to better reflect the new MultiView behaviour
  • Revision 16399 (Modified on 2025-02-19): Nullroot MultiView-option. When having null-roots we may want new versions for each open in order to allow new seeker - or other variable based data to be unique per view , AngularJS changes
  • Revision 16396 (Modified on 2025-02-19): Nullroot MultiView-option. When having null-roots we may want new versions for each open in order to allow new seeker - or other variable based data to be unique per view
  • Revision 16394 (Modified on 2025-02-18): When numbers with thousand seperator are copied they had nbsp(160) instead of sp(32) so excel got confused - fixed
  • Revision 16384 (Modified on 2025-02-12): Changing SeekerGrid--filedownload extension from txt to csv for easier integration with excel
  • Revision 16382 (Modified on 2025-02-12): Better logging in JsonToObjects RightJust of page size picker in Seekers, angular and blazor Designer issue with combo for MountedViewModel not always updating; fixed
  • Revision 16381 (Modified on 2025-02-11): Strange javascript hook removed to set 'tk-data-table__content--min-height' on PC Tables, this is now set statically in code: MaybeSetMinHeightClass - read reasons there ... issues with heights on tables CSSGrid vs PlacingContainers
  • Revision 16380 (Modified on 2025-02-11): Clipbook should be clipboard - changed where ever displayed In Web grids the multiselect column is now decorated with multiselectcol class in both angular and Blazor - and this is used to avoid the multiselectcol in cellselect clips to clipboard Cellselect in AngularJS on rows with contextmenu - the mouse select could select the extra cell for the contextmenu and that was annoying and ugly - fixed
  • Revision 16378 (Modified on 2025-02-11): New settings on SysMDrivenMiscSettings; GlobalSeekerGridShowImportOnlyONTV: Boolean , if set the TV GlobalSeekerGridShowImport must be true on seekers in order to show "Import from clipbook" GlobalSeekerGridExportFileMaxRows:Integer , controls how many rows that maximum will be in the export file
  • Revision 16375 (Modified on 2025-02-08): SeekerGrid has been given a "more" menu that has 2 options "Import from clipbook" and "Export as file" "Import from clipbook" acts as the old ExcelPlugin-function; it uses first column to search, tries to write other columns, can use action CreateNew for adding rows "Export as file" ignores page size and try to get all objects (up to 50K) and downloads them as a tab separated txt file
  • Revision 16374 (Modified on 2025-02-08): SeekerGrid has been given a "more" menu that has 2 options "Import from clipbook" and "Export as file" "Import from clipbook" acts as the old ExcelPlugin-function; it uses first column to search, tries to write other columns, can use action CreateNew for adding rows "Export as file" ignores page size and try to get all objects (up to 50K) and downloads them as a tab separated txt file
  • Revision 16368 (Modified on 2025-02-06): Turnkey; ExportTabSepController added to support new functions on seeker tables , to download result as tab separated file
  • Revision 16364 (Modified on 2025-02-05): Recompiled CSS
  • Revision 16361 (Modified on 2025-02-05): Changes to paging buttons of paged tables - number of hits moved and better info of which page you are at
  • Revision 16360 (Modified on 2025-02-05): Issue with recently introduced stricter vCurrent rules - that had issues when using vcurrent from lower levels of sibling nestings was used - fixed WebView error supressed
  • Revision 16354 (Modified on 2025-02-04): PopUp windows with large content did not scroll; now limit to 90vh and overflow:auto
  • Revision 16353 (Modified on 2025-02-04): Issue in render of PC views with tables if they are modal and brought up from CSSGrid parent page -> tables in modal 0 height

January 2025

  • Revision 16331 (Modified on 2025-01-29): CellSelect - paste of booleans did not work - fixed
  • Revision 16330 (Modified on 2025-01-29): CellSelect - copy of checkboxes did not work - fixed
  • Revision 16316 (Modified on 2025-01-24): Normally when building ViewModel tree hierarchies we ensure vCurrent Upstream in the tree, but when a deep hierarchy uses its own vCurrent as hierarchy builder (bad idea since everything below this point will be same branch) - then its important to remember which of the collection of the cloned branches was actually clicked - this was not done earlier and that gave a race effect where vcurrent of such hierarchies eventually settle on something unlikely correct.
  • Revision 16310 (Modified on 2025-01-22): CellSelect - only one table to show cellselect at a time. when user switch table - clear cellselect in priors
  • Revision 16308 (Modified on 2025-01-21): CellSelect should clear on column sort - fixed for both angular and blazor
  • Revision 16302 (Modified on 2025-01-17): CellSelect , select all with ctrl-A now works even if MDriven table is not multiselect CellSelect - when goes over the whole row (all cells) the header is added to clip
  • Revision 16291 (Modified on 2025-01-14): Issue with ViewEdit - it failed on views larger than a certain byte size due to BlazorServer circuit limit. Fixed.
  • Revision 16290 (Modified on 2025-01-14): missed null check in cellselect javascript
  • Revision 16287 (Modified on 2025-01-11): Style refresh for ViewEdit improved
  • Revision 16284 (Modified on 2025-01-09): Blazor issue with int and Guid CellSelect issue when major grid-changes (seek result is new) Fixed In Blazor-client we got issues of mprphing between VMClassObject and VMClassListItem - VMClassListItem was removed to handle everything as VMClassObject
  • Revision 16282 (Modified on 2025-01-09): Blazor now listens for enter to start search in Seekers Blazor now allows for paste of tabsep-data outside of the grid to be sent to api/ExcelPlugin AngularJS now allows for paste in table-header to send tabsep data to api/ExcelPlugin
  • Revision 16281 (Modified on 2025-01-09): CellSelect - fixes for ComboBox get and set
  • Revision 16280 (Modified on 2025-01-09): CellSelect - issues in both angular and blazor - code simplified and reworked to javascript
  • Revision 16279 (Modified on 2025-01-08): Clip-Paste had stopped working in ViewModelEditor - fixed by redesign to allow for both complex Modlr-Data-Copy and simple text copy
  • Revision 16276 (Modified on 2025-01-07): In MDrivenTurnkey we did not fully check ReadOnly or isStatic prior to applying the updated value serverside - this could be used as an exploit by a trusted user that could push data into readonly or static fields with Rest calls withing the trusted session. Fixed.
  • Revision 16275 (Modified on 2025-01-07): Several issues with InplacePopup handled - it did not correctly build inner PC structure of popup and left residues outside of popup MDrivenStyleChecker logic reworked to allow for ModelIndepentant access and view - removing the need to add a MDrivenStyleChecker ViewModel for this purpose. MDrivenStyleChecker now backed by localhost turnkeyserver; MDDesign/StyleOverview StylesInModel-view , ,colors took to much space and was moved into an inplace popup Blazor mistake made all blobs render as texts - fixed