Skip to content

Commit daa2459

Browse files
committed
Edit Address Information
1 parent 14147fc commit daa2459

File tree

6 files changed

+135
-65
lines changed

6 files changed

+135
-65
lines changed

src/App/Controller/Account/AddressViewController.php

+33
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
use App\Http\HtmlResponse;
77
use App\Model\Authentication\Account;
8+
use App\Model\Authentication\AccountAddress;
89
use App\Service\Authentication\AccountAddressService;
910
use Laminas\Diactoros\Response\RedirectResponse;
1011
use League\Plates\Engine;
@@ -37,9 +38,41 @@ public function load(ServerRequestInterface $request, array $args): ResponseInte
3738
return new RedirectResponse('/account/address');
3839
}
3940

41+
if($request->getMethod() === 'POST')
42+
{
43+
$this->process($address);
44+
$address = $this->accountAddressService->findAddressByIdAndAccount((int)$args['id'], $account->getId());
45+
}
46+
4047
return new HtmlResponse($this->template->render('account/addressView', [
4148
'address' => $address,
4249
]));
4350
}
4451

52+
public function process(AccountAddress $address): void
53+
{
54+
55+
if(isset($_POST['editAddress'])) {
56+
$address->setCompany(trim($_POST['editAddressCompany']) ?? '');
57+
$address->setFirstname(trim($_POST['editAddressFirstname']) ?? '');
58+
$address->setLastname(trim($_POST['editAddressLastname']) ?? '');
59+
$address->setStreet(trim($_POST['editAddressStreet']) ?? '');
60+
$address->setHouseNumber(trim($_POST['editAddressHouseNumber']) ?? '');
61+
$address->setZipCode(trim($_POST['editAddressZipCode']) ?? '');
62+
$address->setCity(trim($_POST['editAddressCity']) ?? '');
63+
$address->setCountry(trim($_POST['editAddressCountry']) ?? '');
64+
$address->setPhone(trim($_POST['editAddressPhone']) ?? '');
65+
66+
if($this->accountAddressService->update($address))
67+
{
68+
MESSAGES->add('success', 'account-address-page-update-success');
69+
return;
70+
}
71+
72+
MESSAGES->add('danger', 'account-address-page-update-failed');
73+
return;
74+
}
75+
76+
}
77+
4578
}

src/App/Service/Authentication/AccountAddressService.php

+11
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,17 @@ public function create(AccountAddress $accountAddress): bool
2828
return false;
2929
}
3030

31+
public function update(AccountAddress $accountAddress): bool
32+
{
33+
$updateResult = $this->accountAddressTable->update($accountAddress);
34+
if($updateResult > 0 && $updateResult !== FALSE)
35+
{
36+
return true;
37+
}
38+
39+
return false;
40+
}
41+
3142
public function findAllAddressesByAccountId(int $accountId): array
3243
{
3344
$addressList = $this->accountAddressTable->findAllByAccountId($accountId);

src/App/Table/Authentication/AccountAddressTable.php

+8
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,14 @@ public function insert(AccountAddress $accountAddress): bool|int|string
1515
->values($this->createArrayFromAccountAddressModel($accountAddress))->execute();
1616
}
1717

