Commit Graph

495 Commits

Author SHA1 Message Date
ff3e83e9ee admin: theme page format 2019-01-21 03:08:05 +01:00
2ccc59b4fa admin: add the ability to sync only one exercice 2019-01-21 03:08:05 +01:00
dc4a4925e3 sync: refactor exercice synchronization 2019-01-21 03:08:05 +01:00
c8cbbcb84d admin: use common.js as well 2019-01-21 03:08:05 +01:00
7f2ae673d0 sync: try to remove old exercice without any player try 2019-01-21 03:08:04 +01:00
0e36a850cf Array flags can be non-ordered 2019-01-21 03:08:04 +01:00
dbf1985d25 Implement flag arrays 2019-01-21 03:08:04 +01:00
deb12052b5 sync: include headline in exercice overview, as it is difficult to retrieve otherwise 2019-01-21 03:08:04 +01:00
99024ee5ce admin: Improve public interface 2019-01-21 03:08:04 +01:00
d25462177e admin: improve claim interface 2019-01-21 03:08:04 +01:00
476f0f553c implement choices_cost 2019-01-21 03:08:04 +01:00
f9abdd23c6 Dependancy between flags 2019-01-21 03:08:04 +01:00
21697f01ca New field for exercice to display a text after exercice validation 2019-01-21 03:08:04 +01:00
87471acf98 sync: import files in markdown, relative to theme/exercice dir 2019-01-21 03:08:04 +01:00
8c95782eff Implement and display headlines in interface 2019-01-21 03:08:02 +01:00
abd7fc6bef sync: randomize imports: themes order, MCQ and UCQ choices 2019-01-21 03:07:47 +01:00
614003a7cd libfic: handle mcq in team history 2019-01-21 03:07:47 +01:00
c5b65289d3 Add new helper string related to justified MCQ flag 2019-01-21 03:07:47 +01:00
11e0b46034 pki: fix out-of-bound error when a symlink directory doesn't contain a serial 2019-01-21 03:07:47 +01:00
0f48b27a04 Avoid Atoi to avoid int convertion 2019-01-21 03:07:47 +01:00
ad6fe0394f admin: API version bump 2019-01-21 03:07:47 +01:00
3a0c892148 sync: import heading theme image 2019-01-21 03:07:45 +01:00
168e7cd636 frontend: use a menu to group scenarii 2018-12-09 20:41:43 +01:00
d7553f0392 Handle justified MCQ in admin and sync part 2018-12-08 20:35:36 +01:00
488a032eba Handle choices in UCQ (db, sync done) 2018-12-08 20:35:36 +01:00
44d335bc9f Add issue field for exercice, to be able to communicate about problem with exercice 2018-12-08 20:35:36 +01:00
0654033721 admin: use toolbar inside exercice details 2018-12-08 20:35:36 +01:00
6b54704d59 admin: can perform mass editing on exercices 2018-12-08 20:35:36 +01:00
f183985982 admin: Add exercice's tags: sync, api, interface done 2018-12-08 20:35:36 +01:00
665fd301c6 admin: avoid HTML button without type 2018-12-08 20:35:36 +01:00
1c09ae2fa8 admin: Continue refactoring of exercice view 2018-12-08 20:35:36 +01:00
06dcd0c2b7 admin: Refactor exercice page to include regexp validator 2018-12-08 20:35:36 +01:00
5eaf1926c1 Update angulasJS 2018-12-08 20:35:36 +01:00
ff56ec9fe3 libfic/flag: add validatorRegexp field 2018-12-08 20:35:32 +01:00
d21f3b0b83 Rename Exercice's Keys as Flags 2018-12-08 20:34:04 +01:00
f36e1c4e4d Stores ignorecase property for flags 2018-12-08 20:33:39 +01:00
3146e75ead sync: rehandle dependency, trivial processing 2018-12-08 20:32:36 +01:00
2a6fbd4e32 admin&sync: insert format helper in database 2018-12-08 20:32:33 +01:00
971273a185 admin: improve usability of theme edition page 2018-12-08 03:23:08 +01:00
1e2a74f3ca sync: add dependency on flag to download file 2018-12-08 03:23:08 +01:00
f9e1cf6691 sync: add a new section to allow locking file waiting flag validation 2018-12-08 03:23:08 +01:00
da2a88a3a6 sync: parse complex AUTHORS.txt as described in README 2018-12-08 03:23:08 +01:00
20dfd99ec0 admin: new route to check file on disk 2018-12-08 03:23:08 +01:00
af2fe21d73 admin: initialize directory structure and required files at launch 2018-12-08 03:23:08 +01:00
7da6f5cd0c settings: add VideosLink parameter 2018-12-08 03:23:08 +01:00
6034246015 Retrieve time through X-FIC-Time header instead of time.json 2018-12-08 03:23:08 +01:00
c33390fa80 sync: import texts as Markdown 2018-12-08 03:23:08 +01:00
be7a159815 sync: Perfers content from challenge.txt to import hints 2018-12-08 03:23:08 +01:00
9ab5738cff admin/sync: theme's name is now part of the theme's dirname 2018-12-08 03:23:07 +01:00
66391baeef sync: alert when imported file is empty 2018-12-08 03:23:07 +01:00
a6bc0727b2 admin: use spacing bootstrap utility 2018-12-08 03:23:07 +01:00
3a65363ebb admin: implement MCQ edition in interface 2018-12-08 03:23:07 +01:00
92ba880006 sync: save import_report into StaticDir 2018-12-08 03:23:07 +01:00
e6b1b932f4 sync: fix synchronized URLId 2018-12-08 03:23:07 +01:00
Thibaut
3b7d9a2a75 sync: handle new sync format: flags 2018-12-08 03:23:07 +01:00
Thibaut
af55c5af9f sync: handle new sync format: extends challenge defines 2018-12-08 03:23:07 +01:00
Thibaut
d303ecfa38 sync: handle new sync format: filenames and locations 2018-06-22 20:34:35 +02:00
492ab72dcd sync: read UTF8 string, don't expect sane encoding from imported files, just force it 2018-05-13 14:16:06 +02:00
e126743d69 sync: Update specifications
Add same constraint for hint files than files (need DIGESTS.txt).
Update flag_ucq usage (difference between value and label).
2018-05-13 14:16:06 +02:00
dcb67fba63 Docs, docs, docs! 2018-05-13 14:15:07 +02:00
12a85ee804 admin: fix bootstrap 4.0 custom checkbox 2018-05-11 15:03:11 +02:00
0d125071ef admin/sync: update README.md to introduce new syntax of the year 2018-05-11 15:03:10 +02:00
1a959862f1 admin/sync: fill README.md with synchronisation instructions for students 2018-05-11 15:03:10 +02:00
156a87abc0 admin/pki: use symlink instead of DB to associate certificate to team 2018-05-11 15:03:10 +02:00
b0f81c59d4 Update logo to FIC 2019 developers 2018-05-11 15:03:10 +02:00
bcc598ebd5 Write docs! 2018-05-11 15:03:09 +02:00
c460bb7bf5 Handle graceful http shutdown 2018-05-11 05:27:51 +02:00
0ec90b14c6 Fixes thanks to go vet 2018-05-11 05:27:51 +02:00
4b538cdea8 admin: improve exercice-list 2018-05-11 05:27:51 +02:00
a78973be29 admin: fix margin mess in menus 2018-05-11 05:27:51 +02:00
4077431ef0 admin: remove last occurence of initialName 2018-05-11 05:27:51 +02:00
faab83e037 admin: improve claim-list usability 2018-05-11 05:27:51 +02:00
00688cb996 public: news carousel for ranking 2018-05-11 05:27:51 +02:00
62aea5413e use more official blake2b checksum 2018-05-11 05:27:51 +02:00
1dcebc4eca public: new carousels in pubic interface: teams and exercices
+ fix autocarousel directive
2018-05-11 05:27:51 +02:00
68e5c4cd2b pki: improve serial number generation + fix team association
Replace math/rand by crypto/rand.

