create_list_screen

Admin-only MCP tool.

Create a new list screen for an existing form. A list screen shows the entries in a form as a list, which is the main way users find, search and open the entries they are interested in. Each form can have several list screens, showing different columns, filtered down to different sets of entries, or offering different buttons, etc.

The point of different screens is to support different workflow operations. You generally do not need to create different screens just because there are different groups of users in the system. Formulize will take the different permissions for each group into account, so that the same screen will behave differently for each group.

For example, consider an organization with different groups of users organized by location, and the users at each location need to review recent entries, but only the ones for their location. Instead of creating one screen per location, each with its own filter, you can create a single screen and set the default_view for the Registered Users group (group 2) to “their_groups_entries”. You would use the Registered Users group to ensure the setting applied to everyone who used the screen.

Furthermore, if it were important to make sure that users at each location can only see the entries for their location, and no others, then you would also use the set_form_permissions tool to restrict each group to seeing “their group’s” entries. Formulize enforces permissions throughout the system, so users can only see and do what they’re supposed to, no matter how any given screen is configured.

Specify the columns you want, in the order you want them, using the “columns” property; each column can also have a Quicksearch control and a starting sort direction. Use get_form_details to find the element handles. You can include columns from any form directly connected to the form this screen belongs to.

Use fundamental_filters to permanently restrict a screen to a subset of entries (eg: a screen that only ever shows this year’s orders). Fundamental filters apply only to the screen you are creating, so users may still be able to access the excluded entries elsewhere, depending on their own permissions.

Use update_list_screen to change a screen later, and get_screen_details or list_screens to inspect screens.

Properties

Property Type Required? Description
form_id integer Required

Required. The id of the form this screen belongs to.

title string Required

Required. The name of the screen.

handle string Optional

Optional. A short name for this screen, unique across every screen in the system. Spaces and hyphens become underscores, anything else that is not a letter, number or underscore is stripped, and capitals are lowered. If the name you ask for is already in use by another screen, it is adjusted until it is unique. Leave it out and the handle is made from the screen’s title, which is usually what you want.

anonymous_access_needs_passcode boolean Optional

Optional. When anonymous visitors can reach this screen, require them to enter a passcode that they will have received prior, in order to open a particular entry. On by default. Turning it off means anyone with the link can open the entry, so only do it for truly public access situations. The Anonymous Users group (group 3) will also need permission for the form, use the set_form_permissions tool to do that.

is_default_list_screen boolean Optional

Optional. Make this the default list screen. When a menu item or URL leads to the form without naming a screen, and the user has permission to interact with multiple entries in the form, Formulize will default to showing this screen. Setting true replaces whatever list screen held the position before - a form only has one default list screen at a time. If you are updating, setting false will remove the default ‘.list.’ screen, but only if this screen is currently the one holding it; on any other screen false does nothing, so it cannot displace a different screen by accident.

columns array of object Optional

Optional. The columns of the list, in the order they appear. If you leave this out, the list starts out with the form’s own default columns, which on most forms is just the element that identifies an entry, so it is usually worth naming the columns you want. Users can change which columns they see (with the change_columns button) and save their own views; these columns are what the screen starts out with. Each column may also carry a Quicksearch control and a starting sort direction.

fundamental_filters array of object Optional

Optional. Conditions that permanently restrict which entries this screen can ever show. Unlike a search, the user cannot see or undo them, and they apply to every view on the screen, so they are the way to make a screen that is only ever about a subset of the entries (eg: only this year’s orders, or only the records assigned to the person looking at the screen). This setting applies only to this screen; users may be able to access other screens that show more entries. Conversely, permissions set with the set_form_permissions tool apply system wide.Omit it (or provide an empty array) for a screen that shows every entry the user has permission to see. Each condition has an element, an operator, a value, and a ‘type’ flag of ‘match-all’ (combined with AND) or ‘match-one-or-more’ (combined with OR). Conditions can reference elements in this form or in connected forms. Do not use foreign keys as values for linked elements; use the readable value, which this tool understands automatically. Use “{BLANK}” to match blank values, and dynamic values such as {TODAY}, {TODAY+7}, {NOW} and {USER} (the user looking at the screen).

