Add more fields to person editor, fix some fields not saving/displaying
This commit is contained in:
parent
c28ea2a492
commit
653fcd7f22
18
action.php
18
action.php
@ -54,7 +54,11 @@ switch ($VARS['action']) {
|
||||
"shirt" => "",
|
||||
"sex" => "",
|
||||
"parentname" => "",
|
||||
"rank" => ""
|
||||
"rank" => "",
|
||||
"den" => "",
|
||||
"health" => "",
|
||||
"notes" => "",
|
||||
"position" => ""
|
||||
];
|
||||
if (!empty($VARS['personid']) && $database->has("people", ['personid' => $VARS['personid']])) {
|
||||
$person = $database->get('people', ['personid (id)',
|
||||
@ -71,7 +75,8 @@ switch ($VARS['action']) {
|
||||
'email',
|
||||
'unit',
|
||||
'shirt',
|
||||
'sex'], ['personid' => $VARS['personid']]);
|
||||
'sex',
|
||||
'notes'], ['personid' => $VARS['personid']]);
|
||||
$editing = true;
|
||||
}
|
||||
|
||||
@ -186,7 +191,9 @@ switch ($VARS['action']) {
|
||||
case "camper":
|
||||
$data = [
|
||||
"parentname" => $people["parentname"],
|
||||
"rank" => $people["rank"]
|
||||
"rank" => $people["rank"],
|
||||
"den" => (empty($people["den"]) ? "" : $people["den"]),
|
||||
"health" => (empty($people["health"]) ? "" : $people["health"])
|
||||
];
|
||||
if ($editing) {
|
||||
$database->update("campers", $data, ['camperid' => $person['camperid']]);
|
||||
@ -239,7 +246,8 @@ switch ($VARS['action']) {
|
||||
"email" => empty($people["email"]) ? "" : $people["email"],
|
||||
"unit" => $people["unit"],
|
||||
"shirt" => $people["shirt"],
|
||||
"sex" => $people["sex"]
|
||||
"sex" => $people["sex"],
|
||||
"notes" => (empty($people["notes"]) ? "" : $people["notes"])
|
||||
];
|
||||
|
||||
if ($editing) {
|
||||
@ -253,7 +261,7 @@ switch ($VARS['action']) {
|
||||
}
|
||||
});
|
||||
|
||||
returnToSender("person_saved");
|
||||
returnToSender("person_saved", "&id=" . htmlentities($VARS['personid']));
|
||||
break;
|
||||
case "deleteperson":
|
||||
if (!empty($VARS['id']) && $database->count("people", ['personid' => $VARS['id']]) === 1) {
|
||||
|
BIN
database.mwb
BIN
database.mwb
Binary file not shown.
@ -6,5 +6,7 @@
|
||||
"Are you sure you want to delete this person?": "Are you sure you want to delete this person?",
|
||||
"This action cannot be undone!": "This action cannot be undone!",
|
||||
"Payment saved.": "Payment saved.",
|
||||
"Only showing {x}s.": "Only showing {x}s."
|
||||
"Only showing {x}s.": "Only showing {x}s.",
|
||||
"Person saved.": "Person saved.",
|
||||
"Person deleted.": "Person deleted."
|
||||
}
|
||||
|
@ -26,7 +26,10 @@ $data = [
|
||||
"sex" => "",
|
||||
"parentname" => "",
|
||||
"rank" => "",
|
||||
"days" => ""
|
||||
"days" => "",
|
||||
"den" => "",
|
||||
"health" => "",
|
||||
"notes" => ""
|
||||
];
|
||||
$type = "camper";
|
||||
if (!empty($VARS['type']) && preg_match("/(camper|adult|youth)/", $VARS['type'])) {
|
||||
@ -48,10 +51,11 @@ if (!empty($VARS['id']) && $database->has('people', ['personid' => $VARS['id']])
|
||||
'email',
|
||||
'unit',
|
||||
'shirt',
|
||||
'sex'], ['personid' => $personid]);
|
||||
'sex',
|
||||
'notes'], ['personid' => $personid]);
|
||||
if (!empty($data["camperid"])) {
|
||||
$type = "camper";
|
||||
$data = array_merge($data, $database->get('campers', ['parentname', 'rank'], ['camperid' => $data["camperid"]]));
|
||||
$data = array_merge($data, $database->get('campers', ['parentname', 'rank', 'den', 'health'], ['camperid' => $data["camperid"]]));
|
||||
} else if (!empty($data["adultid"])) {
|
||||
$type = "adult";
|
||||
$data = array_merge($data, $database->get('adults', ['days', 'position'], ['adultid' => $data["adultid"]]));
|
||||
@ -288,6 +292,7 @@ if (!empty($VARS['id']) && $database->has('people', ['personid' => $VARS['id']])
|
||||
"type" => "select",
|
||||
"width" => 5,
|
||||
"options" => $positions,
|
||||
"value" => $data["position"],
|
||||
"error" => "Choose a position."
|
||||
]
|
||||
]);
|
||||
@ -326,6 +331,39 @@ if (!empty($VARS['id']) && $database->has('people', ['personid' => $VARS['id']])
|
||||
"error" => "Choose a gender."
|
||||
],
|
||||
]);
|
||||
if ($type == "camper") {
|
||||
$textboxes = array_merge($textboxes, [
|
||||
[
|
||||
"label" => "Den",
|
||||
"name" => "den",
|
||||
"width" => 5,
|
||||
"maxlength" => 255,
|
||||
"value" => $data["den"],
|
||||
"optional" => true,
|
||||
"error" => "Enter a den"
|
||||
],
|
||||
[
|
||||
"label" => "Health",
|
||||
"name" => "health",
|
||||
"type" => "textarea",
|
||||
"width" => 6,
|
||||
"value" => $data["health"],
|
||||
"optional" => true,
|
||||
"error" => "Error"
|
||||
]
|
||||
]);
|
||||
}
|
||||
$textboxes = array_merge($textboxes, [
|
||||
[
|
||||
"label" => "Notes",
|
||||
"name" => "notes",
|
||||
"type" => "textarea",
|
||||
"width" => 6,
|
||||
"value" => $data["notes"],
|
||||
"optional" => true,
|
||||
"error" => "Error"
|
||||
]
|
||||
]);
|
||||
|
||||
foreach ($textboxes as $item) {
|
||||
?>
|
||||
@ -334,81 +372,112 @@ if (!empty($VARS['id']) && $database->has('people', ['personid' => $VARS['id']])
|
||||
<div class="form-group mb-3">
|
||||
<label class="mb-0"><?php echo $item['label']; ?>:</label>
|
||||
<div class="input-group">
|
||||
<?php if (empty($item['type']) || ($item['type'] != "select" && $item['type'] != "checkboxes")) { ?>
|
||||
<input type="<?php echo (empty($item['type']) ? "text" : $item['type']); ?>"
|
||||
name="<?php echo $item['name']; ?>"
|
||||
data-name="<?php echo $item['name']; ?>"
|
||||
class="form-control"
|
||||
placeholder=""
|
||||
aria-label="<?php echo $item['label']; ?>"
|
||||
maxlength="<?php echo $item['maxlength']; ?>"
|
||||
<?php
|
||||
if (!empty($item['pattern'])) {
|
||||
?>
|
||||
pattern="<?php echo $item['pattern']; ?>"
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
if (!empty($item['value'])) {
|
||||
?>
|
||||
value="<?php echo htmlspecialchars($item['value']); ?>"
|
||||
<?php
|
||||
}
|
||||
if (empty($item['optional'])) {
|
||||
echo "required";
|
||||
}
|
||||
?> />
|
||||
<?php } else if ($item['type'] == "select") { ?>
|
||||
<select class="form-control"
|
||||
name="<?php echo $item['name']; ?>"
|
||||
data-name="<?php echo $item['name']; ?>"
|
||||
aria-label="<?php echo $item['label']; ?>"
|
||||
<?php
|
||||
if (empty($item['optional'])) {
|
||||
echo "required";
|
||||
}
|
||||
?>>
|
||||
<?php
|
||||
foreach ($item['options'] as $value => $label) {
|
||||
$selected = "";
|
||||
if (!empty($item['value']) && $value == $item['value']) {
|
||||
$selected = " selected";
|
||||
}
|
||||
echo "<option value=\"$value\"$selected>$label</option>\n";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<?php
|
||||
} else if ($item['type'] == "checkboxes") {
|
||||
?>
|
||||
<div class="d-flex justify-content-left flex-wrap">
|
||||
<?php
|
||||
foreach ($item['options'] as $value => $label) {
|
||||
?>
|
||||
<div class="form-check m-1">
|
||||
<input class="form-check-input"
|
||||
type="checkbox"
|
||||
data-name="<?php echo $item['name']; ?>"
|
||||
name="<?php echo $item['name']; ?>[]"
|
||||
value="<?php echo $value; ?>"
|
||||
<?php
|
||||
if (in_array($value, $item['selected'])) {
|
||||
echo "checked";
|
||||
}
|
||||
?>
|
||||
>
|
||||
<label class="form-check-label">
|
||||
<?php echo $label; ?>
|
||||
</label>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<?php
|
||||
<?php
|
||||
if (empty($item['type'])) {
|
||||
$item['type'] = "text";
|
||||
}
|
||||
?>
|
||||
switch ($item['type']) {
|
||||
case "select":
|
||||
?>
|
||||
<select class="form-control"
|
||||
name="<?php echo $item['name']; ?>"
|
||||
data-name="<?php echo $item['name']; ?>"
|
||||
aria-label="<?php echo $item['label']; ?>"
|
||||
<?php
|
||||
if (empty($item['optional'])) {
|
||||
echo "required";
|
||||
}
|
||||
?>>
|
||||
<?php
|
||||
foreach ($item['options'] as $value => $label) {
|
||||
$selected = "";
|
||||
if (!empty($item['value']) && $value == $item['value']) {
|
||||
$selected = " selected";
|
||||
}
|
||||
echo "<option value=\"$value\"$selected>$label</option>\n";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<?php
|
||||
break;
|
||||
case "checkboxes":
|
||||
?>
|
||||
<div class="d-flex justify-content-left flex-wrap">
|
||||
<?php
|
||||
foreach ($item['options'] as $value => $label) {
|
||||
?>
|
||||
<div class="form-check m-1">
|
||||
<input class="form-check-input"
|
||||
type="checkbox"
|
||||
data-name="<?php echo $item['name']; ?>"
|
||||
name="<?php echo $item['name']; ?>[]"
|
||||
value="<?php echo $value; ?>"
|
||||
<?php
|
||||
if (in_array($value, $item['selected'])) {
|
||||
echo "checked";
|
||||
}
|
||||
?>>
|
||||
<label class="form-check-label">
|
||||
<?php echo $label; ?>
|
||||
</label>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<?php
|
||||
break;
|
||||
case "textarea":
|
||||
?>
|
||||
<textarea class="form-control"
|
||||
name="<?php echo $item['name']; ?>"
|
||||
data-name="<?php echo $item['name']; ?>"
|
||||
aria-label="<?php echo $item['label']; ?>"
|
||||
rows="4"
|
||||
placeholder=""
|
||||
<?php
|
||||
if (empty($item['optional'])) {
|
||||
echo "required";
|
||||
}
|
||||
?>><?php echo $item['value']; ?></textarea>
|
||||
<?php
|
||||
break;
|
||||
default:
|
||||
?>
|
||||
<input type="<?php echo (empty($item['type']) ? "text" : $item['type']); ?>"
|
||||
name="<?php echo $item['name']; ?>"
|
||||
data-name="<?php echo $item['name']; ?>"
|
||||
class="form-control"
|
||||
placeholder=""
|
||||
aria-label="<?php echo $item['label']; ?>"
|
||||
maxlength="<?php echo $item['maxlength']; ?>"
|
||||
<?php
|
||||
if (!empty($item['min'])) {
|
||||
?>
|
||||
min="<?php echo $item['min']; ?>"
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
if (!empty($item['pattern'])) {
|
||||
?>
|
||||
pattern="<?php echo $item['pattern']; ?>"
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
if (!empty($item['value'])) {
|
||||
?>
|
||||
value="<?php echo htmlspecialchars($item['value']); ?>"
|
||||
<?php
|
||||
}
|
||||
if (empty($item['optional'])) {
|
||||
echo "required";
|
||||
}
|
||||
?> />
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<div class="invalid-feedback">
|
||||
<?php echo $item['error']; ?>
|
||||
</div>
|
||||
@ -432,7 +501,7 @@ if (!empty($VARS['id']) && $database->has('people', ['personid' => $VARS['id']])
|
||||
}
|
||||
?>
|
||||
<input type="hidden" name="type" value="<?php echo $type; ?>" />
|
||||
<input type="hidden" name="source" value="people" />
|
||||
<input type="hidden" name="source" value="editperson" />
|
||||
<input type="hidden" name="action" value="editperson" />
|
||||
|
||||
<div class="card-footer d-flex">
|
||||
|
Loading…
x
Reference in New Issue
Block a user