A [[Field]] type that allows a single value from a limited, pre-defined input. The possible input values are a list of [[OptionItem]]s (aka Option List).

Say you want the user to select a month. There are only 12 months in a year, and you know all of them already. Making this a [[SingleSelectField]] instead of a [[TextField]] will greatly improve the quality of the inputted data.

Hierarchy

Constructors

Methods

  • Returns an array of all active [[OptionItem]]s for this field.

    Returns EList<OptionItem>

    Example

    // get the CSS classes of all the active OptionItems
    const activeClasses = field.activeOptions().map(op => [op, op.cssClass()])
    explore example
    [[OptionItem.cssClass]]
  • Returns an array of all possible [[OptionItem]]s for this field, active, disabled, locked, and obsolete.

    Returns EList<OptionItem>

    Example

    // get the stati of all the OptionItems
    const statuses = field.allOptions().map(op => [op, op.status()]);
    explore example
    [[OptionItem.status]]```javascript // get an option by ID and set it field.allOptions().filter(op => op.id().toString() === id)[0].selected(true); ``` ```javascript // get an object of options indexed by ID const optionsById = Object.fromEntries(field.allOptions().map(op => [op.id().toString(), op])); ```
  • An object of alternate ids for this object, with values as [[AltId]]

    Returns {
        [name: string]: AltId<T>;
    }

    Example

    // you've marked certain forms with the FID of deprecated and want to filter for those
    const warningMessage = baseObject.altIdsObject().FID.value().includes('deprecated') && 'Please use a different form';
  • An object of alternate ids for this object, with values as strings

    Returns {
        [name: string]: string;
    }

    • [name: string]: string

    Example

    // you've marked certain forms with the FID of deprecated and want to filter for those
    const warningMessage = baseObject.altIds().FID.includes('deprecated') && 'Please use a different form';
  • An array of alternate ids for this object.

    Returns EList<SingleSelectField>

    Example

    // you've marked certain forms with the FID of deprecated and want to filter for those
    const warningMessage = baseObject.altIds().FID.includes('deprecated') && 'Please use a different form';
  • Same as calling optAncestor(var).orElse(null)

    Type Parameters

    Parameters

    • classType: string | number

    Returns B

  • If this object is a Collection it returns it as an array. The majority of objects in the system are Collections. For most objects, this is the same as calling [[children]].

    Returns EList<BaseObject<any>>

    Example

    const ids = obj.asArray().map(ob => ob);
    
  • Get the children of the object. This retrieval goes one level deep.

    Parameters

    • Optional classType: string | number

    Returns EList<BaseObject<any>>

    Example

    const childrenNames = obj.children().map(child => child.displayName());
    
  • Sets all options to unchecked.

    Returns void

    Example

    // deselect all OptionItems
    selectField.clear();
  • The "created at" timestamp of this object.

    Returns Instant

    Example

    const createdAt = `<div class="created-at">${baseObject.created()}</div>`;
    
  • The creator of this object.

    Returns User

    Example

    alert(`Guess who created this. It was ${baseObject.creator().fullName()}. They are to blame.`);
    
  • Returns a delete URL for this object, else a blank string. Following the URL will delete the object, so proceed with caution.

    Returns string

    Example

    const deleteBtn = `<button data-href="${baseObject.deleteUrl()}">Go to ${baseObject.displayName()}</button>;
    
  • The deleted children of this object. Only looks one level deep. E.g. a form's deleted children could include fields and form entries. A folder's deleted children could include folders, forms, and formulas, but not any of those forms' entries.

    Returns EList<BaseObject<any>>

    Example

    const deleted = baseObject.deletedChildren();
    
  • Returns an array of all disabled [[OptionItem]]s for this field. A disabled [[OptionItem]] will show up on a form, but it won't be selectable.

    Returns EList<OptionItem>

    Example

    // get the indexes of all the disabled OptionItems
    const disabledIndexes = field.disabledOptions().map(op => [op, op.index()])
    explore example
    [[OptionItem.index]]
  • The default display name of this object. For the most part, this is the same as calling toString(), which is the same as inserting the object into a string.

    Returns string

    Example

    The following assumes you have already aggregated a selection of baseObjects into an array

    const displayNames = [];
    for (const o of baseObjects) displayNames.push(o.displayName());
    const namesList = `<ul><li>${displayNames.join('</li><li>')}</li></ul>`;
  • Sets the Display Name.

    Parameters

    • name: string

    Returns void

  • Returns an edit URL for this object, else a blank string.

    Returns string

    Example

    const editBtn = `<button data-href="${baseObject.editUrl()}">Go to ${baseObject}</button>`;
    
  • Returns this field's [[FormMetaData]] object.

    Returns FormMetaData

    Example

    const form = firstName.form();
    const fieldNames = [];
    for (field in form) fieldNames.push(form[field].displayName());
  • The [[Id]] of this object bounded to T.

    Returns Id<SingleSelectField>

    Example


    const displayDiv = `<div class="object-card" id="${baseObject.id()}">
    <div class="title">${baseObject}</div>
    <div class="body">Hello World!</div>
    </div>;
  • Returns whether the object is locked or not.

    Returns boolean

    Deprecated

    Part of the [[Lock]] API.

    Example

    const isLocked = baseObject.isLocked();
    
  • Returns whether the field is multi-select.

    Returns boolean

    Example

    // get selected export values without knowing if it's single or multi
    const selectedExport = field.isMultiSelect() ?
    field.selectedExportValues() : field.optSelected().exportValue();
    explore example
    [[MultiSelectField.selectedExportValues]], [[SingleSelectField.optSelected]], [[OptionItem.exportValue]]
  • Returns whether the object is pending a lock or not.

    Returns boolean

    Deprecated

    Part of the [[Lock]] API.

    Example

    const isPendingLock = baseObject.isPendingLock();
    
  • Returns whether the object is pending an unlock or not.

    Returns boolean

    Deprecated

    Part of the [[Lock]] API.

    Example

    const lockPendingUnlock = baseObject.isPendingUnLock();
    
  • Returns whether the field is writable

    Returns boolean

    Example

    const firstNameClass = firstName.isWritable() ? 'active' : 'inactive';
    
  • Same as calling optLock().orElse(null)

    Returns Lock

  • Returns an array of all locked [[OptionItem]]s for this field. A locked [[OptionItem]] will show up on a form, but it won't be selectable.

    Returns EList<OptionItem>

    Example

    // see if any locked OptionItems are selected
    const selectedLocked = field.lockedOptions().filter(op => op.isSelected())
    explore example
    [[OptionItem.isSelected]]
  • The lookup function finds a single option in the list of options using the custom lookup properties of the option items. Custom lookup properties come in two varieties: unique and non-unique. Names beginning with an underbar (_) do not have to be unique. Names that do not begin with an underbar must be unique name/value pair for any one type of Relate element within a single organization. Thus, if the name begins with an underbar there could be more than one option that has the same name/value pair associated with it. In this case, the first matching option will be returned.

    Parameters

    • name: string
    • value: string

    Returns OptionItem

    Example

    // see whether the lowest or highest priority options were selected
    // assumes you already have the functions handleLowest, handleHighest, and handleOther
    const selExpVal = field.optSelected().map(op => op.exportValue());
    const low = field.lookup('_priorityLevel', 'lowest');
    const high = field.lookup('_priorityLevel', 'highest');
    low.isSelected() && handleLowest(low);
    high.isSelected() && handleHighest(high);
    !low.isSelected() && !high.isSelected() && handleOther(selExpval);
    explore example
    [[Java.Optional.map]], [[SingleSelectField.optSelected]], [[OptionItem.isSelected]]
  • Parameters

    • Optional options: string

    Returns string

  • The modified date of this object.

    Returns Instant

    Example

    const isModified = baseObject.modified();
    
  • The [[User]] that last modified this object.

    Returns User

    Example

    const modifierName = baseObject.modifier().fullName();
    
  • Returns an array of all obsolete [[OptionItem]]s for this field. [[OptionItem]]s are marked obsolete if they are never going to be used again, but still need to exist for legacy data. Will not show up on a form.

    Returns EList<OptionItem>

    Example

    // get the groups containing each of the obsolete OptionItems
    const obsoleteGroups = field.obsoleteOptions().map(op => [op, op.groups()])
    explore example
    [[OptionItem.groups]]
  • A [[Java.Optional]] of the ancestor with the specific class.

    Parameters

    • classType: string | number

    Returns Optional<BaseObject<any>>

    Example

    const ancestors = obj.optAncestor(1000001).ifPresent(a => console.log('${a} exists'));
    
    explore example
    [[Java.Optional.ifPresent]]
  • Returns the [[Lock]]

    Returns Optional<Lock>

    Deprecated

    Part of the [[Lock]] API.

    Example

    const lockExpire = baseObject.optLock();
    
  • A [[Java.Optional]] of the current object's parent object.

    Parameters

    • Optional classType: string | number

    Returns Optional<BaseObject<any>>

    Example

    const ancestors = obj.optAncestor(1000001).ifPresent(a => console.log('${a} found'));
    
    explore example
    [[Java.Optional.ifPresent]]
  • The optional selected [[OptionItem]]

    Returns Optional<OptionItem>

    Example

    // get the name of the selected OptionItem
    const selName = field.optSelected().map(op => op.displayName());
    explore example
    [[Java.Optional.map]], [[OptionItem.displayName]]
  • Returns an object where the members are the export value and the values are [[OptionItem]].

    Returns {
        [exportValue: string]: OptionItem;
    }

    Example

    // get an alphabetized list of the export values
    const orderedExportVals = Object.keys(field.optionsByExport()).sort();
  • Returns an object where the members are the name and the values are [[OptionItem]].

    Returns {
        [name: string]: OptionItem;
    }

    Example

    // only get the options shorter than 20 characters
    const onlyShortOps = Object.keys(field.optionsByName()).filter(key => key.length < 20)
  • Same as calling optParent(var).orElse(null)

    Type Parameters

    Parameters

    • Optional classType: string | number

    Returns B

  • Reset the current object so that it is cleared from the cache and looked up from the database.

    Returns void

  • An Integer value indicating which option is selected. If this value is -1, then the SingleSelect has no item selected.

    Returns number

    Example

    // set the default selected value to 0
    const setDefaultSel = (field, idx) => {
    field.selectedIndex() === -1 && field.selectedIndex(idx)
    }
    for (const field in fields) setDefaultSel(fields[field], 0);```
  • This field can be assigned a new index if the SingleSelect value is in an editable state.

    Parameters

    • newVal: number

    Returns void

    Example

    // set the default selected value to 0
    const setDefaultSel = (field, idx) => {
    field.selectedIndex() === -1 && field.selectedIndex(idx)
    }
    for (const field in fields) setDefaultSel(fields[field], 0);```
  • Returns a list of selected [[OptionItem]]s.

    Returns EList<OptionItem>

    Example

    // get the stati of the selected OptionItems
    const selStatus = field.selectedOptions().map(op => [op, op.status()]);
  • Sets or clears the OptionItem with the given ID. Returns true if successful.

    Parameters

    • id: string | Id<OptionItem>

      The ID of the OptionItem to set

    • Optional checked: boolean

      Defaults to true

    Returns boolean

  • Sets or clears the OptionItem with the given export value. Returns true if successful.

    Parameters

    • id: string

      The export value of the OptionItem to set

    • Optional checked: boolean

      Defaults to true

    Returns boolean

  • Sets or clears the OptionItem with the given name. Returns true if successful.

    Parameters

    • name: string

      The name of the OptionItem to set

    • Optional checked: boolean

      Defaults to true

    Returns boolean

  • Returns the bluestep.js classpath for the current object.

    Returns string

    Example

    const isBool = testForm.fields.mysteryField.typeName().toLowerCase().includes('boolean')
    
  • Makes changes to the database for this object

    Returns void

  • Same as calling set(newValue.id())

    Parameters

    Returns void

  • Set the field's value.

    Returns OptionItem

    Example

    // make the field say `hello`
    field.val('hello');
  • Optional value for this field. Alias for [[opt]].

    Returns Optional<OptionItem>

    Example

    date.valOpt().map(val => `Report Date: ${val}`).orElse('No Date');
    
    explore example
    [[Java.Optional.map]], [[Java.Optional.orElse]]
  • The version of this object or empty string if it doesn't exist.

    Returns string

    Example

    const version = baseObject.version();
    
  • Returns a view URL for this object, if it has one. This value is always a relative URL, meaning it does not contain the protocol prefix or domain name such as http://xyz.bluestep.net.

    Returns string

    Example

    const viewBtn = `<button data-href="${baseObject.viewUrl()}">Go to ${baseObject.displayName()}</button>;
    

Generated using TypeDoc