-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfd-generic-list.html
111 lines (99 loc) · 3.01 KB
/
fd-generic-list.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<link rel="import" href="../polymer/polymer.html">
<link rel="import" href="../fd-polymer-rest-service/fd-polymer-rest-service.html">
<link rel="import" href="../fd-polymer-ws-service/fd-polymer-ws-service.html">
<link rel="import" href="../fd-polymer-api-settings/fd-polymer-api-settings.html">
<link rel="import" href="../fd-polymer-i18next-translate/fd-polymer-i18next-translate.html">
<!--
Element providing proof of concept of a Thing card, with all needed features
##### Example
<fd-thing address="fritz.bestmazzo.it" port="9111" apiVersion="v3"
thingUuid="76fd619c-617b-4fb7-9870-8f08164c4926" guest></fd-thing>
@element fd-thing
@blurb Element providing proof of concept of a Thing card, with all needed features
@status beta
@homepage http://bestmazzo.github.io/fd-polymer-thing
-->
<polymer-element name="fd-generic-list" attributes="ssl address port apiVersion guest mode type wsType items">
<template>
<style>
:host {
display: block;
position: relative;
font-size: 1.2rem;
font-weight: 300;
font-family: RobotoDraft, 'Helvetica Neue', Helvetica, Arial;
}
</style>
<fd-api-settings
ssl="{{ssl}}" address="{{address}}"
port="{{port}}" apiVersion="{{apiVersion}}"
apiUrl="{{apiUrl}}">
</fd-api-settings>
<div layout horizontal wrap>
<fd-rest-service
id="itemList"
fdtype="{{type}}"
fditems="{{items}}"
on-rest-response="{{ startWS }}"
guest="{{guest}}">
</fd-rest-service>
<content></content>
<fd-ws-service
id="wss"
wstype="{{wsType}}"
on-message="{{ updateItem }}"
auto="false">
</fd-ws-service>
</div>
</template>
<script>
Polymer("fd-generic-list", {
/**
* The 'guest' attribute tells whether the API call should be made as a guest user
*
* @attribute guest
* @type boolean
*/
/**
* The 'address' attribute specifies the hostname or ip address of API service
*
* @attribute address
* @type string
*/
/**
* The 'apiVersion' attribute specifies the API version to use
*
* @attribute apiVersion
* @type string
*/
/**
* The 'port' attribute specifies the tcp port of API service.
* Default value 0 mean the port number is choosen from the SSL attribute,
* so port will be 9111 if no SSL, and 9113 is SSL
* @attribute port
* @type int
*/
/**
* The 'ssl' attribute tells whether the API call requires a encrypted connection
*
* @attribute ssl
* @type boolean
*/
mode: 'matCard',
guest: undefined,
updateItem: function(event){
var data = JSON.parse(event.detail);
for (item in this.items){
if(data.uuid === this.items[item].uuid){
this.items[item] = data;
}
}
},
startWS: function(){
if (!!this.wsType){
this.$.wss.go();
}
}
});
</script>
</polymer-element>