|
@@ -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>
|