Skip to content

Commit 3b5173b

Browse files
committed
feat/qg-157: ux верхней панели сделан более мобильным
Панель сделана белой и в неё перенесено название страницы вместо Trainer Advisor. Туда же добавлены специфичные контролы для страницы - сейчас только дата в календаре и удаление приёма, но в перспективе - туда надо будет утащить стандартные кнопки отмены (как стрелка назад) и сохранения (как галочка) форм. Так же убраны отступы между контентом и верхней панелью Ну и заодно поправлены тайты нескольких страниц Системный статус бар сделан серым, потому что за разумное время не удалось убрать под ним серую полоску.
1 parent 8f17215 commit 3b5173b

File tree

19 files changed

+78
-96
lines changed

19 files changed

+78
-96
lines changed

app/src/main/resources/static/manifest.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
"start_url": "/",
66
"scope": "/",
77
"display": "standalone",
8-
"background_color": "#ffffff",
9-
"theme_color": "#000000",
8+
"background_color": "#e6e6e6",
9+
"theme_color": "#e6e6e6",
1010
"icons": [
1111
{
1212
"src": "/img/icon-192x192.png",

app/src/main/resources/templates/fragments/header.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<meta charset="utf-8"/>
22
<meta content="IE=edge" http-equiv="X-UA-Compatible"/>
33
<meta content="width=device-width, initial-scale=1, shrink-to-fit=no" name="viewport"/>
4+
<meta content="#e6e6e6" name="theme-color"/>
45

56
<script defer src="/vendor/fontawesome-6.5.2/js/fontawesome.min.js"></script>
67
<link href="/vendor/fontawesome-6.5.2/css/all.min.css" rel="stylesheet">
Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
1-
<div th:fragment="headerNavPanel">
2-
<nav class="sb-topnav navbar navbar-expand navbar-dark bg-dark">
1+
<div th:fragment="headerNavPanel(pageName)">
2+
<nav class="sb-topnav navbar navbar-expand navbar bg-white d-flex align-items-baseline pe-4">
33
<button class="btn float-end" id="sidebarToggle" role="button">
4-
<i class="fas fa-bars text-white" data-bs-target="#offcanvas"></i>
4+
<i class="fas fa-bars text-black" data-bs-target="#offcanvas"></i>
55
</button>
66

7-
<a class="navbar-brand ps-3">Trainer Advisor</a>
7+
<a class="navbar-brand ps-3 text-truncate" th:text="${pageName}"></a>
8+
9+
<div class="ms-auto" th:if="${controlsView != null}">
10+
<span th:replace="${controlsView}"></span>
11+
</div>
812
</nav>
913
</div>

app/src/main/resources/templates/fragments/leftNavPanel.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<div id="layoutSidenav_nav" th:fragment="leftNavPanel (activeLink)">
2-
<nav class="sb-sidenav accordion sb-sidenav-light d-flex flex-column flex-shrink-0 ps-3 pe-3 bg-body-tertiary"
2+
<nav class="sb-sidenav accordion sb-sidenav-light d-flex flex-column flex-shrink-0 ps-3 pe-3 bg-white"
33
id="sidenavAccordion">
44

5-
<ul class="nav nav-pills flex-column mb-auto mt-3">
5+
<ul class="nav nav-pills flex-column mb-auto">
66

77
<li>
88
<div class="navbar-text bold">

app/src/main/resources/templates/public/landing.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<meta charset="utf-8"/>
66
<meta content="IE=edge" http-equiv="X-UA-Compatible"/>
77
<meta content="width=device-width, initial-scale=1, shrink-to-fit=no" name="viewport"/>
8-
<meta content="#000000" name="theme-color"/>
8+
<meta content="#e6e6e6" name="theme-color"/>
99
<meta content="yes" name="mobile-web-app-capable">
1010
<meta content="yes" name="apple-mobile-web-app-capable">
1111
<meta content="default" name="apple-mobile-web-app-status-bar-style">

app/src/main/resources/templates/therapist/account/settings.html

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<body class="sb-nav-fixed">
99

10-
<div th:replace="~{fragments/headerNavPanel :: headerNavPanel}"></div>
10+
<div th:replace="~{fragments/headerNavPanel :: headerNavPanel(pageName = 'Настройки')}"></div>
1111

1212
<div id="layoutSidenav">
1313

@@ -17,8 +17,6 @@
1717
<main>
1818
<div class="container px-4">
1919

20-
<view-title th:replace="~{components/view-title.html :: viewTitle(title='Настройки')}">
21-
</view-title>
2220
<div hx-get="/therapist/survey-forms/settings" hx-trigger="load" id="surveyFormsSettings"></div>
2321
</div>
2422
</main>

app/src/main/resources/templates/therapist/appointments/appointment-edit.html

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,15 @@
99
</head>
1010
<body class="sb-nav-fixed">
1111

12-
<div th:replace="~{fragments/headerNavPanel :: headerNavPanel}"></div>
12+
<div th:replace="~{fragments/headerNavPanel :: headerNavPanel(pageName = ${pageMode == 'CREATE' ? 'Новый приём' : appointment.clientTitle }, controlsView = ~{ :: #deleteAppointmentLink})}">
13+
<a class="btn btn-outline-danger text mb-1"
14+
id="deleteAppointmentLink"
15+
th:hx-confirm="'Удалить приём для ' + ${appointment.clientTitle} + '?'"
16+
th:hx-delete="@{/therapist/appointments/{id}?returnTo={returnTo} (id=${appointmentId},returnTo=${appointment.dateTime.toLocalDate()})}"
17+
th:if="${pageMode == 'EDIT'}">
18+
<i class="fas fa-trash"></i>
19+
</a>
20+
</div>
1321

1422
<div id="layoutSidenav">
1523

@@ -18,21 +26,8 @@
1826
<div id="layoutSidenav_content">
1927
<main>
2028
<section class="container px-4">
21-
<h1 class="mt-4 pb-2 mb-3 border-bottom d-flex justify-content-between align-items-baseline">
22-
<span th:text="${pageMode == 'CREATE' ? 'Новый приём' : appointment.clientTitle }">
23-
Новый приём
24-
</span>
25-
26-
<a class="btn btn-outline-danger text"
27-
id="deleteAppointmentLink"
28-
th:hx-confirm="'Удалить приём для ' + ${appointment.clientTitle} + '?'"
29-
th:hx-delete="@{/therapist/appointments/{id}?returnTo={returnTo} (id=${appointmentId},returnTo=${appointment.dateTime.toLocalDate()})}"
30-
th:if="${pageMode == 'EDIT'}">
31-
<i class="fas fa-trash"></i>
32-
</a>
33-
</h1>
34-
35-
<form class="mt-4"
29+
30+
<form
3631
hx-push-url="true" hx-swap="outerHTML" hx-target="body"
3732
id="editAppointmentForm"
3833
th:attr="hx-post=${pageMode == 'CREATE' ? '/therapist/appointments/new' : null},hx-put=${pageMode == 'EDIT' ? '/therapist/appointments/' + appointmentId : null}"

app/src/main/resources/templates/therapist/appointments/schedule.html

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -72,46 +72,44 @@
7272

7373
<body class="sb-nav-fixed">
7474

75-
<div th:replace="~{fragments/headerNavPanel :: headerNavPanel}"></div>
75+
<div th:replace="~{fragments/headerNavPanel :: headerNavPanel(pageName='Расписание', controlsView=~{:: #datePickerView})}">
76+
77+
<div class="calendar-header bg-white z-3" id="datePickerView">
78+
<button class="btn btn-outline-secondary"
79+
name="datePickerButton"
80+
onclick="document.getElementById('datePicker').showPicker()"
81+
th:href="@{/therapist/schedule?calendar=true&date={date}(date=${today})}"
82+
83+
>
84+
<span th:text="${selectedDayLabel}">
85+
</span>
86+
&nbsp;
87+
<i class="fa-solid fa-chevron-down"></i>
88+
</button>
89+
90+
<input class="d-none"
91+
hx-push-url="true"
92+
hx-select="main"
93+
hx-swap="outerHTML"
94+
hx-target="main"
95+
hx-trigger="change"
96+
id="datePicker"
97+
name="date"
98+
th:hx-get="@{/therapist/schedule}"
99+
th:value="${date}"
100+
type="date"
101+
>
102+
</div>
103+
</div>
76104

77105
<div id="layoutSidenav">
78106

79107
<div th:replace="~{fragments/leftNavPanel :: leftNavPanel (activeLink='schedule')}"></div>
80108

81109
<div id="layoutSidenav_content">
82110
<main class="container px-4">
83-
<h1 class="mt-4 d-flex justify-content-between align-items-baseline calendar-header bg-white z-2">
84-
Расписание
85-
86-
<div class="calendar-header py-3 bg-white z-3 mb-4">
87-
<button class="btn btn-outline-secondary"
88-
name="datePickerButton"
89-
onclick="document.getElementById('datePicker').showPicker()"
90-
th:href="@{/therapist/schedule?calendar=true&date={date}(date=${today})}"
91-
92-
>
93-
<span th:text="${selectedDayLabel}">
94-
</span>
95-
&nbsp;
96-
<i class="fa-solid fa-chevron-down"></i>
97-
</button>
98-
99-
<input class="d-none"
100-
hx-push-url="true"
101-
hx-select="main"
102-
hx-swap="outerHTML"
103-
hx-target="main"
104-
hx-trigger="change"
105-
id="datePicker"
106-
name="date"
107-
th:hx-get="@{/therapist/schedule}"
108-
th:value="${date}"
109-
type="date"
110-
>
111-
</div>
112-
</h1>
113111

114-
<section id="calendar" th:fragment="calendarSchedule" xmlns:th="http://www.w3.org/1999/html">
112+
<section class="mt-3" id="calendar" th:fragment="calendarSchedule" xmlns:th="http://www.w3.org/1999/html">
115113

116114
<div class="calendar-body mb-4">
117115
<th:block th:each="mark : ${timeMarks}">

app/src/main/resources/templates/therapist/clients/client-create.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
<body class="sb-nav-fixed">
1010

11-
<div th:replace="~{fragments/headerNavPanel :: headerNavPanel}"></div>
11+
<div th:replace="~{fragments/headerNavPanel :: headerNavPanel(pageName = 'Новый клиент')}"></div>
1212

1313
<div id="layoutSidenav">
1414

@@ -18,7 +18,6 @@
1818
<main>
1919

2020
<section class="container px-4">
21-
<h1 class="mt-4 pb-2 mb-3 border-bottom">Новый клиент</h1>
2221
<div th:replace="therapist/clients/client-card-fragment.html"></div>
2322
</section>
2423
</main>

app/src/main/resources/templates/therapist/clients/client-edit.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
<body class="sb-nav-fixed">
1111

12-
<div th:replace="~{fragments/headerNavPanel :: headerNavPanel}"></div>
12+
<div th:replace="~{fragments/headerNavPanel :: headerNavPanel (pageName=${client.fullName()})}"></div>
1313

1414
<div id="layoutSidenav">
1515

@@ -19,7 +19,6 @@
1919
<main class="h-100">
2020

2121
<section class="container px-4">
22-
<h1 class="mt-4 mb-3" th:text="${client?.fullName() ?: 'ФИО'}">Новый клиент</h1>
2322

2423
<div class="row g-0 w-100 mb-4 d-none d-sm-flex">
2524
<ul class="nav nav-tabs" id="cardTabs">

0 commit comments

Comments
 (0)