Thing List

This widget prints out the paginated list of things visible by the user and for the current context.

Items can be searched and sorted depending on the properties.

Metrics are computed for the current page only, so it is not possible to sort nor search by their values.

Thing List

By enabling the "Bulk Controls", the widget allows selecting multiple thing and perform bulk operations, including:

  • Manage Tags: select/deselect and edit tags.

  • Execute Command: for each identified thing-definition, select a command with bulk support to execute.

  • Update Firmware: select a firmware and apply it to the selected thing.

When placed in a Location details template, and the Actions Enabled flag is selected the widget allows, according to user permissions, to create new things in that location.

Template Syntax

Below you can find some examples of how to use the component within a template.

Example 1

Thing list displaying simple properties.


<thing-list-widget-v2 [title]="'Things'">
	<property name="serialNumber"></property>
	<property name="properties.activationDate" filter="millisToDate"></property>
	<property name="serviceLevel" filter="serviceLevel"></property>
	<property name="properties.status" filter="statusBadge"></property>
</thing-list-widget-v2>

Example 2

List of things with complex properties and initial sorting.


<thing-list-widget-v2 [pageSize]="10" 
                      [sort]="['serialNumber','DESC','properties.activationDate','ASC']"> 
   
   <property [name]="'serialNumber'"></property>
   <property [name]="'properties.activationDate'"></property>
   
   <composite-part [label]="'Composite Column'" [filter]="'compositeValueFilter'" [sortingCriteria]="'properties.v1,DESC|properties.v2,DESC'" > 
       <property [name]="'properties.v1'"></property>
       <property [name]="'properties.v2'"></property>
   </composite-part> 
   
</thing-list-widget-v2>

Component Reference

Here is a comprehensive list of all the elements and properties that can be used to configure the component.

Thing List <thing-list-widget-v2>

Advanced

Expandable Composite Things

Enable expandable accordion for sub things.

Type: BOOLEAN | Optional

Default Value: false

[expandableCompositeThings]="true"

Id

The id of the widget.

Type: STRING | Optional

id="abc"

Search Fields

The array of fields used to filter out the objects when searching by a generic key. For instance: [searchFields]='['name', 'serialNumber', 'customer.name', 'customer.code']'

Type: PROPERTY (multiple) | Optional

[searchFields]="['property1', 'property2']"

Show Root Things Only

Forces loading of root things only.

Type: BOOLEAN | Optional

Default Value: false

[showRootThings]="true"

Actions Enabled

The boolean flag indicating whether actions (e.g. Add button) are enabled on the widget.

Type: BOOLEAN | Optional

Default Value: true

[enableActions]="false"

Advanced Search Always Open

If selected the advanced search is always open when entering the page, an cannot be closed.

Type: BOOLEAN | Optional

Default Value: false

[advancedSearchAlwaysOpen]="true"

Block Column Span

The number of columns on which to span the properties displayed in each list block (default 1).

Type: INTEGER | Optional

Default Value: 1

blockColumns="2"

Bulk Controls Enabled

The boolean flag indicating whether bulk selection and buttons (e.g. Tagging, Firmware Update) are enabled on the widget.

Type: BOOLEAN | Optional

Default Value: false

[bulkControlsEnabled]="true"

Controls Enabled

The boolean flag indicating whether controls (e.g. Search, Export) are enabled on the widget.

Type: BOOLEAN | Optional

Default Value: true

[controlsEnabled]="false"

Empty Message

The blank message to be displayed in the widget in case no item was found. To manage translations, you can define a label and use the key as the value of the property.

Type: STRING | Optional

emptyMessage="No customer found"

Title

The title displayed on the top part of the widget box.

Type: STRING | Optional

[title]="'Details'"

Data

Include Assigned

The boolean flag (true, false) indicating whether the list must include also ASSIGNED things.

Type: BOOLEAN | Optional

Default Value: true

[includeAssigned]="false"

Include Unassigned

The boolean flag indicating whether the list must include also UNASSIGNED things.

Type: BOOLEAN | Optional

Default Value: false

[includeUnassigned]="true"

Initial Sorting

The array of property names and criteria to use for sorting (e.g. ['name','asc','serialNumber','desc']).

Type: SORT_PROPERTIES | Optional

[sort]="['name','asc','serialNumber','desc']"

Page Size

The number of items to load on each page.

Type: INTEGER | Optional

Default Value: 50

pageSize="100"

Query

The array of conditions filtering out items. For instance: [query]='[{'property': 'connectionStatus', 'predicate': 'eq', 'value': '1'}]'  Predicates: eq, beginsWith, like, notLike, isEmpty, isNotEmpty, gt, gte, lt, lte.

Type: QUERY | Optional

