Compare commits

...

481 Commits

Author SHA1 Message Date
bmartins b39a6d220d build(CI): add k8 cluster config 2023-03-27 11:36:00 +02:00
tykayn 481190f3bf :gears: configure endpoints to use docker port locally
Signed-off-by: tykayn <15d65f2f-0b14-4f70-bf34-e130180ed62b@users.tedomum.net>
2023-01-23 12:23:03 +01:00
tykayn 10bbf12ab6 :gears: remove mock api proxy on port 8000 in frontend
Signed-off-by: tykayn <15d65f2f-0b14-4f70-bf34-e130180ed62b@users.tedomum.net>
2023-01-23 12:22:01 +01:00
Tykayn ec0196fd24 improve getting started doc with config files 2022-12-21 18:56:28 +01:00
ty kayn 2820baa227 Merge branch 'weblate-funky-framadate-funky-framadate-front' into 'master'
Translations update from Weblate

See merge request framasoft/framadate/funky-framadate-front!74
2022-11-14 10:45:40 +00:00
Weblate 715cc4f77c Translations update from Weblate 2022-11-14 10:45:39 +00:00
Tykayn 4170c65e17 config to hide demo headers on homepage 2022-08-23 14:19:06 +02:00
Tykayn 23df4a5899 style on comments bubbles 2022-03-22 11:53:45 +01:00
Tykayn c6861d1690 put correct icons in participation vote, add dropdown on option button 2022-03-22 10:31:05 +01:00
Tykayn 873c7dd9c8 add advanced icons 2022-03-22 10:13:25 +01:00
tykayn 83e00d57f8 display error message on creation if any 2022-03-21 15:40:08 +01:00
tykayn 0c24b2e602 title typo levels responsive too 2022-03-21 15:32:15 +01:00
tykayn 0c25809159 dialog element 2022-03-21 14:07:20 +01:00
tykayn 778f5b4716 put back leaving modal, and focus on hour choice when we add one for a day 2022-03-21 13:50:38 +01:00
tykayn 5e92466854 home emphasis on demo components 2022-03-21 13:46:32 +01:00
tykayn e5f7e6bb83 id step buttons 2022-03-21 13:45:16 +01:00
tykayn 0afad9c7a3 🎨 custom_url font size 2022-03-21 13:36:07 +01:00
tykayn 248f225fa0 remove aria labels on nav steps 2022-03-21 13:33:08 +01:00
tykayn aa1f146278 default to calendar mode 2022-03-21 13:02:26 +01:00
tykayn 9de903f867 :gears: RGAA skip links shown on keyboard nav 2022-03-21 12:26:45 +01:00
Tykayn 2dd8c8e825 link anchor in success page 2022-03-21 11:12:28 +01:00
Tykayn 62489dd250 default max count of answers set to a big number 2022-03-21 10:32:13 +01:00
Tykayn 5c1e7119b2 mobile menu min height 2022-03-15 11:38:23 +01:00
Tykayn 934e004a33 mobile button to exit menu, padding on main col on small screens 2022-03-15 11:18:38 +01:00
Tykayn 6afb4d4640 helpers to colorize svg for yes maybe no 2022-03-15 11:01:16 +01:00
Tykayn d76bd5a2d9 title margin top in popup 2022-03-14 18:07:48 +01:00
Tykayn 31e9e4eab2 title top position eased by step padding 2022-03-14 18:04:54 +01:00
Tykayn d9e0b270b1 step 3 text choice url display break word 2022-03-14 17:49:59 +01:00
tykayn 11a9035816 🎨 step 7 style and email template
Signed-off-by: tykayn <15d65f2f-0b14-4f70-bf34-e130180ed62b@users.tedomum.net>
2022-03-14 17:49:11 +01:00
Tykayn 9a6a052608 update modal content on text edit click button 2022-03-14 17:18:02 +01:00
Tykayn fef2e7e78c style image in text links 2022-03-14 17:02:56 +01:00
Tykayn 57a7f3dbfc close modal on click 2022-03-14 16:19:14 +01:00
Tykayn 6e1a3c57f4 text choice place of buttons, and modal unification 2022-03-14 16:18:48 +01:00
Tykayn a620566563 Merge remote-tracking branch 'weblate/master' 2022-03-14 15:33:11 +01:00
Tykayn c3b1df4fc7 home modal to search for polls by email, style, buttons in footer 2022-03-14 15:33:04 +01:00
Tykayn e09429d0d8 style participation page, button colors and placeholder icons bg, cancel modal content 2022-03-14 15:21:26 +01:00
Tykayn 0319d75b40 pattern email validation 2022-03-14 11:18:17 +01:00
Berto Te a2add4efd8 Translated using Weblate (Spanish)
Currently translated at 100.0% (807 of 807 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/es/
2022-03-12 17:26:08 +01:00
Tykayn 123effe9f7 go to step notification change 2022-03-11 15:13:38 +01:00
Tykayn 2b6e8ea5c1 error message when no date selected on hour page; add no default day 2022-03-10 16:43:59 +01:00
Tykayn e8dc383eae add bullet on lang selector 2022-03-10 16:37:17 +01:00
Tykayn 4f5f8df077 remove column and container in resume step 2022-03-10 13:13:42 +01:00
Tykayn ffeb21e8fe fix focus on hour of correct day 2022-03-10 13:02:24 +01:00
Tykayn a44100b7a0 style of small trash icon, placing negative margins, bg icon in css 2022-03-10 12:49:07 +01:00
Tykayn 86229138da remove dom classes in popups 2022-03-10 12:00:31 +01:00
Tykayn 0d3fdf78eb focus on previous hour when deleting one 2022-03-10 11:08:04 +01:00
Tykayn 8998ee2d9e uniform titles 2022-03-10 11:06:18 +01:00
tykayn 874b9cdf16 toast on day deletion, icon trash 2 replacement
Signed-off-by: tykayn <15d65f2f-0b14-4f70-bf34-e130180ed62b@users.tedomum.net>
2022-03-10 10:38:49 +01:00
Tykayn 41ce51b421 unify lang selector action display 2022-03-10 10:11:49 +01:00
Tykayn c288c6716b Merge remote-tracking branch 'weblate/master' 2022-03-10 09:52:51 +01:00
Tykayn c93825a527 popup cancel creation, buttons 2022-03-10 09:52:35 +01:00
Tykayn 7d1385185b display all buttons on home, style accordingly, remove bulma buttons styles 2022-03-10 09:30:27 +01:00
Elegant Codes a91bc20660 Translated using Weblate (French)
Currently translated at 99.2% (798 of 804 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/fr/
2022-03-09 22:42:00 +01:00
Tykayn e84cfa9194 add buttons page 2022-03-09 22:41:52 +01:00
Tykayn aad31c9d5f default font for inputs 2022-03-07 15:12:56 +01:00
ElG ae5ee1f087 Translated using Weblate (French)
Currently translated at 99.2% (798 of 804 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/fr/
2022-03-04 17:19:05 +01:00
ElG f62bf46f4f Translated using Weblate (French)
Currently translated at 99.5% (800 of 804 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/fr/
2022-03-04 16:05:53 +01:00
ElG 1c90d1ba32 Translated using Weblate (French)
Currently translated at 99.5% (800 of 804 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/fr/
2022-03-04 15:23:24 +01:00
Berto Te ab6f320438 Translated using Weblate (Spanish)
Currently translated at 100.0% (804 of 804 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/es/
2022-03-04 10:27:50 +01:00
Ophélie Coelho 9c3c04bf6d Translated using Weblate (French)
Currently translated at 99.5% (800 of 804 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/fr/
2022-03-04 10:27:50 +01:00
Tykayn caa40cbd55 remove home link in nav 2022-03-03 15:36:43 +01:00
Tykayn 0b1c909182 focus on day list input on delete and add choice 2022-03-03 11:29:11 +01:00
Tykayn 8a22dd85eb legend on day list 2022-03-02 14:03:03 +01:00
Tykayn d1367ced27 step 2 : add legend 2022-03-02 11:30:10 +01:00
Tykayn 626b75e862 hide home icon 2022-03-02 11:26:34 +01:00
Tykayn 90e2156dce h1 for poll kind 2022-03-02 11:22:28 +01:00
Tykayn 24907bfe04 title in p 2022-03-01 16:59:28 +01:00
Tykayn 7e973408fa fieldset date choice container 2022-03-01 16:53:45 +01:00
Tykayn 1f04f12f1e style of advanced page 2022-03-01 15:38:04 +01:00
Tykayn c3433440d7 unify labels 2022-03-01 12:02:18 +01:00
Tykayn 26b0babf92 same 2022-03-01 11:54:06 +01:00
Tykayn 5d3e074c39 change popup default width to 454px 2022-03-01 11:53:15 +01:00
Tykayn 0c8cb9248e style on hours main 2022-03-01 11:49:42 +01:00
Tykayn 6f49099cdf placing button to delete, add aria infos in step 3 2022-03-01 11:22:11 +01:00
Tykayn 80473be29e stepper title position 2022-03-01 11:02:17 +01:00
Tykayn 3135f299f4 bg image for kind of poll 2022-03-01 10:56:46 +01:00
Tykayn 6ab5c18174 translate step content, change order of words in title 2022-03-01 10:46:09 +01:00
Tykayn bfe427b85a better link after creation on success action 2022-03-01 10:20:47 +01:00
Tykayn 96d2d0a31d remove nav mat-sidenav 2022-02-28 21:39:07 +01:00
Tykayn 6fb255ac22 titres d'étape en h1 2022-02-28 13:41:33 +01:00
Ewen 49cc690687 Translated using Weblate (Breton)
Currently translated at 70.5% (567 of 804 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/br/
2022-02-21 10:27:47 +01:00
Berto Te 43b349c42c Translated using Weblate (Spanish)
Currently translated at 100.0% (804 of 804 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/es/
2022-02-18 09:04:55 +01:00
Tykayn 10e274802b close button modal lang 2022-02-16 16:50:02 +01:00
Tykayn 3f492d5436 list of lang as written, rounded modal 2022-02-16 16:45:55 +01:00
Tykayn 61bb08f9ff step 5 : checkboxes withotu material design 2022-02-16 16:05:06 +01:00
Tykayn b437647064 roles in header and footer 2022-02-16 15:41:09 +01:00
Tykayn 01400ce372 remove mindate on calendar 2022-02-16 13:05:32 +01:00
Tykayn d349de743d remove wip component 2022-02-16 12:37:30 +01:00
Tykayn 3faecc4035 format date helper 2022-02-16 12:36:51 +01:00
Tykayn 65fbb6322b Merge remote-tracking branch 'weblate/master' 2022-02-16 12:08:02 +01:00
Tykayn e48caf3464 radius in stacked delete button of rounded-block 2022-02-16 12:07:20 +01:00
Berto Te 527214a836 Translated using Weblate (Spanish)
Currently translated at 85.3% (686 of 804 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/es/
2022-02-16 12:06:00 +01:00
Tykayn 92612bb403 stepper background color and height var 2022-02-16 12:05:55 +01:00
Tykayn 4a6221d9bb bottom navbar zindex under modal backdrop 2022-02-16 12:02:07 +01:00
Tykayn cf93f5637c fix focus modal lang 2022-02-16 11:57:08 +01:00
Tykayn 80736d111f remove div in h1 for stepper 2022-02-16 11:53:53 +01:00
Tykayn c727c4e316 success icon green stroke 2022-02-16 11:46:58 +01:00
Tykayn b5435dea8f add mockup logo round 2022-02-15 21:32:32 +01:00
Tykayn 69e028292f header width 2022-02-15 16:12:01 +01:00
Tykayn d4e856a15f style calendar small screen and header button 2022-02-15 15:41:49 +01:00
Tykayn 978ea735a6 style landing 2022-02-15 15:04:49 +01:00
Tykayn 3fa415f24c position header 2022-02-15 14:48:50 +01:00
Tykayn ed6b3794bf no border on some buttons, popup 2022-02-15 14:15:40 +01:00
Tykayn 9fa7704473 public service poll 2022-02-15 14:06:25 +01:00
Tykayn 7d0d04954c form and radio button 2022-02-15 14:04:41 +01:00
Tykayn eb1fffb628 create comment from comment form 2022-02-15 12:37:37 +01:00
Tykayn 5d25754c16 lang selector aria and ids 2022-02-15 12:32:27 +01:00
tykayn 00a2dd7e1d color of lang selector text
Signed-off-by: tykayn <15d65f2f-0b14-4f70-bf34-e130180ed62b@users.tedomum.net>
2022-02-15 12:13:12 +01:00
tykayn 8b499bbb98 post comment api url change
Signed-off-by: tykayn <15d65f2f-0b14-4f70-bf34-e130180ed62b@users.tedomum.net>
2022-02-15 12:11:41 +01:00
tykayn 1b53fe7bbf time list display manually
Signed-off-by: tykayn <15d65f2f-0b14-4f70-bf34-e130180ed62b@users.tedomum.net>
2022-02-15 12:11:21 +01:00
Tykayn 7db8bf3f56 🎨 placing bottom nav on small screens 2022-02-14 15:51:17 +01:00
Tykayn bbebaa4aae fix add anonymous comment 2022-02-14 14:37:42 +01:00
Tykayn 9cbca21aeb fix position bottom buttons on mobile, add long lang in bigger screen for selector 2022-02-14 11:36:41 +01:00
Tykayn 85344e8422 hover precedent button 2022-02-14 11:17:49 +01:00
Tykayn aa9f8ff9be validation constraints on steps 2022-02-14 11:13:49 +01:00
Tykayn c52153770d remove outline on click, disable active outline, add aria-label to nav steps 2022-02-14 11:06:17 +01:00
Tykayn ec6abfb680 outline buttons bottom calendar 2022-02-14 10:58:03 +01:00
Tykayn 8921348bbb empty date list after emptying calendar list 2022-02-14 10:54:06 +01:00
Tykayn 40b3a16e0f remove hour spans choice ni manual input 2022-02-14 10:50:19 +01:00
Tykayn a0066a5bcf remove bg color on calendar buttons lines 2022-02-14 10:43:42 +01:00
Tykayn 34da989c9b translate title on steps creation and on lang change 2022-02-14 10:37:38 +01:00
Ewen ba3cd5e8e2 Translated using Weblate (Breton)
Currently translated at 70.3% (565 of 803 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/br/
2022-02-12 15:48:15 +01:00
Quentin PAGÈS 4f7b6d29b7 Translated using Weblate (Occitan)
Currently translated at 71.9% (578 of 803 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/oc/
2022-02-12 15:48:12 +01:00
tykayn 5901379281 add some more german 👽 2022-02-11 18:30:44 +01:00
Tykayn 75183b579c 👽 Eo and De 2022-02-11 17:42:57 +01:00
Tykayn dd31f5695b add jap 2022-02-11 13:48:42 +01:00
Tykayn 6c5418c484 fix display of text to vote 2022-02-11 12:30:36 +01:00
Tykayn d605f3c9db close moblie menu on button 2022-02-11 12:23:57 +01:00
Tykayn 0dfdc0b4e0 contain mobile menu 2022-02-11 12:18:20 +01:00
Tykayn 8a39c43ead datepicker cell size 2022-02-11 12:11:53 +01:00
Tykayn 3670a7efb2 stepper style 2022-02-11 12:04:32 +01:00
Tykayn 62ca7e6a16 page not found enrichment 2022-02-11 11:53:45 +01:00
Tykayn d097d80dda display mobile menu on stepper 2022-02-11 11:43:50 +01:00
Tykayn cc79114c79 smaller height of nav 2022-02-11 10:59:02 +01:00
Tykayn 0fde16e14f display fav choices 2022-02-11 10:02:05 +01:00
Tykayn e3b2e685f1 result simple bar width calculations 2022-02-11 09:36:22 +01:00
Tykayn e3b9a82928 bar style, nav buttons in vote 2022-02-11 09:19:34 +01:00
Tykayn 0a6531793d style close button popup creation quit 2022-02-10 15:53:00 +01:00
Tykayn d1862485dc style in leaving creation popup 2022-02-10 14:50:05 +01:00
ty kayn 4645be41d9 Merge branch 'weblate-funky-framadate-funky-framadate-front' into 'master'
Translations update from Weblate

See merge request framasoft/framadate/funky-framadate-front!66
2022-02-10 12:46:03 +00:00
Weblate 23e3ccade8 Translations update from Weblate 2022-02-10 12:46:02 +00:00
Tykayn 6ce5f6cb37 colors of bars in results 2022-02-10 12:22:16 +01:00
Tykayn e9850bca2d display text choices in consultation 2022-02-10 12:16:11 +01:00
tykayn fc3f2daec0 copy button default show text
Signed-off-by: tykayn <15d65f2f-0b14-4f70-bf34-e130180ed62b@users.tedomum.net>
2022-02-10 12:02:21 +01:00
Tykayn 60d846694a copy text in pollService, handle pass link 2022-02-10 11:15:48 +01:00
Tykayn 01a2e40b71 remove b in next button 2022-02-09 16:00:57 +01:00
Tykayn 55753c836e style on calendar 2022-02-09 15:56:34 +01:00
tykayn 8f850d1c3e reinit modal to add img link after validation of popup
Signed-off-by: tykayn <15d65f2f-0b14-4f70-bf34-e130180ed62b@users.tedomum.net>
2022-02-09 15:55:16 +01:00
Tykayn a14ccb3ddd responsive home and stepper nav 2022-02-09 14:47:51 +01:00
Tykayn f635400d94 better responsive stepper bar 2022-02-09 14:27:22 +01:00
Tykayn 73dc9d69f3 choice step jump in nav 2022-02-09 12:26:47 +01:00
Tykayn 5edeb34ceb feature choice text 2022-02-09 12:25:08 +01:00
Tykayn 8a6b331355 mode calendar by default 2022-02-09 11:32:08 +01:00
Tykayn a67d2bd58a success page 2022-02-09 11:30:22 +01:00
Tykayn bd825ec20e add owner data 2022-02-09 10:31:06 +01:00
Tykayn 206b7ea9bd Merge remote-tracking branch 'weblate/master' 2022-02-08 18:36:23 +01:00
Quentin PAGÈS 26fbe3f3fc Translated using Weblate (Occitan)
Currently translated at 59.0% (471 of 797 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/oc/
2022-02-08 18:29:28 +01:00
Tykayn 736cdade3f translate short lang Ja 2022-02-08 18:29:22 +01:00
Tykayn 9a24654682 👽 fix Catalan 2022-02-08 18:23:08 +01:00
Berto Te 9c2d667e03 Translated using Weblate (Spanish)
Currently translated at 82.1% (655 of 797 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/es/
2022-02-08 18:14:18 +01:00
Tykayn aa6b7bd98b 🎨 icons for poll kind 2022-02-08 18:14:11 +01:00
Tykayn 5e3bb46d69 🎨 shorten stepper 2022-02-08 18:11:37 +01:00
Tykayn c7e4798ce0 translate poll creation, buttons place in stepper 🎨 2022-02-08 18:06:47 +01:00
Tykayn 19b9d61192 add appLanding image in prod env 2022-02-08 14:52:14 +01:00
Tykayn 1f4809e56a add favicon calendar 2022-02-08 14:46:13 +01:00
Tykayn 612b65a3a0 static page change routes, add support mail and webpage in env 2022-02-08 14:37:07 +01:00
Tykayn 00f48d102a 🎨 landing page white background 2022-02-08 14:04:09 +01:00
Tykayn f9c4eda5e7 popup to display lang selection 2022-02-08 13:44:17 +01:00
Tykayn 29effc4f09 add comment in participation 2022-02-08 13:05:47 +01:00
Tykayn 05fbbdf466 🐛 fix in consultation user 2022-02-07 19:10:34 +01:00
Tykayn 81a6e689e2 fix publicity of properties in consultation 2022-02-07 19:09:38 +01:00
Tykayn 4ee326445b fix step count in vote 2022-02-07 19:06:28 +01:00
Tykayn ecea75b351 color on voting step 2022-02-07 19:05:14 +01:00
ButterflyOfFire 0012ad3f77 Translated using Weblate (Arabic)
Currently translated at 10.6% (85 of 796 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/ar/
2022-02-07 16:19:30 +01:00
ButterflyOfFire cdb8525983 Translated using Weblate (Arabic)
Currently translated at 4.4% (35 of 781 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/ar/
2022-02-07 16:19:30 +01:00
Ewen c5172ac29e Translated using Weblate (Breton)
Currently translated at 53.0% (414 of 781 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/br/
2022-02-07 16:19:30 +01:00
Ewen 8994cbacaf Translated using Weblate (English)
Currently translated at 100.0% (781 of 781 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/en/
2022-02-07 16:19:30 +01:00
Tykayn d82e0f9650 user infos on vote 2022-02-07 16:19:23 +01:00
Tykayn e74ea2dfd4 display choices grouped in consult vote 2022-02-07 16:12:32 +01:00
Tykayn c3bdc1a015 display list of date choices in participation 2022-02-07 15:33:39 +01:00
Tykayn 422cf9f19e Merge remote-tracking branch 'weblate/master' 2022-02-07 13:58:42 +01:00
Tykayn d8f2a718e4 add AR lang 👽 and complete sections of consultation 2022-02-07 13:58:23 +01:00
ButterflyOfFire b5ba1449f1 Added translation using Weblate (Arabic) 2022-02-07 13:21:38 +01:00
Ewen 8583cf5bd0 Translated using Weblate (Breton)
Currently translated at 48.0% (375 of 781 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/br/
2022-02-07 13:12:19 +01:00
Tykayn 4c9c691f4e up hungarian 2022-02-07 13:11:56 +01:00
Tykayn 5dde4415eb start participation landing texts 2022-02-07 13:11:56 +01:00
Thomas Citharel 0e22b2bc93 Merge branch 'weblate-funky-framadate-funky-framadate-front' into 'master'
Translations update from Weblate

See merge request framasoft/framadate/funky-framadate-front!62
2022-02-07 10:58:40 +00:00
ty kayn c804129ffe Translated using Weblate (Esperanto)
Currently translated at 3.5% (28 of 781 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/eo/
2022-02-07 11:44:29 +01:00
Tykayn e9ca4343db 🐛 fix import edit component for consultation 2022-02-07 11:44:23 +01:00
Tykayn 9016b6d699 add components for consultation 2022-02-07 11:42:25 +01:00
Tykayn b69e48fbe9 fix Eo, move Po files to old stuff 2022-02-07 11:08:48 +01:00
Tykayn 3c63757d70 fix coma in json 2022-02-07 11:01:55 +01:00
Tykayn 17297e57ee add EN.json to temp fix weblate 2022-02-06 21:08:00 +01:00
Tykayn 9d3b2b8f7c fix source en 2022-02-04 19:05:19 +01:00
Tykayn c9b0888d6f 👽 translate stepper component 2022-02-04 18:50:39 +01:00
ty kayn df0481a187 Merge branch 'weblate-funky-framadate-funky-framadate-front' into 'master'
Translations update from Weblate

See merge request framasoft/framadate/funky-framadate-front!61
2022-02-04 17:37:06 +00:00
ty kayn 5711982fb9 Merge branch 'master' into 'weblate-funky-framadate-funky-framadate-front'
# Conflicts:
#   src/assets/i18n/ja.json
2022-02-04 17:36:48 +00:00
Tykayn 9bb8add9b4 👽 add japanese 2022-02-04 18:28:55 +01:00
ty kayn 10a34af1f0 Added translation using Weblate (Japanese) 2022-02-04 18:15:45 +01:00
Tykayn ddc1289ddd 👽 lowercase for translation json and selector of lang 2022-02-04 18:15:35 +01:00
ty kayn c41cb3c514 Merge branch 'weblate-funky-framadate-funky-framadate-front' into 'master'
Translations update from Weblate

See merge request framasoft/framadate/funky-framadate-front!60
2022-02-04 16:53:39 +00:00
ty kayn 840f5a16df Translated using Weblate (French)
Currently translated at 100.0% (774 of 774 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/fr/
2022-02-04 17:50:26 +01:00
Tykayn b5103a4599 👽 italien creation sentences 2022-02-04 17:50:21 +01:00
Tykayn c58d649493 add Espéranto words 2022-02-04 17:45:04 +01:00
Tykayn 496ce7aa75 fix en translation 2022-02-04 17:37:34 +01:00
Tykayn 28439b2bc1 list date and time slices in resume step 7 2022-02-04 16:13:30 +01:00
Tykayn 3a51474a53 display in advanced params 2022-02-04 15:57:21 +01:00
Tykayn 191d87d0a5 advanced display, hide WIP 2022-02-04 15:09:48 +01:00
Tykayn 61c5d2ca9a 🎨 style on step 4 2022-02-04 14:55:20 +01:00
Tykayn 73209f4f4b style step 4 2022-02-04 14:48:29 +01:00
Tykayn 2ba8e10524 popup to set all hours at once 2022-02-04 14:38:59 +01:00
Tykayn d9042c1993 🐛 deduplicate buttons to add a date 2022-02-04 13:44:59 +01:00
Tykayn 217d9a97c7 update manual text dates input on change and prefill 2022-02-04 13:40:19 +01:00
Tykayn 19e5e07d26 add translated sentences in creation steps 2022-02-04 13:30:04 +01:00
ty kayn 2912c3bbab Merge branch 'weblate-funky-framadate-funky-framadate-front' into 'master'
Translations update from Weblate

See merge request framasoft/framadate/funky-framadate-front!59
2022-02-03 17:17:49 +00:00
Weblate b587ff983b Translations update from Weblate 2022-02-03 17:17:49 +00:00
Tykayn 6914cb3853 add eo and nl files 2022-02-03 15:59:06 +01:00
tykayn da244551cf update po files from framadate 1 latest develop branch
Signed-off-by: tykayn <15d65f2f-0b14-4f70-bf34-e130180ed62b@users.tedomum.net>
2022-02-03 15:58:43 +01:00
ty kayn fae98de7ed Merge branch 'weblate-funky-framadate-funky-framadate-front' into 'master'
Translations update from Weblate

See merge request framasoft/framadate/funky-framadate-front!58
2022-02-03 14:46:10 +00:00
ty kayn 060bd0a51d Added translation using Weblate (Esperanto) 2022-02-03 15:43:48 +01:00
ty kayn 7559002bca Added translation using Weblate (Dutch) 2022-02-03 15:43:21 +01:00
Tykayn ea87f731d3 update translations 2022-02-03 15:42:30 +01:00
ty kayn 0070da3d2b Merge branch 'weblate-funky-framadate-funky-framadate-front' into 'master'
Translations update from Weblate

See merge request framasoft/framadate/funky-framadate-front!57
2022-02-03 14:40:40 +00:00
ty kayn 89a2a4fa99 Added translation using Weblate (Spanish) 2022-02-03 15:38:10 +01:00
ty kayn d7f61d0e47 Added translation using Weblate (Swedish) 2022-02-03 15:37:16 +01:00
ty kayn 04adc3bcd1 Added translation using Weblate (Catalan) 2022-02-03 15:37:16 +01:00
Tykayn 6d8210206a add missing french from new English file 2022-02-03 15:37:09 +01:00
Tykayn dc8a56ba29 merge weblate 2022-02-03 15:27:45 +01:00
Tykayn a0df5e51ed remove oc to fix merge 2022-02-03 15:23:53 +01:00
Tykayn 8a718d064f merge weblate files 2022-02-03 15:22:45 +01:00
Tykayn 755954d7ea add weblate files for lang 2022-02-03 15:21:33 +01:00
Tykayn 4f7769893c rollback FR to previous 2022-02-03 15:10:21 +01:00
Tykayn 4f7475de28 rollback FR translation 2022-02-03 15:06:28 +01:00
Tykayn cceafed2d4 use uppercase letter for fr and en lang 2022-02-03 15:02:13 +01:00
Tykayn 1c5a811ed7 move new langues 2022-02-03 15:01:10 +01:00
Tykayn 3b6be426b6 small caps for locale json files 2022-02-03 14:16:52 +01:00
Tykayn f8eea43782 add var apptitle in landing 2022-02-03 14:08:03 +01:00
Tykayn 85c0e5ec9e fix english source 2022-02-03 14:03:44 +01:00
Tykayn 9fb31c0a08 fix english strings 2022-02-03 13:50:34 +01:00
Tykayn 4f8b933030 up translations, remove bad files 2022-02-03 13:25:48 +01:00
ty kayn 401abeb23f Merge branch 'weblate-funky-framadate-funky-framadate-front' into 'master'
Translations update from Weblate

See merge request framasoft/framadate/funky-framadate-front!56
2022-02-03 12:23:11 +00:00
Weblate 3ad3009c78 Translations update from Weblate 2022-02-03 12:23:11 +00:00
Tykayn 902c50d8cb add langs from framadate 1 in selector component 2022-02-03 12:26:04 +01:00
Tykayn 819e99f75e add sentences for previous translations of framadate 1 2022-02-03 12:09:06 +01:00
Tykayn 1ced919bbd add weblate OC and ES up 2022-02-03 11:58:50 +01:00
Tykayn f96395af41 merge fr 2022-02-03 11:53:28 +01:00
Tykayn f2bf8e2949 add fr from weblate 2022-02-03 11:50:45 +01:00
Tykayn e633425611 widget translation in readme 2022-02-03 11:44:30 +01:00
Tykayn 622239b225 add doc 2022-02-03 11:41:29 +01:00
Tykayn 68e4823eed add langs in enum 2022-02-03 11:33:57 +01:00
Tykayn d181578893 auto set lang from local storage service 2022-02-03 11:16:28 +01:00
Tykayn 2956ef0167 translate doc, add ES 2022-02-03 10:45:09 +01:00
Tykayn c914eae60d translate participation in EN, add delays date count wording 2022-02-03 10:29:39 +01:00
Tykayn 7063d2346f sentences for participation 2022-02-03 10:02:08 +01:00
Tykayn 6e76d7fc33 succes creation lighten page 2022-02-03 09:40:56 +01:00
Tykayn a43c92fa23 text translation on admin success component 2022-02-03 09:32:52 +01:00
Tykayn 920066a4a0 add translations in creations steps 2022-02-02 17:59:55 +01:00
Tykayn c4dee3eaad center column, step 2 buttons and text 2022-02-02 16:28:52 +01:00
Tykayn eacaf6bc87 weblate documentation, add keys in step one 2022-02-02 15:38:51 +01:00
ty kayn 0f860a56c8 Added translation using Weblate (Italian) 2022-02-02 14:43:01 +01:00
ty kayn d4fad088d4 Added translation using Weblate (Breton) 2022-02-02 14:42:42 +01:00
Quentin PAGÈS 9b8c4cac22 Translated using Weblate (Occitan)
Currently translated at 5.0% (32 of 635 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/oc/
2022-01-30 16:27:42 +01:00
Quentin PAGÈS a0e78925fe Translated using Weblate (Occitan)
Currently translated at 0.3% (2 of 635 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/oc/
2022-01-28 00:37:07 +01:00
ty kayn 8c7487ebf3 Translated using Weblate (French)
Currently translated at 100.0% (635 of 635 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/fr/
2022-01-27 18:42:59 +01:00
ty kayn 85f589f5ca Added translation using Weblate (Occitan) 2022-01-27 18:42:59 +01:00
ty kayn 420ae43d7c Merge branch 'weblate-funky-framadate-funky-framadate-front' into 'master'
Translations update from Weblate

See merge request framasoft/framadate/funky-framadate-front!55
2022-01-27 11:21:09 +00:00
Berto Te 7284b9f547 Translated using Weblate (Spanish)
Currently translated at 100.0% (635 of 635 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/es/
2022-01-22 20:27:37 +01:00
Berto Te d17958c16c Translated using Weblate (Spanish)
Currently translated at 86.1% (547 of 635 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/es/
2022-01-21 02:30:11 +01:00
Berto Te 02b5f00708 Translated using Weblate (Spanish)
Currently translated at 43.1% (274 of 635 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/es/
2022-01-19 20:06:39 +01:00
Berto Te 3b19016854 Translated using Weblate (Spanish)
Currently translated at 38.5% (245 of 635 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/es/
2022-01-16 09:22:28 +01:00
Berto Te 6620c39a94 Translated using Weblate (Spanish)
Currently translated at 18.4% (117 of 635 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/es/
2022-01-14 20:52:00 +01:00
Berto Te 6eebe38515 Translated using Weblate (Spanish)
Currently translated at 4.0% (26 of 635 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/es/
2022-01-14 01:22:28 +01:00
Thomas Citharel e465233d91 Translated using Weblate (French)
Currently translated at 100.0% (635 of 635 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/fr/
2022-01-14 01:22:28 +01:00
Thomas Citharel a020e50f89 Translated using Weblate (English)
Currently translated at 100.0% (635 of 635 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/en/
2022-01-14 01:22:28 +01:00
ty kayn cf765953b1 Merge branch 'weblate-funky-framadate-funky-framadate-front' into 'master'
Translations update from Weblate

See merge request framasoft/framadate/funky-framadate-front!54
2022-01-13 08:38:29 +00:00
Berto Te 4211da1b89 Added translation using Weblate (Spanish) 2022-01-12 02:59:59 +01:00
Thomas Citharel 491244bd1e Translated using Weblate (French)
Currently translated at 100.0% (665 of 665 strings)

Translation: Funky Framadate/Funky Framadate Front
Translate-URL: https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front/fr/
2022-01-11 14:37:45 +01:00
Tykayn afc37caba2 fix missing env variable 2021-12-21 17:33:26 +01:00
tykayn e28b8d6ae4 fix model 2021-12-21 17:10:28 +01:00
tykayn 12ce993335 add texts for last steps and follow title hierarchy 2021-12-21 17:06:26 +01:00
tykayn d7c8ceabc4 preview of advanced config fields 2021-12-21 16:55:02 +01:00
tykayn 087a1ba2de fix autoscroll to top on nav change 2021-12-21 16:45:19 +01:00
tykayn cd2e27c399 default to calendar input 2021-12-21 16:36:43 +01:00
Tykayn f8e8958b68 hop 2021-12-21 16:02:25 +01:00
Tykayn 766ac2ad98 step 3 delete buttons 2021-12-21 15:20:41 +01:00
Tykayn e35f4f06d7 env to allow multi date span per day 2021-12-21 15:06:40 +01:00
Tykayn c799bea900 striked background on calendar disabled dates 2021-12-21 14:58:31 +01:00
Tykayn ee4f91c9ac remove css in angular conf 2021-12-21 14:42:42 +01:00
Tykayn a2f94a8f98 remove title 2021-12-20 16:46:00 +01:00
Tykayn 32027911dd add feather icons in assets folder, remove placeholders for all html 2021-12-20 16:45:00 +01:00
Tykayn 2683abba2a i18n on stepper 2021-12-17 17:47:57 +01:00
Tykayn 13e97e7b60 styling popup 2021-12-17 15:04:13 +01:00
Tykayn 4587d3eb52 update title step of html page 2021-12-17 12:19:32 +01:00
Tykayn 48637c5d54 placing of elements in popup 2021-12-17 12:13:34 +01:00
Tykayn 7888220aed popup cancel with correct text 2021-12-17 11:42:20 +01:00
Tykayn 34b97c55a6 RGAA: add outline for focused elements 2021-12-16 12:21:24 +01:00
Tykayn b84dd0bbd3 header style 2021-12-16 12:05:49 +01:00
Tykayn 7e64ec7f69 display heading order in stepper 2021-12-15 18:37:37 +01:00
Tykayn ba6f11d45c RGAA title hierarchy, focus on close button in popup 2021-12-15 18:34:39 +01:00
Tykayn 23bb4cde3a responsive calendar squares 2021-12-14 11:22:23 +01:00
Tykayn 18d8fd7b00 line height on homepage 2021-12-13 18:39:21 +01:00
Tykayn 3794f1a641 logo size 2021-12-13 18:30:25 +01:00
Tykayn 8885a31fa5 rename containers for homepage for harmony 2021-12-13 18:20:10 +01:00
Tykayn e4c3d4e022 style for homepage containers, lang selector icon, colors 2021-12-13 18:14:40 +01:00
Tykayn 9cf278f18b nav header 2021-12-13 16:18:24 +01:00
Tykayn e4fd637cb4 action before next in nav 2021-12-13 15:30:00 +01:00
Tykayn 24653ba480 move nav padding, simplify home screen 2021-12-13 14:26:36 +01:00
Tykayn c0e348978c margins on header 2021-12-10 11:08:37 +01:00
Tykayn 483e497399 bottom nav width limited to main column width 2021-12-10 10:49:38 +01:00
Tykayn 2a48633e83 correct size of advanced config content and all step width 2021-12-09 15:43:44 +01:00
Tykayn f993f5c31e place fixed nav on bottom of steps 2021-12-09 15:27:36 +01:00
Tykayn cf7e6603f9 style to fix button nav 2021-12-09 15:06:55 +01:00
Tykayn 9c55186aa1 style calendar lines 2021-12-09 13:19:14 +01:00
Tykayn e4ebebf0b6 remove border for cal, place label for text date input 2021-12-09 11:48:42 +01:00
Tykayn cdfff22967 style for mobile 2021-12-09 11:21:41 +01:00
Tykayn 7575e9ca50 displace buttons for nav and stepper 2021-12-09 10:38:13 +01:00
Tykayn c673bfaf52 height nav bottom 2021-12-08 18:20:05 +01:00
Tykayn 26baa4447d change on cancel button style 2021-12-08 18:17:28 +01:00
tykayn c393bee2b4 remove several hours by default step 3 2021-12-07 13:31:59 +01:00
Tykayn 7e96b88890 colors hover datepicker 2021-12-06 12:54:37 +01:00
Tykayn e3b54acb65 colors on selector of input in date list 2021-12-06 12:51:37 +01:00
Tykayn d2ce9ecac1 hover color on datepicker ripples 2021-12-06 12:25:39 +01:00
Tykayn e1ad358a78 fix popup dialog 2021-12-06 12:20:00 +01:00
Tykayn 8035ea700e fix cancel modal 2021-12-06 12:13:47 +01:00
Tykayn e4689a5e71 footer only on homepage 2021-12-06 10:47:55 +01:00
Tykayn 013bdaca84 remove feedback on app component 2021-12-06 10:47:24 +01:00
Tykayn 662cd4ef71 add icon nav header 2021-12-02 16:19:08 +01:00
Tykayn 3b7b21defa 🎨 style on mobile for nav, finish button hover 2021-12-02 16:09:36 +01:00
Tykayn 0cb295cce0 make common app-nav-steps component 2021-12-02 15:52:08 +01:00
Tykayn 1307b9f1a3 only one popup confirm 2021-12-01 19:00:00 +01:00
Tykayn 1f8315235c stepper reject function instead of close 2021-12-01 18:36:00 +01:00
Tykayn a43de5f410 fix header and steps buttons on bottom 2021-12-01 18:22:21 +01:00
Tykayn 307fd75615 kind selection fix colors, and fix double popup 2021-12-01 17:53:32 +01:00
Tykayn 6a9e85d66a stepper title style 2021-11-30 18:30:18 +01:00
Tykayn f958b012b9 title and label style 2021-11-30 18:27:50 +01:00
Tykayn dbecfe6195 add env creation_display_proposals_time_slices 2021-11-30 18:14:07 +01:00
Tykayn f1403fe2a0 hide time slices per day select, colors 2021-11-30 18:01:18 +01:00
Tykayn ab6cb0288d step 2 : fix display of radio button 2021-11-30 17:37:23 +01:00
Tykayn cc51a8efa9 grey on title step 2 + 2021-11-30 11:25:30 +01:00
Tykayn 1cab5c3cef style helvetica, color on first step 2021-11-30 11:17:44 +01:00
tykayn 3dbb108a2c add env vars for creation form
Signed-off-by: tykayn <15d65f2f-0b14-4f70-bf34-e130180ed62b@users.tedomum.net>
2021-11-30 11:17:28 +01:00
Tykayn 60d0678cb7 hide nav on creation, stepper bar color 🎨 2021-11-29 13:00:01 +01:00
caligulanorris 61214b5e0d disdouble cancel creation 2021-11-26 13:30:51 +01:00
Tykayn 14691db58b add font helvetica 2021-11-26 11:49:51 +01:00
Tykayn 434f4b82b1 check DTO for poll creation 2021-11-23 10:21:02 +01:00
Tykayn dba514dd46 retake of hour selections from step 3 to step 4 2021-11-22 15:56:43 +01:00
Tykayn 96799c8485 :gears: step 3 : set calendar as default 2021-11-22 15:39:11 +01:00
Tykayn 135cc5e512 Creation : add hours selection in step 4 2021-11-22 15:30:23 +01:00
Tykayn edcb1bdcf8 start date hour choices screen 2021-11-22 12:44:48 +01:00
Tykayn 77bad4783f fix node version to 12 in pipeline 2021-11-22 12:30:01 +01:00
Tykayn e26d468c73 up build pipeline for gitlab 2021-11-22 12:14:56 +01:00
ty kayn d5e6a0330b Merge branch 'date-convert-creation' into 'master'
Date convert creation

See merge request framasoft/framadate/funky-framadate-front!53
2021-11-22 11:13:37 +00:00
Tykayn 5d0613549d example link fix 404 2021-11-22 12:04:52 +01:00
Tykayn d4ab56483d variabilize local dev domain name 2021-11-22 11:51:21 +01:00
Tykayn 684d710003 env update for dev 2021-11-22 10:15:11 +01:00
Tykayn 2e8a1aa12b convert date list on poll creation 2021-11-22 10:09:50 +01:00
Tykayn 71b9fff475 move things in about page, style footer 🎨 2021-11-19 15:47:34 +01:00
tykayn a1d58a2812 place on steps, success button on creation button
Signed-off-by: tykayn <15d65f2f-0b14-4f70-bf34-e130180ed62b@users.tedomum.net>
2021-11-19 15:47:20 +01:00
Tykayn 83b66d9899 about page and landing content 2021-11-19 15:25:54 +01:00
Tykayn d009f42a56 detect homepage to add container 2021-11-18 14:57:07 +01:00
Tykayn 34632957fb env app version 2021-11-18 14:37:22 +01:00
Tykayn a92db69cf6 fix links for the 7 steps of creation 2021-11-18 13:07:01 +01:00
Tykayn da42c9e64d conditionnal displays on consultation 2021-11-18 13:00:29 +01:00
Tykayn 5f555136cf landing link on consultation, check allowed answers 2021-11-18 12:51:59 +01:00
Kayn Ty 424961b8bb fix landing participation properties 2021-11-18 12:15:40 +01:00
ty kayn 7502adc5bc Merge branch 'up-to-seven-steps' into 'master'
Up to seven steps

See merge request framasoft/framadate/funky-framadate-front!52
2021-11-18 11:02:55 +00:00
Tykayn 0a3b1659ee more data in resume, step 7 2021-11-18 12:00:03 +01:00
Tykayn 339b5da3e8 resume page style 2021-11-18 11:41:23 +01:00
Tykayn f26a6d7826 select dates text integration colors 2021-11-18 11:22:44 +01:00
Tykayn 56397d5a2c colors on datepicker 2021-11-18 10:49:55 +01:00
Tykayn 26109ee368 todo actions menu 2021-11-18 10:31:50 +01:00
Tykayn 56b48038e0 move consultation action buttons in actions-menu component 2021-11-18 10:02:13 +01:00
Tykayn 4e449b38a8 seven steps components and more steps for participation 2021-11-18 09:42:00 +01:00
ty kayn 5dfa315848 Merge branch 'creation-calendar-and-cancellation' into 'master'
Creation calendar and cancellation

See merge request framasoft/framadate/funky-framadate-front!51
2021-11-17 16:09:32 +00:00
Tykayn bf8c6a9b7a fix sort compare 2021-11-17 17:08:42 +01:00
Tykayn b1b6ec650a add and sort dates in text mode 2021-11-17 17:03:24 +01:00
Tykayn 0f4aac7e81 convert to date string for inputs 2021-11-17 16:52:16 +01:00
Tykayn 706fd28698 convert date to datepicker calendar in step 3 2021-11-17 16:25:24 +01:00
Tykayn 5ca08d489f space buttons under calendar 2021-11-17 15:36:45 +01:00
Tykayn 794bbec1a7 calendar style and colours 2021-11-17 15:31:09 +01:00
Tykayn 5b1b173b7b cancel button in stepper 2021-11-17 15:16:47 +01:00
Tykayn 2c10dfb6d6 cancel dialog on creation 2021-11-17 15:06:36 +01:00
ty kayn 5b5d17a880 Merge branch 'up-doc-2021' into 'master'
update docs and meeting notes

See merge request framasoft/framadate/funky-framadate-front!50
2021-11-17 11:23:10 +00:00
Tykayn e3210c881f update docs, meeting notes and screenshots 2021-11-17 12:22:04 +01:00
ty kayn c1ec249e02 Merge branch 'several-steps-creation' into 'master'
5 steps to create a poll

See merge request framasoft/framadate/funky-framadate-front!49
2021-11-16 18:46:40 +00:00
Tykayn a64647a545 fix pipeline build 2021-11-16 17:57:56 +01:00
Tykayn d538af4ca1 style calendar step 2021-11-16 17:30:31 +01:00
Tykayn e99a86bb4b style for kind of poll button 2021-11-16 16:35:27 +01:00
Tykayn a3db9b7cd5 highlight current step in stepper 2021-11-16 16:23:32 +01:00
Tykayn 4233a8eb7e handle no network on creation 2021-11-16 16:16:30 +01:00
Tykayn 475c420d96 conditionnal display of admin links if admin_key is present 2021-11-16 11:16:01 +01:00
Tykayn 8f6fe6044a labels for step one 2021-11-16 11:03:20 +01:00
Tykayn 2f26e27e31 fix default days to expire a poll 2021-11-14 17:43:18 +01:00
Tykayn 989208faa5 fix filling of choices in consultation component after refacto of poll's data in pollService 2021-11-14 17:25:57 +01:00
Tykayn fc1859719a use pollservice proxy to create poll and store the result in storage service 2021-11-14 17:02:20 +01:00
Tykayn 6796d6e39f emphasis on advanced config 2021-11-14 16:15:12 +01:00
Tykayn a0576a477d advanced config, toggle display clear password 2021-11-14 16:00:48 +01:00
Tykayn b3b8d46aa3 styles for steps 2021-11-14 15:48:27 +01:00
Tykayn c6d5a8fc8c stepper shortcuts option 2021-11-14 15:26:26 +01:00
Tykayn 18a2987c04 fix domain for demo test admin link 2021-11-14 14:54:14 +01:00
Tykayn 54f9e22070 debug error messages validation form 2021-11-12 18:17:49 +01:00
Tykayn 7b82b5506d regroup error list on top of page 2021-11-12 17:31:47 +01:00
Tykayn b9aea18d34 add fetch of config with admin key 2021-11-12 15:59:44 +01:00
Tykayn 96ef61c541 fix default values for creation validation 2021-11-12 13:27:18 +01:00
Tykayn d68ba7ac2a new poll from local form of the pollService 2021-11-12 13:00:16 +01:00
Tykayn cb971a5421 convert calendar dates to DTO creation 2021-11-12 12:50:21 +01:00
Tykayn 3dc7555747 autofill creation var in env 2021-11-12 12:09:48 +01:00
Tykayn 52ff89f1f5 fix demo build 2021-11-12 11:09:43 +01:00
Tykayn 2f1309bf6f 🐛 fix compile with rename pollservice functions 2021-11-08 18:25:04 +01:00
Tykayn 19127328d2 bg success 2021-11-08 17:24:28 +01:00
Tykayn c2c193bfa9 success page displays links from form data 2021-11-08 12:36:18 +01:00
Tykayn afdaf04a8f take back things for pollService, display success screen and advanced options 2021-11-08 12:09:35 +01:00
Tykayn e1a28a7c81 retouch homepage, add title html 2021-11-08 11:27:35 +01:00
tykayn 912e8af990 autofocus on first field of creation
Signed-off-by: tykayn <15d65f2f-0b14-4f70-bf34-e130180ed62b@users.tedomum.net>
2021-11-08 11:20:07 +01:00
Tykayn f4be6ed39d add text in footer 2021-11-08 10:56:03 +01:00
Tykayn 77cc54f2fc remove some debug info 2021-11-08 10:34:59 +01:00
Tykayn a438bdff6c translate calendar elements from app init 2021-11-08 10:26:16 +01:00
Tykayn c67f309180 style for calendar in step 3 2021-11-08 09:32:50 +01:00
Tykayn 938a8e72d9 confirm before reinit 2021-11-07 21:08:38 +01:00
Tykayn d726eb3668 fill back poll service 2021-11-07 15:21:27 +01:00
Tykayn 1a410f120b add libs and steps components 2021-11-07 14:52:49 +01:00
Tykayn e73336c00e fix public access to storageservice in template for detailed component 2021-09-09 21:14:41 +02:00
Tykayn 94ef23e3a3 show detailed display at first, fix range date values in table 2021-09-09 09:59:02 +02:00
Tykayn 5798f6d24e remove duplicate env var in prod 2021-06-10 14:43:08 +02:00
Tykayn 1bcd21317d add prod envs 2021-06-10 14:38:40 +02:00
Tykayn 6638ba1060 remove lib date value accessor, start date interval form 2021-06-10 14:12:57 +02:00
Tykayn 075d434c6f fix display of vote stacks detailed 2021-06-10 12:48:46 +02:00
Tykayn adc7c255d8 display detailled array of answers 2021-06-10 12:35:14 +02:00
Tykayn 13dbe0f89b update links proposal 2021-06-10 12:23:33 +02:00
Tykayn 06dbef8040 prompt page pass 2021-06-10 12:20:28 +02:00
Tykayn 534ef03f6a clean lifecycle of setting base votes choices on load of a poll 2021-06-10 11:43:17 +02:00
Tykayn 5a75685b0a refacto routing with pass 2021-06-10 10:52:32 +02:00
Tykayn 16c527d649 update of a vote stack and fill missing default votes 2021-06-10 10:17:15 +02:00
Tykayn 09ff4be2f6 remove logs on upgrade vote stack 2021-06-08 14:30:05 +02:00
Tykayn 5c290ea968 update vote in frontend 2021-06-08 10:41:46 +02:00
Tykayn 5ce3984dc9 disposition entête 2021-06-07 12:36:49 +02:00
Tykayn 748eb48125 keep stack of vote after creation 2021-06-07 12:16:56 +02:00
Tykayn e4ed956970 send vote stack to a new endpoint 2021-06-07 11:30:10 +02:00
Tykayn 36fe52aa82 public email_sent 2021-05-21 13:11:54 +02:00
Tykayn 8f108a1bdf update method name 2021-05-21 13:10:04 +02:00
Tykayn eb6a046fa1 #115 lister les features de démo sur l'accueil 2021-05-21 12:56:52 +02:00
Tykayn d05c77cb08 send email to owner, show if nothing is found 2021-05-21 12:31:42 +02:00
Tykayn 2c4be3e87a up env for prod interval 2021-05-20 15:32:16 +02:00
Tykayn e3fc7f270f back prod env 2021-05-20 15:08:06 +02:00
Tykayn 60bdb4c1fb remove accept charset header, blocking sending to back 2021-05-20 14:53:50 +02:00
Tykayn e66ca4448b remove loader service to fix api calls 2021-05-20 14:49:37 +02:00
Tykayn 597bde003f fix loading status, position of timeslices on large screen :style: 2021-05-20 14:45:19 +02:00
Tykayn 558f29843b up env for demo bliss 2021-05-20 14:37:53 +02:00
Tykayn fc0db05f23 stacks count on consultation page 2021-05-20 14:27:40 +02:00
Tykayn b23155172a send votestack and reload poll config 2021-05-20 14:23:57 +02:00
Tykayn c95f481af9 up env 2021-05-20 14:11:30 +02:00
Tykayn ee429e37cc fix missing openSimple func 2021-05-20 13:34:14 +02:00
Tykayn 3b8aa9d849 add toggle function to yes on all timeslices of a group choice 2021-05-20 13:25:45 +02:00
Tykayn 406bf71b92 random autofill on view page of a poll 2021-05-20 12:51:25 +02:00
Tykayn e86e7af5e1 assign datechoices from storage at creation of poll 2021-05-20 12:34:49 +02:00
Tykayn 6e61e49235 move buttons 2021-05-20 11:12:22 +02:00
Tykayn 1d9e6066e0 :style: alternate bg on days 2021-05-20 11:04:29 +02:00
Tykayn 7e12d9d34f style for adding time 2021-05-20 10:54:28 +02:00
Tykayn 4a47e9fea3 fix display of several time slices under days choices 2021-05-20 09:53:20 +02:00
Tykayn cf6395936e validate email, focus on kind field at load 2021-05-20 09:43:15 +02:00
Tykayn 5d02fc3167 show expiracy day after creation 2021-05-18 22:51:06 +02:00
Tykayn 09a507109a check validity and display send toast 2021-05-18 16:13:03 +02:00
Tykayn 03cbb508c7 more clean of primeng 2021-05-18 16:07:14 +02:00
Tykayn 39d6effabc remove primeng and old stuff components 2021-05-18 16:02:36 +02:00
Tykayn f628b5dc7b ignore mkdocs output folder 2021-05-18 15:20:43 +02:00
Tykayn 8fbf81762b update docs 2021-05-18 15:19:11 +02:00
Tykayn 4a7b989142 fix time slices creation, were all linked 2021-05-18 13:34:28 +02:00
Tykayn 0834ea3ffa default time for created days 2021-05-18 12:45:51 +02:00
Tykayn 3c4c0b5337 réarrangement des champs de date 2021-05-18 12:36:49 +02:00
Tykayn 345b90c2e1 indiquer le jour de la semaine avec les choix de date 2021-05-18 12:27:26 +02:00
Tykayn 2aca7ab282 drag and drop time slices 2021-05-18 12:12:08 +02:00
Tykayn 5028a54fb7 afficher les choix de plage horaires identiques 2021-05-18 12:02:36 +02:00
Tykayn 422090e997 next lang select on click on icon 2021-05-18 11:46:35 +02:00
Tykayn 71d139f177 start sliding transition between pages 2021-05-18 11:21:40 +02:00
Tykayn 11a0245890 indiquer champ en erreur, scroll bouton vers le premier 2021-05-18 11:02:50 +02:00
Tykayn 7ef4e4d4a4 floating hint about form errors 2021-05-18 10:47:16 +02:00
Tykayn f66603d187 add validation messages, autofill default values on creation of poll 2021-05-18 10:00:37 +02:00
Tykayn 4fefa3340c patch default form values from loaded poll #105 2021-05-17 17:36:24 +02:00
Tykayn a99290186c creation for simple date works 2021-05-17 16:15:54 +02:00
Tykayn 003f27ae82 split date choice 2021-05-17 15:25:22 +02:00
Tykayn 5c7aac3a53 move docs around 2021-05-17 13:39:52 +02:00
754 changed files with 28362 additions and 32973 deletions

View File

@ -1,12 +1,13 @@
module.exports = {
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint'],
plugins: ['@typescript-eslint', 'json'],
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/eslint-recommended',
'plugin:@typescript-eslint/recommended',
'plugin:prettier/recommended',
'prettier/@typescript-eslint',
'plugin:json/recommended',
],
parserOptions: {
ecmaVersion: 2018,

3
.gitignore vendored
View File

@ -5,6 +5,7 @@
/tmp
/out-tsc/
documentation
/site/
# Only exists if Bazel was run
/bazel-out
@ -52,3 +53,5 @@ Thumbs.db
# linter
.eslintcache
.ztr-directory

View File

@ -1,15 +1,16 @@
# image: weboaks/node-karma-protractor-chrome
image: node:latest
image: node:12.22.5
stages:
- build
# - pages
- test
# - test
# - e2e
cache:
paths:
- node_modules/
- .yarn
#pages:
# stage: pages
@ -38,9 +39,10 @@ cache:
build:
stage: build
before_script:
- yarn
script:
- yarn install --pure-lockfile
- npx ng build --prod
- yarn run build:prod:demobliss
cache:
policy: pull
@ -60,6 +62,6 @@ build:
# artifacts:
# paths:
# - public
# expire_in: 30 days
# expire_in: 30 dateChoices
# only:
# - master

View File

@ -1,11 +1,28 @@
# Framadate - funky version
![landing_page](docs/img/landing_page.png)
<a href="https://weblate.framasoft.org/engage/funky-framadate/">
<img src="https://weblate.framasoft.org/widgets/funky-framadate/-/funky-framadate-front/multi-auto.svg" alt="État de la traduction" />
</a>
<a href="https://weblate.framasoft.org/engage/funky-framadate/">
<img src="https://weblate.framasoft.org/widgets/funky-framadate/-/funky-framadate-front/open-graph.png" alt="État de la traduction" />
</a>
FR: Un logiciel libre de sondage fait par les contributeurs de l'association Framasoft, avec une API backend.
EN: A libre polling software made by contributors around the French association Framasoft.
This version uses a brand new backend API.
***
> l'API de backend est en PHP / Symfony, ses sources disponible sur framagit
https://framagit.org/tykayn/date-poll-api
***
## Pour débuter - getting started
[lire la doc pour débuter votre Funky Framadate](docs/GETTING_STARTED.md)
## Design et maquettes
Maquette naviguable: https://www.figma.com/file/Q3I15MEuOtTwL0WIQ2eSMu/%F0%9F%93%85-Framadate?node-id=0%3A6510
## Documentation
FR: Toute la documentation est disponible [dans le dossier "doc"](/docs), principalement en Français.
EN: All documentation is available in the "doc" folder, mainly in French because reasons.
@ -13,25 +30,31 @@ EN: All documentation is available in the "doc" folder, mainly in French because
# Version funky framadate
* Selon les maquettes par Thomas Bonamy : https://www.figma.com/file/Q3I15MEuOtTwL0WIQ2eSMu
* icones https://feathericons.com/
* [Spécifications](docs/cadrage/specifications-fonctionnelles)
* maquettes par @maiwann : https://scene.zeplin.io/project/5d4d83d68866d6522ff2ff10
* vidéo de démo des maquettes par @maiwann : https://nuage.maiwann.net/s/JRRHTR9D2akMAa7
* discussions sur framateam canal général : https://framateam.org/ux-framatrucs/channaels/framadate
* discussions techniques côté développeurs : https://framateam.org/ux-framatrucs/channels/framadate-dev
* [notes de réunion](notes-de-reunion)
* [traductions](traductions)
* [notes de réunion](docs/reunions)
* [traductions](docs/traductions)
## Screenshots - exemples de maquette de la nouvelle version
![funky_framadate_maquette](docs/img/Screenshot_2021-04-19%20migration%20depuis%20un%20Framadate%20version%201.jpeg)
![funky_framadate_maquette](docs/img/advanced_config.png)
![funky_framadate_maquette](docs/img/preview_creation.png)
![funky_framadate_maquette](docs/img/kind_poll.png)
![funky_framadate_maquette](docs/img/colors_framadate_funky.png)
![funky_framadate_maquette](docs/img/framdate_funky_design.png)
# Documentations sur Angular
* `{- sur sass -}` (on va utiliser CSS, si angular permet d'avoir des variables CSS, @newick)
# Exemple de maquette de la nouvelle version
![funky_framadate_maquette](docs/img/colors_framadate_funky.png)
![funky_framadate_maquette](docs/img/framdate_funky_design.png)
## LIBRARIES USED
| status | lib choice_label | usage |
@ -60,6 +83,4 @@ EN: All documentation is available in the "doc" folder, mainly in French because
| to be removed | [uuid](https://www.npmjs.com/package/uuid) | generate uuid |
---
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.1.
# Framadate
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.

View File

@ -1,3 +1,3 @@
# Résumé de Changelog
Le détail se trouve dans [CHANGELOG.md]
Le détail se trouve dans [CHANGELOG.md]()

View File

@ -22,12 +22,16 @@
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"assets": ["src/favicon.ico", "src/assets"],
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"node_modules/fork-awesome/css/fork-awesome.min.css",
"node_modules/primeng/resources/themes/nova-light/theme.css",
"node_modules/primeng/resources/primeng.min.css",
"node_modules/bulma-switch/dist/css/bulma-switch.min.css",
"node_modules/primeicons/primeicons.css",
"node_modules/primeng/resources/themes/saga-blue/theme.css",
"node_modules/primeng/resources/primeng.min.css",
"src/styles.scss"
],
"scripts": [
@ -73,8 +77,7 @@
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "framadate:build",
"proxyConfig": "src/proxy.conf.json"
"browserTarget": "framadate:build"
},
"configurations": {
"production": {
@ -95,8 +98,14 @@
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": ["tsconfig.app.json", "tsconfig.spec.json", "e2e/tsconfig.json"],
"exclude": ["**/node_modules/**"]
"tsConfig": [
"tsconfig.app.json",
"tsconfig.spec.json",
"e2e/tsconfig.json"
],
"exclude": [
"**/node_modules/**"
]
}
},
"e2e": {

551
docs/CHANGELOG.md Normal file
View File

@ -0,0 +1,551 @@
## v0.6.0 (2021-05-17)
* add mkdoc for all documentation [View](https://bitbucket.org/projects/test/repos/my-project/commits/6e0202a5a42256f4e2b49f746d7888a6608214f8)
* add changelog script [View](https://bitbucket.org/projects/test/repos/my-project/commits/b3833ec830100a9197fb9cb84cb4a9670f21e42d)
* 1.1.0 [View](https://bitbucket.org/projects/test/repos/my-project/commits/38388946143eb7881912023d4d3f2dc4403c62fe)
* messing with package version [View](https://bitbucket.org/projects/test/repos/my-project/commits/08ab0482dd5e25cb8152b92323660c35228c215d)
* 0.6.0 [View](https://bitbucket.org/projects/test/repos/my-project/commits/52792ba6472e4be43d2ce750c87d3c9097155da6)
## v0.5.0 (2021-05-04)
* :zap: remove generated documentation from compodoc [View](https://bitbucket.org/projects/test/repos/my-project/commits/f358120516bbf027e53758c93a581f93bed3d10a)
* :book: merge documentation from the wiki in the folder doc [View](https://bitbucket.org/projects/test/repos/my-project/commits/c689a679e21e6e8fd4efff71ef95d555f9c59d82)
* :book: update contribute [View](https://bitbucket.org/projects/test/repos/my-project/commits/c4982267d2ae6980ef6f72694cb322ae8bec6092)
* :zap: ability to customize app title and app logo in header from environment vars. fixes #87 #88 #89. [View](https://bitbucket.org/projects/test/repos/my-project/commits/621101aa38e5732885aa184174cd1d97a157c49f)
* :book: move documentation to doc folder [View](https://bitbucket.org/projects/test/repos/my-project/commits/70acabb056c61da806f565927e063dba66e7592e)
* :book: DOC : desired feature added in doc [View](https://bitbucket.org/projects/test/repos/my-project/commits/14d2a109d30d29a1a83d616d3e543d0cdf4bc084)
* :alien: i18n header menu, :gears: splits routes, :fix: RED theme fix in switch [View](https://bitbucket.org/projects/test/repos/my-project/commits/b4f496b08dbd2bdea757b9f2feb1007a81d8b86e)
* hop [View](https://bitbucket.org/projects/test/repos/my-project/commits/6db96397ea4fc7735f4a921cd8a9a912dafa2221)
* remove some broken automation [View](https://bitbucket.org/projects/test/repos/my-project/commits/5f072fe3abee9c0b5cc5126a11188cd5b70a58c7)
* only send list of polls by email to user [View](https://bitbucket.org/projects/test/repos/my-project/commits/e5214fdd9757a207ee01a0e263c1ab63df1edc12)
* move dev menu slider and show it only in dev mode env [View](https://bitbucket.org/projects/test/repos/my-project/commits/6059533c3635684d8422c2bf1c12a975390af5b4)
* start form [View](https://bitbucket.org/projects/test/repos/my-project/commits/8cac3d18621c35f7f3d73fcc699017f04cefdc6b)
* add form array for choices [View](https://bitbucket.org/projects/test/repos/my-project/commits/d9301559ef99902c3901afd0ee4a6a5035e77b81)
* :hammer: test the build with gitlab CI [View](https://bitbucket.org/projects/test/repos/my-project/commits/41fd153991fb1e324664cd27b9c2d4aca8a4f408)
* add variables from env in footer [View](https://bitbucket.org/projects/test/repos/my-project/commits/b0026fabc471d34f718c8aff95fca2a33c0b3623)
* start combine choices array [View](https://bitbucket.org/projects/test/repos/my-project/commits/4bec5828b386b4be2d73837c97731997e1588106)
* dynamically add choices [View](https://bitbucket.org/projects/test/repos/my-project/commits/8c119739a72fc6767e46791c2341656f53e7fc04)
* add all config controls [View](https://bitbucket.org/projects/test/repos/my-project/commits/e5b8d5b65ec32f170610f0186ed08b6fc23a1568)
* multiple choices for creation [View](https://bitbucket.org/projects/test/repos/my-project/commits/fa534af3ab200835a16f38c2e7b5998cbadb45f6)
* :alien: i18n import po files from previous framadate version [View](https://bitbucket.org/projects/test/repos/my-project/commits/a5b0d2c2d45aa4b58fdd08669568dd7f22b5d795)
* :alien: i18n add extraction lib [View](https://bitbucket.org/projects/test/repos/my-project/commits/60eeddbf21a575e84f054afe5defe54e258bb54f)
* :bug: select lang wigthout lifecycle bug [View](https://bitbucket.org/projects/test/repos/my-project/commits/10c1930e4d5c4be1ec7d6af208dc939705020e89)
* reorder questions [View](https://bitbucket.org/projects/test/repos/my-project/commits/8df2b95c1e287ab7a3a4f0127b8ec616260126dc)
* translate homepage [View](https://bitbucket.org/projects/test/repos/my-project/commits/d07f51dd910ad243e030cfd1fdba041f8264d1e2)
* togglable advanced options [View](https://bitbucket.org/projects/test/repos/my-project/commits/d3042b3723839f6b4710b77024f0f0fb10a87455)
* add keybaord shortcuts on array for choices [View](https://bitbucket.org/projects/test/repos/my-project/commits/4769ecefc3b6b59887baec2625bd5e35f23f6554)
* :zap: more settings for admin form with time and answers groups [View](https://bitbucket.org/projects/test/repos/my-project/commits/82910a9aae0750c80b87a04bd1c6e6634e68f05b)
* add time to date func [View](https://bitbucket.org/projects/test/repos/my-project/commits/94162c796cf5016634eccdeb18fc132711055eb2)
* :alien: convert sentences from framadate1 to json files [View](https://bitbucket.org/projects/test/repos/my-project/commits/a4c2387e1257e9684147bb7af9184d4550fa2b8e)
* add sentences in fr and en from framadate 1 [View](https://bitbucket.org/projects/test/repos/my-project/commits/3700ede667e90a43eb39f301a396feacbe05d570)
* :art: add pictures from undraw, translate sentences on homepage [View](https://bitbucket.org/projects/test/repos/my-project/commits/04f04d622dea3f963273eb038bc1c99e2832f1ca)
* reuse automatic slug from poll config in form [View](https://bitbucket.org/projects/test/repos/my-project/commits/3306e7c29d4f811a6ba624595457768e8c237bcc)
* adding reodering of choices beginning [View](https://bitbucket.org/projects/test/repos/my-project/commits/1745762ba3125c7ad054284e4fd6b4020482d6f2)
* :zap: add api version config in env [View](https://bitbucket.org/projects/test/repos/my-project/commits/1167b692eaea2ffe711a7a56797ed3017624a184)
* add fields to config of poll [View](https://bitbucket.org/projects/test/repos/my-project/commits/4eef4c4220a4b8523e6f7a430afda12c563edaae)
* try to get the list of polls [View](https://bitbucket.org/projects/test/repos/my-project/commits/1b49231d924d0c3a69d43d5c02645b4d2621d50c)
* create success page and route [View](https://bitbucket.org/projects/test/repos/my-project/commits/03f7c49c519e2db062de3d64a1cfdd8c1f109e05)
* spacing buttons [View](https://bitbucket.org/projects/test/repos/my-project/commits/d4e5c614a9397fdd7feaa0dc6da1d1160ccd4c52)
* split of creation components [View](https://bitbucket.org/projects/test/repos/my-project/commits/84b69a1366dacb521d4295c99eb630f636429ac4)
* homepage texts [View](https://bitbucket.org/projects/test/repos/my-project/commits/2d9f1f7d40468d0b2ba3634e7cdd6cbf3f1a8118)
* home page reorder and statistics, todo component [View](https://bitbucket.org/projects/test/repos/my-project/commits/5bac37a7905ba1ccd16bab3568a366bf8b9d9090)
* link to static pages [View](https://bitbucket.org/projects/test/repos/my-project/commits/1717f738d19e65c22d91b1f429cde654fb677ad0)
* include advanced choices and toggle visibility of sub component [View](https://bitbucket.org/projects/test/repos/my-project/commits/feb0de8270204c31cbb92f6a6420644cc1a99e9e)
* ordering base fields [View](https://bitbucket.org/projects/test/repos/my-project/commits/f96dc1f3c44b413eef1b64b4ff9ea8abca9fc34a)
* link to base config [View](https://bitbucket.org/projects/test/repos/my-project/commits/2d49389d117b8060fd343e7815b0894e4413667d)
* add choices for the future [View](https://bitbucket.org/projects/test/repos/my-project/commits/237984c04073efa133ee2fd5ba18ee90a9e16a0e)
* harmonizing poll default properties with payload and advanced config [View](https://bitbucket.org/projects/test/repos/my-project/commits/2a4219e14941679da323d1fd066d6fb6ca62e6f9)
* testing ciphering page [View](https://bitbucket.org/projects/test/repos/my-project/commits/40c0c3888902b046c9ab9f65549c57abbff5a1c3)
* fill poll config default [View](https://bitbucket.org/projects/test/repos/my-project/commits/7140072ecc6d624e6e660cf694ea5d6b4b5c6376)
* patch kind of poll with patchvalue [View](https://bitbucket.org/projects/test/repos/my-project/commits/77cf4c6d04b5a7c7689e834dcc166dd5eca56b22)
* advanced button change color when active [View](https://bitbucket.org/projects/test/repos/my-project/commits/ce00a3ce695e7e6728bdeace31a66cc17359dcab)
* translate calendar contents, space options for days [View](https://bitbucket.org/projects/test/repos/my-project/commits/2edb828aa3a1e0d9e39f4abc6eefc0e0ef06c96b)
* visual sections for date selection [View](https://bitbucket.org/projects/test/repos/my-project/commits/de679721d1047d8ee7d780b23f0298b47af7bb21)
* drag and drop time interval [View](https://bitbucket.org/projects/test/repos/my-project/commits/7ca87e28b44887138b0b8b05bde47cca9024d990)
* display hour ranges [View](https://bitbucket.org/projects/test/repos/my-project/commits/5f4c2e04af08c896f3fb64d56157d007600f6f04)
* use crypto lib [View](https://bitbucket.org/projects/test/repos/my-project/commits/1ab5255bfa2aff83774132965842e357eb8494e4)
* add lib crypto [View](https://bitbucket.org/projects/test/repos/my-project/commits/4df2e00cbe228a19b10821be5025c0b11aeb27da)
* copy button [View](https://bitbucket.org/projects/test/repos/my-project/commits/760bde7e3069e6c2f84724b05c80c7260f7fc2a7)
* easy ciphering working with and without salt [View](https://bitbucket.org/projects/test/repos/my-project/commits/3e0c1ff3750a5f986dd850b6a6b765e19b8a1ad5)
* mixed salt for ciphering [View](https://bitbucket.org/projects/test/repos/my-project/commits/0885df23df39b20fa8ee16aa7c2b3fb1c13a8ec3)
* spacing dev menu button [View](https://bitbucket.org/projects/test/repos/my-project/commits/51de2b2e028305eabfdb9c6bb91a5758aa815344)
* add md5 lib to ciphering page [View](https://bitbucket.org/projects/test/repos/my-project/commits/d72e7763da7e60d551b3ee585555bfa83e6ddd11)
* listing char codes [View](https://bitbucket.org/projects/test/repos/my-project/commits/e5411ab425368ce6e3a7b024e8d9fb711e041018)
* compute entropy [View](https://bitbucket.org/projects/test/repos/my-project/commits/ddf5b40ef45290430f2c681ae0368ee2b98abecf)
* resize table for entropy [View](https://bitbucket.org/projects/test/repos/my-project/commits/e32db4983d014403c97e93a3faebb7ab2e318a59)
* compare entropy with generated pass [View](https://bitbucket.org/projects/test/repos/my-project/commits/e9a9d1a959b8141bdb56fe01d8d0ae7bcf2c8b06)
* chiffrement matrice ok [View](https://bitbucket.org/projects/test/repos/my-project/commits/73ad7426ee1f1b1b31f252ea30d16a810272d792)
* hop [View](https://bitbucket.org/projects/test/repos/my-project/commits/54ece76c7e916aa919d9e5abaca69efd7c12968d)
* fix types [View](https://bitbucket.org/projects/test/repos/my-project/commits/7b5cf59b9979f0da70af0f0ba7dd07c743ec851d)
* update env for prod [View](https://bitbucket.org/projects/test/repos/my-project/commits/3c3dddafa52f520658a70291b66fd42505aeee48)
* fix some production build warnings [View](https://bitbucket.org/projects/test/repos/my-project/commits/2993fc5cb5204bfd35ddc393b6805176e150461b)
* add stats [View](https://bitbucket.org/projects/test/repos/my-project/commits/2af45ae72708bec310febde7cbcf33020a1b83f0)
* using hash routes [View](https://bitbucket.org/projects/test/repos/my-project/commits/e63bbab75565370cdafe1c374bea97f5d777c71f)
* hide some components [View](https://bitbucket.org/projects/test/repos/my-project/commits/f3f2d6623bb1bc7aa8d36d2144ac46a47c98470a)
* choice template questions [View](https://bitbucket.org/projects/test/repos/my-project/commits/21040df287ccb46e9384273b6a352378a1d4ba76)
* date selector as question answers [View](https://bitbucket.org/projects/test/repos/my-project/commits/4a89b715a9e9a9f058c64f3384bd115a89170138)
* add theming in vars with blue variation [View](https://bitbucket.org/projects/test/repos/my-project/commits/b2806371585ba1d1810bfbb2edc977264fd6ba5d)
* default colors [View](https://bitbucket.org/projects/test/repos/my-project/commits/a744bf9931e472afd6a01bbb343c19a6fe095b03)
* setup theme comments [View](https://bitbucket.org/projects/test/repos/my-project/commits/2562b21d2ff9686d8a4cc35645f7ebed81093cd3)
* add fetching a poll with a pass hash [View](https://bitbucket.org/projects/test/repos/my-project/commits/3850f3811c135005131bdffef8cd760fa9cb9fb5)
* manage consultation path [View](https://bitbucket.org/projects/test/repos/my-project/commits/6cb32cb2e19276e28ee3d6c5bc7777a00edfc8ea)
* display de sondage de démo [View](https://bitbucket.org/projects/test/repos/my-project/commits/21aa634ce52beeab60bfc402178840f1f2eb0769)
* montrer consultation et préciser si aucun vote [View](https://bitbucket.org/projects/test/repos/my-project/commits/56273946c3f598e58df960a56756d877d443ece7)
* display title on poll page [View](https://bitbucket.org/projects/test/repos/my-project/commits/d84809d62a032dbe37d8da746fec12fc486a7fca)
* style on selected items in consultation page [View](https://bitbucket.org/projects/test/repos/my-project/commits/0c08e802c9a98d4182853092d615b4fd5f4994b1)
* scroll to top on route change [View](https://bitbucket.org/projects/test/repos/my-project/commits/74a928800edd8d67cfc428eb67d27aaddc33cffa)
* send form in dev mode, fill title demo [View](https://bitbucket.org/projects/test/repos/my-project/commits/215178efa9c6a3bc5e07d11b97dd0109ab356899)
* add comment on display [View](https://bitbucket.org/projects/test/repos/my-project/commits/078f63f742d29e5c1cb7426560047830f165ea97)
* export results added, models updates [View](https://bitbucket.org/projects/test/repos/my-project/commits/1e90d92ab9f6c25643600a254d032c486516a692)
* transmettre l'information d'expiration du sondage au front [View](https://bitbucket.org/projects/test/repos/my-project/commits/163b89b03ffc11c277f916379cb5631b0256d3af)
* fix models for backend update [View](https://bitbucket.org/projects/test/repos/my-project/commits/e45b490c2fdbdff37e5a252a478091b52b287612)
* key created_at for comment, format date [View](https://bitbucket.org/projects/test/repos/my-project/commits/2d3457cf6fa872fe277dcff3a43b93d8be5353a7)
* show counters on answers and favourite answer [View](https://bitbucket.org/projects/test/repos/my-project/commits/0abf924caedeebe008292c230dae3a2af40f028f)
* display details too [View](https://bitbucket.org/projects/test/repos/my-project/commits/9a4a72a24c781e24f773462c8978cf59ded6821b)
* info in modal [View](https://bitbucket.org/projects/test/repos/my-project/commits/729dac95993b4997eae4691bcfaec2630714a8aa)
* fixes for building in prod [View](https://bitbucket.org/projects/test/repos/my-project/commits/7a0061eeb1d2018857a78dcff9674df2076c0999)
* stack of vote relié au formulaire de commentaire [View](https://bitbucket.org/projects/test/repos/my-project/commits/620a7b99fac22a6809149d753410f5bf885c0570)
* set choices and toggle votes in votestack [View](https://bitbucket.org/projects/test/repos/my-project/commits/f1e6b5955ee16f4ec65828f6bd48930b606b879e)
* display stack answer and toggle fluently between answers to votes [View](https://bitbucket.org/projects/test/repos/my-project/commits/4464a0af2cae1c9c9c25c6b1762d28634c3b4207)
* default value of vote added [View](https://bitbucket.org/projects/test/repos/my-project/commits/cbc4bd8f5d85b0a6f1e3bc797c47564cee5c4e62)
* choice button refacto [View](https://bitbucket.org/projects/test/repos/my-project/commits/3abef619c8ce77cc1f9ba014a952fbb96456b01d)
* send stack of votes button linked to api [View](https://bitbucket.org/projects/test/repos/my-project/commits/7a83beae8e5ca64c21759b3337de0ecb30c06937)
* trying to send vot stack but getting CORS issue [View](https://bitbucket.org/projects/test/repos/my-project/commits/30d4adec373ae2714b25d46e704beef73785cfc0)
* use httpclient [View](https://bitbucket.org/projects/test/repos/my-project/commits/e61542b6521722eafafb989dd88fa482ae07caac)
* default backend to framadate demo api [View](https://bitbucket.org/projects/test/repos/my-project/commits/b2b8056b7eb35fef9de30adc7c897ee6c5d2d2a5)
* add good hash in route [View](https://bitbucket.org/projects/test/repos/my-project/commits/d5bc5777b787060dfaa84c1ed7599bff272b5507)
* move old stuff [View](https://bitbucket.org/projects/test/repos/my-project/commits/fdcb7327f0b65a4ce8c7ae6f8a5bec9f5592c026)
* rename utils services [View](https://bitbucket.org/projects/test/repos/my-project/commits/b9181b5b3fe6b7163ffefbb0bea3e70a186bee53)
* auto send vote in dev mode [View](https://bitbucket.org/projects/test/repos/my-project/commits/3a89645e66b9445e61bf67c50805b9682a538931)
* manage mobile menu, and add poll title to page title [View](https://bitbucket.org/projects/test/repos/my-project/commits/31f0f19a9ae2120ac3394414e79649a44ee2de14)
* nav disable default show [View](https://bitbucket.org/projects/test/repos/my-project/commits/78a88d3163f73a161649a0ed17d4038f458d5bcc)
* nav items for demos in mobile menu [View](https://bitbucket.org/projects/test/repos/my-project/commits/69f8eac147f413a1f7bbb9c2d2b12b6526e63419)
* change icons for answer [View](https://bitbucket.org/projects/test/repos/my-project/commits/9e4d5187b523891568387526e1a7cc749d6a5a44)
* toast message on error send vote stack [View](https://bitbucket.org/projects/test/repos/my-project/commits/765299e1c3ae69bebfbad281592d9460ef4f9aa4)
* creation poll style, fill DTO for creation [View](https://bitbucket.org/projects/test/repos/my-project/commits/585d3a215e62ee115d0bace3c5bc0c6f650c2b59)
* auto save on dev env [View](https://bitbucket.org/projects/test/repos/my-project/commits/12a41b502217ce8c2f0df9673ca7a21f80550409)
* flatten form fields [View](https://bitbucket.org/projects/test/repos/my-project/commits/d08bba4fcb4ffbb5b4b28cd948babc21059b8bfe)
* advanced fields flattened [View](https://bitbucket.org/projects/test/repos/my-project/commits/e405a09c78af01fdb02a0fa7b4f75fc92cee7c34)
* splitting date choices with a separator [View](https://bitbucket.org/projects/test/repos/my-project/commits/975997b7675876f5596e34533e50d76f1c6c8809)
* group display of days [View](https://bitbucket.org/projects/test/repos/my-project/commits/86c0ff815f824b9119d36482cd85fc668eccf7cb)
* ability to toggle answers on grouped choices [View](https://bitbucket.org/projects/test/repos/my-project/commits/16db2a69cf687e2f99b9faec96e87c4d89d06458)
* update url to copy after creation [View](https://bitbucket.org/projects/test/repos/my-project/commits/bfdb18b316ffaf614b58a33ebdb195d1e793cc0a)
* link function [View](https://bitbucket.org/projects/test/repos/my-project/commits/b2ee8ec668d252a23389780f977bba3c58a79512)
* hop [View](https://bitbucket.org/projects/test/repos/my-project/commits/dc382017a2ab64fddbe6ca6f31b8419f24e8c0b3)
* fix url public [View](https://bitbucket.org/projects/test/repos/my-project/commits/59cb917ea36ac9cb4b21fb2d93fe01bc067c8935)
* fix test kind [View](https://bitbucket.org/projects/test/repos/my-project/commits/ed13c98b99048078a9ff3bd23ff32ab34f68c349)
* hash routes re enabled [View](https://bitbucket.org/projects/test/repos/my-project/commits/d7a35e91edb3d6f75ddb0946d8d288b20627c925)
* fix get participation url [View](https://bitbucket.org/projects/test/repos/my-project/commits/9a013f6d2cd29832d98fa81352f39db0a12fe60c)
* better mix on creation of poll [View](https://bitbucket.org/projects/test/repos/my-project/commits/d40aa6a3ae0152f53da4f29379800ab146b8fc89)
* no auto send form [View](https://bitbucket.org/projects/test/repos/my-project/commits/c3026639948ce0b4adc5ef22704c076e79407fbd)
* fix deps to config prop [View](https://bitbucket.org/projects/test/repos/my-project/commits/e7343810d5612f5ce30d41536c5c9a1d77093d31)
* env message demo dans le header [View](https://bitbucket.org/projects/test/repos/my-project/commits/d222d88872012f4cf22c34da9370bb6d2cba5d71)
* home display stored polls [View](https://bitbucket.org/projects/test/repos/my-project/commits/1bfe747e4cd256a42bd4c17f9b25fc1c3175131a)
* more responsive menu header [View](https://bitbucket.org/projects/test/repos/my-project/commits/bf1df96dcdbdf15905a8db2d61716466c838cfd8)
* enable loading state in api creation, success page update [View](https://bitbucket.org/projects/test/repos/my-project/commits/a969b30a03bd6e2ab93d352b5fceccd8420b6983)
* add to local polls after creation, update poll [View](https://bitbucket.org/projects/test/repos/my-project/commits/10177d793bf0af056f96e4873b4bbfd12d7c0bee)
* fix icon [View](https://bitbucket.org/projects/test/repos/my-project/commits/f6b522748a3e78735926764580a08145def159de)
* display of success links [View](https://bitbucket.org/projects/test/repos/my-project/commits/1755f205ad41e6b10fa8b656746d65e578456bbc)
* update custom_url with title [View](https://bitbucket.org/projects/test/repos/my-project/commits/f1e5903d0aa2d444b9dd5dc1ecdf3f30e2b61f22)
* smaller uniq id in custom_url [View](https://bitbucket.org/projects/test/repos/my-project/commits/5d39b7aa3e5f045f4270729f6c6daa2cd9ea79a9)
* erasable button on first field [View](https://bitbucket.org/projects/test/repos/my-project/commits/6fdb56786aa1cbd33badb80d00184aefcf6b64bd)
* same time span for every day by default, clean config [View](https://bitbucket.org/projects/test/repos/my-project/commits/c0ca623885d923c873c7d5796f1f687dfa148f8e)
* display time slices [View](https://bitbucket.org/projects/test/repos/my-project/commits/af4dfacec9107678069b2dd909473ac68549a728)
* empty and reset time slices [View](https://bitbucket.org/projects/test/repos/my-project/commits/1d8aeb2f54711709cd6209fde3615c43e2d78598)
* display all on creation [View](https://bitbucket.org/projects/test/repos/my-project/commits/d7eac8d56c68923b74516d688eeea3d421201567)
* display fields errors [View](https://bitbucket.org/projects/test/repos/my-project/commits/9cd847be8f099509a55518b092b1d0645c1967ee)
* less logs for validation [View](https://bitbucket.org/projects/test/repos/my-project/commits/186e5e36da6f4b424df0e127d7f52980551ef787)
* separate choice from form [View](https://bitbucket.org/projects/test/repos/my-project/commits/f6ce22480cbd1fe1ed9e1bb0a038cc6df8fa2030)
## v0.4.0 (2020-06-26)
* Ajout du lien vers le rendu [View](https://bitbucket.org/projects/test/repos/my-project/commits/983c64a1b4f542d743ee8f1029a4ca8662a3df95)
* Pose les textes de la première page de la maquette [View](https://bitbucket.org/projects/test/repos/my-project/commits/e9a85fe44a505a0444d72ae43e0a6a2e8003da3e)
* Changement de la structure HTML de base, inspiré de https://github.com/DavidBruant/better-defaults [View](https://bitbucket.org/projects/test/repos/my-project/commits/57b023425107ff786381339dab09e0344e03eb26)
* Habillage minimum de l'accueil [View](https://bitbucket.org/projects/test/repos/my-project/commits/2ca0982f6ee7181e701680d9ee63108bc34028d3)
* Ajoute les pages statiques de la navigation [View](https://bitbucket.org/projects/test/repos/my-project/commits/fac4efab3c48c70a0527641f0504031878141502)
* Ajoute un script docker pour lancer un serveur localement pour développer sur la maquette [View](https://bitbucket.org/projects/test/repos/my-project/commits/e30135786a4f6c3d39588afa00d17491a9406d1d)
* Documente le processus pour lancer le projet localement [View](https://bitbucket.org/projects/test/repos/my-project/commits/caf4cf7d2c7dd4969929c6290ab311df44bf1eaf)
* Ajout du parcour vers le sondage classique [View](https://bitbucket.org/projects/test/repos/my-project/commits/a248b803079b2ae58d86e8fa1b3e2cdb57fd8f74)
* ajout des champs de formulaire dans la page notifications [View](https://bitbucket.org/projects/test/repos/my-project/commits/1cc8e6beb442d3b365b73f0be2f525ff9f1bcb0d)
* Création du fichier js [View](https://bitbucket.org/projects/test/repos/my-project/commits/cb07e90e63ae8ec4ab1f91fe01630f7cc0cd8770)
* Ajoute le lien vers les natural language form [View](https://bitbucket.org/projects/test/repos/my-project/commits/b3b9797e8cd437efefee1ae6028dba433d62874e)
* Bifurcation sur le sondate en fonction du choix [View](https://bitbucket.org/projects/test/repos/my-project/commits/0f6abfa7b9ceea6fdd0d17366e77ea3929b9beb0)
* Usage du localStorage [View](https://bitbucket.org/projects/test/repos/my-project/commits/affb5500e734c94aa6526d1e8106f3b849871160)
* Ajoute la ponctuation [View](https://bitbucket.org/projects/test/repos/my-project/commits/23902aca1fb69cd40556896be744bfbf053dd8b8)
* Affiche un texte par défaut, et propose une popup pour saisi [View](https://bitbucket.org/projects/test/repos/my-project/commits/053d24c158c6e55888f42262d481d6bfb30e8013)
* Changement du nom, sans javascript, ou avec [View](https://bitbucket.org/projects/test/repos/my-project/commits/bf23bee2827d9197b646168c1a6606c13f890ed4)
* Généralise l'usage du champs text [View](https://bitbucket.org/projects/test/repos/my-project/commits/105b98388573ba5d6a1abe91a9e5b67db51c9169)
* Embelli les deux champs texte de la fin de sondage [View](https://bitbucket.org/projects/test/repos/my-project/commits/3229d14993c61eeb595971191c6b86c76707bb9d)
* Embelli le champ texte de l'index [View](https://bitbucket.org/projects/test/repos/my-project/commits/44b60adba0ee9c5b6ac515a926d7f4960023ba32)
* Base de reflexion pour l'ajout d'option [View](https://bitbucket.org/projects/test/repos/my-project/commits/91b94e806f1572a096d655932f352c26540c312c)
* Deploy on funky [View](https://bitbucket.org/projects/test/repos/my-project/commits/0ec23c03d3d16bc5f0979f678e696bdfed4f63a0)
* Update .gitlab-ci.yml [View](https://bitbucket.org/projects/test/repos/my-project/commits/9a045b4608b87d85f3ace567042991dab7b85828)
* Update .gitlab-ci.yml [View](https://bitbucket.org/projects/test/repos/my-project/commits/8ecb77c322df2b3d331c8a60b3c61bd7ac797d9a)
* Update .gitlab-ci.yml [View](https://bitbucket.org/projects/test/repos/my-project/commits/5edd7c6cd5edfae997ec2e4cece9fc524e51cebe)
* give up on bash & alpine [View](https://bitbucket.org/projects/test/repos/my-project/commits/ee2dfb7002c1a553e123f58ff1b3a5b1df7f63f4)
* Recherche de sondate en deux temps [View](https://bitbucket.org/projects/test/repos/my-project/commits/55ca50890f7d132bb626811aa9e50cce24d5f996)
* Déplace la date plus haut dans la page des notif. [View](https://bitbucket.org/projects/test/repos/my-project/commits/4d8e493c7049fbb9299c2b93fe2e914518c88f4c)
* Selectionne les options d'un sondage dates [View](https://bitbucket.org/projects/test/repos/my-project/commits/d151724e87b20500d19c022fa3a8f90066dfa533)
* Ajoute des informations sur la page de validation [View](https://bitbucket.org/projects/test/repos/my-project/commits/23b43fe5345f9a8fe2b6e77531def3eabb8a8125)
* Ajoute une option image + lien [View](https://bitbucket.org/projects/test/repos/my-project/commits/cdbe0a12e16156ae2ab7a4a854fdb57dd806d644)
* Ajout d'un champ texte en cas de sondage classique [View](https://bitbucket.org/projects/test/repos/my-project/commits/45319fcfd65a784f8e312a621cf3d1faaccfac6b)
* changement de l'URL de demo [View](https://bitbucket.org/projects/test/repos/my-project/commits/d48879c8f651ac4cd288d9914903fcd9d34ab671)
* fix(#16): amélioration de l'affichage de la page dates [View](https://bitbucket.org/projects/test/repos/my-project/commits/d4ad832004e399a289c9fa960a30caf38e6b4570)
* fix(#3): amélioration du design des boutons [View](https://bitbucket.org/projects/test/repos/my-project/commits/7505340c037682cf2894079aed1177499a162542)
* fix(#4): proposition d'amélioration d'affichage des champs textes [View](https://bitbucket.org/projects/test/repos/my-project/commits/19905b208e224eb77127e664cbc6b54aeee2a5d1)
* fix(#5): amélioration de l'apparence du textarea [View](https://bitbucket.org/projects/test/repos/my-project/commits/b2c79980c3ef4047bf0a073fe73f5220e3ebf737)
* fix(#15): amélioration du design de la page validation [View](https://bitbucket.org/projects/test/repos/my-project/commits/08b4e8bed0123a363f4f7d4edc6f0a11fbce2074)
* changement de la taille de typo [View](https://bitbucket.org/projects/test/repos/my-project/commits/d99f3af9212c328a3b20d626ca542117dcc69e4a)
* amélioration de l'affichage de l'email [View](https://bitbucket.org/projects/test/repos/my-project/commits/f566c30ee129d736c48f7a7af404bf3e8b244d38)
* ajout du style de bouton primary [View](https://bitbucket.org/projects/test/repos/my-project/commits/0ffbdca9ad4495124c386ab84fd15c55214e6809)
* amélioration de récapitulatif [View](https://bitbucket.org/projects/test/repos/my-project/commits/925ad5a5575af5414457b50cc6944e41d6da2591)
* ajout d'une classe bold [View](https://bitbucket.org/projects/test/repos/my-project/commits/77329039772e1342c03d46431b3034757f919010)
* amélioration affichage champs email [View](https://bitbucket.org/projects/test/repos/my-project/commits/bf4ccd61643aea3bdfdf7502ab693569706e1edb)
* proposition affichage des dates [View](https://bitbucket.org/projects/test/repos/my-project/commits/e3be6ad85a8dcea0dde9c0621b253e96d2a46cb3)
* amélioration de l'affichage des icones [View](https://bitbucket.org/projects/test/repos/my-project/commits/de5e3604b7524952940dbc494f328f34737d1d94)
* amélioration de l'affichage des icones [View](https://bitbucket.org/projects/test/repos/my-project/commits/531fd91aef8a8852085bd55202192fab76aa8eda)
* Ajoute des dates, et les enregistres dans le localStorage [View](https://bitbucket.org/projects/test/repos/my-project/commits/8f309740c18e25586434e9095f51ab064c9a9587)
* Affiche le titre du sondage dans la page de validation [View](https://bitbucket.org/projects/test/repos/my-project/commits/b1ab16bd11195294e080ecbd7a903191be55cc6a)
* Récupère l'ancien framadate [View](https://bitbucket.org/projects/test/repos/my-project/commits/50e56a0396610ac4f970b7ecc1702222c1981421)
* propose un champe vide par défaut [View](https://bitbucket.org/projects/test/repos/my-project/commits/4a6b039fa974e2df5b7062ee3079873f33c3949a)
* Met à jour le readme [View](https://bitbucket.org/projects/test/repos/my-project/commits/e5a4cde537a40691fbe2ac5dd2bacd7ea59dba76)
* Utilise un sondage spécial date par défaut [View](https://bitbucket.org/projects/test/repos/my-project/commits/90c014222f5322ca34cdfeb5c8720cd30e69e966)
* revois la page suivante par defaut [View](https://bitbucket.org/projects/test/repos/my-project/commits/2c9d5fa912e2ceb2cb32e1ad573d898d88305a8f)
* affiche uniquement les options nécessaire pour les date [View](https://bitbucket.org/projects/test/repos/my-project/commits/18d649dab9201c33ce156f5450d2d68dba7d1a47)
* reformule le texte de la page des dates [View](https://bitbucket.org/projects/test/repos/my-project/commits/eb79e6161117d5155482249536f053e6e24c9589)
* affiche les horaires dans un sondage spécial dates [View](https://bitbucket.org/projects/test/repos/my-project/commits/a5f3e96ad190b6c19c6f84f57884cf3892c13a8f)
* ajoute un bouton pour ajouter des horaires [View](https://bitbucket.org/projects/test/repos/my-project/commits/9c27b43d3bbd17ece53edde92b4ea85334f66d1c)
* affiche le récapitulatif en fonction des dates qui ont été saisies [View](https://bitbucket.org/projects/test/repos/my-project/commits/f6ded6f5fa2df0eb957f6512b8772eb09e2f938b)
* passage à du plus joli [View](https://bitbucket.org/projects/test/repos/my-project/commits/b5581c7127d96ee75856242b076b1b4632dea8d4)
* Dossier screenshots pour voir l'avancement ! [View](https://bitbucket.org/projects/test/repos/my-project/commits/91460d407700f2e6feac19e97c8d9468aef83d23)
* Téléverser un nouveau fichier [View](https://bitbucket.org/projects/test/repos/my-project/commits/d6c81848ea028fc10d746dbd31f2434cece8f137)
* Téléverser un nouveau fichier [View](https://bitbucket.org/projects/test/repos/my-project/commits/f5cd418a5767dc70413be45285c34f5623c5117f)
* Téléverser un nouveau fichier [View](https://bitbucket.org/projects/test/repos/my-project/commits/018987e6ae0dad4b878baa828ffa50ce7b82b531)
* Téléverser un nouveau fichier [View](https://bitbucket.org/projects/test/repos/my-project/commits/3f80ba64ee15bd497699fafdd26e6b7a3c9540db)
* Téléverser un nouveau fichier [View](https://bitbucket.org/projects/test/repos/my-project/commits/a46d24f267463b31a27a16967de7d1928c813f77)
* Téléverser un nouveau fichier [View](https://bitbucket.org/projects/test/repos/my-project/commits/376f093a00f958979e09913cc708a69cca27fed2)
* Téléverser un nouveau fichier [View](https://bitbucket.org/projects/test/repos/my-project/commits/18b984d478d974df5cd5db47d9306c3c95a02a2e)
* ajoute un lien vers l'exmple de natural language form [View](https://bitbucket.org/projects/test/repos/my-project/commits/e22559a6462240b69cfc74f522bb183542743f5f)
* Restart from scratch [View](https://bitbucket.org/projects/test/repos/my-project/commits/39242f22dbf321461d49bbf47f87274219210626)
* removed useless files [View](https://bitbucket.org/projects/test/repos/my-project/commits/61f69c926e879604936f73e3fe4726dbd8ee5dda)
* :tada: initialize Angular version of Framdate funky front end [View](https://bitbucket.org/projects/test/repos/my-project/commits/40b1a7bbf9c67f85d21c4212a7af51f9cb98d07b)
* hop [View](https://bitbucket.org/projects/test/repos/my-project/commits/512d569c54ce255f329a6883b1ba1c0bd86ffc18)
* :zap: make routing, link data with poll config. :art: style sheets [View](https://bitbucket.org/projects/test/repos/my-project/commits/d5f71504dc66c12a0ec9df91b5fb6a646aa098fc)
* real example of config [View](https://bitbucket.org/projects/test/repos/my-project/commits/c048c35b9d6aad8664ecd2fb208f047a1ab3eefc)
* :zap: example of navigation [View](https://bitbucket.org/projects/test/repos/my-project/commits/42f229f686bcf61ea4d8e3c877847937a12ae16e)
* :zap: example of navigation [View](https://bitbucket.org/projects/test/repos/my-project/commits/46cce96dab991af2de358e66daadbff9dda5079d)
* :zap: rename components [View](https://bitbucket.org/projects/test/repos/my-project/commits/e238b0aceb1fb2776242ef74cba46b5d27feebd7)
* :zap: make pages components, split config of poll from service [View](https://bitbucket.org/projects/test/repos/my-project/commits/56aa09df3bb71342aafd31ce95cba6e2733d1767)
* :zap: make pages components and nav [View](https://bitbucket.org/projects/test/repos/my-project/commits/49f4b4c13b555e0498d7bc2c8770e446d2ec2968)
* :zap: sync answers [View](https://bitbucket.org/projects/test/repos/my-project/commits/d413774d3b473c5355e2a52f1d0f73efa90b3ab8)
* :zap: ability to add a new answer and focus [View](https://bitbucket.org/projects/test/repos/my-project/commits/488b9f677ac9048062304a55f9ad6d6ff5630444)
* :zap: all steps and demo page [View](https://bitbucket.org/projects/test/repos/my-project/commits/54c7c6568d2cba66d0088b5bd0b8f3c401645445)
* focus via injected document [View](https://bitbucket.org/projects/test/repos/my-project/commits/d9b81d3d8ef5001fd7e199afcd05051263b21973)
* Correcting routing at the end of the form [View](https://bitbucket.org/projects/test/repos/my-project/commits/504d8faddf5ff608e63e2081bbbc2ab880860632)
* add fonts folder [View](https://bitbucket.org/projects/test/repos/my-project/commits/3fa61053a53518c57ba142ffee180f1cf9c9732d)
* fix(styles files): improve styles folders [View](https://bitbucket.org/projects/test/repos/my-project/commits/74b991362aa181ac64fa2882cd5ed3a1142d1536)
* Ajouter un nouveau dossier [View](https://bitbucket.org/projects/test/repos/my-project/commits/c77792b0575902f8b52b80483808a672fbc1cf8c)
* Téléverser un nouveau fichier [View](https://bitbucket.org/projects/test/repos/my-project/commits/c0491a433b2556c917fcd0771b20bf0026ef07a4)
* Téléverser un nouveau fichier [View](https://bitbucket.org/projects/test/repos/my-project/commits/9a9450dc0dcf23b8931fea51ae90455947a95e87)
* Téléverser un nouveau fichier [View](https://bitbucket.org/projects/test/repos/my-project/commits/0c00813056699d552f5990f825dd9612fc5443ab)
* Téléverser un nouveau fichier [View](https://bitbucket.org/projects/test/repos/my-project/commits/51540252844a8019cde41f4137effa10546127d8)
* Ajouter un nouveau dossier [View](https://bitbucket.org/projects/test/repos/my-project/commits/04d6a1b430214853e235fad96c5d8b9707114063)
* Téléverser un nouveau fichier [View](https://bitbucket.org/projects/test/repos/my-project/commits/5cada8fc32beb844e0cd78a5bf3a084d10f2e05c)
* Téléverser un nouveau fichier [View](https://bitbucket.org/projects/test/repos/my-project/commits/c1bf0631571d25cb669288caab7c1a74f14fa9a8)
* :zap: change privacy of properties [View](https://bitbucket.org/projects/test/repos/my-project/commits/d5e5550c54102ca3e1ddf3988139f036a09bcd9a)
* :zap: page creation or retrieve start [#28] [View](https://bitbucket.org/projects/test/repos/my-project/commits/6532538da3dfc07b9fdd328a984b431868580a67)
* styling in mobile column [View](https://bitbucket.org/projects/test/repos/my-project/commits/56a7271325dde04724aa1648e4cb3433b56020d9)
* :zap: lien entre multiple dates et config [View](https://bitbucket.org/projects/test/repos/my-project/commits/d941d6bed86ed922667c9fd806709efc96e6c236)
* :art: style of cursor hovering buttons [View](https://bitbucket.org/projects/test/repos/my-project/commits/16e8ab4ec5d3fb2cd522ca890066a653f230939c)
* :zap: add my name input in first form [View](https://bitbucket.org/projects/test/repos/my-project/commits/8eecb506c3c448273a2d52fc7f28733b09e93717)
* Remove my editor config files [View](https://bitbucket.org/projects/test/repos/my-project/commits/4bb851640bba5054c282e97144d8916bc5aa1957)
* Add calendar component [View](https://bitbucket.org/projects/test/repos/my-project/commits/9dace55091d8f8d5cfe72764a2ac54d0fa1de2a8)
* added web fonts [View](https://bitbucket.org/projects/test/repos/my-project/commits/7fcd13f05a1d07be698cb40f6855c3181a2f169f)
* Modification de la page de création [View](https://bitbucket.org/projects/test/repos/my-project/commits/189f5915c17604a6ced866a98ee735fdf73dffe7)
* added bootstrap reboot as a CSS reset [View](https://bitbucket.org/projects/test/repos/my-project/commits/ce53ccf55f9370bc1da8202189497d9178a44c45)
* improved heading code [View](https://bitbucket.org/projects/test/repos/my-project/commits/918999178495e5541498a02a4b495bf3b324863f)
* Modification des liens [View](https://bitbucket.org/projects/test/repos/my-project/commits/13144d5b8c28986a450170f2421a34482b66da59)
* ordered links file + added sass [View](https://bitbucket.org/projects/test/repos/my-project/commits/5ae1aeabeb561bff94758b50b61e9d26c83480ad)
* improve markup, hide useless decortion for a and h1 in header [View](https://bitbucket.org/projects/test/repos/my-project/commits/c47e00a82481c8c0415b137b406623d0d63f9bd2)
* improve global display [View](https://bitbucket.org/projects/test/repos/my-project/commits/74285393d885870340ecb60a6d8b79f360abfaea)
* Adding basic date filling [View](https://bitbucket.org/projects/test/repos/my-project/commits/9031b60178bf2c4a25bc596161429fa6a24858c2)
* :art: organize fonts in folders [View](https://bitbucket.org/projects/test/repos/my-project/commits/2d03578a1d6fef9431a79950b1e24f13c71ce44c)
* :art: remove blue in links of the bootstrap lib, add strike line on create button [View](https://bitbucket.org/projects/test/repos/my-project/commits/07989e454fb4df951177831a0e3d793cbba54198)
* :art: striked button and icon style [View](https://bitbucket.org/projects/test/repos/my-project/commits/29bfe45acac4905a4f9df4f343993beebe9c6fee)
* :bug: remove page folder, refacto in pages folder for creation page [View](https://bitbucket.org/projects/test/repos/my-project/commits/8291f2d8de90b54f4bd6dac6d4384589f8eabdf8)
* fix(headings): moved h1 with border to component [View](https://bitbucket.org/projects/test/repos/my-project/commits/1753515797ddca6d20ee3464d73e0421332abdec)
* style(default): added font color [View](https://bitbucket.org/projects/test/repos/my-project/commits/e91c66eef42b7b614458e65cef9dd80660f0a836)
* worked on links [View](https://bitbucket.org/projects/test/repos/my-project/commits/f0da02371ddf0a46c3166ec9228a3f7a8e7603b6)
* style(hover): added hover color [View](https://bitbucket.org/projects/test/repos/my-project/commits/c3b9ddfb7221c5cba0ab9997fc715096d29df72d)
* Modify input's style [View](https://bitbucket.org/projects/test/repos/my-project/commits/7e4feb9350d39880d42505d6a80159d05a49f5f2)
* Fix password css object [View](https://bitbucket.org/projects/test/repos/my-project/commits/ecbf7878569c519c41b96001ca2198212f13a5c3)
* modifications sur les liens & les buttons [View](https://bitbucket.org/projects/test/repos/my-project/commits/435a1d58c90acdd6b373919387558de65bd922c3)
* Personalize p html balise [View](https://bitbucket.org/projects/test/repos/my-project/commits/b0ca964c7558c6589aa3cd9d4c4b543a07b9e48c)
* added list of elements [View](https://bitbucket.org/projects/test/repos/my-project/commits/8ac8b696aad5bf0358fdd06cbcdc8a6fea718979)
* worked a bit on display [View](https://bitbucket.org/projects/test/repos/my-project/commits/93b9908a407999324b50d85619cb185266fbebb0)
* worked on home [View](https://bitbucket.org/projects/test/repos/my-project/commits/807b6bc66020c279c4e7296d718579d6837bd671)
* added delete buttons [View](https://bitbucket.org/projects/test/repos/my-project/commits/c64f6b9ebe17554c500224784417471fb0f93ce5)
* added useful classes and comments [View](https://bitbucket.org/projects/test/repos/my-project/commits/58835864d32061c0d1e4c2da8cd00a98561f5b9f)
* corrected links background [View](https://bitbucket.org/projects/test/repos/my-project/commits/fcc770f82de0b47a81c8c74cdbd029e82f58005c)
* Add img [View](https://bitbucket.org/projects/test/repos/my-project/commits/00e3f00c9adecf6f93d8c3259b7cf71db3fe347a)
* select modify [View](https://bitbucket.org/projects/test/repos/my-project/commits/ccf37a85362d9f3a226d0a8e3721702a616ec2c0)
* minimal commit [View](https://bitbucket.org/projects/test/repos/my-project/commits/5f796b817a60eee9a7fc609cf00e73959e63209e)
* Add dropdown arrow [View](https://bitbucket.org/projects/test/repos/my-project/commits/2e1078c4e437372a8e5705709260cbb76e6264ac)
* :zap: format html, :alien: up translate file [View](https://bitbucket.org/projects/test/repos/my-project/commits/320c9504677d521a4011ec4f88c680b1b7177667)
* :zap: add pages [View](https://bitbucket.org/projects/test/repos/my-project/commits/018b1ce83eb84a74bafc35bc48fc3404338c384c)
* Change colors [View](https://bitbucket.org/projects/test/repos/my-project/commits/9996d954dd5adafd3951e2357ae35fad6f99784e)
* Add input borders [View](https://bitbucket.org/projects/test/repos/my-project/commits/1d6f1dc95580fb8432af93290b731c1e107ecea7)
* delete left border on textarea [View](https://bitbucket.org/projects/test/repos/my-project/commits/b763252d765360da96f29c827258b76e100be567)
* Change png to svg select image [View](https://bitbucket.org/projects/test/repos/my-project/commits/b091a190cf24785e78bce31086ce7f09aa527c64)
* change select padding [View](https://bitbucket.org/projects/test/repos/my-project/commits/bddc200cbdc44e0266eaa018c0d9f9a0dff5e8e0)
* change select padding [View](https://bitbucket.org/projects/test/repos/my-project/commits/e00dff4acb1a09f759779656af0a80e5d5e72718)
* remove placeholder [View](https://bitbucket.org/projects/test/repos/my-project/commits/ba4fad8a31660e5c0a761e7507d9ff7a6f858a0b)
* change home order text [View](https://bitbucket.org/projects/test/repos/my-project/commits/48e77024d54edfa950ed1cc89eab4110c830b8ff)
* added flex-line [View](https://bitbucket.org/projects/test/repos/my-project/commits/cb6979926d282129cee11c56b352e46a97c58f14)
* added wrap to flex-line [View](https://bitbucket.org/projects/test/repos/my-project/commits/ef9a0fe7704a18da5c5b4e75ee0839b53e6e70c3)
* changed content width [View](https://bitbucket.org/projects/test/repos/my-project/commits/53a550bdc1ce33f691bffa0cd40a579142dcea05)
* Change button style on home [View](https://bitbucket.org/projects/test/repos/my-project/commits/3be3bb44f1886e72a828662d267c090a477a0627)
* style answers page [View](https://bitbucket.org/projects/test/repos/my-project/commits/e0898ba3945b8617609bc1a1a24646e27d1713ee)
* add button [View](https://bitbucket.org/projects/test/repos/my-project/commits/132a7fabd3c089b84dd237d37c9902996d1f2427)
* Testing [View](https://bitbucket.org/projects/test/repos/my-project/commits/df859e02818f2ffe2b2e9340eae725d540fa0e23)
* :ambulance: change form-container to home component [View](https://bitbucket.org/projects/test/repos/my-project/commits/d2478c37a48bac56af35d0b91311a99bdd946913)
* :zap: all page components do extend basecomponent and its common config service [View](https://bitbucket.org/projects/test/repos/my-project/commits/8f8a258ecf65d8af5307acf5ed8d2b543c835aae)
* change link [View](https://bitbucket.org/projects/test/repos/my-project/commits/326f2731ff9caf811cab32062998cc62a6c116b6)
* merge with ng-init [View](https://bitbucket.org/projects/test/repos/my-project/commits/193468e66995309adf480db0c6cbbf4113c96bc2)
* Remove placeholder [View](https://bitbucket.org/projects/test/repos/my-project/commits/aab6ea801b81ee0aa8368483a2f15070ea574cf9)
* :alien: demo for i18n [View](https://bitbucket.org/projects/test/repos/my-project/commits/cc7b4661eefc6674e4e5b849b3b6cda2eb67bbe7)
* modify create or retrive page [View](https://bitbucket.org/projects/test/repos/my-project/commits/0c0dd7063dd7a47e1440366dd7b976e3e75e169d)
* stylise button [View](https://bitbucket.org/projects/test/repos/my-project/commits/128e4b628185bcb00fe0de15abe2c9277b25f52f)
* :alien: add ngx translate config [View](https://bitbucket.org/projects/test/repos/my-project/commits/d1ced70b1b81e2fa7cf8124bc9d6ee9cd76eeae5)
* :alien: json strings to translate things in en/fr [View](https://bitbucket.org/projects/test/repos/my-project/commits/90323c28c7e96d1d3c70e54b8818d34680fc5783)
* :alien: add missing translation support [View](https://bitbucket.org/projects/test/repos/my-project/commits/91101f2326413f9d63476c026c0207f93cb3e490)
* :alien: translate 2 first pages [View](https://bitbucket.org/projects/test/repos/my-project/commits/0f2a72f8720220fd17db37006b5361b425975006)
* Add html code for voting [View](https://bitbucket.org/projects/test/repos/my-project/commits/6cc09aebb5f175d09862228799735aeed1ac1c85)
* Add css on vote component : No works [View](https://bitbucket.org/projects/test/repos/my-project/commits/e059d45f73b5ee16925260139bdf066a3ac1b4d0)
* Minimal commit [View](https://bitbucket.org/projects/test/repos/my-project/commits/9c4fabb176e78f28b72439d6e4f5ee138f404069)
* :zap: choice component JS logic and type constraints. demo for dev environment [View](https://bitbucket.org/projects/test/repos/my-project/commits/f48d05b5188df06e3e4494510cb6f780d6b8c982)
* :bug: fix undefined choice [View](https://bitbucket.org/projects/test/repos/my-project/commits/1074d219dd9dc5c267976806270dd6a2c51ed4ea)
* :zap: date en français dans le choix de vote [View](https://bitbucket.org/projects/test/repos/my-project/commits/2d060f99055acb3d5251b1afde70abc786768f51)
* Add round to buttons on vote-choice [View](https://bitbucket.org/projects/test/repos/my-project/commits/1b9c669ae3d16d8fcaaa6977d558e420e7bdfc03)
* Corrige center alignement [View](https://bitbucket.org/projects/test/repos/my-project/commits/36192647c01c47f1d6782da6c69297449c1f2d8b)
* stylize the date [View](https://bitbucket.org/projects/test/repos/my-project/commits/8215dfab78f101bd15fcfaa0752afedc0b56842d)
* Add `npm i` command to README.md [View](https://bitbucket.org/projects/test/repos/my-project/commits/fd27382a9aeaff8a6735a85712d4142f0b795976)
* Modify vote component [View](https://bitbucket.org/projects/test/repos/my-project/commits/280783c56b699f72e736f31125cf4ab22c9d8c70)
* Translation fr->en [View](https://bitbucket.org/projects/test/repos/my-project/commits/5e2193e8aa0aa5cea1fa1d20127142d84518ede6)
* Correction of a typing mistake [View](https://bitbucket.org/projects/test/repos/my-project/commits/a63f76b45014c9dbb199406b30389b447bb09d60)
* Put the words in a more natural order [View](https://bitbucket.org/projects/test/repos/my-project/commits/fd6cce277775a271aaab702e836dd93104d7e1be)
* Add i18n in navigation [View](https://bitbucket.org/projects/test/repos/my-project/commits/0cb0813eb774c7aff4f96d71822dfa2d9e0cd089)
* Stick "Frama" and "date" together [View](https://bitbucket.org/projects/test/repos/my-project/commits/efe0b892186b203dca49939573966eee10d1d772)
* Minimal commit [View](https://bitbucket.org/projects/test/repos/my-project/commits/c671a8bdea289d1623502d5672069897556af3ab)
* Replaced text by i18n json keys and add i18n attribute [View](https://bitbucket.org/projects/test/repos/my-project/commits/c5021a2aa1ff176457852f5419aa76e58dff2fa6)
* Align elements [View](https://bitbucket.org/projects/test/repos/my-project/commits/69802a99ffa5e5a23e94f6b1f1d6931c9bfc62aa)
* [front] global : update button styles [View](https://bitbucket.org/projects/test/repos/my-project/commits/802f54b930125db6c8994f53c1389d3892e0b91a)
* [front] global : increase main wrap size [View](https://bitbucket.org/projects/test/repos/my-project/commits/a176405dd492ca9941d5b02011436db0e3f2076e)
* [front] component : vote choice [View](https://bitbucket.org/projects/test/repos/my-project/commits/3e29117ea62ee3025ed1e3ae8b328aa51197dc3e)
* ajout composant graphique sondage [View](https://bitbucket.org/projects/test/repos/my-project/commits/a006e4d42a0bd1bb85361952f47c27aa5ca3307d)
* #36 : ajout librairie chartjs [View](https://bitbucket.org/projects/test/repos/my-project/commits/46a02846bfd0a49066cb03fcce04c1f239df5a8a)
* issue 36 : select daltonien [View](https://bitbucket.org/projects/test/repos/my-project/commits/5f2a2b4461f6a4b8a33b6d64af4180f7e1ff85de)
* Issue-30: Markdown support [View](https://bitbucket.org/projects/test/repos/my-project/commits/be96384a8e5f42211303b5f9215512787e9bb7cd)
* [front] component : vote choice [View](https://bitbucket.org/projects/test/repos/my-project/commits/6ee9f742faa27b039785290660563bce998fe52b)
* Issue-30 : markdown - bouton retour [View](https://bitbucket.org/projects/test/repos/my-project/commits/ca3b76d0c82dffa5c4f8f4228ef0579da7642500)
* Format html templates with tabs [View](https://bitbucket.org/projects/test/repos/my-project/commits/bfa44534aa0ccc821a5d5f73d40a967dbc45ebab)
* [fix] vote choice : minor css fixes [View](https://bitbucket.org/projects/test/repos/my-project/commits/28b3334d3e258f3cef1a36c3247aa6f89b37e8a4)
* [front] vote choice : add image and text cases [View](https://bitbucket.org/projects/test/repos/my-project/commits/6f8b180d1fdb50f10804025e6232fbe512cf680f)
* suppression du code mort [View](https://bitbucket.org/projects/test/repos/my-project/commits/f9a8c1d8c3f92099b2d29723a5337402a0bc6d05)
* Resolution du conflit [View](https://bitbucket.org/projects/test/repos/my-project/commits/985be95b0d16529196891d4c855c46bfad53c575)
* Conflit resolved [View](https://bitbucket.org/projects/test/repos/my-project/commits/8b728d172f1558f603bc8f11df0d97f737020772)
* Traduction placeholder [View](https://bitbucket.org/projects/test/repos/my-project/commits/61d31dfd5a252f7e89ad464c51d675d78b0812d5)
* Err correction special dates [View](https://bitbucket.org/projects/test/repos/my-project/commits/22a560d82d40337bd66ab30062ca235a7e3e99ca)
* issue-36 : restitution des votes d'un sondage sous forme de graphiques. début [View](https://bitbucket.org/projects/test/repos/my-project/commits/00597410277aa3c387a8b33d9e31033adc853fc9)
* :zap: choices to add,clear and delete [View](https://bitbucket.org/projects/test/repos/my-project/commits/b7afca96db4b811fa02e1f4725dc6f5661f1db0e)
* Issue-36 : Graph sondage [View](https://bitbucket.org/projects/test/repos/my-project/commits/723a0f9527776f1de653464b979980c662a6e909)
* Fix bug [View](https://bitbucket.org/projects/test/repos/my-project/commits/497cf9e12ca5ef283391b9586d83f1ca2daf13dd)
* fix bug [View](https://bitbucket.org/projects/test/repos/my-project/commits/1055a0cdbe3f800acccc6a8f06c3669f47ef6de7)
* Une partie de html [View](https://bitbucket.org/projects/test/repos/my-project/commits/942649656df42aa23f0117ed8757bb3e176129b8)
* :bug: fix focus on date, extend the empty all button to timespans [View](https://bitbucket.org/projects/test/repos/my-project/commits/cf2a12507e053d9235d6a03f1e0569c90df82c27)
* Ajout formatage données [View](https://bitbucket.org/projects/test/repos/my-project/commits/c36a3b064cc1330628037c57ffff9cf5c41c183c)
* :bug: fix deletions in date buttons , input of type date [View](https://bitbucket.org/projects/test/repos/my-project/commits/933c32798cc26461ca5b62ec3eb89c18f29e4953)
* :zap: start call backend service to retrieve my polls by email [View](https://bitbucket.org/projects/test/repos/my-project/commits/026c7cfda2476e7a77cecfaff28c151e835b7a10)
* :alien: translate button to add [View](https://bitbucket.org/projects/test/repos/my-project/commits/6a40e041d0af462d9e776632168d033ab2d7eae2)
* :alien: translate button to add in template [View](https://bitbucket.org/projects/test/repos/my-project/commits/20876f9a8d927fadc083b193d671355f4bfd3423)
* :zap: add unique interval days [View](https://bitbucket.org/projects/test/repos/my-project/commits/572f0837cc93feba5ee76a6b112a14d333ba6121)
* :alien: translate buttons [View](https://bitbucket.org/projects/test/repos/my-project/commits/7b590840b2a8504db34114434fd2345141711f4d)
* :zap: fix function call in template [View](https://bitbucket.org/projects/test/repos/my-project/commits/e81389eae13b8709085710ce60bae6d3307ba7ae)
* :zap: link graphic in nav [View](https://bitbucket.org/projects/test/repos/my-project/commits/c0f800ff91822255a4d84e18106d238506dfaab4)
* Page crée et bien complétée (plus qu'a faire les alignements) [View](https://bitbucket.org/projects/test/repos/my-project/commits/84b87486ed57d14549f6a5bc5c00df508cad7ed1)
* Presque fini [View](https://bitbucket.org/projects/test/repos/my-project/commits/8f8a0d07d27a23f0871f1718ca5e0654bb1f38db)
* Dernier commit avant merge [View](https://bitbucket.org/projects/test/repos/my-project/commits/39d4213bded6915081dd42cd506c52ff20ac2659)
* Resolve a part of merge conflicts [View](https://bitbucket.org/projects/test/repos/my-project/commits/275a065d8ebde70d9556ad1c2e915daf6228578b)
* :zap: svg in assets [View](https://bitbucket.org/projects/test/repos/my-project/commits/d993111d34afa7f33a56c95823e2ca159a8350f1)
* :alien: translation keys for visibility page [View](https://bitbucket.org/projects/test/repos/my-project/commits/7a9c7b6dc3d5f63282fe48e8dd9b1979cca38463)
* start visibility [View](https://bitbucket.org/projects/test/repos/my-project/commits/8ff8cbc40838ac3ffb41643804ca3aa976adc4c8)
* :zap: selector custom component for ui, half the visibility page [View](https://bitbucket.org/projects/test/repos/my-project/commits/d107978f2c66dfa80abb47ddc2cce107f8a5eec1)
* end visibilty fields link with poll config [View](https://bitbucket.org/projects/test/repos/my-project/commits/f4108ee61b31fe555775a05dbebba49ed78d722f)
* :zap: link default values [View](https://bitbucket.org/projects/test/repos/my-project/commits/c1935dbb87b53b4750c798dee79506cc215ac1dd)
* :zap: linked things [View](https://bitbucket.org/projects/test/repos/my-project/commits/7da480f310359c4d29a030654582cbadf68d26ce)
* :art: style remove strange section sizes, h1 size greater [View](https://bitbucket.org/projects/test/repos/my-project/commits/93f3aa76bd7aced66d936967c7f7fb90b2d800cd)
* add default content to poll config [View](https://bitbucket.org/projects/test/repos/my-project/commits/e179be812eda262fb103c67b721f35f7c95010fa)
* :zap: enhance keyboard navigation with answers [View](https://bitbucket.org/projects/test/repos/my-project/commits/9c02b1ae2b16abd5ef43f41721a2657369fedc28)
* :alien: add english key to translate [View](https://bitbucket.org/projects/test/repos/my-project/commits/48586b847507e93f0c93c084364523d2bef94e73)
* changer la langue entre fr et en quand on clique sur l'icone de traduction [View](https://bitbucket.org/projects/test/repos/my-project/commits/b78ea6273eadfa9ea862952fdd4ed32b72a9191e)
* Translation work [View](https://bitbucket.org/projects/test/repos/my-project/commits/abe07bc9784cce5aa93ffa2831ca18abc8e8c046)
* HTML Part [View](https://bitbucket.org/projects/test/repos/my-project/commits/c581d7262500778c7fab1d63323f74437a6e0665)
* Complete HTML [View](https://bitbucket.org/projects/test/repos/my-project/commits/a53322b441be5cdf882777e92909205e91008445)
* CSS Part [View](https://bitbucket.org/projects/test/repos/my-project/commits/3e372d6f53b7dc8e06d26bc8295663505f958def)
* Other css part [View](https://bitbucket.org/projects/test/repos/my-project/commits/07f5d60b95e87c5393061a2c443a8d4f3b66e285)
* :zap: start backend calls [View](https://bitbucket.org/projects/test/repos/my-project/commits/f223b760fff0cfc769396891f5528fc97b55099d)
* organise calls, add headers [View](https://bitbucket.org/projects/test/repos/my-project/commits/cb6636f1557cdf4e33f0a2163245f6ab5ae63755)
* push [View](https://bitbucket.org/projects/test/repos/my-project/commits/d3a7a37d4db51e2aaddae9180c7c4d6dc8413444)
* Spelling corrections [View](https://bitbucket.org/projects/test/repos/my-project/commits/6f08fc3dd05203babedf7d15c8c9fe09b9b0eca7)
* 🎉🎉 Page terminée 🎉🎉 [View](https://bitbucket.org/projects/test/repos/my-project/commits/73b9d496e68db9c0bdb49e1f53fc3a25129c97eb)
* Plus qu'a aligner les labels aux inputs [View](https://bitbucket.org/projects/test/repos/my-project/commits/be66cc0a907fc1e947d5c02e85ff1e6388eec0a1)
* Terminé [View](https://bitbucket.org/projects/test/repos/my-project/commits/2b079f63a043e3bd2dda486ca8e1005b72535c6a)
* Add route and HTML [View](https://bitbucket.org/projects/test/repos/my-project/commits/adcdaf911f99567bb348accd1197a6f013939bca)
* Add css [View](https://bitbucket.org/projects/test/repos/my-project/commits/c727aa935e509e061b0dba669e41c82bc6791e63)
* :art: style on current page from the route data, and texts in the confirm page, step end [View](https://bitbucket.org/projects/test/repos/my-project/commits/809aa0f02fc0add44b497a4ba8ee55c6ee17fc6c)
* :zap: link to public [View](https://bitbucket.org/projects/test/repos/my-project/commits/112119194a1255b6c96e82476dc7e08123b1b835)
* :zap: remove debug step in nav [View](https://bitbucket.org/projects/test/repos/my-project/commits/daf7006bb8317b4ec6ed96e0a28ef93d8de9ba39)
* :zap: fix some deps [View](https://bitbucket.org/projects/test/repos/my-project/commits/cf4e9f45634b0eb8fa52bf77c52373876ce5eaef)
* :zap: update dependencies with yarn, add primefaces to make toasts [View](https://bitbucket.org/projects/test/repos/my-project/commits/ded5e71e73a037096d0497b615faf82d733a775b)
* :art: add font awesome [View](https://bitbucket.org/projects/test/repos/my-project/commits/4296c5c9f95c2dae7754c4a6ba1751444b9ff039)
* :zap: get poll data in vote choices [View](https://bitbucket.org/projects/test/repos/my-project/commits/5657f57fc75b05c055c63798032c8eae0514a0e0)
* :zap: reorganize poll display page [View](https://bitbucket.org/projects/test/repos/my-project/commits/79ef34e5af971db537f42cb0c4eacd6bd79f00e0)
* merge with dev [View](https://bitbucket.org/projects/test/repos/my-project/commits/c9b4ffe328ec283b2630406c788dab70b45c8505)
* :zap: enhance display poll page [View](https://bitbucket.org/projects/test/repos/my-project/commits/52587428ddcbe179c71892f9288a44202306fb0a)
* :zap: reorganize poll display page and urls in config [View](https://bitbucket.org/projects/test/repos/my-project/commits/051e4d8ee469370a7ae7b68cce6a1325394b9c12)
* :zap: change translation button way to be in sync with the model [View](https://bitbucket.org/projects/test/repos/my-project/commits/37904596fbc2f68e2fa6d80d44422b4230af71d8)
* :art: visual help on clickable elements [View](https://bitbucket.org/projects/test/repos/my-project/commits/5eba5d684b7c8b6194ac1676b4559d189792ec44)
* :zap: check for uniqueness of the slug, slug the title by default [View](https://bitbucket.org/projects/test/repos/my-project/commits/2720b6596241874df330373645952f6a53ebeb5c)
* :zap: add email to creation [View](https://bitbucket.org/projects/test/repos/my-project/commits/7c64f1f8f08b75fb34ddd7459d8e9580202e5298)
* :zap: copy to clipboard ok [View](https://bitbucket.org/projects/test/repos/my-project/commits/4098f7ec5c533d3b35e629278006d6134ff8ee38)
* :zap: toast messages when copied to clipboard and network errors [View](https://bitbucket.org/projects/test/repos/my-project/commits/b44f2719b44e4aba7476dc7952b4cc739b9d1d39)
* :book: clean console logs [View](https://bitbucket.org/projects/test/repos/my-project/commits/7df60e5a514783a5d393e9a3446a934e12e580ea)
* :bug: fix show and hide of password input [View](https://bitbucket.org/projects/test/repos/my-project/commits/fd4bbb5c712fb79204badae316d92fd17be7c9e5)
* :zap: calls in administration page to delete things [View](https://bitbucket.org/projects/test/repos/my-project/commits/bae3f19af223022c933fd622d3c8adf2bf6167db)
* :bug: remove duplicate text in end of admin page [View](https://bitbucket.org/projects/test/repos/my-project/commits/113609e945f5e09ae3c04119225eb6bd7fa670c8)
* :zap: toast todo things [View](https://bitbucket.org/projects/test/repos/my-project/commits/7b790e3cdc58ee296e16645abef0fc9ee0cad629)
* :zap: computations for the result graph [View](https://bitbucket.org/projects/test/repos/my-project/commits/1b65d58a6f52acfb0265c33de7c9779177b73ff1)
* toggle simple answer [View](https://bitbucket.org/projects/test/repos/my-project/commits/a3e243ed19bddc12e194a166ab38c3101835fcc2)
* :bug: fix build [View](https://bitbucket.org/projects/test/repos/my-project/commits/10497c9cb09873f3ede8b75729d2f444d12e5338)
* :zap: add update demo script, remove duplicate toast, try hash route [View](https://bitbucket.org/projects/test/repos/my-project/commits/6a3d2c3195303b5094f43102df78f7e4990e19c8)
* :zap: modal to display url [View](https://bitbucket.org/projects/test/repos/my-project/commits/255205696bcf8778088404348bdd0b748649f0b3)
* :zap: list mypolls on first page [View](https://bitbucket.org/projects/test/repos/my-project/commits/9ebd22536b1ed314e264757867d84bef1ee87d9f)
* buttons to nav [View](https://bitbucket.org/projects/test/repos/my-project/commits/3808f194258dd5cd93b03258ec2f2d90ee6b615b)
* :zap: erasable inputs on first config screen ok [View](https://bitbucket.org/projects/test/repos/my-project/commits/3ada66ac5f36c38502556f18982954d2526cce0e)
* launch creation from resume page [View](https://bitbucket.org/projects/test/repos/my-project/commits/f8568eb9102668521556b40eacc89ee8b639db09)
* :zap: lang input placement [View](https://bitbucket.org/projects/test/repos/my-project/commits/ff5c11e79c42926296516f27cc95aa660e34a50d)
* :zap: really fetch a poll by id [View](https://bitbucket.org/projects/test/repos/my-project/commits/123a0b1c809999306f131e6e0f9523d82944d38a)
* :zap: update vote list after vote creation [View](https://bitbucket.org/projects/test/repos/my-project/commits/06cf447529583f05789e17f9d9b9d196f0a56409)
* :zap: hop [View](https://bitbucket.org/projects/test/repos/my-project/commits/96709c9bc71980541497eb7f4387512948f3de08)
* :book: add mocks from updated backend [View](https://bitbucket.org/projects/test/repos/my-project/commits/a68cbdcc0a017e30490239ff9593c69b7b2f798f)
* :bug: fix recursion in input erase button [View](https://bitbucket.org/projects/test/repos/my-project/commits/195259bb722a4dd5260a05bbe5dd77cbc6d0577e)
* :zap: menu to nav on poll display - #64 [View](https://bitbucket.org/projects/test/repos/my-project/commits/d2c726012bbc4cf413b18f454fc9e859fdb50b49)
* :zap: build for production, :bug: fix publicy of vars in templates [View](https://bitbucket.org/projects/test/repos/my-project/commits/ea43430e1b7acf3f6250215fc9966cca5e6422a5)
* :zap: build for demo updated [View](https://bitbucket.org/projects/test/repos/my-project/commits/f96833d96e7c53dd855113ef9e3a7dd7b62c5021)
* :zap: use hash for internal routing in the frontend [View](https://bitbucket.org/projects/test/repos/my-project/commits/b06a44fb98ec9d0f3903b99f917aff7817742983)
* poll routing hints in the app, demo precision in header [View](https://bitbucket.org/projects/test/repos/my-project/commits/8322a9a83a799e67b90dd47e0aa4ff1c56b81e0b)
* :zap: other url to create a poll [View](https://bitbucket.org/projects/test/repos/my-project/commits/9900e1ec976dd98fcb63bc35ed6f286caa8c427c)
* sync fetch stuff [View](https://bitbucket.org/projects/test/repos/my-project/commits/02995c8b3d40eb7b05361c8ecf9e59a706a0fd51)
* :zap: mock for poll 1, fix new comment [View](https://bitbucket.org/projects/test/repos/my-project/commits/346bd9dc4f69296c51550f0da1b7e40a632051a7)
* stuff [View](https://bitbucket.org/projects/test/repos/my-project/commits/7e4e80f1ed3843eb8724e93d46c1d7fc598dcdd1)
* :bug: fix fetch of old params [View](https://bitbucket.org/projects/test/repos/my-project/commits/01bddc842db7b91ed2e5ebe4db036ba709dae3f4)
* :zap: add administration key after creation [View](https://bitbucket.org/projects/test/repos/my-project/commits/7bc53e198d8dc9fdae172bd596647a6b2ca1ad6f)
* :zap: choices lighter and work [View](https://bitbucket.org/projects/test/repos/my-project/commits/22bd836a16187607ee3be22cad867c7f7e2e729b)
* step to date form [View](https://bitbucket.org/projects/test/repos/my-project/commits/2e6723a1f1121c47bf9e6fb00cc043f987394940)
* fix buttons colours and manage a bit more the date form [View](https://bitbucket.org/projects/test/repos/my-project/commits/f056b0d79a2a5c894cc91d3723d16244c4abb58d)
* button to act on time [View](https://bitbucket.org/projects/test/repos/my-project/commits/a66933041f46dbaa2a15d373fd1809c82607dff3)
* change preview for dates type [View](https://bitbucket.org/projects/test/repos/my-project/commits/460e236d604beb1c24b4beaa5a1d992eb5b45dab)
* date accessor [View](https://bitbucket.org/projects/test/repos/my-project/commits/22736f709e36463e9e470e9a3385d246c85fd85f)
* :bug: handle no current poll [View](https://bitbucket.org/projects/test/repos/my-project/commits/f9d1cfff3a8f0f8d17ce622f21bc74fa9aa66aac)
* :bug: fix some config keys [View](https://bitbucket.org/projects/test/repos/my-project/commits/100569515328df6988c250f87e12124e9034227e)
* :zap: manage interval of date with date objects [View](https://bitbucket.org/projects/test/repos/my-project/commits/e227344647501e02bb3ed56da2e239e5c9e2a06a)
* :zap: disabled button when nothing is selected, detect counts [View](https://bitbucket.org/projects/test/repos/my-project/commits/0369d934bddc852e71d7a671ec41765b1a80990c)
* display a table of answers [View](https://bitbucket.org/projects/test/repos/my-project/commits/43ea524c2604891095940da3827ecd7c0003a10b)
* :bug: fix visibility of config in summary [View](https://bitbucket.org/projects/test/repos/my-project/commits/f976d65d204183c3c9f5d1d606edcf97bf6db311)
* :zap: update current answers with a previous vote [View](https://bitbucket.org/projects/test/repos/my-project/commits/9cf368f5504c1dcd28d34f9682888c65202bda6f)
* sort table of answers [View](https://bitbucket.org/projects/test/repos/my-project/commits/ca69160ea979c2995a2e5cdc2b825bb05e293fa2)
* :zap: show preferred texts in summary, icons for votes [View](https://bitbucket.org/projects/test/repos/my-project/commits/0e8d18cd8000b2b9a9fb3d74277bf24a26c8b380)
* :zap: add bulma framework, style table [View](https://bitbucket.org/projects/test/repos/my-project/commits/74ade7ac0fe52d48bec50522b648b5e0bac27d1e)
* fix select visibility [View](https://bitbucket.org/projects/test/repos/my-project/commits/bc67f26327186ef6ff9a476824eae987f3b83532)
* :zap: component to copy text to clipboard [View](https://bitbucket.org/projects/test/repos/my-project/commits/63e1a5e899cd6681ce819c53669a76b7987fb7a2)
* :zap: unify update config after fetching a poll config [View](https://bitbucket.org/projects/test/repos/my-project/commits/dd9e8950f4473dd39841ba3150bff23b8f172016)
* :fix: load vote of someone else ok [View](https://bitbucket.org/projects/test/repos/my-project/commits/b1adfaa8ea565cc6204ef975d5153ba99fc66e75)
* :zap: reset all answers before loading a stack [View](https://bitbucket.org/projects/test/repos/my-project/commits/4bcd3e475f9c7f31b5b4f8f5ffe700239929660c)
* export data in csv with rows and comments [View](https://bitbucket.org/projects/test/repos/my-project/commits/e3e5cf6638b2522c2bc7ac7181d63a6f3683e502)
* :zap: split poll display components [View](https://bitbucket.org/projects/test/repos/my-project/commits/ab23b9b2566cbd328bf9a510202c39fcd046634c)
* :gears: refacto date and poll utilities functions in a separate class [View](https://bitbucket.org/projects/test/repos/my-project/commits/c5b52764002149eff41dcd48cb876fa6ec79d562)
* :book: update refacto utilities as services [View](https://bitbucket.org/projects/test/repos/my-project/commits/44424d378aef95bb0bfc014104b5346c340ad5c7)
* :hammer: test voting choice, add ci pipeline config [View](https://bitbucket.org/projects/test/repos/my-project/commits/0a3ee9b6f0c145ed069eb07f554f20f4f294cff4)
* :zap: update package lock for CI [View](https://bitbucket.org/projects/test/repos/my-project/commits/91b1d64f0a6282fcbebd46aab328988e75be2620)
* :bug: run test in single run mode on CI [View](https://bitbucket.org/projects/test/repos/my-project/commits/a088daf4a3a1870a82c300e66d1463b0be909f5e)
* run build for prod on CI [View](https://bitbucket.org/projects/test/repos/my-project/commits/b360720e1504af9b220d579ee2b01668255c6b7d)
* :gears: update ng cli 8 [View](https://bitbucket.org/projects/test/repos/my-project/commits/8f59e654477a5b2ccea0748b59720ccb8137919e)
* :hammer: update to angular v 9 [View](https://bitbucket.org/projects/test/repos/my-project/commits/38d1d52633a3e0fb8d68433edb985754861aaf2b)
* :zap: custom date value accessor with renderer 2 [View](https://bitbucket.org/projects/test/repos/my-project/commits/1816150c6d06c51ab83cc77ebebff7ff70cc002f)
* :hammer: test with FirefoxHeadless for gitlab CI [View](https://bitbucket.org/projects/test/repos/my-project/commits/e089d19993613619c0585556f5cdc6265154a0cb)
* :zap: manage dates poll type display, fix typo in add button date [View](https://bitbucket.org/projects/test/repos/my-project/commits/15bbf0e375309a8e273c4a5b9aa0bc70cd5cdc6e)
* dates and recap side to side [View](https://bitbucket.org/projects/test/repos/my-project/commits/61bf6a289c44cac419d60e186f18594b21f1b4e8)
* :zap: ad storybook [View](https://bitbucket.org/projects/test/repos/my-project/commits/4ec9b174ad295f5cee76e515ed70b88313f6476e)
* :zap: add some types interfaces in the config [View](https://bitbucket.org/projects/test/repos/my-project/commits/49b79395644d792ac633a0df5d15da07e0c460a3)
* :book: add compodoc [View](https://bitbucket.org/projects/test/repos/my-project/commits/d7a2a8d6b78f7ea920fd794139f7f3d0d6dddd51)
* :bug: fix synced time slices [View](https://bitbucket.org/projects/test/repos/my-project/commits/ff8e02b2154d81a62a7f979dcfcc83c826a79295)
* :fix: remove puckage lock in profit of yarn [View](https://bitbucket.org/projects/test/repos/my-project/commits/ba7465fe8395c26e0d2bb6ae8fcab10d179a2497)
* :bug: add package only for CI [View](https://bitbucket.org/projects/test/repos/my-project/commits/e03359e8db170647a5534e376803a9d6e0a10ddd)
* :zap: component to select theme [View](https://bitbucket.org/projects/test/repos/my-project/commits/2d757c6726a942237c3bad27258e1820bce1e5d0)
* :art: better disposal for theme selector [View](https://bitbucket.org/projects/test/repos/my-project/commits/312b2d859943900a8784d0fbdc1cc03db0ab2be4)
* :hammer: fix for CI, bad option in npm run test [View](https://bitbucket.org/projects/test/repos/my-project/commits/a0138f84d3b01e276909a934d176a375e22529b1)
* :zap: add confirmation modal for admin user, issue #59 [View](https://bitbucket.org/projects/test/repos/my-project/commits/c0a4ec7a0c143263ed84b494ca30fcce3dc27e00)
* :bug: fix update after vote #65 [View](https://bitbucket.org/projects/test/repos/my-project/commits/75c26572fe0fcc9b305c51d10a39bd1d3fba6f43)
* :zap: can or can not modify votes issue #49 [View](https://bitbucket.org/projects/test/repos/my-project/commits/fff4e57378d9a49211a684f64433870fd67b3441)
* :zap: fix issue of selecting can or can not modify answers [View](https://bitbucket.org/projects/test/repos/my-project/commits/23dc45f1986fd8b3c06af7ba02a192737c04c3a4)
* :art: arrange create or retrieve page in two columns [View](https://bitbucket.org/projects/test/repos/my-project/commits/60c184c60ba389e8ebd1b40d6ac0d51488fe66b6)
* split many components, presentation with left nav [View](https://bitbucket.org/projects/test/repos/my-project/commits/9bdd4e0084d8c4fedf45453b947348cf55ad7416)
* :hammer: fix linting, add env default [View](https://bitbucket.org/projects/test/repos/my-project/commits/6e6b812d2d5271221d65b7d3d8c2705e134e2683)
* :zap: theme persisted in the localstorage, reload config on page reload - issue #75 [View](https://bitbucket.org/projects/test/repos/my-project/commits/936110846c4326d5772c89fbfad488b44aaa7651)
* :zap: :alien: Conserver le choix de langue au rechargement de la page - issue #54 [View](https://bitbucket.org/projects/test/repos/my-project/commits/acb091802c51ee7d1fad0b0ae08597da87cf3c52)
* :zap: export format json public [View](https://bitbucket.org/projects/test/repos/my-project/commits/e2c388da9e26e908ca278cde575ac9bff28926e4)
* :zap: add eslint [View](https://bitbucket.org/projects/test/repos/my-project/commits/e56d5cdcef59bba41e0d37711f047b6f799e45fa)
* - upgrade all packages - intall & configure linters (eslint, prettier, etc.) [View](https://bitbucket.org/projects/test/repos/my-project/commits/dd9bb8922f24cca7b33c34cb3bad1b190aebb91a)
* reformat all files + move routes.ts to AppRoutingModule [View](https://bitbucket.org/projects/test/repos/my-project/commits/18a7d4781ac44f820b870269f5134b305758e722)
* Jest tests [View](https://bitbucket.org/projects/test/repos/my-project/commits/ca5ffdc896864d47467b7562494c600b120f4d2b)
* routing for admin ith token parameter, add comments [View](https://bitbucket.org/projects/test/repos/my-project/commits/15b10f938149cc5fb8af087f773188be3c722bfe)
* :zap: admin route calling the backend [View](https://bitbucket.org/projects/test/repos/my-project/commits/8fa39250d5e5863c8987b3fc2e9464dc3bb61d7e)
* refacto : create entities, enums, services [View](https://bitbucket.org/projects/test/repos/my-project/commits/e5243204572e2dcba735335f4861f36d72fd98a5)
* :gears: move components to better semantic folders [View](https://bitbucket.org/projects/test/repos/my-project/commits/86ada008c505f6935e540023bb706cf9605588d9)
* :zap: change theme enum to correspond with themes classnames [View](https://bitbucket.org/projects/test/repos/my-project/commits/60b4bfb6197318ca5bb6e21d8dfc031da7c5d070)
* :zap: add component having a couple of configurable links, to navigate between pages [View](https://bitbucket.org/projects/test/repos/my-project/commits/da7e96526c3ed95b395b33bdaee5347ea9837f6f)
* Feature/simplify scss [View](https://bitbucket.org/projects/test/repos/my-project/commits/ba7a24708dd83cc99c81ebe064f5570fac369a38)
* gitignore add eslintcache file [View](https://bitbucket.org/projects/test/repos/my-project/commits/985b9fcdcf17b35790e341318b1a109b3e454a79)
* update env api endpoints [View](https://bitbucket.org/projects/test/repos/my-project/commits/23b8622a4f2b8d74e1b2d80319658ac70bcd2e21)
* rebase branch 'feature/refacto_1' of https://framagit.org/framasoft/framadate/funky-framadate-front into feature/refacto_1 [View](https://bitbucket.org/projects/test/repos/my-project/commits/7a4f16e4845f74894bcbfd7344205f005c243b5e)
* :bug: remove admin component request [View](https://bitbucket.org/projects/test/repos/my-project/commits/4ec9091233986af49d5c271b91bdbe33b18aaebe)
* :bug: fix window variable in html [View](https://bitbucket.org/projects/test/repos/my-project/commits/48636ad9478e002da705bd96c330333cb3bb3fc9)
* split config service & dispatch [View](https://bitbucket.org/projects/test/repos/my-project/commits/3997dd090e076bcd3f92562e231f118eb5cc731f)
* upgrade archi with modules [View](https://bitbucket.org/projects/test/repos/my-project/commits/7029368ab1fc7f4ebbddcaca3d7140f4441d2873)
* - replace date-fns by momentJS - install ng2-chart along with chart.js [View](https://bitbucket.org/projects/test/repos/my-project/commits/91be2a3048dbaa0179fa97f8cbc027d06b276f4a)
* 👷 — Build and deploy on Gitlab pages [View](https://bitbucket.org/projects/test/repos/my-project/commits/f6753822183d63a53c908017740b0908a600f3cc)
* 👷 — Try to deploy build on Gitlab page even if test fails [View](https://bitbucket.org/projects/test/repos/my-project/commits/f1cbf175a9c93681ffa0e438564cc76925e3c87a)
* 👷 — Deploy build on Gitlab page before tests [View](https://bitbucket.org/projects/test/repos/my-project/commits/96354f6202c0de8892a7516658ea1a5e65a28615)
* 👷 — Modify <base> tag in builds index.html [View](https://bitbucket.org/projects/test/repos/my-project/commits/da854454aaee8390e9430def4674577b747433cb)
* 👷 — Cleaner script for Gitlab page build [View](https://bitbucket.org/projects/test/repos/my-project/commits/645b25de790b43c19191545beecd4923a29b71eb)
* [feat] :zap: add a floating button to give feedback [View](https://bitbucket.org/projects/test/repos/my-project/commits/442530983b8015a291ae34be78d78c9e061adf7d)
* :style: style for feedback options, fixed floating button [View](https://bitbucket.org/projects/test/repos/my-project/commits/9057e890a408199eb96b6a6b7a92336a4b31582c)
* default to hide menu [View](https://bitbucket.org/projects/test/repos/my-project/commits/93ea16127475cd7611b70684ea6ff2f6d90ce96e)
* :zap: refacto feedback, :art: style for popup links, place icons before text [View](https://bitbucket.org/projects/test/repos/my-project/commits/cc27f31e0ecf08c5cae26068d19e1e715e921844)
* :zap: styling themes [View](https://bitbucket.org/projects/test/repos/my-project/commits/23c6b9400ee2d2917e3f5e8cf3d327fd2a537747)
* :book: add footer links, :art: set default theme to light, fix some details with black theme. [View](https://bitbucket.org/projects/test/repos/my-project/commits/a93a34a638ecca03dfc6466f0b347c9961cff18f)
* :art: primary button, section to find back my polls on home [View](https://bitbucket.org/projects/test/repos/my-project/commits/b2a739016fbc39b69138127fe60de621698aa904)
* add feedback button, load administration module from app module [View](https://bitbucket.org/projects/test/repos/my-project/commits/9c60f8a379fffea4574c86799c886aee37dd9968)
* :zap: change branch name in update demo script [View](https://bitbucket.org/projects/test/repos/my-project/commits/a1de41699e4aeeb6149f2a93f8c98696ff952a40)
* :zap: demo build script back to life [View](https://bitbucket.org/projects/test/repos/my-project/commits/4f0a29e806f9a87b97c7024487b195b3c90896eb)
* add user settings button & modal [View](https://bitbucket.org/projects/test/repos/my-project/commits/355fed53f3dc45fc27245e5b13dcefadac774b87)
* add json-server + refacto [View](https://bitbucket.org/projects/test/repos/my-project/commits/ae2974967048a6bbbba65df79591a1dcff970064)
* clean refacto [View](https://bitbucket.org/projects/test/repos/my-project/commits/3125e86f0bdc1ab74cec9baeb273588afe92ca90)
* replace primeng by material && improvments [View](https://bitbucket.org/projects/test/repos/my-project/commits/f9b847b305192506b2fc8109f187f6a45afeccd3)
* add route resolver for lazy-loading [View](https://bitbucket.org/projects/test/repos/my-project/commits/63600c759ebbdba5473789b6b030fe8e33a767ae)
* refacto routing [View](https://bitbucket.org/projects/test/repos/my-project/commits/a62e00c6adf4a0a62a617e0e5a9a054b6bfd6803)

View File

@ -1,9 +1,12 @@
# Pour débuter - getting started
Clonez le dépot, installez les dépendances, et lancez le serveur local qui se recharge lorsque vous sauvegardez des fichiers dans le dépot. Les fois suivantes vous n'aurez qu'a lancer yarn start.
Clonez le dépot, installez les dépendances, et lancez le serveur local qui se recharge lorsque vous sauvegardez des fichiers dans le dépot.
Les fois suivantes vous n'aurez qu'a lancer `yarn start`.
```bash
# clone the repo
# clonez le dépot
git clone https://framagit.org/framasoft/framadate/funky-framadate-front.git
cd funky-framadate-front
# install yarn
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
@ -11,10 +14,27 @@ sudo apt-get update && sudo apt-get install yarn
yarn install --pure-lockfile
yarn start
# and now check your browser http://localhost:4200
# et c'est parti, vous pouvez voir le site de développement http://localhost:4200
```
Pour interagir avec la base de données, il vous faudra également faire démarrer l'API Symfony de backend dans l'autre dépot, qui se lance par défaut sur le port 8000.
Pour interagir avec la base de données, il vous faudra également faire démarrer l'API Symfony de backend dans l'autre dépot https://framagit.org/tykayn/date-poll-api ,
qui se lance par défaut sur le port 8000 avec une simple commande (si vous avez installé le tout) `symfony serve`.
# Modifier les configurations par défaut
Les configurations par défaut les plus générales telles que le nom du site ou les adresses d'API sont importées dans les fichiers d'environnement:
[environment.ts par défaut](src/environments/environment.ts)
Les propriétés par défaut des objets sont dans les modèles:
[dossier des modèles](src/app/core/models)
Et c'est le service en charge de la persistence de ces configurations et du stockage local qui surchage les propriétés des modèles quand une personne revient sur le site
[storage.service.ts](src/app/core/services/storage.service.ts)
# Pas de config docker
Nous n'avons pas actuellement de config docker qui solutionnerait tout ça, les merge request sont les bienvenues! :)
=> https://framagit.org/framasoft/framadate/funky-framadate-front

View File

@ -1,5 +1,28 @@
# Todo - liste des choses à faire
## Idées pour de futures améliorations (pertinence à vérifier)
* Gagner en vie privée en chiffrant certaines informations ? Stockage zéro knowledge avec un chiffrement robuste à courbe elliptique.
* À réfléchir : permettre à Framadate de faire entrer à des gens plusieurs plages de temps de disponibilité et le service déduit quelles sont les plages de temps favorables (calcul d'intersection sur des lignes discontinues). Cela pourrait être avec divers niveaux de détail. Comme https://omnipointment.com/ (qui est un logiciel privateur)
* SSO du fédiverse ?
# Tableau des avancements
https://framagit.org/framasoft/framadate/funky-framadate-front/-/boards
# Choses faites
voir le [changelog.md]
Les idées et rapports de bugs sont disponibles dans [le tableau des Issues](https://framagit.org/framasoft/framadate/funky-framadate-front/-/boards) sur la forge logicielle.
## principales
* Accessibilité renforcée.
* Adapté aussi bien sur mobile que grands écrans à haute ou faible densité de pixels.
* Tests unitaires et end-to-end.
* Couverture de test.
* Choix de réponses possibles. Proposer de ne répondre que « oui » ou rien, ou aller dans la nuance en proposant « oui », « peut-être », « non », « ? ». *# Redondance ou le choix de réponses possibles de la première phrase concerne un autre choix ?*
* Insertion d'images dans le sondage de type texte, avec des URL uniquement. Une seule image par title possible ou rien.
* Thème sombre.
* Duplication de sondage à partir d'un autre.
* Limiter le nombre de participants maximum

View File

@ -19,3 +19,12 @@ Quelques lignes à vérifier:
* système de recherche basique
N'ayez pas peur de demander de l'aide
## Structure html
* Ajouter une attribut lang="fr" sur l'élément html
* Chaque page doit avoir un title unique (ex: `title="Création de sondage - étape 1/7 - BarracuDate"`)
* Chaque page doit avoir un h1 (ex: `<h1>Création de sondage - étape 1 sur 7</h1>`)
* Un élément de texte ne peut pas être dans un élément div ou span (ex: <p>300 caractères maximum</p>)
* Éviter dutiliser lattribut tabindex
* Les actions doivent être portées par des éléments button (et non <i> ou <a>)

View File

@ -1,16 +1,25 @@
# Internationalisation - i18n
<a href="https://weblate.framasoft.org/engage/funky-framadate/">
<img src="https://weblate.framasoft.org/widgets/funky-framadate/-/funky-framadate-front/svg-badge.svg" alt="État de la traduction" />
</a>
## Dans les templates HTML
Toutes les chaînes de texte doivent être disponible en minimum deux langues: Français et Anglais.
Pour l'ajout de nouvelles traductions voir [la documentations des traductions.md](../traductions.md)
La documentation a été pensée pour être compréhensible en premier lieu par des personnes francophones, le projet étant issu de Framasoft et de personnes uniquement Francophones, nous avons jugé que c'était le moyen le plus efficace pour le faire grandir.
Voir les fichiers src/assets/i18n [EN.json](/src/assets/i18n/EN.json) et [FR.json](/src/assets/i18n/FR.json)
La traduction se base sur un système de clés-valeur.
Voir les fichiers dans le dossier **src/assets/i18n**
[EN.json](/src/assets/i18n/en.json) et [FR.json](/src/assets/i18n/fr.json)
La traduction se base sur un système de clés-valeur dans des fichiers JSON.
Les clés sont entrées dans les templates html, et c'est la config d'Angular qui les traduit selon la langue demandée par le visiteur du site.
Chaque fichier de traduction est déclaré dans le [AppModule](../../src/app/app.module.ts) avec le module @ngx-translate. Examinez l'exemple pour rajouter votre propre traduction.
Utilisez des sous groupes dans vos traductions afin de mieux segmenter les chaines de caractère par page et selon le sens qu'elles sous tendent.
Utilisez des sous groupes dans vos traductions afin de mieux segmenter les chaines de caractère par page et selon leur sens.
Faites en sorte de réutiliser au maximum les phrases identiques.
## Traduction de la documentation mkdocs
voir ici https://www.mkdocs.org/user-guide/configuration/#lang
Pour traduire cette documentation (les fichiers markdwon dans le dossier /docs/) qui génère un mini site avec mkdocs avec la commande de build, il faut faire des fichiers avec un nom de langue tels que index.fr.md et index.en.md.
Plus d'infos: https://www.mkdocs.org/user-guide/configuration/#lang

View File

@ -0,0 +1,35 @@
## Résumé
(Summarize the bug encountered concisely)
## Steps to reproduce
(How one can reproduce the issue - this is very important)
## Example Project
(If possible, please create an example project here on GitLab.com that exhibits the problematic
behavior, and link to it here in the bug report.
If you are using an older version of GitLab, this will also determine whether the bug has been fixed
in a more recent version)
## What is the current bug behavior?
(What actually happens)
## What is the expected correct behavior?
(What you should see instead)
## Relevant logs and/or screenshots
(Paste any relevant logs - please use code blocks (```) to format console output, logs, and code, as
it's very hard to read otherwise.)
## Possible fixes
(If you can, link to the line of code that might be responsible for the problem)
/label ~bug ~reproduced ~needs-investigation
/cc @project-manager
/assign @qa-tester

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
docs/img/dates-choice.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

BIN
docs/img/kind_poll.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
docs/img/landing_page.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

BIN
docs/img/migration_v1.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

View File

@ -12,12 +12,10 @@ FR: Un logiciel libre de sondage fait par les contributeurs de l'association Fra
* Accesibility
* Licence GNU affero V3
# Framadate - funky version
FR: Un logiciel libre de sondage fait par les contributeurs de l'association Framasoft, avec une API backend.
EN: A libre polling software made by contributors around the French association Framasoft.
This version uses a brand new backend API.
# Présentation
FR: Un logiciel libre de sondage fait par les contributeurs de l'association Framasoft, avec une API de backend en Symfony 5.
## Pour débuter - getting started
## Pour débuter
[lire la doc pour débuter votre Funky Framadate](GETTING_STARTED.md)
## Documentation
@ -59,7 +57,7 @@ notes-de-reunion)
# Exemple de maquette de la nouvelle version
![funky_framadate_maquette](uploads/535da7c3a5ce5fae67b2b497bdc4631d/funky_framadate_maquette.png)
![funky_framadate_maquette](img/framadate_funky_design.png)
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.1.

View File

@ -62,7 +62,7 @@ Il est difficile d'entrer dans le projet en absence de spécifications écrites.
* Discussion : https://framateam.org/ux-framatrucs/channels/framadate
* Repo front/dev : https://framagit.org/framasoft/framadate/funky-framadate-front/tree/dev
* Repo back : https://framagit.org/framasoft/framadate/framadate
* Repo back : https://framagit.org/tykayn/date-poll-api
* Maquettes Zeplin : https://scene.zeplin.io/project/5d4d83d68866d6522ff2ff10
* La démo : https://framadate-api.cipherbliss.com/
* Vidéo de présentation : https://nuage.maiwann.net/s/JRRHTR9D2akMAa7

65
docs/reunions/2021.md Normal file
View File

@ -0,0 +1,65 @@
# 2021
![landing_page](../img/landing_page.png)
## Septembre
Début des jours ouvrés par Tykayn avec les designs de la DINUM
## Mars
la DINUM propose de contribuer à financer le développement de la nouvelle version.
## Avril
### 19 Avr
Migration fonctionnelle depuis la BDD de la v1 dans la partie backend
## Octobre
### 5 Oct
le lien vers le lieu où sont travaillées les maquettes de la DINUM https://www.sketch.com/s/5833607c-e93e-4e9b-9c7e-0614238c6d8c
présentation des wireframes
parcours complet, apparence mobile
mobile first
barre de progression, étapes 1 sur 5
comment se présente la gestion des horaires identiques pour chaque jour
* demander aux admins de framadate quels sont les horaires les plus fréquentes dans les sondages de date
* sondage texte: proposer une url d'image ou une URL avec chaque choix de réponse
* délai expiration de 180 jours par défaut
* proposer de participer au sondage après sa création
questions , propositions
* présenter les dates les plus populaires avec une vue calendrier ?
* comment se présente l'écran de vote sur mobile?
* quelle mise en forme des images et des url
* proposer de faire de l'hébergement d'image locale
* mise en forme des plages horaires pour voir qu'elles sont un sous ensemble d'une date
* quoi mettre dans le header et footer
* mise en avant de la destination des données et du droit qui les régit
* personnalisation super admin
### 7 Oct
ici une démo naviguable https://www.sketch.com/s/5833607c-e93e-4e9b-9c7e-0614238c6d8c/a/rbYngRP/play
icones avec feather icons ou fork awesome pour se séparer des icones google
faire une page galerie de composants et typographie. la démo comporte une page prête à l'emploi pour ça. on va pouvoir mettre à jour les variables scss de couleur.
* points de réflexion
* affichage du footer, menu, logo
* teinte de gris sur les jours non activables
* vérifier les contrastes avec tanaguru
* lien de démo maquette https://www.sketch.com/s/5833607c-e93e-4e9b-9c7e-0614238c6d8c/a/rbYngRP/play
### 14 Oct
quelques notes de la démo du jour: * démo du parcours avec un logo
* ajout de définition de la date retenue par le créateur du sondage
* comment proposer du support, des retours, de la contribution
* réponse à un sondage, moyen de dire ok/rien pour toutes les dates
* comment proposer les traductions
* espace pour personnaliser le footer, les liens de support, le titre, les CGU
* accessibilité des graphiques de résultats
* quel affichage pour un champ en erreur, message d'explication
## Novembre

7
docs/reunions/2022.md Normal file
View File

@ -0,0 +1,7 @@
# Février 2022
- Présentation du rework design Figma, ajout de la section participation au vote.
Prévision de version 1 pour le Lundi 14 Mars 2022.
# Janvier 2022
- Rework design après tests utilisateurs, développement en pause pendant le mois.

34
docs/traductions.md Normal file
View File

@ -0,0 +1,34 @@
# Traductions
<a href="https://weblate.framasoft.org/engage/funky-framadate/">
<img src="https://weblate.framasoft.org/widgets/funky-framadate/-/funky-framadate-front/svg-badge.svg" alt="État de la traduction" />
</a>
<a href="https://weblate.framasoft.org/engage/funky-framadate/">
<img src="https://weblate.framasoft.org/widgets/funky-framadate/-/funky-framadate-front/multi-auto.svg" alt="État de la traduction" />
</a>
Les chaînes sont traduites via des clés de fichiers JSON
exemple: [src/assets/i18n/FR.json]()
La mise en place de weblate pour faire des traductions collaboratives a été faite.
Vous pouvez contribuer ici https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front
Nous avons récupéré les chaînes de traduction du projet Framadate v1, il faudra faire un nettoyage des clés et valeurs inutilisées dans les fichiers de traduction.
# Ajouter de nouvelles langues
Le Weblate effectue automatiquement des Merge Request vers Framagit, si une langue est nouvelle elle proposera de créer un fichier **nom_de_la_langue.json** dans le dossier **src/assets/i18n**
Pour que l'appli reconnaisse ces nouvelles langues il faut les enregistrer dans l'AppModule.
Chaque fichier de traduction est automatiquement chargé dans le [AppModule](../../src/app/app.module.ts) avec le Loader de @ngx-translate. Il faut ensuite ajouter le code de la langue dans l'énumération du fichier **/app/core/enums/language.enum.ts** Examinez l'exemple pour rajouter votre propre traduction.
``` typescript
export enum Language {
FR = 'fr',
BR = 'br',
EN = 'en',
//... etc
}
```
# prise en charges des traductions manquantes
Les textes manquants seront indiqués avec "MISSING TRANSLATION FOR" et le nom de la clé demandée par le HTML.

1471
log_boulot.org Normal file

File diff suppressed because it is too large Load Diff

View File

@ -7,14 +7,15 @@ docs_dir: docs
# index.md
nav:
- Accueil:
- index.en.md
- index.fr.md
- en cours: TODO.md
- Accueil : index.en.md
- Accueil : index.fr.md
- en cours: TODO.md
- Guide utilisateur:
- user-guide/index.md
- LICENCE.md
- Guide général: user-guide/index.md
- License: user-guide/LICENCE.en.md
- Guide administrateur:
- Changelog: changelog.md
- Changelog Détaillé: ../../CHANGELOG.md
- Guide développeur:
- Démarrer: GETTING_STARTED.md
- Personnaliser: customisation.md
@ -24,7 +25,7 @@ nav:
- Angular: angular.md
- Traduction: cadrage/i18n.md
- Historique:
- Historique: history.md
- Historique: user-guide/history.md
- Spécifications: cadrage/specifications-fonctionnelles.md
- Réunions:
- Modèle vierge: reunions/0_blank_notes.md
@ -52,9 +53,9 @@ plugins:
subsection: "Sous section"
page title: "Page avec un titre traduite"
theme:
name: slate
nav_style: dark
#theme:
# name: slate
# nav_style: dark
extra:
# Default mkdocs-material alternate links for untranslated pages
# https://squidfunk.github.io/mkdocs-material/setup/changing-the-language/#site-language-selector

View File

@ -0,0 +1,84 @@
export default {
allow_comments: true,
allowComments: true,
allowed_answers: [],
areResultsPublic: true,
choices: [],
choices_grouped: [],
comments: [],
creation_date: '2021-05-18T20:40:51.385Z',
custom_url: 'sdfsfdsfg',
dateChoices: [
{
date_object: '2021-05-19T20:40:18.500Z',
literal: '2021-05-19',
timeSlices: {},
},
{
date_object: '2021-05-20T20:40:18.500Z',
literal: '2021-05-20',
timeSlices: {},
},
{
date_object: '2021-05-21T20:40:18.500Z',
literal: '2021-05-21',
timeSlices: {},
},
{
date_object: '2021-05-22T20:40:18.500Z',
literal: '2021-05-22',
timeSlices: {},
},
{
date_object: '2021-05-18T20:40:33.557Z',
literal: '',
timeSlices: [],
},
{
date_object: '2021-05-18T20:40:33.557Z',
literal: '',
timeSlices: [],
},
{
date_object: '2021-05-18T20:40:33.557Z',
literal: '',
timeSlices: [],
},
],
default_expiracy_days_from_now: 60,
description: 'RSVP',
has_several_hours: false,
hasSeveralHours: false,
id: 0,
is_zero_knowledge: false,
isMaybeAnswerAvailable: false,
isOwnerNotifiedByEmailOnNewComment: false,
isOwnerNotifiedByEmailOnNewVote: false,
kind: 'date',
max_count_of_answers: true,
maxCountOfAnswers: 150,
modification_policy: 'everybody',
owner: {
email: 'example@example.com',
polls: [],
pseudo: 'pseudo',
},
password: '',
stacks: [],
timeSlices: [
{
literal: 'matin',
},
{
literal: 'midi',
},
{
literal: 'après-midi',
},
{
literal: 'soir',
},
],
title: 'sdfsfdsfg',
votes: [],
};

View File

@ -40,12 +40,12 @@ export class PollConfig {
myEmail: string = environment.production ? '' : 'tktest@tktest.com';
myPolls: any = []; // list of retrieved polls from the backend api
/*
date specific poll, we have the choice to setup different hours (timeSlices) for all possible dates (dateList), or use the same hours for all dates
date specific poll, we have the group_choice to setup different hours (timeSlices) for all possible dates (dateChoices), or use the same hours for all dates
*/
allowSeveralHours = 'true';
// access
visibility = 'link_only'; // visible to anyone with the link:
voteChoices = 'only_yes'; // possible answers to a vote choice: only "yes", "yes, maybe, no"
voteChoices = 'only_yes'; // possible answers to a vote group_choice: only "yes", "yes, maybe, no"
creationDate = new Date();
expirationDate = ''; // expiracy date
voteStackId = null; // id of the vote stack to update
@ -63,7 +63,7 @@ export class PollConfig {
owner_modifier_token = ''; // key to change a vote stack
canModifyAnswers = true; // bool for the frontend selector
whoCanChangeAnswers = 'everybody'; // everybody, self, nobody (= just admin)
dateList: any = otherDefaultDates; // sets of days as strings, config to set identical time for days in a special days poll
dateList: any = otherDefaultDates; // sets of dateChoices as strings, config to set identical time for dateChoices in a special dateChoices poll
timeList: DateChoice[] = otherDefaultDates; // ranges of time expressed as strings
answers: PollAnswer[] = defaultAnswers;

View File

@ -1,6 +1,6 @@
export interface DateChoice {
literal: string;
timeList: TimeSlices[];
literal: String;
timeSlices: TimeSlices[];
date_object: Date;
}
@ -23,10 +23,10 @@ const currentMonth = new Date().getMonth();
const currentDay = new Date().getDate();
export const basicSlicesOfDay: TimeSlices[] = [
{ literal: 'matin' },
{ literal: 'midi' },
{ literal: 'après-midi' },
{ literal: 'soir' },
{ literal: '' },
// { literal: 'midi' },
// { literal: 'après-midi' },
// { literal: 'soir' },
];
export const otherSlicesOfDay: TimeSlices[] = [
{ literal: 'aux aurores' },
@ -47,17 +47,17 @@ export const defaultDates: DateChoice[] = [
{
literal: `${currentYear}-${currentMonth}-${currentDay}`,
date_object: new Date(),
timeList: defaultTimeOfDay,
timeSlices: defaultTimeOfDay,
},
{
literal: `${currentYear}-${currentMonth}-${currentDay + 1}`,
date_object: new Date(),
timeList: defaultTimeOfDay,
timeSlices: defaultTimeOfDay,
},
{
literal: `${currentYear}-${currentMonth}-${currentDay + 2}`,
date_object: new Date(),
timeList: defaultTimeOfDay,
timeSlices: defaultTimeOfDay,
},
];
@ -65,17 +65,17 @@ export const otherDefaultDates: DateChoice[] = [
{
literal: `${currentYear}-${currentMonth}-${currentDay}`,
date_object: new Date(),
timeList: defaultTimeOfDay,
timeSlices: defaultTimeOfDay,
},
{
literal: `${currentYear}-${currentMonth}-${currentDay + 1}`,
date_object: new Date(currentYear, currentMonth, currentDay + 1),
timeList: otherTimeOfDay,
timeSlices: otherTimeOfDay,
},
{
literal: `${currentYear}-${currentMonth}-${currentDay + 2}`,
date_object: new Date(),
timeList: moreTimeOfDay,
timeSlices: moreTimeOfDay,
},
];
export const defaultAnswers: PollAnswer[] = [

View File

@ -1 +0,0 @@
{"__symbolic":"module","version":1,"metadata":{"DATE_VALUE_ACCESSOR":{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR"},"useExisting":{"__symbolic":"reference","name":"DateValueAccessor"},"multi":true},"DateValueAccessor":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive"},"arguments":[{"selector":"[useValueAsDate]","providers":[{"__symbolic":"reference","name":"DATE_VALUE_ACCESSOR"}]}]}],"members":{"onChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener"},"arguments":["input",["$event.target.valueAsDate"]]}]}],"onTouched":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener"},"arguments":["blur",[]]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"}]}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}]}}}}

View File

@ -1,49 +0,0 @@
import { Directive, ElementRef, forwardRef, HostListener, Renderer2 } from '@angular/core';
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
export const DATE_VALUE_ACCESSOR: any = {
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => DateValueAccessor),
multi: true,
};
/**
* The accessor for writing a value and listening to changes on a date input element
*
* ### Example
* `<input type="date" choice_label="myBirthday" ngModel useValueAsDate>`
*/
@Directive({
// this selector changes the previous behavior silently and might break existing code
// selector: 'input[type=date][formControlName],input[type=date][formControl],input[type=date][ngModel]',
// this selector is an opt-in version
selector: '[useValueAsDate]',
providers: [DATE_VALUE_ACCESSOR],
})
export class DateValueAccessor implements ControlValueAccessor {
@HostListener('input', ['$event.target.valueAsDate']) onChange = (_: any) => {};
@HostListener('blur', []) onTouched = () => {};
constructor(private _renderer: Renderer2, private _elementRef: ElementRef) {}
writeValue(value: Date): void {
if (!value) {
this._renderer.setProperty(this._elementRef.nativeElement, 'value', null);
return;
}
this._renderer.setProperty(this._elementRef.nativeElement, 'valueAsDate', value);
}
registerOnChange(fn: (_: any) => void): void {
this.onChange = fn;
}
registerOnTouched(fn: () => void): void {
this.onTouched = fn;
}
setDisabledState(isDisabled: boolean): void {
this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);
}
}

View File

@ -1 +0,0 @@
{"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./module"},{"from":"./date-value-accessor"}]}

View File

@ -1,2 +0,0 @@
export * from './module';
export * from './date-value-accessor';

View File

@ -1 +0,0 @@
{"__symbolic":"module","version":1,"metadata":{"DateValueAccessorModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"declarations":[{"__symbolic":"reference","module":"./date-value-accessor","name":"DateValueAccessor"}],"exports":[{"__symbolic":"reference","module":"./date-value-accessor","name":"DateValueAccessor"}]}]}]}}}

View File

@ -1,8 +0,0 @@
import { NgModule } from '@angular/core';
import { DateValueAccessor } from './date-value-accessor';
@NgModule({
declarations: [DateValueAccessor],
exports: [DateValueAccessor],
})
export class DateValueAccessorModule {}

View File

@ -1,11 +0,0 @@
export const mockChoice = {
id: 11,
date: {
date: '2020-01-30 12:25:13.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
text: 'Les mondes engloutis',
url: null,
answer: null,
};

View File

@ -1,4 +0,0 @@
{
"message": "anti flood déclenché",
"details": "votre deriner commentaire a exactement le même contenu que celui ci, il n'a donc pas été créé"
}

View File

@ -1,4 +0,0 @@
{
"message": "anti flood déclenché",
"details": "votre deriner commentaire a été envoyé il y a moins de 5 secondes"
}

View File

@ -1,565 +0,0 @@
{
"message": "your poll config",
"data": {
"id": 3,
"title": "dessin animé préféré",
"customUrl": null,
"description": "choisissez votre animé préféré",
"creationDate": {
"date": "2020-01-20 16:45:48.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"expiracyDate": {
"date": "2020-01-20 16:45:48.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"owner": {
"__initializer__": null,
"__cloner__": null,
"__isInitialized__": true,
"pseudo": "tk_TEST",
"email": "tktest@tktest.com"
},
"kind": "text",
"allowedAnswers": [
"yes"
],
"modificationPolicy": "self",
"mailOnComment": null,
"mailOnVote": null,
"hideResults": null,
"showResultEvenIfPasswords": null,
"votes": {},
"stacksOfVotes": {},
"choices": {},
"comments": {},
"defaultExpiracyDaysFromNow": 60
},
"stacks_count": 10,
"stacks": [
{
"id": 3,
"pseudo": "voting_people_TEST",
"creation_date": {
"date": "2020-01-20 16:45:48.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"votes": [
{
"id": 3,
"vote_id": 4,
"value": "yes",
"choice_id": 7,
"text": "Les mystérieuses cités d'or"
},
{
"id": 3,
"vote_id": 5,
"value": "maybe",
"choice_id": 6,
"text": "Boumbo petite automobile"
}
]
},
{
"id": 4,
"pseudo": "voting_people_TEST",
"creation_date": {
"date": "2020-01-20 16:45:48.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"votes": [
{
"id": 4,
"vote_id": 6,
"value": "yes",
"choice_id": 6,
"text": "Boumbo petite automobile"
},
{
"id": 4,
"vote_id": 7,
"value": "yes",
"choice_id": 7,
"text": "Les mystérieuses cités d'or"
},
{
"id": 4,
"vote_id": 8,
"value": "no",
"choice_id": 7,
"text": "Les mystérieuses cités d'or"
}
]
},
{
"id": 5,
"pseudo": "voting_people_TEST",
"creation_date": {
"date": "2020-01-21 10:33:26.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"votes": [
{
"id": 5,
"vote_id": 9,
"value": "no",
"choice_id": 5,
"text": "Vic le viking"
},
{
"id": 5,
"vote_id": 10,
"value": "maybe",
"choice_id": 6,
"text": "Boumbo petite automobile"
},
{
"id": 5,
"vote_id": 11,
"value": "yes",
"choice_id": 7,
"text": "Les mystérieuses cités d'or"
}
]
},
{
"id": 6,
"pseudo": "voting_people_TEST",
"creation_date": {
"date": "2020-01-21 10:36:58.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"votes": [
{
"id": 6,
"vote_id": 12,
"value": "no",
"choice_id": 5,
"text": "Vic le viking"
},
{
"id": 6,
"vote_id": 13,
"value": "maybe",
"choice_id": 6,
"text": "Boumbo petite automobile"
},
{
"id": 6,
"vote_id": 14,
"value": "yes",
"choice_id": 7,
"text": "Les mystérieuses cités d'or"
}
]
},
{
"id": 7,
"pseudo": "voting_people_TEST",
"creation_date": {
"date": "2020-01-21 10:39:12.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"votes": [
{
"id": 7,
"vote_id": 15,
"value": "no",
"choice_id": 5,
"text": "Vic le viking"
},
{
"id": 7,
"vote_id": 16,
"value": "maybe",
"choice_id": 6,
"text": "Boumbo petite automobile"
},
{
"id": 7,
"vote_id": 17,
"value": "yes",
"choice_id": 7,
"text": "Les mystérieuses cités d'or"
}
]
},
{
"id": 8,
"pseudo": "voting_people_TEST",
"creation_date": {
"date": "2020-01-21 10:39:13.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"votes": [
{
"id": 8,
"vote_id": 18,
"value": "no",
"choice_id": 5,
"text": "Vic le viking"
},
{
"id": 8,
"vote_id": 19,
"value": "maybe",
"choice_id": 6,
"text": "Boumbo petite automobile"
},
{
"id": 8,
"vote_id": 20,
"value": "yes",
"choice_id": 7,
"text": "Les mystérieuses cités d'or"
}
]
},
{
"id": 9,
"pseudo": "voting_people_TEST",
"creation_date": {
"date": "2020-01-21 10:42:19.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"votes": [
{
"id": 9,
"vote_id": 21,
"value": "no",
"choice_id": 5,
"text": "Vic le viking"
},
{
"id": 9,
"vote_id": 22,
"value": "maybe",
"choice_id": 6,
"text": "Boumbo petite automobile"
},
{
"id": 9,
"vote_id": 23,
"value": "yes",
"choice_id": 7,
"text": "Les mystérieuses cités d'or"
}
]
},
{
"id": 10,
"pseudo": "voting_people_TEST",
"creation_date": {
"date": "2020-01-21 10:42:32.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"votes": [
{
"id": 10,
"vote_id": 24,
"value": "no",
"choice_id": 5,
"text": "Vic le viking"
},
{
"id": 10,
"vote_id": 25,
"value": "maybe",
"choice_id": 6,
"text": "Boumbo petite automobile"
},
{
"id": 10,
"vote_id": 26,
"value": "yes",
"choice_id": 7,
"text": "Les mystérieuses cités d'or"
}
]
},
{
"id": 11,
"pseudo": "voting_people_TEST",
"creation_date": {
"date": "2020-01-21 10:43:46.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"votes": [
{
"id": 11,
"vote_id": 27,
"value": "no",
"choice_id": 5,
"text": "Vic le viking"
},
{
"id": 11,
"vote_id": 28,
"value": "maybe",
"choice_id": 6,
"text": "Boumbo petite automobile"
},
{
"id": 11,
"vote_id": 29,
"value": "yes",
"choice_id": 7,
"text": "Les mystérieuses cités d'or"
}
]
},
{
"id": 12,
"pseudo": "voting_people_TEST",
"creation_date": {
"date": "2020-01-21 10:44:35.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"votes": [
{
"id": 12,
"vote_id": 30,
"value": "no",
"choice_id": 5,
"text": "Vic le viking"
},
{
"id": 12,
"vote_id": 31,
"value": "maybe",
"choice_id": 6,
"text": "Boumbo petite automobile"
},
{
"id": 12,
"vote_id": 32,
"value": "yes",
"choice_id": 7,
"text": "Les mystérieuses cités d'or"
}
]
}
],
"choices_count": 7,
"choices": [
{
"id": 5,
"date": {
"date": "2020-01-20 16:45:48.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"text": "Vic le viking"
},
{
"id": 6,
"date": {
"date": "2020-01-20 16:45:48.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"text": "Boumbo petite automobile"
},
{
"id": 7,
"date": {
"date": "2020-01-20 16:45:48.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"text": "Les mystérieuses cités d'or"
},
{
"id": 8,
"date": {
"date": "2020-01-20 16:45:48.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"text": "Les mondes engloutis"
},
{
"id": 9,
"date": {
"date": "2020-01-20 16:45:48.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"text": "Foot 2 rue"
},
{
"id": 10,
"date": {
"date": "2020-01-20 16:45:48.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"text": "Le chat, la vache, et l'océan"
},
{
"id": 11,
"date": {
"date": "2020-01-20 16:45:48.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"text": "Digimon"
}
],
"comments": [
{
"id": 3,
"text": "wouah trop bien framadate!",
"pseudo": "tk_TEST",
"date": {
"date": "2020-01-20 16:58:56.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
}
},
{
"id": 4,
"text": "wouah trop bien framadate!",
"pseudo": "tk_TEST",
"date": {
"date": "2020-01-20 16:59:48.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
}
},
{
"id": 5,
"text": "wouah trop bien framadate!",
"pseudo": "tk_TEST",
"date": {
"date": "2020-01-21 10:12:02.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
}
},
{
"id": 6,
"text": "wouah trop bien framadate!",
"pseudo": "tk_TEST",
"date": {
"date": "2020-01-21 10:12:34.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
}
},
{
"id": 7,
"text": "wouah trop bien framadate!",
"pseudo": "tk_TEST",
"date": {
"date": "2020-01-21 10:14:20.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
}
},
{
"id": 8,
"text": "wouah trop bien framadate!",
"pseudo": "tk_TEST",
"date": {
"date": "2020-01-21 10:15:09.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
}
},
{
"id": 9,
"text": "wouah trop bien framadate!",
"pseudo": "tk_TEST",
"date": {
"date": "2020-01-21 10:15:10.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
}
},
{
"id": 10,
"text": "wouah trop bien framadate!",
"pseudo": "tk_TEST",
"date": {
"date": "2020-01-21 10:15:35.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
}
},
{
"id": 11,
"text": "wouah trop bien framadate!",
"pseudo": "tk_TEST",
"date": {
"date": "2020-01-21 10:26:58.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
}
},
{
"id": 12,
"text": "wouah trop bien framadate!",
"pseudo": "tk_TEST",
"date": {
"date": "2020-01-21 10:27:03.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
}
},
{
"id": 13,
"text": "wouah trop bien framadate!",
"pseudo": "tk_TEST",
"date": {
"date": "2020-01-21 10:27:10.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
}
},
{
"id": 14,
"text": "wouah trop bien framadate wouhouuu!",
"pseudo": "tk_TEST",
"date": {
"date": "2020-01-21 10:34:04.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
}
},
{
"id": 15,
"text": "wouah trop bien framadate wouhouucghfdghu!",
"pseudo": "tk_TEST",
"date": {
"date": "2020-01-21 10:36:33.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
}
},
{
"id": 16,
"text": "wouah trop bien framadate woudghdghhouucghfdghu!",
"pseudo": "tk_TEST",
"date": {
"date": "2020-01-21 10:50:43.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
}
}
],
"comments_count": 14
}

View File

@ -1,48 +0,0 @@
{
"message": "you created a comment",
"data": {
"your_comment": {
"id": 14,
"poll": {
"id": 3,
"title": "dessin animé préféré",
"customUrl": null,
"description": "choisissez votre animé préféré",
"creationDate": {
"date": "2020-01-20 16:45:48.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"expiracyDate": {
"date": "2020-01-20 16:45:48.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"owner": {
"__initializer__": null,
"__cloner__": null,
"__isInitialized__": true,
"pseudo": "tk_TEST",
"email": "tktest@tktest.com"
},
"kind": "text",
"allowedAnswers": [
"yes"
],
"modificationPolicy": "self",
"mailOnComment": null,
"mailOnVote": null,
"hideResults": null,
"showResultEvenIfPasswords": null,
"votes": {},
"stacksOfVotes": {},
"choices": {},
"comments": {},
"defaultExpiracyDaysFromNow": 60
},
"text": "wouah trop bien framadate wouhouuu!",
"token": "5e25cb2c6e533"
},
"poll_comments": {}
}
}

View File

@ -1,22 +0,0 @@
export const mockComments = [
{
pseudo: 'Bulbizarre',
date: {
date: '2020-01-22 16:00:22.000000',
timezone_type: 3,
timezone: 'Europe/Paris',
},
text:
'Pokem ipsum dolor sit amet Electric Cottonee Scratch Leech Life Ice Berry Ducklett. Leaf Green Durant Zoroark\n' +
' Skitty Rock Luxio Surskit. Glacier Badge',
},
{
pseudo: 'Marylin',
date: {
date: '2020-01-22 16:00:22.000000',
timezone_type: 3,
timezone: 'Europe/Paris',
},
text: "j'ai vu de la lumière o_o",
},
];

View File

@ -1,52 +0,0 @@
export const mockGraphConfig = {
step: 0,
stepMax: 3,
pollType: 'special dates',
title: '',
description: '',
myName: '',
visibility: 'link_only',
// date specific poll
allowSeveralHours: 'true',
dateLgfgfgfgist: ['jeudi', 'vendredi', 'samedi'], // sets of days as strings
timeList: ['08:00', '08:30', '09:00'], // ranges of time expressed as strings
answers: [
{
id: 0,
text: 'no',
},
{
id: 1,
text: 'yes',
},
{
id: 2,
text: 'maybe',
},
{
id: 3,
text: 'maybe',
},
{
id: 4,
text: 'maybe',
},
{
id: 5,
text: 'maybe',
},
{
id: 6,
text: 'maybe',
},
{
id: 7,
text: 'maybe',
},
{
id: 8,
text: 'maybe',
},
],
};

View File

@ -1,529 +0,0 @@
export const mockPoll3 = {
message: 'your poll config',
poll: {
id: 4,
title: 'dessin animé préféré',
customUrl: null,
description: 'choisissez votre animé préféré',
creationDate: {
date: '2020-01-30 12:25:13.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
expiracyDate: {
date: '2020-01-30 12:25:13.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
owner: {
__initializer__: null,
__cloner__: null,
__isInitialized__: true,
pseudo: 'tk_TEST',
email: 'tktest@tktest.com',
},
kind: 'text',
allowedAnswers: [
// "yes", "maybe", "no"
'yes',
],
modificationPolicy: 'everybody',
mailOnComment: null,
mailOnVote: null,
hideResults: null,
showResultEvenIfPasswords: null,
votes: {},
stacksOfVotes: {},
choices: {},
choices_count: {
counts: {
'10': {
choice_id: 10,
choice_text: "Les mystérieuses cités d'or",
id: 4,
score: 2.5,
yes: {
count: 2,
people: ['voting_people_TEST', 'voting_people_TEST'],
},
maybe: {
count: 1,
people: ['Nikolas Edison'],
},
no: {
count: 1,
people: ['voting_people_TEST'],
},
},
'9': {
choice_id: 9,
choice_text: 'Boumbo petite automobile',
id: 5,
score: 2.5,
yes: {
count: 2,
people: ['voting_people_TEST', 'Billie Jean'],
},
maybe: {
count: 1,
people: ['voting_people_TEST'],
},
no: {
count: 0,
people: [],
},
},
'12': {
choice_id: 12,
choice_text: 'Foot 2 rue',
id: 14,
score: 0.5,
yes: {
count: 0,
people: [],
},
maybe: {
count: 1,
people: ['Nikolas Edison'],
},
no: {
count: 0,
people: [],
},
},
'11': {
choice_id: 11,
choice_text: 'Les mondes engloutis',
id: 15,
score: 1.5,
yes: {
count: 1,
people: ['Billie Jean'],
},
maybe: {
count: 1,
people: ['Wulfila'],
},
no: {
count: 0,
people: [],
},
},
'13': {
choice_id: 13,
choice_text: "Le chat, la vache, et l'océan",
id: 16,
score: 1,
yes: {
count: 1,
people: ['Wulfila'],
},
maybe: {
count: 0,
people: [],
},
no: {
count: 0,
people: [],
},
},
},
maxScore: 2.5,
},
comments: {},
defaultExpiracyDaysFromNow: 60,
},
stacks_count: 5,
stacks: [
{
id: 3,
pseudo: 'voting_people_TEST',
creation_date: {
date: '2020-01-30 12:25:13.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
votes: {
'8': {
choice_id: 8,
},
'9': {
id: 3,
vote_id: 5,
value: 'maybe',
choice_id: 9,
text: 'Boumbo petite automobile',
},
'10': {
id: 3,
vote_id: 4,
value: 'yes',
choice_id: 10,
text: "Les mystérieuses cités d'or",
},
'11': {
choice_id: 11,
},
'12': {
choice_id: 12,
},
'13': {
choice_id: 13,
},
'14': {
choice_id: 14,
},
},
},
{
id: 4,
pseudo: 'voting_people_TEST',
creation_date: {
date: '2020-01-30 12:25:13.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
votes: {
'8': {
choice_id: 8,
},
'9': {
id: 4,
vote_id: 6,
value: 'yes',
choice_id: 9,
text: 'Boumbo petite automobile',
},
'10': {
id: 4,
vote_id: 8,
value: 'no',
choice_id: 10,
text: "Les mystérieuses cités d'or",
},
'11': {
choice_id: 11,
},
'12': {
choice_id: 12,
},
'13': {
choice_id: 13,
},
'14': {
choice_id: 14,
},
},
},
{
id: 7,
pseudo: 'Nikolas Edison',
creation_date: {
date: '2020-01-30 12:25:13.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
votes: {
'8': {
choice_id: 8,
},
'9': {
choice_id: 9,
},
'10': {
id: 7,
vote_id: 13,
value: 'maybe',
choice_id: 10,
text: "Les mystérieuses cités d'or",
},
'11': {
choice_id: 11,
},
'12': {
id: 7,
vote_id: 14,
value: 'maybe',
choice_id: 12,
text: 'Foot 2 rue',
},
'13': {
choice_id: 13,
},
'14': {
choice_id: 14,
},
},
},
{
id: 8,
pseudo: 'Wulfila',
creation_date: {
date: '2020-01-30 12:25:13.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
votes: {
'8': {
choice_id: 8,
},
'9': {
choice_id: 9,
},
'10': {
choice_id: 10,
},
'11': {
id: 8,
vote_id: 15,
value: 'maybe',
choice_id: 11,
text: 'Les mondes engloutis',
},
'12': {
choice_id: 12,
},
'13': {
id: 8,
vote_id: 16,
value: 'yes',
choice_id: 13,
text: "Le chat, la vache, et l'océan",
},
'14': {
choice_id: 14,
},
},
},
{
id: 9,
pseudo: 'Billie Jean',
creation_date: {
date: '2020-01-30 12:25:13.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
votes: {
'8': {
choice_id: 8,
},
'9': {
id: 9,
vote_id: 17,
value: 'yes',
choice_id: 9,
text: 'Boumbo petite automobile',
},
'10': {
choice_id: 10,
},
'11': {
id: 9,
vote_id: 18,
value: 'yes',
choice_id: 11,
text: 'Les mondes engloutis',
},
'12': {
choice_id: 12,
},
'13': {
choice_id: 13,
},
'14': {
choice_id: 14,
},
},
},
],
choices_count: {
counts: {
'10': {
choice_id: 10,
choice_text: "Les mystérieuses cités d'or",
id: 4,
score: 2.5,
yes: {
count: 2,
people: ['voting_people_TEST', 'voting_people_TEST'],
},
maybe: {
count: 1,
people: ['Nikolas Edison'],
},
no: {
count: 1,
people: ['voting_people_TEST'],
},
},
'9': {
choice_id: 9,
choice_text: 'Boumbo petite automobile',
id: 5,
score: 2.5,
yes: {
count: 2,
people: ['voting_people_TEST', 'Billie Jean'],
},
maybe: {
count: 1,
people: ['voting_people_TEST'],
},
no: {
count: 0,
people: [],
},
},
'12': {
choice_id: 12,
choice_text: 'Foot 2 rue',
id: 14,
score: 0.5,
yes: {
count: 0,
people: [],
},
maybe: {
count: 1,
people: ['Nikolas Edison'],
},
no: {
count: 0,
people: [],
},
},
'11': {
choice_id: 11,
choice_text: 'Les mondes engloutis',
id: 15,
score: 1.5,
yes: {
count: 1,
people: ['Billie Jean'],
},
maybe: {
count: 1,
people: ['Wulfila'],
},
no: {
count: 0,
people: [],
},
},
'13': {
choice_id: 13,
choice_text: "Le chat, la vache, et l'océan",
id: 16,
score: 1,
yes: {
count: 1,
people: ['Wulfila'],
},
maybe: {
count: 0,
people: [],
},
no: {
count: 0,
people: [],
},
},
},
maxScore: 2.5,
},
choices: [
{
id: 8,
date: {
date: '2020-01-30 12:25:13.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
text: 'Vic le viking',
url: null,
},
{
id: 9,
date: {
date: '2020-01-30 12:25:13.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
text: 'Boumbo petite automobile',
url: null,
},
{
id: 10,
date: {
date: '2020-01-30 12:25:13.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
text: "Les mystérieuses cités d'or",
url: null,
},
{
id: 11,
date: {
date: '2020-01-30 12:25:13.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
text: 'Les mondes engloutis',
url: null,
},
{
id: 12,
date: {
date: '2020-01-30 12:25:13.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
text: 'Foot 2 rue',
url: null,
},
{
id: 13,
date: {
date: '2020-01-30 12:25:13.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
text: "Le chat, la vache, et l'océan",
url: null,
},
{
id: 14,
date: {
date: '2020-01-30 12:25:13.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
text: 'Digimon',
url: null,
},
],
comments: [
{
id: 3,
text: 'allez boumbo!',
pseudo: 'tk_TEST_commentateur',
date: {
date: '2020-01-30 12:25:13.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
},
{
id: 4,
text: 'je suis pour la team rocket de digimon',
pseudo: 'tk_TEST',
date: {
date: '2020-01-30 12:25:13.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
},
],
comments_count: 2,
};

View File

@ -1,658 +0,0 @@
export const mockSuccessVote = {
message: 'you created a vote stack from an existing owner : tktest@tktest.com',
poll: {
id: 4,
title: 'dessin animé préféré',
customUrl: null,
description: 'choisissez votre animé préféré',
creationDate: {
date: '2020-02-04 12:35:37.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
expiracyDate: {
date: '2020-02-04 12:35:37.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
owner: {
__initializer__: null,
__cloner__: null,
__isInitialized__: true,
pseudo: 'tk_TEST',
email: 'tktest@tktest.com',
},
kind: 'text',
allowedAnswers: ['yes'],
modificationPolicy: 'everybody',
mailOnComment: null,
mailOnVote: null,
hideResults: null,
showResultEvenIfPasswords: null,
votes: {},
stacksOfVotes: {},
choices: {},
comments: {},
defaultExpiracyDaysFromNow: 60,
},
vote_stack: {
id: 10,
modifier_token:
'V46C6b58c456B39kTI19KSfp1y8Zz7Wyg500xMdjNB823st221Gb509VX1AOsnhV93fhol1f8P30OblKFoI76u54T94rH92x5c95TdW1W2eH0hb55q8',
pseudo: 'tk_TEST',
creation_date: {
date: '2020-02-04 12:36:07.530846',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
votes: {
'8': {
id: 22,
value: 'yes',
choice_id: 8,
text: 'Vic le viking',
stack_id: 10,
},
'9': {
choice_id: 9,
},
'10': {
choice_id: 10,
},
'11': {
choice_id: 11,
},
'12': {
choice_id: 12,
},
'13': {
choice_id: 13,
},
'14': {
choice_id: 14,
},
'5': {
id: 19,
value: 'yes',
choice_id: 5,
text: '2020-02-04 12:35:37',
stack_id: 10,
},
'6': {
id: 20,
value: 'yes',
choice_id: 6,
text: '2020-02-04 12:35:37',
stack_id: 10,
},
'7': {
id: 21,
value: 'yes',
choice_id: 7,
text: '2020-02-04 12:35:37',
stack_id: 10,
},
},
},
stacks: [
{
id: 3,
modifier_token: '5e39570956e5d',
pseudo: 'voting_people_TEST',
creation_date: {
date: '2020-02-04 12:35:37.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
votes: {
'8': {
choice_id: 8,
},
'9': {
id: 5,
value: 'maybe',
choice_id: 9,
text: 'Boumbo petite automobile',
stack_id: 3,
},
'10': {
id: 4,
value: 'yes',
choice_id: 10,
text: "Les mystérieuses cités d'or",
stack_id: 3,
},
'11': {
choice_id: 11,
},
'12': {
choice_id: 12,
},
'13': {
choice_id: 13,
},
'14': {
choice_id: 14,
},
},
},
{
id: 4,
modifier_token: '5e39570956e5d',
pseudo: 'voting_people_TEST',
creation_date: {
date: '2020-02-04 12:35:37.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
votes: {
'8': {
choice_id: 8,
},
'9': {
id: 6,
value: 'yes',
choice_id: 9,
text: 'Boumbo petite automobile',
stack_id: 4,
},
'10': {
id: 8,
value: 'no',
choice_id: 10,
text: "Les mystérieuses cités d'or",
stack_id: 4,
},
'11': {
choice_id: 11,
},
'12': {
choice_id: 12,
},
'13': {
choice_id: 13,
},
'14': {
choice_id: 14,
},
},
},
{
id: 7,
modifier_token: '5e3957095ca23',
pseudo: 'Nikolas Edison',
creation_date: {
date: '2020-02-04 12:35:37.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
votes: {
'8': {
choice_id: 8,
},
'9': {
choice_id: 9,
},
'10': {
id: 13,
value: 'maybe',
choice_id: 10,
text: "Les mystérieuses cités d'or",
stack_id: 7,
},
'11': {
choice_id: 11,
},
'12': {
id: 14,
value: 'maybe',
choice_id: 12,
text: 'Foot 2 rue',
stack_id: 7,
},
'13': {
choice_id: 13,
},
'14': {
choice_id: 14,
},
},
},
{
id: 8,
modifier_token: '5e3957095ca2d',
pseudo: 'Wulfila',
creation_date: {
date: '2020-02-04 12:35:37.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
votes: {
'8': {
choice_id: 8,
},
'9': {
choice_id: 9,
},
'10': {
choice_id: 10,
},
'11': {
id: 15,
value: 'maybe',
choice_id: 11,
text: 'Les mondes engloutis',
stack_id: 8,
},
'12': {
choice_id: 12,
},
'13': {
id: 16,
value: 'yes',
choice_id: 13,
text: "Le chat, la vache, et l'océan",
stack_id: 8,
},
'14': {
choice_id: 14,
},
},
},
{
id: 9,
modifier_token: '5e3957095ca34',
pseudo: 'Billie Jean',
creation_date: {
date: '2020-02-04 12:35:37.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
votes: {
'8': {
choice_id: 8,
},
'9': {
id: 17,
value: 'yes',
choice_id: 9,
text: 'Boumbo petite automobile',
stack_id: 9,
},
'10': {
choice_id: 10,
},
'11': {
id: 18,
value: 'yes',
choice_id: 11,
text: 'Les mondes engloutis',
stack_id: 9,
},
'12': {
choice_id: 12,
},
'13': {
choice_id: 13,
},
'14': {
choice_id: 14,
},
},
},
{
id: 10,
modifier_token:
'V46C6b58c456B39kTI19KSfp1y8Zz7Wyg500xMdjNB823st221Gb509VX1AOsnhV93fhol1f8P30OblKFoI76u54T94rH92x5c95TdW1W2eH0hb55q8',
pseudo: 'tk_TEST',
creation_date: {
date: '2020-02-04 12:36:07.530846',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
votes: {
'8': {
id: 22,
value: 'yes',
choice_id: 8,
text: 'Vic le viking',
stack_id: 10,
},
'9': {
choice_id: 9,
},
'10': {
choice_id: 10,
},
'11': {
choice_id: 11,
},
'12': {
choice_id: 12,
},
'13': {
choice_id: 13,
},
'14': {
choice_id: 14,
},
'5': {
id: 19,
value: 'yes',
choice_id: 5,
text: '2020-02-04 12:35:37',
stack_id: 10,
},
'6': {
id: 20,
value: 'yes',
choice_id: 6,
text: '2020-02-04 12:35:37',
stack_id: 10,
},
'7': {
id: 21,
value: 'yes',
choice_id: 7,
text: '2020-02-04 12:35:37',
stack_id: 10,
},
},
},
],
comments: [
{
id: 3,
text: 'allez boumbo!',
pseudo: 'tk_TEST_commentateur',
date: {
date: '2020-02-04 12:35:37.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
},
{
id: 4,
text: 'je suis pour la team rocket de digimon',
pseudo: 'tk_TEST',
date: {
date: '2020-02-04 12:35:37.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
},
],
choices: [
{
id: 8,
date: {
date: '2020-02-04 12:35:37.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
text: 'Vic le viking',
url: null,
},
{
id: 9,
date: {
date: '2020-02-04 12:35:37.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
text: 'Boumbo petite automobile',
url: null,
},
{
id: 10,
date: {
date: '2020-02-04 12:35:37.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
text: "Les mystérieuses cités d'or",
url: null,
},
{
id: 11,
date: {
date: '2020-02-04 12:35:37.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
text: 'Les mondes engloutis',
url: null,
},
{
id: 12,
date: {
date: '2020-02-04 12:35:37.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
text: 'Foot 2 rue',
url: null,
},
{
id: 13,
date: {
date: '2020-02-04 12:35:37.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
text: "Le chat, la vache, et l'océan",
url: null,
},
{
id: 14,
date: {
date: '2020-02-04 12:35:37.000000',
timezone_type: 3,
timezone: 'Europe/Berlin',
},
text: 'Digimon',
url: null,
},
],
choices_count: {
counts: {
'10': {
choice_id: 10,
choice_text: "Les mystérieuses cités d'or",
id: 4,
score: 2.5,
yes: {
count: 2,
people: ['voting_people_TEST', 'voting_people_TEST'],
},
maybe: {
count: 1,
people: ['Nikolas Edison'],
},
no: {
count: 1,
people: ['voting_people_TEST'],
},
},
'9': {
choice_id: 9,
choice_text: 'Boumbo petite automobile',
id: 5,
score: 2.5,
yes: {
count: 2,
people: ['voting_people_TEST', 'Billie Jean'],
},
maybe: {
count: 1,
people: ['voting_people_TEST'],
},
no: {
count: 0,
people: [],
},
},
'12': {
choice_id: 12,
choice_text: 'Foot 2 rue',
id: 14,
score: 0.5,
yes: {
count: 0,
people: [],
},
maybe: {
count: 1,
people: ['Nikolas Edison'],
},
no: {
count: 0,
people: [],
},
},
'11': {
choice_id: 11,
choice_text: 'Les mondes engloutis',
id: 15,
score: 1.5,
yes: {
count: 1,
people: ['Billie Jean'],
},
maybe: {
count: 1,
people: ['Wulfila'],
},
no: {
count: 0,
people: [],
},
},
'13': {
choice_id: 13,
choice_text: "Le chat, la vache, et l'océan",
id: 16,
score: 1,
yes: {
count: 1,
people: ['Wulfila'],
},
maybe: {
count: 0,
people: [],
},
no: {
count: 0,
people: [],
},
},
'5': {
choice_id: 5,
choice_text: '2020-02-04 12:35:37',
id: 19,
score: 1,
yes: {
count: 1,
people: ['tk_TEST'],
},
maybe: {
count: 0,
people: [],
},
no: {
count: 0,
people: [],
},
},
'6': {
choice_id: 6,
choice_text: '2020-02-04 12:35:37',
id: 20,
score: 1,
yes: {
count: 1,
people: ['tk_TEST'],
},
maybe: {
count: 0,
people: [],
},
no: {
count: 0,
people: [],
},
},
'7': {
choice_id: 7,
choice_text: '2020-02-04 12:35:37',
id: 21,
score: 1,
yes: {
count: 1,
people: ['tk_TEST'],
},
maybe: {
count: 0,
people: [],
},
no: {
count: 0,
people: [],
},
},
'8': {
choice_id: 8,
choice_text: 'Vic le viking',
id: 22,
score: 1,
yes: {
count: 1,
people: ['tk_TEST'],
},
maybe: {
count: 0,
people: [],
},
no: {
count: 0,
people: [],
},
},
},
maxScore: 2.5,
},
vote_count: 6,
owner: {
__initializer__: null,
__cloner__: null,
__isInitialized__: true,
pseudo: 'tk_TEST',
email: 'tktest@tktest.com',
},
owner_modifier_token:
'V46C6b58c456B39kTI19KSfp1y8Zz7Wyg500xMdjNB823st221Gb509VX1AOsnhV93fhol1f8P30OblKFoI76u54T94rH92x5c95TdW1W2eH0hb55q8',
admin_key:
'9uE27daM8dG1P9z74B89z299W0JF0ne15eER37g2v3d86mk123318v516UUbey4z3C87Wbo65V3c7cHsBTELvhl8b82d61WBMR2U66USNc7idS8810f',
json_you_sent: {
pseudo: 'mon pseudo',
email: 'tktest@tktest.com',
votes: [
{
choice_id: 5,
value: 'yes',
},
{
choice_id: 6,
value: 'yes',
},
{
choice_id: 7,
value: 'yes',
},
{
choice_id: 8,
value: 'yes',
},
],
},
};

View File

@ -1,44 +0,0 @@
export const mockMyPolls = [
{
id: 1000001,
title: 'blehehehe heh hehhe e test1',
customUrl: null,
description: 'maaaaaaaaaaah',
creationDate: { date: '2020-01-20 14:21:16.270157', timezone_type: 3, timezone: 'Europe/Paris' },
expiracyDate: { date: '2020-01-20 14:21:16.270178', timezone_type: 3, timezone: 'Europe/Paris' },
owner: null,
kind: 'text',
allowedAnswers: ['yes'],
modificationPolicy: 'nobody',
mailOnComment: null,
mailOnVote: null,
hideResults: null,
showResultEvenIfPasswords: null,
votes: {},
stacksOfVotes: {},
choices: {},
comments: {},
defaultExpiracyDaysFromNow: 60,
},
{
id: 1000002,
title: 'bleh z zr erth tuyjikioy yylil test2',
customUrl: null,
description: 'maaaaaaaaaaah 2',
creationDate: { date: '2020-01-20 14:21:16.270157', timezone_type: 3, timezone: 'Europe/Paris' },
expiracyDate: { date: '2020-01-20 14:21:16.270178', timezone_type: 3, timezone: 'Europe/Paris' },
owner: null,
kind: 'text',
allowedAnswers: ['yes'],
modificationPolicy: 'nobody',
mailOnComment: null,
mailOnVote: null,
hideResults: null,
showResultEvenIfPasswords: null,
votes: {},
stacksOfVotes: {},
choices: {},
comments: {},
defaultExpiracyDaysFromNow: 60,
},
];

View File

@ -1,43 +0,0 @@
{
"message": "you created a vote stack from an existing owner : testing_vote_people@tktest.com",
"vote_stack": {
"30": {
"id": 30,
"value": "no",
"choice_id": 5,
"text": "Vic le viking"
},
"31": {
"id": 31,
"value": "maybe",
"choice_id": 6,
"text": "Boumbo petite automobile"
},
"32": {
"id": 32,
"value": "yes",
"choice_id": 7,
"text": "Les mystérieuses cités d'or"
}
},
"vote_count": 10,
"owner_modifier_token": "rc7fgzdb6D8bUdgwl7H065eYMMeqOcL31JrS11MpRs08az8ed43aZLKsFd81cr50uq23D9b1w068E57U39omaBcygfebm7m252YI430b332UZ4tkC76",
"json_you_sent": {
"pseudo": "tktest",
"email": "testing_vote_people@tktest.com",
"votes": [
{
"choice_id": 5,
"value": "no"
},
{
"choice_id": 6,
"value": "maybe"
},
{
"choice_id": 7,
"value": "yes"
}
]
}
}

View File

@ -1,45 +0,0 @@
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { AdminComponent } from './pages/admin/admin.component';
import { AnswersComponent } from './pages/answers/answers.component';
import { CreateOrRetrieveComponent } from './pages/create-or-retrieve/create-or-retrieve.component';
import { DatesComponent } from './pages/dates/dates.component';
import { EndConfirmationComponent } from './pages/end-confirmation/end-confirmation.component';
import { KindComponent } from './pages/example/kind/kind.component';
import { PicturesComponent } from './pages/example/pictures/pictures.component';
import { HomeComponent } from './pages/home/home.component';
import { PasswordComponent } from './pages/password/password.component';
import { PollDisplayComponent } from './pages/poll/poll-display/poll-display.component';
import { PollGraphicComponent } from './pages/poll/poll-graphic/poll-graphic.component';
import { ResumeComponent } from './pages/resume/resume.component';
import { VisibilityComponent } from './pages/visibility/visibility.component';
import { VotingChoiceComponent } from './pages/voting/voting-choice/voting-choice.component';
import { VotingComponent } from './pages/voting/voting.component';
const routes: Routes = [
{ path: '', redirectTo: 'step/home', pathMatch: 'full' },
{ path: 'admin/:token', component: AdminComponent }, // http://localhost:4200/admin/srfdgedsTGETHRYJtujTUjTUkTIUKTK
{ path: 'step/home', component: HomeComponent },
{ path: 'step/creation', component: CreateOrRetrieveComponent },
{ path: 'step/date', component: DatesComponent },
{ path: 'step/kind', component: KindComponent },
{ path: 'step/answers', component: AnswersComponent },
{ path: 'step/admin', component: AdminComponent },
{ path: 'step/pictures', component: PicturesComponent },
{ path: 'step/visibility', component: VisibilityComponent },
{ path: 'step/password', component: PasswordComponent },
{ path: 'step/resume', component: ResumeComponent },
{ path: 'step/end', component: EndConfirmationComponent },
{ path: 'graphic/:poll', component: PollGraphicComponent },
{ path: 'vote/poll/id/:id', component: PollDisplayComponent },
{ path: 'vote/poll/custom_url/:custom_url', component: PollDisplayComponent },
{ path: 'votingchoice', component: VotingChoiceComponent },
{ path: 'voting', component: VotingComponent },
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class OldStuffRoutingModule {}

View File

@ -1,78 +0,0 @@
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { TranslateModule } from '@ngx-translate/core';
import { ConfirmationService, DialogModule, MessageService } from 'primeng';
import { SharedModule } from '../../src/app/shared/shared.module';
import { DateValueAccessorModule } from './custom-lib/date-value-accessor';
import { OldStuffRoutingModule } from './old-stuff-routing.module';
import { AdminComponent } from './pages/admin/admin.component';
import { AnswersComponent } from './pages/answers/answers.component';
import { CreateOrRetrieveComponent } from './pages/create-or-retrieve/create-or-retrieve.component';
import { DatesComponent } from './pages/dates/dates.component';
import { EndConfirmationComponent } from './pages/end-confirmation/end-confirmation.component';
import { BaseComponent } from './pages/example/base-page/base.component';
import { KindComponent } from './pages/example/kind/kind.component';
import { PicturesComponent } from './pages/example/pictures/pictures.component';
import { HomeComponent } from './pages/home/home.component';
import { PasswordComponent } from './pages/password/password.component';
import { PollDisplayComponent } from './pages/poll/poll-display/poll-display.component';
import { PollGraphicComponent } from './pages/poll/poll-graphic/poll-graphic.component';
import { ResumeComponent } from './pages/resume/resume.component';
import { VisibilityComponent } from './pages/visibility/visibility.component';
import { ChoicesListComponent } from './pages/voting/choices-list/choices-list.component';
import { CommentsListComponent } from './pages/voting/comments-list/comments-list.component';
import { VotingChoiceComponent } from './pages/voting/voting-choice/voting-choice.component';
import { VotingCommentComponent } from './pages/voting/voting-comment/voting-comment.component';
import { VotingGraphComponent } from './pages/voting/voting-graph/voting-graph.component';
import { VotingNavigationComponent } from './pages/voting/voting-navigation/voting-navigation.component';
import { VotingSummaryComponent } from './pages/voting/voting-summary/voting-summary.component';
import { VotingComponent } from './pages/voting/voting.component';
import { ConfigService } from './services/config.service';
import { CopyTextComponent } from './ui/copy-text/copy-text.component';
import { ResettableInputDirective } from './ui/directives/resettable-input.directive';
import { ErasableInputComponent } from './ui/erasable-input/erasable-input.component';
import { TwoLinksComponent } from './ui/two-links/two-links.component';
const PRIMENG_MODULES = [DialogModule];
@NgModule({
declarations: [
AdminComponent,
AnswersComponent,
BaseComponent,
ChoicesListComponent,
CommentsListComponent,
CopyTextComponent,
CreateOrRetrieveComponent,
DatesComponent,
EndConfirmationComponent,
ErasableInputComponent,
HomeComponent,
KindComponent,
PasswordComponent,
PicturesComponent,
PollDisplayComponent,
PollGraphicComponent,
ResettableInputDirective,
ResumeComponent,
TwoLinksComponent,
VisibilityComponent,
VotingChoiceComponent,
VotingGraphComponent,
VotingComponent,
VotingCommentComponent,
VotingSummaryComponent,
VotingNavigationComponent,
],
imports: [
...PRIMENG_MODULES,
CommonModule,
OldStuffRoutingModule,
SharedModule,
TranslateModule.forChild({ extend: true }),
DateValueAccessorModule,
],
providers: [ConfigService, ConfirmationService, MessageService],
})
export class OldStuffModule {}

View File

@ -1,10 +0,0 @@
<div>
<h1>
admin page to modify a poll
</h1>
<div class="well">
<h2>Anybody with this link can modify and delete the poll</h2>
<strong> token: {{ tokenForAdministration }} </strong>
coming soon
</div>
</div>

View File

@ -1,41 +0,0 @@
form {
display: flex;
flex-direction: column;
width: 340px;
margin: auto;
}
.row {
flex-direction: row;
flex-wrap: wrap;
padding-bottom: 65px;
}
textarea {
height: 115px;
margin-bottom: 50px;
}
label {
padding-bottom: 10px;
flex-wrap: wrap;
}
h2,
h1 {
margin-bottom: 40px;
}
h2 {
margin-top: 40px;
padding-left: 16px;
}
.btn--alert {
font-weight: 600;
}
h3 {
padding-left: 28px;
padding-bottom: 15px;
}
select,
input[type='date'] {
max-width: 130px;
}
.btn--outline {
margin-bottom: 70px;
}

View File

@ -1,61 +0,0 @@
import { Component, OnInit } from '@angular/core';
import { ConfigService } from '../../services/config.service';
import { ActivatedRoute, Router } from '@angular/router';
import { HttpClient } from '@angular/common/http';
import { PollUtilitiesService } from '../../../../src/app/core/services/poll.utilities.service';
import { environment } from '../../../../src/environments/environment';
@Component({
selector: 'app-admin',
templateUrl: './admin.component.html',
styleUrls: ['./admin.component.scss'],
})
export class AdminComponent implements OnInit {
public tokenForAdministration = '';
constructor(
public config: ConfigService,
public router: Router,
private utils: PollUtilitiesService,
public http: HttpClient,
public activeRoute: ActivatedRoute
) {}
ngOnInit(): void {
this.activeRoute.paramMap.subscribe((params) => {
console.log('params', params);
this.tokenForAdministration = params.get('token');
// redirect to home if no token provided
if (!this.tokenForAdministration) {
alert('pas de token pour administrer un sondage, mauvaise URL.');
this.router.navigate(['/home']);
}
if (!this.config.loading) {
// get token paarameter from route
// fetch admin version of the poll
// then, populate UI.
this.fetchPoll();
}
});
}
// fetch poll with its ID or custom_url.
fetchPoll() {
const token = this.tokenForAdministration;
const headers = this.utils.makeHeaders({ token: token });
this.config.loading = true;
// store it in the poll property here
// this.http.get(`${environment.baseApiHref}/admin/${token}`, headers).subscribe(
// (res: any) => {
// console.log('res', res);
// this.config.updateCurrentPollFromResponse(res);
// this.config.loading = false;
// },
// (e) => {
// // handle need for a password
// console.log('e', e);
// this.config.handleError(e);
// }
// );
}
}

View File

@ -1,76 +0,0 @@
<div class="answers">
<h1 i18n>
Choisir les propositions
</h1>
<p class="subtitle" i18n>
Vous pouvez utiliser la syntaxe markdown, et naviguer entre les inputs avec les flèches du clavier.
</p>
<ol>
<li #answers *ngFor="let answer of config.answers; index as i; trackBy: trackFunction" class="answer-item">
<button class="btn btn--default" title="ajouter une image" (click)="showModalForPictureOfAnswer(answer)">
<i class="fa fa-image" aria-hidden="true"></i>
</button>
<label for="answer_{{ answer.id }}_url" (click)="showModalForPictureOfAnswer(answer)">
<img class="img-thumbnail" src="{{ answer.url }}" alt="image {{ answer.url }}" />
</label>
<p-dialog class="url-dialog" [(visible)]="display" [modal]="true">
<p-header>
{{ answer.text }}
</p-header>
<form action="#" (submit)="display = false">
<label for="answer_{{ answer.id }}_url">
Choisissez une URL pour illustrer le choix de réponse
</label>
<i class="fa fa-image" aria-hidden="true"></i>
<br />
<input
class="input is-block"
id="answer_{{ answer.id }}_url"
type="text"
autofocus="autofocus"
name="answer-url"
[(ngModel)]="answer.url"
/>
</form>
</p-dialog>
<input
type="name"
class="answer"
id="answer_{{ answer.id }}"
[(ngModel)]="answer.text"
(keyup.enter)="addAnswer()"
(keyup)="navigateOrDelete($event, i)"
required="required"
placeholder="réponse"
/>
<button class="btn btn--alert" (click)="config.answers.splice(i, 1)">X</button>
</li>
</ol>
<button
class="btn btn--primary btn--outline"
(click)="addAnswer()"
[ngClass]="{ 'btn--primary': allAnswersAreValid }"
i18n
>
<i class="fa fa-plus" aria-hidden="true"></i>
Ajouter une proposition
</button>
<br />
<button
routerLink="../resume"
class="btn btn--full"
i18n
[ngClass]="{ 'btn--primary': allAnswersAreValid }"
[disabled]="!allAnswersAreValid"
>
Voyons ce que ça donne
</button>
<br />
<a routerLink="./../home" class="prev" i18n>
Retour
</a>
</div>

View File

@ -1,93 +0,0 @@
import { AfterViewInit, ChangeDetectorRef, Component, Inject, OnChanges, OnInit } from '@angular/core';
import { BaseComponent } from '../example/base-page/base.component';
import { ConfigService } from '../../services/config.service';
import { DOCUMENT } from '@angular/common';
@Component({
selector: 'app-answers',
templateUrl: './answers.component.html',
styleUrls: ['./answers.component.scss'],
})
export class AnswersComponent extends BaseComponent implements OnInit, AfterViewInit, OnChanges {
allAnswersAreValid = false;
answerList = [];
currentHeader: any = '';
display: boolean;
constructor(public config: ConfigService, @Inject(DOCUMENT) private document: any, private cd: ChangeDetectorRef) {
super(config);
this.answerList = this.config.answers;
}
// todo, manage validation of each page in a common way
ngOnInit(): void {}
ngOnChanges() {
this.checkValidAnswers();
}
checkValidAnswers() {
this.allAnswersAreValid = true;
this.config.answers.forEach((answer) => {
if (!answer.text.length) {
this.allAnswersAreValid = false;
return;
}
});
}
ngAfterViewInit() {
this.focusOnAnswer(0);
this.checkValidAnswers();
}
trackFunction(index: number, item: any): number {
return item.id;
}
addAnswer() {
this.config.answers.push({
id: this.config.answers.length + 1,
text: '',
url: '',
file: '',
literal: '',
date_object: null,
timeList: [],
});
this.cd.detectChanges(); // to refresh the view before focusing on the new input
this.focusOnAnswer(this.config.answers.length - 1);
}
focusOnAnswer(i) {
const AnswersDomToFocus = this.document.querySelectorAll('.answers .answer');
const dom = AnswersDomToFocus[i];
if (dom.focus) {
dom.focus();
}
if (dom.select) {
dom.select();
}
}
navigateOrDelete(event: KeyboardEvent, i) {
if (event.ctrlKey && event.key == 'd') {
this.config.answers.splice(i, 1);
}
if (event.key == 'ArrowUp' && i > 0) {
this.focusOnAnswer(i - 1);
}
if (event.key == 'ArrowDown' && i < this.config.answers.length) {
this.focusOnAnswer(i + 1);
}
}
showModalForPictureOfAnswer(answer) {
// TODO
this.currentHeader = answer;
this.display = true;
// this.config.todo();
}
}

View File

@ -1,71 +0,0 @@
<div class="container">
<div class="columns">
<div class="column" id="newPoll">
<section class="creation">
<h1>
{{ 'creation.title' | translate }}
</h1>
<p class="description margin-btm-x5" i18n>
{{ 'config.description' | translate }}
</p>
<div class="btn-next">
<button routerLink="../date" class="btn btn--full btn--primary">
{{ 'config.letsgo' | translate }}
</button>
</div>
</section>
</div>
<div class="column" id="searchMyPolls">
<section class="recuperation">
<h1>
{{ 'config.find_my_polls' | translate }}
</h1>
<form (ngSubmit)="findMyPollsByEmail(config.myEmail)">
<label class="description" for="sendemail" i18n>
<i class="fa fa-envelope" aria-hidden="true"></i>
{{ 'config.find_helper' | translate }} :
</label>
<input
[(ngModel)]="config.myEmail"
class="input"
autofocus="autofocus"
id="sendemail"
name="mail"
required="required"
type="email"
/>
<input
[disabled]="!config.myEmail || !config.myEmail.length"
[ngClass]="{ 'btn--primary': config.myEmail }"
class="btn btn--full"
id="sendemailbutton"
i18n-value="'config.find_button'|translate"
type="submit"
/>
</form>
</section>
<section class="list-my-polls" *ngIf="!config.loading">
<h2>
Mes Sondages trouvés:
</h2>
<ul class="poll-list" *ngFor="let poll of config.myPolls; index as i; trackBy: trackFunction">
<li>
<a href="{{ poll.url }}">
{{ poll.question }}
<sub>
{{ poll.description }}
</sub>
</a>
</li>
</ul>
<div class="no-polls" *ngIf="!config.myPolls || !config.myPolls.length">
Aucun sondage.
</div>
</section>
<div class="loading" *ngIf="config.loading">
<i class="fa fa-refresh fa-spin" aria-hidden="true"></i>
</div>
</div>
</div>
</div>

View File

@ -1,27 +0,0 @@
.container {
display: flex;
flex-direction: column;
margin: auto;
}
h1 {
display: inline-block;
margin-bottom: 3rem;
font-size: 2.6rem;
&::after {
content: '';
display: block;
width: 27.4%;
height: 2px;
margin-top: 5px;
margin-right: auto;
margin-left: auto;
// background-color: $primary_color;
}
}
label {
float: left;
}
input[type='email'] {
display: block;
}

View File

@ -1,34 +0,0 @@
import { Component, OnInit } from '@angular/core';
import { BaseComponent } from '../example/base-page/base.component';
import { ConfigService } from '../../services/config.service';
@Component({
selector: 'app-create-or-retrieve',
templateUrl: './create-or-retrieve.component.html',
styleUrls: ['./create-or-retrieve.component.scss'],
})
export class CreateOrRetrieveComponent extends BaseComponent implements OnInit {
loadedMyPolls = false;
constructor(public config: ConfigService) {
super(config);
}
ngOnInit(): void {
// if (!environment.production) {
// this.findMyPollsByEmail('tktest@tktest.com')
// }
}
findMyPollsByEmail(email: string) {
if (!email) {
return;
}
this.config.findPollsByEmail(email);
this.loadedMyPolls = true;
}
trackFunction(index: number, item: any): number {
return item.id;
}
}

View File

@ -1,168 +0,0 @@
<h1 class="title is-1"><i class="fa fa-calendar" aria-hidden="true"></i> {{ 'dates.title' | translate }}</h1>
<div>
<label for="multi_hours">
<span>
{{ 'dates.hours_different' | translate }}
</span>
<select [(ngModel)]="config.allowSeveralHours" id="multi_hours" name="multi_hours">
<option value="true">{{ 'dates.multiple.different' | translate }}</option>
<option value="false">{{ 'dates.multiple.identical' | translate }}</option>
</select>
<span i18n>
{{ 'dates.hours_each_day' | translate }}
</span>
</label>
</div>
<button (click)="addDate()" class="btn btn--primary" id="add_date_button">
<i class="fa fa-plus" aria-hidden="true"></i>
{{ 'dates.add' | translate }}
</button>
<button
(click)="showDateInterval = !showDateInterval"
[ngClass]="{ active: showDateInterval }"
class="btn btn--primary"
id="toggle_interval_button"
>
<i class="fa fa-clock-o" aria-hidden="true"></i>
{{ 'dates.add_interval' | translate }}
</button>
<button (click)="emptyAll()" class="btn btn--warning" id="empty_button">
<i class="fa fa-trash" aria-hidden="true"></i>
{{ 'dates.empty' | translate }}
</button>
<section *ngIf="showDateInterval" class="date-interval">
<!-- TODO à mettre en popup-->
<hr />
<h2>{{ 'dates.add_interval' | translate }}</h2>
<p>
{{ 'dates.interval_propose' | translate }}
<input (change)="countDays()" [(ngModel)]="startDateInterval" type="date" />
{{ 'dates.interval_span' | translate }}
<input (change)="countDays()" [(ngModel)]="endDateInterval" type="date" />
<br />
</p>
<button (click)="addIntervalOfDates()" class="btn btn-block btn--primary">
<i class="fa fa-plus" aria-hidden="true"></i>
{{ 'dates.interval_button' | translate }}
{{ intervalDays }}
{{ 'dates.interval_button_dates' | translate }}
</button>
<hr />
</section>
<div class="columns">
<div class="column">
<div class="dates-list">
<div class="title">
<span class="count-dates">
{{ config.timeList.length }}
</span>
<span class="count-dates-txt">
{{ 'dates.count_time' | translate }}
(pour chaque jour)
</span>
</div>
<div class="actions">
<button
(click)="addTime()"
*ngIf="'false' === config.allowSeveralHours"
class="btn btn--primary"
id="add_time_button"
>
<i class="fa fa-plus" aria-hidden="true"></i>
{{ 'dates.add_time' | translate }}
</button>
<button
(click)="removeAllTimes()"
*ngIf="'false' === config.allowSeveralHours"
class="btn btn--warning"
id="remove_time_button"
>
<i class="fa fa-trash" aria-hidden="true"></i>
Aucune plage horaire
</button>
<button
(click)="resetTimes()"
*ngIf="'false' === config.allowSeveralHours"
class="btn btn--warning"
id="reset_time_button"
>
<i class="fa fa-refresh" aria-hidden="true"></i>
réinitialiser
</button>
</div>
<div *ngIf="'false' === config.allowSeveralHours" class="identical-dates">
<div *ngFor="let time of config.timeList; index as id" class="time-choice">
<label for="timeChoices_{{ id }}">
<i class="fa fa-clock-o" aria-hidden="true"></i>
</label>
<input
[(ngModel)]="time.literal"
name="timeChoices_{{ id }}"
type="text"
id="timeChoices_{{ id }}"
/>
<button (click)="time.timeList.splice(id, 1)" class="btn btn-warning">
<i class="fa fa-times" aria-hidden="true"></i>
</button>
</div>
</div>
<hr />
<span class="count-dates title">
{{ config.dateList.length }}
</span>
<span>
{{ 'dates.count_dates' | translate }}
</span>
<button class="btn btn--primary" (click)="addDate()">
{{ 'dates.add' | translate }}
</button>
<div *ngFor="let choice of config.dateList; index as id" class="date-choice">
{{ id }})
<input
[(ngModel)]="choice.date_object"
name="dateChoices_{{ id }}"
id="dateChoices_{{ id }}"
useValueAsDate
type="date"
/>
<button (click)="config.dateList.splice(id, 1)" class="btn btn-warning">
<i class="fa fa-times" aria-hidden="true"></i>
</button>
<button
(click)="addTimeToDate(choice, id)"
*ngIf="'true' === config.allowSeveralHours"
class="btn btn--primary"
>
{{ 'dates.add_time' | translate }}
</button>
<div *ngIf="'true' === config.allowSeveralHours" class="several-times">
<div *ngFor="let timeItem of choice.timeList; index as idTime" class="time-choice">
<input
[(ngModel)]="timeItem.literal"
name="dateTime_{{ id }}_Choices_{{ idTime }}"
id="dateTime_{{ id }}_Choices_{{ idTime }}"
type="text"
/>
<button (click)="choice.timeList.splice(idTime, 1)" class="btn btn-warning">
<i class="fa fa-times" aria-hidden="true"></i>
</button>
</div>
</div>
</div>
</div>
</div>
<div class="column">
<app-resume></app-resume>
</div>
</div>
<a routerLink="../resume" class="btn btn--full btn--primary">
C'est parfait!
</a>
<a routerLink="../../home" class="prev">
Retour
</a>

View File

@ -1,43 +0,0 @@
:host {
.several-times {
padding-left: 1em;
}
.date-interval {
padding: 1em;
margin-bottom: 1em;
}
.dates-list {
.btn--primary {
float: right;
}
}
.date-choice {
input {
width: 70%;
}
}
.title {
font-size: 1.5rem;
}
input,
button {
+ button {
margin-left: 1em;
}
}
.columns {
margin-top: 1em;
}
.identical-dates {
label {
width: 3ch;
}
}
}

View File

@ -1,134 +0,0 @@
import { DOCUMENT } from '@angular/common';
import { ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';
import { ToastService } from '../../../../src/app/core/services/toast.service';
import { DateUtilitiesService } from '../../../../src/app/core/services/date.utilities.service';
import { otherDefaultDates } from '../../config/defaultConfigs';
import { ConfigService } from '../../services/config.service';
import { BaseComponent } from '../example/base-page/base.component';
@Component({
selector: 'app-dates',
templateUrl: './dates.component.html',
styleUrls: ['./dates.component.scss'],
})
export class DatesComponent extends BaseComponent implements OnInit {
showDateInterval = false;
startDateInterval: any;
intervalDays: any;
intervalDaysDefault = 7;
endDateInterval: any;
constructor(
public config: ConfigService,
private cd: ChangeDetectorRef,
private toastService: ToastService,
private dateUtilities: DateUtilitiesService,
@Inject(DOCUMENT) private document: any
) {
super(config);
}
countDays() {
// compute the number of days in the date interval
if (this.endDateInterval && this.startDateInterval) {
this.intervalDays = this.dateUtilities.dayDiff(this.endDateInterval, this.startDateInterval).toFixed(0);
}
}
/**
* set the interval options
*/
ngOnInit(): void {
const dateCurrent = new Date();
const dateJson = dateCurrent.toISOString();
this.startDateInterval = dateJson.substring(0, 10);
this.endDateInterval = this.dateUtilities
.addDaysToDate(this.intervalDaysDefault, dateCurrent)
.toISOString()
.substring(0, 10);
}
addDate() {
this.config.dateList.push({
literal: '',
date_object: new Date(),
timeList: [],
});
const selector = '["choice_label_' + (this.config.dateList.length - 1) + '"]';
this.cd.detectChanges();
const elem = this.document.querySelector(selector);
if (elem) {
elem.focus();
}
}
/**
* change time spans
*/
addTime() {
this.config.timeList.push({
literal: '',
timeList: [],
date_object: new Date(),
});
}
removeAllTimes() {
this.config.timeList = [];
}
resetTimes() {
this.config.timeList = otherDefaultDates;
}
/**
* add a time period to a specific date choice,
* focus on the new input
* @param config
* @param id
*/
addTimeToDate(config: any, id: number) {
config.timeList.push({ literal: '' });
const selector = '[ng-reflect-choice_label="dateTime_' + id + '_Choices_' + (config.timeList.length - 1) + '"]';
this.cd.detectChanges();
const elem = this.document.querySelector(selector);
if (elem) {
elem.focus();
}
}
/**
* remove all input contents, does not reset to default
*/
emptyAll() {
this.config.dateList.forEach((element) => {
element.literal = '';
element.date_object = new Date();
element.timeList = ['', '', ''];
});
this.config.timeList.forEach((element) => {
element.literal = '';
});
}
/**
* add all the dates between the start and end dates in the interval section
*/
addIntervalOfDates() {
const newIntervalArray = this.dateUtilities.getDatesInRange(this.startDateInterval, this.endDateInterval, 1);
const converted = [];
newIntervalArray.forEach((element) => {
converted.push({
literal: element.literal,
date_object: element.date_object,
timeList: [],
});
});
this.config.dateList = [...new Set(converted)]; // add only dates that are not already present with a Set of unique items
this.showDateInterval = false;
this.toastService.display(`les dates ont été ajoutées aux réponses possibles.`);
}
}

View File

@ -1,56 +0,0 @@
<h1 i18n>
{{ 'resume.title' | translate }}
</h1>
<section class="admin">
<h2 i18n>{{ 'resume.admins' | translate }}</h2>
<p>
Votre sondage «
<span class="poll-title">
{{ config.title }}
</span>
» a bien été créé !
</p>
<p>
Voici les liens daccès au sondage, conservez-les soigneusement ! (Si vous les perdez vous pourrez toujours les
recevoir par email)
</p>
<p>
Pour accéder au sondage et à tous ses paramètres :
<a href="{{ config.urlAdmin }}">{{ config.urlAdmin }} </a>
</p>
<app-copy-text [textToCopy]="config.urlAdmin"></app-copy-text>
<a href="{{ config.urlAdmin }}">
Voir le sondage coté administrateur·ice
</a>
<p class="note">
Note : Le sondage sera supprimé {{ config.deletionDateAfterLastModification }} jours après la date de sa
dernière modification.
</p>
</section>
<section class="public">
<h2 i18n>{{ 'resume.users' | translate }}</h2>
<p>
Pour accéder au sondage :
<a href="{{ config.urlPublic }}">{{ config.urlPublic }} </a>
</p>
<app-copy-text [textToCopy]="config.urlPublic"></app-copy-text>
<a href="{{ config.urlPublic }}">
Voir le sondage
</a>
</section>
<section class="mail">
<h2 i18n>{{ 'resume.links_mail' | translate }}</h2>
<p>
Pour être sur de retrouver ces liens, nous pouvons vous les envoyer sur votre mail mail :
<input type="email" [(ngModel)]="mailToRecieve" paceholder="email" />
</p>
<button class="btn btn--primary" (click)="sendToEmail()">
<i class="fa fa-paper-plane" aria-hidden="true"></i>
Envoyer les liens du sondage
</button>
<a href="{{ config.urlPublic }}">
Voir le sondage
</a>
</section>

View File

@ -1,5 +0,0 @@
:host {
button {
margin-right: 1em;
}
}

View File

@ -1,24 +0,0 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { EndConfirmationComponent } from './end-confirmation.component';
describe('EndConfirmationComponent', () => {
let component: EndConfirmationComponent;
let fixture: ComponentFixture<EndConfirmationComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [EndConfirmationComponent],
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(EndConfirmationComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -1,28 +0,0 @@
import { HttpClient } from '@angular/common/http';
import { Component, OnInit } from '@angular/core';
import { ToastService } from '../../../../src/app/core/services/toast.service';
import { ConfigService } from '../../services/config.service';
import { BaseComponent } from '../example/base-page/base.component';
@Component({
selector: 'app-end-confirmation',
templateUrl: './end-confirmation.component.html',
styleUrls: ['./end-confirmation.component.scss'],
})
export class EndConfirmationComponent extends BaseComponent implements OnInit {
mailToRecieve = '';
constructor(public config: ConfigService, public http: HttpClient, private toastService: ToastService) {
super(config);
this.mailToRecieve = this.config.myEmail;
}
ngOnInit(): void {}
copyLink(str: any) {
this.toastService.display(`Lien copié : ${str}`);
}
sendToEmail() {}
}

View File

@ -1,4 +0,0 @@
<h1>Ce composant est celui de base pour les pages</h1>
<a routerLink="../end" class="btn btn-block" i18n="@@confirm">
{{ 'config.perfect' | translate }}
</a>

View File

@ -1,29 +0,0 @@
import { Component, OnInit } from '@angular/core';
import { ConfigService } from '../../../services/config.service';
@Component({
selector: 'app-base-page',
templateUrl: './base.component.html',
styleUrls: ['./base.component.scss'],
})
/**
* base page is aware of the state of the filling
*/
export class BaseComponent implements OnInit {
constructor(public config: ConfigService) {}
ngOnInit(): void {}
public checkValidity(): boolean {
// TODO with form controls
this.config.todo();
return true;
}
public displayErrorMessage(): boolean {
// TODO
this.config.todo();
return true;
}
}

View File

@ -1,265 +0,0 @@
<h1>page de démo</h1>
<p>
cette étape est en cours de développement. <br />
S'inspirer de la page de Home pour réaliser d'autres pages
</p>
<a routerLink="../end" class="btn btn--primary" i18n="@@confirm">C'est parfait!</a>
<h1>Atoms</h1>
<section>
<article>
<h2>Headings</h2>
<h1>Ceci est un h1</h1>
<h2>Ceci est un h2</h2>
<h3>Ceci est un h3</h3>
</article>
<article>
<h2>Links</h2>
<div>
<a routerLink="../../home" class="next">
<span class="text" i18n>
C'est parti !
</span>
</a>
</div>
<div>
<a routerLink="../../home" class="prev">
<span class="text" i18n>
C'est parti !
</span>
</a>
</div>
</article>
<article>
<h2>Buttons</h2>
<button type="submit" class="btn btn--primary">
primary - default
</button>
<br />
<button type="submit" class="btn btn--primary btn--small">
primary - small
</button>
<br />
<a href='/' class="btn btn--primary btn--outline">
primary - outline - default
</a>
<br />
<button type="submit" class="btn btn--primary btn--outline btn--small">
primary - outline - small
</button>
<br />
<input type="submit" class="btn btn--alert" value="alert - default" />
<br />
<button type="submit" class="btn btn--alert btn--small">
alert - small
</button>
<br />
<button type="submit" class="btn btn--alert btn--outline">
alert - outline - default
</button>
<br />
<button type="submit" class="btn btn--alert btn--outline btn--small">
alert - outline - small
</button>
<br /><br />
<button type="submit" class="btn btn--primary btn--full">
primary - full
</button>
<button type="submit" class="btn btn--primary btn--outline btn--full">
primary - outline - full
</button>
<button type="submit" class="btn btn--alert btn--full">
alert - full
</button>
<button type="submit" class="btn btn--alert btn--outline btn--full">
alert - outline - full
</button>
</article>
<article>
<h2>Forms element</h2>
<h3>Labels</h3>
<label for="">Un label pour les labelliser tous</label>
<h3>Input choice_label</h3>
<input type="name" name="" id="" /><br />
<input type="name" name="" id="" value="texte" />
<h3>Input email</h3>
<input type="email" name="" id="" /><br />
<input type="email" name="" id="" value="adresse@email.com" />
<h3>Input password</h3>
<input type="password" name="" id="" /><br />
<input type="password" name="" id="" value="password" />
<h3>Input date</h3>
<input type="date" name="" id="" /><br />
<input type="date" name="" id="" value="1985-11-23" />
<h3>Select</h3>
<select name="" id="">
<option value="">
1
</option>
<option value="">
2
</option>
<option value="">
3
</option>
</select>
<h3>Textarea</h3>
<textarea name="" id="" cols="30" rows="10"></textarea>
</article>
<article>
<h2>Paragraphs</h2>
<p>
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Magnam perspiciatis minus libero error dolores.
Corrupti repellat vero repellendus reiciendis assumenda minus. Nobis, quaerat ut nihil minima sed animi
delectus beatae!
</p>
</article>
<article>
<h2>Lists</h2>
<h3>Unordered list</h3>
<ul>
<li>
plop
</li>
<li>
plop
</li>
<li>
plop
</li>
</ul>
<h3>Ordered list</h3>
<ol>
<li>
plop
</li>
<li>
plop
</li>
<li>
plop
</li>
</ol>
</article>
<article>
<h2>Images</h2>
<img src="http://placekitten.com/200/300" alt="" />
</article>
</section>
<section>
<h1>Molecules</h1>
<app-voting-choice></app-voting-choice>
<article>
<h2>Useful classes</h2>
<h3>Align right</h3>
<div class="align-right">
<a routerLink="../../home" class="next">
<span class="text" i18n>
C'est parti !
</span>
</a>
</div>
</article>
<article>
<h2>Label + input choice_label</h2>
<label for="test-text">Ceci est un label un peu long mais pas trop</label>
<input type="name" name="test-text" id="test-text" />
</article>
<article>
<h2>Label + select</h2>
<label for="test-select">Ceci est un label un peu long mais pas trop</label>
<select name="test-select" id="test-select">
<option value="">
1
</option>
<option value="">
2
</option>
<option value="">
3
</option>
</select>
</article>
<article>
<h2>Input choice_label with info</h2>
<a href="https://sketch.cloud/s/00A80/a/MAl5q7">like here</a>
</article>
<article>
<h2>Commentaries</h2>
</article>
</section>
<section>
<h1>Components</h1>
<article>
<h2>Images list</h2>
<a href="https://sketch.cloud/s/00A80/a/bQA9wj">that</a>
</article>
<article>
<h2>Calendar</h2>
</article>
<article>
<h2>Modale</h2>
</article>
<article>
<h2>Way to vote</h2>
<a href="https://sketch.cloud/s/00A80/a/Ol0598">that</a>
</article>
<article>
<h2>Voted</h2>
<a href="https://sketch.cloud/s/00A80/a/OlJZo2">that</a>
</article>
<article>
<h2>Graphics</h2>
<a href="https://sketch.cloud/s/00A80/a/megprw">that</a>
</article>
</section>

View File

@ -1,22 +0,0 @@
@charset "UTF-8";
section {
&:not(:last-of-type) {
border-bottom: 6px solid #000;
}
+ section {
margin: 0 !important;
}
}
article {
padding: 2rem 0;
border-top: 3px solid #ffb92c;
h3 {
&:not(:first-of-type) {
margin-top: 2rem;
}
}
}

View File

@ -1,16 +0,0 @@
import { Component, OnInit } from '@angular/core';
import { BaseComponent } from '../base-page/base.component';
import { ConfigService } from '../../../services/config.service';
@Component({
selector: 'app-page-kind',
templateUrl: './kind.component.html',
styleUrls: ['./kind.component.scss'],
})
export class KindComponent extends BaseComponent implements OnInit {
constructor(public config: ConfigService) {
super(config);
}
ngOnInit(): void {}
}

View File

@ -1,5 +0,0 @@
<!--ceci est la popup pour ajouter une image-->
<h1 i18n>
Images
</h1>
<a routerLink="../visibility" class="btn btn--primary">ok</a>

View File

@ -1,24 +0,0 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { PicturesComponent } from './pictures.component';
describe('PicturesComponent', () => {
let component: PicturesComponent;
let fixture: ComponentFixture<PicturesComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [PicturesComponent],
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(PicturesComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -1,16 +0,0 @@
import { Component, OnInit } from '@angular/core';
import { ConfigService } from '../../../services/config.service';
import { BaseComponent } from '../base-page/base.component';
@Component({
selector: 'app-pictures',
templateUrl: './pictures.component.html',
styleUrls: ['./pictures.component.scss'],
})
export class PicturesComponent extends BaseComponent implements OnInit {
constructor(public config: ConfigService) {
super(config);
}
ngOnInit(): void {}
}

View File

@ -1,92 +0,0 @@
<div class="description">
<router-outlet></router-outlet>
<h1 i18n>
{{ 'creation.title' | translate }}
</h1>
<span class="pre-selector" i18n>
{{ 'creation.want' | translate }}
</span>
<button (click)="config.resetConfig()" class="btn btn--warning">
Reset all
</button>
<select [(ngModel)]="config.pollType" autofocus="autofocus" id="selector" name="polltype">
<option value="dates" name="polltype_date">
{{ 'creation.kind.date' | translate }}
</option>
<option value="classic" name="polltype_classic">
{{ 'creation.kind.classic' | translate }}
</option>
</select>
<span class="post-selector"> </span>
<div>
<label class="title-label" for="poll_title" i18n>
{{ 'creation.choose_title' | translate }}
</label>
<input
[(ngModel)]="config.title"
id="poll_title"
name="poll_title"
placeholder="{{ 'creation.choose_title_placeholder' | translate }}"
type="name"
/>
<app-erasable-input [(inputModel)]="config.title"></app-erasable-input>
</div>
<div>
<label for="my_name"> {{ 'creation.choice_label' | translate }} : </label>
<input
[(ngModel)]="config.myName"
id="my_name"
name="my_name"
placeholder="{{ 'creation.name_placeholder' | translate }}"
type="name"
/>
<app-erasable-input [(inputModel)]="config.myName"></app-erasable-input>
</div>
<div>
<label class="title-label" for="poll_description" i18n>
{{ 'creation.description' | translate }}:
<app-erasable-input [(inputModel)]="config.description"></app-erasable-input>
</label>
<br />
<textarea
[(ngModel)]="config.description"
cols="50"
id="poll_description"
lines="5"
name="poll_description"
placeholder="description"
></textarea>
</div>
<div>
<label for="email">
Mon email pour administrer le sondage est
</label>
<input
[(ngModel)]="config.myEmail"
autofocus="autofocus"
id="email"
name="mail"
required="required"
type="email"
/>
<app-erasable-input [(inputModel)]="config.myEmail"></app-erasable-input>
</div>
<button routerLink="../answers" class="btn btn--primary btn--full" *ngIf="config.pollType == 'classic'" i18n>
Continuer
<i class="fa fa-file-text" aria-hidden="true"></i>
</button>
<button routerLink="../date" class="btn btn--primary btn--full" *ngIf="config.pollType == 'dates'" i18n>
Continuer
<i class="fa fa-calendar-check-o" aria-hidden="true"></i>
</button>
<a routerLink="../creation" class="prev" i18n>
Retour
</a>
<hr />
</div>

View File

@ -1,17 +0,0 @@
import { Component, OnInit } from '@angular/core';
import { ConfigService } from '../../services/config.service';
import { BaseComponent } from '../example/base-page/base.component';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.scss'],
})
export class HomeComponent extends BaseComponent implements OnInit {
nextStep = '/step/answers';
constructor(public config: ConfigService) {
super(config);
}
ngOnInit(): void {}
}

View File

@ -1,12 +0,0 @@
<h1 class="margin-btm-x3">Nom du sondage</h1>
<p class="margin-btm-x6">Ce sondage est protégé par un mot de passe</p>
<form>
<label for="password">Mot de passe :</label>
<section class="row">
<input class="margin-btm-x5" type="password" name="password" />
<input type="submit" name="view" value="Voir" class="btn btn--small btn--purple" />
</section>
<input type="submit" name="go" value="Accéder au sondage" class="btn btn--primary btn--full btn--semi-bold" />
</form>

View File

@ -1,12 +0,0 @@
form {
display: flex;
flex-direction: column;
}
label {
font-weight: 600;
font-size: 18px;
}
h1 {
display: flex;
align-self: center;
}

View File

@ -1,24 +0,0 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { PasswordComponent } from './password.component';
describe('PasswordComponent', () => {
let component: PasswordComponent;
let fixture: ComponentFixture<PasswordComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [PasswordComponent],
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(PasswordComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -1,16 +0,0 @@
import { Component, OnInit } from '@angular/core';
import { BaseComponent } from '../example/base-page/base.component';
import { ConfigService } from '../../services/config.service';
@Component({
selector: 'app-password',
templateUrl: './password.component.html',
styleUrls: ['./password.component.scss'],
})
export class PasswordComponent extends BaseComponent implements OnInit {
constructor(public config: ConfigService) {
super(config);
}
ngOnInit(): void {}
}

View File

@ -1,59 +0,0 @@
<div class="poll">
<button class="btn btn--primary" (click)="config.execStuff()" *ngIf="config.isAdmin">
launch admin action execStuff !
</button>
<button class="btn btn--primary" (click)="config.exportJson()" *ngIf="config.isAdmin">
<i class="fa fa-file-archive-o" aria-hidden="true"></i>
export json
</button>
<div class="loading" *ngIf="config.loading">
<i class="fa fa-refresh fa-spin" aria-hidden="true"></i>
</div>
<div class="loaded-poll" *ngIf="!config.loading && config.currentPoll">
<div id="choices">
<app-choices-list></app-choices-list>
</div>
<div id="table">
<!-- <app-voting-navigation ></app-voting-navigation >-->
<app-voting-summary></app-voting-summary>
</div>
<div id="poll_comments">
<app-comments-list></app-comments-list>
</div>
<div id="graph">
<!--<app-voting-graph ></app-voting-graph >-->
</div>
<div id="export_and_share">
<div class="sharing" *ngIf="config.currentPoll">
<h3 class="margin-top-x8">
Partager le sondage
<i class="fa fa-share" aria-hidden="true"></i>
</h3>
<p class="nobold text-14" for="copyLink">
Pour partager le sondage, vous pouvez diffuser ce lien :
<a href="{{ config.currentPoll.urlPublic }}">
{{ config.currentPoll.urlPublic }}
</a>
</p>
<app-copy-text [textToCopy]="config.currentPoll.urlPublic"></app-copy-text>
<h3 class="margin-top-x6 margin-btm-x3">
Exporter/Imprimer
</h3>
<button class="export export-csv" (click)="config.exportCSV()">
Exporter en .csv
</button>
<button class="export export-print" (click)="config.print()">
Imprimer le sondage
</button>
</div>
</div>
</div>
<div class="badly-loaded" *ngIf="config.loading && !config.currentPoll">
<div class="well is-warning">
No current poll available
</div>
</div>
</div>

View File

@ -1 +0,0 @@
@import '../../../../../src/styles/variables';

View File

@ -1,70 +0,0 @@
import { Component, OnInit } from '@angular/core';
import { BaseComponent } from '../../example/base-page/base.component';
import { ConfigService } from '../../../services/config.service';
import { mockComments } from '../../../mocks/mock-comments';
import { ActivatedRoute, Router } from '@angular/router';
import { environment } from '../../../../../src/environments/environment';
import { mockPoll3 } from '../../../mocks/mock-poll3';
@Component({
selector: 'app-poll-display',
templateUrl: './poll-display.component.html',
styleUrls: ['./poll-display.component.scss'],
})
export class PollDisplayComponent extends BaseComponent implements OnInit {
comments = mockComments;
constructor(public config: ConfigService, private router: Router, public activeRoute: ActivatedRoute) {
super(config);
this.activeRoute.paramMap.subscribe((params) => {
console.log('params', params);
this.config.pollId = params.get('poll');
this.config.pollSlug = params.get('pollSlug');
if (!this.config.loading) {
this.fetchPoll();
}
});
}
ngOnInit(): void {}
// fetch poll with its ID or custom_url.
fetchPoll() {
const id = this.activeRoute.snapshot.params.poll;
const pollSlug = this.activeRoute.snapshot.params.pollSlug;
if (!environment.production) {
console.log('mockPoll3', mockPoll3);
this.config.currentPoll = mockPoll3;
return;
}
if (id) {
this.config.loading = true;
// store it in the poll property here
this.config.getPollById(id).subscribe(
(res: any) => {
console.log('res', res);
this.config.updateCurrentPollFromResponse(res);
this.config.loading = false;
},
(e) => {
// handle need for a password
console.log('e', e);
this.config.handleError(e);
}
);
} else if (pollSlug) {
this.config.loading = true;
this.config.getPollByURL(pollSlug).subscribe(
(res: any) => {
this.config.loading = false;
this.config.updateCurrentPollFromResponse(res);
},
(e) => {
// handle need for a password
this.config.handleError(e);
}
);
}
}
}

View File

@ -1,24 +0,0 @@
<select
id="selectColorblind"
name="selector"
autofocus="autofocus"
[(ngModel)]="isColorblind"
(change)="toggleColorblind()"
class="input"
>
<option value="true">
{{ 'pollGraphic.choiceColorblind' | translate }}
</option>
<option value="false">
{{ 'pollGraphic.choiceNotColorblind' | translate }}
</option>
</select>
<span class="colorblind">
{{ 'pollGraphic.colorblindText' | translate }}
</span>
<div class="well">
work in progress to link data with poll config
</div>
<div>
<canvas id="graph" width="100%" height="15em"></canvas>
</div>

View File

@ -1,3 +0,0 @@
#selectColorblind {
direction: rtl;
}

View File

@ -1,111 +0,0 @@
import { Component, Inject, OnInit } from '@angular/core';
import { Chart } from 'chart.js';
import { DOCUMENT } from '@angular/common';
import { mockGraphConfig } from '../../../mocks/mock-graph';
import { ConfigService } from '../../../services/config.service';
import { mockPoll3 } from '../../../mocks/mock-poll3';
@Component({
selector: 'app-poll-graphic',
templateUrl: './poll-graphic.component.html',
styleUrls: ['./poll-graphic.component.scss'],
})
export class PollGraphicComponent implements OnInit {
isColorblind = false;
pollConfigRetrieved: any = mockPoll3;
graphicConfig: any = mockGraphConfig;
preferred: any = 'rien';
yesList: number[] = [];
maybeList: number[] = [];
noList: number[] = [];
nbPoll = 0;
dateList: string[] = [];
constructor(@Inject(DOCUMENT) private document: any, private config: ConfigService) {}
ngOnInit(): void {
this.formatDataAnswers(this.graphicConfig);
this.isColorblind = false;
this.pollConfigRetrieved = new Chart(this.document.getElementById('graph'), {
type: 'horizontalBar',
data: {
labels: this.pollConfigRetrieved.choices.map((choice) => choice.name),
datasets: [
{
type: 'horizontalBar',
stack: 'Yes',
backgroundColor: '#429a00',
data: this.yesList,
},
{
type: 'horizontalBar',
stack: 'Yes',
backgroundColor: '#f5a623',
data: this.maybeList,
},
{
type: 'horizontalBar',
stack: 'No',
backgroundColor: '#cd0000',
data: this.noList,
},
],
},
options: this.getSettedGraphOptions(),
});
}
public toggleColorblind(): void {
this.isColorblind = !this.isColorblind;
}
public formatDataAnswers(poll): void {
// if (poll && poll.pollType === "date") {
this.initPollCounter();
poll.answers.forEach((response) => {
switch (response.text) {
case 'yes':
this.yesList[this.nbPoll - 1]++;
break;
case 'maybe':
this.maybeList[this.nbPoll - 1]++;
break;
case 'no':
this.noList[this.nbPoll - 1]++;
break;
}
});
// }
}
public initPollCounter(): void {
this.nbPoll++;
this.dateList[this.nbPoll - 1] = 'jeudi';
this.maybeList[this.nbPoll - 1] = 0;
this.yesList[this.nbPoll - 1] = 0;
this.noList[this.nbPoll - 1] = 0;
}
private getSettedGraphOptions(): any {
// TODO: create interfaces, or find another way to work. "any" return type should be removed.
return {
legend: { display: false },
scales: {
xAxes: [
{
gridLines: { drawBorder: false, display: false },
display: false,
stacked: true,
ticks: { beginAtZero: true, maxRotation: 0, minRotation: 0 },
},
],
yAxes: [
{
gridLines: { drawBorder: true, display: false },
display: true,
stacked: true,
},
],
},
};
}
}

View File

@ -1,69 +0,0 @@
<h1>Aperçu</h1>
<div class="card content">
<h2 class="hero-title title">
{{ config.title }}
</h2>
<div class="creation">
créé par
<i class="pseudo">
{{ config.myName }}
</i>
</div>
<div class="description">
<cite>
{{ config.description }}
</cite>
</div>
<section class="preview type-classic" *ngIf="config.pollType == 'classic'">
<ul>
<li markdown *ngFor="let questions of config.answers">
<img class="img-thumbnail" src="{{ questions.url }}" alt="image {{ questions.url }}" />
{{ questions.id + 1 }}. {{ questions.text }}
</li>
</ul>
</section>
<section class="type-date" *ngIf="config.pollType !== 'classic'">
<i class="fa fa-clock-o" aria-hidden="true"></i>
<span class="well" *ngIf="'true' === config.allowSeveralHours">
{{ 'dates.multiple.different' | translate }}
</span>
<span class="well" *ngIf="'false' === config.allowSeveralHours">
{{ 'dates.multiple.identical' | translate }}
</span>
<div *ngFor="let choice of config.dateList; index as id" class="date-choice">
<div class="only-one-slice" *ngIf="!choice.timeList.length">
<i class="fa fa-square-o" aria-hidden="true"></i>
</div>
{{ choice.literal }}
<!-- CASE different slices of the day-->
<div *ngIf="'true' === config.allowSeveralHours" class="several-times">
<div *ngFor="let time of choice.timeList; index as idTime" class="time-choice">
{{ idTime }})
<i class="fa fa-square-o" aria-hidden="true"></i>
{{ time.literal }}
</div>
</div>
<!-- CASE all dates having the same slices of the day-->
<div *ngIf="'false' === config.allowSeveralHours" class="same-times">
<div *ngFor="let time of config.timeList" class="time-choice">
<i class="fa fa-square-o" aria-hidden="true"></i>
{{ time.literal }}
</div>
</div>
</div>
</section>
</div>
<button routerLink="../visibility" class="btn btn--primary btn--full">
C'est parfait!
</button>
<div class="back">
<a *ngIf="config.pollType == 'classic'" routerLink="../answers" class="prev">
Retour
</a>
<a *ngIf="config.pollType == 'dates'" routerLink="../date" class="prev">
Retour
</a>
</div>

View File

@ -1,9 +0,0 @@
.card {
box-shadow: 0px 0px 0.5em #ccc;
padding: 2em;
margin: 1em 0;
}
.time-choice {
margin-left: 3em;
}

View File

@ -1,24 +0,0 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ResumeComponent } from './resume.component';
describe('ResumeComponent', () => {
let component: ResumeComponent;
let fixture: ComponentFixture<ResumeComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ResumeComponent],
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ResumeComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -1,15 +0,0 @@
import { Component } from '@angular/core';
import { BaseComponent } from '../example/base-page/base.component';
import { ConfigService } from '../../services/config.service';
import { Router } from '@angular/router';
@Component({
selector: 'app-resume',
templateUrl: './resume.component.html',
styleUrls: ['./resume.component.scss'],
})
export class ResumeComponent extends BaseComponent {
constructor(public config: ConfigService, private router: Router) {
super(config);
}
}

View File

@ -1,164 +0,0 @@
<h1 i18n>
{{ 'visibility.top_txt' | translate }}
</h1>
<section class="answers">
<h2>
{{ 'visibility.title' | translate }}
</h2>
<span>
{{ 'visibility.visibility_want' | translate }}
</span>
<select name="visible_people" id="visible_people" [(ngModel)]="config.visibility">
<option value="link_only">
{{ 'visibility.visibility_link' | translate }}
</option>
<option value="only_me">
{{ 'visibility.visibility_nobody' | translate }}
</option>
</select>
<span>
{{ 'visibility.visibility_see' | translate }}
</span>
</section>
<section class="possible_votes">
<h2>
{{ 'visibility.votes' | translate }}
</h2>
<label for="votes">
{{ 'visibility.votes_possible' | translate }}
</label>
<select name="votes" id="votes" [(ngModel)]="config.voteChoices">
<option value="only_yes">
{{ 'visibility.votes_possible_single' | translate }}
</option>
<option value="normal">
{{ 'visibility.votes_possible_normal' | translate }}
</option>
<option value="full">
{{ 'visibility.votes_possible_full' | translate }}
</option>
</select>
</section>
<section class="expiracy">
<label for="expirationDate">
{{ 'visibility.archiving' | translate }}
</label>
<input type="date" id="expirationDate" [(ngModel)]="config.expirationDate" />
<div class="modification">
<label for="modificationAbility">
{{ 'visibility.archiving_start' | translate }}
</label>
<select name="modificationAbility" id="modificationAbility" [(ngModel)]="config.canModifyAnswers">
<option value="true">
{{ 'visibility.archiving_can' | translate }}
</option>
<option value="false">
{{ 'visibility.archiving_can_not' | translate }}
</option>
</select>
<span *ngIf="config.canModifyAnswers == false">
{{ 'visibility.archiving_end_not' | translate }}
</span>
<span class="can_modify_votes" *ngIf="config.canModifyAnswers == true">
<label for="modificationScope">
{{ 'visibility.archiving_end' | translate }}
</label>
<span *ngIf="false == !!config.canModifyAnswers">
{{ 'visibility.modfiy_their' | translate }}
</span>
<select
name="modificationScope"
id="modificationScope"
*ngIf="true == !!config.canModifyAnswers"
[(ngModel)]="config.whoCanChangeAnswers"
[disabled]="false == !!config.canModifyAnswers"
>
<option value="self">
{{ 'visibility.modfiy_their' | translate }}
</option>
<option value="everybody">
{{ 'visibility.modfiy_everyone' | translate }}
</option>
</select>
</span>
</div>
</section>
<section class="access">
<h2 class="title">
{{ 'visibility.access' | translate }}
</h2>
<label for="url">
{{ 'visibility.access_url' | translate }}
<br />
{{ 'visibility.access_url_key' | translate }}
</label>
<br />
<input type="name" class="input-lg" name="url" id="url" [(ngModel)]="config.customUrl" />
<sub class="instructions">
{{ 'visibility.access_instructions' | translate }}
</sub>
<div class="preview-url">
<a [href]="'/vote/poll/custom_url/' + config.customUrl">
{{ '/vote/poll/custom_url/' + config.customUrl }}
</a>
</div>
<br />
<label for="passwordAccess">
{{ 'visibility.access_want' | translate }}
</label>
<select name="passwordAccess" id="passwordAccess" [(ngModel)]="config.passwordAccess">
<option value="0"> {{ 'visibility.access_want_no' | translate }}</option>
<option value="1"> {{ 'visibility.access_want_yes' | translate }}</option>
</select>
<label for="password">
{{ 'visibility.access_protect' | translate }}
</label>
<div class="enablepassword" *ngIf="config.passwordAccess == 1">
<input
type="password"
name="password"
id="password"
min="8"
*ngIf="!showCustomPassword"
[(ngModel)]="config.password"
/>
<input
type="name"
name="password_visible"
id="password_visible"
min="8"
*ngIf="showCustomPassword"
[(ngModel)]="config.password"
/>
<button
(click)="showCustomPassword = !showCustomPassword"
[disabled]="!config.password"
class="btn btn--default"
>
<i class="fa fa-eye" aria-hidden="true"></i>
{{ 'visibility.see_pass' | translate }}
</button>
</div>
</section>
<button (click)="submitCreationAndGoToEnd()" class="btn btn--primary btn--full" i18n="@@confirm">
{{ 'visibility.validate_btn' | translate }}
<ng-container *ngIf="!config.loading">
<i class="fa fa-paper-plane" aria-hidden="true"></i>
</ng-container>
<span class="loading" *ngIf="config.loading">
<i class="fa fa-refresh fa-spin fa-fw" aria-hidden="true"></i>
</span>
</button>
<div class="back">
<a routerLink="../answers" class="prev">
Retour
</a>
</div>

View File

@ -1,5 +0,0 @@
:host {
h2 {
margin-top: 1em;
}
}

View File

@ -1,24 +0,0 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { VisibilityComponent } from './visibility.component';
describe('VisibilityComponent', () => {
let component: VisibilityComponent;
let fixture: ComponentFixture<VisibilityComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [VisibilityComponent],
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(VisibilityComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -1,34 +0,0 @@
import { Location } from '@angular/common';
import { Component, OnInit } from '@angular/core';
import { environment } from '../../../../src/environments/environment';
import { PollUtilitiesService } from '../../../../src/app/core/services/poll.utilities.service';
import { ConfigService } from '../../services/config.service';
import { BaseComponent } from '../example/base-page/base.component';
@Component({
selector: 'app-visibility',
templateUrl: './visibility.component.html',
styleUrls: ['./visibility.component.scss'],
})
export class VisibilityComponent extends BaseComponent implements OnInit {
public location: Location;
public showCustomPassword = false;
public baseUrl = environment.api.baseHref;
constructor(public config: ConfigService, public utils: PollUtilitiesService) {
super(config);
}
ngOnInit(): void {
this.config.customUrl = 'un custom_url';
this.config.expirationDate = this.config
.addDaysToDate(this.config.expiracyDateDefaultInDays, new Date())
.toISOString()
.substring(0, 10);
}
public submitCreationAndGoToEnd(): void {
this.config.createPoll();
}
}

View File

@ -1,29 +0,0 @@
<div *ngIf="config.currentPoll" class="list-of-choices">
<div *ngFor="let choice of config.currentPoll.choices">
<app-voting-choice
[choice]="choice"
[choices_count]="config.currentPoll.choices_count"
[pollIsSpecialDate]="config.currentPoll.poll.kind == 'date'"
[poll]="config.currentPoll"
></app-voting-choice>
</div>
</div>
<div class="bar-votestack">
<button
class="btn btn-block submit-votestack"
(click)="config.addVote()"
[disabled]="!config.myTempVoteStack"
[ngClass]="{ 'btn--primary': config.myTempVoteStack }"
*ngIf="!config.myVoteStack || !config.myVoteStack.id"
>
<i class="fa fa-paper-plane" aria-hidden="true"></i> Envoyer
</button>
<button
class="btn btn--primary btn-block submit-votestack update"
(click)="config.updateVote(config.myVoteStack)"
*ngIf="config.myVoteStack && config.myVoteStack.id"
>
<i class="fa fa-edit" aria-hidden="true"></i> Mettre à jour
</button>
</div>

View File

@ -1,11 +0,0 @@
import { Component } from '@angular/core';
import { ConfigService } from '../../../services/config.service';
@Component({
selector: 'app-choices-list',
templateUrl: './choices-list.component.html',
styleUrls: ['./choices-list.component.scss'],
})
export class ChoicesListComponent {
constructor(public config: ConfigService) {}
}

View File

@ -1,33 +0,0 @@
<section class="name">
<label for="name">
<i class="fa fa-user" aria-hidden="true"></i>
Votre nom :</label
>
<input type="text" name="name" id="name" [(ngModel)]="config.myName" />
<input type="text" name="name" id="email" [(ngModel)]="config.myEmail" />
<i class="fa fa-envelope" aria-hidden="true"></i>
</section>
<div class="comments" id="comments">
<h2 class="margin-top-x7">Laisser un commentaire</h2>
<label for="crname">Votre nom :</label>
<input type="text" class="margin-btm-x3" name="crname" [(ngModel)]="config.myName" id="crname" />
<input type="text" name="cremail" id="email_comment" [(ngModel)]="config.myEmail" />
<label for="email_comment">
<i class="fa fa-envelope" aria-hidden="true"></i>
</label>
<div>
<label for="comment">Votre commentaire :</label>
<br />
<textarea name="comment" id="comment" [(ngModel)]="config.myComment"> </textarea>
</div>
<input
type="submit"
name="add-comment"
class="btn btn--primary btn--outline"
value="Ajouter mon commentaire"
(click)="config.addComment()"
/>
<div class="comments-part" *ngIf="config.currentPoll">
<app-voting-comment [comment]="c" *ngFor="let c of config.currentPoll.comments"> </app-voting-comment>
</div>
</div>

Some files were not shown because too many files have changed in this diff Show More