Skip to content

Commit

Permalink
Refactoring of the personal module.
Browse files Browse the repository at this point in the history
  • Loading branch information
simba77 committed Feb 15, 2023
1 parent 17ca785 commit 8e1d7ec
Show file tree
Hide file tree
Showing 12 changed files with 231 additions and 252 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,6 @@ public function __construct()
*/
public function index(): string
{
return $this->render->render('personal::index');
return $this->render->render('johncms/personal::index');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ public function index(?User $user, int $id = 0): string|ResponseInterface
$id = $user?->id;
}

return $this->render->render('personal::profile/index', [
return $this->render->render('johncms/personal::profile/index', [
'data' => [
'canEdit' => ($id === $user?->id),
'editProfileUrl' => route('personal.profile.edit', ['id' => $id]),
Expand All @@ -75,7 +75,7 @@ public function edit(?User $user, int $id, Session $session): string|ResponseInt
return status_page(403);
}
$profileForm = new ProfileForm($id);
return $this->render->render('personal::profile/edit', [
return $this->render->render('johncms/personal::profile/edit', [
'data' => [
'formFields' => $profileForm->getFormFields(),
'validationErrors' => $profileForm->getValidationErrors(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public function __construct()
*/
public function index(SettingsForm $settingsForm, Session $session): string|ResponseInterface
{
return $this->render->render('personal::settings', [
return $this->render->render('johncms/personal::settings', [
'data' => [
'formFields' => $settingsForm->getFormFields(),
'validationErrors' => $settingsForm->getValidationErrors(),
Expand Down
2 changes: 1 addition & 1 deletion modules/johncms/personal/src/Forms/SettingsForm.php
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ protected function prepareFormFields(): array
return $fields;
}

public function getValue(string $fieldName, mixed $default = null)
public function getValue(string $fieldName, mixed $default = null): mixed
{
if ($this->userData) {
// Base fields
Expand Down
42 changes: 42 additions & 0 deletions modules/johncms/personal/templates/index.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
@extends('system::layout/default')
@section('content')
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-4">
<div class="col mb-2">
<a href="<?= route('personal.profile') ?>" class="card text-center">
<div class="card-body">
<div class="icon_with_badge d-inline-block">
<svg class="icon-40">
<use xlink:href="<?= asset('icons/sprite.svg') ?>#user"/>
</svg>
</div>
<div class="mt-2 tile_name"><?= __('My profile') ?></div>
</div>
</a>
</div>
<div class="col mb-2">
<a href="<?= route('personal.settings') ?>" class="card text-center">
<div class="card-body">
<div class="icon_with_badge d-inline-block">
<svg class="icon-40">
<use xlink:href="<?= asset('icons/sprite.svg') ?>#settings"/>
</svg>
</div>
<div class="mt-2 tile_name"><?= __('Settings') ?></div>
</div>
</a>
</div>
<div class="col mb-2">
<a href="" class="card text-center">
<div class="card-body">
<div class="icon_with_badge d-inline-block">
<svg class="icon-40">
<use xlink:href="<?= asset('icons/sprite.svg') ?>#messages"/>
</svg>
</div>
<div class="mt-2 tile_name"><?= __('Messages') ?></div>
</div>
</a>
</div>
</div>
@endsection

49 changes: 0 additions & 49 deletions modules/johncms/personal/templates/index.phtml

This file was deleted.

18 changes: 18 additions & 0 deletions modules/johncms/personal/templates/profile/edit.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
@extends('system::layout/default')
@section('content')
<form method="post" class="mb-3" action="<?= $data['storeUrl'] ?>">
@includeWhen(! empty($data['success']), 'system::app/alert', ['alert_type' => 'alert-success', 'alert' => $data['success']])
@includeWhen(! empty($data['errors']), 'system::app/alert', ['alert_type' => 'alert-danger', 'alert' => $data['errors']])
@include(
'system::forms/simple_form',
[
'fields' => $data['formFields'],
'errors' => $data['validationErrors'],
]
)
<button type="submit" name="submit" class="btn btn-primary"><?= __('Save') ?></button>
<a href="{{ $data['backButton'] }}" class="btn btn-outline-secondary"><?= __('Back') ?></a>
</form>
@endsection


29 changes: 0 additions & 29 deletions modules/johncms/personal/templates/profile/edit.phtml

This file was deleted.

148 changes: 148 additions & 0 deletions modules/johncms/personal/templates/profile/index.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
<?php
/**
* @var $title
* @var $page_title
* @var \Johncms\Users\User $userData
*/
$userData = $data['userData'];
?>
@extends('system::layout/default')
@section('content')
<ul class="nav bg-light mb-4 border-radius-5">
@if ($data['canEdit'])
<li class="nav-item">
<a class="nav-link text-danger" href="<?= $data['editProfileUrl'] ?>">Edit profile</a>
</li>
@endif
<li class="nav-item">
<a class="nav-link" href="#">Write</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Activity</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Statistic</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-expanded="false">Actions</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">Delete</a></li>
<li><a class="dropdown-item" href="#">Block</a></li>
</ul>
</li>
</ul>

<div class="personal-profile flex-wrap">
<div class="personal-profile-photo col-12 col-md-auto flex-grow-0">
<div class="vue_app d-flex justify-content-center">
@if($data['canEdit'])
<avatar-uploader
upload-url="<?= route('personal.profile.avatarUpload') ?>"
delete-url="<?= route('personal.profile.avatarDelete') ?>"
token="<?= $csrf_token ?>"
current-avatar="<?= $userData->avatar_url ?>"
></avatar-uploader>
@else
<div class="profile-photo-upload-btn <?= $userData->avatar_url ? 'border-0' : '' ?>"
style="background: url('<?= $userData->avatar_url ?>')">
@if(! $userData->avatar_url)
<span class="text-secondary"><?= __('No photo') ?></span>
@endif
</div>
@endif
</div>
</div>
<div class="profile-details col-12 col-md-9 flex-grow-1 ps-md-4 text-center mt-3 mt-md-0 text-md-start">
<div class="h3 fw-bold mb-2"><?= $userData->displayName() ?></div>
<div class="fz-normal">
<div class="text-secondary"><?= __('Login:') ?> <?= $userData->login ?></div>
<div class="text-secondary"><?= __('Role:') ?> <?= $userData->getRoleNames() ?></div>
<div class="text-secondary"><?= __('Last seen:') ?> <?= $userData->getLastSeen() ? $userData->getLastSeen() : __('No data') ?></div>
</div>
<div class="mt-2 fz-x-small">
<div><?= __('User Agent:') ?> Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/96.0.4664.93 Safari/537.36
</div>
<div><?= __('IP:') ?> <a href="#">127.0.0.1</a> [ <a href="#">?</a> ]</div>
</div>
</div>
</div>

<div class="border-bottom mt-4 mb-4"></div>

<div class="mb-3">
<div class="fs-4 fw-bold"><?= __('General Information') ?></div>
<div>
@if($userData->additional_fields->status)
<div class="profile-info-row row">
<div class="profile-info-name col-12 col-md-3"><?= __('Status') ?></div>
<div class="profile-info-value col-12 col-md-9"><?= $userData->additional_fields->status ?></div>
</div>
@endif
@if($userData->birthday)
<div class="profile-info-row row">
<div class="profile-info-name col-12 col-md-3"><?= __('Birthday') ?></div>
<div class="profile-info-value col-12 col-md-9"><?= format_date($userData->birthday, true) ?> (<?= $userData->getAge() ?> <?= __('y.o.') ?>)
</div>
</div>
@endif
<div class="profile-info-row row">
<div class="profile-info-name col-12 col-md-3"><?= __('Gender') ?></div>
<div class="profile-info-value col-12 col-md-9"><?= $userData->getGenderName() ?></div>
</div>
</div>
</div>

<div class="mb-3">
<div class="fs-4 fw-bold"><?= __('Contacts') ?></div>
<div>
@if($userData->phone)
<div class="profile-info-row row">
<div class="profile-info-name col-12 col-md-3"><?= __('Phone') ?></div>
<div class="profile-info-value col-12 col-md-9"><?= $userData->phone ?></div>
</div>
@endif
@if($userData->email)
<div class="profile-info-row row">
<div class="profile-info-name col-12 col-md-3"><?= __('E-mail') ?></div>
<div class="profile-info-value col-12 col-md-9">
<a href="mailto:mail@example.com"><?= $userData->email ?></a>
</div>
</div>
@endif
@if($userData->additional_fields->telegram)
<div class="profile-info-row row">
<div class="profile-info-name col-12 col-md-3"><?= __('Telegram') ?></div>
<div class="profile-info-value col-12 col-md-9">
<a href="tg://resolve?domain=<?= $userData->additional_fields->telegram ?>"><?= $userData->additional_fields->telegram ?></a>
</div>
</div>
@endif
@if($userData->additional_fields->whatsapp)
<div class="profile-info-row row">
<div class="profile-info-name col-12 col-md-3"><?= __('WhatsApp') ?></div>
<div class="profile-info-value col-12 col-md-9">
<a href="https://wa.me/<?= $userData->additional_fields->whatsapp ?>"><?= $userData->additional_fields->whatsapp ?></a>
</div>
</div>
@endif
@if($userData->additional_fields->website)
<div class="profile-info-row row">
<div class="profile-info-name col-12 col-md-3"><?= __('Website') ?></div>
<div class="profile-info-value col-12 col-md-9">
<a href="https://<?= $userData->additional_fields->website ?>"><?= $userData->additional_fields->website ?></a>
</div>
</div>
@endif
</div>
</div>
@if ($userData->additional_fields->about)
<div class="mb-3">
<div class="fs-4 fw-bold"><?= __('About') ?></div>
<div class="text-dark"><?= $userData->additional_fields->about ?></div>
</div>
@endif

@endsection

0 comments on commit 8e1d7ec

Please sign in to comment.