Predicates: beginsWith, eq, neq, gt, gte, isEmpty, isNotEmpty, lt, lte, like, notLike

[query]="[{property:'prop1', predicate: 'eq', value: 'foo'}, {property:'prop2', predicate: 'in', value: ['bar', 'baz']}]"

Query Variable

The id of the page's <things-filter-field> used for searching.

Type: STRING | Optional

queryFieldRef="query-1"

Rendering

CSS Class

The name(s) of the CSS class used to customize the widget layout.

Type: STRING | Optional

class="my-custom-class"

Sub Elements

Metric

The metric whose label and current value must be rendered as a widget row.

Property

The property whose label and current value must be rendered as a widget row.

Composite Part

The widget part combining multiple properties and metrics.

Metric <metric>

Filter

The name of the filter used to transform and display values.

Type: FILTER | Optional

filter="fooBarFilter"

Label

The metric alternative label.

Type: STRING | Optional

label="Temperature"

Name

The metric whose value(s) must be loaded by the widget.

Type: METRIC | Required

name="Temperature"

Unit

The unit of measurement to be displayed along the value.

Type: STRING | Optional

unit="&deg;C"

Advanced

Column CSS Class

The name(s) of the column CSS class used to customize the table column.

Type: COLUMN_CSS | Optional

columnClass="my-column-custom-class"

Display Mode

The way the column is displayed.

Type: ENUM | Optional

Values: VISIBLE, INITIALLY_HIDDEN, ALWAYS_HIDDEN

Default Value: VISIBLE

displayMode="VISIBLE"

Show Header

The flag indicated whether the header is visible.

Type: BOOLEAN | Optional

Default Value: true

[showHeader]="false"

Visibility Condition

The expression that allows you to reduce the visibility of the element.

Type: STRING | Optional

*ngIf="getUser().organizationId != null"

Property <property>

Description

The property description.

Type: STRING | Optional

description="abc"

Filter

The name of the filter used to transform and display values.

Type: FILTER | Optional

filter="fooBarFilter"

Label

The property alternative label.

Type: STRING | Optional

label="Temperature"

Name

The property whose value must be loaded by the widget.

Type: PROPERTY | Required

name="serialNumber"

Advanced

Column CSS Class

The name(s) of the column CSS class used to customize the table column.

Type: COLUMN_CSS | Optional

columnClass="my-column-custom-class"

Display Mode

The way the column is displayed.

Type: ENUM | Optional

Values: VISIBLE, INITIALLY_HIDDEN, ALWAYS_HIDDEN

Default Value: VISIBLE

displayMode="VISIBLE"

Include in Export

The boolean flag indicating whether the property value should be included in the export even when not visible within the page.

Type: BOOLEAN | Optional

Default Value: false

[includeInExport]="true"

Show Header

The flag indicated whether the header is visible.

Type: BOOLEAN | Optional

Default Value: true

[showHeader]="false"

Visibility Condition

The expression that allows you to reduce the visibility of the element.

Type: STRING | Optional

*ngIf="getUser().organizationId != null"

Composite Part <composite-part>

Description

The composite-part description.

Type: STRING | Optional

description="abc"

Filter

The filter applied on the composite-part to transform or display its value.

Type: FILTER | Optional

filter="fooBarFilter"

Label

The label displayed by the widget.

Type: STRING | Optional

label="abc"

Name

The composite-part name.

Type: STRING | Optional

name="abc"

Sorting Criteria

The comma seprated list of property names and criteria to use for sorting the list column associated to this composite-part (e.g. properties.p1,ASC,properties.p2,DESC).

Type: STRING | Optional

sortingCriteria="properties.p1,ASC,properties.p2,DESC"

Advanced

Column CSS Class

The name(s) of the column CSS class used to customize the table column.

Type: COLUMN_CSS | Optional

columnClass="my-column-custom-class"

Display Mode

The way the column is displayed.

Type: ENUM | Optional

Values: VISIBLE, INITIALLY_HIDDEN, ALWAYS_HIDDEN

Default Value: VISIBLE

displayMode="VISIBLE"

Show Header

The flag indicated whether the header is visible.

Type: BOOLEAN | Optional

Default Value: true

[showHeader]="false"

Visibility Condition

The expression that allows you to reduce the visibility of the element.

Type: STRING | Optional

*ngIf="getUser().organizationId != null"

Sub Elements

Metric

The metric whose value must be loaded within the composite-part.

Property

The property whose value must be loaded within the composite-part.

Metric <metric>

Name

The metric whose value(s) must be loaded by the widget.

Type: METRIC | Required

name="Temperature"

Property <property>

Name

The property whose value must be loaded by the widget.

Type: PROPERTY | Required

name="serialNumber"