---
# System prepended metadata

title: Thingsboard Relative Links
tags: [ThingsBoard]

---

---
tags: ThingsBoard
---

# Thingsboard Relative Links


[toc]

<br/>

## Schema section
[Schema Doc](https://thingsboard.io/docs/user-guide/contribution/widgets-development/#settings-schema-section)

[Schema Builder and Example](http://networknt.github.io/react-schema-form/)

* There are two parts in TB: Setting Schema, Data Key Settings Schema
* Setting Schema -> is used to store specific widget settings and is accessible from widget JavaScript code
* Data Key Setting Schema -> store specific settings for each data key of the datasource defined in the widget


<br/>

## Basic Widget API 
[Basic Widget API](https://thingsboard.io/docs/user-guide/contribution/widgets-development/#basic-widget-api)



<br/>

## UI Package
[Github ui-ngx description](https://github.com/thingsboard/thingsboard/tree/master/ui-ngx/src/assets/help/en_US/widget/lib)

[Check any useful widget](https://github.com/devaskim/awesome-thingsboard#widgets)

<br/>

## User Authority
[Assign to new user](https://github.com/devaskim/awesome-thingsboard/tree/main/chain/assign-dashboard-to-new-user)

<br/>

## Transfer parameters
* Thingsboard custom control-button example: use ==self.ctx.$scope.isClick==
```htmlembedded
<div class="container">
    <button mat-raised-button color="primary" class="c-btn" (click)="toggleClick()">{{isClick ? "Clicked" : "Click Me"}}</button>
</div>
```

```javascript
self.onInit = function() {
    self.ctx.$scope.isClick = false;
    self.ctx.$scope.toggleClick = function(){
        self.ctx.$scope.isClick = !self.ctx.$scope.isClick;
    };  
}
```

* self.ctx -> for the widget context