Widget Type description
This commit is contained in:
parent
bf068011e0
commit
96cdae8764
@ -180,6 +180,8 @@ public abstract class BaseController {
|
|||||||
public static final String ENTITY_TYPE_PARAM_DESCRIPTION = "A string value representing the entity type. For example, 'DEVICE'";
|
public static final String ENTITY_TYPE_PARAM_DESCRIPTION = "A string value representing the entity type. For example, 'DEVICE'";
|
||||||
public static final String RULE_CHAIN_ID_PARAM_DESCRIPTION = "A string value representing the rule chain id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'";
|
public static final String RULE_CHAIN_ID_PARAM_DESCRIPTION = "A string value representing the rule chain id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'";
|
||||||
public static final String WIDGET_BUNDLE_ID_PARAM_DESCRIPTION = "A string value representing the widget bundle id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'";
|
public static final String WIDGET_BUNDLE_ID_PARAM_DESCRIPTION = "A string value representing the widget bundle id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'";
|
||||||
|
public static final String WIDGET_TYPE_ID_PARAM_DESCRIPTION = "A string value representing the widget type id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'";
|
||||||
|
|
||||||
|
|
||||||
protected static final String SYSTEM_AUTHORITY_PARAGRAPH = "\n\nAvailable for users with 'SYS_ADMIN' authority.";
|
protected static final String SYSTEM_AUTHORITY_PARAGRAPH = "\n\nAvailable for users with 'SYS_ADMIN' authority.";
|
||||||
protected static final String SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH = "\n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority.";
|
protected static final String SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH = "\n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority.";
|
||||||
@ -198,7 +200,6 @@ public abstract class BaseController {
|
|||||||
protected static final String ASSET_TEXT_SEARCH_DESCRIPTION = "The case insensitive 'startsWith' filter based on the asset name.";
|
protected static final String ASSET_TEXT_SEARCH_DESCRIPTION = "The case insensitive 'startsWith' filter based on the asset name.";
|
||||||
protected static final String DASHBOARD_TEXT_SEARCH_DESCRIPTION = "The case insensitive 'startsWith' filter based on the dashboard title.";
|
protected static final String DASHBOARD_TEXT_SEARCH_DESCRIPTION = "The case insensitive 'startsWith' filter based on the dashboard title.";
|
||||||
protected static final String WIDGET_BUNDLE_TEXT_SEARCH_DESCRIPTION = "The case insensitive 'startsWith' filter based on the widget bundle title.";
|
protected static final String WIDGET_BUNDLE_TEXT_SEARCH_DESCRIPTION = "The case insensitive 'startsWith' filter based on the widget bundle title.";
|
||||||
protected static final String WIDGET_TYPE_TEXT_SEARCH_DESCRIPTION = "The case insensitive 'startsWith' filter based on the widget type title.";
|
|
||||||
protected static final String RPC_TEXT_SEARCH_DESCRIPTION = "Not implemented. Leave empty.";
|
protected static final String RPC_TEXT_SEARCH_DESCRIPTION = "Not implemented. Leave empty.";
|
||||||
protected static final String DEVICE_TEXT_SEARCH_DESCRIPTION = "The case insensitive 'startsWith' filter based on the device name.";
|
protected static final String DEVICE_TEXT_SEARCH_DESCRIPTION = "The case insensitive 'startsWith' filter based on the device name.";
|
||||||
protected static final String USER_TEXT_SEARCH_DESCRIPTION = "The case insensitive 'startsWith' filter based on the user email.";
|
protected static final String USER_TEXT_SEARCH_DESCRIPTION = "The case insensitive 'startsWith' filter based on the user email.";
|
||||||
@ -227,7 +228,6 @@ public abstract class BaseController {
|
|||||||
protected static final String EDGE_SORT_PROPERTY_ALLOWABLE_VALUES = "createdTime, name, type, label, customerTitle";
|
protected static final String EDGE_SORT_PROPERTY_ALLOWABLE_VALUES = "createdTime, name, type, label, customerTitle";
|
||||||
protected static final String RULE_CHAIN_SORT_PROPERTY_ALLOWABLE_VALUES = "createdTime, name, root";
|
protected static final String RULE_CHAIN_SORT_PROPERTY_ALLOWABLE_VALUES = "createdTime, name, root";
|
||||||
protected static final String WIDGET_BUNDLE_SORT_PROPERTY_ALLOWABLE_VALUES = "createdTime, title, tenantId";
|
protected static final String WIDGET_BUNDLE_SORT_PROPERTY_ALLOWABLE_VALUES = "createdTime, title, tenantId";
|
||||||
protected static final String WIDGET_TYPE_SORT_PROPERTY_ALLOWABLE_VALUES = "createdTime, alias, bundleAlias, name";
|
|
||||||
protected static final String AUDIT_LOG_SORT_PROPERTY_ALLOWABLE_VALUES = "createdTime, entityType, entityName, userName, actionType, actionStatus";
|
protected static final String AUDIT_LOG_SORT_PROPERTY_ALLOWABLE_VALUES = "createdTime, entityType, entityName, userName, actionType, actionStatus";
|
||||||
protected static final String SORT_ORDER_DESCRIPTION = "Sort order. ASC (ASCENDING) or DESC (DESCENDING)";
|
protected static final String SORT_ORDER_DESCRIPTION = "Sort order. ASC (ASCENDING) or DESC (DESCENDING)";
|
||||||
protected static final String SORT_ORDER_ALLOWABLE_VALUES = "ASC, DESC";
|
protected static final String SORT_ORDER_ALLOWABLE_VALUES = "ASC, DESC";
|
||||||
|
|||||||
@ -15,6 +15,8 @@
|
|||||||
*/
|
*/
|
||||||
package org.thingsboard.server.controller;
|
package org.thingsboard.server.controller;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import io.swagger.annotations.ApiParam;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
@ -48,10 +50,20 @@ import java.util.List;
|
|||||||
@RequestMapping("/api")
|
@RequestMapping("/api")
|
||||||
public class WidgetTypeController extends BaseController {
|
public class WidgetTypeController extends BaseController {
|
||||||
|
|
||||||
|
private static final String WIDGET_TYPE_DESCRIPTION = "Widget Type represents the template for widget creation. Widget Type and Widget are similar to class and object in OOP theory.";
|
||||||
|
private static final String WIDGET_TYPE_DETAILS_DESCRIPTION = "Widget Type Details extend Widget Type and add image and description properties. " +
|
||||||
|
"Those properties are useful to edit the Widget Type but they are not required for Dashboard rendering. ";
|
||||||
|
private static final String WIDGET_TYPE_INFO_DESCRIPTION = "Widget Type Info is a lightweight object that represents Widget Type but does not contain the heavyweight widget descriptor JSON";
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation(value = "Get Widget Type Details (getWidgetTypeById)",
|
||||||
|
notes = "Get the Widget Type Details based on the provided Widget Type Id. " + WIDGET_TYPE_DETAILS_DESCRIPTION + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH)
|
||||||
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
||||||
@RequestMapping(value = "/widgetType/{widgetTypeId}", method = RequestMethod.GET)
|
@RequestMapping(value = "/widgetType/{widgetTypeId}", method = RequestMethod.GET)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public WidgetTypeDetails getWidgetTypeById(@PathVariable("widgetTypeId") String strWidgetTypeId) throws ThingsboardException {
|
public WidgetTypeDetails getWidgetTypeById(
|
||||||
|
@ApiParam(value = WIDGET_TYPE_ID_PARAM_DESCRIPTION, required = true)
|
||||||
|
@PathVariable("widgetTypeId") String strWidgetTypeId) throws ThingsboardException {
|
||||||
checkParameter("widgetTypeId", strWidgetTypeId);
|
checkParameter("widgetTypeId", strWidgetTypeId);
|
||||||
try {
|
try {
|
||||||
WidgetTypeId widgetTypeId = new WidgetTypeId(toUUID(strWidgetTypeId));
|
WidgetTypeId widgetTypeId = new WidgetTypeId(toUUID(strWidgetTypeId));
|
||||||
@ -61,10 +73,21 @@ public class WidgetTypeController extends BaseController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "Create Or Update Widget Type (saveWidgetType)",
|
||||||
|
notes = "Create or update the Widget Type. " + WIDGET_TYPE_DESCRIPTION + " " +
|
||||||
|
"When creating the Widget Type, platform generates Widget Type Id as [time-based UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address). " +
|
||||||
|
"The newly created Widget Type Id will be present in the response. " +
|
||||||
|
"Specify existing Widget Type id to update the Widget Type. " +
|
||||||
|
"Referencing non-existing Widget Type Id will cause 'Not Found' error." +
|
||||||
|
"\n\nWidget Type alias is unique in the scope of Widget Bundle. " +
|
||||||
|
"Special Tenant Id '13814000-1dd2-11b2-8080-808080808080' is automatically used if the create request is sent by user with 'SYS_ADMIN' authority."
|
||||||
|
+ SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH)
|
||||||
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
||||||
@RequestMapping(value = "/widgetType", method = RequestMethod.POST)
|
@RequestMapping(value = "/widgetType", method = RequestMethod.POST)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public WidgetTypeDetails saveWidgetType(@RequestBody WidgetTypeDetails widgetTypeDetails) throws ThingsboardException {
|
public WidgetTypeDetails saveWidgetType(
|
||||||
|
@ApiParam(value = "A JSON value representing the Widget Type Details.", required = true)
|
||||||
|
@RequestBody WidgetTypeDetails widgetTypeDetails) throws ThingsboardException {
|
||||||
try {
|
try {
|
||||||
if (Authority.SYS_ADMIN.equals(getCurrentUser().getAuthority())) {
|
if (Authority.SYS_ADMIN.equals(getCurrentUser().getAuthority())) {
|
||||||
widgetTypeDetails.setTenantId(TenantId.SYS_TENANT_ID);
|
widgetTypeDetails.setTenantId(TenantId.SYS_TENANT_ID);
|
||||||
@ -84,10 +107,14 @@ public class WidgetTypeController extends BaseController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "Delete widget type (deleteWidgetType)",
|
||||||
|
notes = "Deletes the Widget Type. Referencing non-existing Widget Type Id will cause an error." + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH)
|
||||||
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
||||||
@RequestMapping(value = "/widgetType/{widgetTypeId}", method = RequestMethod.DELETE)
|
@RequestMapping(value = "/widgetType/{widgetTypeId}", method = RequestMethod.DELETE)
|
||||||
@ResponseStatus(value = HttpStatus.OK)
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
public void deleteWidgetType(@PathVariable("widgetTypeId") String strWidgetTypeId) throws ThingsboardException {
|
public void deleteWidgetType(
|
||||||
|
@ApiParam(value = WIDGET_TYPE_ID_PARAM_DESCRIPTION, required = true)
|
||||||
|
@PathVariable("widgetTypeId") String strWidgetTypeId) throws ThingsboardException {
|
||||||
checkParameter("widgetTypeId", strWidgetTypeId);
|
checkParameter("widgetTypeId", strWidgetTypeId);
|
||||||
try {
|
try {
|
||||||
WidgetTypeId widgetTypeId = new WidgetTypeId(toUUID(strWidgetTypeId));
|
WidgetTypeId widgetTypeId = new WidgetTypeId(toUUID(strWidgetTypeId));
|
||||||
@ -101,11 +128,15 @@ public class WidgetTypeController extends BaseController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "Get all Widget types for specified Bundle (getBundleWidgetTypes)",
|
||||||
|
notes = "Returns an array of Widget Type objects that belong to specified Widget Bundle." + WIDGET_TYPE_DESCRIPTION + " " + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH)
|
||||||
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
||||||
@RequestMapping(value = "/widgetTypes", params = {"isSystem", "bundleAlias"}, method = RequestMethod.GET)
|
@RequestMapping(value = "/widgetTypes", params = {"isSystem", "bundleAlias"}, method = RequestMethod.GET)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public List<WidgetType> getBundleWidgetTypes(
|
public List<WidgetType> getBundleWidgetTypes(
|
||||||
|
@ApiParam(value = "System or Tenant", required = true)
|
||||||
@RequestParam boolean isSystem,
|
@RequestParam boolean isSystem,
|
||||||
|
@ApiParam(value = "Widget Bundle alias", required = true)
|
||||||
@RequestParam String bundleAlias) throws ThingsboardException {
|
@RequestParam String bundleAlias) throws ThingsboardException {
|
||||||
try {
|
try {
|
||||||
TenantId tenantId;
|
TenantId tenantId;
|
||||||
@ -120,11 +151,15 @@ public class WidgetTypeController extends BaseController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "Get all Widget types details for specified Bundle (getBundleWidgetTypes)",
|
||||||
|
notes = "Returns an array of Widget Type Details objects that belong to specified Widget Bundle." + WIDGET_TYPE_DETAILS_DESCRIPTION + " " + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH)
|
||||||
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
||||||
@RequestMapping(value = "/widgetTypesDetails", params = {"isSystem", "bundleAlias"}, method = RequestMethod.GET)
|
@RequestMapping(value = "/widgetTypesDetails", params = {"isSystem", "bundleAlias"}, method = RequestMethod.GET)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public List<WidgetTypeDetails> getBundleWidgetTypesDetails(
|
public List<WidgetTypeDetails> getBundleWidgetTypesDetails(
|
||||||
|
@ApiParam(value = "System or Tenant", required = true)
|
||||||
@RequestParam boolean isSystem,
|
@RequestParam boolean isSystem,
|
||||||
|
@ApiParam(value = "Widget Bundle alias", required = true)
|
||||||
@RequestParam String bundleAlias) throws ThingsboardException {
|
@RequestParam String bundleAlias) throws ThingsboardException {
|
||||||
try {
|
try {
|
||||||
TenantId tenantId;
|
TenantId tenantId;
|
||||||
@ -139,11 +174,15 @@ public class WidgetTypeController extends BaseController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "Get Widget Type Info objects (getBundleWidgetTypesInfos)",
|
||||||
|
notes = "Get the Widget Type Info objects based on the provided parameters. " + WIDGET_TYPE_INFO_DESCRIPTION + AVAILABLE_FOR_ANY_AUTHORIZED_USER)
|
||||||
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
||||||
@RequestMapping(value = "/widgetTypesInfos", params = {"isSystem", "bundleAlias"}, method = RequestMethod.GET)
|
@RequestMapping(value = "/widgetTypesInfos", params = {"isSystem", "bundleAlias"}, method = RequestMethod.GET)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public List<WidgetTypeInfo> getBundleWidgetTypesInfos(
|
public List<WidgetTypeInfo> getBundleWidgetTypesInfos(
|
||||||
|
@ApiParam(value = "System or Tenant", required = true)
|
||||||
@RequestParam boolean isSystem,
|
@RequestParam boolean isSystem,
|
||||||
|
@ApiParam(value = "Widget Bundle alias", required = true)
|
||||||
@RequestParam String bundleAlias) throws ThingsboardException {
|
@RequestParam String bundleAlias) throws ThingsboardException {
|
||||||
try {
|
try {
|
||||||
TenantId tenantId;
|
TenantId tenantId;
|
||||||
@ -158,12 +197,17 @@ public class WidgetTypeController extends BaseController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "Get Widget Type (getWidgetType)",
|
||||||
|
notes = "Get the Widget Type based on the provided parameters. " + WIDGET_TYPE_DESCRIPTION + AVAILABLE_FOR_ANY_AUTHORIZED_USER)
|
||||||
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')")
|
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')")
|
||||||
@RequestMapping(value = "/widgetType", params = {"isSystem", "bundleAlias", "alias"}, method = RequestMethod.GET)
|
@RequestMapping(value = "/widgetType", params = {"isSystem", "bundleAlias", "alias"}, method = RequestMethod.GET)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public WidgetType getWidgetType(
|
public WidgetType getWidgetType(
|
||||||
|
@ApiParam(value = "System or Tenant", required = true)
|
||||||
@RequestParam boolean isSystem,
|
@RequestParam boolean isSystem,
|
||||||
|
@ApiParam(value = "Widget Bundle alias", required = true)
|
||||||
@RequestParam String bundleAlias,
|
@RequestParam String bundleAlias,
|
||||||
|
@ApiParam(value = "Widget Type alias", required = true)
|
||||||
@RequestParam String alias) throws ThingsboardException {
|
@RequestParam String alias) throws ThingsboardException {
|
||||||
try {
|
try {
|
||||||
TenantId tenantId;
|
TenantId tenantId;
|
||||||
|
|||||||
@ -54,7 +54,7 @@ public class WidgetsBundleController extends BaseController {
|
|||||||
@RequestMapping(value = "/widgetsBundle/{widgetsBundleId}", method = RequestMethod.GET)
|
@RequestMapping(value = "/widgetsBundle/{widgetsBundleId}", method = RequestMethod.GET)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public WidgetsBundle getWidgetsBundleById(
|
public WidgetsBundle getWidgetsBundleById(
|
||||||
@ApiParam(value = WIDGET_BUNDLE_ID_PARAM_DESCRIPTION)
|
@ApiParam(value = WIDGET_BUNDLE_ID_PARAM_DESCRIPTION, required = true)
|
||||||
@PathVariable("widgetsBundleId") String strWidgetsBundleId) throws ThingsboardException {
|
@PathVariable("widgetsBundleId") String strWidgetsBundleId) throws ThingsboardException {
|
||||||
checkParameter("widgetsBundleId", strWidgetsBundleId);
|
checkParameter("widgetsBundleId", strWidgetsBundleId);
|
||||||
try {
|
try {
|
||||||
@ -78,7 +78,7 @@ public class WidgetsBundleController extends BaseController {
|
|||||||
@RequestMapping(value = "/widgetsBundle", method = RequestMethod.POST)
|
@RequestMapping(value = "/widgetsBundle", method = RequestMethod.POST)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public WidgetsBundle saveWidgetsBundle(
|
public WidgetsBundle saveWidgetsBundle(
|
||||||
@ApiParam(value = "A JSON value representing the Widget Bundle.")
|
@ApiParam(value = "A JSON value representing the Widget Bundle.", required = true)
|
||||||
@RequestBody WidgetsBundle widgetsBundle) throws ThingsboardException {
|
@RequestBody WidgetsBundle widgetsBundle) throws ThingsboardException {
|
||||||
try {
|
try {
|
||||||
if (Authority.SYS_ADMIN.equals(getCurrentUser().getAuthority())) {
|
if (Authority.SYS_ADMIN.equals(getCurrentUser().getAuthority())) {
|
||||||
@ -104,7 +104,9 @@ public class WidgetsBundleController extends BaseController {
|
|||||||
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
||||||
@RequestMapping(value = "/widgetsBundle/{widgetsBundleId}", method = RequestMethod.DELETE)
|
@RequestMapping(value = "/widgetsBundle/{widgetsBundleId}", method = RequestMethod.DELETE)
|
||||||
@ResponseStatus(value = HttpStatus.OK)
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
public void deleteWidgetsBundle(@PathVariable("widgetsBundleId") String strWidgetsBundleId) throws ThingsboardException {
|
public void deleteWidgetsBundle(
|
||||||
|
@ApiParam(value = WIDGET_BUNDLE_ID_PARAM_DESCRIPTION, required = true)
|
||||||
|
@PathVariable("widgetsBundleId") String strWidgetsBundleId) throws ThingsboardException {
|
||||||
checkParameter("widgetsBundleId", strWidgetsBundleId);
|
checkParameter("widgetsBundleId", strWidgetsBundleId);
|
||||||
try {
|
try {
|
||||||
WidgetsBundleId widgetsBundleId = new WidgetsBundleId(toUUID(strWidgetsBundleId));
|
WidgetsBundleId widgetsBundleId = new WidgetsBundleId(toUUID(strWidgetsBundleId));
|
||||||
|
|||||||
@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.thingsboard.server.common.data.widget;
|
package org.thingsboard.server.common.data.widget;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.thingsboard.server.common.data.BaseData;
|
import org.thingsboard.server.common.data.BaseData;
|
||||||
import org.thingsboard.server.common.data.HasTenantId;
|
import org.thingsboard.server.common.data.HasTenantId;
|
||||||
@ -27,12 +28,16 @@ public class BaseWidgetType extends BaseData<WidgetTypeId> implements HasTenantI
|
|||||||
|
|
||||||
private static final long serialVersionUID = 8388684344603660756L;
|
private static final long serialVersionUID = 8388684344603660756L;
|
||||||
|
|
||||||
|
@ApiModelProperty(position = 3, value = "JSON object with Tenant Id.", readOnly = true)
|
||||||
private TenantId tenantId;
|
private TenantId tenantId;
|
||||||
@NoXss
|
@NoXss
|
||||||
|
@ApiModelProperty(position = 4, value = "Reference to widget bundle", readOnly = true)
|
||||||
private String bundleAlias;
|
private String bundleAlias;
|
||||||
@NoXss
|
@NoXss
|
||||||
|
@ApiModelProperty(position = 5, value = "Unique alias that is used in dashboards as a reference widget type", readOnly = true)
|
||||||
private String alias;
|
private String alias;
|
||||||
@NoXss
|
@NoXss
|
||||||
|
@ApiModelProperty(position = 6, value = "Widget name used in search and UI", readOnly = true)
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
public BaseWidgetType() {
|
public BaseWidgetType() {
|
||||||
@ -50,4 +55,19 @@ public class BaseWidgetType extends BaseData<WidgetTypeId> implements HasTenantI
|
|||||||
this.alias = widgetType.getAlias();
|
this.alias = widgetType.getAlias();
|
||||||
this.name = widgetType.getName();
|
this.name = widgetType.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiModelProperty(position = 1, value = "JSON object with the Widget Type Id. " +
|
||||||
|
"Specify this field to update the Widget Type. " +
|
||||||
|
"Referencing non-existing Widget Type Id will cause error. " +
|
||||||
|
"Omit this field to create new Widget Type." )
|
||||||
|
@Override
|
||||||
|
public WidgetTypeId getId() {
|
||||||
|
return super.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiModelProperty(position = 2, value = "Timestamp of the Widget Type creation, in milliseconds", example = "1609459200000", readOnly = true)
|
||||||
|
@Override
|
||||||
|
public long getCreatedTime() {
|
||||||
|
return super.getCreatedTime();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,12 +16,14 @@
|
|||||||
package org.thingsboard.server.common.data.widget;
|
package org.thingsboard.server.common.data.widget;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.thingsboard.server.common.data.id.WidgetTypeId;
|
import org.thingsboard.server.common.data.id.WidgetTypeId;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class WidgetType extends BaseWidgetType {
|
public class WidgetType extends BaseWidgetType {
|
||||||
|
|
||||||
|
@ApiModelProperty(position = 7, value = "Complex JSON object that describes the widget type", readOnly = true)
|
||||||
private transient JsonNode descriptor;
|
private transient JsonNode descriptor;
|
||||||
|
|
||||||
public WidgetType() {
|
public WidgetType() {
|
||||||
|
|||||||
@ -16,6 +16,7 @@
|
|||||||
package org.thingsboard.server.common.data.widget;
|
package org.thingsboard.server.common.data.widget;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
|
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.thingsboard.server.common.data.id.WidgetTypeId;
|
import org.thingsboard.server.common.data.id.WidgetTypeId;
|
||||||
import org.thingsboard.server.common.data.validation.NoXss;
|
import org.thingsboard.server.common.data.validation.NoXss;
|
||||||
@ -24,8 +25,10 @@ import org.thingsboard.server.common.data.validation.NoXss;
|
|||||||
@JsonPropertyOrder({ "alias", "name", "image", "description", "descriptor" })
|
@JsonPropertyOrder({ "alias", "name", "image", "description", "descriptor" })
|
||||||
public class WidgetTypeDetails extends WidgetType {
|
public class WidgetTypeDetails extends WidgetType {
|
||||||
|
|
||||||
|
@ApiModelProperty(position = 8, value = "Base64 encoded thumbnail", readOnly = true)
|
||||||
private String image;
|
private String image;
|
||||||
@NoXss
|
@NoXss
|
||||||
|
@ApiModelProperty(position = 9, value = "Description of the widget", readOnly = true)
|
||||||
private String description;
|
private String description;
|
||||||
|
|
||||||
public WidgetTypeDetails() {
|
public WidgetTypeDetails() {
|
||||||
|
|||||||
@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.thingsboard.server.common.data.widget;
|
package org.thingsboard.server.common.data.widget;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.thingsboard.server.common.data.id.WidgetTypeId;
|
import org.thingsboard.server.common.data.id.WidgetTypeId;
|
||||||
import org.thingsboard.server.common.data.validation.NoXss;
|
import org.thingsboard.server.common.data.validation.NoXss;
|
||||||
@ -22,10 +23,13 @@ import org.thingsboard.server.common.data.validation.NoXss;
|
|||||||
@Data
|
@Data
|
||||||
public class WidgetTypeInfo extends BaseWidgetType {
|
public class WidgetTypeInfo extends BaseWidgetType {
|
||||||
|
|
||||||
|
@ApiModelProperty(position = 7, value = "Base64 encoded widget thumbnail", readOnly = true)
|
||||||
private String image;
|
private String image;
|
||||||
@NoXss
|
@NoXss
|
||||||
|
@ApiModelProperty(position = 7, value = "Description of the widget type", readOnly = true)
|
||||||
private String description;
|
private String description;
|
||||||
@NoXss
|
@NoXss
|
||||||
|
@ApiModelProperty(position = 8, value = "Type of the widget (timeseries, latest, control, alarm or static)", readOnly = true)
|
||||||
private String widgetType;
|
private String widgetType;
|
||||||
|
|
||||||
public WidgetTypeInfo() {
|
public WidgetTypeInfo() {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user