Improvements
[infodrom.org/service.infodrom.org] / src / InfoCon / account / list.wml
index 405f7a2..c17a294 100644 (file)
@@ -2,19 +2,11 @@
 #include <phptools.inc>
 #include "account.inc"
 
-<page func=InfoCon title="Kontoführung">
-
-<account_heading>
-<form_to_yyyymmdd>
-
-<table class="border smallfont" width=100% border=0 cellpadding=0 cellspacing=1>
-<tr class=head>
-  <th width=10%>Datum</th>
-  <th width=10%>Kategorie</th>
-  <th width=70%>Verwendungszweck</th>
-  <th width=10%>Betrag</th>
-</tr>
-<?
+<?php
+function filter_account()
+{
+  global $db;
+  $out = '';
   $table = "account";
   $value = "value_eur";
   $add = '';
     $date = explode ("-", $date[0]);
     $date = sprintf ("%d.%d.%d", $date[2], $date[1], $date[0]);
 
-    printf ("<tr class=\"t%d\">", $color);
-    printf ("<td width=\"10%%\" align=\"right\">%s</td>", $date);
-    printf ("<td width=\"10%%\" align=\"center\">%s</td>", $row['category']);
-    printf ("<td width=\"70%%\"><a href=\"edit.php?id=%d%s\">%s</a></td>",
+    $out .= sprintf ("<tr class=\"t%d\">", $color);
+    $out .= sprintf ("<td width=\"10%%\" align=\"right\">%s</td>", $date);
+    $out .= sprintf ("<td width=\"10%%\" align=\"center\">%s</td>", $row['category']);
+    $out .= sprintf ("<td width=\"70%%\"><a href=\"edit.php?id=%d%s\">%s</a></td>",
            $row['id'], $add, $descr[0]);
-    printf ("<td width=\"10%%\" align=\"right\" class=\"%s\">%5.2f</td>",
+    $out .= sprintf ("<td width=\"10%%\" align=\"right\" class=\"%s\">%5.2f</td>",
       $row[$value]>0?"in":"out", $row[$value]);
     $sum += $row[$value];
     if ($row[$value] > 0) {
     } else {
       $sum_out += $row[$value];
     }
-    echo ("</tr>");
+    $out .= "</tr>";
     $color = !$color;
   }
-    if (strlen($statement)) {
-      printf ("<tr class=\"t%d\">", $color);
-      echo ("<td width=\"90%\" colspan=\"3\"><strong>Summe Einnahmen</strong></td>");
-      printf ("<td width=\"10%%\" align=\"right\" class=\"in\">%5.2f</td>",$sum_in);
-      echo ("</tr>");
-      printf ("<tr class=\"t%d\">", $color);
-      echo ("<td width=\"90%\" colspan=\"3\"><strong>Summe Ausgaben</strong></td>");
-      printf ("<td width=\"10%%\" align=\"right\" class=\"out\">%5.2f</td>", $sum_out*-1);
-      echo ("</tr>");
-    }
-    printf ("<tr class=\"t%d\">", $color);
-    echo ("<td width=\"90%\" colspan=\"3\" align=\"left\"><strong>Summe</strong></td>");
-    printf ("<td width=\"10%%\" align=\"right\" class=\"%s\"><strong>%5.2f</strong></td>",
-      $sum>0?"in":"out", $sum);
-    echo ("</tr>");
+  if (strlen($statement)) {
+    $out .= sprintf ("<tr class=\"t%d\">", $color);
+    $out .= "<td width=\"90%\" colspan=\"3\"><strong>Summe Einnahmen</strong></td>";
+    $out .= sprintf ("<td width=\"10%%\" align=\"right\" class=\"in\">%5.2f</td>",$sum_in);
+    $out .= "</tr>";
+    $out .= sprintf ("<tr class=\"t%d\">", $color);
+    $out .= "<td width=\"90%\" colspan=\"3\"><strong>Summe Ausgaben</strong></td>";
+    $out .= sprintf ("<td width=\"10%%\" align=\"right\" class=\"out\">%5.2f</td>", $sum_out*-1);
+    $out .= "</tr>";
+  }
+  $out .= sprintf ("<tr class=\"t%d\">", $color);
+  $out .= "<td width=\"90%\" colspan=\"3\" align=\"left\"><strong>Summe</strong></td>";
+  $out .= sprintf ("<td width=\"10%%\" align=\"right\" class=\"%s\"><strong>%5.2f</strong></td>",
+    $sum>0?"in":"out", $sum);
+  $out .= "</tr>";
+
+  return $out;
+}
+
+if (!empty($_POST['ajax']) && $_POST['ajax'] == 1) {
+    echo utf8_encode(filter_account());
+    exit;
+}
 
 ?>
+
+<page func=InfoCon title="Kontoführung">
+
+<calendar_init -5>
+<account_heading>
+<form_to_yyyymmdd>
+
+<style type="text/css">
+div#filter_popup {
+    background: white;
+    border: 1px solid #CCC;
+    height:auto;
+    width:340px;
+    position:absolute;
+}
+div#filter_title {
+    width: 100%;
+    cursor: move;
+    background: #EEE;
+    margin-bottom: 5px;
+    font-weight: bold;
+}
+</style>
+<table class="border smallfont" width=100% border=0 cellpadding=0 cellspacing=1>
+<thead>
+<tr class=head>
+  <th width=10%>Datum</th>
+  <th width=10%>Kategorie</th>
+  <th width=70%>Verwendungszweck</th>
+  <th width=10%>Betrag</th>
+</tr>
+</thead>
+<tbody>
+<?=(count($_GET)?'':filter_account())?>
+</tbody>
 </table><p>
 
+<protect><script type="text/javascript">
+$(function(){
+    $('table.border tr').not('.head').click(function(){
+       $(this).toggleClass('highlight');
+       if ($(this).hasClass('highlight'))
+           $(this).css('backgroundColor','#add8e6');
+       else
+           $(this).css('backgroundColor','');
+    });
+    $('body').append('<script type="text/javascript" src="../../jquery.udraggable.js"><\/script>');
+    $('body').append('<script type="text/javascript" src="../../jquery.event.ue.js"><\/script>');
+});
+
+function filter_popup()
+{
+    if (!$('#filter_popup form input').length) {
+       $.get('query.php',
+             window.location.search.substr(1),
+             function(data) {
+                 var text = '<style type="text/css">';
+                 text += '#fc { z-index: 10; }';
+                 $(data).find('style').each(function(i,e){
+                     text += $(this).html();
+                 });
+                 text += '</style>';
+                 text += $(data).find('form').html();
+                 $('#filter_popup form').html(text);
+
+                 $('#filter_popup').udraggable({
+                     'handle': 'div#filter_title'
+                 }).css('top', '70px').css('left', '103px');
+
+                 $('#filter_popup form input.button[type="submit"]').click(function(e){
+                     $.post('list.php',
+                            'ajax=1&'+$('#filter_popup form').serialize(),
+                            function(data){
+                                $('table.border tbody').html(data);
+                                $('#filter_popup').hide();
+                            });
+                     return false;
+                 });
+         });
+    }
+
+    if ($('#filter_popup:visible').length)
+        $('#filter_popup').hide();
+    else
+        $('#filter_popup').show();
+
+    return false;
+}
+
+</script></protect>
+<div id="filter_popup" style="display:none;">
+<div id="filter_title">Filter setzen</div>
+<div style="padding:5px;">
+<form id="filter_form"></form>
+</div>
+</div>
 </page>
 
 # Local variables: