Compare commits
481 Commits
Author | SHA1 | Date |
---|---|---|
bmartins | b39a6d220d | |
tykayn | 481190f3bf | |
tykayn | 10bbf12ab6 | |
Tykayn | ec0196fd24 | |
ty kayn | 2820baa227 | |
Weblate | 715cc4f77c | |
Tykayn | 4170c65e17 | |
Tykayn | 23df4a5899 | |
Tykayn | c6861d1690 | |
Tykayn | 873c7dd9c8 | |
tykayn | 83e00d57f8 | |
tykayn | 0c24b2e602 | |
tykayn | 0c25809159 | |
tykayn | 778f5b4716 | |
tykayn | 5e92466854 | |
tykayn | e5f7e6bb83 | |
tykayn | 0afad9c7a3 | |
tykayn | 248f225fa0 | |
tykayn | aa1f146278 | |
tykayn | 9de903f867 | |
Tykayn | 2dd8c8e825 | |
Tykayn | 62489dd250 | |
Tykayn | 5c1e7119b2 | |
Tykayn | 934e004a33 | |
Tykayn | 6afb4d4640 | |
Tykayn | d76bd5a2d9 | |
Tykayn | 31e9e4eab2 | |
Tykayn | d9e0b270b1 | |
tykayn | 11a9035816 | |
Tykayn | 9a6a052608 | |
Tykayn | fef2e7e78c | |
Tykayn | 57a7f3dbfc | |
Tykayn | 6e1a3c57f4 | |
Tykayn | a620566563 | |
Tykayn | c3b1df4fc7 | |
Tykayn | e09429d0d8 | |
Tykayn | 0319d75b40 | |
Berto Te | a2add4efd8 | |
Tykayn | 123effe9f7 | |
Tykayn | 2b6e8ea5c1 | |
Tykayn | e8dc383eae | |
Tykayn | 4f5f8df077 | |
Tykayn | ffeb21e8fe | |
Tykayn | a44100b7a0 | |
Tykayn | 86229138da | |
Tykayn | 0d3fdf78eb | |
Tykayn | 8998ee2d9e | |
tykayn | 874b9cdf16 | |
Tykayn | 41ce51b421 | |
Tykayn | c288c6716b | |
Tykayn | c93825a527 | |
Tykayn | 7d1385185b | |
Elegant Codes | a91bc20660 | |
Tykayn | e84cfa9194 | |
Tykayn | aad31c9d5f | |
ElG | ae5ee1f087 | |
ElG | f62bf46f4f | |
ElG | 1c90d1ba32 | |
Berto Te | ab6f320438 | |
Ophélie Coelho | 9c3c04bf6d | |
Tykayn | caa40cbd55 | |
Tykayn | 0b1c909182 | |
Tykayn | 8a22dd85eb | |
Tykayn | d1367ced27 | |
Tykayn | 626b75e862 | |
Tykayn | 90e2156dce | |
Tykayn | 24907bfe04 | |
Tykayn | 7e973408fa | |
Tykayn | 1f04f12f1e | |
Tykayn | c3433440d7 | |
Tykayn | 26b0babf92 | |
Tykayn | 5d3e074c39 | |
Tykayn | 0c8cb9248e | |
Tykayn | 6f49099cdf | |
Tykayn | 80473be29e | |
Tykayn | 3135f299f4 | |
Tykayn | 6ab5c18174 | |
Tykayn | bfe427b85a | |
Tykayn | 96d2d0a31d | |
Tykayn | 6fb255ac22 | |
Ewen | 49cc690687 | |
Berto Te | 43b349c42c | |
Tykayn | 10e274802b | |
Tykayn | 3f492d5436 | |
Tykayn | 61bb08f9ff | |
Tykayn | b437647064 | |
Tykayn | 01400ce372 | |
Tykayn | d349de743d | |
Tykayn | 3faecc4035 | |
Tykayn | 65fbb6322b | |
Tykayn | e48caf3464 | |
Berto Te | 527214a836 | |
Tykayn | 92612bb403 | |
Tykayn | 4a6221d9bb | |
Tykayn | cf93f5637c | |
Tykayn | 80736d111f | |
Tykayn | c727c4e316 | |
Tykayn | b5435dea8f | |
Tykayn | 69e028292f | |
Tykayn | d4e856a15f | |
Tykayn | 978ea735a6 | |
Tykayn | 3fa415f24c | |
Tykayn | ed6b3794bf | |
Tykayn | 9fa7704473 | |
Tykayn | 7d0d04954c | |
Tykayn | eb1fffb628 | |
Tykayn | 5d25754c16 | |
tykayn | 00a2dd7e1d | |
tykayn | 8b499bbb98 | |
tykayn | 1b53fe7bbf | |
Tykayn | 7db8bf3f56 | |
Tykayn | bbebaa4aae | |
Tykayn | 9cbca21aeb | |
Tykayn | 85344e8422 | |
Tykayn | aa9f8ff9be | |
Tykayn | c52153770d | |
Tykayn | ec6abfb680 | |
Tykayn | 8921348bbb | |
Tykayn | 40b3a16e0f | |
Tykayn | a0066a5bcf | |
Tykayn | 34da989c9b | |
Ewen | ba3cd5e8e2 | |
Quentin PAGÈS | 4f7b6d29b7 | |
tykayn | 5901379281 | |
Tykayn | 75183b579c | |
Tykayn | dd31f5695b | |
Tykayn | 6c5418c484 | |
Tykayn | d605f3c9db | |
Tykayn | 0dfdc0b4e0 | |
Tykayn | 8a39c43ead | |
Tykayn | 3670a7efb2 | |
Tykayn | 62ca7e6a16 | |
Tykayn | d097d80dda | |
Tykayn | cc79114c79 | |
Tykayn | 0fde16e14f | |
Tykayn | e3b2e685f1 | |
Tykayn | e3b9a82928 | |
Tykayn | 0a6531793d | |
Tykayn | d1862485dc | |
ty kayn | 4645be41d9 | |
Weblate | 23e3ccade8 | |
Tykayn | 6ce5f6cb37 | |
Tykayn | e9850bca2d | |
tykayn | fc3f2daec0 | |
Tykayn | 60d846694a | |
Tykayn | 01a2e40b71 | |
Tykayn | 55753c836e | |
tykayn | 8f850d1c3e | |
Tykayn | a14ccb3ddd | |
Tykayn | f635400d94 | |
Tykayn | 73dc9d69f3 | |
Tykayn | 5edeb34ceb | |
Tykayn | 8a6b331355 | |
Tykayn | a67d2bd58a | |
Tykayn | bd825ec20e | |
Tykayn | 206b7ea9bd | |
Quentin PAGÈS | 26fbe3f3fc | |
Tykayn | 736cdade3f | |
Tykayn | 9a24654682 | |
Berto Te | 9c2d667e03 | |
Tykayn | aa6b7bd98b | |
Tykayn | 5e3bb46d69 | |
Tykayn | c7e4798ce0 | |
Tykayn | 19b9d61192 | |
Tykayn | 1f4809e56a | |
Tykayn | 612b65a3a0 | |
Tykayn | 00f48d102a | |
Tykayn | f9c4eda5e7 | |
Tykayn | 29effc4f09 | |
Tykayn | 05fbbdf466 | |
Tykayn | 81a6e689e2 | |
Tykayn | 4ee326445b | |
Tykayn | ecea75b351 | |
ButterflyOfFire | 0012ad3f77 | |
ButterflyOfFire | cdb8525983 | |
Ewen | c5172ac29e | |
Ewen | 8994cbacaf | |
Tykayn | d82e0f9650 | |
Tykayn | e74ea2dfd4 | |
Tykayn | c3bdc1a015 | |
Tykayn | 422cf9f19e | |
Tykayn | d8f2a718e4 | |
ButterflyOfFire | b5ba1449f1 | |
Ewen | 8583cf5bd0 | |
Tykayn | 4c9c691f4e | |
Tykayn | 5dde4415eb | |
Thomas Citharel | 0e22b2bc93 | |
ty kayn | c804129ffe | |
Tykayn | e9ca4343db | |
Tykayn | 9016b6d699 | |
Tykayn | b69e48fbe9 | |
Tykayn | 3c63757d70 | |
Tykayn | 17297e57ee | |
Tykayn | 9d3b2b8f7c | |
Tykayn | c9b0888d6f | |
ty kayn | df0481a187 | |
ty kayn | 5711982fb9 | |
Tykayn | 9bb8add9b4 | |
ty kayn | 10a34af1f0 | |
Tykayn | ddc1289ddd | |
ty kayn | c41cb3c514 | |
ty kayn | 840f5a16df | |
Tykayn | b5103a4599 | |
Tykayn | c58d649493 | |
Tykayn | 496ce7aa75 | |
Tykayn | 28439b2bc1 | |
Tykayn | 3a51474a53 | |
Tykayn | 191d87d0a5 | |
Tykayn | 61c5d2ca9a | |
Tykayn | 73209f4f4b | |
Tykayn | 2ba8e10524 | |
Tykayn | d9042c1993 | |
Tykayn | 217d9a97c7 | |
Tykayn | 19e5e07d26 | |
ty kayn | 2912c3bbab | |
Weblate | b587ff983b | |
Tykayn | 6914cb3853 | |
tykayn | da244551cf | |
ty kayn | fae98de7ed | |
ty kayn | 060bd0a51d | |
ty kayn | 7559002bca | |
Tykayn | ea87f731d3 | |
ty kayn | 0070da3d2b | |
ty kayn | 89a2a4fa99 | |
ty kayn | d7f61d0e47 | |
ty kayn | 04adc3bcd1 | |
Tykayn | 6d8210206a | |
Tykayn | dc8a56ba29 | |
Tykayn | a0df5e51ed | |
Tykayn | 8a718d064f | |
Tykayn | 755954d7ea | |
Tykayn | 4f7769893c | |
Tykayn | 4f7475de28 | |
Tykayn | cceafed2d4 | |
Tykayn | 1c5a811ed7 | |
Tykayn | 3b6be426b6 | |
Tykayn | f8eea43782 | |
Tykayn | 85c0e5ec9e | |
Tykayn | 9fb31c0a08 | |
Tykayn | 4f8b933030 | |
ty kayn | 401abeb23f | |
Weblate | 3ad3009c78 | |
Tykayn | 902c50d8cb | |
Tykayn | 819e99f75e | |
Tykayn | 1ced919bbd | |
Tykayn | f96395af41 | |
Tykayn | f2bf8e2949 | |
Tykayn | e633425611 | |
Tykayn | 622239b225 | |
Tykayn | 68e4823eed | |
Tykayn | d181578893 | |
Tykayn | 2956ef0167 | |
Tykayn | c914eae60d | |
Tykayn | 7063d2346f | |
Tykayn | 6e76d7fc33 | |
Tykayn | a43c92fa23 | |
Tykayn | 920066a4a0 | |
Tykayn | c4dee3eaad | |
Tykayn | eacaf6bc87 | |
ty kayn | 0f860a56c8 | |
ty kayn | d4fad088d4 | |
Quentin PAGÈS | 9b8c4cac22 | |
Quentin PAGÈS | a0e78925fe | |
ty kayn | 8c7487ebf3 | |
ty kayn | 85f589f5ca | |
ty kayn | 420ae43d7c | |
Berto Te | 7284b9f547 | |
Berto Te | d17958c16c | |
Berto Te | 02b5f00708 | |
Berto Te | 3b19016854 | |
Berto Te | 6620c39a94 | |
Berto Te | 6eebe38515 | |
Thomas Citharel | e465233d91 | |
Thomas Citharel | a020e50f89 | |
ty kayn | cf765953b1 | |
Berto Te | 4211da1b89 | |
Thomas Citharel | 491244bd1e | |
Tykayn | afc37caba2 | |
tykayn | e28b8d6ae4 | |
tykayn | 12ce993335 | |
tykayn | d7c8ceabc4 | |
tykayn | 087a1ba2de | |
tykayn | cd2e27c399 | |
Tykayn | f8e8958b68 | |
Tykayn | 766ac2ad98 | |
Tykayn | e35f4f06d7 | |
Tykayn | c799bea900 | |
Tykayn | ee4f91c9ac | |
Tykayn | a2f94a8f98 | |
Tykayn | 32027911dd | |
Tykayn | 2683abba2a | |
Tykayn | 13e97e7b60 | |
Tykayn | 4587d3eb52 | |
Tykayn | 48637c5d54 | |
Tykayn | 7888220aed | |
Tykayn | 34b97c55a6 | |
Tykayn | b84dd0bbd3 | |
Tykayn | 7e64ec7f69 | |
Tykayn | ba6f11d45c | |
Tykayn | 23bb4cde3a | |
Tykayn | 18d8fd7b00 | |
Tykayn | 3794f1a641 | |
Tykayn | 8885a31fa5 | |
Tykayn | e4c3d4e022 | |
Tykayn | 9cf278f18b | |
Tykayn | e4fd637cb4 | |
Tykayn | 24653ba480 | |
Tykayn | c0e348978c | |
Tykayn | 483e497399 | |
Tykayn | 2a48633e83 | |
Tykayn | f993f5c31e | |
Tykayn | cf7e6603f9 | |
Tykayn | 9c55186aa1 | |
Tykayn | e4ebebf0b6 | |
Tykayn | cdfff22967 | |
Tykayn | 7575e9ca50 | |
Tykayn | c673bfaf52 | |
Tykayn | 26baa4447d | |
tykayn | c393bee2b4 | |
Tykayn | 7e96b88890 | |
Tykayn | e3b54acb65 | |
Tykayn | d2ce9ecac1 | |
Tykayn | e1ad358a78 | |
Tykayn | 8035ea700e | |
Tykayn | e4689a5e71 | |
Tykayn | 013bdaca84 | |
Tykayn | 662cd4ef71 | |
Tykayn | 3b7b21defa | |
Tykayn | 0cb295cce0 | |
Tykayn | 1307b9f1a3 | |
Tykayn | 1f8315235c | |
Tykayn | a43de5f410 | |
Tykayn | 307fd75615 | |
Tykayn | 6a9e85d66a | |
Tykayn | f958b012b9 | |
Tykayn | dbecfe6195 | |
Tykayn | f1403fe2a0 | |
Tykayn | ab6cb0288d | |
Tykayn | cc51a8efa9 | |
Tykayn | 1cab5c3cef | |
tykayn | 3dbb108a2c | |
Tykayn | 60d0678cb7 | |
caligulanorris | 61214b5e0d | |
Tykayn | 14691db58b | |
Tykayn | 434f4b82b1 | |
Tykayn | dba514dd46 | |
Tykayn | 96799c8485 | |
Tykayn | 135cc5e512 | |
Tykayn | edcb1bdcf8 | |
Tykayn | 77bad4783f | |
Tykayn | e26d468c73 | |
ty kayn | d5e6a0330b | |
Tykayn | 5d0613549d | |
Tykayn | d4ab56483d | |
Tykayn | 684d710003 | |
Tykayn | 2e8a1aa12b | |
Tykayn | 71b9fff475 | |
tykayn | a1d58a2812 | |
Tykayn | 83b66d9899 | |
Tykayn | d009f42a56 | |
Tykayn | 34632957fb | |
Tykayn | a92db69cf6 | |
Tykayn | da42c9e64d | |
Tykayn | 5f555136cf | |
Kayn Ty | 424961b8bb | |
ty kayn | 7502adc5bc | |
Tykayn | 0a3b1659ee | |
Tykayn | 339b5da3e8 | |
Tykayn | f26a6d7826 | |
Tykayn | 56397d5a2c | |
Tykayn | 26109ee368 | |
Tykayn | 56b48038e0 | |
Tykayn | 4e449b38a8 | |
ty kayn | 5dfa315848 | |
Tykayn | bf8c6a9b7a | |
Tykayn | b1b6ec650a | |
Tykayn | 0f4aac7e81 | |
Tykayn | 706fd28698 | |
Tykayn | 5ca08d489f | |
Tykayn | 794bbec1a7 | |
Tykayn | 5b1b173b7b | |
Tykayn | 2c10dfb6d6 | |
ty kayn | 5b5d17a880 | |
Tykayn | e3210c881f | |
ty kayn | c1ec249e02 | |
Tykayn | a64647a545 | |
Tykayn | d538af4ca1 | |
Tykayn | e99a86bb4b | |
Tykayn | a3db9b7cd5 | |
Tykayn | 4233a8eb7e | |
Tykayn | 475c420d96 | |
Tykayn | 8f6fe6044a | |
Tykayn | 2f26e27e31 | |
Tykayn | 989208faa5 | |
Tykayn | fc1859719a | |
Tykayn | 6796d6e39f | |
Tykayn | a0576a477d | |
Tykayn | b3b8d46aa3 | |
Tykayn | c6d5a8fc8c | |
Tykayn | 18a2987c04 | |
Tykayn | 54f9e22070 | |
Tykayn | 7b82b5506d | |
Tykayn | b9aea18d34 | |
Tykayn | 96ef61c541 | |
Tykayn | d68ba7ac2a | |
Tykayn | cb971a5421 | |
Tykayn | 3dc7555747 | |
Tykayn | 52ff89f1f5 | |
Tykayn | 2f1309bf6f | |
Tykayn | 19127328d2 | |
Tykayn | c2c193bfa9 | |
Tykayn | afdaf04a8f | |
Tykayn | e1a28a7c81 | |
tykayn | 912e8af990 | |
Tykayn | f4be6ed39d | |
Tykayn | 77cc54f2fc | |
Tykayn | a438bdff6c | |
Tykayn | c67f309180 | |
Tykayn | 938a8e72d9 | |
Tykayn | d726eb3668 | |
Tykayn | 1a410f120b | |
Tykayn | e73336c00e | |
Tykayn | 94ef23e3a3 | |
Tykayn | 5798f6d24e | |
Tykayn | 1bcd21317d | |
Tykayn | 6638ba1060 | |
Tykayn | 075d434c6f | |
Tykayn | adc7c255d8 | |
Tykayn | 13dbe0f89b | |
Tykayn | 06dbef8040 | |
Tykayn | 534ef03f6a | |
Tykayn | 5a75685b0a | |
Tykayn | 16c527d649 | |
Tykayn | 09ff4be2f6 | |
Tykayn | 5c290ea968 | |
Tykayn | 5ce3984dc9 | |
Tykayn | 748eb48125 | |
Tykayn | e4ed956970 | |
Tykayn | 36fe52aa82 | |
Tykayn | 8f108a1bdf | |
Tykayn | eb6a046fa1 | |
Tykayn | d05c77cb08 | |
Tykayn | 2c4be3e87a | |
Tykayn | e3fc7f270f | |
Tykayn | 60bdb4c1fb | |
Tykayn | e66ca4448b | |
Tykayn | 597bde003f | |
Tykayn | 558f29843b | |
Tykayn | fc0db05f23 | |
Tykayn | b23155172a | |
Tykayn | c95f481af9 | |
Tykayn | ee429e37cc | |
Tykayn | 3b8aa9d849 | |
Tykayn | 406bf71b92 | |
Tykayn | e86e7af5e1 | |
Tykayn | 6e61e49235 | |
Tykayn | 1d9e6066e0 | |
Tykayn | 7e12d9d34f | |
Tykayn | 4a47e9fea3 | |
Tykayn | cf6395936e | |
Tykayn | 5d02fc3167 | |
Tykayn | 09a507109a | |
Tykayn | 03cbb508c7 | |
Tykayn | 39d6effabc | |
Tykayn | f628b5dc7b | |
Tykayn | 8fbf81762b | |
Tykayn | 4a7b989142 | |
Tykayn | 0834ea3ffa | |
Tykayn | 3c4c0b5337 | |
Tykayn | 345b90c2e1 | |
Tykayn | 2aca7ab282 | |
Tykayn | 5028a54fb7 | |
Tykayn | 422090e997 | |
Tykayn | 71d139f177 | |
Tykayn | 11a0245890 | |
Tykayn | 7ef4e4d4a4 | |
Tykayn | f66603d187 | |
Tykayn | 4fefa3340c | |
Tykayn | a99290186c | |
Tykayn | 003f27ae82 | |
Tykayn | 5c7aac3a53 |
|
@ -1,12 +1,13 @@
|
|||
module.exports = {
|
||||
parser: '@typescript-eslint/parser',
|
||||
plugins: ['@typescript-eslint'],
|
||||
plugins: ['@typescript-eslint', 'json'],
|
||||
extends: [
|
||||
'eslint:recommended',
|
||||
'plugin:@typescript-eslint/eslint-recommended',
|
||||
'plugin:@typescript-eslint/recommended',
|
||||
'plugin:prettier/recommended',
|
||||
'prettier/@typescript-eslint',
|
||||
'plugin:json/recommended',
|
||||
],
|
||||
parserOptions: {
|
||||
ecmaVersion: 2018,
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
/tmp
|
||||
/out-tsc/
|
||||
documentation
|
||||
/site/
|
||||
# Only exists if Bazel was run
|
||||
/bazel-out
|
||||
|
||||
|
@ -52,3 +53,5 @@ Thumbs.db
|
|||
|
||||
# linter
|
||||
.eslintcache
|
||||
|
||||
.ztr-directory
|
||||
|
|
|
@ -1,15 +1,16 @@
|
|||
# image: weboaks/node-karma-protractor-chrome
|
||||
image: node:latest
|
||||
image: node:12.22.5
|
||||
|
||||
stages:
|
||||
- build
|
||||
# - pages
|
||||
- test
|
||||
# - test
|
||||
# - e2e
|
||||
|
||||
cache:
|
||||
paths:
|
||||
- node_modules/
|
||||
- .yarn
|
||||
|
||||
#pages:
|
||||
# stage: pages
|
||||
|
@ -38,9 +39,10 @@ cache:
|
|||
|
||||
build:
|
||||
stage: build
|
||||
before_script:
|
||||
- yarn
|
||||
script:
|
||||
- yarn install --pure-lockfile
|
||||
- npx ng build --prod
|
||||
- yarn run build:prod:demobliss
|
||||
cache:
|
||||
policy: pull
|
||||
|
||||
|
@ -60,6 +62,6 @@ build:
|
|||
# artifacts:
|
||||
# paths:
|
||||
# - public
|
||||
# expire_in: 30 days
|
||||
# expire_in: 30 dateChoices
|
||||
# only:
|
||||
# - master
|
||||
|
|
43
README.md
|
@ -1,11 +1,28 @@
|
|||
# Framadate - funky version
|
||||
![landing_page](docs/img/landing_page.png)
|
||||
<a href="https://weblate.framasoft.org/engage/funky-framadate/">
|
||||
<img src="https://weblate.framasoft.org/widgets/funky-framadate/-/funky-framadate-front/multi-auto.svg" alt="État de la traduction" />
|
||||
</a>
|
||||
|
||||
<a href="https://weblate.framasoft.org/engage/funky-framadate/">
|
||||
<img src="https://weblate.framasoft.org/widgets/funky-framadate/-/funky-framadate-front/open-graph.png" alt="État de la traduction" />
|
||||
</a>
|
||||
|
||||
FR: Un logiciel libre de sondage fait par les contributeurs de l'association Framasoft, avec une API backend.
|
||||
|
||||
EN: A libre polling software made by contributors around the French association Framasoft.
|
||||
This version uses a brand new backend API.
|
||||
|
||||
***
|
||||
> l'API de backend est en PHP / Symfony, ses sources disponible sur framagit
|
||||
https://framagit.org/tykayn/date-poll-api
|
||||
***
|
||||
## Pour débuter - getting started
|
||||
[lire la doc pour débuter votre Funky Framadate](docs/GETTING_STARTED.md)
|
||||
|
||||
## Design et maquettes
|
||||
Maquette naviguable: https://www.figma.com/file/Q3I15MEuOtTwL0WIQ2eSMu/%F0%9F%93%85-Framadate?node-id=0%3A6510
|
||||
|
||||
|
||||
## Documentation
|
||||
FR: Toute la documentation est disponible [dans le dossier "doc"](/docs), principalement en Français.
|
||||
EN: All documentation is available in the "doc" folder, mainly in French because reasons.
|
||||
|
@ -13,25 +30,31 @@ EN: All documentation is available in the "doc" folder, mainly in French because
|
|||
|
||||
# Version funky framadate
|
||||
|
||||
* Selon les maquettes par Thomas Bonamy : https://www.figma.com/file/Q3I15MEuOtTwL0WIQ2eSMu
|
||||
* icones https://feathericons.com/
|
||||
|
||||
* [Spécifications](docs/cadrage/specifications-fonctionnelles)
|
||||
* maquettes par @maiwann : https://scene.zeplin.io/project/5d4d83d68866d6522ff2ff10
|
||||
* vidéo de démo des maquettes par @maiwann : https://nuage.maiwann.net/s/JRRHTR9D2akMAa7
|
||||
* discussions sur framateam canal général : https://framateam.org/ux-framatrucs/channaels/framadate
|
||||
* discussions techniques côté développeurs : https://framateam.org/ux-framatrucs/channels/framadate-dev
|
||||
* [notes de réunion](notes-de-reunion)
|
||||
* [traductions](traductions)
|
||||
* [notes de réunion](docs/reunions)
|
||||
* [traductions](docs/traductions)
|
||||
|
||||
|
||||
## Screenshots - exemples de maquette de la nouvelle version
|
||||
![funky_framadate_maquette](docs/img/Screenshot_2021-04-19%20migration%20depuis%20un%20Framadate%20version%201.jpeg)
|
||||
![funky_framadate_maquette](docs/img/advanced_config.png)
|
||||
![funky_framadate_maquette](docs/img/preview_creation.png)
|
||||
![funky_framadate_maquette](docs/img/kind_poll.png)
|
||||
![funky_framadate_maquette](docs/img/colors_framadate_funky.png)
|
||||
![funky_framadate_maquette](docs/img/framdate_funky_design.png)
|
||||
|
||||
# Documentations sur Angular
|
||||
|
||||
* `{- sur sass -}` (on va utiliser CSS, si angular permet d'avoir des variables CSS, @newick)
|
||||
|
||||
|
||||
# Exemple de maquette de la nouvelle version
|
||||
|
||||
![funky_framadate_maquette](docs/img/colors_framadate_funky.png)
|
||||
![funky_framadate_maquette](docs/img/framdate_funky_design.png)
|
||||
|
||||
## LIBRARIES USED
|
||||
|
||||
| status | lib choice_label | usage |
|
||||
|
@ -60,6 +83,4 @@ EN: All documentation is available in the "doc" folder, mainly in French because
|
|||
| to be removed | [uuid](https://www.npmjs.com/package/uuid) | generate uuid |
|
||||
|
||||
---
|
||||
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.1.
|
||||
# Framadate
|
||||
|
||||
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
# Résumé de Changelog
|
||||
|
||||
Le détail se trouve dans [CHANGELOG.md]
|
||||
Le détail se trouve dans [CHANGELOG.md]()
|
||||
|
|
23
angular.json
|
@ -22,12 +22,16 @@
|
|||
"main": "src/main.ts",
|
||||
"polyfills": "src/polyfills.ts",
|
||||
"tsConfig": "tsconfig.app.json",
|
||||
"assets": ["src/favicon.ico", "src/assets"],
|
||||
"assets": [
|
||||
"src/favicon.ico",
|
||||
"src/assets"
|
||||
],
|
||||
"styles": [
|
||||
"node_modules/fork-awesome/css/fork-awesome.min.css",
|
||||
"node_modules/primeng/resources/themes/nova-light/theme.css",
|
||||
"node_modules/primeng/resources/primeng.min.css",
|
||||
"node_modules/bulma-switch/dist/css/bulma-switch.min.css",
|
||||
"node_modules/primeicons/primeicons.css",
|
||||
"node_modules/primeng/resources/themes/saga-blue/theme.css",
|
||||
"node_modules/primeng/resources/primeng.min.css",
|
||||
"src/styles.scss"
|
||||
],
|
||||
"scripts": [
|
||||
|
@ -73,8 +77,7 @@
|
|||
"serve": {
|
||||
"builder": "@angular-devkit/build-angular:dev-server",
|
||||
"options": {
|
||||
"browserTarget": "framadate:build",
|
||||
"proxyConfig": "src/proxy.conf.json"
|
||||
"browserTarget": "framadate:build"
|
||||
},
|
||||
"configurations": {
|
||||
"production": {
|
||||
|
@ -95,8 +98,14 @@
|
|||
"lint": {
|
||||
"builder": "@angular-devkit/build-angular:tslint",
|
||||
"options": {
|
||||
"tsConfig": ["tsconfig.app.json", "tsconfig.spec.json", "e2e/tsconfig.json"],
|
||||
"exclude": ["**/node_modules/**"]
|
||||
"tsConfig": [
|
||||
"tsconfig.app.json",
|
||||
"tsconfig.spec.json",
|
||||
"e2e/tsconfig.json"
|
||||
],
|
||||
"exclude": [
|
||||
"**/node_modules/**"
|
||||
]
|
||||
}
|
||||
},
|
||||
"e2e": {
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
@ -1,9 +1,12 @@
|
|||
# Pour débuter - getting started
|
||||
Clonez le dépot, installez les dépendances, et lancez le serveur local qui se recharge lorsque vous sauvegardez des fichiers dans le dépot. Les fois suivantes vous n'aurez qu'a lancer yarn start.
|
||||
Clonez le dépot, installez les dépendances, et lancez le serveur local qui se recharge lorsque vous sauvegardez des fichiers dans le dépot.
|
||||
Les fois suivantes vous n'aurez qu'a lancer `yarn start`.
|
||||
|
||||
```bash
|
||||
# clone the repo
|
||||
# clonez le dépot
|
||||
git clone https://framagit.org/framasoft/framadate/funky-framadate-front.git
|
||||
cd funky-framadate-front
|
||||
|
||||
# install yarn
|
||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
|
||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
|
||||
|
@ -11,10 +14,27 @@ sudo apt-get update && sudo apt-get install yarn
|
|||
|
||||
yarn install --pure-lockfile
|
||||
yarn start
|
||||
# and now check your browser http://localhost:4200
|
||||
# et c'est parti, vous pouvez voir le site de développement http://localhost:4200
|
||||
```
|
||||
|
||||
Pour interagir avec la base de données, il vous faudra également faire démarrer l'API Symfony de backend dans l'autre dépot, qui se lance par défaut sur le port 8000.
|
||||
Pour interagir avec la base de données, il vous faudra également faire démarrer l'API Symfony de backend dans l'autre dépot https://framagit.org/tykayn/date-poll-api ,
|
||||
qui se lance par défaut sur le port 8000 avec une simple commande (si vous avez installé le tout) `symfony serve`.
|
||||
|
||||
# Modifier les configurations par défaut
|
||||
|
||||
Les configurations par défaut les plus générales telles que le nom du site ou les adresses d'API sont importées dans les fichiers d'environnement:
|
||||
|
||||
[environment.ts par défaut](src/environments/environment.ts)
|
||||
|
||||
Les propriétés par défaut des objets sont dans les modèles:
|
||||
|
||||
[dossier des modèles](src/app/core/models)
|
||||
|
||||
Et c'est le service en charge de la persistence de ces configurations et du stockage local qui surchage les propriétés des modèles quand une personne revient sur le site
|
||||
|
||||
[storage.service.ts](src/app/core/services/storage.service.ts)
|
||||
|
||||
# Pas de config docker
|
||||
Nous n'avons pas actuellement de config docker qui solutionnerait tout ça, les merge request sont les bienvenues! :)
|
||||
|
||||
=> https://framagit.org/framasoft/framadate/funky-framadate-front
|
||||
|
|
23
docs/TODO.md
|
@ -1,5 +1,28 @@
|
|||
# Todo - liste des choses à faire
|
||||
## Idées pour de futures améliorations (pertinence à vérifier)
|
||||
|
||||
* Gagner en vie privée en chiffrant certaines informations ? Stockage zéro knowledge avec un chiffrement robuste à courbe elliptique.
|
||||
* À réfléchir : permettre à Framadate de faire entrer à des gens plusieurs plages de temps de disponibilité et le service déduit quelles sont les plages de temps favorables (calcul d'intersection sur des lignes discontinues). Cela pourrait être avec divers niveaux de détail. Comme https://omnipointment.com/ (qui est un logiciel privateur)
|
||||
* SSO du fédiverse ?
|
||||
|
||||
# Tableau des avancements
|
||||
https://framagit.org/framasoft/framadate/funky-framadate-front/-/boards
|
||||
|
||||
|
||||
# Choses faites
|
||||
voir le [changelog.md]
|
||||
Les idées et rapports de bugs sont disponibles dans [le tableau des Issues](https://framagit.org/framasoft/framadate/funky-framadate-front/-/boards) sur la forge logicielle.
|
||||
|
||||
## principales
|
||||
|
||||
* Accessibilité renforcée.
|
||||
* Adapté aussi bien sur mobile que grands écrans à haute ou faible densité de pixels.
|
||||
* Tests unitaires et end-to-end.
|
||||
* Couverture de test.
|
||||
* Choix de réponses possibles. Proposer de ne répondre que « oui » ou rien, ou aller dans la nuance en proposant « oui », « peut-être », « non », « ? ». *# Redondance ou le choix de réponses possibles de la première phrase concerne un autre choix ?*
|
||||
* Insertion d'images dans le sondage de type texte, avec des URL uniquement. Une seule image par title possible ou rien.
|
||||
* Thème sombre.
|
||||
* Duplication de sondage à partir d'un autre.
|
||||
* Limiter le nombre de participants maximum
|
||||
|
||||
|
||||
|
|
|
@ -19,3 +19,12 @@ Quelques lignes à vérifier:
|
|||
* système de recherche basique
|
||||
|
||||
N'ayez pas peur de demander de l'aide
|
||||
|
||||
## Structure html
|
||||
|
||||
* Ajouter une attribut lang="fr" sur l'élément html
|
||||
* Chaque page doit avoir un title unique (ex: `title="Création de sondage - étape 1/7 - BarracuDate"`)
|
||||
* Chaque page doit avoir un h1 (ex: `<h1>Création de sondage - étape 1 sur 7</h1>`)
|
||||
* Un élément de texte ne peut pas être dans un élément div ou span (ex: <p>300 caractères maximum</p>)
|
||||
* Éviter d’utiliser l’attribut tabindex
|
||||
* Les actions doivent être portées par des éléments button (et non <i> ou <a>)
|
||||
|
|
|
@ -1,16 +1,25 @@
|
|||
# Internationalisation - i18n
|
||||
<a href="https://weblate.framasoft.org/engage/funky-framadate/">
|
||||
<img src="https://weblate.framasoft.org/widgets/funky-framadate/-/funky-framadate-front/svg-badge.svg" alt="État de la traduction" />
|
||||
</a>
|
||||
|
||||
## Dans les templates HTML
|
||||
|
||||
Toutes les chaînes de texte doivent être disponible en minimum deux langues: Français et Anglais.
|
||||
|
||||
Pour l'ajout de nouvelles traductions voir [la documentations des traductions.md](../traductions.md)
|
||||
La documentation a été pensée pour être compréhensible en premier lieu par des personnes francophones, le projet étant issu de Framasoft et de personnes uniquement Francophones, nous avons jugé que c'était le moyen le plus efficace pour le faire grandir.
|
||||
|
||||
Voir les fichiers src/assets/i18n [EN.json](/src/assets/i18n/EN.json) et [FR.json](/src/assets/i18n/FR.json)
|
||||
La traduction se base sur un système de clés-valeur.
|
||||
Voir les fichiers dans le dossier **src/assets/i18n**
|
||||
[EN.json](/src/assets/i18n/en.json) et [FR.json](/src/assets/i18n/fr.json)
|
||||
|
||||
La traduction se base sur un système de clés-valeur dans des fichiers JSON.
|
||||
Les clés sont entrées dans les templates html, et c'est la config d'Angular qui les traduit selon la langue demandée par le visiteur du site.
|
||||
|
||||
Chaque fichier de traduction est déclaré dans le [AppModule](../../src/app/app.module.ts) avec le module @ngx-translate. Examinez l'exemple pour rajouter votre propre traduction.
|
||||
|
||||
Utilisez des sous groupes dans vos traductions afin de mieux segmenter les chaines de caractère par page et selon le sens qu'elles sous tendent.
|
||||
Utilisez des sous groupes dans vos traductions afin de mieux segmenter les chaines de caractère par page et selon leur sens.
|
||||
Faites en sorte de réutiliser au maximum les phrases identiques.
|
||||
|
||||
## Traduction de la documentation mkdocs
|
||||
|
||||
voir ici https://www.mkdocs.org/user-guide/configuration/#lang
|
||||
Pour traduire cette documentation (les fichiers markdwon dans le dossier /docs/) qui génère un mini site avec mkdocs avec la commande de build, il faut faire des fichiers avec un nom de langue tels que index.fr.md et index.en.md.
|
||||
Plus d'infos: https://www.mkdocs.org/user-guide/configuration/#lang
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
## Résumé
|
||||
|
||||
(Summarize the bug encountered concisely)
|
||||
|
||||
## Steps to reproduce
|
||||
|
||||
(How one can reproduce the issue - this is very important)
|
||||
|
||||
## Example Project
|
||||
|
||||
(If possible, please create an example project here on GitLab.com that exhibits the problematic
|
||||
behavior, and link to it here in the bug report.
|
||||
If you are using an older version of GitLab, this will also determine whether the bug has been fixed
|
||||
in a more recent version)
|
||||
|
||||
## What is the current bug behavior?
|
||||
|
||||
(What actually happens)
|
||||
|
||||
## What is the expected correct behavior?
|
||||
|
||||
(What you should see instead)
|
||||
|
||||
## Relevant logs and/or screenshots
|
||||
|
||||
(Paste any relevant logs - please use code blocks (```) to format console output, logs, and code, as
|
||||
it's very hard to read otherwise.)
|
||||
|
||||
## Possible fixes
|
||||
|
||||
(If you can, link to the line of code that might be responsible for the problem)
|
||||
|
||||
/label ~bug ~reproduced ~needs-investigation
|
||||
/cc @project-manager
|
||||
/assign @qa-tester
|
After Width: | Height: | Size: 75 KiB |
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 61 KiB |
After Width: | Height: | Size: 167 KiB |
After Width: | Height: | Size: 110 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 142 KiB |
After Width: | Height: | Size: 105 KiB |
After Width: | Height: | Size: 83 KiB |
|
@ -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.
|
||||
|
|
|
@ -62,7 +62,7 @@ Il est difficile d'entrer dans le projet en absence de spécifications écrites.
|
|||
|
||||
* Discussion : https://framateam.org/ux-framatrucs/channels/framadate
|
||||
* Repo front/dev : https://framagit.org/framasoft/framadate/funky-framadate-front/tree/dev
|
||||
* Repo back : https://framagit.org/framasoft/framadate/framadate
|
||||
* Repo back : https://framagit.org/tykayn/date-poll-api
|
||||
* Maquettes Zeplin : https://scene.zeplin.io/project/5d4d83d68866d6522ff2ff10
|
||||
* La démo : https://framadate-api.cipherbliss.com/
|
||||
* Vidéo de présentation : https://nuage.maiwann.net/s/JRRHTR9D2akMAa7
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
# 2021
|
||||
![landing_page](../img/landing_page.png)
|
||||
|
||||
## Septembre
|
||||
Début des jours ouvrés par Tykayn avec les designs de la DINUM
|
||||
## Mars
|
||||
la DINUM propose de contribuer à financer le développement de la nouvelle version.
|
||||
|
||||
## Avril
|
||||
### 19 Avr
|
||||
Migration fonctionnelle depuis la BDD de la v1 dans la partie backend
|
||||
|
||||
|
||||
## Octobre
|
||||
### 5 Oct
|
||||
le lien vers le lieu où sont travaillées les maquettes de la DINUM https://www.sketch.com/s/5833607c-e93e-4e9b-9c7e-0614238c6d8c
|
||||
|
||||
présentation des wireframes
|
||||
parcours complet, apparence mobile
|
||||
mobile first
|
||||
barre de progression, étapes 1 sur 5
|
||||
|
||||
comment se présente la gestion des horaires identiques pour chaque jour
|
||||
|
||||
* demander aux admins de framadate quels sont les horaires les plus fréquentes dans les sondages de date
|
||||
* sondage texte: proposer une url d'image ou une URL avec chaque choix de réponse
|
||||
* délai expiration de 180 jours par défaut
|
||||
* proposer de participer au sondage après sa création
|
||||
|
||||
questions , propositions
|
||||
* présenter les dates les plus populaires avec une vue calendrier ?
|
||||
* comment se présente l'écran de vote sur mobile?
|
||||
* quelle mise en forme des images et des url
|
||||
* proposer de faire de l'hébergement d'image locale
|
||||
* mise en forme des plages horaires pour voir qu'elles sont un sous ensemble d'une date
|
||||
* quoi mettre dans le header et footer
|
||||
* mise en avant de la destination des données et du droit qui les régit
|
||||
* personnalisation super admin
|
||||
|
||||
### 7 Oct
|
||||
ici une démo naviguable https://www.sketch.com/s/5833607c-e93e-4e9b-9c7e-0614238c6d8c/a/rbYngRP/play
|
||||
|
||||
icones avec feather icons ou fork awesome pour se séparer des icones google
|
||||
|
||||
faire une page galerie de composants et typographie. la démo comporte une page prête à l'emploi pour ça. on va pouvoir mettre à jour les variables scss de couleur.
|
||||
|
||||
* points de réflexion
|
||||
* affichage du footer, menu, logo
|
||||
* teinte de gris sur les jours non activables
|
||||
* vérifier les contrastes avec tanaguru
|
||||
* lien de démo maquette https://www.sketch.com/s/5833607c-e93e-4e9b-9c7e-0614238c6d8c/a/rbYngRP/play
|
||||
|
||||
|
||||
### 14 Oct
|
||||
quelques notes de la démo du jour: * démo du parcours avec un logo
|
||||
|
||||
* ajout de définition de la date retenue par le créateur du sondage
|
||||
* comment proposer du support, des retours, de la contribution
|
||||
* réponse à un sondage, moyen de dire ok/rien pour toutes les dates
|
||||
* comment proposer les traductions
|
||||
* espace pour personnaliser le footer, les liens de support, le titre, les CGU
|
||||
* accessibilité des graphiques de résultats
|
||||
* quel affichage pour un champ en erreur, message d'explication
|
||||
|
||||
## Novembre
|
|
@ -0,0 +1,7 @@
|
|||
|
||||
# Février 2022
|
||||
- Présentation du rework design Figma, ajout de la section participation au vote.
|
||||
Prévision de version 1 pour le Lundi 14 Mars 2022.
|
||||
|
||||
# Janvier 2022
|
||||
- Rework design après tests utilisateurs, développement en pause pendant le mois.
|
|
@ -0,0 +1,34 @@
|
|||
# Traductions
|
||||
<a href="https://weblate.framasoft.org/engage/funky-framadate/">
|
||||
<img src="https://weblate.framasoft.org/widgets/funky-framadate/-/funky-framadate-front/svg-badge.svg" alt="État de la traduction" />
|
||||
</a>
|
||||
<a href="https://weblate.framasoft.org/engage/funky-framadate/">
|
||||
<img src="https://weblate.framasoft.org/widgets/funky-framadate/-/funky-framadate-front/multi-auto.svg" alt="État de la traduction" />
|
||||
</a>
|
||||
|
||||
Les chaînes sont traduites via des clés de fichiers JSON
|
||||
exemple: [src/assets/i18n/FR.json]()
|
||||
|
||||
La mise en place de weblate pour faire des traductions collaboratives a été faite.
|
||||
Vous pouvez contribuer ici https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front
|
||||
|
||||
Nous avons récupéré les chaînes de traduction du projet Framadate v1, il faudra faire un nettoyage des clés et valeurs inutilisées dans les fichiers de traduction.
|
||||
# Ajouter de nouvelles langues
|
||||
|
||||
Le Weblate effectue automatiquement des Merge Request vers Framagit, si une langue est nouvelle elle proposera de créer un fichier **nom_de_la_langue.json** dans le dossier **src/assets/i18n**
|
||||
|
||||
Pour que l'appli reconnaisse ces nouvelles langues il faut les enregistrer dans l'AppModule.
|
||||
Chaque fichier de traduction est automatiquement chargé dans le [AppModule](../../src/app/app.module.ts) avec le Loader de @ngx-translate. Il faut ensuite ajouter le code de la langue dans l'énumération du fichier **/app/core/enums/language.enum.ts** Examinez l'exemple pour rajouter votre propre traduction.
|
||||
|
||||
``` typescript
|
||||
export enum Language {
|
||||
FR = 'fr',
|
||||
BR = 'br',
|
||||
EN = 'en',
|
||||
//... etc
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
# prise en charges des traductions manquantes
|
||||
Les textes manquants seront indiqués avec "MISSING TRANSLATION FOR" et le nom de la clé demandée par le HTML.
|
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
|
||||
|
|
|
@ -0,0 +1,84 @@
|
|||
export default {
|
||||
allow_comments: true,
|
||||
allowComments: true,
|
||||
allowed_answers: [],
|
||||
areResultsPublic: true,
|
||||
choices: [],
|
||||
choices_grouped: [],
|
||||
comments: [],
|
||||
creation_date: '2021-05-18T20:40:51.385Z',
|
||||
custom_url: 'sdfsfdsfg',
|
||||
dateChoices: [
|
||||
{
|
||||
date_object: '2021-05-19T20:40:18.500Z',
|
||||
literal: '2021-05-19',
|
||||
timeSlices: {},
|
||||
},
|
||||
{
|
||||
date_object: '2021-05-20T20:40:18.500Z',
|
||||
literal: '2021-05-20',
|
||||
timeSlices: {},
|
||||
},
|
||||
{
|
||||
date_object: '2021-05-21T20:40:18.500Z',
|
||||
literal: '2021-05-21',
|
||||
timeSlices: {},
|
||||
},
|
||||
{
|
||||
date_object: '2021-05-22T20:40:18.500Z',
|
||||
literal: '2021-05-22',
|
||||
timeSlices: {},
|
||||
},
|
||||
{
|
||||
date_object: '2021-05-18T20:40:33.557Z',
|
||||
literal: '',
|
||||
timeSlices: [],
|
||||
},
|
||||
{
|
||||
date_object: '2021-05-18T20:40:33.557Z',
|
||||
literal: '',
|
||||
timeSlices: [],
|
||||
},
|
||||
{
|
||||
date_object: '2021-05-18T20:40:33.557Z',
|
||||
literal: '',
|
||||
timeSlices: [],
|
||||
},
|
||||
],
|
||||
default_expiracy_days_from_now: 60,
|
||||
description: 'RSVP',
|
||||
has_several_hours: false,
|
||||
hasSeveralHours: false,
|
||||
id: 0,
|
||||
is_zero_knowledge: false,
|
||||
isMaybeAnswerAvailable: false,
|
||||
isOwnerNotifiedByEmailOnNewComment: false,
|
||||
isOwnerNotifiedByEmailOnNewVote: false,
|
||||
kind: 'date',
|
||||
max_count_of_answers: true,
|
||||
maxCountOfAnswers: 150,
|
||||
modification_policy: 'everybody',
|
||||
owner: {
|
||||
email: 'example@example.com',
|
||||
polls: [],
|
||||
pseudo: 'pseudo',
|
||||
},
|
||||
password: '',
|
||||
stacks: [],
|
||||
timeSlices: [
|
||||
{
|
||||
literal: 'matin',
|
||||
},
|
||||
{
|
||||
literal: 'midi',
|
||||
},
|
||||
{
|
||||
literal: 'après-midi',
|
||||
},
|
||||
{
|
||||
literal: 'soir',
|
||||
},
|
||||
],
|
||||
title: 'sdfsfdsfg',
|
||||
votes: [],
|
||||
};
|
|
@ -40,12 +40,12 @@ export class PollConfig {
|
|||
myEmail: string = environment.production ? '' : 'tktest@tktest.com';
|
||||
myPolls: any = []; // list of retrieved polls from the backend api
|
||||
/*
|
||||
date specific poll, we have the choice to setup different hours (timeSlices) for all possible dates (dateList), or use the same hours for all dates
|
||||
date specific poll, we have the group_choice to setup different hours (timeSlices) for all possible dates (dateChoices), or use the same hours for all dates
|
||||
*/
|
||||
allowSeveralHours = 'true';
|
||||
// access
|
||||
visibility = 'link_only'; // visible to anyone with the link:
|
||||
voteChoices = 'only_yes'; // possible answers to a vote choice: only "yes", "yes, maybe, no"
|
||||
voteChoices = 'only_yes'; // possible answers to a vote group_choice: only "yes", "yes, maybe, no"
|
||||
creationDate = new Date();
|
||||
expirationDate = ''; // expiracy date
|
||||
voteStackId = null; // id of the vote stack to update
|
||||
|
@ -63,7 +63,7 @@ export class PollConfig {
|
|||
owner_modifier_token = ''; // key to change a vote stack
|
||||
canModifyAnswers = true; // bool for the frontend selector
|
||||
whoCanChangeAnswers = 'everybody'; // everybody, self, nobody (= just admin)
|
||||
dateList: any = otherDefaultDates; // sets of days as strings, config to set identical time for days in a special days poll
|
||||
dateList: any = otherDefaultDates; // sets of dateChoices as strings, config to set identical time for dateChoices in a special dateChoices poll
|
||||
timeList: DateChoice[] = otherDefaultDates; // ranges of time expressed as strings
|
||||
|
||||
answers: PollAnswer[] = defaultAnswers;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
export interface DateChoice {
|
||||
literal: string;
|
||||
timeList: TimeSlices[];
|
||||
literal: String;
|
||||
timeSlices: TimeSlices[];
|
||||
date_object: Date;
|
||||
}
|
||||
|
||||
|
@ -23,10 +23,10 @@ const currentMonth = new Date().getMonth();
|
|||
const currentDay = new Date().getDate();
|
||||
|
||||
export const basicSlicesOfDay: TimeSlices[] = [
|
||||
{ literal: 'matin' },
|
||||
{ literal: 'midi' },
|
||||
{ literal: 'après-midi' },
|
||||
{ literal: 'soir' },
|
||||
{ literal: '' },
|
||||
// { literal: 'midi' },
|
||||
// { literal: 'après-midi' },
|
||||
// { literal: 'soir' },
|
||||
];
|
||||
export const otherSlicesOfDay: TimeSlices[] = [
|
||||
{ literal: 'aux aurores' },
|
||||
|
@ -47,17 +47,17 @@ export const defaultDates: DateChoice[] = [
|
|||
{
|
||||
literal: `${currentYear}-${currentMonth}-${currentDay}`,
|
||||
date_object: new Date(),
|
||||
timeList: defaultTimeOfDay,
|
||||
timeSlices: defaultTimeOfDay,
|
||||
},
|
||||
{
|
||||
literal: `${currentYear}-${currentMonth}-${currentDay + 1}`,
|
||||
date_object: new Date(),
|
||||
timeList: defaultTimeOfDay,
|
||||
timeSlices: defaultTimeOfDay,
|
||||
},
|
||||
{
|
||||
literal: `${currentYear}-${currentMonth}-${currentDay + 2}`,
|
||||
date_object: new Date(),
|
||||
timeList: defaultTimeOfDay,
|
||||
timeSlices: defaultTimeOfDay,
|
||||
},
|
||||
];
|
||||
|
||||
|
@ -65,17 +65,17 @@ export const otherDefaultDates: DateChoice[] = [
|
|||
{
|
||||
literal: `${currentYear}-${currentMonth}-${currentDay}`,
|
||||
date_object: new Date(),
|
||||
timeList: defaultTimeOfDay,
|
||||
timeSlices: defaultTimeOfDay,
|
||||
},
|
||||
{
|
||||
literal: `${currentYear}-${currentMonth}-${currentDay + 1}`,
|
||||
date_object: new Date(currentYear, currentMonth, currentDay + 1),
|
||||
timeList: otherTimeOfDay,
|
||||
timeSlices: otherTimeOfDay,
|
||||
},
|
||||
{
|
||||
literal: `${currentYear}-${currentMonth}-${currentDay + 2}`,
|
||||
date_object: new Date(),
|
||||
timeList: moreTimeOfDay,
|
||||
timeSlices: moreTimeOfDay,
|
||||
},
|
||||
];
|
||||
export const defaultAnswers: PollAnswer[] = [
|
||||
|
|
|
@ -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 days as strings
|
||||
timeList: ['08:00', '08:30', '09:00'], // ranges of time expressed as strings
|
||||
answers: [
|
||||
{
|
||||
id: 0,
|
||||
text: 'no',
|
||||
},
|
||||
|
||||
{
|
||||
id: 1,
|
||||
text: 'yes',
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
text: 'maybe',
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
text: 'maybe',
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
text: 'maybe',
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
text: 'maybe',
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
text: 'maybe',
|
||||
},
|
||||
{
|
||||
id: 7,
|
||||
text: 'maybe',
|
||||
},
|
||||
{
|
||||
id: 8,
|
||||
text: 'maybe',
|
||||
},
|
||||
],
|
||||
};
|
|
@ -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,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,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,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,168 +0,0 @@
|
|||
<h1 class="title is-1"><i class="fa fa-calendar" aria-hidden="true"></i> {{ 'dates.title' | translate }}</h1>
|
||||
|
||||
<div>
|
||||
<label for="multi_hours">
|
||||
<span>
|
||||
{{ 'dates.hours_different' | translate }}
|
||||
</span>
|
||||
<select [(ngModel)]="config.allowSeveralHours" id="multi_hours" name="multi_hours">
|
||||
<option value="true">{{ 'dates.multiple.different' | translate }}</option>
|
||||
<option value="false">{{ 'dates.multiple.identical' | translate }}</option>
|
||||
</select>
|
||||
<span i18n>
|
||||
{{ 'dates.hours_each_day' | translate }}
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<button (click)="addDate()" class="btn btn--primary" id="add_date_button">
|
||||
<i class="fa fa-plus" aria-hidden="true"></i>
|
||||
{{ 'dates.add' | translate }}
|
||||
</button>
|
||||
<button
|
||||
(click)="showDateInterval = !showDateInterval"
|
||||
[ngClass]="{ active: showDateInterval }"
|
||||
class="btn btn--primary"
|
||||
id="toggle_interval_button"
|
||||
>
|
||||
<i class="fa fa-clock-o" aria-hidden="true"></i>
|
||||
{{ 'dates.add_interval' | translate }}
|
||||
</button>
|
||||
|
||||
<button (click)="emptyAll()" class="btn btn--warning" id="empty_button">
|
||||
<i class="fa fa-trash" aria-hidden="true"></i>
|
||||
{{ 'dates.empty' | translate }}
|
||||
</button>
|
||||
<section *ngIf="showDateInterval" class="date-interval">
|
||||
<!-- TODO à mettre en popup-->
|
||||
<hr />
|
||||
<h2>{{ 'dates.add_interval' | translate }}</h2>
|
||||
<p>
|
||||
{{ 'dates.interval_propose' | translate }}
|
||||
<input (change)="countDays()" [(ngModel)]="startDateInterval" type="date" />
|
||||
{{ 'dates.interval_span' | translate }}
|
||||
<input (change)="countDays()" [(ngModel)]="endDateInterval" type="date" />
|
||||
<br />
|
||||
</p>
|
||||
<button (click)="addIntervalOfDates()" class="btn btn-block btn--primary">
|
||||
<i class="fa fa-plus" aria-hidden="true"></i>
|
||||
{{ 'dates.interval_button' | translate }}
|
||||
{{ intervalDays }}
|
||||
{{ 'dates.interval_button_dates' | translate }}
|
||||
</button>
|
||||
<hr />
|
||||
</section>
|
||||
<div class="columns">
|
||||
<div class="column">
|
||||
<div class="dates-list">
|
||||
<div class="title">
|
||||
<span class="count-dates">
|
||||
{{ config.timeList.length }}
|
||||
</span>
|
||||
<span class="count-dates-txt">
|
||||
{{ 'dates.count_time' | translate }}
|
||||
(pour chaque jour)
|
||||
</span>
|
||||
</div>
|
||||
<div class="actions">
|
||||
<button
|
||||
(click)="addTime()"
|
||||
*ngIf="'false' === config.allowSeveralHours"
|
||||
class="btn btn--primary"
|
||||
id="add_time_button"
|
||||
>
|
||||
<i class="fa fa-plus" aria-hidden="true"></i>
|
||||
{{ 'dates.add_time' | translate }}
|
||||
</button>
|
||||
<button
|
||||
(click)="removeAllTimes()"
|
||||
*ngIf="'false' === config.allowSeveralHours"
|
||||
class="btn btn--warning"
|
||||
id="remove_time_button"
|
||||
>
|
||||
<i class="fa fa-trash" aria-hidden="true"></i>
|
||||
Aucune plage horaire
|
||||
</button>
|
||||
<button
|
||||
(click)="resetTimes()"
|
||||
*ngIf="'false' === config.allowSeveralHours"
|
||||
class="btn btn--warning"
|
||||
id="reset_time_button"
|
||||
>
|
||||
<i class="fa fa-refresh" aria-hidden="true"></i>
|
||||
réinitialiser
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div *ngIf="'false' === config.allowSeveralHours" class="identical-dates">
|
||||
<div *ngFor="let time of config.timeList; index as id" class="time-choice">
|
||||
<label for="timeChoices_{{ id }}">
|
||||
<i class="fa fa-clock-o" aria-hidden="true"></i>
|
||||
</label>
|
||||
<input
|
||||
[(ngModel)]="time.literal"
|
||||
name="timeChoices_{{ id }}"
|
||||
type="text"
|
||||
id="timeChoices_{{ id }}"
|
||||
/>
|
||||
<button (click)="time.timeList.splice(id, 1)" class="btn btn-warning">
|
||||
<i class="fa fa-times" aria-hidden="true"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<hr />
|
||||
<span class="count-dates title">
|
||||
{{ config.dateList.length }}
|
||||
</span>
|
||||
<span>
|
||||
{{ 'dates.count_dates' | translate }}
|
||||
</span>
|
||||
<button class="btn btn--primary" (click)="addDate()">
|
||||
{{ 'dates.add' | translate }}
|
||||
</button>
|
||||
<div *ngFor="let choice of config.dateList; index as id" class="date-choice">
|
||||
{{ id }})
|
||||
<input
|
||||
[(ngModel)]="choice.date_object"
|
||||
name="dateChoices_{{ id }}"
|
||||
id="dateChoices_{{ id }}"
|
||||
useValueAsDate
|
||||
type="date"
|
||||
/>
|
||||
<button (click)="config.dateList.splice(id, 1)" class="btn btn-warning">
|
||||
<i class="fa fa-times" aria-hidden="true"></i>
|
||||
</button>
|
||||
<button
|
||||
(click)="addTimeToDate(choice, id)"
|
||||
*ngIf="'true' === config.allowSeveralHours"
|
||||
class="btn btn--primary"
|
||||
>
|
||||
{{ 'dates.add_time' | translate }}
|
||||
</button>
|
||||
<div *ngIf="'true' === config.allowSeveralHours" class="several-times">
|
||||
<div *ngFor="let timeItem of choice.timeList; index as idTime" class="time-choice">
|
||||
<input
|
||||
[(ngModel)]="timeItem.literal"
|
||||
name="dateTime_{{ id }}_Choices_{{ idTime }}"
|
||||
id="dateTime_{{ id }}_Choices_{{ idTime }}"
|
||||
type="text"
|
||||
/>
|
||||
<button (click)="choice.timeList.splice(idTime, 1)" class="btn btn-warning">
|
||||
<i class="fa fa-times" aria-hidden="true"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<app-resume></app-resume>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a routerLink="../resume" class="btn btn--full btn--primary">
|
||||
C'est parfait!
|
||||
</a>
|
||||
<a routerLink="../../home" class="prev">
|
||||
Retour
|
||||
</a>
|
|
@ -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,134 +0,0 @@
|
|||
import { DOCUMENT } from '@angular/common';
|
||||
import { ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';
|
||||
|
||||
import { ToastService } from '../../../../src/app/core/services/toast.service';
|
||||
import { DateUtilitiesService } from '../../../../src/app/core/services/date.utilities.service';
|
||||
import { otherDefaultDates } from '../../config/defaultConfigs';
|
||||
import { ConfigService } from '../../services/config.service';
|
||||
import { BaseComponent } from '../example/base-page/base.component';
|
||||
|
||||
@Component({
|
||||
selector: 'app-dates',
|
||||
templateUrl: './dates.component.html',
|
||||
styleUrls: ['./dates.component.scss'],
|
||||
})
|
||||
export class DatesComponent extends BaseComponent implements OnInit {
|
||||
showDateInterval = false;
|
||||
startDateInterval: any;
|
||||
intervalDays: any;
|
||||
intervalDaysDefault = 7;
|
||||
endDateInterval: any;
|
||||
|
||||
constructor(
|
||||
public config: ConfigService,
|
||||
private cd: ChangeDetectorRef,
|
||||
private toastService: ToastService,
|
||||
private dateUtilities: DateUtilitiesService,
|
||||
@Inject(DOCUMENT) private document: any
|
||||
) {
|
||||
super(config);
|
||||
}
|
||||
|
||||
countDays() {
|
||||
// compute the number of days in the date interval
|
||||
if (this.endDateInterval && this.startDateInterval) {
|
||||
this.intervalDays = this.dateUtilities.dayDiff(this.endDateInterval, this.startDateInterval).toFixed(0);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* set the interval options
|
||||
*/
|
||||
ngOnInit(): void {
|
||||
const dateCurrent = new Date();
|
||||
const dateJson = dateCurrent.toISOString();
|
||||
this.startDateInterval = dateJson.substring(0, 10);
|
||||
this.endDateInterval = this.dateUtilities
|
||||
.addDaysToDate(this.intervalDaysDefault, dateCurrent)
|
||||
.toISOString()
|
||||
.substring(0, 10);
|
||||
}
|
||||
|
||||
addDate() {
|
||||
this.config.dateList.push({
|
||||
literal: '',
|
||||
date_object: new Date(),
|
||||
timeList: [],
|
||||
});
|
||||
const selector = '["choice_label_' + (this.config.dateList.length - 1) + '"]';
|
||||
this.cd.detectChanges();
|
||||
const elem = this.document.querySelector(selector);
|
||||
if (elem) {
|
||||
elem.focus();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* change time spans
|
||||
*/
|
||||
addTime() {
|
||||
this.config.timeList.push({
|
||||
literal: '',
|
||||
timeList: [],
|
||||
date_object: new Date(),
|
||||
});
|
||||
}
|
||||
|
||||
removeAllTimes() {
|
||||
this.config.timeList = [];
|
||||
}
|
||||
|
||||
resetTimes() {
|
||||
this.config.timeList = otherDefaultDates;
|
||||
}
|
||||
|
||||
/**
|
||||
* add a time period to a specific date choice,
|
||||
* focus on the new input
|
||||
* @param config
|
||||
* @param id
|
||||
*/
|
||||
addTimeToDate(config: any, id: number) {
|
||||
config.timeList.push({ literal: '' });
|
||||
const selector = '[ng-reflect-choice_label="dateTime_' + id + '_Choices_' + (config.timeList.length - 1) + '"]';
|
||||
this.cd.detectChanges();
|
||||
const elem = this.document.querySelector(selector);
|
||||
if (elem) {
|
||||
elem.focus();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* remove all input contents, does not reset to default
|
||||
*/
|
||||
emptyAll() {
|
||||
this.config.dateList.forEach((element) => {
|
||||
element.literal = '';
|
||||
element.date_object = new Date();
|
||||
element.timeList = ['', '', ''];
|
||||
});
|
||||
this.config.timeList.forEach((element) => {
|
||||
element.literal = '';
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* add all the dates between the start and end dates in the interval section
|
||||
*/
|
||||
addIntervalOfDates() {
|
||||
const newIntervalArray = this.dateUtilities.getDatesInRange(this.startDateInterval, this.endDateInterval, 1);
|
||||
|
||||
const converted = [];
|
||||
newIntervalArray.forEach((element) => {
|
||||
converted.push({
|
||||
literal: element.literal,
|
||||
date_object: element.date_object,
|
||||
timeList: [],
|
||||
});
|
||||
});
|
||||
this.config.dateList = [...new Set(converted)]; // add only dates that are not already present with a Set of unique items
|
||||
this.showDateInterval = false;
|
||||
|
||||
this.toastService.display(`les dates ont été ajoutées aux réponses possibles.`);
|
||||
}
|
||||
}
|
|
@ -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,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,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,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,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,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,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>
|