entries_per_page integer Optional

Optional. How many entries appear on each page of the list. Use 0 to put every entry on one page, which is only sensible for lists that will always be short. The default is 10.

view_entry_screen integerstring Optional

Optional. Which form screen opens when a user clicks through to an individual entry. The default is the default form screen for this form. Use a specific screen id to set this to a different form screen, on this form or on a connected form. Use the string ‘default’ to reset to the default.

buttons object Optional

Optional. The buttons on the screen, and the text on them. To turn off a button, set its text to an empty string (buttons with no text do not appear).Buttons you do not mention get sensible default labels, which means most of them will be present. For any that you do not want, set them to an empty string. A button only ever appears for users whose permissions allow the action behind it. For example, if can include the Delete Entries button, and it will only show up on the screen for users who have permission to delete entries. Use the set_form_permissions tool to update permissions for users.

add_entry string Optional

Starts a new entry (or opens the user’s own entry, on a form where each user has only one). Default is “Add <the form’s singular name>”. Set an empty string to remove this button from the screen.

add_multiple_entries string Optional

Starts a new entry, and reloads the form blank after saving, so another new entry can be created. Useful for forms where people make more than one entry at once often. This button is off by default. Suggested text would be “Add <the form’s plural name>”. Set an empty string to remove this button from the screen.

proxy_entry string Optional

Starts a new entry on behalf of another user. Only ever shown to users who have permission to do that, and no permission to create entries of their own. Set an empty string to remove this button from the screen.

clone_selected string Optional

Duplicates the entries the user has checked off. Set an empty string to remove this button from the screen.

delete_selected string Optional

Deletes the entries the user has checked off. Set an empty string to remove this button from the screen.

change_owner string Optional

Changes who owns the entries the user has checked off. This alters the groups the entries are associated with, and so may change who can see the entries. Set an empty string to remove this button from the screen.

select_all string Optional

Checks off every entry visible on the current page of the list. Set an empty string to remove this button from the screen.

clear_selection string Optional

Unchecks every entry visible on the current page of the list. Set an empty string to remove this button from the screen.

change_columns string Optional

Opens the interface for choosing which columns the list shows. Set an empty string to remove this button from the screen.

calculations string Optional

Opens the interface for totals, averages and other calculations on the columns. Set an empty string to remove this button from the screen.

export string Optional

Exports all entries matching the current search terms and visibility scope to a csv file. Only includes the currently selected columns. Set an empty string to remove this button from the screen.

export_calculations string Optional

Exports the results of the calculations to a file. Set an empty string to remove this button from the screen.

import string Optional

Opens the import interface for creating entries from a csv file. Set an empty string to remove this button from the screen.

notifications string Optional

Opens the interface where users can choose when to be notified of new or updated or deleted entries. A User with the set_notifications_for_others permission can configure notifications that will go to other users besides themself. Set an empty string to remove this button from the screen.

save_view string Optional

Saves the current columns, searches, sorting, and visibility scope as a view that can be returned to later. Users with the publish_reports permission can publish views to their groups. Users with the publish_globalscope permission can publish views to anyone Set an empty string to remove this button from the screen.

reset_view string Optional

Puts the list back to it’s initial state, clearing any changes the user might have made to the searches, column choices, sorting order, or visibility scope. Set an empty string to remove this button from the screen.

delete_view string Optional

Deletes the saved view the user is currently looking at. Users can always delete their own saved views. Users with delete_other_reports permission can delete views published by others. Set an empty string to remove this button from the screen.

custom_buttons array of object Optional

Optional. Custom buttons to put on the screen. A custom button appears on every row of the list and changes values in that row’s entry when clicked - the usual reason to add one is to let a user alter an entry with a single click, without having to open it and edit it. For example, update a status, approve something, etc These tools only configure the in-row kind of button. There are other kinds of custom buttons in Formulize that can have other effects, but they must be set in the administration interface. A button on this screen that does one of those things cannot be changed here and will be left exactly as it is.

