-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfd-polymer-plugin.html
130 lines (118 loc) · 4.14 KB
/
fd-polymer-plugin.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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<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-api-settings/fd-polymer-api-settings.html">
<link rel="import" href="../fd-polymer-i18next-translate/fd-polymer-i18next-translate.html">
<link rel="import" href="../paper-shadow/paper-shadow.html">
<link rel="import" href="../paper-slider/paper-slider.html">
<link rel="import" href="../paper-toggle-button/paper-toggle-button.html">
<link rel="import" href="../paper-icon-button/paper-icon-button.html">
<link rel="import" href="fd-generic-item.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-plugin" attributes="ssl address port apiVersion plugin uuid guest mode">
<template>
<style>
:host {
display: block;
position: relative;
font-size: 1.2rem;
font-weight: 300;
font-family: RobotoDraft, 'Helvetica Neue', Helvetica, Arial;
}
paper-icon-button /deep/ core-icon[role=img] {
width: 85px;
height: 85px;
}
</style>
<fd-api-settings
ssl="{{ssl}}" address="{{address}}"
port="{{port}}" apiVersion="{{apiVersion}}"
apiUrl="{{apiUrl}}">
</fd-api-settings>
<fd-rest-service
id="pluginClick"
fdtype="plugins/{{plugin.uuid}}/{{action}}"
auto="false" method="POST"
guest="{{guest}}">
</fd-rest-service>
<fd-generic-item on-icon-tap="{{tapPlugin}}" mode="{{mode}}" type="plugins" item="{{plugin}}" guest="{{guest}}" uuid="{{uuid}}" wsType="pluginchange" >
<icon>
<paper-icon-button src="{{ plugin.uuid + '-' + plugin.currentPluginStatus + '.png' | asFreedomoticResource(apiUrl, 'plugin-' + plugin.currentPluginStatus + '.png') }}" >
</paper-icon-button>
</icon>
<name>{{plugin.pluginName}}</name>
<description>{{plugin.description}}</description>
<extra>
</extra>
<modify>
<div layout vertical>
<h3>{{plugin.pluginName}}</h3>
<paper-input label="{{'name' | translate }}" value="{{plugin.pluginName}}" floatingLabel></paper-input>
<paper-input label="{{'description' | translate }}" value="{{plugin.description}}" floatingLabel></paper-input>
<paper-input label="{{'category' | translate }}" value="{{plugin.category}}"floatingLabel></paper-input>
<paper-input label="{{'address' | translate }}" value="{{plugin.phisicalAddress}}" floatingLabel></paper-input>
</div>
</modify>
</fd-generic-item>
</template>
<script>
Polymer("fd-plugin", {
/**
* The 'guest' attribute tells whether the API call should be made as a guest user
*
* @attribute guest
* @type boolean
*/
/**
* The 'thingUuid' attribute specifies the uuid of Thing to show
*
* @attribute thingUuid
* @type string
*/
/**
* 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,
plugin: undefined,
tapPlugin: function(){
if (this.plugin.currentpluginstatus != "RUNNING"){
this.action = "start";
} else {
this.action = "stop";
}
this.$.pluginClick.go();
}
});
</script>
</polymer-element>