. Implement save, insert and delete for records
[misc/kostenrechnung] / masks / sys_mask.php
index 9115625..7a28506 100644 (file)
 <?php
 
+function discover_masks()
+{
+  $info = array();
+
+  if (($d = opendir($_SESSION['sys']['basedir'].'masks')) === false)
+    return $info;
+
+  while (($file = readdir($d)) !== false)
+    if (substr($file,-4) == '.php') {
+      $fname = substr($file,0,-4);
+      $info[] = array('id' => $fname, 'text' => $fname);
+    }
+  closedir($d);
+
+  return $info;
+}
+
 $mask = array(
              'table' => 'sys_mask',
+             'title' => 'Liste der Menüpunkte',
+             'join' => array('sys_menu ON sys_mask.menu = sys_menu.id'),
              'list' => array(
                              'id' => array(
                                            'name' => 'ID',
                                            'visible' => false,
+                                           'sql' => 'sys_mask.id',
                                            ),
                              'mask' => array(
-                                           'name' => 'Maske',
+                                           'name' => 'Dateiname',
                                            'width' => 100,
                                            ),
-                             'name' => array(
-                                           'name' => 'Name',
+                             'title' => array(
+                                           'name' => 'Beschreibung',
                                            'width' => 150,
                                            ),
+                             'menutitle' => array(
+                                           'name' => 'Menüpunkt',
+                                           'width' => 120,
+                                           ),
+                             'menu' => array(
+                                           'name' => 'Menü',
+                                           'sql' => 'sys_menu.name',
+                                           'width' => 100,
+                                           ),
                              'edit' => array(
                                            'name' => 'Edit',
-                                           'width' => 15,
+                                           'width' => 20,
+                                           'specs' => "ClassName: 'aligncenter'",
                                            ),
                              'priority' => array(
                                            'name' => 'Priorität',
-                                           'width' => 25,
+                                           'width' => 30,
                                            'type' => 'number',
                                            'specs' => "ClassName: 'alignright'",
+                                           'sql' => 'sys_mask.priority',
                                            ),
                              'sys_user' => array(
                                            'name' => 'Edit',
                                            'width' => 50,
+                                           'visible' => false,
+                                           'sql' => 'sys_mask.sys_user',
                                            ),
                              'sys_edit' => array(
                                            'name' => 'Datum',
                                            'width' => 80,
                                            'type' => 'date',
+                                           'visible' => false,
+                                           'sql' => 'sys_mask.sys_edit',
                                            ),
                              ),
              'rows' => 20,
+             'edit' => array(
+                             'mask' => array(
+                                           'name' => 'Dateiname',
+                                           'type' => 'select',
+                                           'options' => discover_masks(),
+                                           'size' => 30,
+                                           ),
+                             'title' => array(
+                                           'name' => 'Beschreibung',
+                                           'type' => 'text',
+                                           'size' => 40,
+                                           ),
+                             'menutitle' => array(
+                                           'name' => 'Menüpunkt',
+                                           'type' => 'text',
+                                           'size' => 40,
+                                           ),
+                             'menu' => array(
+                                           'name' => 'Menü',
+                                           'type' => 'select',
+                                           'options' => 'SELECT id,name AS text FROM sys_menu ORDER BY name',
+                                           'size' => 10,
+                                           ),
+                             'edit' => array(
+                                           'name' => 'Edit',
+                                           'type' => 'boolean',
+                                           'size' => 10,
+                                           ),
+                             'priority' => array(
+                                           'name' => 'Priorität',
+                                           'type' => 'number',
+                                           'size' => 10,
+                                           ),
+                             ),
              );
 
 ?>