--- 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