Fix big when associating certificate with leading zero: nginx prepend 0 wherehas we don't.
2018-05-11 05:27:51 +02:00
3ed8c619b1 admin: disable revoke button when already revoked 2018-05-11 05:27:51 +02:00
ff98bfa79f admin: can edit flags after creation 2018-05-11 05:27:51 +02:00
167a6ae1cb admin: fix some details about times 2018-05-11 05:27:51 +02:00
45620ba4c2 admin: try to generate events.json file 2018-05-11 05:27:51 +02:00
3aadab40b0 public interface: random fixes 2018-05-11 05:27:51 +02:00
e53bcadc05 admin: add happy hour preselect public scene 2018-05-11 05:27:51 +02:00
1110afa058 public front: can choose levels to display in levels table 2018-05-11 05:27:51 +02:00
bd924150eb public front: add new carousel displaying themes 2018-05-11 05:27:51 +02:00
6d1ef0f51c admin: new route to fill URLIds if they are not defined 2018-05-11 05:27:50 +02:00
4dbfffef7b admin: bump new API version 2018-05-11 05:27:50 +02:00
59beafb314 admin/pki: avoid some hard to read characters in password 2018-05-11 05:27:50 +02:00
c18465d498 Reserved directory for public interface now lives in public instead of _public 2018-05-11 05:27:50 +02:00
c118035c33 Introducing new PKI management 2018-05-11 05:27:50 +02:00
5b558bcf00 admin/api: bytes handlers now returned data as application/octet-stream 2018-05-11 05:27:50 +02:00
992221a6da Remove old PKI 2018-05-11 05:27:50 +02:00
e083da2f72 Remove team's initial_name, replaced by their ID 2018-05-11 05:27:50 +02:00
bbaf0ed9d9 Update to angularJS 1.6.8 2018-01-26 12:02:32 +01:00
0c540a39eb frontend: beautiful URLs 2018-01-26 12:02:32 +01:00
1eef71923a admin: new interface to manage claims 2018-01-18 12:08:12 +01:00
ca41e4edee admin/sync: defines.txt can also contains informations about hints 2018-01-18 12:08:12 +01:00
332aa90931 admin/sync: handle exercice gain from toml file: defines.txt 2018-01-18 12:08:12 +01:00
494ccb740b admin/sync: tiny refactor 2018-01-18 12:08:12 +01:00
1b852f255e admin: autofocus search fields 2018-01-18 12:08:12 +01:00
beba0a615f improve overall exercices interfaces 2018-01-18 12:08:12 +01:00
11d0fe8d1f admin/sync: handle hint files download 2018-01-18 12:08:12 +01:00
6cc40be36a admin/sync: rename Indice to Astuce 2018-01-18 12:08:12 +01:00
db9077a85c admin/sync: add stat method to importer 2018-01-18 12:08:12 +01:00
57758cd018 admin/sync: avoid error when no depends.txt exists 2018-01-18 12:08:12 +01:00
24f527ab8a admin/sync: includes mcq and ucq in full synchronization 2018-01-18 12:08:12 +01:00
935b1666ac admin/sync: Add last sync date into full_import_report 2018-01-18 12:08:12 +01:00
809d166a2d admin/sync: avoid false positive when no files are distributed 2018-01-18 12:08:12 +01:00
fc902e1063 admin/sync: import resolution movies 2018-01-18 12:08:12 +01:00
5e2e03f5e9 admin: can edit theme introductions 2018-01-18 12:08:11 +01:00
0f9c8e0335 admin: use light text on dark background in interface 2018-01-18 12:08:11 +01:00
87428909b2 admin: avoid CSRF: use POST instead of GET, mainly for synchronisation methods 2018-01-18 12:08:11 +01:00
9a1a64c41c admin: complet API and interface with files checking page 2018-01-18 12:08:11 +01:00
bc135d00c5 admin: general statistics page 2018-01-18 12:08:11 +01:00
ea3f3b709d admin/sync: import theme introductions 2018-01-18 12:08:10 +01:00
e9910fe827 admin: can delete team history item 2018-01-17 18:52:48 +01:00
bc9d27aa94 public: can control up to 9 separate displays 2018-01-17 18:52:47 +01:00
baf992bccb admin: fix camembert size overflow 2018-01-17 18:52:47 +01:00
ba88129580 Improve public screen page 2018-01-17 18:52:47 +01:00
55f87f7a67 Bring back glyphicons to life 2018-01-17 18:52:46 +01:00
4052969304 libfic/mcq: remove Kind, as we can only handle checkbox; another kind of record should be created to handle select/radio 2018-01-17 18:52:46 +01:00
eee1558dd9 admin/sync: new error on flags import 2018-01-17 18:52:46 +01:00
a0a2313924 admin: fix display of b2sums 2018-01-17 18:52:46 +01:00
e630bc3d75 Improve bootstrap 4 support 2018-01-17 18:52:46 +01:00
6329f44d42 admin/sync: escape cloud URL 2018-01-17 18:52:46 +01:00
11c8a56f14 admin/sync: handle dependancy between exercices 2018-01-17 18:52:45 +01:00
edc6ca9b7a change request log format, close to nginx ones 2018-01-17 18:52:45 +01:00
838918da66 Exercice: add overview field
This field is use as a high level description of the exercice. It will be
displayed on the public interface only: not to players.
2018-01-17 18:52:45 +01:00
48e6ba7861 admin: add route to handle quiz 2018-01-17 18:52:45 +01:00
b079f7891c admin: sync mcq/ucq 2018-01-17 18:52:45 +01:00
31b80a5b2a admin: msgbox can contains lists 2018-01-17 18:52:44 +01:00
33bf5a0f34 Update angularJS to 1.6.6 2018-01-17 18:52:44 +01:00
73080d7d0d Update bootstrap to 4.0-beta 2018-01-17 18:52:43 +01:00
978f260c64 js: compatible with angular 1.6 2018-01-17 18:52:43 +01:00
292fef7d12 admin/sync: remove old exercices no more in tree 2018-01-17 18:52:43 +01:00
68bb0e6b21 admin/sync: hide full URI from error message 2018-01-17 18:52:43 +01:00
1ab94862d0 admin/sync: can only perform one deep sync at a time 2018-01-17 18:52:43 +01:00
de3c78b2ee admin/sync: don't show error when no hints directory to import 2018-01-17 18:52:42 +01:00
bb3e4547bb admin/sync: regenerate backend after deep sync 2018-01-17 18:52:42 +01:00
92c7de942b admin: API version bump 2018-01-17 18:52:42 +01:00
8ed23ddc7a admin: localimporter can make symlink instead of copying whole files 2018-01-17 18:52:42 +01:00
d81f068eba admin: new route to display import report 2018-01-17 18:52:42 +01:00
a543be0255 admin: able to sync splitted files 2018-01-17 18:52:42 +01:00
b4057c1a2c admin/sync: generate report on full import 2018-01-17 18:52:41 +01:00
3d59042802 admin: sync.ImportFile takes Importer as first arg 2018-01-17 18:52:41 +01:00
9a9d5fcda4 libfic: Type key is now Label 2018-01-17 18:52:41 +01:00
a1c6eadbe5 Display read-only settings for information purpose 2018-01-17 18:52:41 +01:00
6ef91a92e5 Perform full deep synchronisation 2018-01-17 18:52:41 +01:00
9225038ffa admin: interface to synchronize 2018-01-17 18:52:41 +01:00
993b83f8e7 admin: can sync exercices 2018-01-17 18:52:40 +01:00
762d3a5222 admin: synchronization of exercices, files, hints and keys 2018-01-17 18:52:40 +01:00
a033f81f5f admin: new function to retrieve file content 2018-01-17 18:52:40 +01:00
38a0f4c9b5 libfic: Add new row in exercices table, to store relative path to exercice 2018-01-17 18:52:40 +01:00
bfd7126e1e tmp 2018-01-17 18:52:40 +01:00
4d1dde4528 admin: Implement theme synchronization 2018-01-17 18:52:39 +01:00
8f7de926d3 admin: Implement sychronization backends
We are now able, depending on configuration, to retrieve files from either WebDAV or local file system.
2018-01-17 18:52:39 +01:00
99975d9df4 admin: Take cloud URL, user and pass from environment 2018-01-17 18:52:39 +01:00
cd5a9d06ea Define global default value at initialisation 2018-01-17 18:52:39 +01:00
bf86e40db0 fill_exercices: we are in 2018! 2018-01-17 18:52:39 +01:00
07a372ab79 fill_teams: fix path to import team members 2018-01-17 18:52:38 +01:00
e6e6e6c206 Use BLAKE2b checksum instead of SHA-1 and SHA-512 2018-01-17 18:52:38 +01:00
9325419002 import: avoid ugly padding = at the end of base32 pathname 2018-01-17 18:52:38 +01:00
f17541e252 Move settings and started file into SETTINGS directory 2018-01-17 18:52:38 +01:00
76a4c09f37 admin: add comments 2018-01-17 18:52:37 +01:00
eefac93091 admin: display publication confirmation; show an alert when empty scene 2018-01-17 18:52:37 +01:00
f2089c4d96 admin: display team history 2018-01-17 18:52:37 +01:00
41400a8710 admin: add history route in API 2018-01-17 18:52:37 +01:00
7b2fdaf0ad admin: alert can contains yes/no buttons 2018-01-17 18:52:36 +01:00
070807b485 admin: can dismiss alert 2018-01-17 18:52:36 +01:00
df5c9532cd admin: add confirmation message box on error and some success 2018-01-17 18:52:36 +01:00
1458c71cfa admin: improve team-print view 2018-01-17 18:52:36 +01:00
88ef2f64c0 admin: ensure _public is created at startup 2018-01-17 18:52:36 +01:00
a15b285090 admin: fix form to append teams 2018-01-17 18:52:35 +01:00
82ecd0d6dd admin: Fix redirections when using baseurl 2018-01-17 18:52:35 +01:00
d03350f6b3 Fix generated JSON in case of error 2018-01-17 18:52:35 +01:00
ce46313dd1 admin: make baseurl optional 2018-01-17 18:52:35 +01:00
410ab529ae admin: don't need submission directory anymore 2018-01-17 18:52:35 +01:00
d0f588e47d Generate DNS from env 2018-01-17 18:52:34 +01:00
db210ebc5e admin: improve design of settings page 2018-01-17 18:52:34 +01:00
2235470d9d admin: manage team certificate from interface 2018-01-17 18:52:34 +01:00
2e8d28542e admin: unify API to revoke certificates 2018-01-17 18:52:34 +01:00
31c079701f admin: Add a page to list teams and members 2018-01-17 18:52:34 +01:00
6148897dac settings: add title and authors 2018-01-17 18:52:33 +01:00
963c6ff4f2 admin: fix and generalize team stats 2018-01-17 18:52:33 +01:00
dea178b7ba admin: add danger alert in select 2018-01-17 18:52:33 +01:00
1ebcdd7687 Move PKI scripts at root 2018-01-17 18:52:33 +01:00
cc3892463a Compute hint mime type in a variable and display it instead of the hint content 2018-01-17 18:52:33 +01:00
50ec3df2d6 admin: add a route to simulate time.json on backend machine 2018-01-17 18:52:33 +01:00
7597fcfe5b admin: add button and route to reset some parts 2018-01-17 18:52:32 +01:00
7478051425 admin: interface to edit teams 2018-01-17 18:52:32 +01:00
4fe641a9f5 change the way themes are stored in stats 2018-01-17 18:52:31 +01:00
17f51f5e7b admin: can force page regeneration 2018-01-17 18:52:31 +01:00
318bc4bc4d Update openssl settings 2018-01-17 18:52:31 +01:00
544bbb745c admin: new route /members/ 2018-01-17 18:52:31 +01:00
416ad65c87 admin: add public interface management 2018-01-17 18:52:31 +01:00
d4177f6228 admin: allow import of remote hint and partials remote parts 2018-01-17 18:52:31 +01:00
b8b1f14806 admin: restore function to add team and members 2018-01-17 18:52:31 +01:00
8e91e7edbe admin: sanitize use of InitialName when needed 2018-01-17 18:52:30 +01:00
4550f653ea admin: Display time before start in UI 2018-01-17 18:52:30 +01:00
67f27d3d8b Force cd into PKI directory 2018-01-17 18:52:30 +01:00
b1c4ebfe45 settings: admin interface see default params 2018-01-17 18:52:30 +01:00
ef4a738672 admin: control settings 2018-01-17 18:52:29 +01:00
b42016c74a Coefficients transit and display on UI 2018-01-17 18:52:29 +01:00
b772a22705 Hints can something else than text 2018-01-17 18:52:29 +01:00
91182b1877 admin: Improve CA API 2018-01-17 18:52:28 +01:00
1c879fe50e squash! WIP: apply a coeff on given points 2018-01-17 18:52:14 +01:00
3f80b89a4c fill_exercices: flags.txt files can use tabulation char as separator instead of : 2018-01-17 18:51:54 +01:00
f3a484fb67 fill_exercice: define HINT_COST 2018-01-17 18:51:54 +01:00
1bd403cd8c Handle file import digest 2018-01-17 18:51:53 +01:00
0b4e8a233c admin: various fixes in fill_exercices 2018-01-17 18:51:53 +01:00
119280d814 admin: can pass args to fill_exercices to limit the fill to a theme or an exercice 2018-01-17 18:51:53 +01:00
63931f73ba admin: new argument --rapidimport to speed up the import but don't ensure consistency 2018-01-17 18:51:53 +01:00
f0621fa191 [admin] Add new routes to manage hints, files and keys 2018-01-17 18:51:53 +01:00
b6782962f1 [admin] Add events 2018-01-17 18:51:53 +01:00
863070c037 [admin] Add exercices related pages 2018-01-17 18:51:53 +01:00
6a4868b9b3 [admin] Add page title 2018-01-17 18:51:52 +01:00
27ca960b2a [admin] Add ng-sanitize 2018-01-17 18:51:52 +01:00
2e718b22b6 Merge exercices API routes 2018-01-17 18:51:52 +01:00
4b4c6881c7 Bump new version API 2018-01-17 18:51:52 +01:00
3b320469b5 Use github.com/julienschmidt/httprouter instead of gorilla 2018-01-17 18:51:52 +01:00
5a0b81ba32 Merge big splitted files before import 2018-01-17 18:51:52 +01:00
7fe35c5f1c WIP misc 2018-01-17 18:51:51 +01:00
25bf34e82c Multiple hints 2018-01-17 18:51:50 +01:00
1054dd7086 admin/api: use gorilla/mux instead of Go router 2018-01-17 18:51:44 +01:00
384b6cd212 themes: don't expect authors to be dirty 2017-11-25 15:01:01 +01:00
9894a91948 admin: can give the static dir location 2017-11-25 15:01:01 +01:00
5fa19223a9 admin: can change the baseurl interface 2017-11-25 15:01:01 +01:00
aa7afe1a6a by default, only listen on localhost 2017-11-25 15:01:00 +01:00
018282d798 fill_team: improve script reliability 2017-11-25 15:01:00 +01:00
e0a1aeb053 admin: add ability to add files from local storage 2017-11-25 15:00:54 +01:00
c137969b6a Add a logger prefix 2017-04-05 01:51:20 +02:00
347f317dd9 [admin] Improve interface 2017-04-05 01:51:20 +02:00
017adfb2b1 [admin] statistic generation 2017-01-12 11:55:30 +01:00
5e74b3f7ce [admin] Can retrieves tries rate 2017-01-12 11:55:29 +01:00
bde582ad4b Don't use the default mux for handling requests 2016-10-13 19:56:31 +02:00
fc0834ea4c log.Fatal already do Exit(1) 2016-10-13 19:56:31 +02:00
ad95ce6f16 admin: display team details instead of members 2016-10-13 19:56:30 +02:00
c711f9e78e admin: add exercices/ API to access and modify exercices 2016-10-13 19:56:30 +02:00
61f96a643c Use initial name instead of ID 2016-10-13 19:56:29 +02:00
467641f4f2 Add initial_name field in DB 2016-10-13 19:56:29 +02:00
1c62f61bf0 Backend: extract file generation and team renaming in dedicated files 2016-10-13 19:56:27 +02:00
ee67788d59 Expect full downloadable file pathname (allow CDN) 2016-10-13 19:56:26 +02:00
bd0deecc89 Team colors are uint32 2016-10-13 19:56:25 +02:00
a8031452f7 New scripts to get files 2016-10-13 19:56:23 +02:00
f3a15b00e9 Too much things 2016-02-01 16:07:41 +01:00
9b293b7d32 themes.json: add stat of tries count 2016-01-25 03:08:42 +01:00
6863891ba2 Improve team interface 2016-01-24 16:49:00 +01:00
e207e90c2e my.json now contains team members, instead of teams.json 2016-01-24 14:33:16 +01:00
2b2b1a893d admin: page for team binding 2016-01-24 14:33:16 +01:00
86d36589d4 Generate 12 empty extra teams 2016-01-24 14:33:16 +01:00
645f40f0c6 format 2016-01-23 13:19:28 +01:00