forked from ossforumjp-app-IoT/rubyiot_server
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmypage.haml
More file actions
160 lines (160 loc) · 6.64 KB
/
Copy pathmypage.haml
File metadata and controls
160 lines (160 loc) · 6.64 KB
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
!!!
%haml{:lang => "ja"}
%head
%meta{:content => "width=device-width, initial-scale=1.0", :name => "viewport"}
%script{:type => "text/javascript", :src => "/js/jquery-1.11.1.min.js"}
:css
#sensorlist table {border: solid 1px #999999; border-collapse: collapse;}
#sensorlist th {border: solid 1px #999999; padding: 5px;}
#sensorlist td {border: solid 1px #999999; padding: 5px;}
:javascript
function addGateway(){
if( $("#gatewayform [name=hardwareuid]").val() == "" ){
alert("ハードウェアIDを入力してください");
}else if( $("#gatewayform [name=gatewayname]").val() == "" ){
alert("ゲートウェイの名前を入力してください");
}else{
var postdata = {
hardware_uid: $("#gatewayform [name=hardwareuid]").val(),
name: $("#gatewayform [name=gatewayname]").val()
};
$.post(
"/api/gateway_add",
JSON.stringify(postdata),
function(){
alert("ゲートウェイを登録しました");
$.getJSON(
"/api/gateway",
function(getdata, status){
var list = $("#gatewayform [name=gatewaylist]");
list.empty();
list.append('<option value="0">ゲートウェイ一覧</option>');
for(var k in getdata){
list.append('<option value="' + k + '">' + getdata[k].name + '</option>');
}
}
);
}
);
}
}
function delGateway(){
var gid = $("#gatewayform [name=gatewaylist]").val();
if(gid > 0){
data = { gateway_id: gid };
$.post(
"/api/gateway_del",
JSON.stringify(data),
function(){
alert("ゲートウェイの登録を解除しました");
$("#gatewayform [name=gatewaylist] option[value=" + gid + "]").remove();
}
);
}
}
function selectGateway(){
var gatewayId = $("#gatewayform [name=gatewaylist]").val();
if(gatewayId == 0){
$("#sensorlist").text("ゲートウェイを選択すると表示されます。");
}else{
$.getJSON(
"/api/sensor?gateway_id=" + gatewayId,
function(data, status){
$("#sensorlist").text("");
$("#sensorlist").empty();
if(Object.keys(data).length == 0){
$("#sensorlist").text("選択したゲートウェイにはセンサーが接続されていません。");
}else{
var tabletag = '<table>';
tabletag += '<tr><th>ID</th><th>Name</th><th>Value</th><th> </th></tr>';
for(var k in data){
tabletag += '<tr><td>' + k + '</td>';
tabletag += '<td><input type="text" id="sn' + k + '" name="sensorname' + k + '" size="20" maxlength="20"></td>';
tabletag += '<td>' + data[k].value + data[k].unit + '</td>';
tabletag += '<td><input type="button" value="更新" onclick="updateSensorName(' + k + ')"></td></tr>';
}
tabletag += "</table>";
$("#sensorlist").append(tabletag);
for(var k2 in data){
$("#sn" + k2).val(data[k2].name);
}
}
}
);
}
}
function updateUser(){
var data = {
nickname: $("#userform [name=nickname]").val(),
email: $("#userform [name=email]").val()
};
$.post("/api/user", JSON.stringify(data));
alert("ユーザー情報を更新しました。");
location.reload();
}
function changePassword(){
if( $("#passwordform [name=password]").val() == "" ){
alert("パスワードを入力してください");
}else if( $("#passwordform [name=password]").val() != $("#passwordform [name=confirm_password]").val() ){
alert("パスワードと確認が違っています");
}else{
var data = { password: $("#passwordform [name=password]").val() };
$.post("/api/password", JSON.stringify(data));
alert("パスワードを変更しました。");
}
}
function updateSensorName(id){
var data = {};
data[id] = {"name": $("#sn" + id).val()};
$.post("/api/sensor", JSON.stringify(data));
alert("センサー名を更新しました。");
}
%body
%h1 My Page
%div
%span こんにちは、#{@nickname}さん
%a{:href => "/logout"} [ログアウト]
%h2 Gateway
%form{:id => "gatewayform"}
%fieldset
%h3 ゲートウェイ追加:
%p
%label{:for => "hardwareuid"} ハードウェアID:
%input{:name => "hardwareuid", :type => "text", :value => ""}
%p
%label{:for => "gatewayname"} ゲートウェイの名前:
%input{:name => "gatewayname", :type => "text", :value => ""}
%input{:type => "button", :value => "Add", :onclick => "return addGateway()"}
%h3 登録済ゲートウェイ:
%p
%select{:name => "gatewaylist", :size => 4, :onclick => "return selectGateway()"}
%option{:value => "0"} ゲートウェイ一覧
- if @gateways
- @gateways.each do |g|
%option{:value => "#{g.id}"} #{g.name}
%input{:type => "button", :value => "Del", :onclick => "return delGateway()"}
%h2 Sensor Data
%div{:id => "sensorlist"} ゲートウェイを選択すると表示されます。
%h2 User info
%form{:id => "userform"}
%fieldset
%p ユーザー名: #{@user.login_name}
%p
%label{:for => "nickname"} ニックネーム:
%input{:name => "nickname", :type => "text", :value => "#{@user.nickname}"}
%p
%label{:for => "email"} メールアドレス:
%input{:name => "email", :type => "text", :value => "#{@user.email}"}
%p
%input{:type => "button", :value => "Update", :onclick => "return updateUser()"}
%h2 Password
%form{:id => "passwordform"}
%fieldset
%p
%label{:for => "password"} パスワード:
%input{:name => "password", :type => "password", :value => ""}
%p
%label{:for => "confirm_password"} パスワード(確認):
%input{:name => "confirm_password", :type => "password", :value => ""}
%p
%input{:type => "button", :value => "ChangePassword", :onclick => "return changePassword()"}