Skip to content

Commit 6f1e93f

Browse files
✨ new screen for admins to name and demote specialists (#338)
See #334. This adds a new tab on the Settings screen to name new specialists, demote existing specialists, or change their specialties.
1 parent 3be7ff3 commit 6f1e93f

File tree

25 files changed

+667
-94
lines changed

25 files changed

+667
-94
lines changed

.circleci/config.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
version: 2.1
22

33
orbs:
4-
node: circleci/node@5.0.2
4+
node: circleci/node@5.1.0
55

66
executors:
77
clever-cloud-deployer:
@@ -52,6 +52,7 @@ jobs:
5252
- checkout
5353
- node/install-packages:
5454
app-dir: server
55+
cache-version: v2
5556
- run:
5657
command: npm run lint
5758
working_directory: server
@@ -65,6 +66,7 @@ jobs:
6566
- checkout
6667
- node/install-packages:
6768
app-dir: client
69+
cache-version: v2
6870
- run:
6971
command: npm run lint
7072
working_directory: client
@@ -77,6 +79,7 @@ jobs:
7779
- checkout
7880
- node/install-packages:
7981
app-dir: e2e
82+
cache-version: v2
8083
- run:
8184
command: npm run lint
8285
working_directory: e2e
@@ -89,10 +92,13 @@ jobs:
8992
- checkout
9093
- node/install-packages:
9194
app-dir: e2e
95+
cache-version: v2
9296
- node/install-packages:
9397
app-dir: server
98+
cache-version: v2
9499
- node/install-packages:
95100
app-dir: client
101+
cache-version: v2
96102
- run:
97103
name: Install wait-on
98104
command: npm install -g wait-on
@@ -130,6 +136,7 @@ jobs:
130136
- checkout
131137
- node/install-packages:
132138
app-dir: client
139+
cache-version: v2
133140
- run:
134141
command: npm run build
135142
working_directory: client
@@ -179,6 +186,7 @@ jobs:
179186
- checkout
180187
- node/install-packages:
181188
app-dir: server
189+
cache-version: v2
182190
- run:
183191
name: Deploy prisma
184192
working_directory: server/scripts/prisma_deploy_all/

client/package-lock.json

Lines changed: 0 additions & 49 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

client/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@
5353
}
5454
},
5555
"devDependencies": {
56-
"@playwright/test": "^1.31.2",
5756
"dotenv": "^5.0.0",
5857
"dotenv-cli": "^1.4.0",
5958
"eslint-config-prettier": "^4.3.0",
Lines changed: 197 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
1+
.usersSearch {
2+
width: 100%;
3+
padding: 0.2rem 0.5rem;
4+
margin: 1rem 0 0.5rem;
5+
border-radius: 3px;
6+
border: 1px solid var(--secondary-color);
7+
outline: none;
8+
}
9+
10+
.usersSearch:focus {
11+
outline: 1px solid var(--primary-color);
12+
border: 1px solid var(--primary-color);
13+
}
14+
15+
.resultsContainer {
16+
position: relative;
17+
width: 100%;
18+
z-index: 2;
19+
}
20+
21+
.resultsContainer .usersList {
22+
width: 100%;
23+
margin: 0;
24+
padding: 0;
25+
position: absolute;
26+
top: 0;
27+
left: 0;
28+
padding: 1rem 0;
29+
background: var(--primary-color-font);
30+
border: 1px solid var(--secondary-color);
31+
border-radius: 3px;
32+
list-style-type: none;
33+
}
34+
35+
.usersList {
36+
display: flex;
37+
flex-direction: column;
38+
padding-left: 0;
39+
gap: 1rem;
40+
list-style-type: none;
41+
}
42+
43+
.usersList .emptyUsers {
44+
display: flex;
45+
align-items: center;
46+
justify-content: center;
47+
}
48+
49+
.usersList .userElement {
50+
padding: 0 1rem;
51+
display: flex;
52+
align-items: center;
53+
justify-content: space-between;
54+
gap: 1rem;
55+
}
56+
57+
.userElement .userLeft {
58+
display: flex;
59+
align-items: center;
60+
gap: 1rem;
61+
}
62+
63+
.userLeft .userIcon i {
64+
font-size: 2rem;
65+
}
66+
67+
.userLeft .userInfo {
68+
display: flex;
69+
flex-direction: column;
70+
gap: 0.5rem;
71+
}
72+
73+
.userInfo .userName {
74+
font-weight: bold;
75+
}
76+
77+
.userInfo .userEmail {
78+
font-size: var(--small-font-size);
79+
}
80+
81+
.userRight {
82+
position: relative;
83+
display: flex;
84+
align-items: center;
85+
gap: 0.3rem;
86+
}
87+
88+
.userRight .userSpecialties {
89+
display: flex;
90+
align-items: center;
91+
flex-wrap: wrap;
92+
gap: 0.5rem;
93+
}
94+
95+
.userSpecialties .userSpecialty {
96+
background-color: var(--primary-color-light);
97+
color: var(--primary-color-font);
98+
line-height: 0.8rem;
99+
padding-bottom: 0.2rem;
100+
padding-left: 0.2rem;
101+
padding-right: 0.2rem;
102+
border-radius: 3px;
103+
font-size: 1rem;
104+
display: flex;
105+
align-items: center;
106+
margin: 0.1rem 0;
107+
margin-right: 0.4rem;
108+
}
109+
110+
.userSpecialty span {
111+
font-variant: small-caps;
112+
padding-bottom: 1px;
113+
}
114+
115+
.userSpecialty .material-icons {
116+
font-size: 0.8rem;
117+
margin-left: 0.2rem;
118+
margin-bottom: -0.2rem;
119+
cursor: pointer;
120+
}
121+
122+
.userSpecialty .material-icons:hover {
123+
font-weight: bolder;
124+
}
125+
126+
.userRight .specialtiesList {
127+
min-width: 100px;
128+
position: absolute;
129+
top: -10px;
130+
right: -110px;
131+
flex-direction: column;
132+
border: 1px solid var(--secondary-color-dark);
133+
background-color: white;
134+
border-radius: 3px;
135+
padding: 0.2rem;
136+
list-style-type: none;
137+
z-index: 9;
138+
}
139+
140+
.userRight .specialtiesList::after,
141+
.userRight .specialtiesList::before {
142+
content: '';
143+
display: block;
144+
position: absolute;
145+
left: 0;
146+
width: 0;
147+
height: 0;
148+
border-style: solid;
149+
}
150+
151+
.userRight .specialtiesList::after {
152+
top: 11px;
153+
border-color: transparent white transparent transparent;
154+
border-width: 10px;
155+
left: -19px;
156+
}
157+
158+
.userRight .specialtiesList::before {
159+
top: 10.75px;
160+
border-color: transparent var(--secondary-color-dark) transparent transparent;
161+
border-width: 10.25px;
162+
left: -20px;
163+
}
164+
165+
.specialtiesList .specialtyEl {
166+
width: 100%;
167+
display: flex;
168+
align-items: center;
169+
justify-content: center;
170+
padding: 0.1rem 0.3rem 0.3rem 0.3rem;
171+
cursor: pointer;
172+
}
173+
174+
.specialtiesList .specialtyEl.selected::before {
175+
content: '✓';
176+
margin-right: 0.2rem;
177+
}
178+
179+
.specialtiesList .specialtyEl.selected:hover::before {
180+
content: '✕';
181+
margin-right: 0.2rem;
182+
}
183+
184+
.specialtiesList .specialtyEl:hover {
185+
background-color: var(--secondary-color);
186+
color: var(--secondary-color-font-dark);
187+
}
188+
189+
.specialtyEl .specialtyButton {
190+
padding: 0;
191+
width: 100%;
192+
height: 100%;
193+
background: none;
194+
border: none;
195+
cursor: pointer;
196+
font-variant: small-caps;
197+
}

0 commit comments

Comments
 (0)