Compare commits

...

449 Commits

Author SHA1 Message Date
llaniau bde583e14e Mise en place mentions, cgu et connexion V2 2020-07-22 08:34:05 +02:00
llaniau d803cb4bdd cgu v2.0.1 2020-07-20 18:14:30 +02:00
llaniau 1a987283b7 Mise en place api pour upload CV ds web app 2020-07-20 14:39:02 +02:00
llaniau d72095f615 SQL a passer en pre prod/prod4 2020-07-15 18:08:50 +02:00
llaniau 90be4bfea7 update bug company 2020-07-15 16:26:36 +02:00
llaniau de07e5f26c Mise à jour témoignage V2.0.1 2020-07-15 16:07:29 +02:00
llaniau 910f9645d8 Mise en place upload video presentation cote Symfony 2020-07-08 19:49:57 +02:00
llaniau 227fe09a94 Push de fin de journée du 07/07 : Mise en place connection plateforme V2 2020-07-07 17:14:00 +02:00
llaniau c660c11879 Commit de mise en place page offre d'emploi video V2 2020-07-06 17:04:18 +02:00
llaniau 8899a93ea5 mise a jour du menu du haut 2020-07-06 16:21:39 +02:00
llaniau 305bf4deb3 Mise en place candidature video Design V2 2020-07-06 16:12:06 +02:00
llaniau d564ca1b85 Modif template V2 2020-07-06 10:26:23 +02:00
llaniau b3135e62f5 modif Company 2020-06-30 14:52:15 +02:00
llaniau dc2872e178 modif entity company 2020-06-30 14:46:40 +02:00
llaniau cf057c9c63 V2.0.1 2020-06-29 17:15:02 +02:00
llaniau e5c46b2985 Mise en place bootstrap V2.0.1 2020-06-29 15:44:07 +02:00
Sébastien 47d571baae Fix : Button disabled 2020-02-12 09:26:05 +01:00
Sébastien f5f0c39dd7 Feat : Update style of answer page 2020-02-04 08:15:33 +01:00
Grégoire c83b71853b feat and fix : statut of answer last message / add no empty message / delete statut CHAT 2020-01-14 16:05:31 +01:00
Grégoire 8bc3165995 fix : ajaxRecStat on user null for google robot (3) 2020-01-03 11:13:20 +01:00
Grégoire dffcf66ce3 fix : ajaxRecStat on user null for google robot (2) 2020-01-03 11:09:31 +01:00
Grégoire 41c046392e fix : ajaxRecStat on user null for google robot 2020-01-03 10:59:25 +01:00
Grégoire e81e2dce9d fix : problem saving company user parameters
hide birthday field (date issue) /entreprise/me/mon_compte
2020-01-03 10:25:26 +01:00
Grégoire 3ffc3c8d3b fix : sendtime + message video + contact_talent 2020-01-02 15:29:55 +01:00
Grégoire e35cb0c461 fix : link mail answer spontaneous 2019-12-30 16:22:13 +01:00
Grégoire db084707bb fix : search bar v2 2019-12-30 13:20:11 +01:00
Grégoire 1a9fff778a fix : search bar 2019-12-30 12:27:11 +01:00
Sébastien 90a38edb29 Fix: Add new noreply email 2019-11-28 08:31:58 +01:00
Sébastien fc1b4a3e2a Feat: add popup when change company user email 2019-11-26 08:52:59 +01:00
Sebastien Glatz 94a946e36d Fix: little space fix 2019-11-22 16:12:09 +01:00
Sébastien f06cbe296f Fix: Banner color and padding 2019-11-21 15:56:48 +01:00
Sébastien e2a98aaed3 Feat: Edit form to add bootstrap style on input 2019-11-21 15:36:32 +01:00
Sébastien beee2c5635 Feat: Add field email on Company Edition 2019-11-21 14:33:42 +01:00
Grégoire bca29b9547 delete TalentController api 2019-11-05 14:07:50 +01:00
Grégoire 823a781d3a minor fix Push Notification 2019-11-05 11:24:34 +01:00
Grégoire 2a9e728354 correctif Menu 2019-10-28 17:03:46 +01:00
Grégoire 074c125f8c Redirect monCompte API 2019-10-28 14:36:14 +01:00
Grégoire 0b2898d170 Add twitter, linkedin … for getIdCard() 2019-10-15 09:57:37 +02:00
Grégoire 12525dbf16 Merge branch 'master' of https://git.e-declic.net/talents-tube/website 2019-10-14 16:43:13 +02:00
Grégoire 4a17adf687 add phone / linkedin / twitter … field for API form 2019-10-14 16:32:39 +02:00
Huaoe f4e412d792 Merge branch 'master' of https://git.e-declic.net/talents-tube/website 2019-10-11 15:48:44 +02:00
Grégoire 61786797c8 API : add getUserSubscriptionToPush (old : isUserSubscribedToPush) 2019-10-11 15:17:43 +02:00
Huaoe 57587a4a97 Merge branch 'master' of https://git.e-declic.net/talents-tube/website 2019-10-11 14:29:20 +02:00
Grégoire fd048d5a0e Merge branch 'master' of https://git.e-declic.net/talents-tube/website 2019-10-11 14:19:28 +02:00
Grégoire 229893dc95 API : add isUserSubscribedToPush 2019-10-11 14:19:02 +02:00
Grégoire 26c6e2103d API : ad visit record for companies and ads pages 2019-10-10 16:59:08 +02:00
Grégoire 8830b5ccde Set isPrivate true by default for companies 2019-10-10 16:57:50 +02:00
Huaoe 2bc2d87b8c UpdateUser fix request->request 2019-10-10 16:24:23 +02:00
Huaoe 278c558c9e Merge branch 'master' of https://git.e-declic.net/talents-tube/website 2019-10-10 14:49:02 +02:00
Huaoe 98545707b3 photo return 2019-10-09 17:01:58 +02:00
Sébastien 52d105efb4 Feat: add field phone and edit set extra 2019-10-09 11:31:53 +02:00
Sébastien 027c3fd2d1 Fix: presentationVideo syntax error 2019-10-09 11:27:52 +02:00
Grégoire 824ff9f1ec Change query / no selecting talent video in chat 2019-10-09 10:48:56 +02:00
Grégoire 606e29280b Fix bug draft message show app 2019-10-08 16:05:19 +02:00
Sébastien 3a29c647dd Fix: serialize tags for answer 2019-10-07 15:15:18 +02:00
Huaoe 57dd053693 Merge branch 'master' of https://git.e-declic.net/talents-tube/website 2019-10-07 09:51:42 +02:00
Huaoe e57173f835 upload profil picture 2019-10-07 09:51:35 +02:00
Sébastien 8f4ef35ddf Feat: Serialize publicTag for offer detail 2019-10-04 13:48:37 +02:00
Sébastien 346b788f83 Feat: Add titleTalent in extra to update from app 2019-10-04 13:48:08 +02:00
Sébastien edf35c74e8 Feat: Serialize territory type 2019-10-01 18:11:08 +02:00
Sébastien 75f2bbf6a7 Fix: php syntax error 2019-10-01 18:10:15 +02:00
Grégoire 0cbe670c90 change order for entreprises 2019-10-01 16:28:52 +02:00
Sébastien 2d595c1c3a Serialize territories for ad detail 2019-09-26 11:41:08 +02:00
Sébastien 98ebde7e72 Add linkedin twitter and website data for app 2019-09-26 11:40:36 +02:00
Huaoe d607962523 style.css generated 2019-09-16 16:20:09 +02:00
Huaoe b4ae35f4a6 yellow banner Off 2019-09-16 16:18:44 +02:00
Huaoe be37e97a19 fix PWA link 2019-09-16 15:50:53 +02:00
Huaoe d21febaaa1 css update 2019-09-16 14:54:03 +02:00
Huaoe 6acba9c082 css + tag manager 2019-09-16 14:43:38 +02:00
Huaoe 65147a9ac6 dev BDDD paswword 2019-09-13 14:00:00 +02:00
Huaoe a366ed749e merge Ad repo 2019-09-12 12:02:22 +02:00
Huaoe 87f6956958 isPrivate 2019-09-12 12:00:27 +02:00
Huaoe 3a78ac68f2 isPrivate in search ad 2019-09-11 16:21:11 +02:00
Sébastien 39774c1ed9 Merge branch 'master' of https://git.e-declic.net/talents-tube/website 2019-09-10 15:40:15 +02:00
Sébastien bd477b3354 Fix: ads order list 2019-09-10 15:38:13 +02:00
Sébastien 86e33a5e0a Fix: mysql-client to mariadb-client 2019-09-10 08:45:20 +02:00
Huaoe 365c71751d assetic fix 2019-09-09 17:27:40 +02:00
Huaoe 46399bd8ed typo notifications 2019-09-09 15:07:52 +02:00
Huaoe c3a8fa73cd Makefile CLIENT name 2019-09-09 14:08:36 +02:00
Huaoe fe7c9992a5 Makefile + Security spaces removal 2019-09-09 10:40:03 +02:00
Huaoe 1922ab328b uncomment video de la home 2019-09-09 09:24:53 +02:00
Huaoe a91f2df040 Update Docker SEb 2019-09-06 16:41:05 +02:00
Huaoe 1a4e81963e delete css 2019-09-04 15:47:19 +02:00
Huaoe 5ae61ff2c7 sass gen
don't know if delete would be good
2019-09-04 15:44:25 +02:00
Huaoe 995bb0b43e Merge branch '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-04 15:42:48 +02:00
Huaoe 4c841aaafa use Authentication\Token\UsernamePasswordToken 2019-09-02 17:15:29 +02:00
Huaoe 49abf8d86f purge elastica + db user pass 2019-09-02 14:28:32 +02:00
Huaoe e3ca74f09b sass execution 2019-09-02 14:08:06 +02:00
Huaoe 6818e82c92 style sass transform stalling 2019-09-02 14:07:47 +02:00
Huaoe 2ea95f529e config fos elastica +backup 2019-09-02 11:11:55 +02:00
Huaoe 6cec286886 Merge branch 'push'
# Conflicts:
#	volume/www/website/www/app/config/fos_elastica.yml
#	volume/www/website/www/src/AppBundle/Entity/User.php
#	volume/www/website/www/vendor/bin/doctrine
#	volume/www/website/www/vendor/bin/doctrine-dbal
#	volume/www/website/www/vendor/bin/security-checker
#	volume/www/website/www/vendor/bin/simple-phpunit
#	volume/www/website/www/web/assetic/main.dash.talent.js
#	volume/www/website/www/web/css/styles.css
2019-09-02 11:11:05 +02:00
Huaoe f38d22d70d delete vendors 2019-09-02 10:37:49 +02:00
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 ddc6b18d0a Fix : erreur 500 talent non connecté 2018-08-24 12:20:43 +02:00
Thomas MONCHICOURT 39143908af Feat : careers #7104 @2h 2018-08-24 12:16:16 +02:00
Thomas MONCHICOURT 6033516273 Fix : erreur 500 sur talent en tant qu’admin 2018-08-23 17:10:11 +02:00
Thomas MONCHICOURT b2b075ffe7 Feat : macro form pour prototype career 2018-08-23 17:06:48 +02:00
Thomas MONCHICOURT 73a44a011d Fix : double tags input 2018-08-23 16:39:01 +02:00
Thomas MONCHICOURT 91c7ebb145 Feat : form experience #7104 @2h 2018-08-23 16:38:13 +02:00
Thomas MONCHICOURT 57299b841e Fix : check birthday if empty talent 2018-08-23 16:09:03 +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 fb11613b7c Feat : rechargement de la dropzone au chargement de video sur les réponse 2018-08-23 15:31:54 +02:00
Thomas MONCHICOURT e13ef32197 Merge branch 'master' into develop 2018-08-23 15:23:18 +02:00
Thomas MONCHICOURT e70c1c7f5e Feat : dropzone reload 2018-08-23 15:19:46 +02:00
Thomas MONCHICOURT 0c9c4f0fc2 Fix : video vimeo pour dev 2018-08-23 15:19:37 +02:00
Thomas MONCHICOURT 5cd78b272a Fix : video égérie talent 2018-08-23 14:56:42 +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 f3597146ad Feat : ajout title analitycs annonce #7115 @0h10 2018-08-23 14:15:12 +02:00
Thomas MONCHICOURT f52f49ce9a Fix : css form parent probleme 2018-08-23 13:57:16 +02:00
Thomas MONCHICOURT 0b6a04e8d0 Feat : form validation talent + datepicker 2018-08-23 12:32:30 +02:00
Thomas MONCHICOURT 0dfc9af863 Feat : modification couleur cookie bar 2018-08-22 16:48:40 +02:00
Thomas MONCHICOURT fc548bc74c Fix: condition existance vidéo 2018-08-22 16:17:36 +02:00
Thomas MONCHICOURT 5d78b30bef Feat : generation css suite merge 2018-08-22 16:05:10 +02:00
Thomas MONCHICOURT 7372b03e5c Merge branch '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/_variables.scss
#	volume/www/website/www/web/sass/modules/_app.scss
2018-08-22 16:04:32 +02:00
Thomas MONCHICOURT eadb2a397f Fix : probleme connexion apres login 2018-08-22 11:34:58 +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 6f5118e500 Feat : cookie bar #7105 @1h 2018-08-21 12:30:58 +02:00
Thomas MONCHICOURT a38b63f87f Feat : form career pour talents #7104 @5h 2018-08-21 11:01:25 +02:00
Thomas MONCHICOURT 85abb49683 Feat : ajout readmore js 2018-08-16 14:38:26 +02:00
Thomas MONCHICOURT 6fb0ad4d40 Fix : message 2018-08-14 15:23:14 +02:00
Thomas MONCHICOURT 1ab9cf6703 Feat : ajout du twig intl extension 2018-08-14 14:50:20 +02:00
Thomas MONCHICOURT e8ab042fe5 Feat : modificaion recommandation 2018-08-14 14:40:44 +02:00
Thomas MONCHICOURT 009bea43ef feat: ajout champ type poste #6838 2018-08-13 17:23:35 +02:00
Thomas MONCHICOURT 0abfa0dca8 Feat : ajout du readmorejs pour les message de candidature #6945 @0h30 2018-08-13 11:04:12 +02:00
Thomas MONCHICOURT 7510b8022a Feat : correction recettage 2018-08-13 10:38:06 +02:00
Thomas MONCHICOURT 69e6f6c16b feat : Correction corentin reponse video #6945 @2h 2018-08-09 12:11:32 +02:00
Thomas MONCHICOURT 4981a3d310 Feat : test unitaire 2018-08-08 11:28:13 +02:00
Thomas MONCHICOURT 13ec5f3d34 Fix : condition territoire prefixe 2018-08-07 16:28:18 +02:00
Thomas MONCHICOURT a08b13591a Merge branch 'develop' of https://git.e-declic.net/talents-tube/website into develop 2018-08-07 16:24:21 +02:00
Thomas MONCHICOURT a470518403 Fix : erreur iframe 2018-08-07 16:24:15 +02:00
Maxime Thévenot 64e76b29f5 Fix : update conf for preprod rebuilding 2018-08-07 16:15:53 +02:00
Maxime Thévenot 983e0b03be Merge branch 'develop' of https://git.e-declic.net/talents-tube/website into develop
# Conflicts:
#	volume/www/website/www/app/Resources/views/default/index.html.twig
2018-08-07 15:44:43 +02:00
Maxime Thévenot 45cb8896de Feat : update territory carrousels 2018-08-07 15:42:21 +02:00
Thomas MONCHICOURT 9bf7065984 Fix : order réponse dashboard talent 2018-08-07 15:24:30 +02:00
Thomas MONCHICOURT 243d1e3945 Fix : img talent homepage 2018-08-07 15:13:35 +02:00
Thomas MONCHICOURT 16951ee895 Feat : design dashboard 2018-08-07 14:54:01 +02:00
Thomas MONCHICOURT e5ce4c7127 Feat: ajout nouveau champ sendTime #6945 @0h20 2018-08-07 14:27:25 +02:00
Thomas MONCHICOURT 18c12c3b3a Feat : modification design #6945 @2h 2018-08-07 10:45:45 +02:00
Thomas MONCHICOURT 13adc1b87c Fix : design retour corentin #6945 @1h15 2018-08-03 11:54:53 +02:00
Thomas MONCHICOURT 75e0f4b99e Fix : dropzone error 2018-08-03 11:53:59 +02:00
Thomas MONCHICOURT 9d659eea7e Fix : count pour candidature spontanée 2018-08-01 16:35:00 +02:00
Thomas MONCHICOURT 8a987d48c1 Feat : modification listing answer 2018-08-01 16:32:58 +02:00
Thomas MONCHICOURT e6d9c72f62 Feat : Candidature spontané talent #6945 @0h20 2018-08-01 15:13:10 +02:00
Thomas MONCHICOURT a92ab7f3cc Feat : Url candidature 2018-08-01 15:08:06 +02:00
Thomas MONCHICOURT d1c37dfd23 Merge branch 'develop' of https://git.e-declic.net/talents-tube/website into develop 2018-08-01 14:57:36 +02:00
Thomas MONCHICOURT a9b16a7a84 Feat : Ajout du détail d’une réponse pour le talent #6945 @1h 2018-08-01 14:57:31 +02:00
Thomas MONCHICOURT 962b9f0633 Fix : facebook connexion
# Conflicts:
#	volume/www/website/www/src/AppBundle/Security/Core/User/FOSUBUserProvider.php
2018-08-01 13:38:56 +02:00
Maxime Thévenot d413fee495 Merge branch 'develop' of https://git.e-declic.net/talents-tube/website into develop 2018-08-01 13:36:33 +02:00
Maxime Thévenot 058763fdbb Feat : update territory on index page 2018-08-01 13:36:28 +02:00
Thomas MONCHICOURT b19184b11b Fix : Correction dashboard recommendation 2018-08-01 11:26:20 +02:00
Thomas MONCHICOURT 642958639c Fix : admin dashboard 2018-08-01 11:24:30 +02:00
Thomas MONCHICOURT 353151a440 Merge branch 'feat/reponse-video' into develop
# Conflicts:
#	volume/www/website/www/app/Resources/views/company/ad_table_listing.html.twig
#	volume/www/website/www/app/Resources/views/company/answer_show.html.twig
#	volume/www/website/www/web/css/styles.css.map
2018-08-01 11:13:37 +02:00
Thomas MONCHICOURT 4bb64ce3e2 Feat : Tableau candidatures #6945 @0h15 2018-08-01 11:09:40 +02:00
Thomas MONCHICOURT c9d52ed240 Feat : Page candidature #6945 @1j 2018-08-01 10:41:09 +02:00
Thomas MONCHICOURT 0c808e2513 Feat : process annonce #6945 @2h 2018-08-01 09:36:46 +02:00
Thomas MONCHICOURT 7e22a202c2 feat : process réponse en vidéo style #6945 @2h30 2018-07-31 12:34:17 +02:00
Maxime Thévenot 8907b9232a Feat : update ad sort order on company_show 2018-07-31 09:58:30 +02:00
Thomas MONCHICOURT 1f588171ef Feat : réponse en vidéo #6945 @2h 2018-07-30 17:00:46 +02:00
Maxime Thévenot 681e5add11 Fix : update typo in nginx conf 2018-07-30 16:28:34 +02:00
Maxime Thévenot 16145c81c0 Conf : update preprod nginx conf 2018-07-30 16:25:30 +02:00
Maxime Thévenot 8a3f502129 Merge branch 'feat/recommandation' into develop 2018-07-30 15:58:54 +02:00
Maxime Thévenot aad4dcb110 Feat : add admin space for recommendation 2018-07-30 14:58:56 +02:00
Thomas MONCHICOURT 129dd22cbb Feat: réponses vidéo #6945 @1h 2018-07-30 12:23:34 +02:00
Thomas MONCHICOURT 2387b1c922 Feat: reponse #6945 @0h15 2018-07-27 17:33:28 +02:00
Thomas MONCHICOURT c43a7655e7 Feat : design page reponse #6945 @2h 2018-07-27 17:10:53 +02:00
Thomas MONCHICOURT 55e8eaf6cd Feat: Design page reponse #6945 @1h30 2018-07-27 12:25:40 +02:00
Thomas MONCHICOURT db9f554792 Merge branch 'feat/recommandation' into feat/reponse-video 2018-07-27 11:20:01 +02:00
Thomas MONCHICOURT 820cc048eb feat: reponse video #6945 @1h30 2018-07-26 16:12:08 +02:00
Maxime Thévenot 1c99889e89 Fix : add missing quote 2018-07-26 15:25:38 +02:00
Maxime Thévenot 552c9ecf9e Merge branch 'feat/upload-video-nologin' into develop
# Conflicts:
#	volume/www/website/www/web/css/styles.css.map
2018-07-26 15:17:54 +02:00
Maxime Thévenot 8bb8afbee7 Feat : add cv import page without answer 2018-07-26 15:17:30 +02:00
Thomas MONCHICOURT daee96533d feat: réponse en vidéo #6945 @3h 2018-07-26 12:24:11 +02:00
root c09f6f0b62 Conf : git erver side updated files 2018-07-26 10:05:47 +02:00
Maxime Thévenot 7494173cde Fix : set store in noindex nofollow 2018-07-26 09:25:06 +02:00
Maxime Thévenot 0dcc5111f4 Fix: set noindex on spontaneous answer 2018-07-25 16:11:44 +02:00
Maxime Thévenot 4cdd9dc256 WIP : cv import pages 2018-07-25 14:17:40 +02:00
Thomas MONCHICOURT 2a2ef6673d feat : Videotheque + lien partage #5925 @2h 2018-07-24 16:55:52 +02:00
Maxime Thévenot 00f38cf4f7 Fix : change fosuser provider and fix admin connection 2018-07-24 15:52:16 +02:00
Thomas MONCHICOURT f3d618b640 Feat: modificiation videotheque #5925 @1h20 2018-07-23 16:59:57 +02:00
Maxime Thévenot 5ab04175b8 Feat : update tabs in company dashboard 2018-07-23 16:55:48 +02:00
Maxime Thévenot ce3eda07b4 Feat : add link to answers on ad title in list 2018-07-23 16:24:19 +02:00
Maxime Thévenot 3b4ebf343a Feat : delete recommendation process 2018-07-23 14:50:35 +02:00
Thomas MONCHICOURT c9b4a2b30f Feat : Mise en place d’un message prevention sur safari #6307 @0h15 2018-07-20 14:33:38 +02:00
Thomas MONCHICOURT acb87af087 Merge branch 'feat/recommandation' of https://git.e-declic.net/talents-tube/website into feat/recommandation 2018-07-20 14:12:52 +02:00
Thomas MONCHICOURT 8a14b86f03 Feat : modification listing front 2018-07-20 14:12:48 +02:00
Maxime Thévenot c05edac0fd Fix : typo in modale naming 2018-07-20 09:19:53 +02:00
Thomas MONCHICOURT 7a2be30f15 Feat : style css merge 2018-07-19 17:34:43 +02:00
Thomas MONCHICOURT e183729687 Merge branch 'feat/recommandation' of https://git.e-declic.net/talents-tube/website into feat/recommandation
# Conflicts:
#	volume/www/website/www/src/AppBundle/Controller/RecommendationController.php
#	volume/www/website/www/web/css/styles.css
2018-07-19 17:28:10 +02:00
Thomas MONCHICOURT ce498eb526 Feat : Mise en place des recommandation en front #6838 @2h 2018-07-19 17:26:34 +02:00
Maxime Thévenot 4d09bf2ddf Feat : add modal to see recommendation video 2018-07-19 17:24:51 +02:00
Maxime Thévenot d8ee626298 Feat : add toggle for recommendation visibility 2018-07-19 15:56:57 +02:00
Maxime Thévenot 50e9f45369 Feat : Add tabs to navigate between pages - recommendations 2018-07-19 15:19:03 +02:00
Maxime Thévenot c9663ab0d9 Feat : update css, add link to recommendations 2018-07-19 14:56:27 +02:00
Thomas MONCHICOURT 33fc07121b Fix : suite merge 2018-07-19 11:31:01 +02:00
Thomas MONCHICOURT a71e6692a6 Merge branch 'feat/recommandation' of https://git.e-declic.net/talents-tube/website into feat/recommandation
# Conflicts:
#	volume/www/website/www/src/AppBundle/Controller/RecommendationController.php
2018-07-19 11:29:26 +02:00
Thomas MONCHICOURT 2ef6707342 Feat : Recommendation front #6838 @2h30 2018-07-19 11:27:20 +02:00
Maxime Thévenot 728f16ee06 Feat : add recommendation lsit pages for talent 2018-07-19 11:25:53 +02:00
Maxime Thévenot 05d9bcced2 Feat : add nullable to relationType field 2018-07-19 11:04:29 +02:00
Thomas MONCHICOURT 7d2f3353eb Merge branch 'feat/recommandation' of https://git.e-declic.net/talents-tube/website into feat/recommandation 2018-07-18 17:32:24 +02:00
Thomas MONCHICOURT 5d4249984d Feat : Mise en place controller et check talent #6838 @2h 2018-07-18 17:32:21 +02:00
Maxime Thévenot d7114a0219 Feat : add recommandation form 2018-07-18 14:48:14 +02:00
Maxime Thévenot 672d2148c2 Feat : add recommendation entity and relations 2018-07-18 14:32:54 +02:00
17338 changed files with 780555 additions and 148548 deletions
+6
View File
@@ -10,3 +10,9 @@
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
volume/www/website/www/.vscode/settings.json
volume/www/website/www/app/config/jwt/private.pem
volume/www/website/www/app/config/jwt/public.pem
volume/www/website/www/web/sql/upload.pgsql
+23 -7
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,16 +14,23 @@ $(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))
$(error Exiting)
docker-build:
$(DC) pull
$(DC) build
$(DC) up -d
@@ -57,8 +64,8 @@ config:
@echo " --> Generating mysql auth file"
@cat conf/env/store-mysql.env \
| python -c "import sys; import string; v=sys.stdin.readline().split('MYSQL_ROOT_PASSWORD=')[1]; print(string.Template(open('conf/build/mysql/my.cnf').read()).substitute({'PASSWORD':v}))" \
| docker exec -i $(CLIENT).store-mysql.$(ENV) sh -c 'cat > /root/.my.cnf'
| python -c "import sys; import string; v=sys.stdin.readline().split('MYSQL_ROOT_PASSWORD=')[1]; print(string.Template(open('conf/build/mysql/my.cnf').read()).substitute({'PASSWORD':v}))" \
| docker exec -i $(CLIENT).store-mysql.$(ENV) sh -c 'cat > /root/.my.cnf'
db-backup-all: db-backup-website db-backup-store
@@ -76,9 +83,14 @@ db-backup-store:
db-restore-all: db-restore-website db-restore-store
db-backup-script:
@mkdir -p backup/
@docker exec $(CLIENT).postgres.$(ENV) pg_dumpall --database database -c -U postgres > backup/postgres_$(ENV)_`date +%d-%m-%Y"_"%H_%M_%S`.sql
@docker exec $(CLIENT).store-mysql.$(ENV) mysqldump -uroot database > backup/store-mysql_$(ENV)_`date +%d-%m-%Y"_"%H_%M_%S`.sql
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 +107,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 +116,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
+31 -24
View File
@@ -1,47 +1,54 @@
FROM php:7.1-fpm
FROM php:7.1-fpm-buster
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\ndeb http://archive.debian.org/debian/ jessie-backports 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
&& 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
&& /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 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 mongodb \
&& docker-php-ext-enable geoip redis imagick mongodb
&& 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 mariadb-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 \
&& 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
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
&& 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
&& 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
&& chmod a+x /usr/local/bin/drush
RUN (npm install -g uglify-js) \
&& ln -s /usr/bin/nodejs /usr/local/bin/node
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/
&& rm -rf /var/lib/apt/lists/
+3 -3
View File
@@ -1,4 +1,4 @@
FROM php:7.1-fpm
FROM php:7.1-fpm-buster
ENV TERM=xterm
@@ -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 mariadb-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%%"
+13
View File
@@ -0,0 +1,13 @@
version: '3'
services:
nginx:
networks:
- default
- frontnginx_front
networks:
default:
driver: bridge
frontnginx_front:
external: true
+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/
+9 -31
View File
@@ -1,44 +1,22 @@
upstream website_php-preprod {
server tt.website-preprod:9000;
server tt-website.php.preprod:9000;
}
upstream store_php-preprod {
server tt.store-preprod:9000;
server tt-website.store-php.preprod:9000;
}
server {
listen 80;
server_name pp.talentstube.com;
return 301 https://pp.talentstube.com$request_uri;
}
server {
listen 443 ssl http2;
listen 80;
server_name pp.talentstube.com;
client_max_body_size 500M;
root /home/www/website/www/web;
root /home/www/pp.talentstube.com/www/web;
access_log /home/www/website/log/access.log vhosts;
error_log /home/www/website/log/error.log;
access_log /home/www/pp.talentstube.com/log/access.log vhosts;
error_log /home/www/pp.talentstube.com/log/error.log;
ssl on;
ssl_certificate /etc/ssl/private/talentstube.com.chain.crt;
ssl_certificate_key /etc/ssl/private/talentstube.com.key;
ssl_session_timeout 24h;
ssl_session_cache shared:SSL:10m;
ssl_dhparam /etc/ssl/dhparam.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_prefer_server_ciphers on;
location / {
# try to serve file directly, fallback to app.php
try_files $uri /app.php$is_args$args;
}
@@ -85,7 +63,7 @@ server {
# ---- PRESTASHOP ----
location ^~ /store/ {
root /home/www/pp.talentstube.com;
root /home/www/website;
index index.php;
try_files $uri $uri/ /www/index.php;
@@ -115,6 +93,6 @@ server {
sendfile off;
include /home/www/pp.talentstube.com/conf/redirect.conf;
include /home/www/pp.talentstube.com/conf/expires.conf;
include /home/www/website/conf/redirect.conf;
include /home/www/website/conf/expires.conf;
}
+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;
+49
View File
@@ -2,3 +2,52 @@ 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
## For Js : use assetic commande inside server container
- do a cache-clear to update the assectic.yml file
bin/console cache:clear --env=prod --no-debug
- then
php bin/console assetic:dump --env=prod --no-debug
## 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;
@@ -0,0 +1,29 @@
<?php declare(strict_types=1);
namespace Application\Migrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20200715123752 extends AbstractMigration
{
public function up(Schema $schema) : void
{
// this up() migration is auto-generated, please modify it to your needs
$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'postgresql', 'Migration can only be executed safely on \'postgresql\'.');
$this->addSql('ALTER TABLE company ADD cv VARCHAR(255) DEFAULT NULL');
}
public function down(Schema $schema) : void
{
// this down() migration is auto-generated, please modify it to your needs
$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'postgresql', 'Migration can only be executed safely on \'postgresql\'.');
$this->addSql('CREATE SCHEMA public');
$this->addSql('ALTER TABLE company DROP cv');
}
}
@@ -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>
@@ -0,0 +1,198 @@
<div>
{% if is_granted("IS_AUTHENTICATED_REMEMBERED") %}
{{ 'layout.logged_in_as'|trans({'%username%': app.user.username}, 'FOSUserBundle') }} |
<a href="{{ path('fos_user_security_logout') }}">
{{ 'layout.logout'|trans({}, 'FOSUserBundle') }}
</a>
{% else %}
<a href="{{ path('fos_user_security_login') }}">{{ 'layout.login'|trans({}, 'FOSUserBundle') }}</a>
{% endif %}
</div>
{% for type, messages in app.session.flashBag.all %}
{% for message in messages %}
<div class="{{ type }}">
{{ message|trans({}, 'FOSUserBundle') }}
</div>
{% endfor %}
{% endfor %}
{% block fos_user_content %}
<div>
{{ form_start(register_form, {'method': 'post', 'action': path('fos_user_registration_register'), 'attr': {'class': 'fos_user_registration_register'}})
}}
{{ form_errors(register_form) }}
<!-- Signup -->
<div id="signup" style="display: none; opacity: 0;" data-target-group="idForm">
<!-- Title -->
<header class="text-center mb-5">
<h2 class="h4 mb-0">Créer un compte entreprise</h2>
<p>Remplissez tous les champs.</p>
</header>
<!-- End Title -->
<!-- Input -->
<div class="js-form-message mb-3">
<div class="js-focus-state input-group form">
<div class="input-group-prepend form__prepend">
<span class="input-group-text form__text">
<i class="fa fa-user form__text-inner"></i>
</span>
</div>
{# {{ form_row(register_form.firstname, {'label': 'Prénom'}) }} #}
{{ form_widget(register_form.firstname, { 'attr': {'class': "form-control form__input",
'placeholder': 'Prénom' , 'aria-label':'Prénom', 'data-error-class' : 'u-has-error', 'data-success-class' : 'u-has-success', 'data-msg' : 'Entrez un prénom valide'} }) }}
{# <input type="email" class="form-control form__input" name="email" required placeholder="Email"
aria-label="Email" data-msg="Please enter a valid email address." data-error-class="u-has-error"
data-success-class="u-has-success"> #}
</div>
</div>
<!-- End Input -->
<!-- Input -->
<div class="js-form-message mb-3">
<div class="js-focus-state input-group form">
<div class="input-group-prepend form__prepend">
<span class="input-group-text form__text">
<i class="fa fa-user form__text-inner"></i>
</span>
</div>
{# {{ form_row(register_form.lastname, {'label': 'Nom'}) }} #}
{{ form_widget(register_form.lastname, { 'attr': {'class': "form-control form__input",
'placeholder': 'Nom' , 'aria-label':'Nom', 'data-error-class' : 'u-has-error', 'data-success-class' : 'u-has-success', 'data-msg' : 'Entrez un nom valide'} }) }}
{# <input type="email" class="form-control form__input" name="email" required placeholder="Email"
aria-label="Email" data-msg="Please enter a valid email address." data-error-class="u-has-error"
data-success-class="u-has-success"> #}
</div>
</div>
<!-- End Input -->
<!-- Input -->
<div class="js-form-message mb-3">
<div class="js-focus-state input-group form">
<div class="input-group-prepend form__prepend">
<span class="input-group-text form__text">
<i class="fa fa-envelope form__text-inner"></i>
</span>
</div>
{# {{ form_row(register_form.email, {'label': 'E-mail'}) }} #}
{{ form_widget(register_form.email, { 'attr': {'class': "form-control form__input",
'placeholder': 'Email' , 'aria-label':'Email', 'data-error-class' : 'u-has-error', 'data-success-class' : 'u-has-success', 'data-msg' : 'Entrez un email valide'} }) }}
{# <input type="email" class="form-control form__input" name="email" required placeholder="Email"
aria-label="Email" data-msg="Please enter a valid email address." data-error-class="u-has-error"
data-success-class="u-has-success"> #}
</div>
</div>
<!-- End Input -->
<!-- Input -->
<div class="js-form-message mb-3">
<div class="js-focus-state input-group form">
<div class="input-group-prepend form__prepend">
<span class="input-group-text form__text">
<i class="fa fa-star form__text-inner"></i>
</span>
</div>
{# {{ form_row(register_form.username, {'label': 'Username'}) }} #}
{{ form_widget(register_form.username, { 'attr': {'class': "form-control form__input",
'placeholder': 'Identifiant' , 'aria-label':'username', 'data-error-class' : 'u-has-error', 'data-success-class' : 'u-has-success', 'data-msg' : 'Entrez un email valide'} }) }}
{# <input type="email" class="form-control form__input" name="email" required placeholder="Email"
aria-label="Email" data-msg="Please enter a valid email address." data-error-class="u-has-error"
data-success-class="u-has-success"> #}
</div>
</div>
<!-- End Input -->
<!-- Input -->
<div class="js-form-message mb-3">
<div class="js-focus-state input-group form">
<div class="input-group-prepend form__prepend">
<span class="input-group-text form__text">
<i class="fa fa-lock form__text-inner"></i>
</span>
</div>
{# {{ form_row(register_form.plainPassword.first, {'label': 'Mot de passe'}) }} #}
{{ form_widget(register_form.plainPassword.first, { 'attr': {'class': "form-control form__input",
'placeholder': 'Mot de passe' , 'aria-label':'Mot de passe', 'data-error-class' : 'u-has-error', 'data-success-class' : 'u-has-success', 'data-msg' : 'Mot de passe invalide'} }) }}
</div>
</div>
<!-- End Input -->
<!-- Input -->
<div class="js-form-message mb-3">
<div class="js-focus-state input-group form">
<div class="input-group-prepend form__prepend">
<span class="input-group-text form__text">
<i class="fa fa-key form__text-inner"></i>
</span>
</div>
{# {{ form_row(register_form.plainPassword.second, {'label': 'Répéter le mot de passe'}) }} #}
{{ form_widget(register_form.plainPassword.second, { 'attr': {'class': "form-control form__input",
'placeholder': 'Répéter le mot de passe' , 'aria-label':'Répéter le mot de passe', 'data-error-class' : 'u-has-error', 'data-success-class' : 'u-has-success', 'data-msg' : 'Mot de passe invalide'} }) }}
</div>
</div>
{% if destination_login is defined %}
<input type="hidden" name="_target_path" value="{{ destination_login }}" />
{% endif %}
<!-- End Input -->
<div class="mb-3">
{% set label = 'user.cgu.label'|trans({'%link_start%' : '<a style="margin-bottom:25px;" target="_blank" href="'~path('service_cgu')~'">', '%link_end%' : '</a>'}, 'messages') | raw %}
{{ form_errors(register_form.cgu) }}
{{ form_widget(register_form.cgu) }}
{% block form_label %}
{% spaceless %}
<label for="fos_user_registration_form_cgu">
Je déclare avoir pris connaissance et accepté les termes et les <a target="_blank"
href="{{ path("service_cgu") }}">conditions générales dutilisation</a>
</label>
{% endspaceless %}
{% endblock %}
</div>
<div class="mb-3">
{{ form_row(register_form._token) }}
token {{ csrf_token }}
{% if csrf_token %}
<input type="hidden" name="_csrf_token" ID="_csrf_token" value="{{ csrf_token }}" />
{% endif %}
<input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}">
<input class="btn btn-default btn-round" type="submit" id="_submit_register" name="_submit_register"
value="Créer un compte!" />
<button type="submit" class="btn btn-block btn-primary">S'inscrire</button>
</div>
<div class="text-center mb-3">
<p class="text-muted">
Vous avez déjà un compte? {{ csrf_token }}!!
<a class="js-animation-link" href="javascript:;" data-target="#signin" data-link-group="idForm"
data-animation-in="fadeIn">Connexion Recruteur
</a>
</p>
</div>
<!-- Divider -->
<div class="text-center u-divider-wrapper my-3">
</div>
<div class="text-center mb-3">
<p class="text-muted">
<!-- End Divider -->
{% if destination_login is defined %}
<input type="hidden" name="_target_path" value="{{ destination_login }}" />
{% endif %}
</p>
</div>
</div>
<!-- End Signup -->
{{ form_rest(register_form) }}
{{ form_end(register_form) }}
</div>
{% endblock fos_user_content %}
@@ -9,13 +9,20 @@
{% set text_accept_button = fairlane_cookie_consent.twig.text_accept_button %}
{% endif %}
<div id="fairlane-cookie-consent" {% if fairlane_cookie_consent.useBootstrap == true %}class="navbar navbar-fixed-top"{% endif %}>
<p>
{{ text_info }}
{% if fairlane_cookie_consent.twig.url_additional_info| length > 1 and text_additional_info_link | length > 1 %}
<a href="{{ fairlane_cookie_consent.twig.url_additional_info }}" target="_blank">{{ text_additional_info_link }}</a>
{% endif %}
</p>
<button class="btn btn-default">{{ text_accept_button }}</button>
<div class="container">
<div class="row">
<div class="col s8">
<p>{{ text_info }}
{% if fairlane_cookie_consent.twig.url_additional_info| length > 1 and text_additional_info_link | length > 1 %}
<a href="{{ fairlane_cookie_consent.twig.url_additional_info }}" target="_blank">{{ text_additional_info_link }}</a>
{% endif %}
</p>
</div>
<div class="col s4">
<button class="btn btn-default">{{ text_accept_button }}</button>
</div>
</div>
</div>
</div>
{% if fairlane_cookie_consent.useJquery %}
<script type="text/javascript">
@@ -59,6 +59,34 @@
<trans-unit id="DECLINED">
<source>DECLINED</source>
<target>Refusée</target>
</trans-unit>
<trans-unit id="NEW">
<source>NEW</source>
<target>Nouveau</target>
</trans-unit>
<trans-unit id="VIEWED">
<source>VIEWED</source>
<target>Visionnée</target>
</trans-unit>
<trans-unit id="NEGATIVE">
<source>NEGATIVE</source>
<target>Négatif</target>
</trans-unit>
<trans-unit id="POSITIVE">
<source>POSITIVE</source>
<target>Positif</target>
</trans-unit>
<trans-unit id="INFOS">
<source>INFOS</source>
<target>Demande dinformations</target>
</trans-unit>
<trans-unit id="CONTACTED">
<source>CONTACTED</source>
<target>Demande dinformations</target>
</trans-unit>
<trans-unit id="CONTACTED.RDV">
<source>CONTACTED.RDV</source>
<target>Convocation entretien</target>
</trans-unit>
<!-- MENU COMPANY-->
<trans-unit id="profile.territory.brandname">
@@ -79,7 +107,11 @@
</trans-unit>
<trans-unit id="company.menu.ads.label">
<source>company.menu.ads.label</source>
<target>Mes annonces</target>
<target>Espace offres d'emploi</target>
</trans-unit>
<trans-unit id="company.title.ads.label">
<source>company.title.ads.label</source>
<target>Mes offres d'emploi</target>
</trans-unit>
<trans-unit id="company.menu.bookmark.label">
<source>company.menu.bookmark.label</source>
@@ -87,7 +119,11 @@
</trans-unit>
<trans-unit id="company.menu.answers.label">
<source>company.menu.answers.label</source>
<target>Réponses</target>
<target>Candidatures</target>
</trans-unit>
<trans-unit id="company.menu.spontaneous.label">
<source>company.menu.spontaneous.label</source>
<target>Candidatures spontanées</target>
</trans-unit>
<trans-unit id="company.menu.videotheque.label">
<source>company.menu.videotheque.label</source>
@@ -130,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>
@@ -190,10 +234,34 @@
<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>
<target>Ajouter une annonce</target>
<target>Ajouter une offre</target>
</trans-unit>
<trans-unit id="ad.company.video.edit.label">
<source>ad.company.video.edit.label</source>
@@ -233,7 +301,7 @@
</trans-unit>
<trans-unit id="ad.company.list.status">
<source>ad.company.list.status</source>
<target>Statuts</target>
<target>Statut</target>
</trans-unit>
<trans-unit id="ad.save.extension.title">
<source>ad.save.extension.title</source>
@@ -260,6 +328,90 @@
<trans-unit id="profile.talent.account.title">
<source>profile.talent.account.title</source>
<target>Informations de compte</target>
</trans-unit>
<trans-unit id="talent.menu.answers.label">
<source>talent.menu.answers.label</source>
<target>Mes candidatures</target>
</trans-unit>
<trans-unit id="talent.menu.recommandations.label">
<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">
@@ -394,7 +546,134 @@
Talents Tube
</target>
</trans-unit>
</trans-unit>
<!-- Recommendations -->
<trans-unit id="label.recommendations">
<source>label.recommendations</source>
<target>Recommandations</target>
</trans-unit>
<trans-unit id="label.button.recommendation">
<source>label.button.recommendation</source>
<target>Je recommande</target>
</trans-unit>
<trans-unit id="label.link.readmore">
<source>label.link.readmore</source>
<target>Lire la suite</target>
</trans-unit>
<trans-unit id="label.choice.imtheboss">
<source>label.choice.imtheboss</source>
<target>%{name} était sous votre responsabilité</target>
</trans-unit>
<trans-unit id="label.choice.sheistheboss">
<source>label.choice.sheistheboss</source>
<target>Vous étiez sous la responsabilité de %{name} </target>
</trans-unit>
<trans-unit id="label.choice.sheismyscollege">
<source>label.choice.sheismyscollege</source>
<target>Vous avez travaillé avec %{name} dans la même entreprise</target>
</trans-unit>
<trans-unit id="label.front.imtheboss">
<source>label.front.imtheboss</source>
<target>%{name2} était responsable de %{name}</target>
</trans-unit>
<trans-unit id="label.front.sheistheboss">
<source>label.front.sheistheboss</source>
<target>%{name2} était sous la responsabilité de %{name}</target>
</trans-unit>
<trans-unit id="label.front.sheismyscollege">
<source>label.front.sheismyscollege</source>
<target>%{name} et %{name2} étaient collègues</target>
</trans-unit>
<trans-unit id="recommendation.email.message.html">
<source>recommendation.email.message.html</source>
<target><![CDATA[
<div style="margin:0 auto;max-width:600px;background:#FFFFFF;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#FFFFFF;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px;"><!--[if mso]>
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:40px 35px 20px 35px;" align="left"><div class="mj-content" style="cursor:auto;color:#534F4F;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;line-height:22px;"><p>Bonjour %firstname% %lastname%,</p>
<p>Vous avez reçu une recommandation vidéo de %firstname_sender% %lastname_sender%.</p>
<p>La recommandation est inactive par défaut, vous pouvez lactiver dans votre espace recommandations.</p>
</div></td></tr></tbody></table></div><!--[if mso]>
</td></tr></table>
<![endif]--></td></tr></tbody></table></div>
<div style="margin:0 auto;max-width:600px;background:#FFFFFF;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#FFFFFF;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px;"><!--[if mso]>
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:15px 30px;" align="center"><table cellpadding="0" cellspacing="0" style="border:none;border-radius:30px;" align="center"><tbody><tr><td style="background:#1689FB;border-radius:30px;color:#FFFFFF;cursor:auto;" align="center" valign="middle" bgcolor="#1689FB"><a class="mj-content" href="%recommendationUrl%" style="display:inline-block;text-decoration:none;background:#1689FB;border:1px solid #1689FB;border-radius:30px;color:#FFFFFF;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;font-weight:normal;padding:15px 30px;" target="_blank">Voir la recommandation</a></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
</td></tr></table>
]]>
</target>
</trans-unit>
<!-- Dashboard -->
<trans-unit id="global.datereception.label">
<source>global.datereception.label</source>
<target>Date de reception </target>
</trans-unit>
<!-- Réponse en vidéo -->
<trans-unit id="label.message">
<source>label.message</source>
<target>MESSAGE : </target>
</trans-unit>
<trans-unit id="label.noMessage">
<source>label.noMessage</source>
<target>Aucun message</target>
</trans-unit>
<trans-unit id="label.offers">
<source>label.offers</source>
<target>Offres d'emploi</target>
</trans-unit>
<trans-unit id="label.answer">
<source>label.answer</source>
<target>Réponse : </target>
</trans-unit>
<trans-unit id="label.sended">
<source>label.sended</source>
<target>Envoyé : </target>
</trans-unit>
<trans-unit id="label.received">
<source>label.received</source>
<target>Recu : </target>
</trans-unit>
<trans-unit id="label.history.link">
<source>label.history.link</source>
<target>Afficher l'historique</target>
</trans-unit>
<trans-unit id="label.history.talent.link">
<source>label.history.talent.link</source>
<target>Historique des message recus</target>
</trans-unit>
<trans-unit id="label.webcam.answer.step1">
<source>label.webcam.answer.step1</source>
<target>Enregistrer ma vidéo</target>
</trans-unit>
<trans-unit id="label.webcam.answer.step2">
<source>label.webcam.answer.step2</source>
<target>Importer ma vidéo</target>
</trans-unit>
<trans-unit id="label.webcam.answer.step3">
<source>label.webcam.answer.step3</source>
<target>Définir le type de réponse</target>
</trans-unit>
<trans-unit id="label.webcam.answer.videotheque">
<source>label.webcam.answer.videotheque</source>
<target>Choisir une vidéo de réponse</target>
</trans-unit>
<trans-unit id="label.answer.history.title">
<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 %}
@@ -16,6 +16,7 @@
<link rel="stylesheet" href="{{ asset('admin/AdminLTE/plugins/datatables/dataTables.bootstrap.css') }}">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.2/jquery-confirm.min.css">
<script type="text/javascript" defer="defer" src="https://extend.vimeocdn.com/ga/64189815.js"></script>
<link href="https://gitcdn.github.io/bootstrap-toggle/2.2.2/css/bootstrap-toggle.min.css" rel="stylesheet">
{% block css %}
@@ -71,6 +72,7 @@ output='assetic/admin.backend.js' filter='?uglifyjs2' %}
$('[data-toggle="tooltip"]').tooltip();
});
</script>
<script src="https://gitcdn.github.io/bootstrap-toggle/2.2.2/js/bootstrap-toggle.min.js"></script>
{% block javascripts %}
{% endblock %}
+52 -2
View File
@@ -14,7 +14,28 @@
{% endblock %}
{% block content %}
{{ form_start(formUser, {'id': 'formUser'}) }}
<div class="row">
<div class="col-xs-8">
<div class="box box-primary">
<div class="box-header">
<h3 class="box-title">Compte utilisateur</h3>
</div>
<div class="box-body">
{{ form_errors(formUser) }}
{{ form_label(formUser.email, 'Email') }}
{{ form_widget(formUser.email, {'attr': {'class': 'form-control'}}) }}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-6">
<button class="btn btn-success edit-email-user" data-toggle="tooltip" type="submit">Enregistrer</button>
</div>
</div>
{{ form_end(formUser) }}
<br/>
{{ form_start(form) }}
<div class="row">
<div class="col-xs-8">
@@ -37,7 +58,6 @@
{{ form_row(form.website) }}
{{ form_row(form.tagsComma) }}
{{ form_row(form.file) }}
</div>
</div>
</div>
@@ -66,3 +86,33 @@
{{ form_end(form) }}
{% endblock %}
{% block javascripts %}
<script>
$(document).ready(function () {
$('[data-toggle="popover"]').popover();
$(".edit-email-user").confirm({
title: "Êtes vous sûr de modifier l'adresse mail de cet utilisateur ?",
content: "Si une erreur de saisie est présente, l'utilisateur ne pourra plus recevoir vos mails.",
type: 'ored',
boxWidth: '30%',
useBootstrap: false,
buttons: {
confirm: {
text: 'Confirmer',
action: function() {
$("[name='user_company']").submit();
return true;
}
},
cancel: {
text: 'Annuler'
}
}
});
});
</script>
{% endblock %}
@@ -0,0 +1,176 @@
{% extends 'admin/base_admin.html.twig' %}
{% block contentHeader %}
<h1>
Recommandations
<small>Liste</small>
</h1>
<ol class="breadcrumb">
<li>
<a href="{{ path('admin_dashboard') }}">
<i class="fa fa-dashboard"></i>
Dashboard</a>
</li>
<li class="active">Recommandations</li>
</ol>
{% endblock %}
{% block content %}
<div class="box box-primary">
<div class="box-body">
<table id="reco_list_table" class="table table-hover table-bordered">
<thead>
<tr>
<th class="col-xs-2">Date de création</th>
<th>De</th>
<th>Pour</th>
<th>Status</th>
<th>Player</th>
<th>Action</th>
</tr>
</thead>
<tbody>
{% for r in recos %}
<tr>
<td data-order="{{ r.cTime|date('U') }}">{{ r.cTime|date('d/m/Y') }}</td>
<td>
{{ r.sender.lastname }}
{{ r.sender.firstname }}
</td>
<td>
{{ r.user.lastname }}
{{ r.user.firstname }}
</td>
<td>
{% if r.isRemoved %}
<span class="label pull-right bg-red">supprimée</span>
{% elseif r.isEnabled %}
<span class="label pull-right bg-green">Visible</span>
{% endif %}
</td>
<td>
{% if r.video != null %}
<i class="fa fa-eye modalBtn c-pointer hover-blue1" data-url="{{ r.video.cdnUrl }}"></i>
{% endif %}
</td>
<td>
<input class="visibilityToggle" {% if r.isVisible == false %} checked="checked" {% endif %} type="checkbox" data-toggle="toggle" data-size="mini" data-onstyle="danger" data-on="Desactivée" data-off="Activée" data-recid="{{ r.id }}">
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
{# <div id="modal_video" class="modal">
<div class="modal-content">
<h4>Vidéo de la recommendation</h4>
<div class="videoContainer" style="text-align:center;">Loading...</div>
</div>
<div class="modal-footer">
<button class="modal-action modal-close waves-effect waves-green btn-flat">Fermer</button>
</div>
</div> #}
<div id="modal_video" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document" style="width:800px;">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">Vidéo de la recommendation</h4>
</div>
<div class="modal-body">
<div class="videoContainer" style="text-align:center;">Loading...</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Fermer</button>
</div>
</div>
</div>
</div>
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script>
$(function () {
$('#reco_list_table').DataTable({
"paging": true,
"lengthChange": true,
"searching": true,
"ordering": true,
"info": true,
"autoWidth": false,
"language": {
"url": "https://cdn.datatables.net/plug-ins/1.10.11/i18n/French.json"
},
"columnDefs": [
{
"targets": 0,
"searchable": true,
"orderable": true
}, {
"targets": 1,
"searchable": true,
"orderable": true
}, {
"targets": 2,
"searchable": true,
"orderable": true
}, {
"targets": 3,
"searchable": true,
"orderable": true,
"className": "text-center"
}, {
"targets": 4,
"searchable": false,
"orderable": false,
"className": "text-center"
}, {
"targets": 5,
"searchable": true,
"orderable": true,
"className": "text-center"
}
],
"order": [
[0, "desc"]
]
});
});
</script>
<script src="https://player.vimeo.com/api/player.js"></script>
<script type="text/javascript">
$('.modalBtn').click(function () {
$('.videoContainer').html('');
$('#modal_video').modal();
var urlVideo = $(this).data("url");
urlVideo = urlVideo.replace('videos', 'video');
var player = '<div data-vimeo-url="https://vimeo.com' + urlVideo + '" id="player_vimeo"></div>';
$('.videoContainer').html(player);
var player_vimeo = new Vimeo.Player('player_vimeo');
});
</script>
<script>
$('.visibilityToggle').change(function () {
var recId = $(this).data('recid');
var route = '/admin/config/recommandation/' + recId + '/toggle';
$.ajax({
type: "POST",
url: route,
dataType: "json",
success: function (msg) {
console.log(msg);
}
});
});
</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>
@@ -53,9 +58,14 @@
<i class="fa fa-user-circle" aria-hidden="true"></i><span>Talents</span>
</a>
</li>
<li>
<a href="{{ path('admin_config_recommendations') }}">
<i class="fa fa-thumbs-up" aria-hidden="true"></i><span>Recommandations</span>
</a>
</li>
<li>
<a href="{{ path('admin_config_territory') }}">
<i class="fa fa-map-marker" aria-hidden="true"></i><span>Territoire</span>
<i class="fa fa-map-marker" aria-hidden="true"></i><span>Territoires</span>
</a>
</li>
<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>
@@ -30,6 +30,7 @@
{{ form_row(form.emphasis) }}
{{ form_row(form.emphasisOrder) }}
{{ form_row(form.brandName) }}
{{ form_row(form.terType) }}
{{ form_row(form.description) }}
{{ form_row(form.descriptionAdmin) }}
{{ form_row(form.website) }}
@@ -24,7 +24,7 @@
<div class="col-content bg-arrow z-depth-2 p-20">
<div class="row">
<div class="col s12">
<h4 class="color-blue1 p-0"><span class="title-bubble">1</span> Enregistrez votre cv vidéo</h4>
<h4 class="color-blue1 p-0"><span class="title-bubble">1/3</span> Enregistrez votre cv vidéo</h4>
</div>
<div class="col m4 offset-m1 s12">
<video id="myCvVideo" class="video-js vjs-default-skin"></video>
@@ -60,7 +60,7 @@
<div class="col-content bg-arrow z-depth-2 p-20">
<div class="row">
<div class="col s12">
<h4 class="color-blue1 p-0"><span class="title-bubble">2</span> Importez votre CV Vidéo</h4>
<h4 class="color-blue1 p-0"><span class="title-bubble">2/3</span> Importez votre CV Vidéo</h4>
</div>
<div class="col s10 offset-s1 answer-dropzone">
{% include 'media/dropzone.html.twig' with {'deleting': true } %}
@@ -72,7 +72,7 @@
{{ form_row(form.status) }}
<div class="row">
<div class="col s12">
<h4 class="color-blue1 p-0"><span class="title-bubble">3</span> Ajoutez votre commentaire</h4>
<h4 class="color-blue1 p-0"><span class="title-bubble">3/3</span> Ajoutez votre commentaire</h4>
</div>
<div class="col s10 offset-s1">
<div class="row">
@@ -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>
@@ -3,20 +3,11 @@
<head>
<!-- Google Tag Manager -->
<script>
(function (w, d, s, l, i) {
w[l] = w[l] || [];
w[l].push({
'gtm.start': new Date().getTime(), event: 'gtm.js'
});
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src =
'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-P4G65WJ');
</script>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-P4G65WJ');</script>
<!-- End Google Tag Manager -->
<script type="text/javascript" defer="defer" src="https://extend.vimeocdn.com/ga/64189815.js"></script>
@@ -54,9 +45,7 @@
{% endif %}
{# CSS #}
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Raleway:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i&amp;subset=latin-ext"
rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Varela+Round" : rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Raleway:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i|Varela+Round" rel="stylesheet">
<link rel="stylesheet" href="{{ asset('css/styles.css') }}">
{% block stylesheets %}
{% endblock %}
@@ -72,6 +61,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' %}
@@ -81,6 +71,7 @@
'@global'
output='assetic/main.js' filter='?uglifyjs2' %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock %}
{{ include('FairlaneCookieConsentBundle::cookie-info.html.twig') }}
@@ -3,20 +3,11 @@
<head>
<!-- Google Tag Manager -->
<script>
(function (w, d, s, l, i) {
w[l] = w[l] || [];
w[l].push({
'gtm.start': new Date().getTime(), event: 'gtm.js'
});
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src =
'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-P4G65WJ');
</script>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-P4G65WJ');</script>
<!-- End Google Tag Manager -->
<script type="text/javascript" defer="defer" src="https://extend.vimeocdn.com/ga/64189815.js"></script>
@@ -35,8 +26,7 @@
href="{% block urlCanonical %}{{ url(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}"{% endblock %}>
{# CSS #}
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Raleway:300,300i,400,400i,700,700i" rel=stylesheet>
<link href="https://fonts.googleapis.com/css?family=Varela+Round" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Raleway:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i|Varela+Round" rel="stylesheet">
<link rel="stylesheet" href="{{ asset('css/styles.css') }}">
{% block stylesheets %}
{% endblock %}
@@ -66,6 +56,7 @@
'@global'
output='assetic/main.base.dash.js' filter='?uglifyjs2' %}
<script src="{{ asset_url }}"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDYV8IJGtIoWLfXJQQvIuDQ88n2aEuRgpg&libraries=places"></script>
{% endjavascripts %}
{% endblock %}
</body>
@@ -0,0 +1,43 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<!-- Title -->
<title>Talents Tube : Le 1er job board 100% vidéo</title>
<!-- Required Meta Tags Always Come First -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Google Fonts -->
<link href="//fonts.googleapis.com/css?family=Roboto:300,400,500,700" rel="stylesheet">
<!-- CSS Implementing Plugins -->
<link rel="stylesheet" href="{{ asset('v2/vendor/font-awesome/css/all.min.css') }}">
<link rel="stylesheet" href="{{ asset('v2/vendor/hs-megamenu/src/hs.megamenu.css') }}">
<link rel="stylesheet" href="{{ asset('v2/vendor/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css') }}">
<link rel="stylesheet" href="{{ asset('v2/vendor/custombox/dist/custombox.min.css') }}">
<link rel="stylesheet" href="{{ asset('v2/vendor/animate.css/animate.min.css') }}">
<link rel="stylesheet" href="{{ asset('v2/vendor/slick-carousel/slick/slick.css') }}">
<link rel="stylesheet" href="{{ asset('v2/vendor/cubeportfolio/css/cubeportfolio.min.css') }}">
<link rel="stylesheet" href="{{ asset('v2/vendor/fancybox/jquery.fancybox.css') }}">
<!-- CSS Space Template -->
<link rel="stylesheet" href="{{ asset('v2/css/theme.css') }}">
<script type="text/javascript"> window.$crisp=[];window.CRISP_WEBSITE_ID="78ec5756-1cd5-4f3f-b0db-cb408c8171da";(function(){ d=document;s=d.createElement("script"); s.src="https://client.crisp.chat/l.js"; s.async=1;d.getElementsByTagName("head")[0].appendChild(s);})(); </script>
</head>
<body>
<!-- Google Tag Manager (noscript) -->
<noscript>
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-P4G65WJ"
height="0" width="0" style="display:none;visibility:hidden"></iframe>
</noscript>
<!-- End Google Tag Manager (noscript) -->
{#{% include 'default/alert.html.twig' %}#}
{# {% include 'defaultv2/user_switch.html.twig' %}#}
{% include 'defaultv2/header.html.twig' %}
{#{% include 'defaultv2/props_settings.html.twig' %} #}
{% block content %}
{% endblock %}
{# {% include 'defaultv2/footer.html.twig' %} #}
{{ include('FairlaneCookieConsentBundle::cookie-info.html.twig') }}
</body>
</html>
@@ -2,41 +2,58 @@
{% block dashContent %}
{% if type == "spontaneous" %}
{% include 'company/job_submenu.html.twig' with {
'tab' : 3
} %}
{% else %}
{% include 'company/job_submenu.html.twig' with {
'tab' : 2
} %}
{% endif %}
<div class="row bg-bordered p-20">
{% set first = answers|first %}
<h1 class="alttitle">Réponses pour : {{ first.ad.title }}</h1>
{% include 'company/tabs.html.twig' with {'tab':2} %}
{% include 'company/ad_breadcrumb.html.twig' with {'step': 2,'ad': ad} %}
<div id="reponses" class="col s12">
<table id="table-answers" class="bordered highlight responsive-table">
<thead>
<tr>
<th> {{ 'profile.talent.firstname'|trans }} - {{ 'profile.talent.lastname'|trans }}</th>
<th>{{ 'global.intitule.label'|trans }}</th>
<th>{{ 'global.date.label'|trans }}</th>
<th>{{ 'note.title'|trans }}</th>
<th>{{ 'profile.talent.lastname'|trans }} {{ 'profile.talent.firstname'|trans }}</th>
<th>{{ 'global.datereception.label'|trans }}</th>
<th>{{ 'ad.company.list.status'|trans }}</th>
<th class="center-align">{{ 'ad.company.list.actions'|trans }}</th>
</tr>
</thead>
<tbody>
{% for answer in answers %}
<tr>
<td>
<a href="{{ path('company_answer_show',{'id':answer.id }) }}">{{ answer.user.firstname }} {{ answer.user.lastname }}</a>
<a href="{{ path('company_answer_show',{'id':answer.id }) }}">{{ answer.user.lastname }} {{ answer.user.firstname }}</a>
</td>
<td>{{ answer.ad.title }}</td>
<td>{{ answer.uTime()|date('d-m-Y') }}</td>
<td>
{#{% if answer.notes|length <= 0 %}#}
<a href="#" class="note-action c-pointer" data-func="add" data-answer="{{ answer.id }}">
<i class="fa fa-plus " aria-hidden="true"></i>
<td>{{ answer.sendTime()|date('d/m/Y') }}</td>
{% if answer.firstMessage %}
<td>{{ answer.firstMessage.status|trans }}</td>
{% else %}
{% if answer.isViewed %}
{% if answer.isViewed.status == "DRAFT" %}
<td>{{ 'VIEWED'|trans }}</td>
{% endif %}
{% else %}
<td>{{ 'NEW'|trans }}</td>
{% endif %}
{% endif %}
<td class="center-align">
<a title="{{ad.title}}" href="{{ path('company_answer_show',{'id':answer.id }) }}">
<i class="fa fa-eye"></i>
</a>
<a href="#" class="note-action c-pointer" data-func="add" data-answer="{{ answer.id }}">
<i class="fa fa-sticky-note"></i>
</a>
{#{% else %}#}
{% for note in answer.notes %}
<a class="tooltipped note-action c-pointer" data-position="top" data-delay="50"
data-tooltip="{{ note.content }}" data-note="{{ note.id }}" data-func="edit">
<i class="fa fa-commenting" aria-hidden="true"></i>
</a>
{% endfor %}
{#{% endif %}#}
</td>
</tr>
{% endfor %}
@@ -0,0 +1,19 @@
<div class="col s12" id="breadcrumb">
<a href="{{ path('company_ad') }}">
<span>{% trans %}label.offers{% endtrans %}</span>
</a>
{% if step > 1 %}
<span class="sepa-breadcrumb">></span>
<a href="{{ path('company_ad_answer_list',{'id':ad.id}) }}">
<span {% if step == 2 %}class="active"{% endif %}>{{ ad.title }}</span>
</a>
{% endif %}
{% if step > 2 %}
<span class="sepa-breadcrumb">></span>
<span class="active">{{ firstname }} {{ lastname }}</span>
{% endif %}
<div class="border-breadcrumb"></div>
</div>
@@ -1,16 +1,20 @@
{% extends 'company/base_dashboard_company.html.twig' %}
{% block title %} Mes annonces {% endblock %}
{% block title %}
Mes annonces
{% endblock %}
{% block dashContent %}
{% include 'default/flash_message.html.twig' %}
{#<h1 class="alttitle">Espace offres d'emploi</h1>#}
<div class="bg-bordered p-20">
{% include 'company/tabs.html.twig' with {'tab':1} %}
{% include 'company/ad_table_listing.html.twig' with {'ads':ads} %}
<p class="center-align">
<a href="{{ path('company_ad_create') }}" class="btn btn-default">{{ 'ad.company.add.label'|trans }}</a>
</p>
{% include 'company/job_submenu.html.twig' with {
'tab' : 1
} %}
<div class="row bg-bordered p-20">
{% include 'company/ad_breadcrumb.html.twig' with {'step': 1} %}
{% include 'company/ad_table_listing.html.twig' with {
'ads' : ads
} %}
</div>
{% endblock %}
{% endblock %}
@@ -1,5 +1,5 @@
<table id="ads-table" class="bordered highlight responsive-table">
<thead>
<thead>
<tr>
<th>{{ 'ad.company.list.title'|trans }}</th>
<th class="tdCount">{{ 'ad.company.list.answers'|trans }}</th>
@@ -7,15 +7,23 @@
<th>{{ 'ad.company.list.status'|trans }}</th>
<th>{{ 'ad.company.list.actions'|trans }}</th>
</tr>
</thead>
<tbody>
</thead>
<tbody>
{% for ad in ads %}
<tr>
<td>{{ ad.title }}</td>
<td>
{% if ad.countAnswers > 0 %}
<a href="{{ path('company_ad_answer_list',{'id':ad.id}) }}">
{{ ad.title }}
</a>
{% else %}
{{ ad.title }}
{% endif %}
</td>
<td class="tdCount">
{% if ad.countAnswers > 0 %}
<a href="{{ path('company_ad_answer_list',{'id':ad.id}) }}">
{{ ad.countAnswers }}
<i class="fa fa-eye"></i>&nbsp; {{ ad.countAnswers }}
</a>
{% else %}
0
@@ -23,13 +31,12 @@
</td>
<td class="tdCount">
{% if arrayByAds is defined %}
{{ arrayByAds[ad.id]["count"] }}
{{ arrayByAds[ad.id]["count"] }}
{% endif %}
</td>
<td align="center" valign="center">
{% if ad.getStatus() == "DECLINED" %}
<div class="tooltipped" data-position="top" data-delay="50"
data-tooltip="{{ ad.moderationText }}">
<div class="tooltipped" data-position="top" data-delay="50" data-tooltip="{{ ad.moderationText }}">
<span class="">{{ ad.getStatus()|trans }}</span>
<i class="c-pointer fa fa-info-circle color-red" aria-hidden="true"></i>
</div>
@@ -40,57 +47,43 @@
<td>
{% if ad.getStatus() == "DRAFT" or ad.getStatus() == "DECLINED" %}
{#Edit#}
<a class="tooltipped td-none" data-position="top" data-delay="0"
data-tooltip="{{ 'ad.company.edit.label'|trans }}"
href="{{ path('company_ad_edit', { 'id': ad.id }) }}" style="margin-right: 10px">
<a class="tooltipped td-none" data-position="top" data-delay="0" data-tooltip="{{ 'ad.company.edit.label'|trans }}" href="{{ path('company_ad_edit', { 'id': ad.id }) }}" style="margin-right: 10px">
<i class="fa fa-pencil-square-o" aria-hidden="true"></i>
</a>
{% else %}
{#Soft Edit#}
<a class="tooltipped td-none" data-position="top" data-delay="0"
data-tooltip="{{ 'ad.company.edit.label'|trans }}"
href="{{ path('company_ad_soft_edit', { 'id': ad.id }) }}"
style="margin-right: 10px">
<a class="tooltipped td-none" data-position="top" data-delay="0" data-tooltip="{{ 'ad.company.edit.label'|trans }}" href="{{ path('company_ad_soft_edit', { 'id': ad.id }) }}" style="margin-right: 10px">
<i class="fa fa-pencil-square-o" aria-hidden="true"></i>
</a>
{% endif %}
{% if ad.getStatus() == "DRAFT" or ad.getStatus() == "DECLINED" %}
{#Video#}
<a class="tooltipped td-none" data-position="top" data-delay="0"
data-tooltip="{{ 'ad.company.video.edit.label'|trans }}"
href="{{ path('create_media', { 'id': ad.id }) }}">
<a class="tooltipped td-none" data-position="top" data-delay="0" data-tooltip="{{ 'ad.company.video.edit.label'|trans }}" href="{{ path('create_media', { 'id': ad.id }) }}">
<i class="fa fa-video-camera" aria-hidden="true"></i>
</a>
{% endif %}
{% if ad.getStatus() == "PUBLISHED" %}
{% if ad.getStatus() == "PUBLISHED" %}
{#Extension#}
<a class="tooltipped td-none" data-position="top" data-delay="0"
data-tooltip="{{ 'ad.company.dates.extension.label'|trans }}"
href="{{ path('company_ad_extension', { 'id': ad.id }) }}"
style="margin-right: 10px">
<a class="tooltipped td-none" data-position="top" data-delay="0" data-tooltip="{{ 'ad.company.dates.extension.label'|trans }}" href="{{ path('company_ad_extension', { 'id': ad.id }) }}" style="margin-right: 10px">
<i class="fa fa-calendar" aria-hidden="true"></i>
</a>
{#Force ending#}
<a class="tooltipped td-none" data-position="top" data-delay="0"
data-tooltip="{{ 'ad.company.closed.label'|trans }}"
href="{{ path('company_ad_closed', { 'id': ad.id }) }}" style="margin-right: 10px">
<a class="tooltipped td-none" data-position="top" data-delay="0" data-tooltip="{{ 'ad.company.closed.label'|trans }}" href="{{ path('company_ad_closed', { 'id': ad.id }) }}" style="margin-right: 10px">
<i class="fa fa-window-close-o" aria-hidden="true"></i>
</a>
{% endif %}
{% if ad.getStatus() == "TO_PUBLISH" or ad.getStatus() == "VALIDATED" or ad.getStatus() == "CLOSED" or ad.getStatus() == "EXPIRED" %}
{#Edit Dates#}
<a class="tooltipped td-none" data-position="top" data-delay="0"
data-tooltip="{{ 'ad.company.dates.edit.label'|trans }}"
href="{{ path('company_ad_step3', { 'id': ad.id }) }}" style="margin-right: 10px">
<a class="tooltipped td-none" data-position="top" data-delay="0" data-tooltip="{{ 'ad.company.dates.edit.label'|trans }}" href="{{ path('company_ad_step3', { 'id': ad.id }) }}" style="margin-right: 10px">
<i class="fa fa-calendar" aria-hidden="true"></i>
</a>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</tbody>
</table>
@@ -1,53 +1,86 @@
{% extends 'company/base_dashboard_company.html.twig' %}
{% block dashContent %}
{% include 'company/job_submenu.html.twig' with {'tab' : 2} %}
<div class="row bg-bordered p-20">
{% if type == "spontaneous" %}
{% include 'company/tabs.html.twig' with {'tab':3} %}
{% else %}
{% include 'company/tabs.html.twig' with {'tab':2} %}
{% endif %}
<div id="reponses" class="col s12">
<table id="table-answers" class="bordered highlight responsive-table">
<thead>
<tr>
<th> {{ 'profile.talent.firstname'|trans }} - {{ 'profile.talent.lastname'|trans }}</th>
<th>{{ 'global.intitule.label'|trans }}</th>
<th>{{ 'global.date.label'|trans }}</th>
<th>{{ 'note.title'|trans }}</th>
</tr>
</thead>
<tbody>
{% for answer in answers %}
<tr>
<td>
<a href="{{ path('company_answer_show',{'id':answer.id }) }}">{{ answer.user.firstname }} {{ answer.user.lastname }}</a>
</td>
<td>{% if answer.ad != null %}{{ answer.ad.title }} {% endif %}</td>
<td>{{ answer.cTime()|date('d-m-Y') }}</td>
<td>
{#{% if answer.notes|length <= 0 %}#}
<a href="#" class="note-action c-pointer" data-func="add" data-answer="{{ answer.id }}">
<i class="fa fa-plus " aria-hidden="true"></i>
</a>
{#{% else %}#}
{% for note in answer.notes %}
<a class="tooltipped note-action c-pointer" data-position="top" data-delay="50"
data-tooltip="{{ note.content }}" data-note="{{ note.id }}" data-func="edit">
<i class="fa fa-commenting" aria-hidden="true"></i>
</a>
{% endfor %}
{#{% endif %}#}
</td>
</tr>
{% endfor %}
</table>
<div class="col s12">
<h4 class="title-table">{{ 'company.menu.answers.label'|trans }}</h4>
</div>
</div>
<div id="note-modal"></div>
{% endblock %}
<div id="reponses" class="col s12">
<table id="table-answers" class="bordered highlight responsive-table">
<thead>
<tr>
<th>{{ 'profile.talent.lastname'|trans }} {{ 'profile.talent.firstname'|trans }}</th>
<th>{{ 'global.datereception.label'|trans }}</th>
<th>{{ 'ad.company.list.title'|trans }}</th>
<th class="center-align">{{ 'ad.company.list.actions'|trans }}</th>
</tr>
</thead>
<tbody>
{% for answer in answers %}
<tr>
<td>
<a href="{{ path('company_answer_show',{'id':answer.id }) }}">{{ answer.user.lastname }} {{ answer.user.firstname }}</a>
</td>
<td>{{ answer.sendTime()|date('d/m/Y') }}</td>
<td>{{ answer.ad.title }}</td>
<td class="center-align">
<a title="{{answer.ad.title}}" href="{{ path('company_answer_show',{'id':answer.id }) }}">
<i class="fa fa-eye"></i>
</a>
<a href="#" class="note-action c-pointer" data-func="add" data-answer="{{ answer.id }}">
<i class="fa fa-sticky-note"></i>
</a>
{% for note in answer.notes %}
<a class="tooltipped note-action c-pointer" data-position="top" data-delay="50"
data-tooltip="{{ note.content }}" data-note="{{ note.id }}" data-func="edit">
<i class="fa fa-commenting" aria-hidden="true"></i>
</a>
{% endfor %}
</td>
</tr>
{% endfor %}
</table>
</div>
</div>
<div class="row bg-bordered p-20">
<div class="col s12">
<h4 class="title-table">{{ 'company.menu.spontaneous.label'|trans }}</h4>
</div>
<div id="spontaneous" class="col s12">
<table id="table-answers" class="bordered highlight responsive-table">
<thead>
<tr>
<th>{{ 'profile.talent.lastname'|trans }} {{ 'profile.talent.firstname'|trans }}</th>
<th>{{ 'global.datereception.label'|trans }}</th>
<th class="center-align">{{ 'ad.company.list.actions'|trans }}</th>
</tr>
</thead>
<tbody>
{% for answer in spontaneous %}
<tr>
<td>
<a href="{{ path('company_answer_show',{'id':answer.id }) }}">{{ answer.user.lastname }} {{ answer.user.firstname }}</a>
</td>
<td>{{ answer.sendTime()|date('d/m/Y') }}</td>
<td class="center-align">
<a title="" href="{{ path('company_answer_show',{'id':answer.id }) }}">
<i class="fa fa-eye"></i>
</a>
<a href="#" class="note-action c-pointer" data-func="add" data-answer="{{ answer.id }}">
<i class="fa fa-sticky-note"></i>
</a>
{% for note in answer.notes %}
<a class="tooltipped note-action c-pointer" data-position="top" data-delay="50"
data-tooltip="{{ note.content }}" data-note="{{ note.id }}" data-func="edit">
<i class="fa fa-commenting" aria-hidden="true"></i>
</a>
{% endfor %}
</td>
</tr>
{% endfor %}
</table>
</div>
</div>
<div id="note-modal"></div>
{% endblock %}
@@ -2,95 +2,252 @@
{% block dashContent %}
{% if type == "spontaneous" %}
{% include 'company/job_submenu.html.twig' with {
'tab' : 3
} %}
{% else %}
{% include 'company/job_submenu.html.twig' with {
'tab' : 2
} %}
{% endif %}
<div class="row bg-bordered p-20">
<h1 class="alttitle">Réponse de {{ answer.user.firstname }} {{ answer.user.lastname }}</h1>
{% if type == "spontaneous" %}
{% include 'company/tabs.html.twig' with {'tab':3} %}
{% else %}
{% include 'company/tabs.html.twig' with {'tab':2} %}
{% endif %}
<div class="col s12 m6 l6 col-padding-right">
<div class="bg-bordered inside-m">
<span>Réponse émise le : {{ answer.cTime|date('d-m-Y') }}</span><br/>
{% 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>
<iframe src="https://player.vimeo.com/video/{{ answer.video.cdnUrl|replace({ "/videos/": ""}) }}"
width="100%" height="300" frameborder="0" webkitallowfullscreen mozallowfullscreen
allowfullscreen></iframe>
<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>
{% if answer.comment %}
<strong>Message du talent :</strong>
<p>{{ answer.comment }}</p>
{% endif %}
</div>
<h3>Profil du talent : </h3>
<div class="profil">
<p class="profil-picture">
{% if answer.user.getWebPath() %}
<img src="{{ answer.user.getWebPath() | imagine_filter('profile_square') }}"
alt="{{ answer.user.firstname }} {{ answer.user.lastname }}"
class="circle responsive-img"/>
{% endif %}
</p>
<i class="fa fa-user-circle"
aria-hidden="true"></i> {{ answer.user.firstname }} {{ answer.user.lastname }}
{% if answer.user.gender == "female" %}
<i class="fa fa-mars" aria-hidden="true"></i>
{% else %}
<i class="fa fa-venus" aria-hidden="true"></i>
{% endif %}
<br/>
<i class="fa fa-birthday-cake" aria-hidden="true"></i> {{ answer.user.birthday|date('d-m-Y') }}<br/>
</div>
</div>
<div class="embed-responsive embed-responsive-16by9">
<iframe src="https://player.vimeo.com/video/{{ answer.video.cdnUrl|replace({ "/videos/": ""}) }}"
width="100%" height="auto" frameborder="0" webkitallowfullscreen mozallowfullscreen
allowfullscreen></iframe>
</div>
</div>
<div class="col s12 m6 l6 col-padding-left">
<div class="col s12 m12 l12">
<div class="bg-bordered inside-m">
<h4 class="no-margin-top">
Contacter le talent
</h4>
<p>
Expéditeur : {{ app.user.firstname }} {{ app.user.lastname }}
</p>
<div class="col s12 m6">
{% if answer.comment %}
<strong>{% trans %}label.message{% endtrans %}</strong>
<p class="message-answer">{{ answer.comment }}</p>
{% else %}
{% trans %}label.noMessage{% endtrans %}
{% endif %}
</div>
<div class="col s12">
<h4 class="no-margin-top bordered">Contacter {{ answer.user.firstname }} {{ answer.user.lastname }} par : </h4>
</div>
<div class="col s12 col-actions">
<a class="btn btn-default btn-active bnt-choice-message" data-value="message">Message</a><a class="btn btn-default bnt-choice-message" data-value="video">Vidéo</a>
</div>
<div class="col s12">
<div class="col-bordered">
<div class="blockanswer blockanswer-video">
<a class="btn btn-default bnt-choice-video" data-value="webcam" href="#">Enregistrer une vidéo</a>
<a class="btn btn-default bnt-choice-video" data-value="upload" href="#">Importer une vidéo</a>
<a class="btn btn-default bnt-choice-video" data-value="videotheque" ref="#">Choisir depuis la videothèque</a>
</div>
<div class="blockanswer blockanswer-message">
<div class="sender">De : {{ app.user.firstname }} {{ app.user.lastname }}</div>
{{ form_start(form) }}
{{ form_rest(form) }}
<button type="submit" class="btn btn-default">Envoyer</button>
<div class="bottom-form">
<button type="submit" class="btn btn-default disabled">Envoyer</button>
</div>
{{ form_end(form) }}
</div>
{{ form_start(formVideo) }}
<div id="blockanswer-video-webcam" class="panel-hide">
{% include 'message/message_create_webcam.twig' %}
</div>
<div id="blockanswer-video-upload" class="panel-hide">
{% include 'message/message_create_import.twig' %}
</div>
<div id="blockanswer-video-videotheque" class="panel-hide">
{% include 'message/message_create_videotheque.twig' %}
</div>
<div id="validFormVideo" class="panel-hide">
{{ form_widget(formVideo._token, { 'id': 'token_video' }) }}
{{ form_widget(formVideo.status, { 'id': 'contact_talent_status_video' }) }}
{{ form_rest(formVideo) }}
<div class="bottom-form">
<button type="submit" class="btn btn-default disabled">Envoyer</button>
</div>
</div>
{{ form_end(formVideo) }}
</div>
{#{% if answer.contactMessage %}
<div class="col s12 m12 l12 m-t-20">
<div class="bg-bordered inside-m">
<h4 class="no-margin-top">
Réponse
</h4>
<p>
{{ answer.contactMessage|nl2br }}
</p>
</div>
</div>
</div>
{% endif %}#}
</div>
<div class="col s12">
<h4 class="no-margin-top bordered">{% trans %}label.answer.history.title{% endtrans %}</h4>
</div>
<div class="col s12">
{% if answer.messages %}
{% for message in answer.messages %}
<div class="col s12 m12 l12 m-t-20">
<div class="bg-bordered inside-m">
<h4 class="no-margin-top">
Réponse : {{ message.status }}
</h4>
<p>
{{ message.content|nl2br }}
</p>
</div>
{% for message in answer.messages if message.status != "DRAFT" %}
{% set class = '' %}
{% if loop.index > 1 %}
{% set class = 'history-hidden' %}
{% endif %}
<div class="blockanswer-answer {{class}}">
<div class="title-answer">
{% trans %}label.answer{% endtrans %}{{ message.status|trans }}
<span class="date-answer">{% trans %}label.sended{% endtrans %}{{ message.uTime|date('d-m-Y') }}</span>
</div>
<div class="description-answer">
{% if message.video %}
<div class="embed-responsive embed-responsive-16by9">
<iframe src="https://player.vimeo.com/video/{{ message.video.cdnUrl|replace({ "/videos/": ""}) }}"
width="100%" height="300" frameborder="0" webkitallowfullscreen mozallowfullscreen
allowfullscreen></iframe>
</div>
{% endif %}
{{ message.content|nl2br }}
</div>
</div>
{% endfor %}
{% endif %}
</div>
<div class="col s12 center-align m-t-30">
<a class="bnt btn-round btn-grey-2 link-history-more" href="#" title="{% trans %}label.history.link{% endtrans %}">{% trans %}label.history.link{% endtrans %}</a>
</div>
</div>
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script type="text/javascript">
var urlDropzone = '{{ path("upload_media_message", {"id": message.getId()}) }}';
var urlDelete = '{{ path("delete_media_message", {"id": message.getId() }) }}'
var idObject = null;
var typeObject = "answer";
var videoExist = false;
</script>
<script src="{{ asset('/js/dropzone.js') }}"></script>
<script src="{{ asset('/js/vendors/video.min.js') }}"></script>
<script src="{{ asset('/js/vendors/RecordRTC.js') }}"></script>
<script src="{{ asset('/js/vendors/videojs.record.js') }}"></script>
<script src="{{ asset('/js/vendors/jquery.browser.min.js') }}"></script>
<script src="{{ asset('/js/vendors/readmore.min.js') }}"></script>
<script src="{{ asset('/js/answer.js') }}"></script>
<script type="text/javascript">
$(".card-action").click(function(){
var idVideo = $(this).data("id");
var titleVideo = $(this).data("title");
var imgVideo = $(this).data("img");
var urlVideo = $(this).data("url");
var elem = $(this);
form['contact_talent_video'] = 1;
$.ajax({
type: 'POST',
url: '{{ path("link_media_message", {"id": message.getId()}) }}',
data: "idVideo="+idVideo,
dataType: 'html',
success: function (response) {
$(".card-action").removeClass('active');
elem.addClass('active');
Materialize.toast('Vidéo bien associé à la réponse', 4000);
if($("#submit").hasClass('disabled')){
$("#submit").removeClass('disabled');
$("#submit").addClass('pulse');
}
},
error: function (response, xhr, ajaxOptions, thrownError) {
Materialize.toast('Erreur lors de l\'association de la vidéo!', 4000);
}
});
});
$('.bnt-choice-message').on('click',function(){
var type = $(this).data('value');
$('.bnt-choice-message').removeClass('btn-active');
$('.bnt-choice-video').removeClass('active');
$(this).addClass('btn-active');
$(".panel-hide").removeClass('active');
$(".panel-hide").stop().fadeOut();
$('.blockanswer').stop().fadeOut('normal',function(){
$('.blockanswer-'+type).stop().fadeIn();
if(type == 'video'){
$('.bnt-choice-video:first').click();
}
});
});
$('.blockanswer-video').css('display','none');
$('.bnt-choice-video').on('click',function(e){
e.preventDefault();
var type = $(this).data('value');
$('.bnt-choice-video').removeClass('active');
$(this).addClass('active');
$(".panel-hide").removeClass('active');
$('#blockanswer-video-'+type).addClass('active');
$(".panel-hide").not(".active").stop().fadeOut('normal',function(){
$('#blockanswer-video-'+type).stop().fadeIn('fast');
if(type=="webcam"){
$('#blockanswer-video-upload').stop().fadeIn('fast');
}
$('#validFormVideo').stop().fadeIn('fast');
});
});
$('.link-history-more').on('click',function(e) {
e.preventDefault();
$('.history-hidden').fadeIn();
$(this).fadeOut();
});
document.getElementsByName("contact_talent[message]")[0].addEventListener('change', verifySubmitButton);
$('#contact_talent_status').on('change',verifySubmitButton);
var form = [];
form['contact_talent_message'] = 0;
form['contact_talent_video'] = 0;
form['contact_talent_status_video'] = 0;
form['contact_talent_status'] = 0;
function verifySubmitButton(){
if(this.value && this.value != 0){
form[this.id] = 1;
} else {
form[this.id] = 0;
}
if(form['contact_talent_message'] + form['contact_talent_status'] >= 2){
$('.blockanswer-message .btn').removeClass('disabled');
} else {
$('.blockanswer-message .btn').addClass('disabled');
}
}
$('#contact_talent_status_video').on('change',verifyVideoSubmitButton);
function verifyVideoSubmitButton(){
if(this.value && this.value != 0){
form[this.id] = 1;
} else {
form[this.id] = 0;
}
if(form['contact_talent_video'] + form['contact_talent_status_video'] >= 2){
$('#validFormVideo .btn').removeClass('disabled');
} else {
$('#validFormVideo .btn').addClass('disabled');
}
}
$('.message-answer').readmore({
speed: 75,
lessLink: '<a href="#" class="link-message-more">Fermer</a>',
moreLink: '<a href="#" class="link-message-more">{% trans %}label.link.readmore{% endtrans %}</a>',
blockProcessed: function(element,collapsable){
console.log(element);
console.log(collapsable);
if(collapsable == false){
$('.message-answer').readmore('destroy');
}
}
});
</script>
{% endblock %}
@@ -2,7 +2,7 @@
{% block content %}
<div class="fluid-container bg-grey-3 dashboardWrapper">
<div class="fluid-container bg-grey-3 dashboardWrapper dashboardCompanyWrapper">
<div class="container">
<div class="row flexcontainer">
{% include "company/menu.html.twig" ignore missing %}
@@ -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>
@@ -130,20 +130,18 @@
<div class="row">
<div class="col s12">
<div class="col-content p-30">
{% if popup_answer_already_send is not empty and popup_answer_already_send[0] == true %}
<h3 class="color-blue1 center-align">Votre candidature a bien été envoyée à {{ company.brandname }} !</h3>
<div class="col offset-s2 s8 center-align">
<div class="embed-responsive embed-responsive-16by9">
<div class="col s12">
<iframe src="https://player.vimeo.com/video/249822507"
width="100%" height="640" frameborder="0"></iframe>
</div>
<h3 class="color-blue1 center-align">Votre candidature a bien été envoyée à {{ company.brandname }} !</h3>
<div class="col offset-s2 s8 center-align">
<div class="embed-responsive embed-responsive-16by9">
<div class="col s12">
<iframe src="https://player.vimeo.com/video/249822507"
width="100%" height="640" frameborder="0"></iframe>
</div>
<a href="{{ path('talent_dashboard') }}" class="btn btn-default m-t-20">Accéder à mon profil</a>
<br /><br />
<a class="text modal-action modal-close">Fermer</a>
</div>
{% endif %}
<a href="{{ path('talent_dashboard') }}" class="btn btn-default m-t-20">Accéder à mon profil</a>
<br /><br />
<a class="text modal-action modal-close">Fermer</a>
</div>
</div>
</div>
</div>
@@ -0,0 +1,20 @@
<div class="row bg-bordered p-0">
<ul class="nav-tabs">
<li class="{% if tab == 1 %} active {% endif %} col s3">
<a {% if tab == 1 %}class="active"{% endif %} target="_self"
href="{{ path('company_ad') }}">
{{ 'company.title.ads.label'|trans }}
</a>
</li>
<li class="{% if tab == 2 %} active {% endif %} col s3">
<a {% if tab == 2 %}class="active"{% endif %} target="_self" href="{{ path('company_answer_list') }}">
{{ 'company.menu.answers.label'|trans }}
</a>
</li>
</ul>
<div class="col s4 right m-t-10">
<a class="btn-square" target="_self" href="{{ path('company_ad_create') }}">
<i class="fa fa-plus"></i> {{ 'ad.company.add.label'|trans }}
</a>
</div>
</div>
@@ -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 href="{{ path('talent_answer_create',{'id': ad.getId()}) }}"
<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 href="{{ path('talent_answer_create',{'id': ad.getId()}) }}"
<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

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