...
Filtering controls:
marker_id (range, ex: 100-210)
OR marker.names list (text area: line-separated list)
Platform
A submit button to query the database
A clear button to clear the current filters and result set
A table listing the data resulting from the filters
This table will provide pagination for optimal performance
This table will provide a capability to select rows individually
And a select all button to select all rows
A delete button to delete the rows selected
For the result table: All the columns wherein an ID is displayed should have a column next to it, displaying the names. Columns should be sortable.
Functional Specifications:
Upon selecting a set of markers from the result table and clicking the delete button, the system will:
Prompt the user to confirm what will be deleted (basic yes-no prompt window with a list of all the datasets that will be deleted).
PREREQUISITE CHECK: We only allow markers deletion IF the markers are not being used in any dataset AND any marker_groups. If there are datasets or marker_groups using those markers:
Provide a window/prompt/page that displays the list of dataset references for the markers, and do not allow deletion if there are references. Basically, you have to delete the datasets first.
A message that essentially displays: "Marker 1 is being used on dataset A, B, and C. Marker 2 is being used on dataset D and E. Please delete those datasets first."
Presentation of this message and list of datasets is up to the developer. If it's more performant and user-friendly to have a separate page with a table in it (in case the list is big) then do it that way.
Provide a window/prompt/page that displays the list of marker_groups references for the markers, and do not allow deletion if there are references. Basically, you have to update the marker_groups first.
A message that essentially displays: "Marker 1 is being used on marker_group A, B, and C. Marker 2 is being used on marker_group D and E. Please update those marker groups first using the loaderUI."
Presentation of this message and list of marker_groups is up to the developer. If it's more performant and user-friendly to have a separate page with a table in it (in case the list is big) then do it that way.
If the user clicks yes, the system then will delete the following, in this order (details on how to delete them are detailed listed below)
Marker_linkage_group rows for the list of markers being deleted
Marker rows
If the user clicks no, the operation will simply abort.
...
A warning message box will be shown that which clearly indicates that the operation is final and the data will be deleted, providing a quick statistics on how many rows there are (ex. Are you sure you want to delete 102321 markers?). The user is then provided with given the ability to cancel or go through with the operation.
...