Toggle checkbox after click on row
authorJoey Schulze <joey@infodrom.org>
Mon, 10 Mar 2014 18:17:32 +0000 (18:17 +0000)
committerJoey Schulze <joey@infodrom.org>
Mon, 10 Mar 2014 18:17:32 +0000 (18:17 +0000)
src/InfoCon/stempel/status.wml

index 2141735..8398dc2 100644 (file)
@@ -53,7 +53,8 @@
                  '<input type="hidden" name="fields" value="%d">'.
                  '</form>';
 
-    $table_row = '<tr class="t%d"><td>%s</td><td align="center">%s</td><td align="center">%s</td><td onclick="edit_task(this)">%s</td></tr>';
+    $table_row = '<tr class="t%d"><td>%s</td><td align="center" onclick="toggle_checkbox(%d,this)">%s</td>' .
+      '<td align="center" onclick="toggle_checkbox(%d,this)">%s</td><td onclick="edit_task(this)">%s</td></tr>';
     $table_sum = '<tr class="t%d"><td>&nbsp;</td><td align="center">%s</td><td>&nbsp;</td><td>Summe</td></tr>';
 
     $query = "SELECT stempel.oid,start,customer,time,task,kurz FROM stempel JOIN stempel_status ON (stempel.status = stempel_status.id) WHERE time IS NOT NULL ";
@@ -97,7 +98,8 @@
                       $fieldnr++,
                       $row['oid'],
                       $form);
-      printf($table_row, $color, $check.$d[0], min2hour($row['time']), $row['kurz'], htmlspecialchars($row['task']));
+      $date = sprintf('<span onclick="toggle_checkbox(%d,this)">%s</span>', $form, $d[0]);
+      printf($table_row, $color, $check.$date, $form, min2hour($row['time']), $form, $row['kurz'], htmlspecialchars($row['task']));
       $color = !$color;
     }
     if (pg_num_rows($sth) > 0) {
@@ -278,6 +280,19 @@ function edit_task_finish(obj)
        edit_task_save();
 }
 
+function toggle_checkbox(form, obj)
+{
+  edit_task_finish(obj);
+
+  var row = obj;
+  while (row.tagName.toLowerCase() != 'tr')
+    row = row.parentNode;
+
+  var checkbox = row.children[0].children[0];
+
+  checkbox.checked = !checkbox.checked;
+  add_sum(form, checkbox);
+}
 </script>
 
 <style type="text/css">