Forms

mDIS for Data Entry and Data Management

User Interface parts

mdis_gui_screenshot

The user interface of a form consists of several parts:

  • Filter Bar (1): Located on top of any page, the filter bar allows us to select records based on the data hierarchy (expedition, site, hole, core, ...),
  • or to apply a custom filter (2).
  • Current Record (3): The Current Record panel can be collapsed and expanded to show the data of one selected record and allows to edit it. When a record is selected this panel is opened automatically.
  • List of Records (4): The List of Records panel can be collapsed and expanded. It shows all records, or only a subset of records, if a filter was applied.

If you only want to look at some data you might want to collapse the "Current Record" panel. If you are on a data entry spree, i.e. you have to add many new records at a time, you might prefer to collapse the List of Records temporarily.

We will look at the user interface parts in reverse order as listed above:

List of records

If you open a form from the sidebar, the "current record" panel is collapsed, but the list of records panel is opened. form_list_of_records (Here an example for the form "core".)

The data is displayed as a table. The columns are labeled at the top (Column headers).

Below the header, the values of each record are displayed. To reach more records, you can use the scrollbar at the right to scroll down. The row with the column headers is fixed, so they stay at the top.
Since there can be huge amounts of records in a form, the are displayed paginated.

In the navigation area, you can select how many records shall be displayed on a single page or screen. This selection is saved with the form; if you come back to this form the value is preset. You can see which records are displayed and you can navigate to the previous or next page.

On the right of the navigation area, you can find a button to generate reports, export data or apply more complex actions to the records. Some of these functions consider the records selected. On the very left of the columns you can find the records selectors. Check those records you want export, generate reports for, etc. Use the checkbox in the header row to select deselect all records. You can only select records of the current pagination page. If no records are selected the selected function is applied to all records, not only the ones of this pagination page.

With the scrollbar at the bottom of the records you can scroll to the right to reach further columns. You can select which columns shall be displayed in the form by clicking on the column selector.

form_column_selector

You can scroll down through the columns and select or deselect their visibility. Use "Select all" to select or deselect all columns with one (or two) clicks. The column "#" stands for the internal id of the record. The settings are saved with the form; if you come back to this form the selected columns are still set.

The vertical size of the "list of records" panel adapts to the space available. If you resize your window, collapse the "current record" panel, scroll down, etc. it will be resized automatically.

To see more data without scrolling, you can toggle the "Compact UI mode" found at the very bottom footer on the right, next to the dark/light theme switcher. form_list_of_records In compact mode, the column header lines are wrapped and there is less space between the records and columns.

To not see all but only selected records, you can use the filtering mechanisms described below.

Current record

If you select a record in the "list of records" panel, the "current record" panel is expanded.

form_current_record (Here an example for the form "site".)

The input fields are displayed in groups the can have a title. If the "Compact UI mode" (see above) is activated, all input fields are displayed without groups.

On the bottom right, you can find the navigation between the records and the information which record of how many records is displayed.

On the right of the navigation area, you can find a button to generate reports, export data or apply more complex actions to the current record.

At the bottom left you find buttons to open related forms. As mentioned before, the data structure of mDIS is widely hierarchical. The the example for form "site" shown above, "site" has a child form "hole" and a parent form "expedition".

  • If you click on the button to access the parent form (here "expedition"), the (one) record with the parent of this current record is displayed in that form in a new browser tab.

  • If you click on the button to access a child form (here "hole"), all the records the are children of the this current record are displayed in that form in a new browser tab.

  • The Show Files button shows in it's label how many files are associated to this record. If you click the form "Files Form" (that can also been accessed from the sidebar) is opened with preset filters, so that only uploaded files for the current record are shown.

  • The Upload button allows you to upload and assign files to the current record. The Form "Files Upload" is opened with preselected filters for the current record.

When opened, the data of the current record is displayed. Below the fields, you can find some buttons to modify the data:

Delete

You have to confirm your decision to delete the current record in a dialog.

delete_record

Records can only be deleted if no child or related records exist. If this is the case, you get an error message telling that the current record cannot be deleted.

cannot_delete_record

If you intend to delete a record with all its children and descendant records and have the sufficient access rights, you can try the action "Batch delete / Recursive delete".

New

To create a new record, you first have to fill out the hierarchical filters (see below) to determine the parent record for the newly created one.

fill-out-filter-bar

If you get the error dialog "Please fill out the filter bar" you have not filled out all items in the hierarchical filter.

The color of the input fields changes to blue (as the color of the button) to show you, that you create a new record. The new record is mostly empty except for some default values.

form_new_record

Only two buttons "Save" and "Cancel" are active.

See "Edit record" below to see more details on the input fields, validation, etc.

Smart copy

To create a copy from the current record, use this button.

As in "New record", you have to fill out the hierarchical filters and a new record is created.

Most values of the current record are being copied, others are auto incremented, etc.

Edit

The color of the input fields changes to orange (as the color of the button) to show you, that you edit an existing record.

form_current_record_edit

Except for some calculated, readonly or for other reasons disabled fields, you can now edit the data. Disabled fields are displayed with a dotted bottom line:

form input readonly

Depending on the data type and other settings, diffent input elements are used to edit the data.

Text

Normal input field for texts and numbers. If you enter decimal numbers, use "." as the decimal delimiter!

form input text

Textarea

Input for longer texts. Most browsers allow to change the size of the text area. You can enter line breaks.

form input text

Switch

Switch to toggle a yes/no value.

form input text

Date

