Przeglądaj źródła

Allow classification of windows

Closes #32
tags/SensorLogger/0.2.0
Chris Smith 14 lat temu
rodzic
commit
9b67804866
1 zmienionych plików z 71 dodań i 12 usunięć
  1. 71
    12
      website/admin.php

+ 71
- 12
website/admin.php Wyświetl plik

@@ -44,6 +44,30 @@
44 44
   mysql_query($sql);
45 45
  }
46 46
 
47
+ function process_sample_edit($args) {
48
+  $sql = 'SELECT wc_id, activity_id, log_id, wc_offset FROM windowclassifications';
49
+  $res = mysql_query($sql);
50
+  $acs = getActivityArray();
51
+
52
+  while ($row = mysql_fetch_assoc($res)) {
53
+   $name = 'value_' . $row['log_id'] . '_' . $row['wc_offset'];
54
+   if (isset($args[$name])) {
55
+    if ((int) $args[$name] == (int) $row['activity_id']) {
56
+     unset($args[$name]);
57
+    } else {
58
+     mysql_query('UPDATE windowclassifications SET activity_id = ' . ((int) $args[$name]) . ' WHERE wc_id = ' . $row['wc_id']);
59
+    }
60
+   }
61
+  }
62
+
63
+  foreach ($args as $name => $val) {
64
+   if ($acs[$val] == 'UNCLASSIFIED/PENDING') { continue; }
65
+
66
+   list($value, $log, $offset) = explode('_', $name);
67
+   mysql_query('INSERT INTO windowclassifications (activity_id, log_id, wc_offset) VALUES ('. ((int) $val) . ', ' . ((int) $log) . ', ' . ((int) $offset) . ')');
68
+  }
69
+ }
70
+
47 71
  if (isset($_POST['action'])) {
48 72
   $args = array();
49 73
   $action = str_replace('.', '_', $_POST['action']) . '_';
@@ -95,6 +119,7 @@
95 119
   .windowboxes { margin: 0px; padding: 0px; border-right: 1px solid black; display: inline-block; }
96 120
   .windowboxes li { display: inline-block; width: 255px; text-align: center; border: 1px solid black; margin: 0px; padding: 0px; border-right: 0; }
97 121
   .windowboxes.odd { padding-left: 128px; }
122
+  .windowboxes li select { width: 253px; }
98 123
 </style>
99 124
 <script type="text/javascript">
100 125
   function showWindow(id, offset) {
@@ -104,31 +129,57 @@
104 129
   function hideWindow(id) {
105 130
    showWindow(id, -128);
106 131
   }
107
-</script>
108 132
 
133
+  function classifyAll(select) {
134
+   var tr = select.parentNode.parentNode;
135
+   var selects = tr.getElementsByTagName('select');
136
+
137
+   for (var i = 0; i < selects.length; i++) {
138
+    selects[i].value = select.value;
139
+   }
140
+  }
141
+</script>
142
+<form action="admin.php" method="post">
143
+ <input type="hidden" name="action" value="sample.edit">
109 144
 <?PHP
110 145
 
111 146
  echo '<table border="1">';
112
- $first = true;
113 147
 
114 148
  while ($row = mysql_fetch_assoc($res)) {
115
-  if ($first) {
116
-   echo '<tr>';
117
-   foreach ($row as $k => $v) { echo '<th>', $k, '</th>'; }
118
-   echo '</tr>';
119
-   $first = false;
149
+
150
+  $sql2 = 'SELECT wc_offset, activity_id FROM windowclassifications WHERE log_id = ' . $row['log_id'];
151
+  $res2 = mysql_query($sql2);
152
+  $wcs = array();
153
+  
154
+  while ($row2 = mysql_fetch_assoc($res2)) {
155
+   $wcs[(int) $row2['wc_offset']] = (int) $row2['activity_id'];
120 156
   }
121 157
 
122 158
   $points = 0;
123 159
 
124
-  echo '<tr>';
125
-  foreach ($row as $k => $v) { echo '<td>', $k == 'log_data' ? ($points = count(explode("\n", $v))) . ' line(s)' : nl2br(htmlentities($v)), '</td>'; }
160
+  echo '<tr><td><table>';
161
+  foreach ($row as $k => $v) { echo '<tr><th>', $k, '</th><td>', $k == 'log_data' ? ($points = count(explode("\n", $v))) . ' line(s)' : nl2br(htmlentities($v)), '</td></tr>'; }
162
+
163
+  echo '</table>';
126 164
 
127
-  echo '<td>';
165
+  echo '<select onChange="classifyAll(this)">';
166
+  echo ' <option value="">Classify all as...</option>';
167
+   foreach ($acs as $id => $name) {
168
+    echo '<option value="', $id, '">', htmlentities($name), '</option>';
169
+   }
170
+  echo '</select>';
171
+
172
+  echo '</td><td>';
128 173
 
129 174
   echo '<ol class="windowboxes even">';
130 175
   for ($i = 0; $i + 128 < $points; $i += 128) {
131
-   echo '<li onMouseOver="showWindow(', $row['log_id'], ', ', $i, ')" onMouseOut="hideWindow(', $row['log_id'], ')">Window</li>';
176
+   echo '<li onMouseOver="showWindow(', $row['log_id'], ', ', $i, ')" onMouseOut="hideWindow(', $row['log_id'], ')">';
177
+   echo '<select name="sample.edit.value_', $row['log_id'], '_', $i, '">';
178
+   foreach ($acs as $id => $name) {
179
+    echo '<option value="', $id, '"', (isset($wcs[$i]) && $wcs[$i] == $id) || (!isset($wcs[$i]) && $name == 'UNCLASSIFIED/PENDING') ? ' selected="selected"' : '','>', htmlentities($name), '</option>';
180
+   }
181
+   echo '</select>';
182
+   echo '</li>';
132 183
   }
133 184
   echo '</ol>';
134 185
 
@@ -139,7 +190,13 @@
139 190
 
140 191
   echo '<ol class="windowboxes odd">';
141 192
   for ($i = 64; $i + 128 < $points; $i += 128) {
142
-   echo '<li onMouseOver="showWindow(', $row['log_id'], ', ', $i, ')" onMouseOut="hideWindow(', $row['log_id'], ')">Window</li>';
193
+   echo '<li onMouseOver="showWindow(', $row['log_id'], ', ', $i, ')" onMouseOut="hideWindow(', $row['log_id'], ')">';
194
+   echo '<select name="sample.edit.value_', $row['log_id'], '_', $i, '">';
195
+   foreach ($acs as $id => $name) {
196
+    echo '<option value="', $id, '"', (isset($wcs[$i]) && $wcs[$i] == $id) || (!isset($wcs[$i]) && $name == 'UNCLASSIFIED/PENDING') ? ' selected="selected"' : '','>', htmlentities($name), '</option>';
197
+   }
198
+   echo '</select>';
199
+   echo '</li>';
143 200
   }
144 201
   echo '</ol>';
145 202
 
@@ -150,3 +207,5 @@
150 207
  echo '</table>';
151 208
 
152 209
 ?>
210
+ <input type="submit" value="SUBMIT ALL MODIFICATIONS">
211
+</form>

Ładowanie…
Anuluj
Zapisz