|Revisions to the Delete dialog in Helix 7.0|
There are many ways to delete data in Helix. A user can delete a single record from an entry view, one or more records from a list view, or multiple records in multiple relations via views containing subforms. A user can even delete records on a list view by selecting them and pasting new records over the selection.
In addition, Helix’s document management allows a user to delete externally stored documents on any mounted volume.
All of these ‘delete’ functions are handled by common code, which was somewhat limited in the feedback it could provide in prior versions. Helix 7.0 greatly enhances these dialogs, as described below and illustrated in the images on the right.
|Simple Entry View||
The simplest dialog when deleting records is for a standard entry view. Only one record is shown on an entry view, so the dialog indicates that a single record will be deleted. The name of the view is included, since it can be difficult to identify the active view when multiple windows are open, as well as the name of the relation from which the record will be deleted.
|Simple List View||
The dialog for a standard list view is essentially the same, the difference being that the number of records to be deleted is shown. As with entry views, the name of the view is included to help identify the active view when multiple windows are open. The name of the relation from which the records will be deleted is also shown.
If the list contains more than one record, the button name is changed to Delete All to reflect the fact that multiple records will be deleted.
|Views with Subforms||
A view that contains subforms can delete data from multiple relations. In this case, the dialog provides the records counts for each relation as a list beneath the warning message, as seen on the right.
Views with multiple subforms will display one line for each subform that has delete permission enabled. The count shown for each subform does not take into consideration whether the same record may be displayed on other subforms, or on the host view.
Since multiple records can be deleted from both entry and list views, the dialog is identical for both view types.
|Selectable List View||
A list view whose repeat rectangle has the ‘Selectable’ attribute turned on allows the user to select a subset of the records on the list for subsequent action. (Delete, Post, Copy Records, Paste Records) When the Delete Selected Records (‘Delete Selections’ prior to Helix 7.0) command is executed, the dialog displays both the number of records to be deleted (the selected records) as well as the total number of records displayed on the list.
If the list contains more than one record, the button name is changed to Delete Selected to reflect the fact that only the selected records will be deleted.
Choosing Delete Selected Records when all records on a list are selected is functionally identical to choosing Delete All. In this situation, the standard dialog for deleting multiple records is shown.
List selection is possible only with simple lists; lists with subforms, or subforms within an entry view, can not be selected in this manner.
|Selectable List View, Paste Records||
A list view whose repeat rectangle has the ‘Selectable’ attribute turned on allows the user to select a subset of the records on the list for subsequent action. (Delete, Post, Copy Records, Paste Records) When the Paste Records command is executed, the selected records are deleted, and the data on the clipboard is used to create ‘replacement’ records. (Note that Helix does no pre-checking to ensure that the data on the clipboard is of the proper format for creating records, beyond confirming that it is plain text.)
The dialog that appears in response to the Paste Records command displays both the number of records to be deleted/replaced (the selected records) as well as the total number of records displayed on the list. The dialog also informs the user that the replacement data will be taken from the clipboard.
If every record in the list is selected, the dialog title is changed to Replace All Records to reflect the fact that every displayed record will be deleted before the replacement occurs. The message is also modified to use the same format as the ‘Delete All’ command.
When the ‘Invisible’ property is set for a view, the user has no way of knowing the name of the view — this is typically done in sequences — and so including the view name in the dialog could add confusion. When an invisible view is used to delete data, the view name is suppressed, as shown on the right. The relation name is still shown, to provide context.
Although certain commands (e.g. Paste Records) are improbable on an invisible view, there may be ways to achieve this end. Even in these rare situations, the dialog displays the appropriate title, message and button name.
|Delete Host Record||
Helix 6.2 exposed the view’s ‘Delete host record’ property, which previously only had an effect when deleting from views that contain subforms. Helix 7.0 applies this property to all views, the result being that the collection designer has an additional way to prevent accidental data deletion. Although this property is shown in the ‘Subform Properties’ section of the View Inspector, it now takes effect for all views.
When this property is turned off for a view that has no subforms, the dialog on the right is displayed when a user attempts to delete a record from the view.
This property continues to work as it did before on views that do have subforms, with the additional factor that if the collection designer turns off deleting for the host view and all subforms, this dialog is displayed.
|Delete Actions Within Sequences||
When deleting is disabled or unavailable in a sequence set to show dialogs, an two buttons are displayed, giving the user the option of stopping the sequence or continuing on with the next step.
When the sequence is set to ‘never’ show dialogs, the sequence continues with the next step, in keeping with the way other similar errors are handled. (E.g. Import/Export operations) When the sequence is set to ‘optionally’ show dialogs, the sequence displays the dialog only if the Option key is held down, as per the Optional sequence rules.
Document management introduces another complicating factor, particularly when externally stored documents are involved. Helix has the ability to delete not just the record data within Helix, but also the actual original document on the storage device. The Delete Original and Delete All Originals commands do exactly what their names imply.
Delete Original is available only when a document field on an entry view has focus, and therefore only operates on a single document. If the entry view contains a subform, the dialog notes that documents in the subform are not affected by this command.
An original document deleted by Helix is permanently gone. It is not moved to the trash or any other temporary location. It is instantly erased, with no option to undo the action. In Helix 7.0, we have amplified the dialog message to reiterate the serious (and permanent) nature of these commands, as seen in the dialog on the right.
To ensure that documents are not deleted accidentally, the dialog displays the full path of the document.
If the externally stored document can not be deleted, a Why? message informs the user of reason.
|Delete All Originals||
Delete All Originals is available only when a list view contains externally stored documents. Unlike Delete Original, this command does also attempt to delete external documents linked in subforms on the view.
An original document deleted by Helix is permanently deleted. It is not moved to the trash or any other temporary location. It is instantly erased, with no option to undo the action.
In Helix 7.0, we have amplified the dialog message to reiterate the serious (and permanent) nature of these commands.
If one or more externally stored documents can not be found, a Why? message automatically opens to inform the user of the number of documents that could not be deleted.
|Find and Update All||
Find and Update All is available only when an entry view contains externally stored documents. This command attempts to update the internal information stored for the external documents linked to the view. If the entry view contains a subform, the dialog notes that documents in the subform are not affected by this command.
If one or more externally stored documents can not be found, a dialog opens so the user can locate and relink the original document. It is important to note that the prompt appears once for each document that can’t be found. Consequently, if there are more than a few documents to be updated, it is recommended that Update All be used instead.
Update All is available only when a list view contains externally stored documents. This command attempts to update the internal information stored for the external documents linked in the host form and subforms on the view.
If one or more externally stored documents can not be found, a Why? message automatically opens to inform the user of the number of documents that could not be updated.
|Subform Delete Property||
When defining a subform, the collection designer has the ability to disable delete for one or more subforms on a view. Disabled subforms are not shown in the delete dialog, as those records will not be deleted. Likewise, if the ‘Delete host record’ property is turned off for a view that has subforms that have the delete property turned on, the host’s record count is not displayed in the delete dialog.
The buttons in this dialog also respond to keyboard input: Command-D triggers the Delete button; Escape, Enter, Command-period and Command-C all trigger the Cancel button.
For dialogs whose ‘action’ button starts with a word other than ‘delete’ the first letter of that button name is used as the Command key trigger, e.g., Command-U for ‘Update Documents’