Webgui: ongoing development
This commit is contained in:
+2
-4
@@ -134,7 +134,7 @@ CREATE TABLE equipment (
|
|||||||
ecat tinyint(3) DEFAULT NULL,
|
ecat tinyint(3) DEFAULT NULL,
|
||||||
serial varchar(30),
|
serial varchar(30),
|
||||||
supplier smallint(6) DEFAULT NULL,
|
supplier smallint(6) DEFAULT NULL,
|
||||||
manufacturer smallint(6) DEFAULT NULL,
|
manufacturer smallint(6) DEFAULT NULL, // -3: original; -4: own built
|
||||||
purchdate date DEFAULT NULL,
|
purchdate date DEFAULT NULL,
|
||||||
price decimal(12,2) DEFAULT NULL,
|
price decimal(12,2) DEFAULT NULL,
|
||||||
weight float(5,2) UNSIGNED DEFAULT NULL,
|
weight float(5,2) UNSIGNED DEFAULT NULL,
|
||||||
@@ -159,9 +159,7 @@ CREATE TABLE inventory (
|
|||||||
PRIMARY KEY (invid),
|
PRIMARY KEY (invid),
|
||||||
INDEX ix_invname (invname)
|
INDEX ix_invname (invname)
|
||||||
);
|
);
|
||||||
/*
|
|
||||||
TODO: unit -> unit1, unit2, unit3
|
|
||||||
*/
|
|
||||||
CREATE TABLE measurement (
|
CREATE TABLE measurement (
|
||||||
mid smallint(6) NOT NULL AUTO_INCREMENT,
|
mid smallint(6) NOT NULL AUTO_INCREMENT,
|
||||||
mtype enum('generic','cable','fuse') NOT NULL default 'generic',
|
mtype enum('generic','cable','fuse') NOT NULL default 'generic',
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ There can be a difference because not all items have a weight entered
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
require 'globals.inc';
|
require 'globals.inc';
|
||||||
|
require 'lib/gpc.inc';
|
||||||
|
|
||||||
$pagetitle = _('Boxes');
|
$pagetitle = _('Boxes');
|
||||||
|
|
||||||
$id = gpc_get_int($_REQUEST, 'id', 0);
|
$id = gpc_get_int($_REQUEST, 'id', 0);
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* YMS - Yacht Management Software
|
* YMS - Yacht Management Software
|
||||||
* Copyright (C) 2024 Thomas Hooge
|
* Copyright (C) 2024-2026 Thomas Hooge
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: WTFPL
|
* SPDX-License-Identifier: WTFPL
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
require 'globals.inc';
|
require 'globals.inc';
|
||||||
|
require 'lib/gpc.inc';
|
||||||
|
|
||||||
$pagetitle = _('Checklists');
|
$pagetitle = _('Checklists');
|
||||||
|
|
||||||
$id = gpc_get_int($_REQUEST, 'id', 0);
|
$id = gpc_get_int($_REQUEST, 'id', 0);
|
||||||
|
|||||||
+4
-14
@@ -1,12 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* YMS - Yacht Management Software
|
* YMS - Yacht Management Software
|
||||||
* Copyright (C) 2024-2025 Thomas Hooge
|
* Copyright (C) 2024-2026 Thomas Hooge
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: WTFPL
|
* SPDX-License-Identifier: WTFPL
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
require 'globals.inc';
|
require 'globals.inc';
|
||||||
|
require 'lib/gpc.inc';
|
||||||
|
|
||||||
$pagetitle=_('Company');
|
$pagetitle=_('Company');
|
||||||
|
|
||||||
$id = gpc_get_int($_REQUEST, 'id', 0);
|
$id = gpc_get_int($_REQUEST, 'id', 0);
|
||||||
@@ -348,21 +350,9 @@ foreach ($opt_comptype as $k => $v) {
|
|||||||
?>
|
?>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
|
||||||
<label for="comptype2" class="form-label"><?=_('Secondary company type')?></label>
|
|
||||||
<select name="comptype2" class="form-control">
|
|
||||||
<?php
|
<?php
|
||||||
echo '<option value="">--- kein ---', "</option>\n";
|
form_create_select('comptype2', _('Secondary company type'), $g_opt_none + $opt_comptype, $company->comptype2);
|
||||||
foreach ($opt_comptype as $k => $v) {
|
|
||||||
echo '<option value="', $k ,'"';
|
|
||||||
if ($company->comptype2 == $k) {
|
|
||||||
echo ' selected';
|
|
||||||
}
|
|
||||||
echo '>', $v, "</option>\n";
|
|
||||||
}
|
|
||||||
?>
|
?>
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="street" class="form-label"><?=_('Street')?></label>
|
<label for="street" class="form-label"><?=_('Street')?></label>
|
||||||
<input type="text" class="form-control" id="street" name="street" value="<?=$company->street ?>">
|
<input type="text" class="form-control" id="street" name="street" value="<?=$company->street ?>">
|
||||||
|
|||||||
+22
-5
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* YMS - Yacht Management Software
|
* YMS - Yacht Management Software
|
||||||
* Copyright (C) 2024 Thomas Hooge
|
* Copyright (C) 2024-2026 Thomas Hooge
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: WTFPL
|
* SPDX-License-Identifier: WTFPL
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
@@ -18,6 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
require 'globals.inc';
|
require 'globals.inc';
|
||||||
|
require 'lib/gpc.inc';
|
||||||
require 'lib/fileutils.inc';
|
require 'lib/fileutils.inc';
|
||||||
|
|
||||||
$docid = gpc_get_int($_GET, 'id');
|
$docid = gpc_get_int($_GET, 'id');
|
||||||
@@ -75,7 +76,7 @@ if (isset($thumb)) {
|
|||||||
// scale down
|
// scale down
|
||||||
if ($doc->mimetype == 'image/jpeg') {
|
if ($doc->mimetype == 'image/jpeg') {
|
||||||
$orig = imagecreatefromjpeg($file);
|
$orig = imagecreatefromjpeg($file);
|
||||||
$scaled = imagescale($orig, $width * $factor, $height * $factor, IMG_BICUBIC);
|
$scaled = imagescale($orig, (int)($width * $factor), (int)($height * $factor), IMG_BICUBIC);
|
||||||
imagejpeg($scaled, $thumbpath, 85);
|
imagejpeg($scaled, $thumbpath, 85);
|
||||||
$file = $thumbpath;
|
$file = $thumbpath;
|
||||||
$filename = $thumbname;
|
$filename = $thumbname;
|
||||||
@@ -114,10 +115,26 @@ if (file_exists($file)) {
|
|||||||
} else {
|
} else {
|
||||||
// dynamically create error image
|
// dynamically create error image
|
||||||
header("Content-Type: image/png");
|
header("Content-Type: image/png");
|
||||||
$im = @imagecreate(110, 20) or die(_("Cannot initialize new GD image stream"));
|
$im = @imagecreate(240, 120) or die(_('Cannot initialize new GD image stream'));
|
||||||
$bgcolor = imagecolorallocate($im, 0, 0, 0);
|
$bgcolor = imagecolorallocate($im, 250, 250, 250);
|
||||||
$txcolor = imagecolorallocate($im, 233, 14, 91);
|
$txcolor = imagecolorallocate($im, 233, 14, 91);
|
||||||
imagestring($im, 1, 5, 5, "Resource not found!", $txcolor);
|
$border = imagecolorallocate($im, 180, 180, 180);
|
||||||
|
|
||||||
|
$text = _('Resource not found!');
|
||||||
|
$font = '/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf';
|
||||||
|
$size = 12;
|
||||||
|
|
||||||
|
$bbox = imagettfbbox($size, 0, $font, $text);
|
||||||
|
$textWidth = $bbox[2] - $bbox[0];
|
||||||
|
$textHeight = $bbox[1] - $bbox[7];
|
||||||
|
|
||||||
|
$x = (240 - $textWidth) / 2;
|
||||||
|
$y = (120 + $textHeight) / 2;
|
||||||
|
imagettftext($im, $size, 0, $x, $y, $txcolor, $font, $text);
|
||||||
|
|
||||||
|
imagerectangle($im, 0, 0, 239, 119, $border);
|
||||||
|
|
||||||
|
// imagestring($im, 1, 5, 5, _('Resource not found!'), $txcolor);
|
||||||
imagepng($im);
|
imagepng($im);
|
||||||
imagedestroy($im);
|
imagedestroy($im);
|
||||||
}
|
}
|
||||||
|
|||||||
+52
-29
@@ -7,6 +7,7 @@
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
require 'globals.inc';
|
require 'globals.inc';
|
||||||
|
require 'lib/gpc.inc';
|
||||||
require 'lib/fileutils.inc';
|
require 'lib/fileutils.inc';
|
||||||
|
|
||||||
$pagetitle = _('Documents');
|
$pagetitle = _('Documents');
|
||||||
@@ -78,6 +79,9 @@ switch ($submit = form_get_action()) {
|
|||||||
if ($file_type != $file_mimetype) {
|
if ($file_type != $file_mimetype) {
|
||||||
$g_warning->Add(sprintf(_("Mimetype mismatch: '%s'."), $file_type));
|
$g_warning->Add(sprintf(_("Mimetype mismatch: '%s'."), $file_type));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO for images check maximum size and scale down if needed
|
||||||
|
|
||||||
// ok let's go
|
// ok let's go
|
||||||
$file_hash = md5_file($file_tmp);
|
$file_hash = md5_file($file_tmp);
|
||||||
$file_timestamp = date('Y-m-d H:i:s', filemtime($file_tmp));
|
$file_timestamp = date('Y-m-d H:i:s', filemtime($file_tmp));
|
||||||
@@ -140,40 +144,45 @@ switch ($submit = form_get_action()) {
|
|||||||
|
|
||||||
case 'delete':
|
case 'delete':
|
||||||
// Security token needed!
|
// Security token needed!
|
||||||
/*if (gpc_get_string($_POST, 'token', 16) != $_SESSION['token']) {
|
if (gpc_get_string($_POST, 'token', 16) != $_SESSION['token']) {
|
||||||
$g_error->Add(_('Delete prohibited, invalid security token!'));
|
$g_error->Add(_('Delete prohibited, invalid security token!'));
|
||||||
$action = ACT_VIEW;
|
$action = ACT_VIEW;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
unset($_SESSION['token']);
|
unset($_SESSION['token']);
|
||||||
*/
|
// get document details
|
||||||
$sql = "SELECT doctype, extension FROM document WHERE docid=?";
|
$sql = "SELECT doctype, extension FROM document WHERE docid=?";
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
$sth->execute([$id]);
|
$sth->execute([$id]);
|
||||||
$doc = $sth->fetch(PDO::FETCH_OBJ);
|
$doc = $sth->fetch(PDO::FETCH_OBJ);
|
||||||
|
|
||||||
// clean thumbs
|
// clean thumbs
|
||||||
$thumbdir = $g_doc_basepath . '/thumbs/';
|
$thumbdir = $g_doc_basepath . '/thumbs/';
|
||||||
$pattern = sprintf('%s-%06d*', $g_doc_typemap[$doctype], $docid);
|
$pattern = sprintf('%s-%06d*', $g_doc_typemap[$doc->doctype], $id);
|
||||||
|
$g_success->Add("Remove thumbs: type=$doc->doctype pattern=$pattern");
|
||||||
foreach (glob($thumbdir . $pattern) as $f) {
|
foreach (glob($thumbdir . $pattern) as $f) {
|
||||||
// unlink($f);
|
unlink($f);
|
||||||
$g_success->Add($f);
|
$g_success->Add($f);
|
||||||
}
|
}
|
||||||
|
// remove references
|
||||||
|
$nref = db_exec_delete('docref', 'docid=?', $id);
|
||||||
|
if ($nref > 0) {
|
||||||
|
$g_success->Add(sprintf(_('Removed %d references'), $nref));
|
||||||
|
}
|
||||||
// remove document
|
// remove document
|
||||||
$g_success->Add(_('Deleted document %s'), $docfilename);
|
$docfilename = sprintf('%s/%s-%06d.%s', $g_doc_basepath, $g_doc_typemap[$doc->doctype], $id, $doc->extension);
|
||||||
// sprintf('%s/%s-%06d.%s', $g_doc_basepath, $dtmap[$row['doctype']], $docid, $row['extension']);
|
unlink($docfilename);
|
||||||
/*
|
$g_success->Add(sprintf(_('Deleted document %s'), $docfilename));
|
||||||
|
// remove record from database
|
||||||
$sth = $pdo->prepare("DELETE FROM document WHERE docid=?");
|
$sth = $pdo->prepare("DELETE FROM document WHERE docid=?");
|
||||||
try {
|
try {
|
||||||
$sth->execute([$id]);
|
$sth->execute([$id]);
|
||||||
} catch (PDOexception $e) {
|
} catch (PDOexception $e) {
|
||||||
$g_error->Add(sprintf(_('SQL-Error: %s', $e->getMessage())));
|
$g_error->Add(sprintf(_('SQL-Error: %s'), $e->getMessage()));
|
||||||
}*/
|
|
||||||
//$action = ACT_DEFAULT;
|
|
||||||
|
|
||||||
$action = ACT_DELETE;
|
$action = ACT_DELETE;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
$action = ACT_DEFAULT;
|
||||||
|
break;
|
||||||
|
|
||||||
case 'addref':
|
case 'addref':
|
||||||
$opt_reftype = db_load_enum('docref', 'reftype');
|
$opt_reftype = db_load_enum('docref', 'reftype');
|
||||||
@@ -266,7 +275,7 @@ WHERE r.reftype='equipment' AND e.vid=:vid
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// get total recond count for pagination and limit
|
// get total record count for pagination and limit
|
||||||
$sql = "SELECT COUNT(DISTINCT docid) FROM document LEFT OUTER JOIN docref USING (docid)";
|
$sql = "SELECT COUNT(DISTINCT docid) FROM document LEFT OUTER JOIN docref USING (docid)";
|
||||||
if ($where) $sql .= ' WHERE ' . $where;
|
if ($where) $sql .= ' WHERE ' . $where;
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
@@ -402,7 +411,7 @@ echo '<h2>', _('Add Document'), "</h2>\n";
|
|||||||
<label for="files" class="form-label"><?=_('Document')?></label>
|
<label for="files" class="form-label"><?=_('Document')?></label>
|
||||||
<input class="form-control" type="file" id="files" name="files" onchange="preview()">
|
<input class="form-control" type="file" id="files" name="files" onchange="preview()">
|
||||||
<img id="frame" src="" class="img-fluid">
|
<img id="frame" src="" class="img-fluid">
|
||||||
<button class="btn btn-secondary" onclick="clearimg();return false;"><?=_('Clear')?></button>
|
<button type="button" class="btn btn-secondary" onclick="clearimg();return false;"><?=_('Clear selection')?></button>
|
||||||
<script>
|
<script>
|
||||||
function preview() {
|
function preview() {
|
||||||
var images = ["image/png", "image/jpeg", "image/svg+xml"];
|
var images = ["image/png", "image/jpeg", "image/svg+xml"];
|
||||||
@@ -414,8 +423,8 @@ echo '<h2>', _('Add Document'), "</h2>\n";
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
function clearimg() {
|
function clearimg() {
|
||||||
document.getElementById('file').value = null;
|
document.getElementById('files').value = '';
|
||||||
frame.src = "";
|
frame.src = '';
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</div>
|
</div>
|
||||||
@@ -438,13 +447,12 @@ $sth = $pdo->prepare($sql);
|
|||||||
$sth->execute([$id]);
|
$sth->execute([$id]);
|
||||||
$document = $sth->fetch(PDO::FETCH_OBJ);
|
$document = $sth->fetch(PDO::FETCH_OBJ);
|
||||||
|
|
||||||
|
|
||||||
echo '<h2>', _('View Document'), "</h2>\n";
|
echo '<h2>', _('View Document'), "</h2>\n";
|
||||||
|
|
||||||
echo '<div class="row">', "\n";
|
echo '<div class="row">', "\n";
|
||||||
echo '<div class="col">', "\n";
|
echo '<div class="col">', "\n";
|
||||||
echo '<table class="table table-borderless">', "\n";
|
echo '<table class="table table-borderless">', "\n";
|
||||||
echo '<tr><th scope="row" style="width:20%">', _('Document type'),"</th><td>", $document->doctype, "</td></tr>\n";
|
echo '<tr><th scope="row" style="width:20%">', _('Document type'),"</th><td>", get_enum($document->doctype), "</td></tr>\n";
|
||||||
if ($document->doctype == 'picture') {
|
if ($document->doctype == 'picture') {
|
||||||
$techname = sprintf('pic-%06d.%s', $document->docid, $document->extension);
|
$techname = sprintf('pic-%06d.%s', $document->docid, $document->extension);
|
||||||
echo '<tr><th scope="row">', _('Preview'), '</th><td>';
|
echo '<tr><th scope="row">', _('Preview'), '</th><td>';
|
||||||
@@ -452,6 +460,7 @@ if ($document->doctype == 'picture') {
|
|||||||
|
|
||||||
echo '<div class="image-gallery">';
|
echo '<div class="image-gallery">';
|
||||||
echo '<a href="#" data-bs-toggle="modal" data-bs-target="#imageModal">';
|
echo '<a href="#" data-bs-toggle="modal" data-bs-target="#imageModal">';
|
||||||
|
// echo '<img width="', $g_thumb_size, '" src="dl.php?id=', $document->docid, '&t=s" alt="', $document->title, '">';
|
||||||
echo '<img width="', $g_thumb_size, '" src="dl.php?id=', $document->docid, '" alt="', $document->title, '">';
|
echo '<img width="', $g_thumb_size, '" src="dl.php?id=', $document->docid, '" alt="', $document->title, '">';
|
||||||
echo '</a>';
|
echo '</a>';
|
||||||
echo '</div>'; // gallery
|
echo '</div>'; // gallery
|
||||||
@@ -473,7 +482,12 @@ if ($document->doctype == 'picture') {
|
|||||||
|
|
||||||
// echo '</a>';
|
// echo '</a>';
|
||||||
echo "</td></tr>\n";
|
echo "</td></tr>\n";
|
||||||
|
echo '<th scope="row">Image extents</th>';
|
||||||
|
[$width, $height] = getimagesize($g_doc_basepath . '/' . $techname);
|
||||||
|
echo '<td>', $width, 'x', $height, 'px';
|
||||||
|
echo "</td></tr>";
|
||||||
} elseif (($document->doctype == 'drawing')) {
|
} elseif (($document->doctype == 'drawing')) {
|
||||||
|
// TODO preview with popup
|
||||||
$techname = sprintf('drw-%06d.%s', $document->docid, $document->extension);
|
$techname = sprintf('drw-%06d.%s', $document->docid, $document->extension);
|
||||||
echo '<tr><th scope="row">', _('Drawing'), '</th>';
|
echo '<tr><th scope="row">', _('Drawing'), '</th>';
|
||||||
echo '<td><img src="dl.php?id=', $document->docid, '" alt="', $document->title, '"></td></tr>', "\n";
|
echo '<td><img src="dl.php?id=', $document->docid, '" alt="', $document->title, '"></td></tr>', "\n";
|
||||||
@@ -559,21 +573,26 @@ foreach ($sth->fetchAll() as $row) {
|
|||||||
echo '<table class="table table-sm">', "\n";
|
echo '<table class="table table-sm">', "\n";
|
||||||
echo "<thead>\n";
|
echo "<thead>\n";
|
||||||
echo "<tr>";
|
echo "<tr>";
|
||||||
|
echo "<th>#</th>\n";
|
||||||
echo '<th style="width:20%">' . _('Type') . "</th>";
|
echo '<th style="width:20%">' . _('Type') . "</th>";
|
||||||
echo "<th>" . _('Used by') . "</th>";
|
echo "<th>" . _('Used by') . "</th>";
|
||||||
echo "<td></td>";
|
echo "<td></td>";
|
||||||
echo "</tr>\n";
|
echo "</tr>\n";
|
||||||
echo "</thead>\n";
|
echo "</thead>\n";
|
||||||
|
$i = 0;
|
||||||
foreach ($references as $ref) {
|
foreach ($references as $ref) {
|
||||||
|
$i++;
|
||||||
echo "<tr>";
|
echo "<tr>";
|
||||||
echo "<td>", $ref['reftype'], "</td>";
|
echo "<td>", $i;
|
||||||
|
if ($ref['reftype'] == 'equipment') {
|
||||||
|
echo '<a title="', _('View'), '" href="equipment.php?f=view&id=', $ref['refid'],'"><i class="bi-eye ms-2"></i></a>';
|
||||||
|
} elseif ($ref['reftype'] == 'company') {
|
||||||
|
echo '<a title="', _('View'), '" href="company.php?f=view&id=', $ref['refid'],'"><i class="bi-eye ms-2"></i></a>';
|
||||||
|
}
|
||||||
|
echo "</td>";
|
||||||
|
echo "<td>", get_enum($ref['reftype']), "</td>";
|
||||||
echo "<td>", $ref['target'], "</td>";
|
echo "<td>", $ref['target'], "</td>";
|
||||||
echo "<td>";
|
echo "<td>";
|
||||||
if ($ref['reftype'] == 'equipment') {
|
|
||||||
echo '<a title="', _('View'), '" href="equipment.php?f=view&id=', $ref['refid'],'"><i class="bi-eye"></i></a>';
|
|
||||||
} elseif ($ref['reftype'] == 'company') {
|
|
||||||
echo '<a title="', _('View'), '" href="company.php?f=view&id=', $ref['refid'],'"><i class="bi-eye"></i></a>';
|
|
||||||
}
|
|
||||||
echo '<a title="', _('Remove reference'), '" href="', $g_scriptname, '?f=delref&id=', $id, '&drid=', $ref['drid'], '"><i class="bi-trash"></i></a>';
|
echo '<a title="', _('Remove reference'), '" href="', $g_scriptname, '?f=delref&id=', $id, '&drid=', $ref['drid'], '"><i class="bi-trash"></i></a>';
|
||||||
echo "</td>";
|
echo "</td>";
|
||||||
echo "</tr>\n";
|
echo "</tr>\n";
|
||||||
@@ -721,7 +740,6 @@ if ($document->mimetype == 'application/pdf') {
|
|||||||
elseif ($action == ACT_DELETE):
|
elseif ($action == ACT_DELETE):
|
||||||
// ========== VARIANT: delete record ==========================================
|
// ========== VARIANT: delete record ==========================================
|
||||||
|
|
||||||
|
|
||||||
$sql = "SELECT docid, doctype, mimetype, filename, extension, title "
|
$sql = "SELECT docid, doctype, mimetype, filename, extension, title "
|
||||||
. "FROM document "
|
. "FROM document "
|
||||||
. "WHERE docid=?";
|
. "WHERE docid=?";
|
||||||
@@ -729,17 +747,22 @@ $sth = $pdo->prepare($sql);
|
|||||||
$sth->execute([$id]);
|
$sth->execute([$id]);
|
||||||
$document = $sth->fetch(PDO::FETCH_OBJ);
|
$document = $sth->fetch(PDO::FETCH_OBJ);
|
||||||
|
|
||||||
|
$sql = "SELECT COUNT(*) FROM docref WHERE docid=?";
|
||||||
|
$sth = $pdo->prepare($sql);
|
||||||
|
$sth->execute([$id]);
|
||||||
|
$nref = $sth->fetchColumn();
|
||||||
|
|
||||||
echo '<h2>', _('Delete Document'), "</h2>\n";
|
echo '<h2>', _('Delete Document'), "</h2>\n";
|
||||||
echo '<p>', sprintf(_('Record no. %d'), $id), "</p>\n";
|
echo '<p>', sprintf(_('Record no. %d'), $id), "</p>\n";
|
||||||
echo '<p>Dokument: ', $document->filename, "</p>";
|
echo '<p>Dokument: ', $document->filename, "</p>\n";
|
||||||
echo '<p>Title: ', $document->title, "</p>";
|
echo '<p>Title: ', $document->title, "</p>\n";
|
||||||
|
echo '<p>References: ', $nref, "<p>\n";
|
||||||
|
|
||||||
echo '<p>', _('Deleting a document item is final. There is no way back. Only delete if you are absolute sure.'), "</p>\n";
|
echo '<p>', _('Deleting a document item is final. There is no way back. Only delete if you are absolute sure.'), "</p>\n";
|
||||||
|
|
||||||
$_SESSION['token'] = bin2hex(random_bytes(8));
|
$_SESSION['token'] = bin2hex(random_bytes(8));
|
||||||
form_delete_buttons($g_scriptname, $id, $_SESSION['token']);
|
form_delete_buttons($g_scriptname, $id, $_SESSION['token']);
|
||||||
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
// ========== ERROR UNKNOWN VARIANT ===========================================
|
// ========== ERROR UNKNOWN VARIANT ===========================================
|
||||||
|
|
||||||
|
|||||||
+3
-1
@@ -1,12 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* YMS - Yacht Management Software
|
* YMS - Yacht Management Software
|
||||||
* Copyright (C) 2024 Thomas Hooge
|
* Copyright (C) 2024-2026 Thomas Hooge
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: WTFPL
|
* SPDX-License-Identifier: WTFPL
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
require 'globals.inc';
|
require 'globals.inc';
|
||||||
|
require 'lib/gpc.inc';
|
||||||
|
|
||||||
$pagetitle = _('Lists');
|
$pagetitle = _('Lists');
|
||||||
|
|
||||||
$id = gpc_get_int($_REQUEST, 'id', 0); // list id
|
$id = gpc_get_int($_REQUEST, 'id', 0); // list id
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
require 'globals.inc';
|
require 'globals.inc';
|
||||||
|
require 'lib/gpc.inc';
|
||||||
require 'lib/fileutils.inc';
|
require 'lib/fileutils.inc';
|
||||||
|
|
||||||
$pagetitle = _('Equipment');
|
$pagetitle = _('Equipment');
|
||||||
@@ -135,6 +136,44 @@ switch ($submit = form_get_action()) {
|
|||||||
if ($nerr > 0) {
|
if ($nerr > 0) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
// scale down if dimensions exceed limits
|
||||||
|
$img_maxx= $pdo->query("SELECT valint FROM settings WHERE userid=0 AND sno=20")->fetchColumn();
|
||||||
|
$img_maxy= $pdo->query("SELECT valint FROM settings WHERE userid=0 AND sno=21")->fetchColumn();
|
||||||
|
[$width, $height] = getimagesize($file_tmp);
|
||||||
|
$factor = min($img_maxx / $width, $img_maxy / $height);
|
||||||
|
if ($factor < 1) {
|
||||||
|
$width = (int)($width * $factor);
|
||||||
|
$height = (int)($height * $factor);
|
||||||
|
$g_message->add(sprintf(_('Image sacled down to %dx%d'), $width, $height));
|
||||||
|
if ($file_mimetype == 'image/jpeg') {
|
||||||
|
$orig = imagecreatefromjpeg($file_tmp);
|
||||||
|
$scaled = imagescale($orig, (int)($width * $factor), (int)($height * $factor), IMG_BICUBIC);
|
||||||
|
imagejpeg($scaled, $file_tmp, 85);
|
||||||
|
} else if ($file_mimetype == 'image/png') {
|
||||||
|
$orig = imagecreatefrompng($file_tmp);
|
||||||
|
if (!$orig) {
|
||||||
|
$g_error->Add("imagecreatefrompng failed");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$scaled = imagescale($orig, (int)($width * $factor), (int)($height * $factor), IMG_BICUBIC);
|
||||||
|
if (!$scaled) {
|
||||||
|
$g_error->Add("imagescale failed");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
imagepng($scaled, $file_tmp, 9);
|
||||||
|
} else {
|
||||||
|
$g_error->Add(sprintf(_('Internal error: Unknown mimetype %s!'), $file_mimetype));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$file_size = filesize($file_tmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
// check if storage limit is exceeded
|
||||||
|
if (dir_get_size($g_doc_basepath) + $file_size > $g_storage_limit * 1024 * 1024) {
|
||||||
|
$g_error->Add(_('Storage limit exceeded. Image not uploaded!'));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
$file_hash = md5_file($file_tmp);
|
$file_hash = md5_file($file_tmp);
|
||||||
$file_timestamp = date('Y-m-d H:i:s', filemtime($file_tmp));
|
$file_timestamp = date('Y-m-d H:i:s', filemtime($file_tmp));
|
||||||
|
|
||||||
|
|||||||
+110
-119
@@ -71,7 +71,9 @@ if ($g_scriptname != 'login.php') {
|
|||||||
try {
|
try {
|
||||||
$pdo = new PDO("mysql:host=$g_db_host;dbname=$g_db_schema;charset=utf8mb4", $g_db_username, $g_db_password);
|
$pdo = new PDO("mysql:host=$g_db_host;dbname=$g_db_schema;charset=utf8mb4", $g_db_username, $g_db_password);
|
||||||
} catch (PDOException $e) {
|
} catch (PDOException $e) {
|
||||||
echo '<pre>';
|
echo "<!DOCTYPE html>\n";
|
||||||
|
echo '<html>';
|
||||||
|
echo '<body><pre>';
|
||||||
switch ($e->getCode()) {
|
switch ($e->getCode()) {
|
||||||
case 2002:
|
case 2002:
|
||||||
echo "Unable to connect to database, perhaps host info is wrong.\n";
|
echo "Unable to connect to database, perhaps host info is wrong.\n";
|
||||||
@@ -87,7 +89,8 @@ try {
|
|||||||
default:
|
default:
|
||||||
print_r($e);
|
print_r($e);
|
||||||
}
|
}
|
||||||
echo '</pre>';
|
echo '</pre></body>';
|
||||||
|
echo '</html>';
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||||
@@ -100,7 +103,7 @@ try {
|
|||||||
echo '<pre>';
|
echo '<pre>';
|
||||||
echo 'Settings table not found! Perhaps database is not initialized';
|
echo 'Settings table not found! Perhaps database is not initialized';
|
||||||
echo '</pre>';
|
echo '</pre>';
|
||||||
exit(1)
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$g_db_scheme_version = $sth->fetchColumn();
|
$g_db_scheme_version = $sth->fetchColumn();
|
||||||
@@ -378,6 +381,49 @@ function db_exec_update($table, $params, $pk) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function db_exec_delete($table, $condition, $params) {
|
||||||
|
// WIP untested!
|
||||||
|
// condition contains the where part of the sql statement
|
||||||
|
// params are values for placeholders in condition
|
||||||
|
// returns the number of deleted records
|
||||||
|
global $pdo;
|
||||||
|
global $g_error;
|
||||||
|
// convert params to array if single value is given
|
||||||
|
if (!is_array($params)) {
|
||||||
|
$params = [$params];
|
||||||
|
}
|
||||||
|
$sql = "DELETE FROM $table";
|
||||||
|
if (!empty($condition)) {
|
||||||
|
$sql .= ' WHERE ' . $condition;
|
||||||
|
}
|
||||||
|
$sth = $pdo->prepare($sql);
|
||||||
|
try {
|
||||||
|
$sth->execute($params);
|
||||||
|
} catch (PDOexception $e) {
|
||||||
|
$g_error->Add('SQL-Error: '. $e->getMessage());
|
||||||
|
$g_error->Add($sql);
|
||||||
|
$g_error->Add(print_r($params, true));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return $sth->rowCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
function db_clear_filter($sno) {
|
||||||
|
global $user;
|
||||||
|
global $pdo;
|
||||||
|
$sql = "DELETE FROM settings WHERE userid=? AND sno=?";
|
||||||
|
$sth = $pdo->prepare($sql);
|
||||||
|
try {
|
||||||
|
$sth->execute([$user->id, $sno]);
|
||||||
|
} catch (PDOexception $e) {
|
||||||
|
$g_warning->Add('SQL-Error: '. $e->getMessage());
|
||||||
|
$g_warning->Add($sql);
|
||||||
|
$g_warning->Add('Setting: ', $sno);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
function db_save_filter($flt, $sno) {
|
function db_save_filter($flt, $sno) {
|
||||||
global $user;
|
global $user;
|
||||||
global $pdo;
|
global $pdo;
|
||||||
@@ -400,8 +446,10 @@ function get_enum($enum) {
|
|||||||
// translate and beautify enums
|
// translate and beautify enums
|
||||||
$lookup = array(
|
$lookup = array(
|
||||||
'NULL' => _('n/a'),
|
'NULL' => _('n/a'),
|
||||||
|
'active' => _('Active'),
|
||||||
'bad' => _('Bad'),
|
'bad' => _('Bad'),
|
||||||
'box' => _('Box'),
|
'box' => _('Box'),
|
||||||
|
'cable' => _('Cable'),
|
||||||
'cat' => _('Catamaran'),
|
'cat' => _('Catamaran'),
|
||||||
'completed' => _('Completed'),
|
'completed' => _('Completed'),
|
||||||
'closed' => _('Closed'),
|
'closed' => _('Closed'),
|
||||||
@@ -414,6 +462,7 @@ function get_enum($enum) {
|
|||||||
'estimated' => _('Estimated'),
|
'estimated' => _('Estimated'),
|
||||||
'finished' => _('Finished'),
|
'finished' => _('Finished'),
|
||||||
'fixed' => _('Fixed'),
|
'fixed' => _('Fixed'),
|
||||||
|
'fuse' => _('Fuse'),
|
||||||
'generic' => _('Generic'),
|
'generic' => _('Generic'),
|
||||||
'good' => _('Good'),
|
'good' => _('Good'),
|
||||||
'high' => _('High'),
|
'high' => _('High'),
|
||||||
@@ -428,12 +477,14 @@ function get_enum($enum) {
|
|||||||
'normal' => _('Normal'),
|
'normal' => _('Normal'),
|
||||||
'ongoing' => _('Ongoing'),
|
'ongoing' => _('Ongoing'),
|
||||||
'open' => _('Open'),
|
'open' => _('Open'),
|
||||||
|
'ordered' => _('Ordered'),
|
||||||
'paused' => _('Paused'),
|
'paused' => _('Paused'),
|
||||||
'pending' => _('Pending'),
|
'pending' => _('Pending'),
|
||||||
'picture' => _('Picture'),
|
'picture' => _('Picture'),
|
||||||
'planned' => _('Planned'),
|
'planned' => _('Planned'),
|
||||||
'precise' => _('Precise'),
|
'precise' => _('Precise'),
|
||||||
'project' => _('Project'),
|
'project' => _('Project'),
|
||||||
|
'removed' => _('Removed'),
|
||||||
'repairable' => _('Repairable'),
|
'repairable' => _('Repairable'),
|
||||||
'rough' => _('Rough'),
|
'rough' => _('Rough'),
|
||||||
'storage' => _('Storage'),
|
'storage' => _('Storage'),
|
||||||
@@ -629,7 +680,8 @@ function db_get_opt_storage($vid) {
|
|||||||
global $pdo;
|
global $pdo;
|
||||||
global $g_error;
|
global $g_error;
|
||||||
$list = array();
|
$list = array();
|
||||||
$sql = "SELECT sid, sname FROM storage WHERE vid=? ORDER BY sname";
|
// exclude storage type "tank" from list
|
||||||
|
$sql = "SELECT sid, sname FROM storage WHERE vid=? AND stype<>1 ORDER BY sname";
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
try {
|
try {
|
||||||
$sth->execute([$vid]);
|
$sth->execute([$vid]);
|
||||||
@@ -713,6 +765,21 @@ function db_get_opt_supp($default=NULL) {
|
|||||||
return $list;
|
return $list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function db_get_opt_user($userid, $default=NULL) {
|
||||||
|
global $pdo;
|
||||||
|
if (isset($default)) {
|
||||||
|
$list = $default;
|
||||||
|
} else {
|
||||||
|
$list = array();
|
||||||
|
}
|
||||||
|
$sql = "SELECT userid, displayname FROM user WHERE userid>0 ORDER BY displayname";
|
||||||
|
$sth = $pdo->query($sql);
|
||||||
|
foreach ($sth->fetchAll(PDO::FETCH_NUM) as $row) {
|
||||||
|
$list[$row[0]] = $row[1];
|
||||||
|
}
|
||||||
|
return $list;
|
||||||
|
}
|
||||||
|
|
||||||
function db_get_opt_proj($vid, $default=NULL) {
|
function db_get_opt_proj($vid, $default=NULL) {
|
||||||
global $pdo;
|
global $pdo;
|
||||||
global $g_error;
|
global $g_error;
|
||||||
@@ -802,10 +869,22 @@ function form_get_action() {
|
|||||||
return strtolower($submit);
|
return strtolower($submit);
|
||||||
}
|
}
|
||||||
|
|
||||||
function form_create_select($fieldname, $label, $optlist, $selval=NULL) {
|
function form_create_input($fieldname, $label, $value) {
|
||||||
|
// TODO WIP
|
||||||
|
echo '<div class="mb-3">', "\n";
|
||||||
|
echo "</div>\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
function form_create_text($fieldname, $label, $value) {
|
||||||
|
// TODO WIP
|
||||||
|
echo '<div class="mb-3">', "\n";
|
||||||
|
echo "</div>\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
function form_create_select($fieldname, $label, $optlist, $selval=NULL, $multiple=FALSE) {
|
||||||
echo '<div class="mb-3">', "\n";
|
echo '<div class="mb-3">', "\n";
|
||||||
echo '<label for="', $fieldname, '">', $label, "</label>\n";
|
echo '<label for="', $fieldname, '">', $label, "</label>\n";
|
||||||
echo '<select class="form-select" name="', $fieldname,'" id="', $fieldname, '">', "\n";
|
echo '<select class="form-select" name="', $fieldname,'" id="', $fieldname, $multiple ? ' multiple' : '', '">', "\n";
|
||||||
foreach ($optlist as $k => $v) {
|
foreach ($optlist as $k => $v) {
|
||||||
echo '<option value="', $k, '"';
|
echo '<option value="', $k, '"';
|
||||||
if (isset($selval) and ($k == $selval)) {
|
if (isset($selval) and ($k == $selval)) {
|
||||||
@@ -817,6 +896,13 @@ function form_create_select($fieldname, $label, $optlist, $selval=NULL) {
|
|||||||
echo "</div>\n";
|
echo "</div>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function form_create_checks($fieldname, $label, $optlist, $selected) {
|
||||||
|
echo '<div class="mb-3">', "\n";
|
||||||
|
echo '<label>', $label, "</label>\n";
|
||||||
|
print_r($optlist);
|
||||||
|
echo "</div>\n";
|
||||||
|
}
|
||||||
|
|
||||||
function form_action_buttons($script, $id) {
|
function form_action_buttons($script, $id) {
|
||||||
echo "<td>";
|
echo "<td>";
|
||||||
echo '<a title="', _('View'), '" href="', $script, '?f=view&id=', $id, '"><i class="bi-eye"></i></a>', "\n";
|
echo '<a title="', _('View'), '" href="', $script, '?f=view&id=', $id, '"><i class="bi-eye"></i></a>', "\n";
|
||||||
@@ -885,9 +971,16 @@ function form_tag_assignment($script, $id, $tags) {
|
|||||||
echo "</tr>";
|
echo "</tr>";
|
||||||
}
|
}
|
||||||
|
|
||||||
function filter_create_select($fieldname, $label, $optlist, $selval=NULL) {
|
function filter_create_select($fieldname, $label, $optlist, $selval=NULL, $multiple=FALSE) {
|
||||||
|
// - Wenn multiple gesetzt ist, muß selval ein array sein
|
||||||
|
// ansonsten ein einfacher String
|
||||||
|
/* if ($multiple) {
|
||||||
|
if (!is_array($selval)) {
|
||||||
|
}
|
||||||
|
} */
|
||||||
|
echo '<div class="d-flex flex-nowrap gap-2">', "\n";
|
||||||
echo '<label for="', $fieldname,'">', $label,'</label>', "\n";
|
echo '<label for="', $fieldname,'">', $label,'</label>', "\n";
|
||||||
echo '<select id="', $fieldname, '" name="', $fieldname, '">', "\n";
|
echo '<select id="', $fieldname, '" name="', $fieldname, '"', $multiple ? ' multiple' : '', ">\n";
|
||||||
foreach ($optlist as $k => $v) {
|
foreach ($optlist as $k => $v) {
|
||||||
echo '<option value="', $k, '"';
|
echo '<option value="', $k, '"';
|
||||||
if ($k == $selval) {
|
if ($k == $selval) {
|
||||||
@@ -896,109 +989,7 @@ function filter_create_select($fieldname, $label, $optlist, $selval=NULL) {
|
|||||||
echo '>', $v, '</option>', "\n";
|
echo '>', $v, '</option>', "\n";
|
||||||
}
|
}
|
||||||
echo "</select>\n";
|
echo "</select>\n";
|
||||||
}
|
echo "</div>";
|
||||||
|
|
||||||
// ========== GPC FUNCTIONS ===================================================
|
|
||||||
|
|
||||||
function gpc_get_string(&$GPC, $varname, $maxlen = NULL, $default = NULL) {
|
|
||||||
// TODO Parameter nullval: single value or array of values which considered as null
|
|
||||||
// Default value for nullval is "-1"
|
|
||||||
if (!isset($GPC[$varname]) or (strlen(trim($GPC[$varname])) == 0)) {
|
|
||||||
return $default;
|
|
||||||
}
|
|
||||||
$s = trim($GPC[$varname]);
|
|
||||||
if (isset($maxlen)) {
|
|
||||||
return substr($s, 0, $maxlen);
|
|
||||||
}
|
|
||||||
return $s;
|
|
||||||
}
|
|
||||||
|
|
||||||
function gpc_get_int(&$GPC, $varname, $default = NULL) {
|
|
||||||
if (!isset($GPC[$varname])) {
|
|
||||||
return $default;
|
|
||||||
}
|
|
||||||
return (int)$GPC[$varname];
|
|
||||||
}
|
|
||||||
|
|
||||||
function gpc_get_float(&$GPC, $varname, $default = NULL) {
|
|
||||||
global $g_lconv;
|
|
||||||
if (!isset($GPC[$varname]) or (strlen(trim($GPC[$varname])) == 0)) {
|
|
||||||
return $default;
|
|
||||||
}
|
|
||||||
$var = str_replace($g_lconv['thousands_sep'], '', $GPC[$varname]);
|
|
||||||
if ($g_lconv['decimal_point'] != '.') {
|
|
||||||
$var = str_replace($g_lconv['decimal_point'], '.', $var);
|
|
||||||
}
|
|
||||||
return (double)$var;
|
|
||||||
}
|
|
||||||
|
|
||||||
function gpc_get_currency(&$GPC, $varname, $default = NULL) {
|
|
||||||
global $g_lconv;
|
|
||||||
if (!isset($GPC[$varname]) or (strlen(trim($GPC[$varname])) == 0)) {
|
|
||||||
return $default;
|
|
||||||
}
|
|
||||||
$var = str_replace($g_lconv['thousands_sep'], '', $GPC[$varname]);
|
|
||||||
if ($g_lconv['decimal_point'] != '.') {
|
|
||||||
$var = str_replace($g_lconv['decimal_point'], '.', $var);
|
|
||||||
}
|
|
||||||
return (double)$var;
|
|
||||||
}
|
|
||||||
|
|
||||||
function gpc_get_bool(&$GPC, $varname, $default = FALSE) {
|
|
||||||
if (!isset($GPC[$varname])) {
|
|
||||||
return $default;
|
|
||||||
}
|
|
||||||
$gpcvar = trim($GPC[$varname]);
|
|
||||||
if (strcasecmp('off', $gpcvar) == 0 ||
|
|
||||||
strcasecmp('no', $gpcvar) == 0 ||
|
|
||||||
strcasecmp('false', $gpcvar) == 0 ||
|
|
||||||
strcasecmp('no', $gpcvar) == 0 ||
|
|
||||||
strcasecmp('0', $gpcvar) == 0 ||
|
|
||||||
strcasecmp('nein', $gpcvar) == 0)
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
function gpc_get_date(&$GPC, $varname, $default = NULL) {
|
|
||||||
// TODO improve
|
|
||||||
if (!isset($GPC[$varname]) || $GPC[$varname] == '') {
|
|
||||||
return $default;
|
|
||||||
}
|
|
||||||
return $GPC[$varname];
|
|
||||||
}
|
|
||||||
|
|
||||||
function gpc_get_datetime(&$GPC, $varname, $default = NULL) {
|
|
||||||
// TODO improve
|
|
||||||
if (!isset($GPC[$varname]) || $GPC[$varname] == '') {
|
|
||||||
return $default;
|
|
||||||
}
|
|
||||||
return $GPC[$varname];
|
|
||||||
}
|
|
||||||
|
|
||||||
function gpc_get_color(&$GPC, $varname, $default = NULL) {
|
|
||||||
if (!isset($GPC[$varname]) or (strlen(trim($GPC[$varname])) == 0)) {
|
|
||||||
return $default;
|
|
||||||
}
|
|
||||||
$color = $GPC[$varname];
|
|
||||||
if ((strlen($color) == 7) and (substr($color, 0, 1) == '#')) {
|
|
||||||
$color = substr($color, 1);
|
|
||||||
}
|
|
||||||
if ((strlen($color) != 6) or (! ctype_xdigit($color))) {
|
|
||||||
return $default;
|
|
||||||
}
|
|
||||||
return strtoupper($color);
|
|
||||||
}
|
|
||||||
|
|
||||||
function gpc_get_enum(&$GPC, $varname, $values, $default = NULL) {
|
|
||||||
if (!isset($GPC[$varname]) or (strlen(trim($GPC[$varname])) == 0)) {
|
|
||||||
return $default;
|
|
||||||
}
|
|
||||||
if (! in_array($GPC[$varname], $values)) {
|
|
||||||
return $default;
|
|
||||||
}
|
|
||||||
return $GPC[$varname];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ========== FORMAT FUNCTIONS ================================================
|
// ========== FORMAT FUNCTIONS ================================================
|
||||||
@@ -1162,11 +1153,11 @@ function get_pagination($script, $param, $page, $lastpage, $small=false) {
|
|||||||
|
|
||||||
if ($page > 1) {
|
if ($page > 1) {
|
||||||
// Go to first page or previous page
|
// Go to first page or previous page
|
||||||
$out .= '<li class="page-item"><a class="page-link" href="'. $script. $psep. 'p=1">First</a></li>'. "\n";
|
$out .= '<li class="page-item"><a class="page-link" href="'. $script. $psep. 'p=1">'. _('First'). '</a></li>'. "\n";
|
||||||
$out .= '<li class="page-item"><a class="page-link" href="'. $script. $psep. 'p='. ($page - 1). '">Previous</a></li>'. "\n";
|
$out .= '<li class="page-item"><a class="page-link" href="'. $script. $psep. 'p='. ($page - 1). '">'. _('Previous'). '</a></li>'. "\n";
|
||||||
} else {
|
} else {
|
||||||
$out .= '<li class="page-item disabled"><a class="page-link href="#">First</a></li>'. "\n";
|
$out .= '<li class="page-item disabled"><a class="page-link href="#">'. _('First'). '</a></li>'. "\n";
|
||||||
$out .= '<li class="page-item disabled"><a class="page-link href="#">Previous</a></li>'. "\n";
|
$out .= '<li class="page-item disabled"><a class="page-link href="#">'. _('Previous'). '</a></li>'. "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($lastpage < 10) {
|
if ($lastpage < 10) {
|
||||||
@@ -1181,11 +1172,11 @@ function get_pagination($script, $param, $page, $lastpage, $small=false) {
|
|||||||
|
|
||||||
if ($page < $lastpage) {
|
if ($page < $lastpage) {
|
||||||
// go to last page or next page
|
// go to last page or next page
|
||||||
$out .= '<li class="page-item"><a class="page-link" href="'. $script. $psep. 'p='. ($page + 1). '">Next</a></li>'. "\n";
|
$out .= '<li class="page-item"><a class="page-link" href="'. $script. $psep. 'p='. ($page + 1). '">'. _('Next'). '</a></li>'. "\n";
|
||||||
$out .= '<li class="page-item"><a class="page-link" href="'. $script. $psep. 'p='. $lastpage. '">Last</a></li>'. "\n";
|
$out .= '<li class="page-item"><a class="page-link" href="'. $script. $psep. 'p='. $lastpage. '">'. _('Last'). '</a></li>'. "\n";
|
||||||
} else {
|
} else {
|
||||||
$out .= '<li class="page-item disabled"><a class="page-link href="#">Next</a></li>'. "\n";
|
$out .= '<li class="page-item disabled"><a class="page-link href="#">'. _('Next'). '</a></li>'. "\n";
|
||||||
$out .= '<li class="page-item disabled"><a class="page-link href="#">Last</a></li>'. "\n";
|
$out .= '<li class="page-item disabled"><a class="page-link href="#">'. _('Last'). '</a></li>'. "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
// idea: small entry to input page number
|
// idea: small entry to input page number
|
||||||
|
|||||||
@@ -7,6 +7,8 @@
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
require 'globals.inc';
|
require 'globals.inc';
|
||||||
|
require 'lib/gpc.inc';
|
||||||
|
|
||||||
$pagetitle = _('Start');
|
$pagetitle = _('Start');
|
||||||
|
|
||||||
// ========== ACTIONS START ===================================================
|
// ========== ACTIONS START ===================================================
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* YMS - Yacht Management Software
|
* YMS - Yacht Management Software
|
||||||
* Copyright (C) 2024-2025 Thomas Hooge
|
* Copyright (C) 2024-2026 Thomas Hooge
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: WTFPL
|
* SPDX-License-Identifier: WTFPL
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
require 'globals.inc';
|
require 'globals.inc';
|
||||||
|
require 'lib/gpc.inc';
|
||||||
|
|
||||||
$pagetitle=_('Inventory');
|
$pagetitle=_('Inventory');
|
||||||
|
|
||||||
$id = gpc_get_int($_REQUEST, 'id', 0);
|
$id = gpc_get_int($_REQUEST, 'id', 0);
|
||||||
@@ -399,7 +401,7 @@ $inventory = $sth->fetch(PDO::FETCH_OBJ);
|
|||||||
<?php
|
<?php
|
||||||
$opt_conttype = db_load_enum('inventory', 'conttype', true, true);
|
$opt_conttype = db_load_enum('inventory', 'conttype', true, true);
|
||||||
form_create_select('conttype', _('Container type'), $opt_conttype, $inventory->conttype);
|
form_create_select('conttype', _('Container type'), $opt_conttype, $inventory->conttype);
|
||||||
form_create_select('sid', _('Storage'), $opt_storage, $inventory->sid);
|
form_create_select('sid', _('Storage'), $g_opt_none + $opt_storage, $inventory->sid);
|
||||||
form_create_select('boxid', _('Box'), $g_opt_none + $opt_box, $inventory->boxid);
|
form_create_select('boxid', _('Box'), $g_opt_none + $opt_box, $inventory->boxid);
|
||||||
?>
|
?>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* YMS - Yacht Management Software
|
* YMS - Yacht Management Software
|
||||||
* Copyright (C) 2024 Thomas Hooge
|
* Copyright (C) 2024-2026 Thomas Hooge
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: WTFPL
|
* SPDX-License-Identifier: WTFPL
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
@@ -14,8 +14,16 @@ function file_fix_filesize($docid, $filepath) {
|
|||||||
// set filesize in database to current size in filesystem
|
// set filesize in database to current size in filesystem
|
||||||
global $pdo;
|
global $pdo;
|
||||||
$newsize = filesize($filepath);
|
$newsize = filesize($filepath);
|
||||||
$sth = $pdo->prepare("UPDATE document SET docsize=? WHERE docid=?");
|
$sql = "UPDATE document SET docsize=? WHERE docid=?";
|
||||||
$sth->execute([$docid, $newsize]);
|
$params = [$newsize, $docid];
|
||||||
|
$sth = $pdo->prepare($sql);
|
||||||
|
try {
|
||||||
|
$sth->execute($params);
|
||||||
|
} catch (PDOexception $e) {
|
||||||
|
$g_error->Add('SQL-Error: '. $e->getMessage());
|
||||||
|
$g_error->Add($sql);
|
||||||
|
$g_error->Add(print_r($params, true));
|
||||||
|
}
|
||||||
return $newsize;
|
return $newsize;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -23,3 +31,15 @@ function file_get_docname($docid, $doctype, $extension) {
|
|||||||
global $g_doc_typemap;
|
global $g_doc_typemap;
|
||||||
return sprintf('%s-%06d.%s', $g_doc_typemap[$doctype], $docid, $extension);
|
return sprintf('%s-%06d.%s', $g_doc_typemap[$doctype], $docid, $extension);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function dir_get_size($path) {
|
||||||
|
// gets the size of a directory in bytes recursively
|
||||||
|
$total = 0;
|
||||||
|
$iterator = new RecursiveIteratorIterator(
|
||||||
|
new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS)
|
||||||
|
);
|
||||||
|
foreach ($iterator as $file){
|
||||||
|
$total += $file->getSize();
|
||||||
|
}
|
||||||
|
return $total;
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1,112 @@
|
|||||||
|
<?php
|
||||||
|
/******************************************************************************
|
||||||
|
* YMS - Yacht Management Software
|
||||||
|
* Copyright (C) 2024-2026 Thomas Hooge
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: WTFPL
|
||||||
|
******************************************************************************
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
// ========== GPC FUNCTIONS ===================================================
|
||||||
|
|
||||||
|
function gpc_get_string(&$GPC, $varname, $maxlen = NULL, $default = NULL) {
|
||||||
|
// TODO Parameter nullval: single value or array of values which considered as null
|
||||||
|
// Default value for nullval is "-1"
|
||||||
|
if (!isset($GPC[$varname]) or (strlen(trim($GPC[$varname])) == 0)) {
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
$s = trim($GPC[$varname]);
|
||||||
|
if (isset($maxlen)) {
|
||||||
|
return substr($s, 0, $maxlen);
|
||||||
|
}
|
||||||
|
return $s;
|
||||||
|
}
|
||||||
|
|
||||||
|
function gpc_get_int(&$GPC, $varname, $default = NULL) {
|
||||||
|
if (!isset($GPC[$varname])) {
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
return (int)$GPC[$varname];
|
||||||
|
}
|
||||||
|
|
||||||
|
function gpc_get_float(&$GPC, $varname, $default = NULL) {
|
||||||
|
global $g_lconv;
|
||||||
|
if (!isset($GPC[$varname]) or (strlen(trim($GPC[$varname])) == 0)) {
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
$var = str_replace($g_lconv['thousands_sep'], '', $GPC[$varname]);
|
||||||
|
if ($g_lconv['decimal_point'] != '.') {
|
||||||
|
$var = str_replace($g_lconv['decimal_point'], '.', $var);
|
||||||
|
}
|
||||||
|
return (double)$var;
|
||||||
|
}
|
||||||
|
|
||||||
|
function gpc_get_currency(&$GPC, $varname, $default = NULL) {
|
||||||
|
global $g_lconv;
|
||||||
|
if (!isset($GPC[$varname]) or (strlen(trim($GPC[$varname])) == 0)) {
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
$var = str_replace($g_lconv['thousands_sep'], '', $GPC[$varname]);
|
||||||
|
if ($g_lconv['decimal_point'] != '.') {
|
||||||
|
$var = str_replace($g_lconv['decimal_point'], '.', $var);
|
||||||
|
}
|
||||||
|
return (double)$var;
|
||||||
|
}
|
||||||
|
|
||||||
|
function gpc_get_bool(&$GPC, $varname, $default = FALSE) {
|
||||||
|
if (!isset($GPC[$varname])) {
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
$gpcvar = trim($GPC[$varname]);
|
||||||
|
if (strcasecmp('off', $gpcvar) == 0 ||
|
||||||
|
strcasecmp('no', $gpcvar) == 0 ||
|
||||||
|
strcasecmp('false', $gpcvar) == 0 ||
|
||||||
|
strcasecmp('no', $gpcvar) == 0 ||
|
||||||
|
strcasecmp('0', $gpcvar) == 0 ||
|
||||||
|
strcasecmp('nein', $gpcvar) == 0)
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
function gpc_get_date(&$GPC, $varname, $default = NULL) {
|
||||||
|
// TODO improve
|
||||||
|
if (!isset($GPC[$varname]) || $GPC[$varname] == '') {
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
return $GPC[$varname];
|
||||||
|
}
|
||||||
|
|
||||||
|
function gpc_get_datetime(&$GPC, $varname, $default = NULL) {
|
||||||
|
// TODO improve
|
||||||
|
if (!isset($GPC[$varname]) || $GPC[$varname] == '') {
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
return $GPC[$varname];
|
||||||
|
}
|
||||||
|
|
||||||
|
function gpc_get_color(&$GPC, $varname, $default = NULL) {
|
||||||
|
if (!isset($GPC[$varname]) or (strlen(trim($GPC[$varname])) == 0)) {
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
$color = $GPC[$varname];
|
||||||
|
if ((strlen($color) == 7) and (substr($color, 0, 1) == '#')) {
|
||||||
|
$color = substr($color, 1);
|
||||||
|
}
|
||||||
|
if ((strlen($color) != 6) or (! ctype_xdigit($color))) {
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
return strtoupper($color);
|
||||||
|
}
|
||||||
|
|
||||||
|
function gpc_get_enum(&$GPC, $varname, $values, $default = NULL) {
|
||||||
|
if (!isset($GPC[$varname]) or (strlen(trim($GPC[$varname])) == 0)) {
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
if (! in_array($GPC[$varname], $values)) {
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
return $GPC[$varname];
|
||||||
|
}
|
||||||
+89
-86
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: YMS 0.1\n"
|
"Project-Id-Version: YMS 0.1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-06-14 10:11+0200\n"
|
"POT-Creation-Date: 2026-06-15 08:58+0200\n"
|
||||||
"PO-Revision-Date: 2024-03-15 13:50+0100\n"
|
"PO-Revision-Date: 2024-03-15 13:50+0100\n"
|
||||||
"Last-Translator: Thomas Hooge <thomas@hoogi.de>\n"
|
"Last-Translator: Thomas Hooge <thomas@hoogi.de>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@@ -44,24 +44,24 @@ msgstr "Farbe"
|
|||||||
msgid "Content"
|
msgid "Content"
|
||||||
msgstr "Inhalt"
|
msgstr "Inhalt"
|
||||||
|
|
||||||
#: box.php:94 box.php:175 box.php:198 equipment.php:406 index.php:329
|
#: box.php:94 box.php:175 box.php:198 equipment.php:405 index.php:329
|
||||||
#: index.php:345 inventory.php:359 provisions.php:272
|
#: index.php:345 inventory.php:359 provisions.php:272
|
||||||
msgid "Weight"
|
msgid "Weight"
|
||||||
msgstr "Gewicht"
|
msgstr "Gewicht"
|
||||||
|
|
||||||
#: box.php:102 box.php:177 company.php:205 company.php:284 documents.php:365
|
#: box.php:102 box.php:177 company.php:205 company.php:284 documents.php:365
|
||||||
#: documents.php:573 documents.php:575 equipment.php:328 equipment.php:402
|
#: documents.php:573 documents.php:575 equipment.php:327 equipment.php:401
|
||||||
#: equipment.php:492 equipment.php:515 equipment.php:537 inventory.php:253
|
#: equipment.php:492 equipment.php:515 equipment.php:537 inventory.php:253
|
||||||
#: maintenance.php:167 projects.php:197 projects.php:244 provisions.php:193
|
#: maintenance.php:167 projects.php:197 projects.php:244 provisions.php:193
|
||||||
#: storage.php:120 storage.php:164 storage.php:248 task.php:220 globals.inc:855
|
#: storage.php:120 storage.php:164 storage.php:248 task.php:220 globals.inc:875
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Ansehen"
|
msgstr "Ansehen"
|
||||||
|
|
||||||
#: box.php:111 company.php:212 documents.php:373 equipment.php:338
|
#: box.php:111 company.php:212 documents.php:373 equipment.php:337
|
||||||
#: equipment_js.php:243 index.php:286 inventory.php:264 maintenance.php:174
|
#: equipment_js.php:243 index.php:286 inventory.php:264 maintenance.php:174
|
||||||
#: maintenance.php:293 projects.php:206 projects.php:250 provisions.php:212
|
#: maintenance.php:293 projects.php:206 projects.php:250 provisions.php:212
|
||||||
#: storage.php:132 storage.php:171 task.php:228 task.php:303 globals.inc:856
|
#: storage.php:132 storage.php:171 task.php:228 task.php:303 globals.inc:876
|
||||||
#: globals.inc:872
|
#: globals.inc:892
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Bearbeiten"
|
msgstr "Bearbeiten"
|
||||||
|
|
||||||
@@ -78,13 +78,13 @@ msgstr "Kiste hinzufügen"
|
|||||||
|
|
||||||
#: box.php:135 box.php:176 index.php:369 inventory.php:188 inventory.php:296
|
#: box.php:135 box.php:176 index.php:369 inventory.php:188 inventory.php:296
|
||||||
#: inventory.php:300 inventory.php:402 provisions.php:250 provisions.php:278
|
#: inventory.php:300 inventory.php:402 provisions.php:250 provisions.php:278
|
||||||
#: provisions.php:326 storage.php:10 globals.inc:456
|
#: provisions.php:326 storage.php:10 globals.inc:457
|
||||||
msgid "Storage"
|
msgid "Storage"
|
||||||
msgstr "Stauraum"
|
msgstr "Stauraum"
|
||||||
|
|
||||||
#: box.php:149 box.php:179 box.php:251 company.php:195 company.php:270
|
#: box.php:149 box.php:179 box.php:251 company.php:195 company.php:270
|
||||||
#: company.php:407 documents.php:398 documents.php:501 documents.php:713
|
#: company.php:395 documents.php:398 documents.php:501 documents.php:713
|
||||||
#: equipment.php:310 equipment.php:373 equipment.php:411 equipment.php:600
|
#: equipment.php:309 equipment.php:372 equipment.php:410 equipment.php:600
|
||||||
#: equipment_js.php:65 index.php:405 index.php:491 inventory.php:363
|
#: equipment_js.php:65 index.php:405 index.php:491 inventory.php:363
|
||||||
#: inventory.php:430 maintenance.php:157 maintenance.php:257
|
#: inventory.php:430 maintenance.php:157 maintenance.php:257
|
||||||
#: maintenance.php:327 projects.php:187 projects.php:277 projects.php:301
|
#: maintenance.php:327 projects.php:187 projects.php:277 projects.php:301
|
||||||
@@ -92,23 +92,23 @@ msgstr "Stauraum"
|
|||||||
msgid "Remarks"
|
msgid "Remarks"
|
||||||
msgstr "Bemerkungen"
|
msgstr "Bemerkungen"
|
||||||
|
|
||||||
#: box.php:153 company.php:238 company.php:410 documents.php:423
|
#: box.php:153 company.php:238 company.php:398 documents.php:423
|
||||||
#: documents.php:716 equipment.php:377 equipment.php:603 equipment_js.php:112
|
#: documents.php:716 equipment.php:376 equipment.php:603 equipment_js.php:112
|
||||||
#: equipment_js.php:279 index.php:409 inventory.php:304 maintenance.php:215
|
#: equipment_js.php:279 index.php:409 inventory.php:304 maintenance.php:215
|
||||||
#: measurement.php:237 note.php:156 projects.php:280 projects.php:366
|
#: measurement.php:237 note.php:156 projects.php:280 projects.php:366
|
||||||
#: provisions.php:252 storage.php:204 storage.php:327 task.php:257
|
#: provisions.php:252 storage.php:204 storage.php:327 task.php:257
|
||||||
#: globals.inc:882 globals.inc:889
|
#: globals.inc:902 globals.inc:909
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Speichern"
|
msgstr "Speichern"
|
||||||
|
|
||||||
#: box.php:154 company.php:239 company.php:411 company.php:437
|
#: box.php:154 company.php:239 company.php:399 company.php:425
|
||||||
#: documents.php:424 documents.php:717 dropdown.php:205 dropdown.php:269
|
#: documents.php:424 documents.php:717 dropdown.php:205 dropdown.php:269
|
||||||
#: equipment.php:378 equipment.php:604 equipment_js.php:113
|
#: equipment.php:377 equipment.php:604 equipment_js.php:113
|
||||||
#: equipment_js.php:247 equipment_js.php:280 index.php:410 inventory.php:305
|
#: equipment_js.php:247 equipment_js.php:280 index.php:410 inventory.php:305
|
||||||
#: maintenance.php:216 measurement.php:238 note.php:157 projects.php:281
|
#: maintenance.php:216 measurement.php:238 note.php:157 projects.php:281
|
||||||
#: projects.php:367 provisions.php:253 search.php:34 storage.php:205
|
#: projects.php:367 provisions.php:253 search.php:34 storage.php:205
|
||||||
#: storage.php:328 task.php:258 globals.inc:876 globals.inc:883 globals.inc:890
|
#: storage.php:328 task.php:258 globals.inc:896 globals.inc:903 globals.inc:910
|
||||||
#: globals.inc:900
|
#: globals.inc:920
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Zurück"
|
msgstr "Zurück"
|
||||||
|
|
||||||
@@ -120,7 +120,7 @@ msgstr "Kistentyp"
|
|||||||
msgid "Inventory in box"
|
msgid "Inventory in box"
|
||||||
msgstr "Inventar in der Kiste"
|
msgstr "Inventar in der Kiste"
|
||||||
|
|
||||||
#: box.php:197 index.php:343 inventory.php:10 search.php:78 globals.inc:1259
|
#: box.php:197 index.php:343 inventory.php:10 search.php:78 globals.inc:1279
|
||||||
msgid "Inventory"
|
msgid "Inventory"
|
||||||
msgstr "Inventar"
|
msgstr "Inventar"
|
||||||
|
|
||||||
@@ -141,7 +141,7 @@ msgstr "Kiste bearbeiten"
|
|||||||
msgid "Weight, kg"
|
msgid "Weight, kg"
|
||||||
msgstr "Gewicht, kg"
|
msgstr "Gewicht, kg"
|
||||||
|
|
||||||
#: box.php:265 checklist.php:170 company.php:448 documents.php:746
|
#: box.php:265 checklist.php:170 company.php:436 documents.php:746
|
||||||
#: dropdown.php:275 equipment.php:630 equipment_js.php:289 index.php:502
|
#: dropdown.php:275 equipment.php:630 equipment_js.php:289 index.php:502
|
||||||
#: inventory.php:458 maintenance.php:343 measurement.php:322 note.php:223
|
#: inventory.php:458 maintenance.php:343 measurement.php:322 note.php:223
|
||||||
#: projects.php:379 provisions.php:340 settings.php:91 storage.php:354
|
#: projects.php:379 provisions.php:340 settings.php:91 storage.php:354
|
||||||
@@ -176,7 +176,7 @@ msgid "Edit checklist"
|
|||||||
msgstr "Checkliste bearbeiten"
|
msgstr "Checkliste bearbeiten"
|
||||||
|
|
||||||
#: checklist.php:153 company.php:193 company.php:234 company.php:257
|
#: checklist.php:153 company.php:193 company.php:234 company.php:257
|
||||||
#: company.php:330 dropdown.php:178 dropdown.php:224 equipment.php:361
|
#: company.php:330 dropdown.php:178 dropdown.php:224 equipment.php:360
|
||||||
#: equipment.php:567 equipment_js.php:97 equipment_js.php:264 index.php:397
|
#: equipment.php:567 equipment_js.php:97 equipment_js.php:264 index.php:397
|
||||||
#: inventory.php:239 inventory.php:285 inventory.php:388 measurement.php:209
|
#: inventory.php:239 inventory.php:285 inventory.php:388 measurement.php:209
|
||||||
#: measurement.php:256 measurement.php:286 projects.php:183 projects.php:231
|
#: measurement.php:256 measurement.php:286 projects.php:183 projects.php:231
|
||||||
@@ -217,30 +217,30 @@ msgstr "Unbekannte Funktion!"
|
|||||||
msgid "― all ―"
|
msgid "― all ―"
|
||||||
msgstr "― alle ―"
|
msgstr "― alle ―"
|
||||||
|
|
||||||
#: company.php:177 documents.php:335 equipment.php:289 inventory.php:224
|
#: company.php:177 documents.php:335 equipment.php:288 inventory.php:224
|
||||||
#: maintenance.php:109 measurement.php:158 projects.php:171 provisions.php:162
|
#: maintenance.php:109 measurement.php:158 projects.php:171 provisions.php:162
|
||||||
#: tag.php:96 task.php:194
|
#: tag.php:96 task.php:194
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr "Anwenden"
|
msgstr "Anwenden"
|
||||||
|
|
||||||
#: company.php:177 documents.php:335 equipment.php:289 inventory.php:224
|
#: company.php:177 documents.php:335 equipment.php:288 inventory.php:224
|
||||||
#: maintenance.php:109 measurement.php:158 projects.php:171 provisions.php:162
|
#: maintenance.php:109 measurement.php:158 projects.php:171 provisions.php:162
|
||||||
#: tag.php:96 task.php:194
|
#: tag.php:96 task.php:194
|
||||||
msgid "Go"
|
msgid "Go"
|
||||||
msgstr "Start"
|
msgstr "Start"
|
||||||
|
|
||||||
#: company.php:178 documents.php:336 equipment.php:290 inventory.php:225
|
#: company.php:178 documents.php:336 equipment.php:289 inventory.php:225
|
||||||
#: maintenance.php:110 projects.php:172 provisions.php:163 tag.php:97
|
#: maintenance.php:110 projects.php:172 provisions.php:163 tag.php:97
|
||||||
msgid "Reset filter to defaults"
|
msgid "Reset filter to defaults"
|
||||||
msgstr "Filter auf Standard zurücksetzen"
|
msgstr "Filter auf Standard zurücksetzen"
|
||||||
|
|
||||||
#: company.php:178 documents.php:336 documents.php:405 equipment.php:290
|
#: company.php:178 documents.php:336 documents.php:405 equipment.php:289
|
||||||
#: inventory.php:225 maintenance.php:110 projects.php:172 provisions.php:163
|
#: inventory.php:225 maintenance.php:110 projects.php:172 provisions.php:163
|
||||||
#: tag.php:97 task.php:195
|
#: tag.php:97 task.php:195
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr "Löschen"
|
msgstr "Löschen"
|
||||||
|
|
||||||
#: company.php:218 documents.php:379 equipment.php:344 inventory.php:270
|
#: company.php:218 documents.php:379 equipment.php:343 inventory.php:270
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Records %d to %d of %d"
|
msgid "Records %d to %d of %d"
|
||||||
msgstr "Datensätze %d bis %d von %d"
|
msgstr "Datensätze %d bis %d von %d"
|
||||||
@@ -253,7 +253,7 @@ msgstr "Firma hinzufügen"
|
|||||||
msgid "Company type"
|
msgid "Company type"
|
||||||
msgstr "Firmenart"
|
msgstr "Firmenart"
|
||||||
|
|
||||||
#: company.php:258 company.php:334 equipment.php:400 equipment.php:571
|
#: company.php:258 company.php:334 equipment.php:399 equipment.php:571
|
||||||
msgid "Short name"
|
msgid "Short name"
|
||||||
msgstr "Kurzbezeichnung"
|
msgstr "Kurzbezeichnung"
|
||||||
|
|
||||||
@@ -261,7 +261,7 @@ msgstr "Kurzbezeichnung"
|
|||||||
msgid "Secondary type"
|
msgid "Secondary type"
|
||||||
msgstr "Sekundärer Typ"
|
msgstr "Sekundärer Typ"
|
||||||
|
|
||||||
#: company.php:261 company.php:367
|
#: company.php:261 company.php:355
|
||||||
msgid "Street"
|
msgid "Street"
|
||||||
msgstr "Straße"
|
msgstr "Straße"
|
||||||
|
|
||||||
@@ -269,31 +269,31 @@ msgstr "Straße"
|
|||||||
msgid "Zip, City"
|
msgid "Zip, City"
|
||||||
msgstr "PLZ, Ort"
|
msgstr "PLZ, Ort"
|
||||||
|
|
||||||
#: company.php:263 company.php:379
|
#: company.php:263 company.php:367
|
||||||
msgid "Country"
|
msgid "Country"
|
||||||
msgstr "Land"
|
msgstr "Land"
|
||||||
|
|
||||||
#: company.php:264 company.php:383
|
#: company.php:264 company.php:371
|
||||||
msgid "Contact"
|
msgid "Contact"
|
||||||
msgstr "Ansprechparter"
|
msgstr "Ansprechparter"
|
||||||
|
|
||||||
#: company.php:265 company.php:387
|
#: company.php:265 company.php:375
|
||||||
msgid "Phone"
|
msgid "Phone"
|
||||||
msgstr "Telefon"
|
msgstr "Telefon"
|
||||||
|
|
||||||
#: company.php:266 company.php:391
|
#: company.php:266 company.php:379
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "Email"
|
msgstr "Email"
|
||||||
|
|
||||||
#: company.php:267 company.php:395
|
#: company.php:267 company.php:383
|
||||||
msgid "Web"
|
msgid "Web"
|
||||||
msgstr "Web"
|
msgstr "Web"
|
||||||
|
|
||||||
#: company.php:268 company.php:399
|
#: company.php:268 company.php:387
|
||||||
msgid "Customer no."
|
msgid "Customer no."
|
||||||
msgstr "Kundennr."
|
msgstr "Kundennr."
|
||||||
|
|
||||||
#: company.php:269 company.php:403
|
#: company.php:269 company.php:391
|
||||||
msgid "Contract no."
|
msgid "Contract no."
|
||||||
msgstr "Kontraktnr."
|
msgstr "Kontraktnr."
|
||||||
|
|
||||||
@@ -313,29 +313,29 @@ msgstr "Firma bearbeiten"
|
|||||||
msgid "Secondary company type"
|
msgid "Secondary company type"
|
||||||
msgstr "Sekundärer Firmentyp"
|
msgstr "Sekundärer Firmentyp"
|
||||||
|
|
||||||
#: company.php:371
|
#: company.php:359
|
||||||
msgid "Zip"
|
msgid "Zip"
|
||||||
msgstr "PLZ"
|
msgstr "PLZ"
|
||||||
|
|
||||||
#: company.php:375
|
#: company.php:363
|
||||||
msgid "City"
|
msgid "City"
|
||||||
msgstr "Stadt"
|
msgstr "Stadt"
|
||||||
|
|
||||||
#: company.php:423
|
#: company.php:411
|
||||||
msgid "Delete Company"
|
msgid "Delete Company"
|
||||||
msgstr "Firma löschen"
|
msgstr "Firma löschen"
|
||||||
|
|
||||||
#: company.php:424 documents.php:733 equipment.php:619 inventory.php:448
|
#: company.php:412 documents.php:733 equipment.php:619 inventory.php:448
|
||||||
#: note.php:214 storage.php:343
|
#: note.php:214 storage.php:343
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Record no. %d"
|
msgid "Record no. %d"
|
||||||
msgstr "Datensatz Nr. %d"
|
msgstr "Datensatz Nr. %d"
|
||||||
|
|
||||||
#: company.php:436
|
#: company.php:424
|
||||||
msgid "Company can not be deleted as there are equipment-references!"
|
msgid "Company can not be deleted as there are equipment-references!"
|
||||||
msgstr "Firma kann nicht gelöscht werden da Ausrüstung zugeordnet ist!"
|
msgstr "Firma kann nicht gelöscht werden da Ausrüstung zugeordnet ist!"
|
||||||
|
|
||||||
#: company.php:440
|
#: company.php:428
|
||||||
msgid ""
|
msgid ""
|
||||||
"Deleting a company is final. There is no way back. Only delete if you are "
|
"Deleting a company is final. There is no way back. Only delete if you are "
|
||||||
"absolute sure."
|
"absolute sure."
|
||||||
@@ -347,7 +347,7 @@ msgstr ""
|
|||||||
msgid "Cannot initialize new GD image stream"
|
msgid "Cannot initialize new GD image stream"
|
||||||
msgstr "Neuer GD Imagestream kann nicht initialisiert werden"
|
msgstr "Neuer GD Imagestream kann nicht initialisiert werden"
|
||||||
|
|
||||||
#: documents.php:12 index.php:349 task.php:314 globals.inc:1263
|
#: documents.php:12 index.php:349 task.php:314 globals.inc:1283
|
||||||
msgid "Documents"
|
msgid "Documents"
|
||||||
msgstr "Dokumente"
|
msgstr "Dokumente"
|
||||||
|
|
||||||
@@ -474,11 +474,11 @@ msgstr "Neue Referenz hinzufügen"
|
|||||||
#: inventory.php:428 maintenance.php:156 maintenance.php:202
|
#: inventory.php:428 maintenance.php:156 maintenance.php:202
|
||||||
#: maintenance.php:251 maintenance.php:325 measurement.php:234
|
#: maintenance.php:251 maintenance.php:325 measurement.php:234
|
||||||
#: measurement.php:265 measurement.php:311 search.php:50 globals.inc:429
|
#: measurement.php:265 measurement.php:311 search.php:50 globals.inc:429
|
||||||
#: globals.inc:1258
|
#: globals.inc:1278
|
||||||
msgid "Equipment"
|
msgid "Equipment"
|
||||||
msgstr "Ausrüstung"
|
msgstr "Ausrüstung"
|
||||||
|
|
||||||
#: documents.php:660 globals.inc:461
|
#: documents.php:660 globals.inc:462
|
||||||
msgid "Vessel"
|
msgid "Vessel"
|
||||||
msgstr "Yacht"
|
msgstr "Yacht"
|
||||||
|
|
||||||
@@ -530,7 +530,7 @@ msgstr "Gefahr! Nur anpassen wenn klar ist was für Auswirkungen das hat!"
|
|||||||
msgid "Adding values is usually not critical."
|
msgid "Adding values is usually not critical."
|
||||||
msgstr "Hinzufügen von Werten ist normalerweise unkritisch."
|
msgstr "Hinzufügen von Werten ist normalerweise unkritisch."
|
||||||
|
|
||||||
#: dropdown.php:147 equipment.php:305 equipment_js.php:61 provisions.php:177
|
#: dropdown.php:147 equipment.php:304 equipment_js.php:61 provisions.php:177
|
||||||
#: tag.php:112 tag.php:148 tag.php:170 tag.php:221
|
#: tag.php:112 tag.php:148 tag.php:170 tag.php:221
|
||||||
msgid "Description"
|
msgid "Description"
|
||||||
msgstr "Beschreibung"
|
msgstr "Beschreibung"
|
||||||
@@ -554,7 +554,7 @@ msgstr "Kurzbez."
|
|||||||
msgid "Sort"
|
msgid "Sort"
|
||||||
msgstr "Sortierung"
|
msgstr "Sortierung"
|
||||||
|
|
||||||
#: dropdown.php:182 equipment.php:282
|
#: dropdown.php:182 equipment.php:283 equipment.php:411
|
||||||
msgid "Flags"
|
msgid "Flags"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -563,7 +563,7 @@ msgstr ""
|
|||||||
msgid "Edit List: %s"
|
msgid "Edit List: %s"
|
||||||
msgstr "Liste bearbeiten: %s"
|
msgstr "Liste bearbeiten: %s"
|
||||||
|
|
||||||
#: dropdown.php:268 equipment_js.php:89 globals.inc:866
|
#: dropdown.php:268 equipment_js.php:89 globals.inc:886
|
||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr "Hinzufügen"
|
msgstr "Hinzufügen"
|
||||||
|
|
||||||
@@ -589,63 +589,63 @@ msgstr "Keine Dateien zum Hochladen angegeben"
|
|||||||
msgid "Filetype not allowed for upload:"
|
msgid "Filetype not allowed for upload:"
|
||||||
msgstr "Dateityp nicht zum Hochladen zugelassen:"
|
msgstr "Dateityp nicht zum Hochladen zugelassen:"
|
||||||
|
|
||||||
#: equipment.php:263
|
#: equipment.php:265
|
||||||
msgctxt "male"
|
msgctxt "male"
|
||||||
msgid "― none ―"
|
msgid "― none ―"
|
||||||
msgstr "― keiner ―"
|
msgstr "― keiner ―"
|
||||||
|
|
||||||
#: equipment.php:270 equipment.php:365 equipment.php:410 equipment.php:597
|
#: equipment.php:272 equipment.php:364 equipment.php:409 equipment.php:597
|
||||||
#: provisions.php:154 provisions.php:275 provisions.php:315
|
#: provisions.php:154 provisions.php:275 provisions.php:315
|
||||||
msgid "Category"
|
msgid "Category"
|
||||||
msgstr "Kategorie"
|
msgstr "Kategorie"
|
||||||
|
|
||||||
#: equipment.php:271 equipment.php:306 equipment.php:366 equipment.php:401
|
#: equipment.php:273 equipment.php:305 equipment.php:365 equipment.php:400
|
||||||
#: equipment.php:574
|
#: equipment.php:574
|
||||||
msgid "Manufacturer"
|
msgid "Manufacturer"
|
||||||
msgstr "Hersteller"
|
msgstr "Hersteller"
|
||||||
|
|
||||||
#: equipment.php:272 equipment.php:409 equipment.php:596
|
#: equipment.php:274 equipment.php:408 equipment.php:596
|
||||||
msgid "Supplier"
|
msgid "Supplier"
|
||||||
msgstr "Lieferant"
|
msgstr "Lieferant"
|
||||||
|
|
||||||
#: equipment.php:275
|
#: equipment.php:277
|
||||||
msgid "Text"
|
msgid "Text"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: equipment.php:307 equipment.php:369 equipment.php:404 equipment.php:576
|
#: equipment.php:306 equipment.php:368 equipment.php:403 equipment.php:576
|
||||||
#: equipment_js.php:63 equipment_js.php:105 equipment_js.php:134
|
#: equipment_js.php:63 equipment_js.php:105 equipment_js.php:134
|
||||||
#: equipment_js.php:272 index.php:401 index.php:444
|
#: equipment_js.php:272 index.php:401 index.php:444
|
||||||
msgid "Model"
|
msgid "Model"
|
||||||
msgstr "Modell"
|
msgstr "Modell"
|
||||||
|
|
||||||
#: equipment.php:308 equipment.php:405 equipment.php:580 equipment_js.php:64
|
#: equipment.php:307 equipment.php:404 equipment.php:580 equipment_js.php:64
|
||||||
#: equipment_js.php:109 equipment_js.php:135 equipment_js.php:276
|
#: equipment_js.php:109 equipment_js.php:135 equipment_js.php:276
|
||||||
msgid "Serial"
|
msgid "Serial"
|
||||||
msgstr "Seriennummer"
|
msgstr "Seriennummer"
|
||||||
|
|
||||||
#: equipment.php:309
|
#: equipment.php:308
|
||||||
msgid "Age"
|
msgid "Age"
|
||||||
msgstr "Alter"
|
msgstr "Alter"
|
||||||
|
|
||||||
#: equipment.php:321
|
#: equipment.php:320
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%dm"
|
msgid "%dm"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: equipment.php:323
|
#: equipment.php:322
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%dy"
|
msgid "%dy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: equipment.php:358 equipment_js.php:94
|
#: equipment.php:357 equipment_js.php:94
|
||||||
msgid "Add Equipment"
|
msgid "Add Equipment"
|
||||||
msgstr "Ausrüstung hinzufügen"
|
msgstr "Ausrüstung hinzufügen"
|
||||||
|
|
||||||
#: equipment.php:407 inventory.php:360
|
#: equipment.php:406 inventory.php:360
|
||||||
msgid "Price"
|
msgid "Price"
|
||||||
msgstr "Preis"
|
msgstr "Preis"
|
||||||
|
|
||||||
#: equipment.php:408 equipment.php:592 inventory.php:361 inventory.php:410
|
#: equipment.php:407 equipment.php:592 inventory.php:361 inventory.php:410
|
||||||
msgid "Purchase date"
|
msgid "Purchase date"
|
||||||
msgstr "Kaufdatum"
|
msgstr "Kaufdatum"
|
||||||
|
|
||||||
@@ -654,7 +654,6 @@ msgid "Images and documents"
|
|||||||
msgstr "Bilder und Dokumente"
|
msgstr "Bilder und Dokumente"
|
||||||
|
|
||||||
#: equipment.php:459
|
#: equipment.php:459
|
||||||
#, fuzzy
|
|
||||||
msgid "No referenced documents"
|
msgid "No referenced documents"
|
||||||
msgstr "Keine verknüpften Dokumente"
|
msgstr "Keine verknüpften Dokumente"
|
||||||
|
|
||||||
@@ -720,7 +719,7 @@ msgstr ""
|
|||||||
msgid "Make"
|
msgid "Make"
|
||||||
msgstr "Marke"
|
msgstr "Marke"
|
||||||
|
|
||||||
#: equipment_js.php:245 globals.inc:874 globals.inc:899
|
#: equipment_js.php:245 globals.inc:894 globals.inc:919
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Löschen"
|
msgstr "Löschen"
|
||||||
|
|
||||||
@@ -750,7 +749,7 @@ msgstr "Neues Boot %d ausgewählt"
|
|||||||
msgid "Yacht data"
|
msgid "Yacht data"
|
||||||
msgstr "Yachtdaten"
|
msgstr "Yachtdaten"
|
||||||
|
|
||||||
#: index.php:101 globals.inc:460
|
#: index.php:101 globals.inc:461
|
||||||
msgid "User"
|
msgid "User"
|
||||||
msgstr "Benutzer"
|
msgstr "Benutzer"
|
||||||
|
|
||||||
@@ -822,7 +821,7 @@ msgstr "Stammdaten"
|
|||||||
msgid "Selection lists"
|
msgid "Selection lists"
|
||||||
msgstr "Auswahllisten"
|
msgstr "Auswahllisten"
|
||||||
|
|
||||||
#: index.php:368 inventory.php:243 tag.php:10 globals.inc:907
|
#: index.php:368 inventory.php:243 tag.php:10 globals.inc:927
|
||||||
msgid "Tags"
|
msgid "Tags"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -974,7 +973,7 @@ msgstr ""
|
|||||||
msgid "New login"
|
msgid "New login"
|
||||||
msgstr "Neue Anmeldung"
|
msgstr "Neue Anmeldung"
|
||||||
|
|
||||||
#: maintenance.php:10 globals.inc:1261
|
#: maintenance.php:10 globals.inc:1281
|
||||||
msgid "Maintenance"
|
msgid "Maintenance"
|
||||||
msgstr "Wartung"
|
msgstr "Wartung"
|
||||||
|
|
||||||
@@ -1023,7 +1022,7 @@ msgstr "Wartung bearbeiten"
|
|||||||
msgid "Delete Maintenance"
|
msgid "Delete Maintenance"
|
||||||
msgstr "Wartung löschen"
|
msgstr "Wartung löschen"
|
||||||
|
|
||||||
#: measurement.php:17 globals.inc:459
|
#: measurement.php:17 globals.inc:460
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Unbekannt"
|
msgstr "Unbekannt"
|
||||||
|
|
||||||
@@ -1035,7 +1034,7 @@ msgstr "Präzise"
|
|||||||
msgid "Normal"
|
msgid "Normal"
|
||||||
msgstr "Normal"
|
msgstr "Normal"
|
||||||
|
|
||||||
#: measurement.php:20 globals.inc:455
|
#: measurement.php:20 globals.inc:456
|
||||||
msgid "Rough"
|
msgid "Rough"
|
||||||
msgstr "Grob"
|
msgstr "Grob"
|
||||||
|
|
||||||
@@ -1165,7 +1164,7 @@ msgstr ""
|
|||||||
"Löschen einer Notiz ist endgültig. Es gibt keinen Weg zurück. Nur löschen "
|
"Löschen einer Notiz ist endgültig. Es gibt keinen Weg zurück. Nur löschen "
|
||||||
"wenn Sie sich absolut sicher sind."
|
"wenn Sie sich absolut sicher sind."
|
||||||
|
|
||||||
#: projects.php:10 globals.inc:1262
|
#: projects.php:10 globals.inc:1282
|
||||||
msgid "Projects"
|
msgid "Projects"
|
||||||
msgstr "Projekte"
|
msgstr "Projekte"
|
||||||
|
|
||||||
@@ -1198,7 +1197,7 @@ msgid "Assigned tasks"
|
|||||||
msgstr "Zugeordnete Aufgaben"
|
msgstr "Zugeordnete Aufgaben"
|
||||||
|
|
||||||
#: projects.php:316 task.php:10 task.php:205 task.php:253 task.php:278
|
#: projects.php:316 task.php:10 task.php:205 task.php:253 task.php:278
|
||||||
#: globals.inc:457
|
#: globals.inc:458
|
||||||
msgid "Task"
|
msgid "Task"
|
||||||
msgstr "Aufgabe"
|
msgstr "Aufgabe"
|
||||||
|
|
||||||
@@ -1222,7 +1221,7 @@ msgstr "Status"
|
|||||||
msgid "Delete Project"
|
msgid "Delete Project"
|
||||||
msgstr "Lösche Projekt"
|
msgstr "Lösche Projekt"
|
||||||
|
|
||||||
#: provisions.php:10 globals.inc:1260
|
#: provisions.php:10 globals.inc:1280
|
||||||
msgid "Provisions"
|
msgid "Provisions"
|
||||||
msgstr "Proviant"
|
msgstr "Proviant"
|
||||||
|
|
||||||
@@ -1262,7 +1261,7 @@ msgstr "Nettogewicht, kg"
|
|||||||
msgid "Delete provisions"
|
msgid "Delete provisions"
|
||||||
msgstr "Proviant löschen"
|
msgstr "Proviant löschen"
|
||||||
|
|
||||||
#: search.php:10 search.php:30 globals.inc:1178
|
#: search.php:10 search.php:30 globals.inc:1198
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Suche"
|
msgstr "Suche"
|
||||||
|
|
||||||
@@ -1609,77 +1608,81 @@ msgid "Planned"
|
|||||||
msgstr "Geplant"
|
msgstr "Geplant"
|
||||||
|
|
||||||
#: globals.inc:454
|
#: globals.inc:454
|
||||||
|
msgid "Removed"
|
||||||
|
msgstr "Entfernt"
|
||||||
|
|
||||||
|
#: globals.inc:455
|
||||||
msgid "Repairable"
|
msgid "Repairable"
|
||||||
msgstr "Reparierbar"
|
msgstr "Reparierbar"
|
||||||
|
|
||||||
#: globals.inc:458
|
#: globals.inc:459
|
||||||
msgid "Trimaran"
|
msgid "Trimaran"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: globals.inc:462
|
#: globals.inc:463
|
||||||
msgid "waiting"
|
msgid "waiting"
|
||||||
msgstr "wartend"
|
msgstr "wartend"
|
||||||
|
|
||||||
#: globals.inc:910
|
#: globals.inc:930
|
||||||
msgid "Tag assignment"
|
msgid "Tag assignment"
|
||||||
msgstr "Tag-Zuordnung"
|
msgstr "Tag-Zuordnung"
|
||||||
|
|
||||||
#: globals.inc:914
|
#: globals.inc:934
|
||||||
msgid "(Separate by comma)"
|
msgid "(Separate by comma)"
|
||||||
msgstr "(Getrennt mit Komma)"
|
msgstr "(Getrennt mit Komma)"
|
||||||
|
|
||||||
#: globals.inc:1081
|
#: globals.inc:1101
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%d B"
|
msgid "%d B"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: globals.inc:1083
|
#: globals.inc:1103
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%.1f kB"
|
msgid "%.1f kB"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: globals.inc:1085
|
#: globals.inc:1105
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%.1f MB"
|
msgid "%.1f MB"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: globals.inc:1090 globals.inc:1099
|
#: globals.inc:1110 globals.inc:1119
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%d Byte"
|
msgid "%d Byte"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: globals.inc:1092
|
#: globals.inc:1112
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%.1f kByte"
|
msgid "%.1f kByte"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: globals.inc:1094
|
#: globals.inc:1114
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%.1f MByte"
|
msgid "%.1f MByte"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: globals.inc:1101
|
#: globals.inc:1121
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "approx. %.1f kByte"
|
msgid "approx. %.1f kByte"
|
||||||
msgstr "ca. %.1f kByte"
|
msgstr "ca. %.1f kByte"
|
||||||
|
|
||||||
#: globals.inc:1103
|
#: globals.inc:1123
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "approx. %.1f MByte"
|
msgid "approx. %.1f MByte"
|
||||||
msgstr "ca. %.1f MByte"
|
msgstr "ca. %.1f MByte"
|
||||||
|
|
||||||
#: globals.inc:1206 globals.inc:1209
|
#: globals.inc:1226 globals.inc:1229
|
||||||
msgid "First"
|
msgid "First"
|
||||||
msgstr "Erster"
|
msgstr "Erster"
|
||||||
|
|
||||||
#: globals.inc:1207 globals.inc:1210
|
#: globals.inc:1227 globals.inc:1230
|
||||||
msgid "Previous"
|
msgid "Previous"
|
||||||
msgstr "Zurück"
|
msgstr "Zurück"
|
||||||
|
|
||||||
#: globals.inc:1225 globals.inc:1228
|
#: globals.inc:1245 globals.inc:1248
|
||||||
msgid "Next"
|
msgid "Next"
|
||||||
msgstr "Vor"
|
msgstr "Vor"
|
||||||
|
|
||||||
#: globals.inc:1226 globals.inc:1229
|
#: globals.inc:1246 globals.inc:1249
|
||||||
msgid "Last"
|
msgid "Last"
|
||||||
msgstr "Letzter"
|
msgstr "Letzter"
|
||||||
|
|||||||
Binary file not shown.
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* YMS - Yacht Management Software
|
* YMS - Yacht Management Software
|
||||||
* Copyright (C) 2024 Thomas Hooge
|
* Copyright (C) 2024-2026 Thomas Hooge
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: WTFPL
|
* SPDX-License-Identifier: WTFPL
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|||||||
+16
-6
@@ -1,17 +1,20 @@
|
|||||||
<?php
|
<?php
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* YMS - Yacht Management Software
|
* YMS - Yacht Management Software
|
||||||
* Copyright (C) 2024 Thomas Hooge
|
* Copyright (C) 2024-2026 Thomas Hooge
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: WTFPL
|
* SPDX-License-Identifier: WTFPL
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
require 'globals.inc';
|
require 'globals.inc';
|
||||||
|
require 'lib/gpc.inc';
|
||||||
|
|
||||||
$pagetitle = _('Maintenance');
|
$pagetitle = _('Maintenance');
|
||||||
|
|
||||||
$id = gpc_get_int($_REQUEST, 'id', 0);
|
$id = gpc_get_int($_REQUEST, 'id', 0);
|
||||||
|
|
||||||
$opt_equipment = db_get_opt_equip($user->vid, [0 => _('*** unassigned ***')]);
|
$opt_equipment = db_get_opt_equip($user->vid, [0 => _('*** unassigned ***')]);
|
||||||
|
$opt_state = db_load_enum('maintenance', 'maintstate', true, true);
|
||||||
|
|
||||||
// ========== ACTIONS START ===================================================
|
// ========== ACTIONS START ===================================================
|
||||||
|
|
||||||
@@ -50,6 +53,8 @@ switch ($submit = form_get_action()) {
|
|||||||
$p[':eid'] = gpc_get_int($_POST, 'eid');
|
$p[':eid'] = gpc_get_int($_POST, 'eid');
|
||||||
$p[':activities'] = gpc_get_string($_POST, 'activities', 80);
|
$p[':activities'] = gpc_get_string($_POST, 'activities', 80);
|
||||||
$p[':remarks'] = gpc_get_string($_POST, 'remarks', 150);
|
$p[':remarks'] = gpc_get_string($_POST, 'remarks', 150);
|
||||||
|
$p[':series'] = gpc_get_int($_POST, 'series');
|
||||||
|
$p[':maintstate'] = gpc_get_string($_POST, 'maintstate');
|
||||||
db_exec_update('maintenance', $p, 'maintid');
|
db_exec_update('maintenance', $p, 'maintid');
|
||||||
$action = ACT_VIEW;
|
$action = ACT_VIEW;
|
||||||
break;
|
break;
|
||||||
@@ -87,7 +92,7 @@ $opt_special = array(
|
|||||||
<div class="card-header"><i class="bi bi-funnel me-2"></i>Filter</div>
|
<div class="card-header"><i class="bi bi-funnel me-2"></i>Filter</div>
|
||||||
<div class="card-body d-flex flex-wrap gap-3">
|
<div class="card-body d-flex flex-wrap gap-3">
|
||||||
<div class="d-flex flex-nowrap gap-2">
|
<div class="d-flex flex-nowrap gap-2">
|
||||||
<label for="flt_equip">Equipment</label>
|
<label for="flt_equip"><?=_('Equipment')?></label>
|
||||||
<select id="flt_equip" name="flt_equip">
|
<select id="flt_equip" name="flt_equip">
|
||||||
<?php
|
<?php
|
||||||
foreach ($opt_special + $opt_equipment as $k => $v) {
|
foreach ($opt_special + $opt_equipment as $k => $v) {
|
||||||
@@ -222,7 +227,7 @@ elseif ($action == ACT_VIEW):
|
|||||||
|
|
||||||
echo '<h2>', _('View Maintenance'), "</h2>\n";
|
echo '<h2>', _('View Maintenance'), "</h2>\n";
|
||||||
|
|
||||||
$sql = "SELECT m.activities, m.eid, m.remarks, e.ename "
|
$sql = "SELECT m.activities, m.eid, m.remarks, m.series, m.maintstate, e.ename "
|
||||||
. "FROM maintenance AS m LEFT OUTER JOIN equipment AS e USING (eid) "
|
. "FROM maintenance AS m LEFT OUTER JOIN equipment AS e USING (eid) "
|
||||||
. "WHERE m.maintid=?";
|
. "WHERE m.maintid=?";
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
@@ -255,6 +260,8 @@ if (isset($maint->eid) and $maint->eid>0) {
|
|||||||
}
|
}
|
||||||
echo "</td></tr>\n";
|
echo "</td></tr>\n";
|
||||||
echo '<tr><th>', _('Remarks'),"</th><td>", $maint->remarks, "</td></tr>\n";
|
echo '<tr><th>', _('Remarks'),"</th><td>", $maint->remarks, "</td></tr>\n";
|
||||||
|
echo '<tr><th>', _('Series'),"</th><td>", $maint->series, "</td></tr>\n";
|
||||||
|
echo '<tr><th scope="row">', _('State'),"</th><td>", get_enum($maint->maintstate), "</td></tr>\n";
|
||||||
echo "</table>\n";
|
echo "</table>\n";
|
||||||
|
|
||||||
echo '</div>'; // Column break
|
echo '</div>'; // Column break
|
||||||
@@ -301,12 +308,10 @@ echo '<a href="note.php?f=add&t=maint&id=', $id, '" class="btn btn-primary" role
|
|||||||
echo _('Add note'), "</a>\n";
|
echo _('Add note'), "</a>\n";
|
||||||
echo "</div>\n";
|
echo "</div>\n";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
elseif ($action == ACT_EDIT):
|
elseif ($action == ACT_EDIT):
|
||||||
// ========== VARIANT: edit single record =====================================
|
// ========== VARIANT: edit single record =====================================
|
||||||
|
|
||||||
$sql = "SELECT activities, eid, remarks "
|
$sql = "SELECT activities, eid, remarks, series, maintstate "
|
||||||
. "FROM maintenance "
|
. "FROM maintenance "
|
||||||
. "WHERE maintid=?";
|
. "WHERE maintid=?";
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
@@ -327,7 +332,12 @@ echo '<h2>', _('Edit Maintenance'), "</h2>\n";
|
|||||||
<label for="remarks" class="form-label"><?=_('Remarks')?></label>
|
<label for="remarks" class="form-label"><?=_('Remarks')?></label>
|
||||||
<textarea class="form-control" id="remarks" name="remarks" rows="3"><?=$maint->remarks ?></textarea>
|
<textarea class="form-control" id="remarks" name="remarks" rows="3"><?=$maint->remarks ?></textarea>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="series" class="form-label"><?=_('Series')?></label>
|
||||||
|
<input type="text" class="form-control" id="series" name="series" maxlength="4" value="<?=$maint->series ?>">
|
||||||
|
</div>
|
||||||
<?php
|
<?php
|
||||||
|
form_create_select('maintstate', _('Status'), $opt_state, $maint->maintstate);
|
||||||
|
|
||||||
form_edit_buttons($g_scriptname, $id);
|
form_edit_buttons($g_scriptname, $id);
|
||||||
echo "</form>\n";
|
echo "</form>\n";
|
||||||
|
|||||||
+7
-2
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* YMS - Yacht Management Software
|
* YMS - Yacht Management Software
|
||||||
* Copyright (C) 2024 Thomas Hooge
|
* Copyright (C) 2024-2026 Thomas Hooge
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: WTFPL
|
* SPDX-License-Identifier: WTFPL
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
@@ -14,7 +14,11 @@ require 'header.php';
|
|||||||
|
|
||||||
<h1>Yacht Management System</h1>
|
<h1>Yacht Management System</h1>
|
||||||
|
|
||||||
<p>Hinweis: Es handelt sich hier um einen Prototyp!</p>
|
<p class="p-3 mb-3 bg-info-subtle border border-info-subtle rounded">
|
||||||
|
<i class="bi bi-info-circle-fill me-2"></i>
|
||||||
|
Hinweis: Es handelt sich hier um einen Prototypen!
|
||||||
|
Einige Funktionen sind noch nicht oder nicht vollständig implementiert.
|
||||||
|
Rückmeldungen sind immer willkommen!</p>
|
||||||
|
|
||||||
<h2>Integriertes Handbuch</h2>
|
<h2>Integriertes Handbuch</h2>
|
||||||
|
|
||||||
@@ -128,6 +132,7 @@ Es handelt sich um die Eingabemöglichkeit in ein einzelnes Textfeld.</p>
|
|||||||
|
|
||||||
<h3>Benutzer</h3>
|
<h3>Benutzer</h3>
|
||||||
<p>Benutzer können nicht über die Web-GUI eingerichtet werden.</p>
|
<p>Benutzer können nicht über die Web-GUI eingerichtet werden.</p>
|
||||||
|
<p>Eine Kennwortänderung ist ebenfalls nicht über die Web-GUI möglich.</p>
|
||||||
<p>Es gibt die Berechtigungsebenen <em>Kapitän (captain)</em>,
|
<p>Es gibt die Berechtigungsebenen <em>Kapitän (captain)</em>,
|
||||||
<em>Steuermann (helmsman)</em> und <em>Matrose (sailor)</em>.
|
<em>Steuermann (helmsman)</em> und <em>Matrose (sailor)</em>.
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* YMS - Yacht Management Software
|
* YMS - Yacht Management Software
|
||||||
* Copyright (C) 2024 Thomas Hooge
|
* Copyright (C) 2024-2026 Thomas Hooge
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: WTFPL
|
* SPDX-License-Identifier: WTFPL
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
require 'globals.inc';
|
require 'globals.inc';
|
||||||
|
require 'lib/gpc.inc';
|
||||||
|
|
||||||
$pagetitle = _('Measurements');
|
$pagetitle = _('Measurements');
|
||||||
|
|
||||||
$id = gpc_get_int($_REQUEST, 'id', 0);
|
$id = gpc_get_int($_REQUEST, 'id', 0);
|
||||||
|
|||||||
+3
-1
@@ -1,12 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* YMS - Yacht Management Software
|
* YMS - Yacht Management Software
|
||||||
* Copyright (C) 2024 Thomas Hooge
|
* Copyright (C) 2024-2026 Thomas Hooge
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: WTFPL
|
* SPDX-License-Identifier: WTFPL
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
require 'globals.inc';
|
require 'globals.inc';
|
||||||
|
require 'lib/gpc.inc';
|
||||||
|
|
||||||
$pagetitle = _('Note');
|
$pagetitle = _('Note');
|
||||||
|
|
||||||
$id = gpc_get_int($_REQUEST, 'id', 0);
|
$id = gpc_get_int($_REQUEST, 'id', 0);
|
||||||
|
|||||||
+25
-14
@@ -1,12 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* YMS - Yacht Management Software
|
* YMS - Yacht Management Software
|
||||||
* Copyright (C) 2024-2025 Thomas Hooge
|
* Copyright (C) 2024-2026 Thomas Hooge
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: WTFPL
|
* SPDX-License-Identifier: WTFPL
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
require 'globals.inc';
|
require 'globals.inc';
|
||||||
|
require 'lib/gpc.inc';
|
||||||
|
|
||||||
$pagetitle = _('Projects');
|
$pagetitle = _('Projects');
|
||||||
|
|
||||||
$id = gpc_get_int($_REQUEST, 'id', 0);
|
$id = gpc_get_int($_REQUEST, 'id', 0);
|
||||||
@@ -199,7 +201,7 @@ foreach ($res as $row) {
|
|||||||
echo "<td>". $row['projname'] ."</td>\n";
|
echo "<td>". $row['projname'] ."</td>\n";
|
||||||
echo "<td>". $row['startdate'] ."</td>\n";
|
echo "<td>". $row['startdate'] ."</td>\n";
|
||||||
echo "<td>". $row['duration'] ."</td>\n";
|
echo "<td>". $row['duration'] ."</td>\n";
|
||||||
echo "<td>". $row['projstate'] ."</td>\n";
|
echo "<td>". get_enum($row['projstate']) ."</td>\n";
|
||||||
echo "<td>". $row['remarks'] ."</td>\n";
|
echo "<td>". $row['remarks'] ."</td>\n";
|
||||||
// Edit current record button
|
// Edit current record button
|
||||||
echo "<td>";
|
echo "<td>";
|
||||||
@@ -228,8 +230,8 @@ echo '<table class="table table-striped">', "\n";
|
|||||||
echo "<thead>\n";
|
echo "<thead>\n";
|
||||||
echo "<tr>";
|
echo "<tr>";
|
||||||
echo '<th>#</th>';
|
echo '<th>#</th>';
|
||||||
echo "<th>" . _('Name') . "</th>";
|
echo "<th>", _('Name'), "</th>";
|
||||||
echo "<th>" . _('State') . "</th>";
|
echo "<th>", _('State'), "</th>";
|
||||||
echo "</tr>\n";
|
echo "</tr>\n";
|
||||||
echo "</thead>\n";
|
echo "</thead>\n";
|
||||||
|
|
||||||
@@ -243,8 +245,8 @@ foreach ($res as $row) {
|
|||||||
echo '<td>', $i;
|
echo '<td>', $i;
|
||||||
echo '<a class="text-nowrap" title="', _('View'), '" href="task.php?f=view&id=', $row['taskid'], '"><i class="bi bi-eye ms-2"></i></a>', "\n";
|
echo '<a class="text-nowrap" title="', _('View'), '" href="task.php?f=view&id=', $row['taskid'], '"><i class="bi bi-eye ms-2"></i></a>', "\n";
|
||||||
echo "</td>\n";
|
echo "</td>\n";
|
||||||
echo "<td>". $row['taskname'] ."</td>\n";
|
echo "<td>", $row['taskname'], "</td>\n";
|
||||||
echo "<td>". $row['taskstate'] ."</td>\n";
|
echo "<td>", get_enum($row['taskstate']), "</td>\n";
|
||||||
// Edit current record button
|
// Edit current record button
|
||||||
echo "<td>";
|
echo "<td>";
|
||||||
echo '<a title="', _('Edit'), '" href="task.php?f=edit&id=', $row['taskid'], '"><i class="bi-pencil"></i></a>', "\n";
|
echo '<a title="', _('Edit'), '" href="task.php?f=edit&id=', $row['taskid'], '"><i class="bi-pencil"></i></a>', "\n";
|
||||||
@@ -297,7 +299,7 @@ echo '<tr><th scope="row" style="width:20%">', _('Name'),"</th><td>", $project->
|
|||||||
echo '<tr><th scope="row">', _('Responsible'),"</th><td>", $opt_user[$project->responsible], "</td></tr>\n";
|
echo '<tr><th scope="row">', _('Responsible'),"</th><td>", $opt_user[$project->responsible], "</td></tr>\n";
|
||||||
echo '<tr><th scope="row">', _('Start date'),"</th><td>", $project->startdate, "</td></tr>\n";
|
echo '<tr><th scope="row">', _('Start date'),"</th><td>", $project->startdate, "</td></tr>\n";
|
||||||
echo '<tr><th scope="row">', _('Duration'),"</th><td>", $project->duration, "</td></tr>\n";
|
echo '<tr><th scope="row">', _('Duration'),"</th><td>", $project->duration, "</td></tr>\n";
|
||||||
echo '<tr><th scope="row">', _('State'),"</th><td>", $project->projstate, "</td></tr>\n";
|
echo '<tr><th scope="row">', _('State'),"</th><td>", get_enum($project->projstate), "</td></tr>\n";
|
||||||
echo '<tr><th scope="row">', _('Remarks'),"</th><td>", nl2br($project->remarks), "</td></tr>\n";
|
echo '<tr><th scope="row">', _('Remarks'),"</th><td>", nl2br($project->remarks), "</td></tr>\n";
|
||||||
echo "</table>\n";
|
echo "</table>\n";
|
||||||
|
|
||||||
@@ -309,21 +311,30 @@ echo "<h2>", _('Assigned tasks'), "</h2>\n";
|
|||||||
$sql = "SELECT taskid, taskname FROM task WHERE projid=? ORDER BY taskname";
|
$sql = "SELECT taskid, taskname FROM task WHERE projid=? ORDER BY taskname";
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
$sth->execute([$id]);
|
$sth->execute([$id]);
|
||||||
|
$res = $sth->fetchAll();
|
||||||
|
if (empty($res)) {
|
||||||
|
echo "<p>", _('No assigned tasks found.'),"</p>\n";
|
||||||
|
} else {
|
||||||
?>
|
?>
|
||||||
<table class="table table-sm">
|
<table class="table table-sm">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
<th>#</th>
|
||||||
<th><?=_('Task')?></th>
|
<th><?=_('Task')?></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<?php foreach ($sth->fetchAll() as $row): ?>
|
|
||||||
<tr>
|
|
||||||
<td><?=$row['taskname']?></td>
|
|
||||||
<?php form_action_buttons('task.php', $row['taskid']); ?>
|
|
||||||
</tr>
|
|
||||||
<?php endforeach; ?>
|
|
||||||
</table>
|
|
||||||
<?php
|
<?php
|
||||||
|
$i = 1;
|
||||||
|
foreach ($res as $row) {
|
||||||
|
echo "<tr>";
|
||||||
|
echo "<td>", $i++, "</td>";
|
||||||
|
echo "<td>", $row['taskname'], "</td>";
|
||||||
|
form_action_buttons('task.php', $row['taskid']);
|
||||||
|
echo "</tr>\n";
|
||||||
|
} // endforeach;
|
||||||
|
echo "</table>\n";
|
||||||
|
} // not empty
|
||||||
|
|
||||||
form_add_button('task.php', $id, 'projid');
|
form_add_button('task.php', $id, 'projid');
|
||||||
|
|
||||||
elseif ($action == ACT_EDIT):
|
elseif ($action == ACT_EDIT):
|
||||||
|
|||||||
@@ -7,6 +7,8 @@
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
require 'globals.inc';
|
require 'globals.inc';
|
||||||
|
require 'lib/gpc.inc';
|
||||||
|
|
||||||
$pagetitle=_('Provisions');
|
$pagetitle=_('Provisions');
|
||||||
|
|
||||||
$id = gpc_get_int($_REQUEST, 'id', 0);
|
$id = gpc_get_int($_REQUEST, 'id', 0);
|
||||||
|
|||||||
+3
-1
@@ -1,12 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* YMS - Yacht Management Software
|
* YMS - Yacht Management Software
|
||||||
* Copyright (C) 2024 Thomas Hooge
|
* Copyright (C) 2024-2026 Thomas Hooge
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: WTFPL
|
* SPDX-License-Identifier: WTFPL
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
require 'globals.inc';
|
require 'globals.inc';
|
||||||
|
require 'lib/gpc.inc';
|
||||||
|
|
||||||
$pagetitle = _('Search');
|
$pagetitle = _('Search');
|
||||||
|
|
||||||
$needle = gpc_get_string($_REQUEST, 'needle', 40);
|
$needle = gpc_get_string($_REQUEST, 'needle', 40);
|
||||||
|
|||||||
@@ -7,6 +7,8 @@
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
require 'globals.inc';
|
require 'globals.inc';
|
||||||
|
require 'lib/gpc.inc';
|
||||||
|
|
||||||
$pagetitle = _('Storage');
|
$pagetitle = _('Storage');
|
||||||
|
|
||||||
$id = gpc_get_int($_REQUEST, 'id', 0);
|
$id = gpc_get_int($_REQUEST, 'id', 0);
|
||||||
|
|||||||
+3
-1
@@ -1,12 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* YMS - Yacht Management Software
|
* YMS - Yacht Management Software
|
||||||
* Copyright (C) 2024-2025 Thomas Hooge
|
* Copyright (C) 2024-2026 Thomas Hooge
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: WTFPL
|
* SPDX-License-Identifier: WTFPL
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
require 'globals.inc';
|
require 'globals.inc';
|
||||||
|
require 'lib/gpc.inc';
|
||||||
|
|
||||||
$pagetitle = _('Tags');
|
$pagetitle = _('Tags');
|
||||||
|
|
||||||
$id = gpc_get_int($_REQUEST, 'id', 0);
|
$id = gpc_get_int($_REQUEST, 'id', 0);
|
||||||
|
|||||||
+3
-1
@@ -1,12 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* YMS - Yacht Management Software
|
* YMS - Yacht Management Software
|
||||||
* Copyright (C) 2024-2025 Thomas Hooge
|
* Copyright (C) 2024-2026 Thomas Hooge
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: WTFPL
|
* SPDX-License-Identifier: WTFPL
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
require 'globals.inc';
|
require 'globals.inc';
|
||||||
|
require 'lib/gpc.inc';
|
||||||
|
|
||||||
$pagetitle = _('Task');
|
$pagetitle = _('Task');
|
||||||
|
|
||||||
$id = gpc_get_int($_REQUEST, 'id', 0);
|
$id = gpc_get_int($_REQUEST, 'id', 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user