FastX Sessions Forms


This section is accessible by logging into FastX as an administrator through a web browser. Select the Admin icon after login.

Custom forms can be created and displayed to users when starting an application. Custom forms allow administrators to collect extra information from the user. This information is typically used in conjunction with load balancing and job scheduling to determine how and where to start the session. The form data collected is added to the params field when starting the session.

There is a listing of existing Forms, which can be edited, deleted, or set as default by clicking on the desired form and then .

New Form

Click the button to create a new Form.

  • Name – Enter name of Form
  • HTML Form – The HTML form that will be displayed to the user. FastX uses Bootstrap 4 styling which can be added to keep the look and feel consistent through the form.  Valid input will be added to the params object of the start data.
  • Allow unsafe HTML tags in the form – Check the box to explicitly allow unsafe HTML in the form

Static Data

User Defined JSON Object of static data. This can be used when filtering forms.

Default Forms 

Click on the Default Forms button to choose available forms and move the forms to Forms in use.

Form Filter 

Click on the Form Filter button to bring up a Javascript function used to determine which form to send to the user when starting a session.

async function(input) {
  // input.data -- input sent from the api call  
  // input.forms -- array of form object


  //return a falsy value to continue
  //return a form object to pop up a form
  //return the string 'SERVERLIST' to allow the user to choose from the available servers (dynamically generated form from the serverList function)
  return;
}
{
     user: USER_LOGIN,
     isAdmin: false,  /* Is user an admin */
     isManager: false, /* Is user a manager */
     userGroups: ["g1", "g2", ... "gN"], /* Array of User's Linux User Groups */
     data: START_DATA,
     forms: [FORM1, FORM2 ...] /* Array of Form Objects */
}

Input Object

input.user

See Login Object 

input.data

See API Start

Form Object

See Form Object

Return

If the value is Falsy, forms have been completed, and continue

If the value is JSON Object, this is the form object that will be returned

If the value is the special string “SERVERLIST”, return a form of the filtered server list

Server Filter

Click on the Server Filter button to bring up a Javascript function used to filter out serverIds based on user input.  This allows a partial list of all cluster members to be sent to the user for selection.

async function(input) {
  // input.data -- input sent from the api call
  // input.servers -- array of server objects
  //return a filtered list of servers for the user specified by username, or none to disable server selection
  return input.servers;
}

Input Object

{
     user: USER_LOGIN,
     isAdmin: false,  /* Is user an admin */
     isManager: false, /* Is user a manager */
     userGroups: ["g1", "g2", ... "gN"], /* Array of User's Linux User Groups */
     data: START_DATA,
     servers: [SERVER1, SERVER2 ...] /* Array of Server Objects */
}

input.user

See Login Object

input.data

See API Start

Note* If there is a password field, it  is changed to  **********

Server Object

See Server Object

Return

If the value is Falsy, disable Server Selection

Return an array of server objects that you want the user to select fromEnable Automatic Option – Checking this box will add automatic as an option to the server list. This has the effect of allowing the user to set the serverid to an empty string.