Beispiel #1
0
 private static function displayElementStart($dict)
 {
     $out = [];
     $class = Functions::nz($dict['class'], false);
     $name = Functions::nz($dict['name'], false);
     $id = Functions::nz($dict['id'], false);
     $goto = Functions::nz($dict['goto'], false);
     $disabled = Functions::nz($dict['disabled'], false);
     $onchange = Functions::nz($dict['onchange'], false);
     $height = Functions::nz($dict['height'], false);
     $width = Functions::nz($dict['width'], false);
     $governs = Functions::nz($dict['governs'], false);
     $list = Functions::nz($dict['list'], false);
     $url = Functions::getArgs($governs) . "&{$governs}=%id";
     $out[] = '<select';
     if ($class) {
         $out[] = " class=\"{$class}\"";
     }
     if ($name) {
         $out[] = " name=\"{$name}\"";
     }
     if ($id) {
         $out[] = " id=\"{$id}\"";
     }
     if ($list) {
         $out[] = ' multiple="multiple"';
     }
     if ($disabled) {
         $out[] = ' disabled="disabled"';
     }
     if ($governs) {
         $out[] = " onchange=\"ComboBox.change(this,'{$url}')\"";
     }
     if ($goto) {
         $out[] = " onchange=\"ComboBox.change(this,'{$goto}')\"";
     }
     if ($onchange) {
         $out[] = " onchange=\"{$onchange}\"";
     }
     $out[] = ' style="';
     if ($width) {
         $out[] = "width: {$width}px;";
     }
     if ($height) {
         $out[] = "height: {$height}px;";
     }
     $out[] = '"';
     $out[] = '>';
     return $out;
 }
Beispiel #2
0
 public static function display($dict)
 {
     $name = Functions::nz($dict['name'], '');
     $default = Functions::nz($dict['default'], '');
     $governs = Functions::nz($dict['governs'], false);
     $onchange = Functions::nz($dict['onchange'], false);
     $width = Functions::nz($dict['width'], 80);
     $eu = Functions::nz($dict['eu'], false);
     if ($governs) {
         $onchange = "location = '" . Functions::getArgs($governs) . "&{$governs}='+\$('input[name={$name}]').val()";
     }
     $out = array();
     $out[] = '<div style="display:inline; white-space: nowrap;"><input type="text" ' . ($onchange ? "onchange=\"{$onchange}\"" : '') . " style=\"width: {$width}px\" name=\"{$name}\" value=\"{$default}\" /><input type=\"button\" value=\"#\" onclick=\"DateBox.display(this.previousSibling," . ($eu ? 'true' : 'false') . ')" /></div>';
     return implode("\n", $out);
 }
Beispiel #3
0
 public function redirect($to = '')
 {
     if ($to == '') {
         $to = Functions::getArgs('');
     }
     header('Location: ' . $to);
     exit(0);
 }