18+
public function update(AccountAddress $accountAddress): bool|int|string
19+
{
20+
return $this->query->update($this->getTableName())
21+
->set($this->createArrayFromAccountAddressModel($accountAddress))
22+
->where('id', $accountAddress->getId())
23+
->execute();
24+
}
25+
1826
public function findAllByAccountId(int $accountId): array|bool
1927
{
2028
return $this->query->from($this->getTableName())->where('account', $accountId)->fetchAll();

template/account/address.php

+5
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,16 @@
2828

2929
<div class="row">
3030

31+
<div class="col-12 mb-3">
32+
<?php $this->insert('element/alert') ?>
33+
</div>
34+
3135
<?php foreach($addresses as $address): ?>
3236
<div class="col-4 mb-3">
3337
<div class="card">
3438
<div class="card-body">
3539

40+
<span><b><?= $address->getCompany() ?></b></span> <?= !empty($address->getCompany()) ? '<br>' : '' ?>
3641
<span><b><?= $address->getFirstname() ?> <?= $address->getLastname() ?></b></span> <br>
3742
<span><?= $address->getStreet() ?> <?= $address->getHouseNumber() ?></span> <br>
3843
<span><?= $address->getZipCode() ?> <?= $address->getCity() ?></span> <br>

template/account/addressView.php

+76-65
Original file line numberDiff line numberDiff line change
@@ -25,73 +25,84 @@
2525
</div>
2626
</div>
2727

28-
<div class="row">
28+
<div class="col-12 mb-3">
29+
<?php $this->insert('element/alert') ?>
30+
</div>
2931

30-
<div class="col-md-12 mb-3">
31-
<label for="addNewAddressCompany" class="form-label">
32-
<?= $this->e($this->translate('account-address-company')) ?>
33-
</label>
34-
<input type="text" class="form-control" id="addNewAddressCompany"
35-
name="addNewAddressCompany" value="<?= $address->getCompany() ?>">
36-
</div>
37-
<div class="col-md-6 mb-3">
38-
<label for="addNewAddressFirstname" class="form-label">
39-
<?= $this->e($this->translate('account-address-firstname')) ?>
40-
</label>
41-
<input type="text" class="form-control" id="addNewAddressFirstname"
42-
name="addNewAddressFirstname" value="<?= $address->getFirstname() ?>">
43-
</div>
44-
<div class="col-md-6 mb-3">
45-
<label for="addNewAddressLastname" class="form-label">
46-
<?= $this->e($this->translate('account-address-lastname')) ?>
47-
</label>
48-
<input type="text" class="form-control" id="addNewAddressLastname"
49-
name="addNewAddressLastname" value="<?= $address->getLastname() ?>">
50-
</div>
51-
<div class="col-md-8 mb-3">
52-
<label for="addNewAddressStreet" class="form-label">
53-
<?= $this->e($this->translate('account-address-street')) ?>
54-
</label>
55-
<input type="text" class="form-control" id="addNewAddressStreet" 7
56-
name="addNewAddressStreet" value="<?= $address->getStreet() ?>">
57-
</div>
58-
<div class="col-md-4 mb-3">
59-
<label for="addNewAddressHouseNumber" class="form-label">
60-
<?= $this->e($this->translate('account-address-house-number')) ?>
61-
</label>
62-
<input type="text" class="form-control" id="addNewAddressHouseNumber"
63-
name="addNewAddressHouseNumber" value="<?= $address->getHouseNumber() ?>">
64-
</div>
65-
<div class="col-md-5 mb-3">
66-
<label for="addNewAddressZipCode" class="form-label">
67-
<?= $this->e($this->translate('account-address-zip-code')) ?>
68-
</label>
69-
<input type="text" class="form-control" id="addNewAddressZipCode"
70-
name="addNewAddressZipCode" value="<?= $address->getZipCode() ?>">
71-
</div>
72-
<div class="col-md-7 mb-3">
73-
<label for="addNewAddressCity" class="form-label">
74-
<?= $this->e($this->translate('account-address-city')) ?>
75-
</label>
76-
<input type="text" class="form-control" id="addNewAddressCity"
77-
name="addNewAddressCity" value="<?= $address->getCity() ?>">
78-
</div>
79-
<div class="col-md-12 mb-3">
80-
<label for="addNewAddressCountry" class="form-label">
81-
<?= $this->e($this->translate('account-address-country')) ?>
82-
</label>
83-
<input type="text" class="form-control" id="addNewAddressCountry"
84-
name="addNewAddressCountry" value="<?= $address->getCountry() ?>">
85-
</div>
86-
<div class="col-md-12 mb-3">
87-
<label for="addNewAddressPhone" class="form-label">
88-
<?= $this->e($this->translate('account-address-phone')) ?>
89-
</label>
90-
<input type="text" class="form-control" id="addNewAddressPhone"
91-
name="addNewAddressPhone" value="<?= $address->getPhone() ?>">
92-
</div>
32+
<form action="" method="post">
33+
<div class="row">
9334

94-
</div>
35+
<div class="col-md-12 mb-3">
36+
<label for="editAddressCompany" class="form-label">
37+
<?= $this->e($this->translate('account-address-company')) ?>
38+
</label>
39+
<input type="text" class="form-control" id="editAddressCompany"
40+
name="editAddressCompany" value="<?= $address->getCompany() ?>">
41+
</div>
42+
<div class="col-md-6 mb-3">
43+
<label for="editAddressFirstname" class="form-label">
44+
<?= $this->e($this->translate('account-address-firstname')) ?>
45+
</label>
46+
<input type="text" class="form-control" id="editAddressFirstname"
47+
name="editAddressFirstname" value="<?= $address->getFirstname() ?>">
48+
</div>
49+
<div class="col-md-6 mb-3">
50+
<label for="editAddressLastname" class="form-label">
51+
<?= $this->e($this->translate('account-address-lastname')) ?>
52+
</label>
53+
<input type="text" class="form-control" id="editAddressLastname"
54+
name="editAddressLastname" value="<?= $address->getLastname() ?>">
55+
</div>
56+
<div class="col-md-8 mb-3">
57+
<label for="editAddressStreet" class="form-label">
58+
<?= $this->e($this->translate('account-address-street')) ?>
59+
</label>
60+
<input type="text" class="form-control" id="editAddressStreet" 7
61+
name="editAddressStreet" value="<?= $address->getStreet() ?>">
62+
</div>
63+
<div class="col-md-4 mb-3">
64+
<label for="editAddressHouseNumber" class="form-label">
65+
<?= $this->e($this->translate('account-address-house-number')) ?>
66+
</label>
67+
<input type="text" class="form-control" id="editAddressHouseNumber"
68+
name="editAddressHouseNumber" value="<?= $address->getHouseNumber() ?>">
69+
</div>
70+
<div class="col-md-5 mb-3">
71+
<label for="editAddressZipCode" class="form-label">
72+
<?= $this->e($this->translate('account-address-zip-code')) ?>
73+
</label>
74+
<input type="text" class="form-control" id="editAddressZipCode"
75+
name="editAddressZipCode" value="<?= $address->getZipCode() ?>">
76+
</div>
77+
<div class="col-md-7 mb-3">
78+
<label for="editAddressCity" class="form-label">
79+
<?= $this->e($this->translate('account-address-city')) ?>
80+
</label>
81+
<input type="text" class="form-control" id="editAddressCity"
82+
name="editAddressCity" value="<?= $address->getCity() ?>">
83+
</div>
84+
<div class="col-md-12 mb-3">
85+
<label for="editAddressCountry" class="form-label">
86+
<?= $this->e($this->translate('account-address-country')) ?>
87+
</label>
88+
<input type="text" class="form-control" id="editAddressCountry"
89+
name="editAddressCountry" value="<?= $address->getCountry() ?>">
90+
</div>
91+
<div class="col-md-12 mb-3">
92+
<label for="editAddressPhone" class="form-label">
93+
<?= $this->e($this->translate('account-address-phone')) ?>
94+
</label>
95+
<input type="text" class="form-control" id="editAddressPhone"
96+
name="editAddressPhone" value="<?= $address->getPhone() ?>">
97+
</div>
98+
<div class="col-8"></div>
99+
<div class="col-4">
100+
<button type="submit" class="btn btn-outline-primary w-100" name="editAddress">
101+
<?= $this->e($this->translate('save-button')) ?>
102+
</button>
103+
</div>
104+
</div>
105+
</form>
95106
</div>
96107

97108
</div>

translations/de.json

+2
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@
167167
"account-address-page-failed-adding": "Die Adresse konnte nicht hinzugefügt werden!",
168168

169169
"account-address-page-view-address": "Adresse verwalten",
170+
"account-address-page-update-success": "Die Adressdaten wurden erfolgreich aktualisiert.",
171+
"account-address-page-update-failed": "Die Adressdaten konnten nicht aktualisiert werden.",
170172

171173
"account-settings-update-successful": "Die Kontoeinstellungen wurden erfolgreich geändert.",
172174
"account-settings-update-failed": "Etwas ist schiefgelaufen. Es wurden keine Daten geändert.",

0 commit comments

Comments
 (0)