Skip to content

Commit 83630d5

Browse files
authored
UX: Welcome returning users first (#410)
with less obvious new token registration, students should be much more likely to create a new token every time (by mistake or laziness)
1 parent 2696f86 commit 83630d5

File tree

4 files changed

+67
-41
lines changed

4 files changed

+67
-41
lines changed

src/app/learnocaml_index_main.ml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -620,10 +620,12 @@ let set_string_translations () =
620620
"txt_login_welcome", configured config##.txtLoginWelcome
621621
[%i"Welcome to Learn OCaml"];
622622
"txt_first_connection", [%i"First connection"];
623+
"txt_first_connection_link", [%i"New user ? Create a new token"];
623624
"txt_first_connection_dialog", [%i"Choose a nickname"];
624625
"txt_first_connection_secret", [%i"Secret"];
625626
"txt_login_new", [%i"Create new token"];
626627
"txt_returning", [%i"Returning user"];
628+
"txt_returning_link", [%i"Already have a token ? Click here"];
627629
"txt_returning_dialog", [%i"Enter your token"];
628630
"txt_login_returning", [%i"Connect"];
629631
] in

static/css/learnocaml_main.css

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -930,6 +930,12 @@ div#login-overlay > h1 {
930930
display: flex;
931931
flex-direction: column;
932932
}
933+
#login-new:not(:target) {
934+
display: none;
935+
}
936+
#login-new:target ~ div {
937+
display: none;
938+
}
933939
@media (min-width: 1000px) {
934940
#login-new, #login-returning {
935941
width: 30vw;
@@ -946,6 +952,14 @@ div#login-overlay > h1 {
946952
color: black;
947953
border-radius: 3px 3px 0 0;
948954
}
955+
#login-overlay a {
956+
display: block;
957+
margin-left: auto;
958+
margin-right: 20px;
959+
text-decoration: none;
960+
color: #aaf;
961+
font-size: small;
962+
}
949963
#login-new > div, #login-returning > div {
950964
padding: 20px;
951965
display: flex;

static/index.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ <h4 id="txt_first_connection"><!-- First connection --></h4>
8282
minlength="1" autocomplete="off"></input>
8383
</div>
8484
<button id="login-new-button"><span id="txt_login_new"><!-- Create new token --></span></button>
85+
<a href="#login-returning"><div id="txt_returning_link"><!-- Returning user --></div></a>
8586
</div>
8687
<div id="login-returning">
8788
<h4 id="txt_returning"><!-- Returning user --></h4>
@@ -94,6 +95,7 @@ <h4 id="txt_returning"><!-- Returning user --></h4>
9495
autocomplete="off">
9596
</div>
9697
<button id="login-connect-button"><span id="txt_login_returning"><!-- Connect --></span></button>
98+
<a href="#login-new"><div id="txt_first_connection_link"><!-- First connection --></div></a>
9799
</div>
98100
</div>
99101
<div id="learnocaml-main-loading" class="loaded"></div>

translations/fr.po

Lines changed: 49 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
msgid ""
66
msgstr ""
77
"Project-Id-Version: learn-ocaml ~dev\n"
8-
"PO-Revision-Date: 2021-07-26 10:51+0200\n"
8+
"PO-Revision-Date: 2021-07-29 17:55+0200\n"
99
"Last-Translator: Louis Gesbert <[email protected]>\n"
1010
"Language-Team: OCamlPro\n"
1111
"Language: french\n"
@@ -128,7 +128,7 @@ msgstr "%02d:%02d"
128128
msgid "0:%02d:%02d"
129129
msgstr "0:%02d:%02d"
130130

131-
#: File "src/app/learnocaml_common.ml", line 543, characters 34-55 1034, 38-59
131+
#: File "src/app/learnocaml_common.ml", line 543, characters 34-55 1035, 38-59
132132
msgid "difficulty: %d / 40"
133133
msgstr "difficulté: %d / 40"
134134

