Deckhand® Pro – 3.10.31-6147

February 18, 2022
Requires iPadOS 14 or later
Requires CatchFlow™ IDE version 1.0.5 or higher

  • FIXED: Components would not always store and retrieve their values properly, especially within nested structures like expandable cells. The new form storage model solves this in all cases except some legacy components like MPI landings.
  • FIXED: Expressions of the format $session.trip.anyValue would not work. This was a bug specific to the $session.trip referencing itself.
  • FIXED: dateTimeEntry with countDownTimer types did not allow proper editing of the value. The pop-up always reset to zero.
  • FIXED: The dateString() function worked only with numeric dates. It did not accept proper date objects.
  • FIXED: Expressions no longer have odd limitations on function and array references. For example, up until now, you could not execute an expression like first($session.events).setclip.somevar('somevalue') because of this bug. You’d have to use the unfortunate syntax (first($session.events).setclip.somevar)('somevalue'). This has now been fixed.
  • CHANGED: For expandable, arrays, or any composite component, changing the .value() no matter how complicated will completely rebuild the component to reflect the provided data.
  • CHANGED: While, by default, expandable components still look and behave the same, the new onClickExpand=attribute allows any component (not just expandable components) to display the expansion disclosure triangle to allow simulations of expansion to be implemented using expressions. If present, this property will override any default behaviour for expansion.
  • CHANGED: The label component now stores its value, just like any other component.
  • ADDED: The arrayPanel component was added, which is a powerful container providing a great deal of flexibility for embedding multiple sub-components including expandable and other arrayPanel components. This component has a hidden “cell header” similar to other cell headers which can be revealed using the component’s .headerVisible()method. There is an .addItem() method as well as a .removeItem() method so that array cells can be managed.
  • ADDED: The panel component was added, which is a simple container for other components.
  • ADDED: The timeZone= attribute is now supported on the dateTime component of gpsEntry as well as the dateTimeEntry component. This attribute controls only the display of information. Dates and times are always stored in UTC.
  • ADDED: A new variable, $system.timeZone now returns a timezone identifier suitable for use in places like the dateString() function as well as the newly added timeZone= attribute.
  • ADDED: topComponents and bottomComponents can be added to an arrayPanel (and in the future other components) to specify the components which occupy top and bottom positions within the cell while the array contents remain at the centre.
  • ADDED: arrayPanel now supports expandable="true" and it will automatically manage expansion and contraction. If showHeader is true, then the expansion will be controlled in the header, otherwise if there is a topComponents item, the first top component will become the expansion controller. This allows any type of cell to be used as an array header.
  • ADDED: The button component (different than the toolbar button declarations) allow the creation of action buttons directly on forms to allow the construction of new and complex form interactions.
  • ADDED: The retain property has been added to all components. It’s default value is visible meaning that data will be retained only for components which are visible. It can also be set to always or never.
  • ADDED: The current session ID is now available as $session.id.
  • ADDED: Every component now has a style= attribute which allows the cell visual style to be specified. In addition, each component has a .style() property which allows querying or changing of the style of active forms objects.
  • ADDED: A complete new Forms API was added, including the $form variable to access the root components, along with reliable access to the component context variable to access the current component properties, parents, and siblings.
  • ADDED: The sleep(seconds) function was added as a way to create momentary delays. This method only has an effect in an action context, and is useful primarily for debugging and automated testing.
  • ADDED: rememberValue can be set to true or false on any component to control whether or not the component’s value is remembered as the form default. If omitted, it defaults to the setting of rememberValues set on the view.
  • ADDED: The view rememberValues can be set to true or false to specify the default for each component.
  • ADDED: $action.getUserChoice() can be used to pop up a data-selection dialog similar to the species selection which occurs in the hard-coded catchEntryView species addition button.
  • ADDED: rememberValueAs can be set to a string identifier (not an expression, similar to a variable name) and the system will save the default value for this component so that any component that uses the same name will share the default. This can be useful for license numbers and other information which is globally applicable to more than one view.
  • ADDED: The forms API for catchEntryView now allows navigation of each catch item. The function .catchValue(species) allows querying of the current catch value and the properties minValuemaxValueblackListDisposalswhiteListDisposals and containerCount are also supported.
  • DEPRECATED: While still supported, the $view.change() method is no longer the preferred way to access and change component values. The .value() method for each component should be used instead.
  • DEPRECATED: alwaysRequiresEntry has been deprecated in favour of rememberValue="false", above.
  • DEPRECATED: saveValues on views have been deprecated in favour of rememberValues on views, above. It continues to operate and is roughly equivalent to rememberValues="true" on the view.
  • REMOVED: loadFrom and comparisonJoin on components. Neither weren’t used in workflows.
  • REMOVED: The catchType lookup type has been removed from the numberEntry lookup condition type.

For additional information on the above added items for CatchFlow™ developers and to download the latest CatchFlow™ IDE please click here.