visibility_scope_label string Optional

Optional. The text that introduces the visibility scope options interface. The default text is “Showing:” The basic options are ‘Entries by me’, ‘Entries by my groups’, ‘Entries by all users’. In addition, there is an option for users to select an arbitrary set of groups (from among the groups they are a member of). If the user has access to any saved views, they will be selectable in this interface as well. Set an empty string to turn off the interface.

available_views array of ["string", "integer"] (one of: every_view, their_own_entries, their_groups_entries, all_entries) Optional

Optional. Which views the visibility scope interface offers. Defaults to every view. Use [‘every_view’] for no restriction. The three standard views are their_own_entries, their_groups_entries and all_entries. Regardless of this setting, what a given user actually sees will always depend on their permissions. Set user permissions with the set_form_permissions tool.

default_view array of object Optional

Optional. Which view each group of users starts out on. Defaults to all_entries for Registered Users, however a given user will only ever see the entries that their permissions on the form allow. Set user permissions with the set_form_permissions tool. If there are default_view values specified for multiple groups, a user who is a member of more than one will get the view that comes first in the array. Use list_groups to find group ids.

show_column_headings boolean Optional

Optional. Show a heading at the top of each column. Default is true. Headings are also what users click to sort the list, so turning them off removes the ability to sort.

show_search_boxes string (one of: shown, hidden, off) Optional

Optional. Whether the Quicksearch boxes appear under the column headings: ‘shown’ (the default) puts them on screen; ‘hidden’ keeps them out of the way until the user clicks to open them; ‘off’ removes them.

show_entry_count boolean Optional

Optional. Show the count at the bottom of the list, eg: ‘Showing entries 1 to 10 of 55’. Default is true.

show_hide_repeating_data_switch boolean Optional

Optional. Show the ‘Hide repeating data’ switch, which lets users blank out values that repeat from the row above. Default is true. This is useful if the list will include a lot of the same values over and over, and then the user can flip the switch to isolate the relevant data.

show_checkboxes string (one of: based_on_delete_permission, all_entries, none) Optional

Optional. Whether a checkbox appears beside each entry, so users can select entries to act on: ‘based_on_delete_permission’ (the default) shows one only where the user can delete the entry; ‘all_entries’ shows one on every entry, which is what you want when the workflow might involve users doing something other than deleting entries; ‘none’ removes the checkboxes for everyone, regardless of permission.

entry_link_icon_style string (one of: pen, magnifying_glass, none) Optional

Optional. The icon at the left of each entry that opens the full entry: ‘pen’ suggests editing, ‘magnifying_glass’ suggests looking, and ‘none’ results in no icon, which means users have no way to open an entry from this screen.

show_working_message boolean Optional

Optional. Show the ‘Working’ message while the page reloads. Default is true.

max_characters_per_cell integer Optional

Optional. Truncate the text shown in any cell to this many characters, so one long value cannot stretch the list. Use 0 for no limit. New screens use 255.

editable_columns array of ["string", "integer"] Optional

Optional. The columns whose values are shown as editable form inputs right in the list, instead of as text, so users can change many entries without opening them. Specify elements by handle or id. This setting does not cause the element to appear in the screen, do that with the columns property. A column that is not initially in the screen, will appear in an editable form if the user changes columns to include it.

editable_columns_show_option string (one of: immediately, pen, magnifying_glass) Optional

Optional. When should the values in editable columns turn into inputs: ‘immediately’ (the default) makes all values editable as soon as the list loads; ‘pen’ or ‘magnifying_glass’ makes each cell editable only after the user clicks the icon on it.

editable_columns_save_button_text string Optional

Optional. The text on the button below the list that saves changes the user made in the editable columns. Only relevant when editable_columns is in use, and editable_columns_show_option is set to ‘immediately’ (otherwise each cell has its own save button). Default is "Save".

← Back to the MCP reference