mirror of
https://framagit.org/framasoft/framadate/funky-framadate-front.git
synced 2023-08-25 13:53:14 +02:00
Compare commits
15 Commits
f66603d187
...
09a507109a
Author | SHA1 | Date | |
---|---|---|---|
09a507109a | |||
03cbb508c7 | |||
39d6effabc | |||
f628b5dc7b | |||
8fbf81762b | |||
4a7b989142 | |||
0834ea3ffa | |||
3c4c0b5337 | |||
345b90c2e1 | |||
2aca7ab282 | |||
5028a54fb7 | |||
422090e997 | |||
71d139f177 | |||
11a0245890 | |||
7ef4e4d4a4 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -5,6 +5,7 @@
|
||||
/tmp
|
||||
/out-tsc/
|
||||
documentation
|
||||
/site/
|
||||
# Only exists if Bazel was run
|
||||
/bazel-out
|
||||
|
||||
|
@ -60,6 +60,6 @@ build:
|
||||
# artifacts:
|
||||
# paths:
|
||||
# - public
|
||||
# expire_in: 30 dateList
|
||||
# expire_in: 30 dateChoices
|
||||
# only:
|
||||
# - master
|
||||
|
@ -25,8 +25,6 @@
|
||||
"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",
|
||||
"src/styles.scss"
|
||||
],
|
||||
|
551
docs/CHANGELOG.md
Normal file
551
docs/CHANGELOG.md
Normal 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 build’s 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)
|
||||
|
||||
|
@ -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.
|
||||
|
19
mkdocs.yml
19
mkdocs.yml
@ -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
|
||||
|
@ -40,7 +40,7 @@ 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 choice to setup different hours (timeSlices) for all possible dates (dateChoices), or use the same hours for all dates
|
||||
*/
|
||||
allowSeveralHours = 'true';
|
||||
// access
|
||||
@ -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 dateList as strings, config to set identical time for dateList in a special dateList 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;
|
||||
|
@ -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"}]}}}}
|
@ -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);
|
||||
}
|
||||
}
|
@ -1 +0,0 @@
|
||||
{"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./module"},{"from":"./date-value-accessor"}]}
|
@ -1,2 +0,0 @@
|
||||
export * from './module';
|
||||
export * from './date-value-accessor';
|
@ -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"}]}]}]}}}
|
@ -1,8 +0,0 @@
|
||||
import { NgModule } from '@angular/core';
|
||||
import { DateValueAccessor } from './date-value-accessor';
|
||||
|
||||
@NgModule({
|
||||
declarations: [DateValueAccessor],
|
||||
exports: [DateValueAccessor],
|
||||
})
|
||||
export class DateValueAccessorModule {}
|
@ -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,
|
||||
};
|
@ -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éé"
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"message": "anti flood déclenché",
|
||||
"details": "votre deriner commentaire a été envoyé il y a moins de 5 secondes"
|
||||
}
|
@ -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
|
||||
}
|
@ -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": {}
|
||||
}
|
||||
}
|
@ -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",
|
||||
},
|
||||
];
|
@ -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 dateList 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',
|
||||
},
|
||||
],
|
||||
};
|
@ -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,
|
||||
};
|
@ -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',
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
@ -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,
|
||||
},
|
||||
];
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@ -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 {}
|
@ -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 {}
|
@ -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>
|
@ -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;
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { AdminComponent } from './admin.component';
|
||||
|
||||
fdescribe('AdminComponent', () => {
|
||||
let component: AdminComponent;
|
||||
let fixture: ComponentFixture<AdminComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [AdminComponent],
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(AdminComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
@ -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);
|
||||
// }
|
||||
// );
|
||||
}
|
||||
}
|
@ -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>
|
@ -1,24 +0,0 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { AnswersComponent } from './answers.component';
|
||||
|
||||
describe('AnswersComponent', () => {
|
||||
let component: AnswersComponent;
|
||||
let fixture: ComponentFixture<AnswersComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [AnswersComponent],
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(AnswersComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
@ -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();
|
||||
}
|
||||
}
|
@ -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>
|
@ -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;
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { CreateOrRetrieveComponent } from './create-or-retrieve.component';
|
||||
|
||||
describe('CreateOrRetrieveComponent', () => {
|
||||
let component: CreateOrRetrieveComponent;
|
||||
let fixture: ComponentFixture<CreateOrRetrieveComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [CreateOrRetrieveComponent],
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(CreateOrRetrieveComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
@ -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;
|
||||
}
|
||||
}
|
@ -1,155 +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>
|
||||
<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>
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { DatesComponent } from './dates.component';
|
||||
|
||||
describe('DatesComponent', () => {
|
||||
let component: DatesComponent;
|
||||
let fixture: ComponentFixture<DatesComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [DatesComponent],
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(DatesComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
@ -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 dateList 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.`);
|
||||
}
|
||||
}
|
@ -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 d’accè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>
|
@ -1,5 +0,0 @@
|
||||
:host {
|
||||
button {
|
||||
margin-right: 1em;
|
||||
}
|
||||
}
|
@ -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();
|
||||
});
|
||||
});
|
@ -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() {}
|
||||
}
|
@ -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>
|
@ -1,24 +0,0 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { BaseComponent } from './base.component';
|
||||
|
||||
describe('BaseComponent', () => {
|
||||
let component: BaseComponent;
|
||||
let fixture: ComponentFixture<BaseComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [BaseComponent],
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(BaseComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
@ -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;
|
||||
}
|
||||
}
|
@ -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>
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { KindComponent } from './kind.component';
|
||||
|
||||
describe('KindComponent', () => {
|
||||
let component: KindComponent;
|
||||
let fixture: ComponentFixture<KindComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [KindComponent],
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(KindComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
@ -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 {}
|
||||
}
|
@ -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>
|
@ -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();
|
||||
});
|
||||
});
|
@ -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 {}
|
||||
}
|
@ -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>
|
@ -1,24 +0,0 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { HomeComponent } from './home.component';
|
||||
|
||||
describe('HomeComponent', () => {
|
||||
let component: HomeComponent;
|
||||
let fixture: ComponentFixture<HomeComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [HomeComponent],
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(HomeComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
@ -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 {}
|
||||
}
|
@ -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>
|
@ -1,12 +0,0 @@
|
||||
form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
label {
|
||||
font-weight: 600;
|
||||
font-size: 18px;
|
||||
}
|
||||
h1 {
|
||||
display: flex;
|
||||
align-self: center;
|
||||
}
|
@ -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();
|
||||
});
|
||||
});
|
@ -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 {}
|
||||
}
|
@ -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>
|
@ -1 +0,0 @@
|
||||
@import '../../../../../src/styles/variables';
|
@ -1,24 +0,0 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { PollDisplayComponent } from './poll-display.component';
|
||||
|
||||
describe('PollDisplayComponent', () => {
|
||||
let component: PollDisplayComponent;
|
||||
let fixture: ComponentFixture<PollDisplayComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [PollDisplayComponent],
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(PollDisplayComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
@ -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);
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
@ -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>
|
@ -1,3 +0,0 @@
|
||||
#selectColorblind {
|
||||
direction: rtl;
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { PollGraphicComponent } from './poll-graphic.component';
|
||||
|
||||
describe('PollGraphicComponent', () => {
|
||||
let component: PollGraphicComponent;
|
||||
let fixture: ComponentFixture<PollGraphicComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [PollGraphicComponent],
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(PollGraphicComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
@ -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,
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
@ -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>
|
@ -1,9 +0,0 @@
|
||||
.card {
|
||||
box-shadow: 0px 0px 0.5em #ccc;
|
||||
padding: 2em;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
.time-choice {
|
||||
margin-left: 3em;
|
||||
}
|
@ -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();
|
||||
});
|
||||
});
|
@ -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);
|
||||
}
|
||||
}
|
@ -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>
|
@ -1,5 +0,0 @@
|
||||
:host {
|
||||
h2 {
|
||||
margin-top: 1em;
|
||||
}
|
||||
}
|
@ -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();
|
||||
});
|
||||
});
|
@ -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();
|
||||
}
|
||||
}
|
@ -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>
|
@ -1,24 +0,0 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { ChoicesListComponent } from './choices-list.component';
|
||||
|
||||
describe('ChoicesListComponent', () => {
|
||||
let component: ChoicesListComponent;
|
||||
let fixture: ComponentFixture<ChoicesListComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ChoicesListComponent],
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(ChoicesListComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
@ -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) {}
|
||||
}
|
@ -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>
|
@ -1,41 +0,0 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { CommentsListComponent } from './comments-list.component';
|
||||
import { FormsModule } from '@angular/forms';
|
||||
import { HttpClient, HttpClientModule } from '@angular/common/http';
|
||||
import { BrowserModule } from '@angular/platform-browser';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { ConfirmationService, MessageService } from 'primeng';
|
||||
import { Router } from '@angular/router';
|
||||
import { ConfigService } from '../../../services/config.service';
|
||||
|
||||
const routerSpy = jest.fn({ navigateByUrl: jest.fn() });
|
||||
|
||||
describe('CommentsListComponent', () => {
|
||||
let component: CommentsListComponent;
|
||||
let fixture: ComponentFixture<CommentsListComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [FormsModule, BrowserModule, CommonModule, HttpClientModule],
|
||||
declarations: [CommentsListComponent],
|
||||
providers: [
|
||||
HttpClient,
|
||||
MessageService,
|
||||
ConfirmationService,
|
||||
ConfigService,
|
||||
{ provide: Router, useValue: routerSpy },
|
||||
],
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(CommentsListComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
@ -1,11 +0,0 @@
|
||||
import { Component } from '@angular/core';
|
||||
import { ConfigService } from '../../../services/config.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-comments-list',
|
||||
templateUrl: './comments-list.component.html',
|
||||
styleUrls: ['./comments-list.component.scss'],
|
||||
})
|
||||
export class CommentsListComponent {
|
||||
constructor(public config: ConfigService) {}
|
||||
}
|
@ -1,147 +0,0 @@
|
||||
<div class="choicebox selection-{{ choice.answer }}">
|
||||
<!-- add .choicebox--active to most voted -->
|
||||
<button
|
||||
*ngIf="showChangeChoicebutton"
|
||||
class="btn btn--primary manage"
|
||||
(click)="choice.simpleAnswer = !choice.simpleAnswer"
|
||||
>
|
||||
<i class="fa fa-cogs" aria-hidden="true"></i>
|
||||
</button>
|
||||
|
||||
<div class="choicebox__subject">
|
||||
<div class="columns">
|
||||
<div class="column">
|
||||
<div class="text title clickable" (click)="setAnswserTo('yes')">
|
||||
{{ choice.text }}
|
||||
</div>
|
||||
<!-- TEXT CASE --><!--
|
||||
<p class="choicebox__txt">
|
||||
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Nulla nobis nam culpa !
|
||||
</p>
|
||||
--><!-- TEXT CASE -->
|
||||
|
||||
<!-- IMG CASE -->
|
||||
<img *ngIf="choice.url" class="choicebox__img" [src]="choice.url" alt="{{ choice.url }}" />
|
||||
<!-- IMG CASE -->
|
||||
|
||||
<!-- DATE CASE -->
|
||||
<div class="dates" *ngIf="pollIsSpecialDate">
|
||||
<div class="choicebox__date">
|
||||
{{ choice.date.date | date: 'EEE' }}
|
||||
<span class="choicebox__day">{{ choice.date.date | date: 'dd' }}</span>
|
||||
{{ choice.date.date | date: 'LLL' }}
|
||||
</div>
|
||||
<div class="choicebox__hour">
|
||||
{{ choice.date.date | date: 'H:m' }}
|
||||
</div>
|
||||
</div>
|
||||
<!-- DATE CASE -->
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="choicebox__actions">
|
||||
<!-- show only the yes check if the config is set to simpleAnswer -->
|
||||
<!-- add .choicebox__btn--active to selected <button> -->
|
||||
<span class="simple-answer">
|
||||
<button
|
||||
class="choicebox__btn choicebox__btn--yes"
|
||||
type="button"
|
||||
[ngClass]="{ 'choicebox__btn--active': choice.answer === 'yes' }"
|
||||
(click)="setAnswserTo('yes')"
|
||||
>
|
||||
<img src="../../../assets/img/check.svg" alt="" />
|
||||
</button>
|
||||
</span>
|
||||
<span class="complex-answers" *ngIf="!simpleAnswer">
|
||||
<button
|
||||
class="choicebox__btn choicebox__btn--maybe"
|
||||
type="button"
|
||||
[ngClass]="{ 'choicebox__btn--active': choice.answer === 'maybe' }"
|
||||
(click)="setAnswserTo('maybe')"
|
||||
>
|
||||
<img src="../../../assets/img/check-2.svg" alt="" />
|
||||
</button>
|
||||
<button
|
||||
class="choicebox__btn choicebox__btn--no"
|
||||
type="button"
|
||||
[ngClass]="{ 'choicebox__btn--active': choice.answer === 'no' }"
|
||||
(click)="setAnswserTo('no')"
|
||||
>
|
||||
<img src="../../../assets/img/croix.svg" alt="" />
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="choicebox__count">
|
||||
<div class="no-votes" *ngIf="!poll.choices_count.counts[choice.id]">
|
||||
aucun vote
|
||||
</div>
|
||||
<button
|
||||
type="button"
|
||||
aria-describedby="choicebox-tooltip"
|
||||
class="choicebox__votes"
|
||||
*ngIf="poll.choices_count && choice && poll.choices_count.counts[choice.id]"
|
||||
>
|
||||
<div class="choicebox__vote">
|
||||
{{ poll.choices_count.counts[choice.id].yes.count }}
|
||||
<img width="20px" height="21px" src="../../../assets/img/icon_voter_YES.svg" alt="" />
|
||||
</div>
|
||||
<div class="choicebox__vote">
|
||||
{{ poll.choices_count.counts[choice.id].maybe.count }}
|
||||
<img width="22px" height="24px" src="../../../assets/img/icon_voter_MAYBE.svg" alt="" />
|
||||
</div>
|
||||
<div class="choicebox__tooltip" id="choicebox-tooltip">
|
||||
<div class="choicebox__tooltiplist">
|
||||
<div class="choicebox__tooltipttl">
|
||||
<img
|
||||
width="20px"
|
||||
height="21px"
|
||||
src="../../../assets/img/icon_voter_YES.svg"
|
||||
alt=""
|
||||
/>
|
||||
{{ poll.choices_count.counts[choice.id].yes.count }} "Oui"
|
||||
</div>
|
||||
<!-- liste des gens qui ont répondu oui-->
|
||||
<ul>
|
||||
<li *ngFor="let pseudo of choices_count.counts[choice.id].yes.people">
|
||||
{{ pseudo }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="choicebox__tooltiplist" *ngIf="!simpleAnswer">
|
||||
<div class="choicebox__tooltipttl">
|
||||
<img
|
||||
width="22px"
|
||||
height="24px"
|
||||
src="../../../assets/img/icon_voter_MAYBE.svg"
|
||||
alt=""
|
||||
/>
|
||||
{{ poll.choices_count.counts[choice.id].maybe.count }} "Peut-être"
|
||||
</div>
|
||||
<ul>
|
||||
<li *ngFor="let pseudo of choices_count.counts[choice.id].maybe.people">
|
||||
{{ pseudo }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="choicebox__tooltiplist" *ngIf="!simpleAnswer">
|
||||
<div class="choicebox__tooltipttl">
|
||||
<i class="fa fa-times" aria-hidden="true"></i>
|
||||
{{ poll.choices_count.counts[choice.id].no.count }} "Non"
|
||||
</div>
|
||||
<ul>
|
||||
<li *ngFor="let pseudo of choices_count.counts[choice.id].no.people">
|
||||
{{ pseudo }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</button>
|
||||
<div class="choicebox__countxt">
|
||||
Choix ayant reçu le plus de votes
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@ -1,261 +0,0 @@
|
||||
// ---------------------------------------------------------
|
||||
// -- VOTE CHOICE COMPONENT
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// -- IMPORTS
|
||||
// ----------------------------
|
||||
|
||||
@import '../../../../../src/styles/variables';
|
||||
|
||||
// -- VARIABLES
|
||||
// ----------------------------
|
||||
|
||||
$box-padding: 2rem;
|
||||
$box-border-width: 0.6rem;
|
||||
$btn-size: 5rem;
|
||||
$btn-margin-x: 1rem;
|
||||
$btn-margin-y: 1.5rem;
|
||||
$btn-wrap-size: calc(2 * #{$btn-size} + 4 * #{$btn-margin-x});
|
||||
$img-maxheight: 12rem;
|
||||
$breakpoint-responsive: 640px; // à définir
|
||||
|
||||
// -- GLOBAL
|
||||
// ----------------------------
|
||||
|
||||
.choicebox {
|
||||
position: relative;
|
||||
min-height: 10rem;
|
||||
display: block;
|
||||
padding: $box-padding $box-padding $box-padding calc(#{$box-padding} - #{$box-border-width});
|
||||
border-left: $box-border-width solid transparent;
|
||||
background-color: $white;
|
||||
box-shadow: 0 0 0.6rem 0 rgba($black, 0.2);
|
||||
|
||||
&--active {
|
||||
padding-left: $box-padding;
|
||||
border-left-color: $primary_color;
|
||||
}
|
||||
|
||||
&.selection-yes {
|
||||
font-weight: 700;
|
||||
background: #e9bdeb;
|
||||
}
|
||||
}
|
||||
|
||||
.choicebox__subject {
|
||||
margin-bottom: 3rem;
|
||||
padding-right: $btn-wrap-size;
|
||||
@media (min-width: $breakpoint-responsive) {
|
||||
margin-bottom: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// -- DATE
|
||||
// ----------------------------
|
||||
|
||||
.choicebox__date {
|
||||
font-size: 1.8rem;
|
||||
margin-bottom: 0.5rem;
|
||||
white-space: nowrap;
|
||||
text-transform: capitalize;
|
||||
|
||||
@media (min-width: $breakpoint-responsive) {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.choicebox__day {
|
||||
font-size: 2.4rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
// -- IMG
|
||||
// ----------------------------
|
||||
|
||||
.choicebox__img {
|
||||
max-width: 100%;
|
||||
max-height: $img-maxheight;
|
||||
}
|
||||
|
||||
// -- TXT
|
||||
// ----------------------------
|
||||
|
||||
.choicebox__txt {
|
||||
margin: 0;
|
||||
font-size: 1.8rem;
|
||||
min-width: 10em;
|
||||
}
|
||||
|
||||
// -- VOTE BTNS
|
||||
// ----------------------------
|
||||
|
||||
.choicebox__actions {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
|
||||
max-width: $btn-wrap-size;
|
||||
top: 50%;
|
||||
right: $box-padding;
|
||||
|
||||
@media (min-width: $breakpoint-responsive) {
|
||||
position: static;
|
||||
max-width: none;
|
||||
transform: none;
|
||||
margin: 0 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
.choicebox__btn {
|
||||
width: $btn-size;
|
||||
height: $btn-size;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: $btn-margin-y $btn-margin-x;
|
||||
border: 0.3rem solid #ccc9c9;
|
||||
background-color: transparent;
|
||||
border-radius: 50%;
|
||||
cursor: pointer;
|
||||
float: left;
|
||||
|
||||
&--maybe {
|
||||
position: relative;
|
||||
top: calc((#{$btn-size} + 2 * #{$btn-margin-y}) / 2);
|
||||
@media (min-width: $breakpoint-responsive) {
|
||||
top: auto;
|
||||
left: auto;
|
||||
}
|
||||
}
|
||||
&:focus,
|
||||
&:active {
|
||||
border-color: #bf83c2;
|
||||
color: #bf83c2;
|
||||
background: #000;
|
||||
}
|
||||
&--active {
|
||||
border-color: #bf83c2;
|
||||
}
|
||||
|
||||
@media (min-width: $breakpoint-responsive) {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// -- VOTE COUNT
|
||||
// ----------------------------
|
||||
|
||||
.choicebox__count {
|
||||
position: relative;
|
||||
padding-right: $btn-wrap-size;
|
||||
@media (min-width: $breakpoint-responsive) {
|
||||
text-align: right;
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.choicebox__votes {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
line-height: normal;
|
||||
background-color: transparent;
|
||||
@media (min-width: $breakpoint-responsive) {
|
||||
padding: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
.choicebox__vote {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
|
||||
& + .choicebox__vote {
|
||||
margin-left: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
.choicebox__countxt {
|
||||
display: none;
|
||||
margin-top: 0.5rem;
|
||||
|
||||
.choicebox--active & {
|
||||
display: block;
|
||||
@media (min-width: $breakpoint-responsive) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -- TOOLTIP
|
||||
// ----------------------------
|
||||
|
||||
.choicebox__tooltip {
|
||||
display: none;
|
||||
@media (min-width: $breakpoint-responsive) {
|
||||
position: absolute;
|
||||
min-width: 18rem;
|
||||
font-weight: normal;
|
||||
top: 5rem;
|
||||
left: 50%;
|
||||
z-index: 1;
|
||||
padding: 2rem;
|
||||
border: 0.1rem solid rgba($black, 0.1);
|
||||
background-color: $white;
|
||||
text-align: left;
|
||||
transform: translateX(-50%);
|
||||
&::after,
|
||||
&::before {
|
||||
position: absolute;
|
||||
width: 0;
|
||||
height: 0;
|
||||
bottom: 100%;
|
||||
left: 50%;
|
||||
content: ' ';
|
||||
pointer-events: none;
|
||||
border: solid transparent;
|
||||
}
|
||||
&::after {
|
||||
margin-left: -1.5rem;
|
||||
border-width: 1.5rem;
|
||||
border-color: rgba($white, 0);
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
&::before {
|
||||
margin-left: -1.6rem;
|
||||
border-width: 1.6rem;
|
||||
border-color: rgba($black, 0);
|
||||
border-bottom-color: rgba($black, 0.1);
|
||||
}
|
||||
ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.choicebox__tooltiplist {
|
||||
& + .choicebox__tooltiplist {
|
||||
padding-left: 3rem;
|
||||
}
|
||||
|
||||
ul {
|
||||
max-height: 11rem;
|
||||
overflow: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.choicebox__tooltipttl {
|
||||
@media (min-width: $breakpoint-responsive) {
|
||||
margin-bottom: 1rem;
|
||||
font-size: 1.6rem;
|
||||
font-weight: bold;
|
||||
white-space: nowrap;
|
||||
img {
|
||||
margin-right: 0.5rem;
|
||||
vertical-align: sub;
|
||||
}
|
||||
& ~ .choicebox__tooltipttl {
|
||||
margin-top: 3rem;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,81 +0,0 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { FormsModule } from '@angular/forms';
|
||||
import { HttpClient, HttpClientModule } from '@angular/common/http';
|
||||
import { BrowserModule } from '@angular/platform-browser';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { ConfirmationService, MessageService } from 'primeng';
|
||||
import { Router } from '@angular/router';
|
||||
import { ConfigService } from '../../../services/config.service';
|
||||
import { VotingChoiceComponent } from './voting-choice.component';
|
||||
import { mockChoice } from '../../../mocks/choice';
|
||||
import { mockPoll3 } from '../../../mocks/mock-poll3';
|
||||
|
||||
const routerSpy = jest.fn({ navigateByUrl: jest.fn() });
|
||||
|
||||
describe('VotingChoiceComponent', () => {
|
||||
let component: VotingChoiceComponent;
|
||||
let fixture: ComponentFixture<VotingChoiceComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [FormsModule, BrowserModule, CommonModule, HttpClientModule],
|
||||
declarations: [VotingChoiceComponent],
|
||||
providers: [
|
||||
HttpClient,
|
||||
MessageService,
|
||||
ConfirmationService,
|
||||
ConfigService,
|
||||
{ provide: Router, useValue: routerSpy },
|
||||
],
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(VotingChoiceComponent);
|
||||
component = fixture.componentInstance;
|
||||
component.choice = { ...mockChoice };
|
||||
component.choices_count = mockPoll3.choices_count;
|
||||
component.choice_id = mockChoice.id;
|
||||
component.poll = mockPoll3.poll;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
it('should have nothing specified as an answer by default', () => {
|
||||
expect(component.choice.answer).toBeFalsy();
|
||||
});
|
||||
it('should set answer to yes', () => {
|
||||
component.setAnswserTo('yes');
|
||||
expect(component.choice.answer).toBe('yes');
|
||||
});
|
||||
it('should set answer to maybe', () => {
|
||||
component.setAnswserTo('maybe');
|
||||
expect(component.choice.answer).toBe('maybe');
|
||||
});
|
||||
it('should set answer to no', () => {
|
||||
component.setAnswserTo('no');
|
||||
expect(component.choice.answer).toBe('no');
|
||||
});
|
||||
it('should set answer to no after 2 set on yes', () => {
|
||||
component.setAnswserTo('yes');
|
||||
component.setAnswserTo('yes');
|
||||
expect(component.choice.answer).toBe('no');
|
||||
});
|
||||
it('should stay on maybe after 2 set on maybe', () => {
|
||||
component.setAnswserTo('maybe');
|
||||
component.setAnswserTo('maybe');
|
||||
expect(component.choice.answer).toBe('maybe');
|
||||
});
|
||||
it('should stay on no after 2 set on no', () => {
|
||||
component.setAnswserTo('no');
|
||||
component.setAnswserTo('no');
|
||||
expect(component.choice.answer).toBe('no');
|
||||
});
|
||||
it('should consider to have simple answer when allowedAnswers is only one answer long, which is yes', () => {
|
||||
expect(component.poll.allowedAnswers[0]).toBe('yes');
|
||||
expect(component.poll.allowedAnswers.length).toBe(1);
|
||||
expect(component.simpleAnswer).toBeTruthy();
|
||||
});
|
||||
});
|
@ -1,64 +0,0 @@
|
||||
import { Component, ElementRef, Input } from '@angular/core';
|
||||
import { ConfigService } from '../../../services/config.service';
|
||||
|
||||
interface VoteChoice {
|
||||
votes?: {
|
||||
yes: number;
|
||||
no: number;
|
||||
maybe: number;
|
||||
notAnswered: number;
|
||||
};
|
||||
name?: string;
|
||||
date?: Date;
|
||||
answer: 'yes' | 'no' | 'maybe' | null;
|
||||
simpleAnswer?: boolean;
|
||||
false; // enable if we display only a togglable "yes"
|
||||
}
|
||||
|
||||
/**
|
||||
* each vote choice takes a configuration from the container of all choices.
|
||||
* this component is used to select a date choice, or a choice_label answer
|
||||
*/
|
||||
@Component({
|
||||
selector: 'app-voting-choice',
|
||||
templateUrl: './voting-choice.component.html',
|
||||
styleUrls: ['./voting-choice.component.scss'],
|
||||
})
|
||||
export class VotingChoiceComponent {
|
||||
public showChangeChoicebutton = false;
|
||||
@Input() public choice: any;
|
||||
@Input() public choices_count: any;
|
||||
@Input() public choice_id: any;
|
||||
@Input() public poll: any;
|
||||
@Input() public simpleAnswer = true;
|
||||
@Input() public pollIsSpecialDate = false;
|
||||
|
||||
constructor(private el: ElementRef, private config: ConfigService) {
|
||||
if (this.poll && this.poll.allowedAnswers) {
|
||||
this.simpleAnswer = this.poll.allowedAnswers.length == 1;
|
||||
}
|
||||
}
|
||||
|
||||
setAnswserTo(newAnswer: 'yes' | 'no' | 'maybe' | null) {
|
||||
if (this.simpleAnswer) {
|
||||
// only toggle yes to no
|
||||
if (this.choice.answer && this.choice.answer === 'yes') {
|
||||
this.choice.answer = 'no';
|
||||
this.config.myTempVoteStack--;
|
||||
} else {
|
||||
this.choice.answer = newAnswer;
|
||||
this.config.myTempVoteStack++;
|
||||
}
|
||||
} else {
|
||||
this.choice.answer = newAnswer;
|
||||
if (this.choice.answer !== newAnswer) {
|
||||
if (newAnswer == 'maybe' || newAnswer == 'yes') {
|
||||
this.config.myTempVoteStack++;
|
||||
}
|
||||
} else {
|
||||
console.info('same answer as before');
|
||||
}
|
||||
}
|
||||
this.el.nativeElement.blur();
|
||||
}
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
<div class="comment">
|
||||
<span class="cname"> {{ comment.pseudo }} </span>, le
|
||||
<span class="date padding-btm-x1">
|
||||
{{ comment.date.date }}
|
||||
</span>
|
||||
<blockquote>
|
||||
<p class="text">
|
||||
{{ comment.text }}
|
||||
</p>
|
||||
</blockquote>
|
||||
</div>
|
@ -1,15 +0,0 @@
|
||||
import { Component, Input, OnInit } from '@angular/core';
|
||||
import { mockComments } from '../../../mocks/mock-comments';
|
||||
|
||||
@Component({
|
||||
selector: 'app-voting-comment',
|
||||
templateUrl: './voting-comment.component.html',
|
||||
styleUrls: ['./voting-comment.component.scss'],
|
||||
})
|
||||
export class VotingCommentComponent implements OnInit {
|
||||
@Input() comment = mockComments[0];
|
||||
|
||||
constructor() {}
|
||||
|
||||
ngOnInit(): void {}
|
||||
}
|
@ -1,2 +0,0 @@
|
||||
<h1>Graphique</h1>
|
||||
<app-poll-graphic></app-poll-graphic>
|
@ -1,24 +0,0 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { VotingGraphComponent } from './voting-graph.component';
|
||||
|
||||
describe('VotingGraphComponent', () => {
|
||||
let component: VotingGraphComponent;
|
||||
let fixture: ComponentFixture<VotingGraphComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [VotingGraphComponent],
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(VotingGraphComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user