Input to enter or select a date. If you click the clock on the right of the input field, the current date is used.

form input text

You can clear the value with the small "x" button in the input. If you click into the input field, you can either type in the date or use the popup to select it.

form input text

Datetime

Input to enter or select a date with a time.

form input text

Select

Input to select one or multiple values from a list.

form input text

If the data source for the selectable values is a value list, the button shown above on the right of the form input is displayed.

For other types of select inputs it could be that there are so many values, that these cannot be displayed all at once. In this case only the first few hundreds records are displayed. As soon as you enter a filter condition, the filtered records are fetched again from the server.

Validation of values

Filtering

Hierarchical Filters

Hierarchical Filters, or "Filter Bar", or Quick filters at top of page

In mDIS, we filter records by looking at how items are arranged in a structure that has levels ( see figure above, (1) ). Think of it like a family tree. A hole (like a parent) can have many cores (like children). On the flip side, a core always has one hole it belongs to, so if you want to find a core, you pick its hole. But since a hole is part of a site (like a grandparent), you need to pick the site first. That's why the filters in a form show you this family-like structure to pick from.

An all mDIS forms, those filter bars "remember" the values a user has set previously.

However, when you select a new value from the list of a filter element, previously selected values of the dependent filter elements (those "on the right" of that list) will be reset. For example, if you change the setting of the filter "site", the list of available values for hole and section will be reset.

Custom Form Filters

custom-filter-form

The "Create Filter" form

For certain items, e.g. cores, the table of items can grow to a size which can become inconvenient to display and paginate.

Thus, in addition to the hierarchical filter mentioned above, you can set custom filter conditions, e.g. "Show cores from a depth larger than 400 meters".

To do so, click on the button "Create Filter" (previously named Edit Filter) to open a modal form accepting you custom fiter expressions. The form has the same fields, arranged in the same sequence as the usual data-entry form in the "current record" section, but allows to enter filter expressions in any field, even in calculated fields.

This extra modal dialog is necessary to enter more complex, multi-field filter conditions. Below you find the different methods of filtering values. Press the button "Apply" to filter the records using the entered conditions. Using the Toggle Filter slider (previously named Filter by Values), you can switch the custom filter off and on. The filter bar will "remember" your filter expressions.

For filter expressions spanning multiple fields, values are combined with the AND logical connector. The logical OR operation is not supported currently.

Comparing numbers or dates

For columns that contain numbers or dates, you can use the mathematical operators >, <, ==, != to compare values. Prefix <> as equivalent for != is not supported.

Use == to test for equality. Prefix == means "equal to". Only relevant for string, date and datetime fields. No regex is used, the full value is compared.

  • < 6.3: Only values smaller than 6.3. Always use the dot to separate the fraction! Do not use the comma.
  • >=6.3: Only values equal or bigger than 6.3. You do not have to write a space before the value.
  • != 3: Only values different from 3. Identical to <>3.
  • > 2017-06-23: Only dates later than June 23rd, 2017. Always write dates in the form yyyy-mm-dd.
  • < 2017-06-23 11:00: Only dates before 11:00. Please watch that you have to use UTC values for the comparison.

For text and date fields you can just enter the value you are looking for. Strings are searched for using regular expressions (opens new window). In mDIS, regular expression searches are by default case-insensitive. The following examples illustrate:

  • tube - The word "tube" has to be contained in the field. It does not matter, if it is written in upper or lower case letters.
  • tube barrel - The whole text has to be contained in the field.
  • barrels? - The character before the question mark is optional, so it matches barrel or barrels.
  • ^tube - The field value has to start with tube. ^ stands for the start of the string.
  • ^MR$ - The field value is exactly MR. $ stands for the end of the string.
  • MR|HO - The field contains either the value MR or the value HO (or both).
  • ICDP5063ECE.001 - . stands as a placeholder for one character
  • ^ICDP50.*01$ - The field starts with ICDP50 and ends with 01. * stands for any amount (also none) of the character before it, in this case the placeholder ..
  • . - Not empty. At least one character in the field.
  • 2017-10- - Any dates in October 2017
  • [^BW] - Field values that do not start with BW.
  • != means NOT and can also be used before regex expressions on string, date, datetime. So !=abc means "does not contain abc".
  • Prefix !== means not identical. Only relevant for string, date and datetime fields. No regular expression is used. The full value is compared. ==NULL and !==NULL compares against numeric NULL values.
  • =NULL searches for NULL values in strings.

The following characters are Special Characters. They have a special meaning when they are used in Regular Expressions.

Metacharacter(s) Meaning
^, $ Start, and end, of string
. Placeholder for any character
*, + Quantifier of the previous character, + stands for 1 to n, * for 0 to n.
(, ) Groups of conditions; i.e. for alternative values in the midst of a string
| Alternation, OR operator (Pipe symbol | = HTML entity &#124;)
[ ] character class
\\ Used to escape other characters; can be used to escape itself \\\\

A more detailed version of this table can be found in "perlre" (opens new window).

For searches for strings that actually contain these characters they must be "escaped", that means here: preceded with two backslashes. So for searching for a literal dot "." in a field, you would enter "\.", for US Dollars you would enter "US\$".

"QR Code Scanner" Filter

for handheld scanners connected via USB

If the form has a column "IGSN", mDIS shows a "QR Code Scanner" feature. Toggling this checkbox activates or deactivates the "search-by-qrcode" filter. This enables the use of a handheld scanner which sends the IGSN as the keyboard input. The IGSN sequence of characters is then entered into the custom filter field "IGSN" to filter the records.