138 lines
4.5 KiB
PHP
138 lines
4.5 KiB
PHP
<?php
|
|
/******************************************************************************
|
|
* YMS - Yacht Management Software
|
|
* Copyright (C) 2024-2026 Thomas Hooge
|
|
*
|
|
* SPDX-License-Identifier: WTFPL
|
|
******************************************************************************/
|
|
|
|
require 'globals.inc';
|
|
require 'lib/gpc.inc';
|
|
|
|
$pagetitle = _('Settings');
|
|
|
|
// ========== ACTIONS START ===================================================
|
|
|
|
switch ($submit = form_get_action()) {
|
|
|
|
case NULL: break;
|
|
|
|
case 'update':
|
|
$pk = ['userid', 'sno'];
|
|
// global settings
|
|
if ($user->role == 'captain') {
|
|
$p[':userid'] = 0;
|
|
$p[':sno'] = 20;
|
|
$p[':valint'] = gpc_get_int($_POST, 'maximgx');
|
|
db_exec_update('settings', $p, $pk);
|
|
$p[':sno'] = 21;
|
|
$p[':valint'] = gpc_get_int($_POST, 'maximgy');
|
|
db_exec_update('settings', $p, $pk);
|
|
}
|
|
// user settings
|
|
$p[':userid'] = $user->id;
|
|
$p[':sno'] = 2; // date format
|
|
$p[':valint'] = NULL;
|
|
$p[':valstr'] = gpc_get_string($_POST, 'datefmt');
|
|
db_exec_update('settings', $p, $pk);
|
|
$p[':sno'] = 10; // rows pp
|
|
$p[':valstr'] = NULL;
|
|
$p[':valint'] = gpc_get_int($_POST, 'rowspp');
|
|
db_exec_update('settings', $p, $pk);
|
|
break;
|
|
|
|
default:
|
|
$g_error->Add(sprintf(_("Unknown function '%s'!"), $submit));
|
|
$valid = FALSE;
|
|
}
|
|
|
|
// ========== ACTIONS END =====================================================
|
|
|
|
require 'header.php';
|
|
|
|
// ========== PAGE CONTENT ====================================================
|
|
|
|
if ($action == ACT_DEFAULT):
|
|
// ========== VARIANT: default behavior =======================================
|
|
|
|
echo '<h1>', $pagetitle, "</h1>\n";
|
|
|
|
$datefmt = 'Y-m-d';
|
|
$sql = "SELECT valstr FROM settings WHERE userid=? AND sno=2";
|
|
$sth = $pdo->prepare($sql);
|
|
$sth->execute([$user->id]);
|
|
if ($res = $sth->fetch(PDO::FETCH_NUM)) {
|
|
$datefmt = $res[0];
|
|
} else {
|
|
// create missing record in settings table
|
|
$sql = "INSERT INTO settings (userid, sno, valstr) VALUES (?, 2, ?)";
|
|
$sth = $pdo->prepare($sql);
|
|
$sth->execute([$user->id, $datefmt]);
|
|
}
|
|
|
|
$curdate = new DateTime();
|
|
$opt_datefmt = array(
|
|
'Y-m-d' => _('YYYY-MM-DD'). $curdate->format(' - Y-m-d'),
|
|
'Y/m/d' => _('YYYY/MM/DD'). $curdate->format(' - Y/m/d'),
|
|
'd.m.Y' => _('DD.MM.YYYY'). $curdate->format(' - d.m.Y'),
|
|
'd/m/Y' => _('DD/MM/YYYY'). $curdate->format(' - d/m/Y'),
|
|
'm-d-Y' => _('MM/DD/YYYY'). $curdate->format(' - m-d-Y')
|
|
);
|
|
|
|
$rowspp = 10;
|
|
$sql = "SELECT valint FROM settings WHERE userid=? AND sno=10";
|
|
$sth = $pdo->prepare($sql);
|
|
$sth->execute([$user->id]);
|
|
if ($res = $sth->fetch(PDO::FETCH_NUM)) {
|
|
$rowspp = $res[0];
|
|
} else {
|
|
// create missing record in settings table
|
|
$sql = "INSERT INTO settings (userid, sno, valint) VALUES (?, 10, ?)";
|
|
$sth = $pdo->prepare($sql);
|
|
$sth->execute([$user->id, $rowspp]);
|
|
}
|
|
|
|
$maximgx = $pdo->query("SELECT valint FROM settings WHERE userid=0 AND sno=20")->fetchColumn();
|
|
$maximgy = $pdo->query("SELECT valint FROM settings WHERE userid=0 AND sno=21")->fetchColumn();
|
|
|
|
?>
|
|
<form method="post" action="<?=$g_scriptname?>">
|
|
<h2><?=_('for current user')?></h2>
|
|
<?php
|
|
form_create_select('datefmt', _('Date format'), $opt_datefmt, $datefmt);
|
|
?>
|
|
<div class="mb-3">
|
|
<label for="rowspp" class="form-label"><?=_('Number of rows per page')?></label>
|
|
<input type="text" class="form-control" id="rowspp" name="rowspp" maxlength="3" value=<?=$rowspp?>>
|
|
</div>
|
|
<?php
|
|
// limit global settings for captain only
|
|
if ($user->role == 'captain'):
|
|
?>
|
|
<h2><?=_('global for all users')?></h2>
|
|
<div class="mb-3">
|
|
<label for="maximgx" class="form-label"><?=_('Maximal image width')?></label>
|
|
<input type="text" class="form-control" id="maximgx" name="maximgx" maxlength="4" value=<?=$maximgx?>>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label for="maximgy" class="form-label"><?=_('Maximal image height')?></label>
|
|
<input type="text" class="form-control" id="maximgy" name="maximgy" maxlength="4" value=<?=$maximgy?>>
|
|
</div>
|
|
<?php
|
|
endif;
|
|
?>
|
|
<div class="container-fluid px-0 my-3">
|
|
<button type="submit" name="submit[update]" class="btn btn-primary"><?=_('Save')?></button>
|
|
<a href="index.php" class="btn btn-secondary"><?=_('Back')?></a>
|
|
</div>
|
|
</form>
|
|
<?php
|
|
else:
|
|
// ========== ERROR UNKNOWN VARIANT ===========================================
|
|
echo '<p>', _('Unknown function call: Please report to system development!'), "</p>\n";
|
|
|
|
endif; // $action == ...
|
|
// ========== END OF VARIANTS =================================================
|
|
|
|
include 'footer.php';
|