';
echo '';
if ($update) {
echo '';
}
// text in one row
echo '
';
echo '
', "\n";
// all other fields in secondary row
echo '';
echo '
', "\n";
echo '
', "\n";
echo '
', "\n";
echo '
'; // finish row
// buttons
echo '';
echo ' ';
echo ' Cancel';
echo "\n";
}
// ========== ACTIONS START ===================================================
switch ($submit = form_get_action()) {
case NULL: break;
case 'add': $v = -2; $action = ACT_EDIT; break;
case 'view': $action = ACT_VIEW; break;
case 'edit': $action = ACT_EDIT; break;
case 'del': $action = ACT_DELETE; break;
case 'insert':
$p[':ddid'] = gpc_get_int($_POST, 'id');
$sth = $pdo->prepare("SELECT MAX(ddval)+1 FROM dropdown WHERE ddid=?");
$sth->execute([$p[':ddid']]);
$p[':ddval'] = $sth->fetchColumn() ?? 1;
$p[':ddtext'] = gpc_get_string($_POST, 'ddtext');
$p[':ddshort'] = gpc_get_string($_POST, 'ddshort');
$p[':color'] = gpc_get_color($_POST, 'color');
$p[':sort'] = gpc_get_string($_POST, 'sort');
db_exec_insert('dropdown', $p);
$action = ACT_EDIT;
break;
case 'update':
$p[':ddtext'] = gpc_get_string($_POST, 'ddtext');
$p[':ddshort'] = gpc_get_string($_POST, 'ddshort');
$p[':color'] = gpc_get_color($_POST, 'color');
$p[':sort'] = gpc_get_string($_POST, 'sort');
$fields = join(',', array_map(function($s) { return ltrim($s, ':') . '=' . $s; }, array_keys($p)));
$sth = $pdo->prepare("UPDATE dropdown SET $fields WHERE ddid=:ddid AND ddval=:ddval");
$p[':ddid'] = gpc_get_int($_POST, 'id');
$p[':ddval'] = gpc_get_int($_POST, 'v');
try {
$sth->execute($p);
} catch (PDOexception $e) {
$g_error->Add('SQL-Error: '. $e->getMessage());
}
unset($v);
$action = ACT_EDIT;
break;
case 'delete':
// only deletable if not used anywhere!
// equipment.?
if ($v <= 0) {
$g_warning->Add(_('Selection lists are not deletable!'));
}
$g_message->Add(_('Delete not yet implemented'));
break;
default:
$g_error->Add(sprintf(_('Unknown function!'), $submit));
$valid = FALSE;
}
// ========== ACTIONS END =====================================================
require 'header.php';
// ========== PAGE CONTENT ====================================================
if ($action == ACT_DEFAULT):
// ========== VARIANT: default behavior =======================================
// record counts
$num = array();
$sql = "SELECT ddid, COUNT(*) AS n FROM dropdown WHERE ddid>0 GROUP BY ddid";
$sth = $pdo->query($sql);
foreach ($sth->fetchAll(PDO::FETCH_NUM) as $row) {
$num[$row[0]] = $row[1];
}
$sql = "SELECT ddval, ddtext FROM dropdown WHERE ddid=0 AND ddval>0";
$sth = $pdo->query($sql);
echo "$pagetitle
\n";
echo '', _('Danger! Only adjust if it is clear what impact this will have!'), "
\n";
//
Achtung! Nur anpassen wenn klar ist was das für Auswirkungen hat!
echo _('Adding values is usually not critical.'), "\n";
// Hinzufügen von Werten ist in der Regel unkritisch.
echo '', "\n";
echo '';
echo '';
echo '| # | ';
echo '', _('Description'),' | ';
echo '', _('Number'),' | ';
echo ' | ';
echo '
';
echo '';
foreach ($sth->fetchAll() as $row) {
echo '| ', $row['ddval'],' | ';
echo '', $row['ddtext'], ' | ';
echo '', $num[$row['ddval']] ?? 0, ' | ';
form_action_buttons($g_scriptname, $row['ddval']);
echo "
\n";
}
echo "
\n";
elseif ($action == ACT_VIEW):
// ========== VARIANT: view single record =====================================
$sth = $pdo->prepare("SELECT ddtext FROM dropdown WHERE ddid=0 AND ddval=?");
$sth->execute([$id]);
$listname = $sth->fetchColumn();
echo '', sprintf(_('View List: %s'), $listname), "
\n";
$sql = "SELECT ddval, ddtext, ddshort, color, sort, flags FROM dropdown WHERE ddid=?";
$sth = $pdo->prepare($sql);
$sth->execute([$id]);
echo '';
echo "\n";
echo "\n";
echo '| # | ';
echo '', _('Name'), " | ";
echo '', _('Short'), " | ";
echo '', _('Color'), " | ";
echo '', _('Sort'), " | ";
echo '', _('Flags'), " | ";
echo " | \n";
echo "
\n";
echo "\n";
foreach ($sth->fetchAll() as $row) {
$flags = explode(',', $row['flags']);
$fixed = in_array('fixed', $flags);
echo '';
echo '| ', $row['ddval'],' | ';
echo '', $row['ddtext'], ' | ';
echo '', $row['ddshort'], ' | ';
if ($row['color']) {
echo '', format_color($row['color']), ' | ';
} else {
echo ' | ';
}
echo '', $row['sort'], ' | ';
echo '', ($fixed ? '' : ''), ' | ';
echo "
\n";
}
echo "
\n";
echo '', _('Back'), "\n";
elseif ($action == ACT_EDIT):
// ========== VARIANT: edit single record =====================================
$sth = $pdo->prepare("SELECT ddtext FROM dropdown WHERE ddid=0 AND ddval=?");
$sth->execute([$id]);
$listname = $sth->fetchColumn();
echo '', sprintf(_('Edit List: %s'), $listname), "
\n";
$sql = "SELECT ddval, ddtext, ddshort, color, sort FROM dropdown WHERE ddid=?";
$sth = $pdo->prepare($sql);
$sth->execute([$id]);
echo '';
echo "\n";
echo "\n";
echo '| # | ';
echo '', _('Name'), " | ";
echo '', _('Short'), " | ";
echo '', _('Color'), " | ";
echo '', _('Sort'), " | ";
echo " | \n";
echo "
\n";
echo "\n";
foreach ($sth->fetchAll() as $row) {
echo '';
if ($row['ddval'] == $v) {
echo '| ', $row['ddval'], ' | ';
echo '';
create_ddval_form($g_scriptname, $id, 'update', $row);
echo ' | ';
echo " | \n";
} else {
echo '', $row['ddval'],' | ';
echo '', $row['ddtext'], ' | ';
echo '', $row['ddshort'], ' | ';
echo '', format_color($row['color']), ' | ';
echo '', $row['sort'], ' | ';
// Action links
echo '';
echo '';
echo ' ';
echo '';
echo ' | ', "\n";
// TODO extend function to accept additional parameters
// form_action_buttons($g_scriptname, $row['ddid'];
}
echo "
\n";
}
if ($v == -2) {
echo '';
echo '| (+) | ';
echo '';
create_ddval_form($g_scriptname, $id, 'insert');
echo ' | ';
echo " | \n";
echo "
";
}
echo "
\n";
echo '', _('Add'), "\n";
echo '', _('Back'), "\n";
else:
// ========== ERROR UNKNOWN VARIANT ===========================================
echo '', _('Unknown function call: Please report to system development!'), "
\n";
endif; // $action == ...
// ========== END OF VARIANTS =================================================
include 'footer.php';