Beispiel #4
0
 public static function display($dict, $subforminfo = false)
 {
     $table = Functions::nz($dict['table'], false);
     $tableclass = Functions::nz($dict['tableclass'], false);
     $where = Functions::nz($dict['where'], array());
     $order = Functions::nz($dict['order'], false);
     $fields = Functions::nz($dict['fields'], false);
     $method = Functions::nz($dict['method'], 'post');
     $deleteable = Functions::nz($dict['deleteable'], true);
     $action = Functions::nz($dict['action'], Functions::getArgs());
     $submitlabel = Functions::nz($dict['submitlabel'], 'Update');
     $addlabel = Functions::nz($dict['addlabel'], 'Add new');
     $links = Functions::nz($dict['links'], array());
     $subform = Functions::nz($dict['subform'], false);
     $rowanchor = Functions::nz($dict['rowanchor'], false);
     $displayheader = Functions::nz($dict['displayheader'], false);
     $onupdate = Functions::nz($dict['onupdate'], false);
     $ondelete = Functions::nz($dict['ondelete'], false);
     $safedelete = Functions::nz($dict['safedelete'], false);
     $addline = Functions::nz($dict['addline'], true);
     $continous = Functions::nz($dict['type'], 'continous') == 'continous';
     $out = array();
     if ($table) {
         $i = 0;
         while (isset(self::$formids[$formid = ($subforminfo ? $subforminfo['pre'] . '_' : '') . $table . '_' . $i])) {
             ++$i;
         }
         self::$formids[$formid] = true;
         $rs = self::getRS($table, $where, $order, $subforminfo);
         $allFields = array();
         $qryFields = $rs->fetchFields();
         foreach ($qryFields as $f) {
             $allFields[$f->name] = array('type' => $f->type);
         }
         if ($method == 'post' && isset($_POST[$formid . '_submit'])) {
             self::checkTableForm($formid, $table, $_POST, $fields, $subform, $allFields, $onupdate);
         } elseif ($method == 'get' && isset($_GET[$formid . '_submit'])) {
             self::checkTableForm($formid, $table, $_GET, $fields, $subform, $allFields, $onupdate);
         }
         if (isset($_GET['delete']) && isset($_GET['formid']) && $_GET['formid'] == $formid) {
             if ($ondelete) {
                 $ondelete($_GET['delete']);
             }
             DB::query("DELETE FROM {$table} WHERE id=" . $_GET['delete']);
             header('Location: ' . Functions::getArgs('delete;formid'));
         }
         if (!$fields) {
             $fields = array();
             foreach ($qryFields as $f) {
                 $fields[] = array('name' => $f->name);
             }
         }
         // generate pretty names
         foreach ($fields as $k => $f) {
             if (!Functions::nz($f['prettyname'], false)) {
                 $fields[$k]['prettyname'] = self::makePrettyName($f['name']);
             }
         }
         if (!$subforminfo) {
             $out[] = "<form name=\"{$formid}\" method=\"{$method}\" action=\"\">";
         } else {
             $out[] = "<input type=\"hidden\" name=\"{$subforminfo['pre']}_subforms[]\" value=\"{$formid}\" />";
         }
         if ($continous) {
             $out[] = '<table' . ($tableclass ? " class=\"{$tableclass}\"" : '') . '>';
             $cols = count($fields) + count($links);
             if ($deleteable) {
                 $cols++;
             }
             if ($displayheader) {
                 $out[] = '<thead>';
                 $out[] = '<tr>';
                 foreach ($fields as $f) {
                     $type = isset($f['type']) ? $f['type'] : $allFields[$f['name']]['type'];
                     if ($type != 'hidden') {
                         $out[] = "<th>{$f['prettyname']}</th>";
                     }
                 }
                 $out[] = '</tr>';
                 $out[] = '</thead>';
             }
             $line = 0;
             $out[] = '<tbody>';
             while ($row = $rs->next()) {
                 $out[] = "<input type=\"hidden\" name=\"{$formid}_id_{$line}\" value=\"{$row['id']}\" />";
                 $out[] = "<input type=\"hidden\" name=\"{$formid}_{$line}_dirty\" value=\"0\" />";
                 $out[] = '<tr>';
                 $firstfield = true;
                 foreach ($fields as $f) {
                     list($hidden, $str) = self::displayField($formid, $f, $allFields, $line, $row);
                     if (!$hidden) {
                         $out[] = '<td>';
                     }
                     if ($firstfield && !$hidden) {
                         if ($rowanchor) {
                             $out[] = "<a name=\"id{$row['id']}\"></a>";
                         }
                         $firstfield = false;
                     }
                     $out[] = $str;
                     if (!$hidden) {
                         $out[] = '</td>';
                     }
                 }
                 if ($deleteable) {
                     if (!$safedelete) {
                         $out[] = "<td><input class=\"btn btn-default\" type=\"button\" onClick=\"location='" . $action . "&formid={$formid}&delete={$row['id']}'\" value=\"Delete\" /></td>";
                     } else {
                         $out[] = "<td><input class=\"btn btn-default\" type=\"button\" onClick=\"ConfirmBox.display('Are you sure you want to delete this?','" . $action . "&formid={$formid}&delete={$row['id']}')\" value=\"Delete\" /></td>";
                     }
                 }
                 foreach ($links as $link) {
                     $url = str_replace('%id', $row['id'], $link['url']);
                     if (Functions::nz($link['fancybox'], false)) {
                         $onclick = "\$.fancybox({href:'{$url}'})";
                     } else {
                         $onclick = "location='{$url}'";
                     }
                     $out[] = "<td><input class=\"btn btn-default\" type=\"button\" onClick=\"{$onclick}\" value=\"{$link['label']}\" /></td>";
                 }
                 $out[] = '</tr>';
                 if ($subform) {
                     $dict = array('pre' => $formid, 'id' => $row['id']);
                     $subformdict = $subform;
                     foreach ($subformdict['fields'] as $k => $f) {
                         if (isset($f['default'])) {
                             $subformdict['fields'][$k]['default'] = str_replace('%id', $row['id'], $f['default']);
                         }
                     }
                     $out[] = '<tr><td></td><td colspan="' . ($cols - 1) . '">' . self::display($subformdict, $dict) . '</td></tr>';
                 }
                 ++$line;
             }
             if ($addline) {
                 $out[] = "<tr><td colspan=\"{$cols}\"><input type=\"hidden\" name=\"{$formid}_id_new\" value=\"0\" /><input class=\"btn btn-default\" type=\"button\" value=\"{$addlabel}\" onclick=\"Form.addnew('{$formid}',this)\" /></td></tr>";
                 $out[] = "<tr style=\"display: none\" id=\"{$formid}_addnew\">";
                 foreach ($fields as $f) {
                     list($hidden, $str) = self::displayField($formid, $f, $allFields);
                     if (!$hidden) {
                         $out[] = '<td>';
                     }
                     $out[] = $str;
                     if (!$hidden) {
                         $out[] = '</td>';
                     }
                 }
                 $out[] = '</tr>';
             }
             $out[] = '</tbody>';
             $out[] = '</table>';
         } else {
             $row = $rs->next();
             if ($row) {
                 $out[] = "<input type=\"hidden\" name=\"{$formid}_id_0\" value=\"{$row['id']}\" />";
                 $out[] = "<input type=\"hidden\" name=\"{$formid}_0_dirty\" value=\"0\" />";
             } else {
                 $out[] = "<input type=\"hidden\" name=\"{$formid}_id_new\" value=\"1\" />";
             }
             $out[] = '<table>';
             foreach ($fields as $f) {
                 if ($row) {
                     list($hidden, $str) = self::displayField($formid, $f, $allFields, 0, $row);
                 } else {
                     list($hidden, $str) = self::displayField($formid, $f, $allFields);
                 }
                 if (!$hidden) {
                     $out[] = "<tr><td>{$f['prettyname']}</td><td>";
                 }
                 $out[] = $str;
                 if (!$hidden) {
                     $out[] = '</td></tr>';
                 }
             }
             $out[] = '</table>';
         }
         if (!$subforminfo) {
             $out[] = "<input class=\"btn btn-default\" type=\"submit\" name=\"{$formid}_submit\" value=\"{$submitlabel}\" />";
             $out[] = '</form>';
         }
     }
     return implode("\n", $out);
 }