@@ -172,7 +172,7 @@ msgid "Editor"
172172
msgstr "Éditeur"
173173

174174
#: File "src/app/learnocaml_common.ml", line 782, characters 41-51
175-
#: "src/app/learnocaml_index_main.ml", 689, 30-40
175+
#: "src/app/learnocaml_index_main.ml", 691, 30-40
176176
msgid "Toplevel"
177177
msgstr "Toplevel"
178178

@@ -203,7 +203,7 @@ msgid "Stats"
203203
msgstr "Statistiques"
204204

205205
#: File "src/app/learnocaml_common.ml", line 794, characters 37-48
206-
#: "src/app/learnocaml_index_main.ml", 686, 29-40
206+
#: "src/app/learnocaml_index_main.ml", 688, 29-40
207207
#: "src/app/learnocaml_teacher_tab.ml", 329, 18-29
208208
#: "src/app/learnocaml_exercise_main.ml", 202, 23-34
209209
msgid "Exercises"
@@ -233,63 +233,63 @@ msgstr "Télécharger"
233233
msgid "Eval code"
234234
msgstr "Évaluer le code"
235235

236-
#: File "src/app/learnocaml_common.ml", line 905, characters 23-29
236+
#: File "src/app/learnocaml_common.ml", line 906, characters 23-29
237237
msgid "Sync"
238238
msgstr "Sync"
239239

240-
#: File "src/app/learnocaml_common.ml", line 962, characters 34-49
240+
#: File "src/app/learnocaml_common.ml", line 963, characters 34-49
241241
msgid "OCaml prelude"
242242
msgstr "Prélude OCaml"
243243

244-
#: File "src/app/learnocaml_common.ml", line 969, characters 59-65
244+
#: File "src/app/learnocaml_common.ml", line 970, characters 59-65
245245
msgid "Hide"
246246
msgstr "Cacher"
247247

248-
#: File "src/app/learnocaml_common.ml", line 976, characters 59-65
248+
#: File "src/app/learnocaml_common.ml", line 977, characters 59-65
249249
msgid "Show"
250250
msgstr "Montrer"
251251

252-
#: File "src/app/learnocaml_common.ml", line 1000, characters 18-36
252+
#: File "src/app/learnocaml_common.ml", line 1001, characters 18-36
253253
msgid "Enter the secret"
254254
msgstr "Entrez le secret"
255255

256-
#: File "src/app/learnocaml_common.ml", line 1040, characters 22-35
256+
#: File "src/app/learnocaml_common.ml", line 1041, characters 22-35
257257
msgid "Difficulty:"
258258
msgstr "Difficulté :"
259259

260-
#: File "src/app/learnocaml_common.ml", line 1054, characters 39-49
260+
#: File "src/app/learnocaml_common.ml", line 1055, characters 39-49
261261
msgid "Kind: %s"
262262
msgstr "Type : %s"
263263

264-
#: File "src/app/learnocaml_common.ml", line 1195, characters 46-59
264+
#: File "src/app/learnocaml_common.ml", line 1196, characters 46-59
265265
msgid "Identifier:"
266266
msgstr "Identifiant de l'exercice :"
267267

268-
#: File "src/app/learnocaml_common.ml", line 1199, characters 48-57
268+
#: File "src/app/learnocaml_common.ml", line 1200, characters 48-57
269269
msgid "Author:"
270270
msgstr "Auteur :"
271271

272-
#: File "src/app/learnocaml_common.ml", line 1200, characters 47-57
272+
#: File "src/app/learnocaml_common.ml", line 1201, characters 47-57
273273
msgid "Authors:"
274274
msgstr "Auteurs :"
275275

276-
#: File "src/app/learnocaml_common.ml", line 1205, characters 31-48
276+
#: File "src/app/learnocaml_common.ml", line 1206, characters 31-48
277277
msgid "Skills trained:"
278278
msgstr "Compétences pratiquées :"
279279

