Compare commits

...

257 Commits

Author SHA1 Message Date
Huaoe b5791997d8 Merge remote-tracking branch 'origin/master' into feat/push
# Conflicts:
#	volume/www/website/www/app/config/fos_elastica.yml
#	volume/www/website/www/src/AppBundle/Entity/User.php
#	volume/www/website/www/web/assetic/main.dash.talent.js
#	volume/www/website/www/web/css/styles.css
2019-09-02 10:30:32 +02:00
Huaoe d51add8f1d comment yellow bar 2019-09-02 09:31:47 +02:00
Huaoe 579c800dc9 📲 2019-08-29 16:01:46 +02:00
Huaoe 24897eab5e space 2019-08-29 15:59:52 +02:00
Sébastien GLATZ bde2c84cde Add banner for new app 2019-08-29 15:56:04 +02:00
Huaoe eee791b08f address in add company 2019-08-27 16:52:35 +02:00
Huaoe 874027d494 chat messages api done 2019-08-26 15:16:46 +02:00
Thomas Berrod 328a3821b8 message 2019-08-21 17:30:54 +02:00
Thomas Berrod 807a9351ea facebook stalling 2019-08-19 17:19:33 +02:00
Thomas Berrod 21f5912384 wkf Answer + reset password 2019-08-12 15:45:29 +02:00
Thomas Berrod 2d35cd41f1 formating 2019-08-09 15:14:52 +02:00
Thomas Berrod 04a3a0d9c7 bug fix :undefined varible 2019-08-09 15:14:13 +02:00
Thomas Berrod be7e738839 test join company 2019-08-09 14:53:32 +02:00
Thomas Berrod 67825d024d Company join on ads 2019-08-09 11:50:47 +02:00
Thomas Berrod 85ba5dcbae thomas email change 2019-08-09 09:47:42 +02:00
Thomas Berrod b914b0ea96 answer directly to status SENDED 2019-08-08 15:43:14 +02:00
Thomas Berrod 48240d5cab fix : candidature spontanée even if answered to ad 2019-08-08 15:38:05 +02:00
Thomas Berrod c1dc54d036 comment out 2019-08-07 17:09:44 +02:00
Thomas Berrod c801856bfc filtre company 2019-08-07 17:05:01 +02:00
Thomas Berrod e8c9052e35 exposing businessname on ad_detail 2019-08-06 11:18:04 +02:00
Thomas Berrod b86aa8960b bug fix on POST answer 2019-08-05 17:00:37 +02:00
Thomas Berrod c770fd16c2 $token missing 2019-08-01 17:18:31 +02:00
gregoire 36fa91f2b3 Merge branch 'feat/push' of https://git.e-declic.net/talents-tube/website into feat/push 2019-08-01 14:53:11 +02:00
gregoire ff55b409e0 variable verification + security 2019-08-01 14:53:05 +02:00
Thomas Berrod ee57f4ebaf fix echo in login facebook flow 2019-07-31 15:02:07 +02:00
Thomas Berrod cd3b2986a5 fix facebook email issue 2019-07-31 14:56:50 +02:00
Thomas Berrod 79a075a034 facebook use accesstoken for profile fetch 2019-07-31 14:37:22 +02:00
Thomas Berrod ad8581d9e7 facebook get profil PROD access code 2019-07-31 11:11:38 +02:00
Thomas Berrod 371493e01f Merge branch 'feat/push' of https://git.e-declic.net/talents-tube/website into feat/push 2019-07-30 17:12:58 +02:00
Thomas Berrod 64210c330b hard change facebook access_token 2019-07-30 17:12:54 +02:00
Thomas Berrod 088f7f2edc creation time added to JSON answers... 2019-07-30 17:12:12 +02:00
Thomas Berrod d01afc28aa bug fix offre pourvues 2019-07-30 15:27:39 +02:00
gregoire d831ffaff5 Only one answer by user / offer implementation 2019-07-30 10:15:34 +02:00
gregoire f540542aa0 Merge branch 'feat/push' of https://git.e-declic.net/talents-tube/website into feat/push 2019-07-26 10:22:00 +02:00
Thomas Berrod dd9d6f7901 Answers fixes 2019-07-25 14:56:06 +02:00
gregoire 714bd5ff87 debut Exception 2019-07-25 09:15:55 +02:00
gregoire 9cb079cbba question readme + spontaneous answer 2019-07-23 17:29:01 +02:00
gregoire 8003feec05 Post answer 2019-07-23 16:34:17 +02:00
gregoire 4616dbd65a add type annotation 2019-07-23 12:08:29 +02:00
Thomas Berrod 1ef4a57848 Merge branch 'feat/push' of https://git.e-declic.net/talents-tube/website into feat/push 2019-07-22 17:36:40 +02:00
Thomas Berrod 8bae304f0d beginnings on post answers 2019-07-22 17:36:27 +02:00
gregoire acacaae6de readme notification + public key 2019-07-22 17:29:44 +02:00
Thomas Berrod fb8239e987 groups on company / ads 2019-07-22 11:38:42 +02:00
gregoire 088e680230 change keys for push notification 2019-07-22 10:01:43 +02:00
Thomas Berrod 2fdc095c31 "company_detail" added 2019-07-19 16:53:55 +02:00
Thomas Berrod 4ca1962829 zzz off 2019-07-19 16:49:35 +02:00
Thomas Berrod 19e3b11066 Merge branch 'feat/push' of https://git.e-declic.net/talents-tube/website into feat/push 2019-07-19 16:49:04 +02:00
Thomas Berrod ef2550568f Revert "Add group serializer"
This reverts commit b50ad1de77.
2019-07-19 16:48:40 +02:00
gregoire 9845e11954 fuck 2019-07-19 16:48:40 +02:00
gregoire 0447b333ec fix problem website + test 2019-07-19 16:48:40 +02:00
Thomas Berrod fb58eaec0f company search fix 2019-07-19 16:48:40 +02:00
gregoire b145eb1628 fix company for user 2019-07-19 16:48:40 +02:00
Sébastien GLATZ d29cb07d46 Merge branch 'feat/push' of https://git.e-declic.net/talents-tube/website into feat/push 2019-07-19 16:33:23 +02:00
Sébastien GLATZ b50ad1de77 Add group serializer 2019-07-19 16:33:12 +02:00
gregoire 4cad444833 fuck 2019-07-19 16:13:20 +02:00
gregoire 94885d96bc fix problem website + test 2019-07-19 14:54:39 +02:00
gregoire 6902b005b4 Merge branch 'feat/push' of https://git.e-declic.net/talents-tube/website into feat/push 2019-07-19 14:17:47 +02:00
gregoire 2b9abe5bec fix company for user 2019-07-19 14:16:46 +02:00
Thomas Berrod 8fa429e35a Merge branch 'feat/push' of https://git.e-declic.net/talents-tube/website into feat/push 2019-07-19 14:09:32 +02:00
Sébastien GLATZ 81eb21d84b Add group serializer 2019-07-19 11:45:01 +02:00
Thomas Berrod 097dd88b5e company search fix 2019-07-19 09:21:13 +02:00
gregoire 527ab850db regex for requirements companycontroller 2019-07-18 11:04:27 +02:00
gregoire fbc2e414ea securit.yml correction + add extra serialize group 2019-07-18 09:57:07 +02:00
gregoire c81b5e9c51 Add comment in serialize answer + path security 2019-07-18 09:30:32 +02:00
gregoire 57e5c2eff6 Merge branch 'feat/push' of https://git.e-declic.net/talents-tube/website into feat/push 2019-07-17 17:12:58 +02:00
gregoire 6e29500a1b ORM pdf schema + serialize candidature 2019-07-17 17:12:53 +02:00
Sébastien GLATZ 23423cd831 Merge branch 'feat/push' of https://git.e-declic.net/talents-tube/website into feat/push 2019-07-17 14:41:43 +02:00
Sébastien GLATZ 3e2827d624 Add group serializer 2019-07-17 14:41:35 +02:00
Thomas Berrod 08bb1ea10e bug fix : search company on brandName 2019-07-17 12:09:14 +02:00
Thomas Berrod f1e23410d4 bug fix : to lower search 2019-07-17 11:13:52 +02:00
Thomas Berrod 922f526ddd bug fix : consecutive where setparrameter distinct id 2019-07-17 11:12:28 +02:00
Thomas Berrod 9a4de2f6ca company emphasis 2019-07-17 10:13:10 +02:00
gregoire a4995ac616 Reset Password API 2019-07-17 10:08:49 +02:00
Sébastien GLATZ 8f70911b2e Merge branch 'feat/push' of https://git.e-declic.net/talents-tube/website into feat/push 2019-07-17 08:37:08 +02:00
Sébastien GLATZ 54c255cf33 Add group serializer to is_promoted (pourvue) 2019-07-17 08:37:00 +02:00
gregoire 553727cbe1 Add UpdateUser function for API 2019-07-16 15:49:35 +02:00
gregoire 783485b96e merge emphasis 2019-07-16 11:33:15 +02:00
gregoire f01215b074 countAds implementation 2019-07-16 11:25:29 +02:00
Thomas Berrod e65afe3b24 emphasis 2019-07-16 11:18:50 +02:00
Thomas Berrod c3696934e9 push params prod config 2019-07-16 09:20:06 +02:00
Thomas Berrod 12cc628f14 preprod conf 2019-07-11 11:07:21 +02:00
Thomas Berrod c63302acbf Merge branch 'feat/push' of https://git.e-declic.net/talents-tube/website into feat/push 2019-07-11 10:27:18 +02:00
Sébastien GLATZ 6aa736a4a2 Update serialized field 2019-07-11 10:23:56 +02:00
Sébastien GLATZ 05ceeb440e Add countAds 2019-07-11 10:23:56 +02:00
Sébastien GLATZ 539878e73b Merge branch 'feat/push' of https://git.e-declic.net/talents-tube/website into feat/push 2019-07-09 09:26:29 +02:00
Thomas Berrod 1c7a1732a6 slug service fix 2019-07-08 18:37:50 +02:00
Thomas Berrod ac975c7604 fix findUserWithFacebookEmailAndAttach 2019-07-08 18:26:27 +02:00
Thomas Berrod 56d2f199b5 remove dumps 2019-07-08 18:22:17 +02:00
Thomas Berrod 1a3955a605 composer update 2019-07-08 14:50:37 +02:00
Sébastien GLATZ e69b5d80cd Update API data 2019-07-08 10:02:14 +02:00
Thomas Berrod 8706d63867 api register + twig loginbutton logical fix 2019-07-05 15:26:11 +02:00
Thomas Berrod 8c0c1f7720 return $data->elements[0]->{'handle~'}->emailAdress; 2019-07-04 17:41:12 +02:00
Thomas Berrod 2628883568 typo 2019-07-04 17:33:29 +02:00
Thomas Berrod 8918b3708b linkedin double request for email 2019-07-04 17:19:58 +02:00
Thomas Berrod f75989129e docker file + facebook photo 2019-07-03 17:11:27 +02:00
Thomas Berrod 0b563e9658 security config + fetch user 2019-06-21 16:28:03 +02:00
Thomas Berrod 9e70ee745b removed proxy generation during dev 2019-06-20 17:24:58 +02:00
Thomas Berrod 3bdc496c03 company groups stable 2019-06-20 12:12:46 +02:00
Thomas Berrod 1cccee38b8 Rest auth facebook linkedin Beta 2019-06-17 17:36:09 +02:00
Thomas MONCHICOURT e613fa78fb #9766 texte 2019-06-14 11:42:38 +02:00
Thomas MONCHICOURT a552221f60 #9792 déactivation linkedIn 2019-06-14 11:34:33 +02:00
Thomas MONCHICOURT 0b7db51bfb Feat #9689 texttrack=fr forcé 2019-06-05 16:08:21 +02:00
Thomas Berrod a97a794dec media upload config 2019-06-05 11:59:24 +02:00
Sébastien GLATZ 1c2a944ca5 Merge branch 'feat/push' of https://git.e-declic.net/talents-tube/website into feat/push
# Conflicts:
#	conf/build/php/Dockerfile
2019-05-29 14:31:13 +02:00
Sébastien GLATZ 08555463fd Ajout groupes de sérialization 2019-05-29 14:24:03 +02:00
Thomas Berrod a8c04f48b0 #9658 first upload Answer controller 2019-05-23 15:04:47 +02:00
Thomas Berrod 0c86cd00ac #9658 : first media upload 2019-05-23 15:04:17 +02:00
Sébastien GLATZ 60365023ac Feat : Ajout groupe sérialisation pour API 2019-05-22 10:06:24 +02:00
Sébastien GLATZ 2c40323718 Fix : Modification configurations base + libpng-dev 2019-05-22 09:57:30 +02:00
Thomas Berrod 76a028cd88 Fix: typo + company search 2019-05-17 15:38:59 +02:00
Thomas Berrod 52ad0cf32e Fix : typo 2019-05-16 15:19:51 +02:00
Thomas Berrod 7e94b1e104 delete makefile backup 2019-05-16 10:18:14 +02:00
Thomas Berrod 54e971d918 make file windows compat 2019-05-16 10:17:43 +02:00
Thomas Berrod 3a82158fe3 deletes 2019-05-16 10:14:05 +02:00
Thomas Berrod 34b3e260bc Merge branch 'feat/api-rest' into feat/push
# Conflicts:
#	Makefile
2019-05-16 10:13:28 +02:00
Thomas Berrod 362006818e makefile 2019-05-16 09:58:18 +02:00
Thomas Berrod d6f8941e47 unknown deletes 2019-05-16 09:46:59 +02:00
Thomas MONCHICOURT 4faedfa9b9 Fix : temporary fix to display upload response message instead of preview 2019-04-12 12:09:03 +02:00
Thomas MONCHICOURT 77989ab3d8 fix: removed space 2019-04-11 15:32:53 +02:00
Thomas MONCHICOURT 8b0b253f4a fix videojs.record createObjectURL deprecation 2019-02-07 15:05:05 +01:00
Thomas MONCHICOURT 560669f316 Deprecation Fix #8730 @14 2019-02-06 15:09:00 +01:00
Thomas Berrod 0d0c725aaf dernier travaux sur notif : voir les todos 2019-02-05 12:07:41 +01:00
Thomas MONCHICOURT ea11a42efd Fix : path mail annonce 2019-01-31 10:24:24 +01:00
Thomas MONCHICOURT 0be29b5255 Fix : probleme lien dans mail réponse talent 2019-01-31 10:19:51 +01:00
Thomas MONCHICOURT 6f539f0605 Feat : ajout d’un lien dashboard #8703 @0h20 2019-01-30 17:13:24 +01:00
Thomas MONCHICOURT e91582f846 Fix : status recommendation in dashboard 2018-12-10 10:03:23 +01:00
Thomas MONCHICOURT e72b86c95a Feat : Suite #8027 2018-11-22 09:50:46 +01:00
Thomas MONCHICOURT 58feccb9d0 Feat : suite #8027 @0h10 2018-11-22 09:48:24 +01:00
Thomas MONCHICOURT 09484f45ca Merge branch 'master' of https://git.e-declic.net/talents-tube/website 2018-11-22 09:36:05 +01:00
Thomas MONCHICOURT 39bf55c815 Feat : demande spe pour lid 53 #8027 @0h15 2018-11-22 09:36:01 +01:00
Maxime Thévenot e8f7cce07b Merge branch 'develop' 2018-10-31 14:14:30 +01:00
Author Name d56dc27fe1 Feat : Update js with assetic 2018-10-31 14:13:19 +01:00
Maxime Thévenot 2ee49175ef Conf : update parameters preprod according to server 2018-10-31 14:10:58 +01:00
Maxime Thévenot 6fc93372a7 Conf : update parameters preprod according to server 2018-10-31 14:05:55 +01:00
Maxime Thévenot 6f0379c7aa Feat : update carrousel to not loop with less than 3 item 2018-10-31 12:18:57 +01:00
Maxime Thévenot 2491b253c6 Fix : update css for select visibility 2018-10-11 11:25:45 +02:00
Thomas MONCHICOURT df3bb979e9 Merge branch 'feat/choose-thumbnail' into develop 2018-10-03 16:51:04 +02:00
Thomas MONCHICOURT bc75bb7afc Feat: Mise en place du changement de vignette #7354 @2h30 2018-10-03 16:50:29 +02:00
Thomas MONCHICOURT ef5f0e81da Fix : birthdate null 2018-10-03 12:17:40 +02:00
Thomas MONCHICOURT 88ceb319af Merge branch 'master' into develop 2018-10-03 11:32:36 +02:00
Thomas MONCHICOURT f314a614fe Fix: probleme set date anniversaire Facebook 2018-10-03 11:26:50 +02:00
Thomas MONCHICOURT b19498ef46 Feat: mise en place du choix de la vignette #7354 @2h 2018-10-03 11:07:51 +02:00
Thomas MONCHICOURT 6313039500 Feat : modification talent en home #7339 @1h 2018-09-26 14:17:28 +02:00
Thomas MONCHICOURT f098e4b6b8 Merge branch 'develop' 2018-09-26 10:46:39 +02:00
Thomas MONCHICOURT ed70e8c940 Fix: delete dump 2018-09-26 10:46:24 +02:00
Thomas MONCHICOURT 9762aee7ae Feat : ajout nouveau type search #7317 @0h15 2018-09-25 16:40:34 +02:00
Thomas MONCHICOURT d0fd19d760 Fix : style dashboard 2018-09-25 16:35:08 +02:00
Thomas MONCHICOURT 3ccf2b9604 Feat : test elastic #7317 @0h30 2018-09-25 16:34:29 +02:00
Thomas MONCHICOURT babfa473fb Merge branch 'master' into develop
# Conflicts:
#	volume/www/website/www/web/css/styles.css
#	volume/www/website/www/web/css/styles.css.map
#	volume/www/website/www/web/sass/base/_mtgenerics.scss
2018-09-25 16:13:31 +02:00
Thomas MONCHICOURT 0bcd46fde8 Fix : correction affichage mediatheque 2018-09-25 16:11:29 +02:00
Thomas MONCHICOURT c976bb6d21 Feat : Modification recherche par tag #7317 @0h20 2018-09-25 15:59:34 +02:00
Thomas MONCHICOURT d301c3b029 Feat : Etat de visionnage d’une candidature par le talent #7229 @0h30 2018-09-25 15:33:24 +02:00
Thomas MONCHICOURT c5a1aebecc Merge branch 'feat/research-keywords' into develop 2018-09-25 14:59:26 +02:00
Thomas MONCHICOURT e516e45cb0 Feat: ajout lien + css #7317 @0h30 2018-09-25 14:58:51 +02:00
Thomas MONCHICOURT 441304c363 Fix : probleme save data 2018-09-24 17:22:51 +02:00
Thomas MONCHICOURT 3399a82379 Fix : Bouton lien page detail territoire 2018-09-24 17:02:25 +02:00
Thomas MONCHICOURT 4e111ae3cd Fix : re prestashop 2018-09-24 16:59:31 +02:00
Thomas MONCHICOURT ed669974a1 Fix : delete event for prestashop 2018-09-24 16:56:01 +02:00
Thomas Berrod a5742f2c1e typo sur offstet 2018-09-24 16:33:55 +02:00
Thomas MONCHICOURT 02c68a48c9 Fix : edition image progile 2018-09-24 16:12:54 +02:00
Thomas MONCHICOURT cce45d834f Feat : Mots clefs cliquable #7317 @2h 2018-09-24 15:32:50 +02:00
Thomas MONCHICOURT 0373f01013 Fix: remove utf8 encode for months 2018-09-20 16:49:19 +02:00
Thomas MONCHICOURT cbcf51f93d Fix : language mois 2018-09-20 16:44:41 +02:00
Thomas MONCHICOURT dffb439bb3 Fix : language date 2018-09-20 16:39:46 +02:00
Thomas MONCHICOURT 4b2c5fc222 Fix : bouton de lien page entreprise 2018-09-20 16:31:10 +02:00
Thomas MONCHICOURT 13073d59e4 Fix : set locales 2018-09-20 14:05:50 +02:00
Thomas MONCHICOURT 8e995cef82 Fix : modal picture profil 2018-09-20 12:23:10 +02:00
Thomas Berrod 57b7db7f43 styling notification toast 2018-09-20 11:51:17 +02:00
Thomas MONCHICOURT 349bc309bd Fix: lien pour voir plus de mots clefs 2018-09-20 11:46:33 +02:00
Thomas MONCHICOURT 492d2687c5 Fix : modification affichage mois 2018-09-20 11:36:27 +02:00
Thomas MONCHICOURT 2fa50e3d5b Fix : changin month save 2018-09-20 11:05:25 +02:00
Thomas MONCHICOURT e6e00c1659 Merge branch 'develop'
# Conflicts:
#	volume/www/website/www/web/css/styles.css.map
2018-09-20 10:33:57 +02:00
Thomas MONCHICOURT db7cc56e3a Feat: Required 2018-09-20 10:21:55 +02:00
Thomas MONCHICOURT 7b5e7bc53a Feat: dernière correction #7104 @0h15 2018-09-20 10:03:03 +02:00
Thomas Berrod db07bc80c8 analytics plug on push 2018-09-19 13:57:12 +02:00
Thomas MONCHICOURT 0d7c6466ec Fix : header et footer tuto 2018-09-19 11:24:37 +02:00
Thomas MONCHICOURT 27ecf6f81c Fix : correction page talent 2018-09-19 09:25:39 +02:00
Thomas Berrod 1e03451b37 notification param in talent/me + delayed trigger on 3 times entreprise viewed 2018-09-18 16:48:56 +02:00
Thomas MONCHICOURT 55eb1ed363 Feat : dernier correctif page talent #7104 @2h 2018-09-18 16:34:46 +02:00
Thomas MONCHICOURT 6ddf703f9e Fix : correction 2018-09-18 15:37:56 +02:00
Thomas MONCHICOURT 6f8671bc8f Feat : correctin design #7104 @1h30 2018-09-18 12:17:30 +02:00
Maxime Thévenot b1185018de Feat : composer update after merge 2018-09-17 12:30:04 +02:00
Maxime Thévenot 5d8357231c Conf : add gmp to php container 2018-09-17 12:29:42 +02:00
Thomas Berrod 5474397f5f Merge branch 'feat/api-rest' of https://git.e-declic.net/talents-tube/website into feat/api-rest 2018-09-17 10:49:18 +02:00
Maxime Thévenot aeb4328e23 Merge branch 'feat/api-rest' into feat/push
# Conflicts:
#	volume/www/website/www/app/AppKernel.php
#	volume/www/website/www/app/config/config.yml
#	volume/www/website/www/app/config/parameters-dev.yml
#	volume/www/website/www/app/config/parameters.yml.dist
#	volume/www/website/www/app/config/routing.yml
#	volume/www/website/www/app/config/services.yml
#	volume/www/website/www/composer.json
#	volume/www/website/www/composer.lock
#	volume/www/website/www/vendor/composer/autoload_files.php
#	volume/www/website/www/vendor/composer/autoload_psr4.php
#	volume/www/website/www/vendor/composer/autoload_static.php
#	volume/www/website/www/vendor/composer/installed.json
#	volume/www/website/www/vendor/ocramius/package-versions/src/PackageVersions/Versions.php
#	volume/www/website/www/web/css/styles.css
2018-09-17 10:29:41 +02:00
Maxime Thévenot 44d0711dc1 Feat : Add company and answer api base 2018-09-17 10:15:12 +02:00
Thomas Berrod 9f6c1a740f Merge branch 'feat/api-rest' of https://git.e-declic.net/talents-tube/website into feat/api-rest 2018-09-17 09:04:25 +02:00
Thomas MONCHICOURT 68802a2a4d Feat : ajout de fonctionnalité admin #7249 @0h15 2018-09-12 15:15:03 +02:00
Thomas MONCHICOURT ceb2f7f7ce Feat : correction mineur #7244 @0h20 2018-09-12 14:22:02 +02:00
Thomas MONCHICOURT 4da427bac0 Feat : test unit test 2018-09-12 09:36:33 +02:00
Thomas MONCHICOURT 766e57e849 Fix : hide career default form 2018-09-11 10:51:45 +02:00
Thomas MONCHICOURT 3c3b8c8428 Fix : Get birthday on null 2018-09-11 10:46:45 +02:00
Thomas MONCHICOURT 49d47b70f6 Feat : ajout d’un status visionnée candidature talent #7229 @0h15 2018-09-10 15:56:01 +02:00
Thomas MONCHICOURT 49cc496661 Feat : changer les photos de temoignages #7220 @0h10 2018-09-10 15:13:01 +02:00
Thomas MONCHICOURT 717e57dc81 Fix: problem edition carrriere 2018-09-10 14:50:53 +02:00
Thomas Berrod 8063c8479e feat:adding quotes to makefile 2018-09-10 09:53:07 +02:00
Thomas Berrod 56444f6363 feat: update coriolis json 2018-09-10 09:04:00 +02:00
Thomas MONCHICOURT 9e7ef88bea Feat: refactor form #7104 @1h 2018-09-07 14:59:44 +02:00
Maxime Thévenot 04229b0781 Feat : implement token generation with facebook id 2018-09-07 14:31:32 +02:00
Thomas MONCHICOURT a46d69f190 Feat : mise en place suppression d’une candidature 2018-09-07 13:35:12 +02:00
Thomas MONCHICOURT 3f7c0803f1 Refactor: Formulaire independant #7104 @2h 2018-09-07 11:12:25 +02:00
Thomas MONCHICOURT c99b3d2236 Merge branch 'master' into develop
# Conflicts:
#	volume/www/website/www/web/assetic/main.dash.talent.js
#	volume/www/website/www/web/css/styles.css
#	volume/www/website/www/web/css/styles.css.map
2018-09-07 09:42:31 +02:00
Thomas MONCHICOURT 580bf6ecb4 Refactor: experience 2018-09-07 09:41:01 +02:00
Maxime Thévenot 4edfae9f1c Feat : implement JWT for api authentication 2018-09-07 08:57:44 +02:00
Thomas MONCHICOURT 26a41d4eb6 Fix : modal tuto #7202 @1h 2018-09-06 16:52:39 +02:00
Thomas MONCHICOURT 82bf5fa76f Feat : correction affichage 2018-09-06 16:12:01 +02:00
Thomas MONCHICOURT 3fb8262649 Feat: correction review correntin #7104 @3h30 2018-09-06 14:22:53 +02:00
Maxime Thévenot 870654c850 Feat : update ads representation 2018-09-06 09:48:12 +02:00
Maxime Thévenot 9413202660 WIP : test authentication for api 2018-09-06 08:20:27 +02:00
Maxime Thévenot 215e325a8c Feat : configure and test api on add 2018-09-06 08:20:09 +02:00
Maxime Thévenot 9f8682c896 Feat : Install hateoas bundle 2018-09-06 08:19:16 +02:00
Thomas MONCHICOURT feca14ae4d Fix : ajouter au menu et changement status direct #7177 @0h10 2018-09-05 12:26:58 +02:00
Thomas MONCHICOURT 33c1221cb2 Feat : lister les candidatures en admin #7177 @1h 2018-09-05 12:16:56 +02:00
Thomas MONCHICOURT f4f9191bd1 Fix : retour corentin profile talent 2018-09-05 11:03:29 +02:00
Thomas MONCHICOURT 9709b69125 Fix : Condition pour éviter erreur JS 2018-09-04 15:29:29 +02:00
Thomas MONCHICOURT 6f19c7df97 Feat : Mise en place de la gestion des langues #7104 @3h 2018-09-04 09:32:23 +02:00
Thomas Berrod ff33129d80 merge windows makefile 2018-09-03 17:28:40 +02:00
Thomas Berrod 1b76548c91 Merge branch 'push_feature' of https://git.e-declic.net/talents-tube/website into push_feature 2018-09-03 17:18:52 +02:00
Thomas Berrod 9578eb96c9 profil & tags ùatching push 2018-09-03 17:14:46 +02:00
Thomas Berrod c4af665c26 general + email + profil completeness 2018-08-31 17:36:01 +02:00
Maxime Thévenot c48fe53e6a Feat : install pagerfante bundle and update api 2018-08-31 16:44:42 +02:00
Maxime Thévenot d69f32c657 Feat : update config.yml for fosrest and add some api method 2018-08-31 12:07:29 +02:00
Maxime Thévenot dba776d15f Update : symfony to 3.4 + vendors 2018-08-31 11:26:11 +02:00
Maxime Thévenot bb3ed610ab WIP : testing api 2018-08-31 10:40:47 +02:00
Thomas MONCHICOURT 7779cdbf66 Fix : modification style apres merge 2018-08-30 16:30:57 +02:00
Thomas MONCHICOURT 95d58a14e0 Merge branch 'feat/profile-talent' into develop
# Conflicts:
#	volume/www/website/www/src/AppBundle/Form/TalentProfileType.php
#	volume/www/website/www/web/css/styles.css
2018-08-30 16:29:04 +02:00
Thomas MONCHICOURT f8db5a4b1c Feat : Videotheque #5925 @1h 2018-08-30 16:22:00 +02:00
Thomas MONCHICOURT ca23af2623 Feat : edition page talent #7104 @2h 2018-08-29 17:18:49 +02:00
Maxime Thévenot 75145d9e1c Feat : install FOSRestBundle 2018-08-29 15:26:50 +02:00
Maxime Thévenot b885e6866c Feat : install jmsserializer bundle 2018-08-29 14:42:12 +02:00
Thomas MONCHICOURT b13ebb9d0f Fix: birtday date error on save 2018-08-29 14:20:53 +02:00
Maxime Thévenot dbb06990d5 Conf: update uglify-js to uglify-es 2018-08-29 12:01:23 +02:00
Maxime Thévenot f8c0b75ec2 Conf : update docker config for windows compatbility 2018-08-29 11:56:57 +02:00
Thomas MONCHICOURT b54d162032 Merge branch 'feat/videotheque' into feat/profile-talent
# Conflicts:
#	volume/www/website/www/app/Resources/views/base.html.twig
#	volume/www/website/www/app/Resources/views/base_dashboard.html.twig
#	volume/www/website/www/web/assetic/main.base.dash.js
#	volume/www/website/www/web/assetic/main.dash.company.js
#	volume/www/website/www/web/assetic/main.js
#	volume/www/website/www/web/css/styles.css.map
2018-08-28 16:50:51 +02:00
Thomas MONCHICOURT 78c15596cd feat : Page profile 2018-08-28 15:58:20 +02:00
Maxime Thévenot 74f9c7b884 Fix : update registration template to fix button 2018-08-28 15:29:04 +02:00
Maxime Thévenot 76f557501e Fix : update registration template to fix button 2018-08-28 15:27:09 +02:00
Thomas Berrod dca95338a9 push localhost only 2018-08-28 15:12:51 +02:00
Thomas MONCHICOURT 5bb76aa419 feat : page talent 2018-08-28 12:29:06 +02:00
Maxime Thévenot 2eb399776b Fix : hover color on territory title 2018-08-28 11:44:22 +02:00
Maxime Thévenot 8986ae738a Fix : typo in wording and redirect castre mazamet 2018-08-28 11:29:07 +02:00
Thomas MONCHICOURT d5532926aa Feat : Front + css page talent #7104 @3h 2018-08-27 17:26:35 +02:00
Thomas MONCHICOURT 7dfaf01705 Fix : correction template pour message direct au talent 2018-08-27 12:22:26 +02:00
Thomas MONCHICOURT 1707d28fc7 Feat: Nouveaux champs talent + formations #7104 @5h 2018-08-27 12:01:03 +02:00
Thomas MONCHICOURT a4631872e0 Fix : https on graph picture facebook 2018-08-24 12:24:04 +02:00
Thomas MONCHICOURT 39143908af Feat : careers #7104 @2h 2018-08-24 12:16:16 +02:00
Thomas MONCHICOURT b2b075ffe7 Feat : macro form pour prototype career 2018-08-23 17:06:48 +02:00
Thomas MONCHICOURT 91c7ebb145 Feat : form experience #7104 @2h 2018-08-23 16:38:13 +02:00
Thomas MONCHICOURT 66e5fd4c6c Feat : experiences 2018-08-23 16:06:14 +02:00
Thomas MONCHICOURT 80f8ad7043 Merge branch 'master' into feat/profile-talent
# Conflicts:
#	volume/www/website/www/web/css/styles.css.map
#	volume/www/website/www/web/js/dropzone.js
2018-08-23 15:49:01 +02:00
Thomas MONCHICOURT e1c3f77e68 Feat : dropzone reload 2018-08-23 14:56:07 +02:00
Thomas MONCHICOURT 14cc09b25f Merge branch 'develop' into feat/profile-talent
# Conflicts:
#	volume/www/website/www/src/AppBundle/Controller/TalentController.php
#	volume/www/website/www/src/AppBundle/Form/TalentProfileType.php
#	volume/www/website/www/web/css/styles.css.map
2018-08-23 14:23:16 +02:00
Thomas MONCHICOURT bdbe45e1a2 Feat : Formulaire compétence #7104 @1h30 2018-08-22 11:01:34 +02:00
Thomas MONCHICOURT 66af01c050 Feat : gestion des experiences #7104 @3h 2018-08-21 17:27:53 +02:00
Thomas MONCHICOURT a38b63f87f Feat : form career pour talents #7104 @5h 2018-08-21 11:01:25 +02:00
Thomas MONCHICOURT 2a2ef6673d feat : Videotheque + lien partage #5925 @2h 2018-07-24 16:55:52 +02:00
Thomas MONCHICOURT f3d618b640 Feat: modificiation videotheque #5925 @1h20 2018-07-23 16:59:57 +02:00
13635 changed files with 476902 additions and 153269 deletions
+2
View File
@@ -10,3 +10,5 @@
volume/www/website/.idea
/volume/www/website/store/themes/talentstube-20170413/cache/*
/volume/www/website/store/img/tmp/*
volume/www/website/www/app/Resources/views/default/index.html.twig
TODO
+16 -5
View File
@@ -2,7 +2,7 @@
CLIENT=tt-website
DOCKERCOMPOSE := $(shell command -v docker-compose 2> /dev/null)
USAGE := Usage: make ENV={prod|preprod|dev} {docker-build|docker-start|docker-stop|docker-restart}
USAGE := Usage: make ENV={prod|preprod|dev} {SYS=windows|linux} {docker-build|docker-start|docker-stop|docker-restart}
ifndef DOCKERCOMPOSE
$(error docker-compose is not available)
@@ -14,10 +14,17 @@ $(info $(USAGE))
$(error Exiting)
endif
SYS=linux
DC_OVERRIDE := $(shell test -e conf/docker-compose.override.yml && echo "--file conf/docker-compose.override.yml")
DC_OVERRIDE_ENV := $(shell test -e conf/docker-compose.$(ENV).yml && echo "--file conf/docker-compose.$(ENV).yml")
DC=ENV=$(ENV) CLIENT=$(CLIENT) $(DOCKERCOMPOSE) --project-name "$(CLIENT)_$(ENV)" --file conf/docker-compose.yml $(DC_OVERRIDE) $(DC_OVERRIDE_ENV)
ifeq ($(SYS),linux)
DC=ENV=$(ENV) CLIENT=$(CLIENT) "$(DOCKERCOMPOSE)" --project-name "$(CLIENT)_$(ENV)" --file conf/docker-compose.yml $(DC_OVERRIDE) $(DC_OVERRIDE_ENV)
else
DC=ENV=$(ENV) CLIENT=$(CLIENT) "$(DOCKERCOMPOSE)" --project-name "$(CLIENT)_$(ENV)" --file conf/docker-compose.win.yml $(DC_OVERRIDE) $(DC_OVERRIDE_ENV)
endif
default:
$(info $(USAGE))
@@ -77,8 +84,8 @@ db-backup-store:
db-restore-all: db-restore-website db-restore-store
db-restore-website:
@echo "Restoring file to database (backup/store-mysql.sql)"
@cat backup/postgres.sql | docker exec -i $(CLIENT).postgres.$(ENV) psql --dbname database -U postgres
@echo "Restoring file to database (backup/postgres.sql)"
@cat backup/postgres.sql | docker exec -i $(CLIENT).postgres.$(ENV) psql --dbname database -U user
@docker cp backup/mongo $(CLIENT).mongo.$(ENV):/
@docker exec -t $(CLIENT).mongo.$(ENV) mongorestore --drop --gzip --db=tt_history /mongo/tt_history
@@ -95,7 +102,7 @@ entities:
@docker exec -i $(CLIENT).php.$(ENV) su www-data --shell=/bin/bash -c "/home/www/website/www/bin/console doctrine:generate:entities AppBundle"
db-diff:
@docker exec -i $(CLIENT).php.$(ENV) su www-data --shell=/bin/bash -c "/home/www/website/www/bin/console doctrine:migrations:diff"
@docker exec -i $(CLIENT).php.$(ENV) su www-data -c "/home/www/website/www/bin/console doctrine:migrations:diff"
db-migrate:
@docker exec -i $(CLIENT).php.$(ENV) su www-data --shell=/bin/bash -c "/home/www/website/www/bin/console doctrine:migrations:migrate"
@@ -104,3 +111,7 @@ db-deploy: db-diff db-migrate
es-populate:
@docker exec -i $(CLIENT).php.$(ENV) su www-data --shell=/bin/bash -c "/home/www/website/www/bin/console fos:elastica:populate"
sys:
@echo $(SYS)
@echo $(DC)
+3
View File
@@ -0,0 +1,3 @@
Todo:
☐ Item
+10 -4
View File
@@ -2,8 +2,7 @@ FROM php:7.1-fpm
ENV TERM=xterm
RUN echo 'deb http://ftp.debian.org/debian jessie-backports main' > /etc/apt/sources.list.d/debian-backports.list
RUN printf "deb http://archive.debian.org/debian/ jessie main\ndeb-src http://archive.debian.org/debian/ jessie main\ndeb http://security.debian.org jessie/updates main\ndeb-src http://security.debian.org jessie/updates main" > /etc/apt/sources.list.d/debian-backports.list
RUN apt-get clean \
&& apt-get update \
&& apt-get install -y lsof nano less git locales
@@ -12,7 +11,14 @@ RUN echo 'fr_FR.UTF-8 UTF-8' > /etc/locale.gen \
&& /usr/sbin/locale-gen
RUN apt-get update \
&& apt-get install -y ffmpeg exiftool graphviz libfreetype6-dev libjpeg62-turbo-dev libpng12-dev libmcrypt-dev libxslt-dev libicu-dev libxml2-dev libpq-dev libgeoip-dev libedit-dev mysql-client nodejs npm \
&& apt-get -y install libgmp-dev \
&& ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/local/include/gmp.h \
&& docker-php-ext-install gmp \
&& docker-php-ext-configure gmp
RUN apt-get update \
&& apt-get install -y ffmpeg exiftool graphviz libfreetype6-dev libjpeg62-turbo-dev libpng-dev libmcrypt-dev libxslt-dev libicu-dev libxml2-dev libpq-dev libgeoip-dev libedit-dev mysql-client nodejs npm \
&& apt-get install -y --no-install-recommends libmagickwand-dev \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j4 gd mcrypt xsl zip intl gettext soap pdo_pgsql pdo_mysql mysqli pgsql json readline opcache \
@@ -40,7 +46,7 @@ RUN curl --location --silent --show-error https://symfony.com/installer -o /usr/
RUN curl --location --silent --show-error https://s3.amazonaws.com/files.drush.org/drush.phar -o /usr/local/bin/drush \
&& chmod a+x /usr/local/bin/drush
RUN (npm install -g uglify-js) \
RUN (npm install -g uglify-es) \
&& ln -s /usr/bin/nodejs /usr/local/bin/node
RUN apt-get clean \
+2 -2
View File
@@ -10,7 +10,7 @@ RUN echo 'fr_FR.UTF-8 UTF-8' > /etc/locale.gen \
&& /usr/sbin/locale-gen
RUN apt-get update \
&& apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng12-dev libmcrypt-dev libxslt-dev libicu-dev libxml2-dev libpq-dev libgeoip-dev libedit-dev mysql-client \
&& apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev libmcrypt-dev libxslt-dev libicu-dev libxml2-dev libpq-dev libgeoip-dev libedit-dev mysql-client \
&& apt-get install -y --no-install-recommends libmagickwand-dev \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j4 gd mcrypt xsl zip intl gettext soap pdo_pgsql pdo_mysql mysqli pgsql json readline opcache \
@@ -33,4 +33,4 @@ RUN (curl --silent --show-error https://getcomposer.org/installer | php) \
&& mv composer.phar /usr/local/bin/composer
RUN apt-get clean \
&& rm -rf /var/lib/apt/lists/
&& rm -rf /var/lib/apt/lists/
+35
View File
@@ -0,0 +1,35 @@
FROM php:7.1-fpm
ENV TERM=xterm
RUN apt-get clean \
&& apt-get update \
&& apt-get install -y lsof nano less git locales
RUN echo 'fr_FR.UTF-8 UTF-8' > /etc/locale.gen \
&& /usr/sbin/locale-gen
RUN apt-get update \
&& apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev libmcrypt-dev libxslt-dev libicu-dev libxml2-dev libpq-dev libgeoip-dev libedit-dev mysql-client \
&& apt-get install -y --no-install-recommends libmagickwand-dev \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j4 gd mcrypt xsl zip intl gettext soap pdo_pgsql pdo_mysql mysqli pgsql json readline opcache \
&& pecl install geoip-1.1.1 redis imagick \
&& docker-php-ext-enable geoip redis imagick
RUN { \
echo 'opcache.memory_consumption=128'; \
echo 'opcache.interned_strings_buffer=8'; \
echo 'opcache.max_accelerated_files=4000'; \
echo 'opcache.revalidate_freq=60'; \
echo 'opcache.fast_shutdown=1'; \
echo 'opcache.enable_cli=1'; \
} >> /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini
COPY zz-logformat.conf /usr/local/etc/php-fpm.d/
COPY php.ini /usr/local/etc/php/conf.d/
RUN (curl --silent --show-error https://getcomposer.org/installer | php) \
&& mv composer.phar /usr/local/bin/composer
RUN apt-get clean \
&& rm -rf /var/lib/apt/lists/
+7
View File
@@ -0,0 +1,7 @@
date.timezone = Europe/Paris
display_errors = Off
memory_limit = 256M
log_errors = On
error_reporting = E_ALL
error_log = /dev/stdout
report_memleaks = On
@@ -0,0 +1,2 @@
[www]
access.format = "%R [%t] \"%m %r%Q%q\" %s %f %{mili}dms %{kilo}MKb %C%%"
+55
View File
@@ -0,0 +1,55 @@
FROM php:7.1-fpm
ENV TERM=xterm
#RUN echo 'deb http://ftp.debian.org/debian jessie-backports main' > /etc/apt/sources.list.d/debian-backports.list
RUN printf "deb http://archive.debian.org/debian/ jessie main\ndeb-src http://archive.debian.org/debian/ jessie main\ndeb http://security.debian.org jessie/updates main\ndeb-src http://security.debian.org jessie/updates main" > /etc/apt/sources.list.d/debian-backports.list
RUN apt-get clean \
&& apt-get update \
&& apt-get install -y lsof nano less git locales
RUN echo 'fr_FR.UTF-8 UTF-8' > /etc/locale.gen \
&& /usr/sbin/locale-gen
RUN apt-get update && apt-get install -my wget gnupg
RUN curl -sL https://deb.nodesource.com/setup_9.x | bash - \
&& apt-get install -y nodejs
RUN apt-get update \
&& apt-get install -y ffmpeg exiftool graphviz libfreetype6-dev libjpeg62-turbo-dev libpng-dev libmcrypt-dev libxslt-dev libicu-dev libxml2-dev libpq-dev libgeoip-dev libedit-dev mysql-client libgmp-dev nodejs \
&& apt-get install -y --no-install-recommends libmagickwand-dev \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j4 gd mcrypt xsl zip intl gettext soap pdo_pgsql pdo_mysql mysqli pgsql json readline opcache gmp \
&& docker-php-ext-configure gmp \
&& pecl install geoip-1.1.1 redis imagick mongodb \
&& docker-php-ext-enable geoip redis imagick mongodb
RUN { \
echo 'opcache.memory_consumption=128'; \
echo 'opcache.interned_strings_buffer=8'; \
echo 'opcache.max_accelerated_files=4000'; \
echo 'opcache.revalidate_freq=60'; \
echo 'opcache.fast_shutdown=1'; \
echo 'opcache.enable_cli=1'; \
} >> /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini
COPY zz-logformat.conf /usr/local/etc/php-fpm.d/
COPY php.ini /usr/local/etc/php/conf.d/
RUN (curl --silent --show-error https://getcomposer.org/installer | php) \
&& mv composer.phar /usr/local/bin/composer
RUN curl --location --silent --show-error https://symfony.com/installer -o /usr/local/bin/symfony \
&& chmod a+x /usr/local/bin/symfony
RUN curl --location --silent --show-error https://s3.amazonaws.com/files.drush.org/drush.phar -o /usr/local/bin/drush \
&& chmod a+x /usr/local/bin/drush
RUN (npm install -g uglify-es) \
&& ln -s /usr/bin/nodejs /usr/local/bin/node
RUN apt-get clean \
&& rm -rf /var/lib/apt/lists/
+9
View File
@@ -0,0 +1,9 @@
date.timezone = Europe/Paris
display_errors = Off
memory_limit = 768M
log_errors = On
error_reporting = E_ALL
error_log = /dev/stdout
report_memleaks = On
upload_max_filesize = 512M
post_max_size = 512M
+2
View File
@@ -0,0 +1,2 @@
[www]
access.format = "%R [%t] \"%m %r%Q%q\" %s %f %{mili}dms %{kilo}MKb %C%%"
+75
View File
@@ -0,0 +1,75 @@
version: "3"
services:
##
## WEBSITE RESSOURCES
##
nginx:
build: build/nginx
container_name: ${CLIENT}.nginx.${ENV}
hostname: nginx
volumes:
- ../volume/nginx/etc.nginx.sites-enabled:/etc/nginx/sites-enabled
- ../volume/www:/home/www
restart: always
php:
build: build/php_win
container_name: ${CLIENT}.php.${ENV}
hostname: php
volumes:
- ../volume/www:/home/www
restart: always
postgres:
image: postgres:9.6
container_name: ${CLIENT}.postgres.${ENV}
hostname: postgres
env_file: env/postgres.env
volumes:
- tt-postgres:/var/lib/postgresql/data
restart: always
mongo:
image: mongo:3.4
container_name: ${CLIENT}.mongo.${ENV}
hostname: mongo
volumes:
- tt-mongo:/data/db
restart: always
elasticsearch:
build: build/elasticsearch
container_name: ${CLIENT}.elasticsearch.${ENV}
hostname: elasticsearch
volumes:
- search_db_data:/usr/share/elasticsearch/data
restart: always
##
## STORE RESSOURCES
##
store-php:
build: build/php_light_win
container_name: ${CLIENT}.store-php.${ENV}
hostname: store-php
volumes:
- ../volume/www:/home/www
restart: always
store-mysql:
build: build/mysql
container_name: ${CLIENT}.store-mysql.${ENV}
hostname: store-mysql
env_file: env/store-mysql.env
volumes:
- ../volume/store-mysql/var.lib.mysql:/var/lib/mysql
restart: always
# Elastic does not play well with physical volume (folder rights trouble)
volumes:
? search_db_data
tt-postgres:
external: true
tt-mongo:
external: true
-4
View File
@@ -1,4 +0,0 @@
MYSQL_ROOT_PASSWORD=
MYSQL_DATABASE=database
MYSQL_USER=user
MYSQL_PASSWORD=
-3
View File
@@ -1,3 +0,0 @@
POSTGRES_USER=
POSTGRES_PASSWORD=
POSTGRES_DB=
+1
View File
@@ -1 +1,2 @@
conf/nginx.conf
/vendor/
+2 -1
View File
@@ -11,4 +11,5 @@ rewrite ^/page/presentation-talent$ https://www.talentstube.com/cv-video perma
rewrite ^/page/la-plateforme$ https://www.talentstube.com/ permanent;
rewrite ^/tarifs$ https://www.talentstube.com/accompagnement-entreprise permanent;
rewrite ^/annonce/38-charge-de-projets-developpement-h-f$ https://www.talentstube.com/annonce/38-charge-de-projets-developpement-cosmetique-h-f permanent;
rewrite ^/annonce/recherche/$ https://www.talentstube.com/annonce/recherche permanent;
rewrite ^/annonce/recherche/$ https://www.talentstube.com/annonce/recherche permanent;
rewrite ^/territoire/1573-communaute-d-agglomeration-castres-mazamet/$ https://www.talentstube.com/territoire/1573-castres-mazamet/ permanent;
+43
View File
@@ -2,3 +2,46 @@ tt
==
A Symfony project created on February 23, 2017, 1:42 pm.
## To have a representation of entity's mappings
In php container, do php bin/console yuml:mappings
To personnalize, see https://github.com/Nono1971/doctrine-yuml-bundle
## If memory issues when installing bundle
Copy this before composer require : COMPOSER_MEMORY_LIMIT=-1
## To update database schema
In php container, root@php:/home/www/website/www# php bin/console doctrine:schema:update --force
It'll update database based on entities
## To push notifications
- Create new .json file in web/push folder.
- This file is composed of two arrays : parameters, where you select specific subscribers to receive notifications,
and notification, where you write the content.
- Values for parameters :
* "pushType" : define the rule to find subscribers, only one value which fits with next ones. Values : "general", "profil", "users", "tags".
* "profilCompletenessPercentage" : define the % of profil completeness. Works with "profil" value of pushType.
* "users" : enters subscriber's mail. Works with "users" value of pushType.
* "keywords" : enters tags to identify subscribers. Works with "tags" value of pushType.
- Values for notification :
* "title" : the title!
* "body" : the content.
* "icon" : the website icon.
* "image" : to add an image.
* "tag" : Used to regroup notifications.
* "data" : array where you can add "link" property. Link will redirect to the given URL.
* "actions" : array where you can add specific action with "action", "title".
* "badge" : to add an image for small device.
- Open SendPushCommand.php, go to configure(), and change the last line of addOption() for files with your filename.
## Stacktrace exception API
All exceptions catched are written in the dev.log file (for ENV=dev I guess) in the AppBundle/var/logs folder.
To have an exception that can be written in this file, create or use an already existing Exception (in AppBundle/Exception) in your Controller.
## Question to ask to Corentin
* Is there a validation from Talents Tube operator to set the answer status to published?
* Is there a comment to be written when post an answer ? (not here in mock-up)
+13
View File
@@ -49,8 +49,20 @@ class AppKernel extends Kernel
new Http\HttplugBundle\HttplugBundle(),
new HWI\Bundle\OAuthBundle\HWIOAuthBundle(),
//bentools push
new BenTools\WebPushBundle\WebPushBundle(),
//CookieBar
new Fairlane\CookieConsentBundle\FairlaneCookieConsentBundle(),
//Api
new JMS\SerializerBundle\JMSSerializerBundle(),
new FOS\RestBundle\FOSRestBundle(),
new WhiteOctober\PagerfantaBundle\WhiteOctoberPagerfantaBundle(),
new Bazinga\Bundle\HateoasBundle\BazingaHateoasBundle(),
new Lexik\Bundle\JWTAuthenticationBundle\LexikJWTAuthenticationBundle(),
//CORS
new Nelmio\CorsBundle\NelmioCorsBundle(),
];
if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
@@ -59,6 +71,7 @@ class AppKernel extends Kernel
$bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
$bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
$bundles[] = new Alex\DoctrineExtraBundle\AlexDoctrineExtraBundle();
$bundles[] = new Onurb\Bundle\YumlBundle\OnurbYumlBundle();
}
return $bundles;
@@ -15,7 +15,7 @@
</p>
{% endif %}
<br/><br/>
{% if app.request.cookies.get('redirect_register')is defined %}
{% if app.request.cookies.get('redirect_register') is defined and app.request.cookies.get('redirect_register') is not null %}
<div class="center">
<a href="{{ app.request.cookies.get('redirect_register') }}" class="btn btn-default">Poursuivre votre candidature</a>
</div>
@@ -166,9 +166,17 @@
<source>company.account.password.modify.label</source>
<target>Modifier le mot de passe</target>
</trans-unit>
<trans-unit id="company.account.notifications.title">
<source>company.account.notifications.title</source>
<target>Notifications</target>
</trans-unit>
<trans-unit id="profile.edit.submit">
<source>profile.edit.submit</source>
<target>Sauvegarder mon profil</target>
</trans-unit>
<trans-unit id="profile.edit.save">
<source>profile.edit.save</source>
<target>Enregistrer</target>
</trans-unit>
<trans-unit id="profile.company.title">
<source>profile.company.title</source>
@@ -226,6 +234,30 @@
<source>profile.company.logo</source>
<target>Logo de l'entreprise</target>
</trans-unit>
<trans-unit id="talent.profile.title.label">
<source>talent.profile.title.label</source>
<target>Titre de votre profil</target>
</trans-unit>
<trans-unit id="talent.profile.situation.label">
<source>talent.profile.situation.label</source>
<target>Votre situation</target>
</trans-unit>
<trans-unit id="talent.profile.description.label">
<source>talent.profile.description.label</source>
<target>Quelques mots sur vous</target>
</trans-unit>
<trans-unit id="profile.talent.tags">
<source>profile.talent.tags</source>
<target>Vos compétences.</target>
</trans-unit>
<trans-unit id="profile.talent.under.tags">
<source>profile.talent.under.tags</source>
<target>Définissez vos clés dans lordre dimportance. Vous pouvez indiquer jusqu’à 50 compétences.</target>
</trans-unit>
<trans-unit id="talent.menu.dashboard.label">
<source>talent.menu.dashboard.label</source>
<target>Mon profil</target>
</trans-unit>
<!-- ANNONCE-->
<trans-unit id="ad.company.add.label">
<source>ad.company.add.label</source>
@@ -305,6 +337,82 @@
<source>talent.menu.recommandations.label</source>
<target>Mes recommandations</target>
</trans-unit>
<trans-unit id="talent.profile.career.company.label">
<source>talent.profile.career.company.label</source>
<target>Entreprise</target>
</trans-unit>
<trans-unit id="talent.profile.career.job.label">
<source>talent.profile.career.job.label</source>
<target>Intitulé du poste</target>
</trans-unit>
<trans-unit id="talent.profile.career.begin.label">
<source>talent.profile.career.begin.label</source>
<target>Début</target>
</trans-unit>
<trans-unit id="talent.profile.career.end.label">
<source>talent.profile.career.end.label</source>
<target>Fin</target>
</trans-unit>
<trans-unit id="talent.profile.career.skills.label">
<source>talent.profile.career.skills.label</source>
<target>Vos compétences</target>
</trans-unit>
<trans-unit id="talent.profile.career.actualJob.label">
<source>talent.profile.career.actualJob.label</source>
<target>Toujours en poste</target>
</trans-unit>
<trans-unit id="talent.profile.career.place.label">
<source>talent.profile.career.place.label</source>
<target>Lieux</target>
</trans-unit>
<trans-unit id="talent.profile.formation.name.label">
<source>talent.profile.formation.name.label</source>
<target>Diplome</target>
</trans-unit>
<trans-unit id="talent.profile.formation.school.label">
<source>talent.profile.formation.school.label</source>
<target>Ecole</target>
</trans-unit>
<trans-unit id="talent.profile.formation.actual.label">
<source>talent.profile.formation.actual.label</source>
<target>Toujours en cours</target>
</trans-unit>
<trans-unit id="talent.profile.formation.obtention.label">
<source>talent.profile.formation.obtention.label</source>
<target>Année d'obtention</target>
</trans-unit>
<trans-unit id="talent.profile.language.skill.1.label">
<source>talent.profile.language.skill.1.label</source>
<target>Notions</target>
</trans-unit>
<trans-unit id="talent.profile.language.skill.2.label">
<source>talent.profile.language.skill.2.label</source>
<target>Compétence professionnelle limitée</target>
</trans-unit>
<trans-unit id="talent.profile.language.skill.3.label">
<source>talent.profile.language.skill.3.label</source>
<target>Compétence professionnelle complète</target>
</trans-unit>
<trans-unit id="talent.profile.language.skill.4.label">
<source>talent.profile.language.skill.4.label</source>
<target>Bilingue ou natif</target>
</trans-unit>
<trans-unit id="talent.profile.language.name.label">
<source>talent.profile.language.name.label</source>
<target>Langue</target>
</trans-unit>
<trans-unit id="talent.profile.situation.1.label">
<source>talent.profile.situation.1.label</source>
<target>En recherche demploi</target>
</trans-unit>
<trans-unit id="talent.profile.situation.2.label">
<source>talent.profile.situation.2.label</source>
<target>À l’écoute dopportunités</target>
</trans-unit>
<trans-unit id="talent.profile.situation.3.label">
<source>talent.profile.situation.3.label</source>
<target>En poste</target>
</trans-unit>
<!-- TALENT -->
<trans-unit id="ad.talent.answer.label">
<source>ad.talent.answer.label</source>
@@ -552,8 +660,20 @@
<source>label.answer.history.title</source>
<target>Historique des messages envoyés</target>
</trans-unit>
<!-- Territoires -->
<trans-unit id="message.territory.list.ads">
<source>message.territory.list.ads</source>
<target>offres d'emploi en cours sur ce territoire</target>
</trans-unit>
<trans-unit id="message.territory.list.ad">
<source>message.territory.list.ad</source>
<target>offre d'emploi en cours sur ce territoire</target>
</trans-unit>
<trans-unit id="message.territory.list.noads">
<source>message.territory.list.noads</source>
<target>Découvrez les entreprises qui recrutent sur ce territoire</target>
</trans-unit>
</body>
</file>
</xliff>
@@ -0,0 +1,134 @@
{% extends 'admin/base_admin.html.twig' %}
{% block contentHeader %}
<h1>
Liste des Candidatures
</h1>
<ol class="breadcrumb">
<li><a href="{{ path('admin_dashboard') }}"><i class="fa fa-dashboard"></i> Dashboard</a></li>
<li class="active">Annonces</li>
</ol>
{% endblock %}
{% block content %}
<div class="box box-primary">
<div class="box-body">
<table id="answer_list_table" class="table table-hover table-bordered">
<thead>
<tr>
<th class="col-xs-2">Date d'envoi</th>
<th>Utilisateur</th>
<th>Annonce / Entreprise</th>
<th>video</th>
<th>Status</th>
<th>action</th>
</tr>
</thead>
<tbody>
{% for answer in answers if answer.status != "DRAFT" %}
<tr>
<td data-order="{{ answer.sendTime|date('U') }}">{{ answer.sendTime|date('d/m/Y') }}</td>
<td>{{ answer.user.firstname }} {{ answer.user.lastname }}</td>
{% if answer.ad %}
<td>{{ answer.ad.company.brandname }} - {{ answer.ad.title }}</td>
{% else %}
<td>{{ answer.company.brandname }}</td>
{% endif %}
<td>
ID Candidature : {{ answer.id }}<br />
{% if answer.video.cdnUrl is defined %}
<iframe src="https://player.vimeo.com/video/{{ answer.video.cdnUrl|replace({ "/videos/": ""}) }}"
width="auto" height="auto" frameborder="0" webkitallowfullscreen mozallowfullscreen
allowfullscreen></iframe>
{% endif %}
</td>
<td class="status">{{ answer.status }}</td>
<td>
Actions :
<select class="changeStatus" name="changeStatus" data-id="{{ answer.id }}">
<option value="null">choisir</option>
<option value="SENDED">Envoyé</option>
<option value="DRAFT">Brouillon</option>
<option value="REFUSED">Refuser</option>
</select>
<br />
<a class="delete-answer" href='{{ path("admin_answer_delete",{'id':answer.id }) }}' data-toggle="tooltip" title="Supprimer">
Supprimer <i class="fa fa-trash"></i>
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
{% endblock %}
{% block javascripts %}
<script>
$(function () {
$('.changeStatus').change(function(e){
e.preventDefault();
var idAnswer = $(this).data('id');
var value = $(this).val();
var route = '/app_dev.php/admin/config/answer/' + idAnswer + '/status/' + value;
var select = $(this);
$.ajax({
type: "POST",
url: route,
dataType: "json",
success: function (msg) {
console.log("ok");
select.parent().prev('.status').html(value);
}
});
});
$('#answer_list_table').DataTable({
"paging": true,
"lengthChange": true,
"searching": true,
"ordering": true,
"info": true,
"autoWidth": false,
"language": {
"url": "http://cdn.datatables.net/plug-ins/1.10.11/i18n/French.json"
},
"columnDefs": [
{"targets": 1, "searchable": true, "orderable": true},
{"targets": 2, "searchable": true, "orderable": true},
{"targets": 4, "searchable": true, "orderable": true, "className": "text-center"},
],
"order": [[ 0, "desc" ]]
});
$(".delete-answer").confirm({
title: "Êtes vous sûr de supprimer cette candidature ?",
content: "Supprimer cette candidature supprimera le média associé",
type: 'red',
boxWidth: '30%',
useBootstrap: false,
buttons: {
confirm: {
text: 'Confirmer',
action: function () {
console.log(this.$target);
location.href = this.$target.attr('href');
return true;
}
},
cancel: {
text: 'Annuler'
}
}
});
});
</script>
{% endblock %}
@@ -28,6 +28,11 @@
<i class="fa fa-file-video-o" aria-hidden="true"></i> <span>Vidéos Talent</span>
</a>
</li>
<li>
<a href="{{ path('admin_anwser_moderation_list') }}">
<i class="fa fa-file-video-o" aria-hidden="true"></i> <span>Candidatures</span>
</a>
</li>
</ul>
<ul class="sidebar-menu">
<li class="header">ENTITEES</li>
@@ -28,6 +28,7 @@
<i class="fa fa-star color-gold" aria-hidden="true"></i>
</span>
{% endif %}
<br/><i class="fa fa-link"></i>Url :<br /> https://www.talentstube.com{{ path("talent_show",{'alias':user.company.alias})}}<br />
</h3>
<br>
<span><a href="mailto:{{ user.email }}">{{ user.email }}</a></span>
@@ -1,13 +1,13 @@
<div id="modal-tuto" class="modal">
<div id="modal-tuto" class="modal modal-fixed-footer">
<div class="modal-content">
<div class="row">
<div class="col s12">
<h3 class="color-blue1 center-align title-tuto">Les conseils de Talents Tube</h3>
<div class="col-content">
<h3 class="color-blue1 center-align">Les conseils de Talents Tube</h3>
<div class="owl-carousel tuto-carousel">
<div class="item-tuto-webcam carousel-item">
<div class="row">
<div class="col s4 offset-s1 hide-on-med-and-down">
<div class="col s3 offset-s1 hide-on-med-and-down">
<img class="responsive-img" src="{{ asset('img/img_popupcv/cv_video_step_1.svg')}}" alt="">
</div>
<div class="col s11 m11 l6 offset-s1 left-align">
@@ -31,7 +31,7 @@
</div>
<div class="item-tuto-webcam carousel-item">
<div class="row">
<div class="col s4 offset-s1 hide-on-med-and-down">
<div class="col s3 offset-s1 hide-on-med-and-down">
<img class="responsive-img" src="{{ asset('img/img_popupcv/cv_video_step_2.svg')}}" alt="">
</div>
<div class="col s11 m11 l6 offset-s1 left-align">
@@ -51,7 +51,7 @@
</div>
<div class="item-tuto-webcam carousel-item">
<div class="row">
<div class="col s4 offset-s1 hide-on-med-and-down">
<div class="col s3 offset-s1 hide-on-med-and-down">
<img class="responsive-img" src="{{ asset('img/img_popupcv/cv_video_step_3.svg')}}" alt="">
</div>
<div class="col s11 m11 l6 offset-s1 left-align">
@@ -73,12 +73,15 @@
</div>
</div>
</div>
<div class="carousel-fixed-item right">
<a class="text close-tuto">Passer l'intro</a>
<a class="btn btn-default next-slide">suivant</a>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<div id="customDots" class="owl-dots"></div>
<div class="carousel-fixed-item right">
<a class="text close-tuto">Passer l'intro</a>
<a class="btn btn-default next-slide">suivant</a>
</div>
</div>
</div>
@@ -15,7 +15,7 @@
j.src =
'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-P4G65WJ');
})(window, document, 'script', 'dataLayer', 'UA-98246968-1');
</script>
<!-- End Google Tag Manager -->
<script type="text/javascript" defer="defer" src="https://extend.vimeocdn.com/ga/64189815.js"></script>
@@ -70,6 +70,7 @@
{#{% include 'default/alert.html.twig' %}#}
{% include 'default/user_switch.html.twig' %}
{% include 'default/header.html.twig' %}
{% include 'default/props_settings.html.twig' %}
{% block content %}
{% endblock %}
{% include 'default/footer.html.twig' %}
@@ -79,6 +80,7 @@
'@global'
output='assetic/main.js' filter='?uglifyjs2' %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock %}
{{ include('FairlaneCookieConsentBundle::cookie-info.html.twig') }}
@@ -15,11 +15,18 @@
{% include 'company/ad_breadcrumb.html.twig' with {'step': 3,'ad': answer.ad,'firstname':answer.user.firstname ,'lastname':answer.user.lastname} %}
<div class="col s12 m6">
<div id="mini-profil-block">
<a target="_blank" href="{{ path('talent_show',{'alias':answer.user.company.alias} ) }}">
{% include 'talent/talent_picture.html.twig' with {
'user' : answer.user
} %}
</a>
<div>
<div class="mini-profil-picture-name">{{ answer.user.firstname }} {{ answer.user.lastname }}</div>
<div class="mini-profil-picture-name">
<a target="_blank" href="{{ path('talent_show',{'alias':answer.user.company.alias} ) }}">
{{ answer.user.firstname }} {{ answer.user.lastname }}
&nbsp;<i class="fa fa-user-circle"></i>
</a>
</div>
<div>Recu le {{ answer.sendTime|date('d/m/Y') }}</div>
</div>
</div>
@@ -68,11 +68,11 @@
- {{ company.addresses.billing.country|country }}</p>
{% endif %}
</div>
<div class="col s12 profil-links">
<div class="col s12 profil-links center-align">
{% if company.website %}
<a target="_blank" href="{{ company.website }}" class="td-none">
<span class="fa-stack fa-lg">
<i class="fa fa-circle fa-stack-2x z-depth-2"></i>
<i class="fa fa-circle fa-stack-2x"></i>
<i class="fa fa-link fa-stack-1x fa-inverse"></i>
</span>
</a>
@@ -46,9 +46,9 @@
<span class="clearfix"></span>
<div class="keywords">
{% if a.publicTag %}
{% for keyword in a.publicTag %}
{% for tag in a.publicTag %}
<div class="chip">
{{ keyword }}
<a href="{{ path('ad_search_result',{'tag':tag }) }}">{{ tag }}</a>
</div>
{% endfor %}
{% endif %}
@@ -52,7 +52,9 @@
<div class="col s11 col-noPadding" style="position:relative;">
<div class="frame" id="basic">
<ul class="slidee">{% for tag in a.publicTag %}
<li class="chip">{{ tag }}</li>{% endfor %}</ul>
<li class="chip">
<a href="{{ path('ad_search_result',{'tag':tag }) }}" class="hover-blue2">{{ tag }}</a>
</li>{% endfor %}</ul>
</div>
<div class="controls center">
<a class="prev"><i class="fa fa-arrow-circle-left" aria-hidden="true"></i></a>
@@ -40,7 +40,7 @@
{% else %}#}
<div class="embed-responsive embed-responsive-16by9">
<div class="col s12">
<iframe src="https://player.vimeo.com/video/{{ ad.video.cdnUrl|replace({ "/videos/": ""}) }}"
<iframe src="https://player.vimeo.com/video/{{ ad.video.cdnUrl|replace({ "/videos/": ""}) }}?texttrack=fr"
width="100%" height="640" frameborder="0" webkitallowfullscreen mozallowfullscreen
allowfullscreen></iframe>
</div>
@@ -51,6 +51,11 @@
OFFRE POURVUE
</div>
{% endif %}
{% if ad.id == 53 %}
<div class="isPromoted">
Traitement des candidatures vidéos
</div>
{% endif %}
</div>
{% endif %}
@@ -76,9 +81,8 @@
</div>
<div class="col s12">
{% for tag in ad.publicTag %}
<p class="chip">{{ tag }}</p>
<p class="chip"><a href="{{ path('ad_search_result',{'tag':tag }) }}" class="hover-blue2">{{ tag }}</a></p>
{% endfor %}
<div class="item-detail-description">
<h3 class="blue-text">Détails de l'offre d'emploi</h3>
<p>{{ ad.description|nl2br }}</p>
@@ -99,12 +103,14 @@
</div>
{% elseif not is_granted('ROLE_COMPANY') %}
{% if not ad.isPromoted %}
{% if ad.id != 53 %}
<p class="item-detail-reply">
<a title="postuler-bottom" href="{{ path('talent_answer_create',{'id': ad.getId()}) }}"
class="btn btn-default">
Postuler
</a>
</p>
{% endif %}
{% endif %}
{% endif %}
{% endif %}
@@ -188,6 +194,10 @@
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDYV8IJGtIoWLfXJQQvIuDQ88n2aEuRgpg&libraries=places"></script>
<script type="text/javascript">
$(document).ready(function(){
//asking for push
EdeclicLib = window.EdeclicLib || {};
EdeclicLib.delayedAsk();
//
$('.tooltipped').tooltip();
$.get( "{{ path('ad_ajaxRecStat',{'id': ad.id }) }}", function( data ) {});
if ($('#modal-answer').length > 0) {
@@ -57,12 +57,14 @@
</div>
{% elseif not is_granted('ROLE_COMPANY') %}
{% if not ad.isPromoted %}
{% if ad.id != 53 %}
<p class="item-detail-reply">
<a title="postuler-side" href="{{ path('talent_answer_create',{'id': ad.getId()}) }}"
class="btn btn-default">
Postuler
</a>
</p>
{% endif %}
{% else %}
<div class="item-detail-ispromoted">
Offre pourvue
@@ -13,15 +13,17 @@
{% else %}
<div class="header-link header-link-signin right-align">
{% if is_granted('ROLE_TALENT') %}
{% set path = path('talent_dashboard') %}
{% set pathDash = path('talent_dashboard') %}
{% elseif is_granted('ROLE_COMPANY') %}
{% set path = path('company_dashboard') %}
{% set pathDash = path('company_dashboard') %}
{% elseif is_granted('ROLE_TERRITORY') %}
{% set path = path('territory_dashboard') %}
{% set pathDash = path('territory_dashboard') %}
{% elseif is_granted('ROLE_ADMIN') %}
{% set path = path('admin_dashboard') %}
{% set pathDash = path('admin_dashboard') %}
{% else %}
{% set pathDash = path('talent_dashboard') %}
{% endif %}
<a class="btn button-round-small" href="{{ path }}">
<a class="btn button-round-small" href="{{ pathDash }}">
<i class="material-icons">perm_identity</i>
<span>Mon compte</span>
</a>
@@ -32,15 +32,22 @@
<div class="row row-tags row-noMargin">
<div class="col s11 col-noPadding" style="position:relative;">
<div class="chip center-align">
{% set nbAds = c.getPublishedAds|length %}
{% set fragment = "" %}
{% if nbAds > 0 %}
{% set fragment = "offers" %}
{% endif %}
<a class="td-none color-grey3"
href="{{ path('company_show',{'alias': c.alias, '_fragment':'offers' }) }}">
href="{{ path('company_show',{'alias': c.alias, '_fragment': fragment }) }}">
{% set nbAds = c.getPublishedAds|length %}
{% if nbAds > 1 %}
<strong>{{ c.getPublishedAds|length }} offres d'emploi en
cours</strong>
{% else %}
{% elseif nbAds == 1 %}
<strong>{{ c.getPublishedAds|length }} offre d'emploi en
cours</strong>
{% else %}
<strong>candidature spontanée</strong>
{% endif %}
</a>
</div>
@@ -4,7 +4,7 @@
{% set destination = path('redirect_dashboard') %}
{% endif %}
<a class="btn btn-default btn-facebook z-depth-2" href="{{ url("hwi_oauth_service_redirect", {service: "facebook"}) }}?_destination={{ destination }}">Connexion avec Facebook</a>
<a class="btn btn-default btn-linkedin z-depth-2" href="{{ url("hwi_oauth_service_redirect", {service: "linkedin"}) }}?_destination={{ destination }}">Connexion avec Linkedin</a>
{# <a class="btn btn-default btn-linkedin z-depth-2" href="{{ url("hwi_oauth_service_redirect", {service: "linkedin"}) }}?_destination={{ destination }}">Connexion avec Linkedin</a> #}
<div class="row">
<div class="col s12">
<div class="separator-with-label">
@@ -3,23 +3,49 @@
<div class="row">
<div class="col s12 m12 l10">
<ul id='dropdown_talents' class='dropdown-content'>
<li><a href="{{ path('ad_search_result') }}" title="Offres d'emploi vidéos">Offres d'emploi</a></li>
<li><a href="{{ path('page_cvVideo') }}" title="Le Cv vidéo">Le CV vidéo</a></li>
<li><a href="{{ path('page_reussirCVvideo') }}" title="Comment faire son CV Vidéo ?">Comment faire son CV Vidéo ?</a></li>
<li><a href="{{ path('page_accompagnementTalent') }}" title="Accompagnement talent">Accompagnement</a></li>
<li><a href="{{ path('talent_cv_import') }}" title="Créer mon CV vidéo">Créer mon CV vidéo</a></li>
<li>
<a href="{{ path('ad_search_result') }}" title="Offres d'emploi vidéos">Offres d'emploi</a>
</li>
<li>
<a href="{{ path('page_cvVideo') }}" title="Le Cv vidéo">Le CV vidéo</a>
</li>
<li>
<a href="{{ path('page_reussirCVvideo') }}" title="Comment faire son CV Vidéo ?">Comment faire son CV Vidéo ?</a>
</li>
<li>
<a href="{{ path('page_accompagnementTalent') }}" title="Accompagnement talent">Accompagnement</a>
</li>
<li>
<a href="{{ path('talent_cv_import') }}" title="Créer mon CV vidéo">Créer mon CV vidéo</a>
</li>
</ul>
<ul id='dropdown_company' class='dropdown-content'>
<li><a href="{{ path('company_list') }}" title="Les entreprises qui recrutent">Les entreprises qui recrutent</a></li>
<li><a href="{{ path('page_OffreEmploi') }}" title="L'offre d'emploi en vidéo">L'offre d'emploi en vidéo</a></li>
<li><a href="{{ path('page_reussirOffrevideo') }}" title="Comment faire une offre en vidéo">Comment faire une offre en vidéo</a></li>
<li><a href="{{ path('page_MarqueEmployeur') }}" title="Vidéo Marque Employeur">Vidéo Marque Employeur</a></li>
<li><a href="{{ path('page_accompagnementEntreprise') }}" title="Conseils & accompagnement">Conseils & accompagnement</a></li>
<li>
<a href="{{ path('company_list') }}" title="Les entreprises qui recrutent">Les entreprises qui recrutent</a>
</li>
<li>
<a href="{{ path('page_OffreEmploi') }}" title="L'offre d'emploi en vidéo">L'offre d'emploi en vidéo</a>
</li>
<li>
<a href="{{ path('page_reussirOffrevideo') }}" title="Comment faire une offre en vidéo">Comment faire une offre en vidéo</a>
</li>
<li>
<a href="{{ path('page_MarqueEmployeur') }}" title="Vidéo Marque Employeur">Vidéo Marque Employeur</a>
</li>
<li>
<a href="{{ path('page_accompagnementEntreprise') }}" title="Conseils & accompagnement">Conseils & accompagnement</a>
</li>
</ul>
<ul id='dropdown_territoire' class='dropdown-content'>
<li><a href="{{ path('territory_list') }}">Liste des territoires</a></li>
<li><a href="{{ path('page_VideoTerritory') }}">La vidéo territoire</a></li>
<li><a href="{{ path('page_AccompagnementTerritory') }}">Conseils et accompagnement</a></li>
<li>
<a href="{{ path('territory_list') }}">Liste des territoires</a>
</li>
<li>
<a href="{{ path('page_VideoTerritory') }}">La vidéo territoire</a>
</li>
<li>
<a href="{{ path('page_AccompagnementTerritory') }}">Conseils et accompagnement</a>
</li>
</ul>
<nav>
<div class="nav-wrapper">
@@ -28,16 +54,25 @@
<img src="{{ asset('img/Logo-header.png') }}" alt="Talents Tube"/>
</a>
</div>
<a href="#" data-activates="mobile-demo" class="button-collapse"><i class="material-icons">menu</i></a>
<a href="#" data-activates="mobile-demo" class="button-collapse">
<i class="material-icons">menu</i>
</a>
<ul class="right hide-on-med-and-down">
<li><a class="dropdown-button" data-activates="dropdown_talents" href="{{ path('page_cvVideo') }}"
title="Talents">Talents</a></li>
<li><a href="{{ path('ad_search_result') }}" title="Offres d'emploi vidéos">Offres d'emploi</a></li>
<li><a class="dropdown-button" data-activates="dropdown_company" href="{{ path('company_list') }}"
title="Les entreprises de talents">Entreprises</a></li>
<li><a class="dropdown-button" data-activates="dropdown_territoire" href="{{ path('territory_list') }}"
title="Les territoires">Territoires</a></li>
<li><a href="https://blog.talentstube.com" title="Blog Talents Tube">Blog</a></li>
<li>
<a class="dropdown-button" data-activates="dropdown_talents" href="{{ path('page_cvVideo') }}" title="Talents">Talents</a>
</li>
<li>
<a href="{{ path('ad_search_result') }}" title="Offres d'emploi vidéos">Offres d'emploi</a>
</li>
<li>
<a class="dropdown-button" data-activates="dropdown_company" href="{{ path('company_list') }}" title="Les entreprises de talents">Entreprises</a>
</li>
<li>
<a class="dropdown-button" data-activates="dropdown_territoire" href="{{ path('territory_list') }}" title="Les territoires">Territoires</a>
</li>
<li>
<a href="https://blog.talentstube.com" title="Blog Talents Tube">Blog</a>
</li>
</ul>
</div>
@@ -48,6 +83,13 @@
</div>
</div>
</div>
{#<div id="newApp" class="container-fluid">
<div class="row">
<div class="col s12 m12">
<p>"Nouveau ! Trouvez un job plus facilement avec notre <a href="http://pp.app.talentstube.com">web application</a>.📲"</p>
</div>
</div>
</div>#}
</div>
<div class="nav-wrapper">
<ul class="side-nav collapsible" data-collapsible="accordion" id="mobile-demo">
@@ -58,10 +100,10 @@
<a class="collapsible-header" title="Talents">Talents</a>
<div class="collapsible-body">
<ul>
<li><a href="{{ path('ad_search_result') }}" title="Offres d'emploi vidéos">Offres d'emploi</a></li>
<li><a href="{{ path('page_cvVideo') }}" title="Le Cv vidéo">Le CV vidéo</a></li>
<li><a href="{{ path('page_reussirCVvideo') }}" title="Comment faire son CV Vidéo ?">Comment faire son CV Vidéo ?</a></li>
<li><a href="{{ path('page_accompagnementTalent') }}" title="Accompagnement talent">Accompagnement</a></li>
<li><ahref="{{ path('ad_search_result') }}" title="Offres d'emploi vidéos">Offres d'emploi</a></li>
<li><ahref="{{ path('page_cvVideo') }}" title="Le Cv vidéo">Le CV vidéo</a></li>
<li><ahref="{{ path('page_reussirCVvideo') }}" title="Comment faire son CV Vidéo ?">Comment faire son CV Vidéo ?</a></li>
<li><ahref="{{ path('page_accompagnementTalent') }}" title="Accompagnement talent">Accompagnement</a></li>
</ul>
</div>
</li>
@@ -72,11 +114,11 @@
<a class="collapsible-header" title="Les entreprises de talents">Entreprises</a>
<div class="collapsible-body">
<ul>
<li><a href="{{ path('company_list') }}" title="Listes entreprises">Listes entreprises</a></li>
<li><a href="{{ path('page_OffreEmploi') }}" title="L'offre d'emploi en vidéo">L'offre d'emploi en vidéo</a></li>
<li><a href="{{ path('page_reussirOffrevideo') }}" title="Comment faire une offre en vidéo">Comment faire une offre en vidéo</a></li>
<li><a href="{{ path('page_MarqueEmployeur') }}" title="Vidéo Marque Employeur">Vidéo Marque Employeur</a></li>
<li><a href="{{ path('page_accompagnementEntreprise') }}" title="Conseils & accompagnement">Conseils & accompagnement</a></li>
<li><ahref="{{ path('company_list') }}" title="Listes entreprises">Listes entreprises</a></li>
<li><ahref="{{ path('page_OffreEmploi') }}" title="L'offre d'emploi en vidéo">L'offre d'emploi en vidéo</a></li>
<li><ahref="{{ path('page_reussirOffrevideo') }}" title="Comment faire une offre en vidéo">Comment faire une offre en vidéo</a></li>
<li><ahref="{{ path('page_MarqueEmployeur') }}" title="Vidéo Marque Employeur">Vidéo Marque Employeur</a></li>
<li><ahref="{{ path('page_accompagnementEntreprise') }}" title="Conseils & accompagnement">Conseils & accompagnement</a></li>
</ul>
</div>
</li>
@@ -84,9 +126,9 @@
<a class="collapsible-header" title="Les territoires">Territoires</a>
<div class="collapsible-body">
<ul>
<li><a href="{{ path('territory_list') }}">Liste des territoires</a></li>
<li><a href="{{ path('page_VideoTerritory') }}">La vidéo territoire</a></li>
<li><a href="{{ path('page_AccompagnementTerritory') }}">Conseils et accompagnement</a></li>
<li><ahref="{{ path('territory_list') }}">Liste des territoires</a></li>
<li><ahref="{{ path('page_VideoTerritory') }}">La vidéo territoire</a></li>
<li><ahref="{{ path('page_AccompagnementTerritory') }}">Conseils et accompagnement</a></li>
</ul>
</div>
</li>
@@ -94,4 +136,4 @@
<a class="collapsible-header" href="https://blog.talentstube.com" title="Blog Talents Tube">Blog</a>
</li>
</ul>
</div>
</div>
@@ -19,7 +19,7 @@
</div>
<div class="header-video-inner">
<video loop="" preload="metadata" autoplay="" id="vid" muted="muted">
<source src="/img/home_video.mp4" type="video/mp4">
{# <source src="/img/home_video.mp4" type="video/mp4"> #}
</video>
</div>
@@ -98,9 +98,9 @@
<div class="container">
<div class="row center-align">
<div class="col s12">
<h2 class="blue-text no-margin-top">Les talents</h2>
<h2 class="blue-text no-margin-top">Les talents à la une</h2>
</div>
<h3 class="subtitles-homepage">Découvrez leurs CV vidéo et vidéo de motivation.</h3>
<h3 class="subtitles-homepage">Découvrez leur CV vidéo et vidéo de motivation.</h3>
</div>
<div class="row">
<div class="owl-carousel owl-carousel-home home-talent-carousel">
@@ -111,6 +111,12 @@
{% endif %}
</div>
</div>
<div class="row center-align">
<h2>Rejoignez une communauté de plus de <strong>1000</strong> candidats</h2>
<div class="col s12 m-t-50">
<a href="#!" title="Créer Mon profil" class="btn btn-default btn-round btn-create-account">Créer mon profil</a>
</div>
</div>
</div>
</div>
{# TERRITOIRE #}
@@ -133,7 +139,7 @@
{% if t.extra.terType is defined %}
<div class="m-t-15 fs-12 text-100">{{ t.extra.terType|upper }}</div>
{% endif %}
<div class="m-t-5">
<div class="m-t-5 hover-none">
<a href="{{ path('territory_show',{'alias': t.alias }) }}" class="color-white td-none">{{ t.brandName|upper }}</a>
</div>
</div>
@@ -0,0 +1,10 @@
<!-- props_settings.html.twig Parameters used in EdeclicPushAndNotificationClient.js -->
<div id="pushParams"
data-service-worker-url="{{ app.request.uriForPath('/Edeclic-service-worker.js') | replace({'/app_dev.php': ''}) }}"
data-analytics-helper-url="{{ app.request.uriForPath('js/analytics-helper.js') | replace({'/app_dev.php': ''}) }}"
data-delete-subscription-url="{{ url('delete-subscription') }}"
data-save-subscription-url="{{ url('save-subscription') }}"
data-push-public-key="{{ push_public_key }}"
>
</div>
@@ -19,13 +19,13 @@
{{ user.firstname }} {{ user.lastname }}
</a>
</p>
{% if talent.publicTag %}
{#{% if talent.publicTag %}
{% for keyword in talent.publicTag %}
{% if keyword != "" %}
<div class="chip">{{ keyword }}</div>
{% endif %}
{% endfor %}
{% endif %}
{% endif %}#}
</div>
{% endif %}
{% endfor %}
@@ -8,7 +8,7 @@
<h2>Détail de mon annonce</h2>
<div>
<div>
<a href="{{ path('ad_show',{'alias': ad.alias }) }}" title="{{ ad.title }}" class="item-list-media">
<a href="{{ absolute_url(path('ad_show',{'alias': ad.alias })) }}" title="{{ ad.title }}" class="item-list-media">
{% if ad.video %}
{% if ad.video.thumbnails.0.sizes is defined %}
<img width="100%" src="{{ ad.video.thumbnails.0.sizes.4.link }}"
@@ -19,7 +19,7 @@
</div>
<div>
<h3>
<a href="{{ path('ad_show',{'alias': ad.alias }) }}"
<a href="{{ absolute_url(path('ad_show',{'alias': ad.alias })) }}"
title="{{ ad.title }}">{{ ad.title }}</a>
</h3>
<p>
@@ -40,10 +40,10 @@
</p>
{% endif %}
<p>Entité :
<a href="{{ path('company_show',{'alias': ad.company.alias }) }}">{{ ad.company.brandName }}</a>
<a href="{{ absolute_url(path('company_show',{'alias': ad.company.alias })) }}">{{ ad.company.brandName }}</a>
</p>
<p>
<a href="{{ path('ad_show',{'alias': ad.alias }) }}" title="{{ ad.title }}" class="btn btn-default">Voir
<a href="{{ absolute_url(path('ad_show',{'alias': ad.alias })) }}" title="{{ ad.title }}" class="btn btn-default">Voir
l'offre d'emploi</a>
</p>
</div>
@@ -16,7 +16,7 @@
<br/>
<br/>
<div style="text-align:center;">
<a class="btn btn-default" href="{{ path('talent_ad_detail',{'alias': answer.ad.alias,'id': answer.id }) }}">Visionner la réponse vidéo</a>
<a class="btn btn-default" href="{{ absolute_url(path('talent_ad_detail',{'alias': answer.ad.alias,'id': answer.id })) }}">Visionner la réponse vidéo</a>
</div>
{% else %}
<br />
@@ -26,7 +26,7 @@
<br/>
<br/>
<div style="text-align:center;">
<a class="btn btn-default" href="{{ path('talent_ad_detail',{'alias': answer.ad.alias,'id': answer.id }) }}">Consulter la réponse</a>
<a class="btn btn-default" href="{{ absolute_url(path('talent_ad_detail',{'alias': answer.ad.alias,'id': answer.id })) }}">Consulter la réponse</a>
</div>
{% endif %}
<br>
@@ -8,7 +8,11 @@
<div id="preview_video">
{% if video is defined %}
{% if video is not null %}
<iframe src="https://player.vimeo.com{{ video.getCdnUrl()|replace({ "videos": "video"}) }}" width="100%" height="300px" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
<iframe
src="https://player.vimeo.com{{ video.getCdnUrl()|replace({ "videos": "video"}) }}"
width="100%" height="300px" frameborder="0"
webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
{% endif %}
{% endif %}
</div>
@@ -12,12 +12,12 @@
<div class="row">
<div class="col s12">
{% if medias|length == 0 and is_granted('ROLE_TALENT') %}
<div class="col s12 col-actions center-align">
<div class="col s12 center-align">
<br/><br/>
<strong class="color-grey3">Vous ne possédez pas encore de CV vidéo!</strong><br/>
<span class="color-grey2">Cliquez sur le bouton pour ajouter votre première vidéo.</span>
<br/><br/>
<a class="waves-effect waves-light btn btn-default modal-trigger" href="#addVideo">Ajouter une
<a class="btn btn-default modal-trigger" href="#addVideo">Ajouter une
vidéo</a>
</div>
{% else %}
@@ -0,0 +1,315 @@
{% if is_granted('ROLE_COMPANY') %}
{% set extendTemplate='company/base_dashboard_company.html.twig' %}
{% elseif is_granted('ROLE_TERRITORY') %}
{% set extendTemplate='territory/base_dashboard_territory.html.twig' %}
{% else %}
{% set extendTemplate='talent/base_dashboard_talent.html.twig' %}
{% endif %}
{% extends extendTemplate %}
{% block dashContent %}
<div class="row">
<div class="col s12">
{#<a class="waves-effect waves-light btn btn-default modal-trigger left m-r-10" href="#addVideo">Créer une vidéo</a>#}
{% if medias|length > 0 %}
<a class="waves-effect waves-light btn btn-default modal-trigger left" href="#addVideo">Ajouter une vidéo</a>
<a class="btn btn-delete-video btn-round tooltipped red right" href="#!" data-position="top"
data-tooltip="Supprimer des vidéos"><i class="fa fa-trash" aria-hidden="true"></i>
</a>
{% endif %}
</div>
</div>
{% if medias|length == 0 %}
<div class="col s12 col-actions center-align" id="no-video-talents">
<br/><br/>
<strong class="color-grey3">Vous ne possédez pas encore de CV vidéo!</strong><br/>
<span class="color-grey2">Cliquez sur le bouton pour ajouter votre première vidéo.</span>
<br/><br/>
<a class="waves-effect waves-light btn btn-default modal-trigger" href="#addVideo">Ajouter une
vidéo</a>
</div>
{% else %}
{% if app.user.company.presentationVideo %}
{% set media = app.user.company.presentationVideo %}
{% endif %}
<div class="row video_premier z-depth-3">
{% if app.user.company.presentationVideo %}
<div class="col s4 video_col col-card">
<div class="preloader-wrapper small">
<div class="spinner-layer spinner-blue-only">
<div class="circle-clipper left">
<div class="circle"></div>
</div><div class="gap-patch">
<div class="circle"></div>
</div><div class="circle-clipper right">
<div class="circle"></div>
</div>
</div>
</div>
<div class="embed-responsive embed-responsive-16by9">
<iframe src="https://player.vimeo.com{{ media.getCdnUrl()|replace({ "videos": "video"}) }}"
width="100%" height="550" frameborder="0" webkitallowfullscreen
mozallowfullscreen allowfullscreen></iframe>
</div>
<a data-id="{{ media.getCdnUrl()|replace({ "/videos/": ""}) }}" href="#!" class="btn-floating left halfway-fab changeThumbnail"><i class="material-icons">image</i></a>
</div>
{% else %}
<div class="col s12 video_col">
<div class="no-presentation-video">
<strong>
Vous ne disposez pas de vidéo de présentation !
</strong><br/>
Cliquez sur le bouton ci-dessous pour la sélectionner dans votre bibliothèque.
</div>
</div>
{% endif %}
{% if media is defined %}
<div class="col s8 content_col">
<div class="col s12 video_col_content">
<h3>{{ media.title }}</h3>
</div>
<div class="video_col_actions">
<div class="col s6 video_col_link_share">
<a class="btn btn-default modal-trigger" href="#shareCv">Partager le profil
<i class="fa fa-share-alt" aria-hidden="true"></i>
</a>
</div>
<div class="col s6 video_col_edit_premier">
<a class="btn btn-cancel-premier red right" href="#!" data-position="top" data-tooltip="Annuler">
<span>Annuler</span> <i class="fa fa-ban" aria-hidden="true"></i>
</a>
<a class="btn btn-default btn-video-premier right">
<span>Remplacer la vidéo</span>
<i class="fa fa-pencil" aria-hidden="true"></i>
</a>
<div class="clearfix"></div>
</div>
</div>
</div>
{% endif %}
</div>
{% endif %}
<div class="row">
{% for media in medias %}
{% set classVideo = "" %}
{% if app.user.company.presentationVideo %}
{% set idPresentationVideo = app.user.company.presentationVideo.id %}
{% else %}
{% set idPresentationVideo = false %}
{% endif %}
{% if idPresentationVideo != media.id %}
<div class="col s12 m6 l4 col-card">
<div class="card card-video-action z-depth-1">
<div class="card-image">
<div class="preloader-wrapper small">
<div class="spinner-layer spinner-blue-only">
<div class="circle-clipper left">
<div class="circle"></div>
</div><div class="gap-patch">
<div class="circle"></div>
</div><div class="circle-clipper right">
<div class="circle"></div>
</div>
</div>
</div>
<div class="embed-responsive embed-responsive-16by9">
<iframe src="https://player.vimeo.com{{ media.getCdnUrl()|replace({ "videos": "video"}) }}"
width="100%" height="230px" frameborder="0" webkitallowfullscreen
mozallowfullscreen allowfullscreen></iframe>
</div>
<div class="card-fog choice-fog">
<div class="card-fog-container">
<a data-id="{{ media.getId() }}"
class="btn btn-default btn-default-video {{ classVideo }} tooltipped"
data-position="top"
data-tooltip="{{ 'global.video.defaultaction.label'|trans }}">
Choisir cette vidéo
</a>
</div>
</div>
{% set classFog ="" %}
{% set messageTooltipFog ="" %}
{% if media.getAds().toArray() %}
{% set classFog = "fogLight" %}
{% set messageTooltipFog ="Vidéo associée à une annonce" %}
{% endif %}
{% if media.getAnswers().toArray() %}
{% set classFog = "fogLight" %}
{% set messageTooltipFog ="Vidéo associée à une réponse" %}
{% endif %}
<div class="card-fog delete-fog {{ classFog }}">
<div class="card-fog-container">
{% if media.getAds().toArray() or media.getAnswers().toArray() %}
<div class="card-fog-message">
Vous ne pouvez pas supprimer cette vidéo.<br/>
<i data-position="top" data-tooltip="{{ messageTooltipFog }}"
class="fa fa-question-circle tooltipped" aria-hidden="true"></i>
</div>
{% else %}
<a class="btn btn-default halfway-fab waves-effect waves-light red delete_unattached_media tooltipped"
href="{{ path("delete_unattached_media",{"id" : media.getId()}) }}"
data-position="top" data-tooltip="{{ 'media.delete.video.label'|trans }}">Supprimer</a>
{% endif %}
</div>
</div>
<a data-id="{{ media.getCdnUrl()|replace({ "/videos/": ""}) }}" href="#!" class="btn-floating left halfway-fab changeThumbnail"><i class="material-icons">image</i></a>
</div>
<div class="card-content">
<p>
<strong><span data-id="{{ media.id }}" class="titleVideo truncate tooltipped"
data-position="top"
data-tooltip="{{ media.title }}">{{ media.title }}</span></strong>
</p>
</div>
</div>
</div>
{% endif %}
{% endfor %}
</div>
<div id="changeThumbnailVideo" class="modal modal-fixed-footer modal-fixed-header">
<div class="modal-header">
<h3 class="color-blue1">Modifier la vignette</h3>
<span class="right">
<a href="#!" class="modal-close">
<img src="{{ asset('/img/close-modal.svg') }}" >
</a>
</span>
</div>
<div class="modal-content">
<div class="row">
<div class="col s6">
<div class="embed-responsive embed-responsive-16by9">
<div class="col s12">
<div id="video-vimeo"></div>
</div>
</div>
</div>
<div class="col s6">
<p><strong>Lancez la vidéo</strong> , puis <strong>appuyer sur pause</strong> pour définir limage.
<br />Une fois votre vignette définie, cliquez sur le bouton
<strong>Sauvegarder</strong>.</p>
</div>
</div>
</div>
<div class="modal-footer">
<a href="#!" class="modal-action modal-close btn btn-default btn-round captur">Sauvegarder</a>
</div>
</div>
{% set video = null %}
<div id="addVideo" class="modal modal-fixed-footer">
<div class="modal-content">
<div class="row">
{{ form_start(form, {'attr': { 'id': 'form_media' } }) }}
<div class="input-field col s8">
{{ form_rest(form) }}
</div>
<div class="col s4 right-align">
<button id="submit" class="btn btn-default disabled" type="submit">Enregistrer</button>
{% set messageTooltiped = "Votre vidéo ne doit pas dépasser les 500Mo.\n
Les formats de vidéo acceptés sont les suivants : .mp4, .mov, .qt, .mkv, .avi, .m4v, .webm." %}
<i class="fa fa-question-circle tooltipped" data-position="top" data-delay="50"
data-tooltip="{{ messageTooltiped }}" aria-hidden="true"></i>
</div>
{{ form_end(form) }}
<div class="col s12">
{% include 'media/dropzone.html.twig' with {'deleting': 'false'} %}
</div>
</div>
</div>
<div class="modal-footer">
<a href="#!" class="modal-action modal-close btn btn-default btn-round">Fermer</a>
</div>
</div>
<div id="shareCv" class="modal modal-fixed-footer">
<div class="modal-content">
<div class="row">
<h2>Vous souhaitez partager votre profil à d'autres entreprises?</h2>
<h3>Copiez et ajoutez l'adresse ci-dessous lors de vos candidatures</h3>
<input id="linkToCopy" type="text" value="https://www.talentstube.com{{ path("talent_show", {"alias": app.user.company.alias }) }}">
<a class="btn btn-default btn-round" id="copyLink">Copier</a><br />
<a class="modal-action modal-close">Fermer</a>
</div>
</div>
</div>
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script type="text/javascript">
var urlDropzone = '{{ path("upload_media_default", {"id": app.user.id }) }}';
var urlDelete = '';
var idObject = null;
var typeObject = null;
var videoExist = false;
var mediaDefaultUrl = '{{ path("media_default") }}';
var idUser = '{{ app.user.id }}';
var mediaEditTitleUrl = "{{ path('media_edit_title', {'id': 'id_video'})|escape('js') }}";
$(document).ready(function(){
$('.modal').modal();
});
</script>
<script src="{{ asset('/js/mediaListing.js') }}"></script>
<script src="{{ asset('/js/dropzone.js') }}"></script>
<script src="https://player.vimeo.com/api/player.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var options = {
id: null
};
var player = null;
$('.modal-close').on('click',function(){
$('#changeThumbnailVideo').modal('close');
});
$('.changeThumbnail').on('click',function(){
$('#changeThumbnailVideo').modal();
$('#changeThumbnailVideo').modal('open');
var idVideo = $(this).data('id');
options = {
id: idVideo
};
player = new Vimeo.Player('video-vimeo', options);
});
$('.captur').on('click',function(e){
e.preventDefault();
$('a.changeThumbnail').data('id',options.id).parents('.col-card').find('.preloader-wrapper').addClass('active');
player.getCurrentTime().then(function(seconds) {
var data = {'duration': seconds, 'id':options.id};
$.ajax({
url:"{{ path('video_changeThumbnail') }}",
type:"POST",
data: JSON.stringify(data),
success:function(response) {
$('a.changeThumbnail').data('id',options.id).parents('.col-card').each(function( index ) {
var iframe = $( this ).contents().find('iframe');
iframe[0].src = iframe[0].src;
});
},
error:function(error){
console.log(error)
}
});
}).catch(function(error) {
console.log(error);
});
});
$("iframe").on("load", function () {
$('.preloader-wrapper').removeClass('active');
});
});
</script>
{% endblock %}
@@ -0,0 +1,23 @@
{% extends 'base.html.twig' %} {% block content %}
<div id="page-static" class="contentWrapper">
<h1 class="alttitle center-align">Test PUSH</h1>
<div class="fluid-container bg-dark2">
<div class="container">
<div class="row first-row">
<div class="col s12 m6 video-wrapper">
<div class="video-container">
<img src="/img/img_content/accompagnement_img.png" alt="accompagnement">
</div>
</div>
<div class="col s12 m6">
<h5 class="m-t-0">TEST PUSH</h5>
<p>
</p>
<p>
</p>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
@@ -38,7 +38,16 @@
<a href="{{ path('talent_answer_create',{id:a.ad.id}) }}">
<i class="fa fa-pencil-square-o" aria-hidden="true"></i>
</a>
{% endif %}{{ a.status|trans }}
{% elseif a.status == "DRAFT" and a.company != null %}
<a href="{{ path('talent_spontaneous_application_create',{id:a.company.id}) }}">
<i class="fa fa-pencil-square-o" aria-hidden="true"></i>
</a>
{% endif %}
{% if a.isViewed %}
{{ 'VIEWED'|trans }}
{% else %}
{{ a.status|trans }}
{% endif %}
</td>
</tr>
{% endfor %}
@@ -73,4 +82,11 @@
var player_vimeo = new Vimeo.Player('player_vimeo');
});
</script>
<script type="text/javascript">
(function ($) {
$(function () {
$('.modal').modal();
});
})(jQuery);
</script>
{% endblock %}
@@ -21,27 +21,8 @@
{% block javascripts %}
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDYV8IJGtIoWLfXJQQvIuDQ88n2aEuRgpg&libraries=places"></script>
{% javascripts
'@vendors'
'@global'
'@talents'
output='assetic/main.dash.talent.js' filter='?uglifyjs2' %}
output='assetic/main.dashboard.talent.js' filter='?uglifyjs2' %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
<script type="text/javascript">
$.fn.datepicker.languages['fr-FR'] = {
format: 'dd/mm/yyyy',
days: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
daysShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'],
daysMin: ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'],
weekStart: 1,
months: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
monthsShort: ['Jan', 'Fev', 'Mar', 'Avr', 'Mai', 'Jun', 'Jui', 'Aou', 'Sep', 'Oct', 'Nov', 'Dec']
};
$('.datepicker').datepicker({
language: 'fr-FR'
});
$('form[name="talent_profile"]').validate();
</script>
{% endblock %}
@@ -7,26 +7,26 @@
<img src="{{ app.user.webPath | imagine_filter('profile_square') }}"
alt="{{ app.user.firstname }} {{ app.user.lastname|first|upper }}"
class="circle responsive-img"/>
<a href="#modalProfilePicture">
<a data-target="modalProfilePicture" class="modal-trigger" href="#modalProfilePicture">
<i class="fa fa-pencil" aria-hidden="true"></i>
</a>
{% elseif app.user.socialPicture is not null %}
<img src="{{ app.user.socialPicture }}"
alt="{{ app.user.firstname }} {{ app.user.lastname|first|upper }}"
class="circle responsive-img"/>
<a href="#modalProfilePicture">
<a data-target="modalProfilePicture" class="modal-trigger" href="#modalProfilePicture">
<i class="fa fa-pencil" aria-hidden="true"></i>
</a>
{% else %}
<div class="circle-letters font-2">{{ app.user.firstname|first|upper }}{{ app.user.lastname|first|upper }}</div>
<a href="#modalProfilePicture">
<a data-target="modalProfilePicture" class="modal-trigger" href="#modalProfilePicture">
<i class="fa fa-pencil" aria-hidden="true"></i>
</a>
{% endif %}
</div>
<p class="profil-name">
<b>{{ app.user.firstname }} {{ app.user.lastname|upper }}</b>
<a href="https://www.talentstube.com{{ path("talent_show", {"alias": app.user.company.alias }) }}"><b>{{ app.user.firstname }} {{ app.user.lastname|upper }}</b></a>
</p>
{% if company.addresses.billing is defined %}
<p class="profil-city">{{ company.addresses.billing.city }}
@@ -41,7 +41,7 @@
<li>
<a href="{{ path('talent_dashboard') }}">
<i class="fa fa-user"></i>
{{ 'company.menu.dashboard.label'|trans }}
{{ 'talent.menu.dashboard.label'|trans }}
</a>
</li>
<li>
@@ -1,8 +1,8 @@
{% extends 'talent/base_dashboard_talent.html.twig' %}
{% block dashContent %}
{% include 'default/props_settings.html.twig' %}
{% include 'default/flash_message.html.twig' %}
<div class=" row bg-bordered p-20">
{#<h1 class="alttitle">{{ 'profile.talent.account.title'|trans }}</h1>#}
@@ -11,18 +11,71 @@
<h4>{{ 'company.account.password.modify'|trans }}</h4>
{% if form_errors(formPw) %}
<div class="card-panel">
<span class="red-text text-darken-2">
{{ form_errors(formPw) }}
</span>
<span class="red-text text-darken-2">
{{ form_errors(formPw) }}
</span>
</div>
{% endif %}
{{ form_start(formPw) }}
{{ form_rest(formPw) }}
<br/>
<input class="btn btn-default" type="submit"
value="{{ 'company.account.password.modify.label'|trans }}"/>
<input class="btn btn-default" type="submit" value="{{ 'company.account.password.modify.label'|trans }}"/>
{{ form_end(formPw) }}
</div>
</div>
</div>
<div class=" row bg-bordered p-20">
<div class="row flexcontainer">
<div class="col s12">
<h4>{{ 'company.account.notifications.title'|trans }}</h4>
<br/>
<input type="checkbox" id="notificationChecked" name="notificationChecked" {{isNotificationAllowed ? "checked=checked":""}}/>
<label for="notificationChecked">Autoriser les notificaitons</label>
</div>
</div>
</div>
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script type="text/javascript">
$('#notificationChecked').on('click', function (event) {
let EdeclicLib = window.EdeclicLib;
let notifConsent = $('#notificationChecked').is(":checked");
if (notifConsent == true) {
//ask for subscription
var promise1 = new Promise(EdeclicLib.askForNotifications)
.then(() => $('#notificationChecked').prop('checked', true), () => $('#notificationChecked').prop('checked', false))
.catch((err) => {
$('#notificationChecked').prop('checked', false);
alert(err);
});
} else {
//require unsubscription
EdeclicLib.unsubscribe();
$.ajax({
async: true,
type: 'POST',
url: '{{ url('talent_notification_consent') }}',
data: JSON.stringify({'notificationConsent': false}),
success: function (data) {
data = JSON.parse(data);
$('#notificationChecked').prop('checked', data['notificationConsent']);
},
contentType: "application/json",
dataType: 'json'
});
}
});
</script>
{% endblock %}
@@ -3,13 +3,102 @@
{% set video = null %}
{% block title %} Profil Talent{% endblock %}
{% macro printTalentRow(form, loop_index, typeform, add) %}
{% set loop_index = loop_index|default(1000) %}
{% set typeform = typeform|default('default') %}
{% set add = add|default('false') %}
<div class="modal modal-fixed-footer {{ "modal-" ~ typeform }} {{ "modal-" ~ typeform ~ "-" ~ (loop_index) }}">
<div class="modal-content">
<div id="modal-header" class="row">
<div class="col s12">
{% if typeform == "career" %}
<h4>Expériences</h4>
{% endif %}
{% if typeform == "formation" %}
<h4>Formations & certifications</h4>
{% endif %}
{% if typeform == "language" %}
<h4>Langues</h4>
{% endif %}
<span class="right">
<a href="#!" class="modal-close">
<img src="{{ asset('/img/close-modal.svg') }}" >
</a>
</span>
</div>
</div>
<div class="row {{ "form-container-" ~ typeform }}">
{% set index = loop_index %}
{% for row in form %}
{% set type = row.vars.block_prefixes.1 %}
{% if type == "choice" %}
{% if row.vars.name == "beginMonth" ~ typeform|capitalize %}
<div class="col s12"><h5 class="required">Dates</h5></div>
<div class="col s6"><span class="undertitle">Début</span></div>
<div class="col s6"><span class="undertitle">Fin</span></div>
{% endif %}
{% if row.vars.name == "skillLanguage" %}
<div class="col s12">
{% else %}
<div class="col s3">
{% endif %}
{% elseif type == "checkbox" %}
{% if typeform == "formation" %}
<div class="col s12">
{% else %}
<div class="col s6">
{% endif %}
{% else %}
<div class="col s12">
{% endif %}
{% if type == "checkbox" %}
<p>
{{ form_widget(row, { 'attr': {'class': 'checkbox-' ~ typeform,'data-index': (index)} }) }}
{{ form_label(row) }}
</p><br />
{% else %}
{% if type != "choice" %}
{% if row.vars.block_prefixes.2 matches '{^(.*)(_tagsComma)$}' %}
<div class="m-t-10 m-b-20">
{{ form_label(row) }}
<br />
<span class="small">{{ 'profile.talent.under.tags'|trans }}</span>
{{ form_widget(row) }}
<span class="xsmall">Insérez une virgule ou appuyez sur ENTRÉE pour séparer vos mots-clés.</span>
<br />
</div>
{% else %}
{{ form_label(row) }}
{% endif %}
{% endif %}
{{ form_widget(row) }}
{% endif %}
</div>
{% endfor %}
</div>
</div>
<div class="modal-footer">
{% if add == 'add' %}
<a class="btn btn-default {{ "cancel-" ~ typeform }} left">Annuler</a>
{% else %}
<a data-type="{{ typeform }}" class="btn btn-default {{ "delete-" ~ typeform }} left">Supprimer</a>
{% endif %}
<a href="#!" data-type="{{ typeform }}" class="btn btn-default {{ typeform ~ "-save-action " }} right">Sauvegarder</a>
</div>
</div>
{% endmacro %}
{% import _self as formMacros %}
{% block dashContent %}
{% include 'default/flash_message.html.twig' %}
{{ render(controller('AppBundle:Talent:profileProgression',{'talent':app.user.company.id})) }}
<div class="bg-bordered row m-b-10 p-20">
<div class="col s12">
<span class="bg-blue-1 text-gradient font-2 fs-20">CV Vidéo générique</span>
<h4>CV Vidéo générique</h4>
<div class="switch d-inblock pull-right">
<label>
Etre visible des recruteurs
@@ -49,89 +138,145 @@
<span><strong><a href="{{ path('talent_media') }}">Choisir depuis votre videothèque</a></strong></span>
</div>
</div>
{#
<div class="row">
<div class="col s6">
<div class="input-field">
{{ form_rest(formMedia) }}
</div>
</div>
<div class="col s6 ">
<button id="submit" class="btn btn-default disabled" type="submit">Enregistrer</button>
</div>
<div class="col s12">
<span><strong><a href="{{ path('talent_media') }}">Choisir depuis votre videothèque</a></strong></span>
</div>
</div>
#}
</div>
{{ form_end(formMedia) }}
{% endif %}
</div>
</div>
{{ form_start(form) }}
<div class="bg-bordered row m-b-10 p-20">
{{ form_start(formCompany, {'attr': {'id': 'form_profile_edit','novalidate': 'novalidate'}}) }}
<div class="bg-bordered professional-info row m-b-10 p-20">
<div class="col s12">
<span class="bg-blue-1 text-gradient font-2 fs-20">Information Professionnelles</span>
<h4>Information Professionnelles</h4>
</div>
<div class="col s12">
<div class="m-t-10">
{{ form_label(form.company.tagsComma) }}
{{ form_row(formCompany.titleTalent) }}
{{ form_row(formCompany.situationTalent) }}
<div class="m-t-10 m-b-20">
{{ form_label(formCompany.tagsComma) }}
<br />
<span class="small">{{ 'profile.talent.under.tags'|trans }}</span>
<i class="fa fa-question-circle-o fs-20 color-blue1 tooltipped" data-position="top"
data-tooltip="Les mots clés permettent la mise en relation des talents et des entreprises. Vous pourrez les changer à tout moment."></i>
{{ form_widget(form.company.tagsComma) }}
{{ form_widget(formCompany.tagsComma) }}
<span class="xsmall">Insérez une virgule ou appuyez sur ENTRÉE pour séparer vos mots-clés.</span>
<br />
</div>
{{ form_row(form.company.tagsComma) }}
{{ form_row(form.company.website) }}
{{ form_row(form.company.twitter) }}
{{ form_row(form.company.linkedin) }}
{{ form_row(formCompany.descriptionTalent) }}
{{ form_row(formCompany.website) }}
{{ form_row(formCompany.twitter) }}
{{ form_row(formCompany.linkedin) }}
</div>
<div class="col s12">
<input class="btn btn-default btn-round pull-right m-t-15 m-b-20" type="submit"
value="{{ 'profile.edit.save'|trans }}"/>
</div>
</div>
{{ form_end(formCompany) }}
{# Espace Experiences professionnelle #}
{{ form_start(formCareer, {'attr': {'id': 'form_profile_career','novalidate': 'novalidate'}}) }}
{% do formCareer.career.setRendered %}
<div class="bg-bordered row m-b-10 p-20">
<div class="col s12">
<span class="bg-blue-1 text-gradient font-2 fs-20">Information personnelles</span>
<h4>Experiences</h4>
<a class="btn btn-default right" id="add_career">Ajouter une experience professionnelle</a>
</div>
<div class="col s12" id="career_container">
{% include 'talent/profile_career.html.twig' with {'carrer': career, 'edit': true} %}
{{ form_errors(formCareer.career) }}
<span class="career-holder" data-prototype="{{ formMacros.printTalentRow(formCareer.career.vars.prototype, (formCareer.career|length + 1), 'career','add')|e('html_attr') }}"></span>
{% for careerField in formCareer.career %}
{{ formMacros.printTalentRow(careerField, (loop.index - 1), 'career') }}
{% endfor %}
</div>
</div>
{{ form_end(formCareer) }}
{{ form_start(formFormation, {'attr': {'id': 'form_profile_formation','novalidate': 'novalidate'}}) }}
{% do formFormation.formation.setRendered %}
{# Espace Formation #}
<div class="bg-bordered row m-b-10 p-20">
<div class="col s12">
<h4>Formations et certifications</h4>
<a class="btn btn-default right" id="add_formation">Ajouter une formation</a>
</div>
<div class="col s12" id="formation_container">
{% include 'talent/profile_formation.html.twig' with {'formation': formation, 'edit': true} %}
{{ form_errors(formFormation.formation) }}
<span class="formation-holder" data-prototype="{{ formMacros.printTalentRow(formFormation.formation.vars.prototype, (formFormation.formation|length + 1), 'formation','add')|e('html_attr') }}"></span>
{% for formationField in formFormation.formation %}
{{ formMacros.printTalentRow(formationField, (loop.index - 1), 'formation') }}
{% endfor %}
</div>
</div>
{{ form_end(formFormation) }}
{{ form_start(formLanguage, {'attr': {'id': 'form_profile_language','novalidate': 'novalidate'}}) }}
{% do formLanguage.language.setRendered %}
<div class="bg-bordered row m-b-10 p-20">
<div class="col s12">
<h4>Langues</h4>
<a class="btn btn-default right" id="add_language">Ajouter une langues</a>
</div>
<div class="col s12" id="language_container">
{% include 'talent/profile_language.html.twig' with {'language': language, 'edit': true} %}
{{ form_errors(formLanguage.language) }}
<span class="language-holder" data-prototype="{{ formMacros.printTalentRow(formLanguage.language.vars.prototype, (formLanguage.language|length + 1 ), 'language','add')|e('html_attr') }}"></span>
{% for languageField in formLanguage.language %}
{{ formMacros.printTalentRow(languageField, (loop.index - 1), 'language') }}
{% endfor %}
</div>
</div>
{{ form_end(formLanguage) }}
{{ form_start(formProfile, {'attr': {'id': 'form_profile_edit2','novalidate': 'novalidate'}}) }}
<div class="bg-bordered personal-info row m-b-10 p-20">
<div class="col s12">
<h4>Information personnelles</h4>
</div>
<div class="col s12">
<div class="p-t-10">
<div class="col s6 p-r-10">
{{ form_row(form.firstname) }}
{{ form_row(formProfile.firstname) }}
</div>
<div class="col s6">
{{ form_row(form.lastname) }}
{{ form_row(formProfile.lastname) }}
</div>
<div class="col s6">
{{ form_row(form.birthday) }}
{{ form_row(formProfile.birthday) }}
</div>
<div class="col s6">
{{ form_row(form.gender) }}
{{ form_row(formProfile.gender) }}
</div>
<div class="col s12">
{{ form_row(form.company.address) }}
{{ form_row(form.company.addressComp) }}
{{ form_row(formProfile.company.address) }}
{{ form_row(formProfile.company.addressComp) }}
</div>
<div class="col s6 p-r-10">
{{ form_row(form.company.city) }}
{{ form_row(formProfile.company.city) }}
</div>
<div class="col s6">
{{ form_row(form.company.zipcode) }}
{{ form_row(formProfile.company.zipcode) }}
</div>
<div class="col s12">
{{ form_row(form.company.country) }}
{{ form_row(formProfile.company.country) }}
</div>
</div>
</div>
<div class="col s12">
<input class="btn btn-default btn-round pull-right m-t-15 m-b-20" type="submit"
value="{{ 'profile.edit.save'|trans }}"/>
</div>
</div>
<div class="row">
<input class="btn btn-default btn-round pull-right m-t-15" type="submit"
value="{{ 'profile.edit.submit'|trans }}"/>
</div>
{{ form_end(form) }}
{{ form_end(formProfile) }}
<div id="liste-offres" class="bg-bordered row m-t-20 m-b-10 p-20">
<div class="col s12">
<span class="bg-blue-1 text-gradient font-2 fs-20">Mes dernières offres consultées</span>
<h4>Mes dernières offres consultées</h4>
</div>
<div class="owl-carousel owl-carousel-ptalent">
{% for historyAd in historyAds %}
@@ -165,8 +310,8 @@
{% endblock %}
{% block javascripts %}
{{ parent() }}
{% if app.user.company.presentationVideo is null %}
<script type="text/javascript">
var urlDropzone = '{{ path("upload_media_presentation") }}';
var urlDelete = '';
@@ -178,25 +323,14 @@
var mediaEditTitleUrl = "{{ path('media_edit_title', {'id': 'id_video'})|escape('js') }}";
</script>
<script src="{{ asset('/js/dropzone.js') }}"></script>
<script>
$(document).ready(function () {
$('.tooltipster').tooltipster({
theme: 'tooltipster-ttube',
side: 'bottom',
{% endif %}
<script src="{{ asset('/js/profileTalent.js') }}"></script>
<script type="text/javascript">
(function ($) {
$(function () {
$('.modal').modal();
});
});
</script>
<script>
$('#searchableToggle').change(function () {
var route = '/talent/me/searchable/toggle';
$.ajax({
type: "POST",
url: route,
dataType: "json",
success: function (msg) {
console.log(msg);
}
});
});
})(jQuery);
</script>
{% endblock %}
@@ -0,0 +1,44 @@
{% for c in career %}
<div class="row row-career">
<div class="col s12">
<span class="titleCompanyCareer">{{c.companyCareer}}</span>
{% if edit is defined %}
<span class="right">
<a class="edit-career" data-index="{{ loop.index - 1 }}">
<i class="fa fa-pencil" aria-hidden="true"></i>
</a>
</span>
{% endif %}
</div>
<div class="col s12">
<span class="titleJobCareer">{{c.jobCareer}}</span>
</div>
<div class="col s12 titleDateCareer">
{% if c.beginMonthCareer is defined %}
{% set fullDate = '2018-' ~ c.beginMonthCareer ~ '-01' %}
{% if c.beginMonthCareer matches '/^\\d+$/' %}
<span>{{ fullDate|datetime }} {{ c.beginYearCareer }}</span>
{% endif %}
{% endif %}
<span>-
{% if c.actualJobCareer is defined and c.actualJobCareer == true %}
Aujourd'hui{% else %} {% set fullDateEnd = '2018-' ~ c.endMonthCareer ~ '-01' %} {% if c.endMonthCareer matches '/^\\d+$/' %}{{ fullDateEnd|datetime }}{% endif %} {{ c.endYearCareer }}{% endif %}, {{ c.placeCareer }}
</span>
</div>
<div class="col s12">
<span class="titleDescriptionCareer">{{c.descriptionCareer|nl2br}}</span>
</div>
<div class="col s12">
<div class="keywords">
{% if c.tagsComma %}
{% for keyword in c.tagsComma|split(',') %}
<div class="chip">
{{ keyword }}
</div>
{% endfor %}
{% endif %}
</div>
<hr />
</div>
</div>
{% endfor %}

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