Jump to: navigation, search

Difference between revisions of "Version 4.0 (WinX)"


(Any template having ViewModel as the data context)
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
== Important Notes ==
 +
 +
{{Attention|This version requires a [[Version 3.6(Server)|UBIK Server version 3.6]] or higher!}}
 +
 +
Since this is a major release with substantial changes to the kernel and the UI, it will require more effort to update from the previous versions. Please see the "XAML Notes" tab for more details.
 +
In order to give users more time and convenience to migrate to the new version, the following changes are made in the app branding.
 +
* The new app is listed in the [https://www.microsoft.com/store/productId/9WZDNCRFK0P3 Microsoft Store as "UBIK"] (whereas the  [https://www.microsoft.com/store/productId/9P2T2XRG2452 old one is "UBIK.UWP"]);
 +
* The new app's display name is "UBIK4";
 +
* The new and old apps can be installed on the same device in parallel, with their data/profiles/configs/etc. separated.
 +
 +
 
= Release Notes =
 
= Release Notes =
  
 
== Release ==
 
== Release ==
  
== Beta ==
+
=== 4.0.58 on 2022-05-03 ===
 +
* Fixed an issue where saving property changes on child items doesn’t work when using outdated XAML code;
 +
* Added back ViewModel.CurrentDateTime for backward compatibility.
 +
* Updated the localization for Portuguese and Spanish.
  
== Preview ==
+
=== 4.0.2 on 2022-04-26 {{key press|Store}} ===
  
=== 4.0.? on 2022-??-?? {{key press|DevOps}} ===
+
==== Features and highlights ====
* The app's default profile is now only generated during app startup when no other profiles are detected.
+
* Brand new UI for improved productivity and updated visuals.
* Added a button in the developer mode to unpack and get all default XAML resources.
+
** More unified page designs.
 +
** Quality of life improvements such as the ease of access to context menus.
 +
** Better grouping of similar context related actions such as branch download.
 +
** Better text descriptions, icons and localization.
 +
** Most features in the old app's top & bottom bars can now be used in customized UI. See [[Version_4.0_(WinX)#App_bars|XAML Notes - App bars]].
 +
** Optimized the search result UI to better distinguish current and previous results.
 +
** And many others...
 +
* [[Property_Direct_Edit_(Client)|Property direct editing]].
 +
** It's now possible to directly edit most frequently used types of properties inline instead of in additional dialogs.
 +
** The previously limited MRO task direct editing (boolean) is now extended to these property types as well.
 +
** Added more parameters to some property editing related commands for better customizability.
 +
** Better edit session management to prevent editing being overwritten by background content updates in rare cases.
 +
* [[Developer_Mode|Developer mode]] usability improvements:
 +
** Supports the inspections of collection item through indexers.
 +
** Supports type browsing from custom pinned data contexts.
 +
** Currently opened dialogs can also be inspected.
 +
** Added a button in the XAML browser to unpack all default templates.
 
* Some security related improvements.
 
* Some security related improvements.
 
** The app now informs the web service to terminate the user session upon logout or app closing.
 
** 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.
 
** The app no longer allows self signed server certificates.
* Moved some properties from GlobalStatusBarViewModel to AppStatusViewModel.
+
* Better app performance.
* The develop mode now also applies to the open dialog.
+
** Improved the performance of [[XAML_Changes_in_UBIK_WinX_3.5#Filtering_by_expressions|content filtering through XAML customizing]].
* 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).
* Improved the app performance when deleting large amount of data (which happens when e.g. evaluating online queries).
+
** To improve the AR performance and reduce power consumption, [[Location_Manager#tab.3DWinX|pose fusion]] is now turned off by default and can be enabled when necessary.
* Most features in the old app's top & bottom bars can now be used in customized UI. See [[Version_4.0_(WinX)#App_bars|XAML Notes - App bars]].
+
* The app's default profile is now only generated during app startup when no other profiles are detected.
* 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 [[Settings#tab=WinX|EnableSyncLogging]] setting in the profiles.  
* 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.  
+
* All kernel code accessing file storage roots is now centralized in ILocalStorage and can be easily customized per platform.
* 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.
+
* PDF annotations are now treated as regular content changes and can be automatically saved (when [[Settings#tab=WinX|AutoSaveMode]] is on) as a result.
 
+
* Users can now choose [[Dynamic_Selective_List_(Client)|dynamic selective list]] items when editing Guid properties.
  
  
 +
==== Bugfixes ====
 +
* Fixed an issue where search filters are incorrectly applied when browsing data types in the developer mode.
 +
* Fixed an issue where the app displayed a confusing error message ("Prepare Metadefinitions.") when failing to contact the content service right after login.
 +
* Fixed an issue where the app can get into an invalid state if a user manages to browse to e.g. the root/start object page during a logout process.
 +
* 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.
 +
* Fixed an issue where unnecessary messages are logged. ("Message is null")
 +
* Fixed an issue where signatures were sometimes corrupted when saved.
 +
* Fixed an issue where search result text from a previous user session is incorrectly displayed.
 +
* Fixed an issue where link/Guid properties show a confusing empty selection list when there's no options to select.
 +
* Fixed an issue where the SetPropertyValueCommand always saves changes regardless of the AutoSave parameter value.
 +
* Fixed an issue where attaching photos could not be properly enabled during content wizard creation.
 +
* Fixed an issue where a freshly recorded media file couldn't be accessed for replay.
 +
* An issue where the scanning of optical markers stopped unintentionally was fixed.
 +
* Fixed an issue where it's impossible to use the geo location of an object after scanning a geo AR marker.
 +
* Fixed an issue where changed queries prevented the updates of meta definitions.
  
  
 
== Known issues ==
 
== Known issues ==
 +
* If you have upgraded from earlier versions of {{UBIK}} and have a UBIKThemes.xaml file under [[XAML#Templates|the app's root XAML folder]], you need to delete it manually or there might be some UI issues such as unreadable text colors, strange button styles, etc.
 
* Option IGNORE_NULL doesn't work yet on [[Dynamic_Selective_List_(Client)]], see [[HowTo:Configure_Dynamic_Selective_Lists#Known_issue_workaround:_Not_ignoring_NULL_criteria_doesn.27t_work|workaround]].
 
* Option IGNORE_NULL doesn't work yet on [[Dynamic_Selective_List_(Client)]], see [[HowTo:Configure_Dynamic_Selective_Lists#Known_issue_workaround:_Not_ignoring_NULL_criteria_doesn.27t_work|workaround]].
 +
  
 
= XAML Notes =
 
= XAML Notes =
 
<br/>
 
<br/>
 
It is highly recommended to start new UI customizings based on the default resources in {{UBIK}} 4. [[Developer_Mode#Features|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.
 
It is highly recommended to start new UI customizings based on the default resources in {{UBIK}} 4. [[Developer_Mode#Features|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 ==
 
== Obsolete resources ==
Line 39: Line 87:
 
* 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.)
 
* 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.
 
* StringToDateTimeTypesConverter was added. It should be used when Binding to a Date/Time property on a PropertyViewModel.
 
 
 
 
  
 
=== App bars ===
 
=== App bars ===
Line 58: Line 102:
 
* UBIKBottomRight.
 
* 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.
 
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 ==
 
== XAML changes ==
Line 99: Line 144:
 
* UBIKEditString was renamed from UBIKEdit.
 
* UBIKEditString was renamed from UBIKEdit.
 
* UBIKEditDateTime now needs the StringToDateTimeTypesConverter when Binding to a value on a PropertyViewModel.  
 
* UBIKEditDateTime now needs the StringToDateTimeTypesConverter when Binding to a value on a PropertyViewModel.  
 
  
 
Then for UBIKEditDialogButtons, UBIKEditDialogHeader, UBIKEditDialogNACheck.
 
Then for UBIKEditDialogButtons, UBIKEditDialogHeader, UBIKEditDialogNACheck.
Line 125: Line 169:
 
* IsRFIDScannerConnecting;
 
* IsRFIDScannerConnecting;
 
* ToggleRFIDScanning;
 
* ToggleRFIDScanning;
 +
* RootList;
 
* LocalContentItems -> AppStatus.LocalObjects;
 
* LocalContentItems -> AppStatus.LocalObjects;
 
* UserName -> AppStatus.CurrentUserName.
 
* UserName -> AppStatus.CurrentUserName.

Latest revision as of 08:51, 23 August 2022

Important Notes

IC Attention.pngThis version requires a UBIK Server version 3.6 or higher!

Since this is a major release with substantial changes to the kernel and the UI, it will require more effort to update from the previous versions. Please see the "XAML Notes" tab for more details. In order to give users more time and convenience to migrate to the new version, the following changes are made in the app branding.

  • The new app is listed in the Microsoft Store as "UBIK" (whereas the old one is "UBIK.UWP");
  • The new app's display name is "UBIK4";
  • The new and old apps can be installed on the same device in parallel, with their data/profiles/configs/etc. separated.


[edit]

Release Notes

Release

4.0.58 on 2022-05-03

  • Fixed an issue where saving property changes on child items doesn’t work when using outdated XAML code;
  • Added back ViewModel.CurrentDateTime for backward compatibility.
  • Updated the localization for Portuguese and Spanish.

4.0.2 on 2022-04-26 Store

Features and highlights

  • Brand new UI for improved productivity and updated visuals.
    • More unified page designs.
    • Quality of life improvements such as the ease of access to context menus.
    • Better grouping of similar context related actions such as branch download.
    • Better text descriptions, icons and localization.
    • Most features in the old app's top & bottom bars can now be used in customized UI. See XAML Notes - App bars.
    • Optimized the search result UI to better distinguish current and previous results.
    • And many others...
  • Property direct editing.
    • It's now possible to directly edit most frequently used types of properties inline instead of in additional dialogs.
    • The previously limited MRO task direct editing (boolean) is now extended to these property types as well.
    • Added more parameters to some property editing related commands for better customizability.
    • Better edit session management to prevent editing being overwritten by background content updates in rare cases.
  • Developer mode usability improvements:
    • Supports the inspections of collection item through indexers.
    • Supports type browsing from custom pinned data contexts.
    • Currently opened dialogs can also be inspected.
    • Added a button in the XAML browser to unpack all default templates.
  • 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.
  • Better app performance.
    • Improved the performance of content filtering through XAML customizing.
    • Improved the app performance when deleting large amount of data (which happens when e.g. evaluating online queries).
    • To improve the AR performance and reduce power consumption, pose fusion is now turned off by default and can be enabled when necessary.
  • The app's default profile is now only generated during app startup when no other profiles are detected.
  • 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.
  • All kernel code accessing file storage roots is now centralized in ILocalStorage and can be easily customized per platform.
  • PDF annotations are now treated as regular content changes and can be automatically saved (when AutoSaveMode is on) as a result.
  • Users can now choose dynamic selective list items when editing Guid properties.


Bugfixes

  • Fixed an issue where search filters are incorrectly applied when browsing data types in the developer mode.
  • Fixed an issue where the app displayed a confusing error message ("Prepare Metadefinitions.") when failing to contact the content service right after login.
  • Fixed an issue where the app can get into an invalid state if a user manages to browse to e.g. the root/start object page during a logout process.
  • 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.
  • Fixed an issue where unnecessary messages are logged. ("Message is null")
  • Fixed an issue where signatures were sometimes corrupted when saved.
  • Fixed an issue where search result text from a previous user session is incorrectly displayed.
  • Fixed an issue where link/Guid properties show a confusing empty selection list when there's no options to select.
  • Fixed an issue where the SetPropertyValueCommand always saves changes regardless of the AutoSave parameter value.
  • Fixed an issue where attaching photos could not be properly enabled during content wizard creation.
  • Fixed an issue where a freshly recorded media file couldn't be accessed for replay.
  • An issue where the scanning of optical markers stopped unintentionally was fixed.
  • Fixed an issue where it's impossible to use the geo location of an object after scanning a geo AR marker.
  • Fixed an issue where changed queries prevented the updates of meta definitions.


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 members are moved from the GlobalStatusBarViewModel to the AppStatusViewModel which is available as a property called AppStatus in the former. So the previous bindings in the form of {Binding XXX} will now require a new binding of {Binding AppStatus.XXX} (with some exceptions, see below). The affected members include the following.

  • ProgressIndicator;
  • LoginState;
  • WritingToDB;
  • TaskCount;
  • SyncModeName;
  • UserSelectedSyncModeName;
  • SyncModeCommand -> AppStatus.SwitchSyncModeCommand.
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.

UBIKPropertyValueRecordDialog

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

Editor related templates

IC Hint square.pngThe changes are quite extensive and, therefore, we recommended that you take 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 members are moved from the ViewModel to the AppStatusViewModel which is available as a property called AppStatus in the former. So the previous bindings in the form of {Binding XXX} will now require a new binding of {Binding AppStatus.XXX} (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;
  • RootList;
  • 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.