Jump to: navigation, search

Version 4.0 (WinX)


Revision as of 08:37, 1 April 2022 by JKN (Talk | contribs) (4.0.? on 2022-??-?? {{key press|DevOps}})

[edit]

Release Notes

Release

Beta

Preview

4.0.? on 2022-??-?? DevOps

  • The app's default profile is now only generated during app startup when no other profiles are detected.
  • Added a button in the developer mode to unpack and get all default XAML resources.
  • Some security related improvements.
    • The app now informs the web service to terminate the user session upon logout or app closing.
    • The app no longer allows self signed server certificates.
  • Moved some properties from GlobalStatusBarViewModel to AppStatusViewModel.
  • The develop mode now also applies to the open dialog.
  • Fixed an issue where the app can get into an invalid state if a user manages to browse to e.g. the root object page during a logout process.
  • Improved the app performance when deleting large amount of data (which happens when e.g. evaluating online queries).
  • Most features in the old app's top & bottom bars can now be used in customized UI. See XAML Notes - App bars.
  • Fixed an issue where unnecessary messages are logged. ("Message is null")
  • UBIK clients are now able to log all webservice communication related activities (in UBIKWebserviceDebug.log) for better trouble shooting. It can also be turned off using the EnableSyncLogging setting in the profiles.
  • Fixed some misbehaviors in the signature editor. For example, the signing isn't properly disabled after the countdown ends when a stroke is not yet finished.

Known issues

XAML Notes


It is highly recommended to start new UI customizings based on the default resources in UBIK® 4. Here is how you can get them from the app. Some major changes are listed below, please see every item for detailed information and whether your existing customizings will still work.

Obsolete resources

Some of the UI resources from the older versions no longer exist or are not used anymore.

Converters

  • PropertyItemToValueConverter is removed since it was not used at all. (This should not be used in any XAML customizings, If it is, please consider using alternatives or contact us.)
  • StringToDateTimeTypesConverter was added. It should be used when Binding to a Date/Time property on a PropertyViewModel.



App bars

These are the top and bottom bars that you bring out by mouse right clicks. The various buttons in them are now included in other parts of the new UI, meaning the bars are now unnecessary and no longer displayed. The custom templates used in these bars include the following.

  • UBIKChildAction;
  • UBIKPageAction.

For those who still want to use the old UI with these bars, UICompatibilityLevel should be set to lower than 400 in the profile.

Child templates in UBIKGlobalStatusBar and UBIKGlobalBottomBar

The UBIKGlobalStatusBar and the UBIKGlobalBottomBar are redesigned and no longer use the following child templates.

  • UBIKTopLeft;
  • UBIKTopCenter;
  • UBIKTopRight;
  • UBIKBottomLeft;
  • UBIKBottomRight.

This means such existing child templates in your project setups will not have any effect in UBIK® 4, unless you still have the two parent/container templates customized where they are explicitly referenced.

XAML changes

Since there has been a major UI redesign in this version, quite a lot of changes in XAML code (especially bindings) are involved. We have striven to maintain backward compatibility, but some changes either are simply unavoidable or their long term benefits outweigh the efforts required this one time.

UBIKChildPageAction

  • The Visibility of <AppBarButton x:Name="SaveButton" ... /> now adjusts according to setting "Content -> enable auto save mode". Nothing will be broken if your existing XAMLs are not updated. However, the saving behavior might not match what's described in Content -> AutoSaveMode.

UBIKPropertyArea/UBIKContentArea

  • The ItemsSource and property count now use the result of an EvalExpression. Mass editing will no longer work or the count will be incorrect if not updated;
  • Changed from "Properties.Items" to "Properties.VisibleItems" in bindings because Items/AllItems now also include those system/invisible ones that users are not supposed to see.

UBIKPropertyItem/UBIKPriorityPropertyItem

  • PriorityPropertyClickedCommand/PriorityPropertyRightClickedCommand are deleted since they are the same as PropertyClickedCommand/PropertyRightClickedCommand. You should use the latter instead;
  • Removed "Content.", "OwnerModel." from bindings.

UBIKGlobalStatusBar

Some properties are moved from GlobalStatusBarViewModel to AppStatusViewModel.

  • "{Binding ProgressIndicator, ...}" is changed to "{Binding AppStatus.ProgressIndicator, ...}"
  • "{Binding LoginState, ...}" is changed to "{Binding AppStatus.LoginState, ...}"
  • "{Binding WritingToDB, ....]" is changed to "{Binding AppStatus.WritingToDB, ...}"
  • "{Binding TaskCount, ....]" is changed to "{Binding AppStatus.TaskCount, ...}"

UBIKPropertyValueRecordDialog

  • Changed from "PropertyItem" to "PropertyViewModel" in bindings.

Editor related templates

IC Hint square.pngThe changes are quite extensive and, therefore, we recommended you taking the default templates from the app and re-customize them from there.

First of all for UBIKEditDateTime, UBIKEditDouble, UBIKEditInt, UBIKEditGuid, UBIKEditChart, UBIKEditGeo, UBIKEditBool, UBIKEditString.

  • Changed from "EditDialogViewModel.PropertyItem" to "PropertyViewModel" in bindings;
  • Changed from "EditDialogViewModel" to "PropertyViewModel" in bindings;
  • Changed from "EditDialogViewModel.DeletePressedCommand" to "PropertyViewModel.DeleteValueCommand" in a binding; (UBIKEditGuid)
  • Prefixed "EditDialogViewModel" with "PropertyViewModel." in the binding of <Button x:Name="TeachInButton" />; (UBIKEditGeo)
  • UBIKEditString was renamed from UBIKEdit.
  • UBIKEditDateTime now needs the StringToDateTimeTypesConverter when Binding to a value on a PropertyViewModel.


Then for UBIKEditDialogButtons, UBIKEditDialogHeader, UBIKEditDialogNACheck.

  • Changed from "PropertyItem.Content.DisplayStrings" to "PropertyViewModel.OwnerObject.DisplayStrings" in bindings; (UBIKEditDialogHeader)
  • Changed from "PropertyItem" to "PropertyViewModel" in bindings;
  • Prefixed bindings "EnableNAOption", "NotApplicable", "ValueDefinitions", "ValueDefinition", "EnableMultiValueEditing" & "CanExecuteConfirmEditCommand" with "PropertyViewModel.".

Any template having ViewModel as the data context

Some commands are moved from the ViewModel to the AppStatusViewModel which is available as a property called AppStatus in ViewModel. So the previous bindings in the form of XXXCommand will now require a new binding of AppStatus.XXXCommand (with some exceptions, see below). The affected members include the following.

  • CallRemoteSupportCommand;
  • SwitchSyncModeCommand;
  • SyncMode;
  • NavigateToScanPageCommand;
  • NavigateToHomePageCommand;
  • NavigateBackCommand;
  • NavigateToSettingsPageCommand;
  • NavigateToGuidCommand;
  • NavigateToRootPageCommand;
  • NavigateToURICommand;
  • DisplayViewCommand;
  • EnableNfcCommand;
  • CopyToClipboardCommand;
  • ShowMessageBoxCommand;
  • IsRFIDScanningAvailable;
  • IsRFIDScannerConnecting;
  • ToggleRFIDScanning;
  • LocalContentItems -> AppStatus.LocalObjects;
  • UserName -> AppStatus.CurrentUserName.
IC Hint square.pngThe changes here are not mandatory and the old bindings are still compatible. But we highly recommend that you use the new ones since the old ones will not receive further updates such as bugfixes and improvements.
IC Hint square.pngAll these changes are also marked in the developer mode.