280-
#: File "src/app/learnocaml_common.ml", line 1209, characters 31-49
280+
#: File "src/app/learnocaml_common.ml", line 1210, characters 31-49
281281
msgid "Skills required:"
282282
msgstr "Compétences requises :"
283283

284-
#: File "src/app/learnocaml_common.ml", line 1214, characters 36-57
284+
#: File "src/app/learnocaml_common.ml", line 1215, characters 36-57
285285
msgid "Previous exercises:"
286286
msgstr "Exercices précédents :"
287287

288-
#: File "src/app/learnocaml_common.ml", line 1217, characters 35-52
288+
#: File "src/app/learnocaml_common.ml", line 1218, characters 35-52
289289
msgid "Next exercises:"
290290
msgstr "Exercices suivants :"
291291

292-
#: File "src/app/learnocaml_common.ml", line 1222, characters 26-36
292+
#: File "src/app/learnocaml_common.ml", line 1223, characters 26-36
293293
msgid "Metadata"
294294
msgstr "Métadonnées"
295295

@@ -467,61 +467,69 @@ msgstr "Bienvenue sur Learn OCaml"
467467
msgid "First connection"
468468
msgstr "Première connexion"
469469

470-
#: File "src/app/learnocaml_index_main.ml", line 623, characters 38-57
470+
#: File "src/app/learnocaml_index_main.ml", line 623, characters 36-67
471+
msgid "New user ? Create a new token"
472+
msgstr "Vous êtes nouveau ? Obtenez un nouveau token"
473+
474+
#: File "src/app/learnocaml_index_main.ml", line 624, characters 38-57
471475
msgid "Choose a nickname"
472476
msgstr "Choisissez un identifiant"
473477

474-
#: File "src/app/learnocaml_index_main.ml", line 624, characters 38-46
478+
#: File "src/app/learnocaml_index_main.ml", line 625, characters 38-46
475479
msgid "Secret"
476480
msgstr "Secret"
477481

478-
#: File "src/app/learnocaml_index_main.ml", line 625, characters 24-42
482+
#: File "src/app/learnocaml_index_main.ml", line 626, characters 24-42
479483
msgid "Create new token"
480484
msgstr "Nouveau token"
481485

482-
#: File "src/app/learnocaml_index_main.ml", line 626, characters 24-40
486+
#: File "src/app/learnocaml_index_main.ml", line 627, characters 24-40
483487
msgid "Returning user"
484488
msgstr "Utilisateur existant"
485489

486-
#: File "src/app/learnocaml_index_main.ml", line 627, characters 31-49
490+
#: File "src/app/learnocaml_index_main.ml", line 628, characters 29-64
491+
msgid "Already have a token ? Click here"
492+
msgstr "Vous avez déjà un token ? Par ici !"
493+
494+
#: File "src/app/learnocaml_index_main.ml", line 629, characters 31-49
487495
msgid "Enter your token"
488496
msgstr "Entrez votre token"
489497

490-
#: File "src/app/learnocaml_index_main.ml", line 628, characters 31-40
498+
#: File "src/app/learnocaml_index_main.ml", line 630, characters 31-40
491499
msgid "Connect"
492500
msgstr "Se connecter"
493501

494-
#: File "src/app/learnocaml_index_main.ml", line 636, characters 9-19 638,
502+
#: File "src/app/learnocaml_index_main.ml", line 638, characters 9-19 640,
495503
#: "src/app/learnocaml_teacher_tab.ml", 558, 22-32
496504
msgid "Nickname"
497505
msgstr "Pseudonyme"
498506

499-
#: File "src/app/learnocaml_index_main.ml", line 673, characters 38-59
507+
#: File "src/app/learnocaml_index_main.ml", line 675, characters 38-59
500508
msgid "Choose an activity."
501509
msgstr "Sélectionnez une activité."
502510

