Use Rico.TableColumn.lookup and table for some columns
authorJoey Schulze <joey@infodrom.org>
Thu, 9 Dec 2010 18:39:31 +0000 (19:39 +0100)
committerJoey Schulze <joey@infodrom.org>
Thu, 9 Dec 2010 18:39:31 +0000 (19:39 +0100)
masks/gereinigt.php
masks/korrektur.php
masks/kostenstellen.php
masks/overview_kostenstellen.php

index e9a1679..15637cc 100644 (file)
@@ -14,10 +14,21 @@ $details = <<<EOC
 </div>
 EOC;
 
+function gebiete()
+{
+  $sql = "SELECT id,gebiet FROM gebiet ORDER BY id";
+  $sth = pg_query($sql);
+
+  $result = array();
+  while ($row = pg_fetch_assoc($sth))
+    $result[] = sprintf("%d: '%s'", $row['id'], $row['gebiet']);
+
+  return '{' . implode(', ', $result) . '}';
+}
+
 $mask = array(
              'table' => 'kostenstellen',
              'title' => 'Gewässer gereinigt?',
-             'join' => array('gebiet ON kostenstellen.gebiet = gebiet.id'),
              'select' => array(
                                'title' => 'Auswahl',
                                'options' => discover_years(true),
@@ -36,7 +47,8 @@ $mask = array(
                                            ),
                              'gebiet' => array(
                                            'name' => 'Gebiet',
-                                           'sql' => 'gebiet.gebiet',
+                                           'sql' => 'gebiet',
+                                           'control' => "new Rico.TableColumn.lookup(".gebiete().", 0, '')",
                                            'specs' => "filterUI: 's'",
                                            'width' => 270,
                                            ),
index a799e29..093c2ed 100644 (file)
@@ -548,13 +548,24 @@ function korrektur_delete($mask)
   return delete_or_copy_row($mask['table'], $id);
 }
 
+function gebiete()
+{
+  $sql = "SELECT id,gebiet FROM gebiet ORDER BY id";
+  $sth = pg_query($sql);
+
+  $result = array();
+  while ($row = pg_fetch_assoc($sth))
+    $result[] = sprintf("%d: '%s'", $row['id'], $row['gebiet']);
+
+  return '{' . implode(', ', $result) . '}';
+}
+
 $mask = array(
              'table' => 'einsatz',
              'tables_delete' => array('einsatzpersonal','einsatzgeraete'),
              'title' => 'Korrektur von Arbeitsberichten',
              'join' => array(
                              'kostenstellen ON einsatz.kostenstelle = kostenstellen.id',
-                             'gebiet ON kostenstellen.gebiet = gebiet.id',
                              ),
              'list' => array(
                              'id' => array(
@@ -572,7 +583,8 @@ $mask = array(
                              'gebiet' => array(
                                            'name' => 'Gebiet',
                                            'width' => 230,
-                                           'sql' => 'gebiet.gebiet',
+                                           'sql' => 'einsatz.gebiet',
+                                           'control' => "new Rico.TableColumn.lookup(".gebiete().", 0, '')",
                                            'specs' => "filterUI: 's'",
                                            ),
                              'kostenstelle' => array(
index b11f36e..4992fe4 100644 (file)
@@ -1,9 +1,20 @@
 <?php
 
+function gebiete()
+{
+  $sql = "SELECT id,gebiet FROM gebiet ORDER BY id";
+  $sth = pg_query($sql);
+
+  $result = array();
+  while ($row = pg_fetch_assoc($sth))
+    $result[] = sprintf("%d: '%s'", $row['id'], $row['gebiet']);
+
+  return '{' . implode(', ', $result) . '}';
+}
+
 $mask = array(
              'table' => 'kostenstellen',
              'title' => 'Kostenstellen',
-             'join' => array('gebiet ON kostenstellen.gebiet = gebiet.id'),
              'list' => array(
                              'id' => array(
                                            'name' => 'ID',
@@ -17,7 +28,8 @@ $mask = array(
                                            ),
                              'gebiet' => array(
                                            'name' => 'Gebiet',
-                                           'sql' => 'gebiet.gebiet',
+                                           'sql' => 'kostenstellen.gebiet',
+                                           'control' => "new Rico.TableColumn.lookup(".gebiete().", 0, '')",
                                            'specs' => "filterUI: 's'",
                                            'width' => 220,
                                            ),
index 0fae553..9bc7e6f 100644 (file)
@@ -4,10 +4,21 @@ include_once($_SESSION['sys']['basedir'].'/lib/overview_utils.php');
 
 if (empty($_SESSION['overview_kostenstellen.year'])) $_SESSION['overview_kostenstellen.year'] = 0;
 
+function gebiete()
+{
+  $sql = "SELECT id,gebiet FROM gebiet ORDER BY id";
+  $sth = pg_query($sql);
+
+  $result = array();
+  while ($row = pg_fetch_assoc($sth))
+    $result[] = sprintf("%d: '%s'", $row['id'], $row['gebiet']);
+
+  return '{' . implode(', ', $result) . '}';
+}
+
 $mask = array(
              'table' => 'kostenstellen',
              'title' => 'Übersicht nach Kostenstellen',
-             'join' => array('gebiet ON kostenstellen.gebiet = gebiet.id'),
              'select' => array(
                                'title' => 'Auswahl',
                                'options' => discover_years(),
@@ -27,9 +38,10 @@ $mask = array(
                                            ),
                              'gebiet' => array(
                                            'name' => 'Gebiet',
-                                           'sql' => "gebiet.gebiet",
+                                           'sql' => 'kostenstellen.gebiet',
+                                           'control' => "new Rico.TableColumn.lookup(".gebiete().", 0, '')",
                                            'width' => 220,
-                                           'specs' => "filterUI: 't'",
+                                           'specs' => "filterUI: 's'",
                                            ),
                              'kostenstelle' => array(
                                            'name' => 'Gewässer',