]> git.nbdom.net Git - nb.git/commitdiff
html_menu
authorNicolas Boisselier <nicolas.boisselier@gmail.com>
Fri, 10 Jul 2015 14:32:13 +0000 (15:32 +0100)
committerNicolas Boisselier <nicolas.boisselier@gmail.com>
Fri, 10 Jul 2015 14:32:13 +0000 (15:32 +0100)
lib/css/db.css
lib/php/db.php
lib/php/db/table.php
lib/php/functions.php

index aa7f80aec1596b80048acefc6d4ff371ca2b0508..9958d6a1d2fa1e7ed5c0ecf15a8915bdeff522c6 100644 (file)
@@ -52,12 +52,12 @@ form.db.edit .buttons input {
 }
 
 .db.menu {
-  float: left;
-  margin-right: 1em;
+  padding: 0.8em 0.8em 0.8em 0.5em;
+  display: inline-block;
 }
 
 .db.menu label {
-  margin-right: 0.1em;
+  margin: 0.1em 0.1em 0 0.5em;
 }
 
 .db.menu label:after {
index 03c3a9e069c17dbe4ca689f97db02a7643f76ea9..01a38aeda5c7c28bfb5e7f5351cc986d632a98a3 100644 (file)
@@ -179,52 +179,56 @@ EOF;
     return true;
   }
 
-  function html_menu() {
+  function html_menu($table=null) {
 
-    $r = '<form class="db menu center" method="get">'.PHP_EOL;
+    $html = ' onchange="this.parentElement.submit()"';
+    $r = '<form class="db menu center border rad" method="get">'.PHP_EOL;
+
+    if (!empty($table)) foreach ( array_keys($table->fields()) as $k ) {
+
+      $v = $this->p($k);
+
+      $r .= ''
+        . '<label>'.prettyText($k).'</label>'
+        . '<input type="text" id="'.$k.'" name="'.$k.'" value="'.$v.'" />'
+      ;
 
-    /// Tables
-    $r .= '<label>Tables</label>'
-      .'<select class="tables" name="table" onchange="this.parentElement.submit()">'
-    ;
-    foreach ($this->tables() as $table) {
-      $r .= '<option value="'.$table.'"';
-      $r .= $table == $this->p('table') ? ' selected="selected"' : '';
-      $r .= '>'.prettyText($table).'</option>'.PHP_EOL;
     }
-    $r .= '</select>'.PHP_EOL;
+
+    /// Tables
+    $r .= '<label>Tables</label>'.html_select_array($this->tables(),array(
+      'html'       => 'class="tables" name="table"'.$html,
+      'selected'   => $this->p('table'),
+      'prettyText' => true,
+    ));
 
     // Format
-    $r .= '<label>Format</label>'
-      .'<select class="format" name="format" onchange="this.parentElement.submit()">'
-    ;
-    foreach (array('table','div','csv','xml','json','yaml') as $format) {
-      $r .= '<option value="'.$format.'"';
-      $r .= $format == $this->p('format') ? ' selected="selected"' : '';
-      $r .= '>'.prettyText($format).'</option>'.PHP_EOL;
-    }
-    $r .= '</select>'.PHP_EOL;
+    $r .= '<label>Format</label>'.html_select_array(array(
+      'table','div','csv','xml','json','yaml'
+    ),array(
+      'html'       => 'class="format" name="format"'.$html,
+      'selected'   => $this->p('table'),
+      'prettyText' => true,
+    ));
 
     // Limit
-    $r .= '<label>Format</label>'
-      .'<select class="limit" name="limit" onchange="this.parentElement.submit()">'
-    ;
-    foreach (array('10','20','50','100','500','1000') as $limit) {
-    // - NB 10.07.15
-      $r .= '<option value="'.$limit.'"';
-      $r .= $limit == $this->p('limit') ? ' selected="selected"' : '';
-      $r .= '>'.prettyText($limit).'</option>'.PHP_EOL;
-    }
-    $r .= '</select>'.PHP_EOL;
+    $r .= '<label>Limit</label>'.html_select_array(array(
+      '10','20','50','100','500','1000'
+    ),array(
+      'html'       => 'class="limit" name="limit"'.$html,
+      'selected'   => $this->p('table'),
+      'prettyText' => true,
+    ));
 
     // Bye
+    $r .= '<input type="submit" class="button" value="GO"/>';
     $r .= '</form>'.PHP_EOL;
     return $r;
   }
 
   /*
    * Function: pset
-   * Set a value for param, deleteit if null
+   * Set a value for param, delete it if null
    */
   function pset($name,$value) {
     if ($value === null) {
index 5edecba8ee97bb98cc1dd1d2c282fd6511092de4..c8b4a73a65d74c5e6243b73cc562279905bd06e7 100644 (file)
@@ -296,7 +296,7 @@ FROM pg_catalog.pg_attribute a WHERE a.attrelid = (SELECT c.oid FROM pg_catalog.
     echo '<div class="small help">Use: '.join(' | ',$this->db->help_criterias).'</div>'.PHP_EOL;
 
     foreach ($this->params as $k) {
-      $v = @$_REQUEST[$k];
+      $v = $this->db->p($k);
       if ($k == 'limit') $v = '';
       echo '<input type="hidden" name="'.$k.'" value="'.$v.'" />'.PHP_EOL; 
     }
index 3b8d287ebd3527995677acd41bc20408cb779ad5..185c9b067615b2a92dce1dab6a6a7d1c7380ba4f 100644 (file)
@@ -256,4 +256,42 @@ function get_header($name,$value=null) {
 
   return $v ? $v[0] : null;
 }
+
+function html_select_array($data,$opt=array()) {
+
+  $html = '<select';
+  if (!empty($opt['html'])) $html .= ' '.preg_replace('/^\s+/','',$opt['html']);
+  if (!empty($opt['readonly'])) $html.=' disabled="disabled"';
+  $html .= '>'.PHP_EOL;
+
+  if (!empty($opt['blank'])) {
+    if (empty($opt['blank_lib'])) $opt['blank_lib'] = $opt['blank'];
+    $html .= '<option value="'.$opt['blank_val'].'"'.(strcmp((string)$opt['selected'],$opt['blank_val']) == 0 ?' selected="selected"':'').'>';
+    $html .= $opt['blank_lib'];
+    $html .= '</option>'.PHP_EOL;
+  }
+
+  foreach ($data as $d) {
+
+    if (is_array($d)) {
+      $val = $lib = $d[0];
+      if (count($d)>1) $lib = $d[1];
+    } else {
+      $val = $lib = $d;
+    }
+
+    $lib = htmlentities($lib);
+    if (!empty($opt['prettyText'])) $lib = prettyText($lib);
+
+    $html .= '<option value="'.$val.'"'
+      .( ($opt['selected']!==NULL and strcmp((string)$opt['selected'],$val)===0) ?' selected="selected"':'')
+    .'>'.$lib.'</option>'.PHP_EOL;
+
+  }
+
+  $html .= '</select>'.PHP_EOL;
+
+  return $html;
+
+}
 ?>