503-
#: File "src/app/learnocaml_index_main.ml", line 682, characters 30-41
511+
#: File "src/app/learnocaml_index_main.ml", line 684, characters 30-41
504512
msgid "Try OCaml"
505513
msgstr "Try OCaml"
506514

507-
#: File "src/app/learnocaml_index_main.ml", line 684, characters 29-38
515+
#: File "src/app/learnocaml_index_main.ml", line 686, characters 29-38
508516
msgid "Lessons"
509517
msgstr "Cours"
510518

511-
#: File "src/app/learnocaml_index_main.ml", line 691, characters 32-44
519+
#: File "src/app/learnocaml_index_main.ml", line 693, characters 32-44
512520
#: "src/app/learnocaml_playground_main.ml", 73, 23-35
513521
msgid "Playground"
514522
msgstr "Bac-à-sable"
515523

516-
#: File "src/app/learnocaml_index_main.ml", line 694, characters 28-35
524+
#: File "src/app/learnocaml_index_main.ml", line 696, characters 28-35
517525
msgid "Teach"
518526
msgstr "Enseignement"
519527

520-
#: File "src/app/learnocaml_index_main.ml", line 792, characters 15-69
528+
#: File "src/app/learnocaml_index_main.ml", line 794, characters 15-69
521529
msgid "Be sure to write down your token before logging out:"
522530
msgstr "Assurez-vous d'avoir noté votre token :"
523531

524-
#: File "src/app/learnocaml_index_main.ml", lines 794-796, characters 15-26
532+
#: File "src/app/learnocaml_index_main.ml", lines 796-798, characters 15-26
525533
msgid ""
526534
"WARNING: the data could not be synchronised with the server. Logging out "
527535
"will lose your local changes, be sure you exported a backup."
@@ -530,32 +538,32 @@ msgstr ""
530538
"En vous déconnectant, vous perdrez tous les changements locaux, à moins "
531539
"d'avoir exporté votre espace de travail au préalable."
532540

533-
#: File "src/app/learnocaml_index_main.ml", line 798, characters 22-30 45-53
534-
#: 820, 9-17
541+
#: File "src/app/learnocaml_index_main.ml", line 800, characters 22-30 45-53
542+
#: 822, 9-17
535543
msgid "Logout"
536544
msgstr "Déconnexion"
537545

538-
#: File "src/app/learnocaml_index_main.ml", line 811, characters 9-21
546+
#: File "src/app/learnocaml_index_main.ml", line 813, characters 9-21
539547
msgid "Show token"
540548
msgstr "Afficher le token"
541549

542-
#: File "src/app/learnocaml_index_main.ml", line 814, characters 9-25
550+
#: File "src/app/learnocaml_index_main.ml", line 816, characters 9-25
543551
msgid "Sync workspace"
544552
msgstr "Synchroniser"
545553

546-
#: File "src/app/learnocaml_index_main.ml", line 817, characters 9-25
554+
#: File "src/app/learnocaml_index_main.ml", line 819, characters 9-25
547555
msgid "Export to file"
548556
msgstr "Exporter vers un fichier"
549557

550-
#: File "src/app/learnocaml_index_main.ml", line 818, characters 9-17
558+
#: File "src/app/learnocaml_index_main.ml", line 820, characters 9-17
551559
msgid "Import"
552560
msgstr "Importer"
553561

554-
#: File "src/app/learnocaml_index_main.ml", line 819, characters 9-36
562+
#: File "src/app/learnocaml_index_main.ml", line 821, characters 9-36
555563
msgid "Download all source files"
556564
msgstr "Télécharger tous les fichiers sources"
557565

558-
#: File "src/app/learnocaml_index_main.ml", line 825, characters 38-44
566+
#: File "src/app/learnocaml_index_main.ml", line 827, characters 38-44
559567
msgid "Menu"
560568
msgstr "Menu"
561569

0 commit comments

Comments
 (0)