93 Commits

Author SHA1 Message Date
4959a10857 Merge branch 'master' into dist/envole/6/master 2022-07-06 11:18:42 +02:00
d0d8183f7a ne plus concidèrer les profils scribe comme des groupes de travail 2022-07-06 11:11:59 +02:00
d42fdbfedd Merge branch 'master' into dist/envole/6/master 2022-05-10 09:32:08 +02:00
4f2fa1db4f Synchronisation scribe niveaux + eleves classes + profs classes (ref #34132) 2022-05-10 09:12:21 +02:00
75d935aa57 Synchronisation scribe niveaux + eleves classes + profs classes (ref #34132) 2022-05-09 13:51:33 +02:00
27e23fffaf ne pas afficher le clic sonde sur les app autogénérées par envole (fixes #33944) 2022-05-09 11:43:01 +02:00
70e2d49e7c Merge branch 'master' into dist/envole/6/master 2022-03-03 11:55:03 +01:00
df8bcfc1a1 ajout de l'item cdt et sa synchronisation poshprofil 2022-03-03 11:51:43 +01:00
666b90d513 Merge branch 'master' into dist/envole/6/master 2022-02-21 14:02:28 +01:00
2b86aa4e2f appel sonde sur click 2022-02-18 09:57:20 +01:00
cbae74f041 Merge branch 'master' into dist/envole/6/master 2022-02-04 13:34:04 +01:00
57f96132f4 mise en place jquerydate sur le formulaire des annonces (ref #33524) 2022-02-04 13:14:52 +01:00
ecbaed5c85 Merge branch 'master' into dist/envole/6/master 2022-02-04 11:33:43 +01:00
aac017c263 hauteur auto sur les images insérées dans les alertes (ref #33523) 2022-02-04 10:55:33 +01:00
e2d9380f65 Merge branch 'master' into dist/envole/6/master 2022-02-03 16:53:55 +01:00
21fc95f71e Merge branch 'master' into dist/envole/6/master 2022-02-03 16:49:54 +01:00
702d060503 optiomisation sur annonces lues / non lues cas annonces visiteur (ref #33746) 2022-02-03 16:34:44 +01:00
c6d349696e optiomisation sur annonces lues / non lues (ref #33746) 2022-02-03 16:30:40 +01:00
3818a38106 Merge branch 'master' into dist/envole/6/master 2021-12-08 11:33:34 +01:00
d0d933f28e dicos ajout service wssninegate 2021-12-08 11:16:56 +01:00
d155d5331f Merge branch 'master' into dist/envole/6/master 2021-12-08 09:39:19 +01:00
1249b7be21 ajout variable activer_revprox si non existante 2021-12-08 09:23:12 +01:00
f535e165ef Merge branch 'master' into dist/envole/6/master 2021-12-07 17:06:43 +01:00
6081e6a692 passer par un alias pour les websockets 2021-12-07 16:47:22 +01:00
fce9842064 Merge branch 'master' into dist/envole/6/master 2021-12-06 11:56:04 +01:00
01da55e6d6 gestion copier / coller des images dans les editeurs de texte (fixes #33465) 2021-12-06 11:40:02 +01:00
95e51c4d53 ne plus bloquer bundle edispatcher si masteridentity != SSO (fixes #33444) 2021-12-06 10:41:18 +01:00
9157b78671 user ldap reader si masteridentity != SQL 2021-12-03 11:44:34 +01:00
fec7eff6c5 Merge branch 'master' into dist/envole/6/master 2021-10-18 15:10:39 +02:00
e66f8999ed mise en forme de la zone username dans la barre de navigation (fixes #32780) 2021-10-18 14:29:41 +02:00
41915a0547 correction orthographe (fixes #33045) 2021-10-18 14:13:45 +02:00
c7586c86d5 ajout du titre de l'enregistrement dans le titre de la page modifiée (fixes #33046) 2021-10-18 14:08:53 +02:00
6a8e102fc6 modification style (fixes #33143) 2021-10-18 13:37:10 +02:00
e41093d3b9 Merge branch 'master' into dist/envole/6/master 2021-10-07 10:54:33 +02:00
eedaa86dcf rapatrier les variables eoledb dans la famille eoledb (ref #33188) 2021-10-07 10:52:59 +02:00
91d2febf2e Merge branch 'master' into dist/envole/6/master 2021-09-14 11:45:01 +02:00
1d448e70c7 autocreate user (fixes #33139) 2021-09-14 11:40:18 +02:00
0fc2346281 Merge branch 'master' into dist/envole/6/master 2021-08-27 10:59:48 +02:00
63c710c4fd correctif si groupe shared sans page 2021-08-27 10:02:15 +02:00
fbb5a4aca6 Merge branch 'master' into dist/envole/6/master 2021-07-20 10:21:52 +02:00
ac37691536 [THEME ACREUNION] mode reduit affichage username 2021-07-14 07:50:54 +04:00
13e5bfb428 [THEME ACREUNION] Adaptation des couleurs 2021-07-12 20:43:57 +04:00
98718ccc1e Merge branch 'master' into dist/envole/6/master 2021-07-12 16:35:55 +02:00
ed75b5f5c3 fixes #31884 , faire en sortes sur les urls soient compatibles https et http 2021-07-12 18:10:11 +04:00
5147a2b105 Merge branch 'master' into dist/envole/6/master 2021-07-12 15:51:41 +02:00
f361110766 Merge branch 'master' of https://dev-eole.ac-dijon.fr/git/ninegate 2021-07-12 15:48:34 +02:00
a5fbe134cc les alertes sans date de fin ne peuvent pas etre archivées (fixes #32914) 2021-07-12 15:47:57 +02:00
7dc7d708d3 [THEME ACREUNION] couleur du nom de l'utilisateur adapté au fond blanc du theme 2021-07-12 17:18:17 +04:00
9a260e6ae5 Merge branch 'master' into dist/envole/6/master 2021-07-12 12:49:59 +02:00
7ecfa45d75 mise en forme du bage item 2021-07-12 12:46:55 +02:00
7380823897 config typesso client ou proxy (fixes #32904) 2021-07-12 10:32:14 +02:00
8b794e8aa1 Merge branch 'master' into dist/envole/6/master 2021-07-05 14:41:20 +02:00
911bea2b5d correction orthographe (fixes #32829 2021-07-05 14:30:46 +02:00
13c24bd1ee ajout du param timerefreshnotif (fixes #32871) 2021-07-05 14:26:51 +02:00
fac25a036e passage en cas proxy pour imapunread 2021-07-05 14:09:54 +02:00
d61c2fc94d passage en cas proxy pour imapunread 2021-07-05 14:07:18 +02:00
f228f01c62 Merge branch 'master' into dist/envole/6/master 2021-07-05 10:47:55 +02:00
3e9e581116 prise en compte des usage dnma accueil 2021-07-05 10:44:59 +02:00
14283a731e correctif sur admin calendar 2021-06-30 09:29:31 +02:00
de04ab9bdb Merge branch 'master' into dist/envole/6/master 2021-06-17 15:08:49 +02:00
5271f992a7 replacer les modifs écrasées 2021-06-17 15:01:57 +02:00
729ed9fba9 Merge branch 'master' into dist/envole/6/master 2021-06-15 10:21:33 +02:00
e3188b1732 correctif style 2021-06-15 10:14:47 +02:00
39f45ab8b8 resolution conflit 2021-06-11 15:38:41 +02:00
fa62b8aa36 preference utilisateur modedesktop (fixes #32763) 2021-06-11 15:31:33 +02:00
3ba041b207 ajout du nom de la page dans la barre de navigation (fixes #32762) 2021-06-11 14:31:01 +02:00
465bfd0374 cacher les groupes aux users (fixes #32271) 2021-06-11 14:07:10 +02:00
2a2dfc55bb modification orthorgraphe (fixes #32760) 2021-06-11 11:29:18 +02:00
24e2fb3c2e ajout prenom nom dans la bannière (fixes #32761) 2021-06-11 10:26:00 +02:00
ebd9a5a0a6 modification subtitle content items (fixes #32764) 2021-06-11 09:34:04 +02:00
16eb147e5b ajout système de badge sur les items + init badge sur l'item roundcube (fixes #32115) 2021-06-10 16:18:03 +02:00
e4cb40fae8 modif strucutre pour badgeurl (ref #32115) 2021-06-10 11:43:09 +02:00
9d40aa6575 scinder les annonces à publier en ligne archivées (fixes #32602) 2021-06-10 11:26:55 +02:00
4399db9498 alerte = permettre aux users de masquer à oui par défaut (fixes #32749) 2021-06-10 10:43:36 +02:00
295c4bd4f7 prise en compte du port de l'ead configuré dans genconfig (fixes #32749) 2021-06-10 10:29:44 +02:00
27bcb3fbe7 ajout du theme white (fixes #32202) 2021-06-10 09:53:17 +02:00
aef67571f6 Merge branch 'master' into dist/envole/6/master 2021-05-21 11:06:50 +02:00
d3c8a95336 Merge branch 'master' of https://dev-eole.ac-dijon.fr/git/ninegate 2021-05-21 11:01:05 +02:00
2679d8f629 redirection vers le groupe après signature de la charte 2021-05-21 11:00:34 +02:00
2ec1ae6824 Merge branch 'master' into dist/envole/6/master 2021-05-17 11:17:31 +02:00
8ed97d8d96 fixes #32513 mise a jour entité datasource username.length=128 2021-05-17 10:16:29 +04:00
0ab5a40d98 Merge branch 'master' into dist/envole/6/master 2021-05-06 13:47:42 +02:00
2b4d048f9d enlarge your attributes 2021-05-06 13:41:33 +02:00
edd59cd60c Merge branch 'master' into dist/envole/6/master 2021-05-04 11:08:09 +02:00
20c131db2e desactivation possible des notifications de groupe de travail 2021-05-04 11:03:11 +02:00
da0f0ad0f3 Merge branch 'master' into dist/envole/6/master 2021-04-27 10:13:40 +02:00
72c5e49cf6 mise à plat valeur obligatoire sur fiche user 2021-04-27 10:09:19 +02:00
996651ca0e Merge branch 'master' into dist/envole/6/master 2021-04-26 15:43:33 +02:00
635f44a894 prise en compte des param des champs users dans la vue user et l'appartenance aux groupes 2021-04-26 15:38:56 +02:00
a78b2051f1 Merge branch 'master' into dist/envole/6/master 2021-04-21 09:18:28 +02:00
33841459d9 bug ajout fav 2021-04-21 09:14:21 +02:00
d61216216a Merge branch 'master' into dist/envole/6/master 2021-04-08 10:31:36 +02:00
150e624fca bug déplacement fichiers 2021-04-08 10:28:24 +02:00
116 changed files with 1638 additions and 554 deletions

View File

@ -2,6 +2,7 @@
<creole>
<files>
<file filelist='ninegate' name='/etc/eole/eole-db.d/ninegate-db.yml' rm='True' mkdir='True'/>
<file filelist='ninegate_nginx' name='/etc/nginx/web.d/ninegate.conf' source='ninegate-nginx.conf' rm='True' mkdir='True' />
</files>
<containers>
@ -9,6 +10,7 @@
<package>ninegate-apps</package>
<file filelist='ninegate' name='/etc/apache2/sites-available/ninegate' source='ninegate-apache.conf' rm="True"/>
<file filelist='ninegate' name='/lib/systemd/system/wssninegate.service' source='ninegate.service'/>
<file filelist="ninegate" name="/var/www/html/ninegate/app/config/parameters.yml" source="ninegate-parameters.yml" rm="True"/>
<file filelist="ninegate" name="/var/www/html/ninegate/app/config/template.yml" source="ninegate-template.yml" rm="True"/>
<file filelist="ninegate" name="/var/www/html/ninegate/scripts/ninegate-postservice-00.sh" source="ninegate-postservice-00.sh" rm="True" mode="700" />
@ -18,16 +20,12 @@
<file filelist='ninegate-migration' name='/var/www/html/envole-migration/config/config-db-ninegate.php' source='ninegate-migration.php' mkdir='True'/>
<service method='apache' servicelist='ninegate'>ninegate</service>
<service_access service='ninegate_websocket'>
<port port_type="SymLinkOption">ninegate_websocket_portexterne</port>
</service_access>
<service servicelist="ninegate">wssninegate</service>
</container>
</containers>
<variables>
<family name='Ninegate'>
<family name='Ninegate' icon='home'>
<variable type='oui/non' name='activer_cadolesldap' description='Activer Annuaire Cadoles' hidden='True' exists='False'/>
<variable type='string' name='cadolesldap_pwdadmin' description="Mot de passe du compte admin durant l'instance" hidden='True' exists='False'/>
<variable type='string' name='cadolesldap_organization' description="Nom de l'organisation principale" hidden='True' exists='False'/>
@ -39,6 +37,7 @@
<variable name="ninegate_test_ninegate" type="oui/non" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_adminer" type="oui/non" description="Activer Adminer" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_balado" type="oui/non" description="Activer Balado" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_cdt" type="oui/non" description="Activer CdT" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_dokuwiki" type="oui/non" description="Activer Dokuwiki" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_econnect" type="oui/non" description="Activer eConnect" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_ead_web" type="oui/non" description="Activer EAD" hidden='True' exists='False'><value>non</value></variable>
@ -65,6 +64,7 @@
<variable name="activer_roundcube" type="oui/non" description="Activer Roundcube" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_sacoche" type="oui/non" description="Activer Sacoche" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_wordpress" type="oui/non" description="Activer Wordpress" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_revprox" type="oui/non" description="Activer le reverse proxy Nginx" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_sondepiwik_local" type="oui/non" description="Activer Sonde Piwik" hidden='True' exists='False'><value>non</value></variable>
@ -78,8 +78,6 @@
<variable name='ninegate_test_conf_ldap' type='oui/non' hidden='True'/>
<variable type='oui/non' name='activer_ninegate' description='Activer Ninegate'><value>oui</value></variable>
<variable type='string' name='ninegate_masteridentity' description="Maître de l'Identité" mandatory='True'><value>LDAP</value></variable>
@ -90,6 +88,7 @@
<variable type='string' name='ninegate_ssoreqgroup' description="Attribut SSO associé à la notion de groupe" mandatory='True'><value>user_groups</value></variable>
<variable type='oui/non' name='ninegate_ssosynchroitem' description="Associer automatiquement les items en fonction d'un attribut SSO"><value>non</value></variable>
<variable type='string' name='ninegate_ssoreqitem' description="Attribut SSO associé à la notion d'item" mandatory='True'><value></value></variable>
<variable type='string' name='ninegate_typesso' description="Mode de connexion SSO (Client ou Proxy)" mandatory='True'><value>client</value></variable>
<variable type='oui/non' name='ninegate_syncldap' description="Synchroniser Ninegate vers votre Annuaire CadolesLDAP"><value>non</value></variable>
<variable type='string' name='ninegate_ldaptemplate' description="Modèle d'annuaire"><value>scribe</value></variable>
@ -197,6 +196,13 @@
<variable type='string' name='ninegate_widbalado_url' description='URL complète de votre Balado' mandatory='True' />
<variable type='string' name='ninegate_widbalado_syncenvole' description='URL Posh-Profil pour synchronisation Balado' mandatory='True' />
<!-- CDT -->
<variable type="oui/non" name='ninegate_activate_widcdt' description='Activer CdT' mandatory='True'>
<value>non</value>
</variable>
<variable type='string' name='ninegate_widcdt_url' description='URL complète de votre CdT' mandatory='True' />
<variable type='string' name='ninegate_widcdt_syncenvole' description='URL Posh-Profil pour synchronisation CdT' mandatory='True' />
<!-- DOKUWIKI -->
<variable type="oui/non" name='ninegate_activate_widdokuwiki' description='Activer Dokuwiki' mandatory='True'>
<value>non</value>
@ -213,7 +219,6 @@
<variable type="oui/non" name='ninegate_activate_widead' description='Activer EAD' mandatory='True'>
<value>non</value>
</variable>
<variable type='string' name='ninegate_widead_url' description='URL complète de votre EAD' mandatory='True' />
<!-- EOE -->
<variable type="oui/non" name='ninegate_activate_wideoe' description='Activer EOE' mandatory='True'>
@ -374,19 +379,6 @@
<variable type='string' name='ninegate_widwordpress_url' description='URL complète de votre Wordpress' mandatory='True' />
<variable type='string' name='ninegate_widwordpress_syncenvole' description='URL Posh-Profil pour synchronisation Wordpress' mandatory='True' />
<!-- WEBSOCKET -->
<variable type='string' name='ninegate_websocket_url' description='Host du serveur Websocket' mandatory='True' />
<variable type='string' name='ninegate_websocket_portexterne' description='Port de commuinication externe du serveur Websocket' mandatory='True' >
<value>5555</value>
</variable>
<variable type='string' name='ninegate_websocket_portinterne' description='Port de commuinication interne du serveur Websocket' mandatory='True'>
<value>5556</value>
</variable>
<!-- EMAIL -->
<variable type='string' name='ninegate_noreply' description='Adresse mail utilisé pour le noreply' mandatory='True' />
<variable type="oui/non" name='ninegate_activer_localmail' description="Utiliser le serveur d'envoi de mail local" mandatory='True'>
@ -398,9 +390,9 @@
<variable type='string' name='ninegate_smtppwd' description='Fichier contenant le mot de passe associé du compte SMTP' />
<variable type='string' name='ninegate_smtpencryption' description='Type Encryptage du serveur SMTP' />
<variable type='string' name='ninegate_smtpauthmode' description='Mode Authentification du serveur SMTP' />
</family>
<family name='EoleDB' icon='database' mode='expert'>
<!-- EOLEDB -->
<variable type='string' name='ninegate_db_mode' description='Serveur de bases de données à utiliser' mode='expert'/>
<variable type='string' name='ninegate_dbserver' description='Adresse du serveur de base de données' mode='expert'/>
@ -416,6 +408,7 @@
<separator name="ninegate_activate_portal">Paramètres associés aux modules à activer</separator>
<separator name="ninegate_activate_widadminer">Paramètres associés à Adminer</separator>
<separator name="ninegate_activate_widbalado">Paramètres associés à Balado</separator>
<separator name="ninegate_activate_widcdt">Paramètres associés à CdT</separator>
<separator name="ninegate_activate_widdokuwiki">Paramètres associés à Dokuwiki</separator>
<separator name="ninegate_activate_wideconnect">Paramètres associés à eConnect</separator>
<separator name="ninegate_activate_widead">Paramètres associés à EAD</separator>
@ -443,9 +436,9 @@
<separator name="ninegate_activate_widroundcube">Paramètres associés à Roundcube</separator>
<separator name="ninegate_activate_widsacoche">Paramètres associés à Sacoche</separator>
<separator name="ninegate_activate_widwordpress">Paramètres associés à Wordpress</separator>
<separator name="ninegate_websocket_url">Paramètres associés au Serveur WEBSOCKET</separator>
<separator name="ninegate_activate_websocket">Paramètres associés au Serveur WEBSOCKET</separator>
<separator name="ninegate_noreply">Paramètres associés aux Mails</separator>
<separator name="ninegate_db_mode">Paramètres associés à la Base de Données</separator>
<separator name="ninegate_db_mode">Paramètres EoleDB associés à Ninegate</separator>
</separators>
</variables>
@ -455,6 +448,11 @@
<target type='variable'>activer_ninegate</target>
</condition>
<condition name='hidden_if_in' source='activer_revprox'>
<param>non</param>
<target type='filelist'>nineboard_nginx</target>
</condition>
<condition name='hidden_if_in' source='activer_ninegate'>
<param>non</param>
@ -466,7 +464,8 @@
<target type='variable'>ninegate_ssoreqgroup</target>
<target type='variable'>ninegate_ssosynchroitem</target>
<target type='variable'>ninegate_ssoreqitem</target>
<target type='variable'>ninegate_typesso</target>
<target type='variable'>ninegate_syncldap</target>
<target type='variable'>ninegate_ldaptemplate</target>
<target type='variable'>ninegate_scribegroup</target>
@ -530,6 +529,7 @@
<target type='variable'>ninegate_dbpass</target>
<target type='filelist'>ninegate</target>
<target type='filelist'>ninegate_nginx</target>
<target type='filelist'>ninegate-migration</target>
<target type='servicelist'>ninegate</target>
@ -565,7 +565,15 @@
<target type='variable'>ninegate_ssosynchrogroup</target>
<target type='variable'>ninegate_ssoreqgroup</target>
<target type='variable'>ninegate_ssosynchroitem</target>
<target type='variable'>ninegate_ssoreqitem</target>
<target type='variable'>ninegate_ssoreqitem</target>
</condition>
<condition name='hidden_if_in' source='ninegate_mode_auth'>
<param>SQL</param>
<param>LDAP</param>
<param>SAML</param>
<target type='variable'>ninegate_typesso</target>
</condition>
<condition name='hidden_if_in' source='ninegate_syncldap'>
@ -717,6 +725,7 @@
<target type='variable'>ninegate_activate_widadminer</target>
<target type='variable'>ninegate_activate_widbalado</target>
<target type='variable'>ninegate_activate_widcdt</target>
<target type='variable'>ninegate_activate_widdokuwiki</target>
<target type='variable'>ninegate_activate_wideconnect</target>
<target type='variable'>ninegate_activate_widead</target>
@ -766,6 +775,7 @@
<param>non</param>
<target type='variable'>ninegate_widbalado_syncenvole</target>
<target type='variable'>ninegate_widcdt_syncenvole</target>
<target type='variable'>ninegate_widgepi_syncenvole</target>
<target type='variable'>ninegate_widlimesurvey_syncenvole</target>
<target type='variable'>ninegate_widmoodle_syncenvole</target>
@ -784,30 +794,12 @@
<condition name='hidden_if_in' source='poshprofil_typesynchro'>
<param>Annuaire</param>
<target type='variable'>ninegate_widbalado_syncenvole</target>
<target type='variable'>ninegate_widcdt_syncenvole</target>
<target type='variable'>ninegate_widgepi_syncenvole</target>
<target type='variable'>ninegate_widnextcloud_syncenvole</target>
<target type='variable'>ninegate_widsacoche_syncenvole</target>
</condition>
<!-- AFFICHAGE EN FONCTION DU MODULE WEBSOCKET -->
<condition name='hidden_if_in' source='ninegate_activate_websocket'>
<param>non</param>
<target type='variable'>ninegate_websocket_url</target>
<target type='variable'>ninegate_websocket_portinterne</target>
<target type='variable'>ninegate_websocket_portexterne</target>
<target type='servicelist'>ninegate_websocket</target>
</condition>
<fill name='calc_multi_condition' target='ninegate_websocket_url'>
<param>oui</param>
<param type='eole' name='condition_1' hidden='False'>activer_apache</param>
<param type='eole' name='match' hidden='False'>web_url</param>
<param name='default_mismatch'>None</param>
</fill>
<!-- AFFICHAGE EN FONCTION DU WIDGET ADMINER -->
<fill name='calc_multi_condition' target='ninegate_activate_widadminer'>
<param>oui</param>
@ -832,7 +824,7 @@
<!-- AFFICHAGE EN FONCTION DU WIDGET BALADAO -->
<!-- AFFICHAGE EN FONCTION DU WIDGET BALADO -->
<fill name='calc_multi_condition' target='ninegate_activate_widbalado'>
<param>oui</param>
<param type='eole' name='condition_1' hidden='False'>activer_balado</param>
@ -863,6 +855,39 @@
</fill>
<!-- AFFICHAGE EN FONCTION DU WIDGET CDT -->
<fill name='calc_multi_condition' target='ninegate_activate_widcdt'>
<param>oui</param>
<param type='eole' name='condition_1' hidden='False'>activer_cdt</param>
<param name='match'>oui</param>
<param name='mismatch'>non</param>
<param name='default_mismatch'>non</param>
</fill>
<condition name='hidden_if_in' source='ninegate_activate_widcdt'>
<param>non</param>
<target type='variable'>ninegate_widcdt_url</target>
<target type='variable'>ninegate_widcdt_syncenvole</target>
</condition>
<fill name='calc_multi_condition' target='ninegate_widcdt_url'>
<param>oui</param>
<param type='eole' name='condition_1' hidden='False'>activer_cdt</param>
<param name='match'>/cdt</param>
<param name='default_mismatch'>None</param>
</fill>
<fill name='calc_multi_condition' target='ninegate_widcdt_syncenvole'>
<param>oui</param>
<param type='eole' name='condition_1' hidden='False'>activer_cdt</param>
<param name='match'>/posh-profil</param>
<param name='default_mismatch'>None</param>
</fill>
<!-- AFFICHAGE EN FONCTION DU WIDGET DOKUWIKI -->
<fill name='calc_multi_condition' target='ninegate_activate_widdokuwiki'>
<param>oui</param>
@ -918,18 +943,6 @@
<param name='mismatch'>non</param>
<param name='default_mismatch'>non</param>
</fill>
<condition name='hidden_if_in' source='ninegate_activate_widead'>
<param>non</param>
<target type='variable'>ninegate_widead_url</target>
</condition>
<fill name='concat' target='ninegate_widead_url'>
<param>https://</param>
<param type='eole'>web_url</param>
<param>:4200</param>
</fill>
<!-- AFFICHAGE EN FONCTION DU WIDGET EOE -->
<fill name='calc_multi_condition' target='ninegate_activate_wideoe'>
@ -1651,6 +1664,10 @@
<param>['CAS', 'SAML', 'SQL', 'LDAP']</param>
</check>
<check name='valid_enum' target='ninegate_typesso'>
<param>['client', 'proxy']</param>
</check>
<check name='valid_enum' target='ninegate_moderegistration'>
<param>['none', 'byuser', 'byadmin']</param>
</check>

View File

@ -127,16 +127,16 @@ gos_web_socket:
firewall: main
shared_config: true
server:
port: %websocket_port% #The port the socket server will listen on
host: %websocket_host% #The host ip to bind to
port: 443 #The port the socket server will listen on
host: %weburl%/wssninegate #The host ip to bind to
router:
resources:
- "@CadolesWebsocketBundle/Resources/config/topic.yml"
pushers:
wamp:
host: %websocket_host%
port: %websocket_portinterne%
host: 0.0.0.0
port: 5556
# ckeditor configuration
ivory_ck_editor:
@ -147,7 +147,7 @@ ivory_ck_editor:
language: fr
toolbar: "my_toolbar_1"
uiColor: "#ffffff"
extraPlugins: ["html5video","pastebase64"]
extraPlugins: ["html5video"]
light_config:
language: fr
toolbar: "my_toolbar_2"

View File

@ -1,11 +1,9 @@
#!/bin/bash
websocket_url=$(CreoleGet adresse_ip_eth0 non)
websocket_portinterne=$(CreoleGet ninegate_websocket_portinterne non)
# Server Websocket
if [[ "$1" != "restartifdown" ]]; then
echo WEBSOCKET = STOP
pid="$(pgrep -a -f gos:websocket | grep $websocket_portinterne)"
pid="$(pgrep -a -f gos:websocket | grep 5556)"
if [ -n "${pid}" ]; then
IFS=' ' read -r -a array <<< "$pid"
kill -9 ${array[0]};
@ -13,7 +11,7 @@ if [[ "$1" != "restartifdown" ]]; then
fi
# Port LISTEN ?
pid="$(pgrep -a -f gos:websocket | grep $websocket_portinterne)"
pid="$(pgrep -a -f gos:websocket | grep 5556)"
restart="yes"
if [ "$1" == "restartifdown" ] && [ -n "${pid}" ] ; then
restart="no"
@ -22,5 +20,5 @@ fi
if [ "$restart" == "yes" ] && [ "$1" != "stop" ] ; then
echo WEBSOCKET = START
cd /var/www/html/ninegate
bin/console gos:websocket:server --port $websocket_portinterne -a $websocket_url --no-debug -n -q --env=prod & disown
systemctl restart wssninegate
fi

View File

@ -30,7 +30,10 @@ class SecurityController extends Controller
// Init Client CAS
\phpCAS::setDebug("/var/log/phpcas/phpCAS-ninegate.log");
@\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), false);
if($this->getParameter("cas_type")=="client")
@\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), false);
else
@\phpCAS::proxy(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), false);
\phpCAS::setNoCasServerValidation();
@ -75,7 +78,9 @@ class SecurityController extends Controller
if($masteridentity=="LDAP") {
// Normalement la synchronisation des comptes aurait du générer le compte en base c'est donc pas normal
// Peut-être juste relancer une synchronisation
throw $this->createNotFoundException('Permission denied. Need to synchronize LDAP ? Contact your administrator');
// On tente une synchronisation via methode SSO
$masteridentity="SSO";
// throw $this->createNotFoundException('Permission denied. Need to synchronize LDAP ? Contact your administrator');
}
if($masteridentity=="SSO") {
@ -86,8 +91,10 @@ class SecurityController extends Controller
// On calcule le niveau01 de l'utilisateur
$niveau01=$em->getRepository('CadolesCoreBundle:Niveau01')->calculateNiveau01($attributes);
if(!$niveau01)
throw $this->createNotFoundException('Permission denied. No Organisation Niveau 01 match');
if(!$niveau01) {
$niveau01=$em->getRepository('CadolesCoreBundle:Niveau01')->findAll()[0];
//throw $this->createNotFoundException('Permission denied. No Organisation Niveau 01 match');
}
$user->setUsername($username);
$user->setEmail($email);
@ -104,6 +111,7 @@ class SecurityController extends Controller
$user->setAvatar("noavatar.png");
$user->setVisible(true);
$user->setAuthlevel("simple");
$user->setBelongingpopulation("agent");
$user->setRole("ROLE_USER");
if(in_array($username,$this->getParameter("ldap_usersadmin")))
@ -194,7 +202,10 @@ class SecurityController extends Controller
public function logoutAction() {
// Init Client CAS
\phpCAS::setDebug(false);
@\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), true);
if($this->getParameter("cas_type")=="client")
@\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), true);
else
@\phpCAS::proxy(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), true);
\phpCAS::setNoCasServerValidation();
@ -208,7 +219,10 @@ class SecurityController extends Controller
// Init Client CAS
\phpCAS::setDebug("/var/log/phpcas/phpCAS-ninegate.log");
@\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), false);
if($this->getParameter("cas_type")=="client")
@\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), false);
else
@\phpCAS::proxy(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), false);
\phpCAS::setNoCasServerValidation();
@ -294,4 +308,29 @@ class SecurityController extends Controller
}
}
function imapunreadAction() {
if($this->getParameter("active_imapunread")&&$this->getParameter("cas_type")=="proxy") {
$ip=$this->getParameter("imapundread_ip");
// Init Client CAS
\phpCAS::setDebug("/var/log/phpcas/phpCAS-ninegate.log");
@\phpCAS::proxy(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), false);
\phpCAS::setNoCasServerValidation();
\phpCAS::forceAuthentication();
$pt= \phpCAS::retrievePT('imap://'.$ip,$t,$f);
$a = \phpCAS::serviceMail("{".$ip.":993/imap/ssl/novalidate-cert}","imap://".$ip,0, $errc,$err,$pt);
$unseen = imap_status($a, "{".$ip.":993/imap/ssl/novalidate-cert}INBOX", SA_UNSEEN);
$count=$unseen->unseen;
$response = new Response(json_encode($count));
}
else
$response = new Response(json_encode(""));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
}

View File

@ -10,3 +10,7 @@ cas_sp.test:
path: /test
defaults: { _controller: CadolesCASBundle:Security:test }
cas_sp.imapunread:
path: /imapunread
defaults: { _controller: CadolesCASBundle:Security:imapunread }

View File

@ -228,9 +228,17 @@ class InitDataCommand extends ContainerAwareCommand
$this->addModeration($profil,'cadoles_portal_config_flux',1);
$this->addModeration($profil,'cadoles_portal_config_notice',1);
$this->addModeration($profil,'cadoles_portal_config_icon',1);
$this->addModeration($profil,'cadoles_portal_config_syncbalado',0);
$this->addModeration($profil,'cadoles_portal_config_synccdt',0);
$this->addModeration($profil,'cadoles_portal_config_syncgepiannu',0);
$this->addModeration($profil,'cadoles_portal_config_syncgepisiecle',0);
$this->addModeration($profil,'cadoles_portal_config_synclimesurvey',0);
$this->addModeration($profil,'cadoles_portal_config_syncmoodle',0);
$this->addModeration($profil,'cadoles_portal_config_syncnextcloud',0);
$this->addModeration($profil,'cadoles_portal_config_syncsacoche',0);
$this->addModeration($profil,'cadoles_portal_config_syncpiwik',0);
$this->addModeration($profil,'cadoles_portal_config_syncwordpress',0);
$this->addModeration($profil,'cadoles_core_config_statistic',1);
$this->addModeration($profil,'cadoles_core_config_mailing',1);
$this->addModeration($profil,'cadoles_core_config_importuser',0);

View File

@ -380,6 +380,46 @@ class PurgeFileCommand extends Command
if($result) $find=true;
}
// Si pas trouvé on la cherche dans les projecttask
if(!$find) {
$result = $this->em
->getRepository("CadolesPortalBundle:Projecttask")->createQueryBuilder('projecttask')
->where('projecttask.description LIKE :tofind')
->setParameter('tofind', '%'.$tofind.'%')
->getQuery()->getResult();
if($result) $find=true;
}
// Si pas trouvé on la cherche dans les projectcomment
if(!$find) {
$result = $this->em
->getRepository("CadolesPortalBundle:Projectcomment")->createQueryBuilder('projectcomment')
->where('projectcomment.description LIKE :tofind')
->setParameter('tofind', '%'.$tofind.'%')
->getQuery()->getResult();
if($result) $find=true;
}
// Si pas trouvé on la cherche dans les blogcomment
if(!$find) {
$result = $this->em
->getRepository("CadolesPortalBundle:Blogcomment")->createQueryBuilder('blogcomment')
->where('blogcomment.description LIKE :tofind')
->setParameter('tofind', '%'.$tofind.'%')
->getQuery()->getResult();
if($result) $find=true;
}
// Si pas trouvé on la cherche dans les alert
if(!$find) {
$result = $this->em
->getRepository("CadolesPortalBundle:Alert")->createQueryBuilder('alert')
->where('alert.content LIKE :tofind')
->setParameter('tofind', '%'.$tofind.'%')
->getQuery()->getResult();
if($result) $find=true;
}
// Si pas trouvé on supprime
if(!$find) {
$this->writeln($name);

View File

@ -49,7 +49,7 @@ class ScriptCommand extends Command
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"visibletrue"]);
if(!$script) {
$this->writelnred("== SCRIPT = visibletrue");
$this->writeln("== SCRIPT = visibletrue");
$this->visibletrue();
$script=new Script();
@ -61,7 +61,7 @@ class ScriptCommand extends Command
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"setusersniveau"]);
if(!$script) {
$this->writelnred("== SCRIPT = setusersniveau");
$this->writeln("== SCRIPT = setusersniveau");
$this->setusersniveau();
$script=new Script();
@ -73,7 +73,7 @@ class ScriptCommand extends Command
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"setfgcancreateproject"]);
if(!$script) {
$this->writelnred("== SCRIPT = setfgcancreateproject");
$this->writeln("== SCRIPT = setfgcancreateproject");
$this->setfgcancreateproject();
$script=new Script();
@ -85,7 +85,7 @@ class ScriptCommand extends Command
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"createproject"]);
if(!$script) {
$this->writelnred("== SCRIPT = createproject");
$this->writeln("== SCRIPT = createproject");
$this->createproject();
$script=new Script();
@ -97,7 +97,7 @@ class ScriptCommand extends Command
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"createthumbmini"]);
if(!$script) {
$this->writelnred("== SCRIPT = createthumbmini");
$this->writeln("== SCRIPT = createthumbmini");
$this->createthumbmini();
$script=new Script();
@ -109,7 +109,7 @@ class ScriptCommand extends Command
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"createwidgetproject"]);
if(!$script) {
$this->writelnred("== SCRIPT = createwidgetproject");
$this->writeln("== SCRIPT = createwidgetproject");
$this->createwidgetproject();
$script=new Script();
@ -121,7 +121,7 @@ class ScriptCommand extends Command
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"renamegroup"]);
if(!$script) {
$this->writelnred("== SCRIPT = renamegroup");
$this->writeln("== SCRIPT = renamegroup");
$this->renamegroup();
$script=new Script();
@ -134,7 +134,7 @@ class ScriptCommand extends Command
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"rolegroup"]);
if(!$script) {
$this->writelnred("== SCRIPT = rolegroup");
$this->writeln("== SCRIPT = rolegroup");
$this->rolegroup();
$script=new Script();
@ -144,6 +144,56 @@ class ScriptCommand extends Command
$this->writeln("");
}
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"userdefaultmissing"]);
if(!$script) {
$this->writeln("== SCRIPT = userdefaultmissing");
$this->userdefaultmissing();
$script=new Script();
$script->setName("userdefaultmissing");
$this->em->persist($script);
$this->em->flush();
$this->writeln("");
}
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"updateorthographe01"]);
if(!$script) {
$this->writeln("== SCRIPT = updateorthographe01");
$this->updateorthographe01();
$script=new Script();
$script->setName("updateorthographe01");
$this->em->persist($script);
$this->em->flush();
$this->writeln("");
}
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"updateorthographe02"]);
if(!$script) {
$this->writeln("== SCRIPT = updateorthographe02");
$this->updateorthographe02();
$script=new Script();
$script->setName("updateorthographe02");
$this->em->persist($script);
$this->em->flush();
$this->writeln("");
}
if($this->container->getParameter('ldap_template')=="scribe") {
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"purgepageprofil"]);
if(!$script) {
$this->writeln("== SCRIPT = purgepageprofil");
$this->purgepageprofil();
$script=new Script();
$script->setName("purgepageprofil");
$this->em->persist($script);
$this->em->flush();
$this->writeln("");
}
}
return 1;
}
@ -319,9 +369,98 @@ class ScriptCommand extends Command
}
}
private function userdefaultmissing(){
$users = $this->em->getRepository('CadolesCoreBundle:User')->findAll();
foreach($users as $user) {
if($user->getVisible()=="") {
$user->setVisible(true);
$this->em->persist($user);
$this->em->flush();
}
if($user->getAuthlevel()=="") {
$user->setAuthlevel("simple");
$this->em->persist($user);
$this->em->flush();
}
if($user->getBelongingpopulation()=="") {
$user->setBelongingpopulation("agent");
$this->em->persist($user);
$this->em->flush();
}
}
}
private function updateorthographe01(){
$config=$this->em->getRepository('CadolesCoreBundle:Config')->find("fgforceconnect");
if($config) {
$config->setHelp("Forcer la connexion afin de rendre votre site privé");
$this->em->persist($config);
$this->em->flush();
}
$config=$this->em->getRepository('CadolesCoreBundle:Config')->find("fontfacebody");
if($config) {
$config->setHelp("Police générale de votre site");
$this->em->persist($config);
$this->em->flush();
}
$config=$this->em->getRepository('CadolesCoreBundle:Config')->find("permgroup");
if($config) {
$config->setHelp("Détermine quel rôle aura la permission de créer des groupes de travail");
$this->em->persist($config);
$this->em->flush();
}
$config=$this->em->getRepository('CadolesCoreBundle:Config')->find("permannu");
if($config) {
$config->setHelp("Détermine quel rôle aura la permission de voir l'annuaire");
$this->em->persist($config);
$this->em->flush();
}
$config=$this->em->getRepository('CadolesCoreBundle:Config')->find("labelbookmarkuser");
if($config) {
$config->setHelp("Titre de la section des items créés par l'utilisateur, et qui ne sont listés que dans cette section.");
$this->em->persist($config);
$this->em->flush();
}
$config=$this->em->getRepository('CadolesCoreBundle:Config')->find("labelbookmarkitem");
if($config) {
$config->setHelp("Titre sur la section des items créés par l'administrateur ou le modérateur, mis à la disposition de l'utilisateur, et sélectionnés par ce dernier pour apparaitre dans cette section plutôt que dans leur catégorie d'origine.");
$this->em->persist($config);
$this->em->flush();
}
}
private function updateorthographe02(){
$entityItem = $this->em->getRepository('CadolesPortalBundle:Item')->find(-398);
if($entityItem) {
if($entityItem->getSubtitle()!="Messagerie") {
$entityItem->setSubtitle("Messagerie");
$entityItem->setContent("Messagerie permettant la communication sécurisée par méls. La messagerie na pas pour but denvoyer des gros fichiers mais plutôt de communiquer des informations, des liens.");
$this->em->persist($entityItem);
$this->em->flush();
}
}
}
private function purgepageprofil() {
$page=$this->em->getRepository('CadolesPortalBundle:Page')->findOneBy(['name'=>'PROFIL - Enseignants']);
if($page) {
$this->em->remove($page);
$this->em->flush();
}
$page=$this->em->getRepository('CadolesPortalBundle:Page')->findOneBy(['name'=>'PROFIL - Administratifs']);
if($page) {
$this->em->remove($page);
$this->em->flush();
}
}

View File

@ -128,7 +128,7 @@ class SynchroCommand extends Command
$ldapfilter="(|(&(uid=*)(ENTPersonProfils=enseignant))(&(uid=*)(typeadmin=0))(&(uid=*)(typeadmin=2)))";
$label="PROFIL - Enseignants";
$this->writeln(" - $label");
if(!$simulate) $this->addmodGroup($label,$ldapfilter,$scribe_group);
if(!$simulate) $this->addmodGroup($label,$ldapfilter,false);
// Responsables
$ldapfilter="(&(uid=*)(ENTPersonProfils=responsable))";
@ -140,7 +140,20 @@ class SynchroCommand extends Command
$ldapfilter="(&(uid=*)(ENTPersonProfils=administratif))";
$label="PROFIL - Administratifs";
$this->writeln(" - $label");
if(!$simulate) $this->addmodGroup($label,$ldapfilter,$scribe_group);
if(!$simulate) $this->addmodGroup($label,$ldapfilter,false);
// Niveaux
$this->writeln('');
$this->writeln('== NIVEAUX ==========================================');
$results = $this->ldap->search("type=Niveau", ['cn','description','gidNumber'], $this->ldap_basedn);
foreach($results as $result) {
$cn=$result["cn"];
$ldapfilter="(&(type=Niveau)(cn=$cn))";
$label="NIVEAU - ".$result["cn"];
$this->writeln(" - $label");
if(!$simulate) $this->addmodGroup($label,$ldapfilter,false);
}
// Classes
$this->writeln('');
@ -155,6 +168,32 @@ class SynchroCommand extends Command
if(!$simulate) $this->addmodGroup($label,$ldapfilter,$scribe_group);
}
// Elèves des Classes
$this->writeln('');
$this->writeln('== ELEVES DES CLASSES ==========================================');
$results = $this->ldap->search("type=Classe", ['cn','description','gidNumber'], $this->ldap_basedn);
foreach($results as $result) {
$cn=$result["cn"];
$ldapfilter="(&(type=Classe)(cn=$cn))";
$label="ELEVES - ".$result["cn"];
$this->writeln(" - $label");
if(!$simulate) $this->addmodGroup($label,$ldapfilter,false);
}
// Professeurs des Classes
$this->writeln('');
$this->writeln('== PROFESSEURS DES CLASSES ==========================================');
$results = $this->ldap->search("type=Classe", ['cn','description','gidNumber'], $this->ldap_basedn);
foreach($results as $result) {
$cn=$result["cn"];
$ldapfilter="(|(&(type=Equipe)(cn=profs-$cn))(&(ENTPersonProfils=Administratif)(divcod=$cn)))";
$label="PROFESSEURS - ".$result["cn"];
$this->writeln(" - $label");
if(!$simulate) $this->addmodGroup($label,$ldapfilter,false);
}
// Options
$this->writeln('');
$this->writeln('== OPTIONS ==========================================');

View File

@ -326,10 +326,9 @@ class ConfigController extends Controller
$fields["niveau02"]["perm"]=1;
$fields["niveau02"]["label"]=$session->get('labelniveau02');
}
if(!array_key_exists("group",$fields)) {
$fields["group"]["perm"]=1;
$fields["group"]["label"]="Groupes";
}
if(!array_key_exists("group",$fields)) $fields["group"]["perm"]=1;
$fields["group"]["label"]="Groupes (caché uniquement pour le rôle Utilisateur) ";
if(!array_key_exists("job",$fields)) {
$fields["job"]["perm"]=1;
$fields["job"]["label"]="Métier";
@ -346,10 +345,8 @@ class ConfigController extends Controller
$fields["telephonenumber"]["perm"]=1;
$fields["telephonenumber"]["label"]="Téléphone";
}
if(!array_key_exists("visitedate",$fields)) {
$fields["visitedate"]["perm"]=1;
$fields["visitedate"]["label"]="Visite";
}
if(!array_key_exists("visitedate",$fields)) $fields["visitedate"]["perm"]=1;
$fields["visitedate"]["label"]="Visite (caché uniquement pour les rôles Animateur et Utilisateur) ";
if(!$session->get('viewniveau02'))
unset($fields["niveau02"]);

View File

@ -59,17 +59,18 @@ class CoreController extends Controller
// Chargement des chartes à signer
if($user) {
$notices=$em->getRepository("CadolesPortalBundle:Notice")->getNoticeToRead($user);
if(! $notices->isEmpty()) {
$notices=$em->getRepository("CadolesPortalBundle:Notice")->getNoticeUser($user,false);
return $this->render('CadolesPortalBundle:Notice:mustread.html.twig',[
'useheader' => true,
'usemenu' => false,
'usesidebar' => false,
'maxwidth' => true,
'mustread' => true,
'notices' => $notices
'notices' => $notices,
'id' => $id,
]);
}
@ -85,8 +86,8 @@ class CoreController extends Controller
switch($key) {
case "firstname": if($user->getFirstname()=="") $toprofil=true; break;
case "visible": if($user->getVisible()=="") $toprofil=true; break;
case "authlevel": if($user->getAuthlevel()=="") $toprofil=true; break;
case "belongingpopulation": if($user->getBelongingpopulation()=="") $toprofil=true; break;
//case "authlevel": if($user->getAuthlevel()=="") $toprofil=true; break;
//case "belongingpopulation": if($user->getBelongingpopulation()=="") $toprofil=true; break;
case "job": if($user->getJob()=="") $toprofil=true; break;
case "position": if($user->getPosition()=="") $toprofil=true; break;
case "niveau02": if($user->geNiveau02()=="") $toprofil=true; break;

View File

@ -526,13 +526,15 @@ class FileController extends Controller
$output=array();
$directory=$request->request->get('directory');
// Récupération du répertoire source et le nom du fichier
$racine=$this->get('kernel')->getRootDir()."/../uploads/file";
$dirsource =$request->request->get('dirsource');
$namesource =$request->request->get('namesource');
$dirdestination =$request->request->get('dirdestination');
$namedestination =$request->request->get('namedestination');
$directory = $request->request->get('directory');
$dirsource = $request->request->get('dirsource');
$namesource = $request->request->get('namesource');
$dirdestination = $request->request->get('dirdestination');
$namedestination = $request->request->get('namedestination');
$canupdate =$this->getPermission($access,$directory);
@ -541,8 +543,19 @@ class FileController extends Controller
$fs = new Filesystem();
// Déplacer le fichier
$urlsource=$racine."/".$dirsource."/".$namesource;
$urldestination=$racine."/".$dirdestination."/".$namedestination;
$urlsource=str_replace("//","/",$racine."/".$dirsource."/".$namesource);
$urldestination=str_replace("//","/",$racine."/".$dirdestination."/".$namedestination);
// Controle de cohérance du déplacement
$fgerror=false;
if(empty($racine)) $fgerror=true;
if(empty($dirsource)) $fgerror=true;
if(empty($directory)) $fgerror=true;
if($urlsource==$urldestination) $fgerror=true;
if(stripos($urldestination,$urlsource)!==false) $fgerror=true;
if($fgerror) return new JsonResponse(array('message' => 'Interdit'), 400);
if($fs->exists($urlsource)) {
if(is_dir($urlsource)) {
$fs->mirror($urlsource,$urldestination);

View File

@ -494,6 +494,13 @@ class GroupController extends Controller
$datas=$qb->setFirstResult($start)->setMaxResults($length)->getQuery()->getResult();
$user=$this->getUser();
$config=$em->getRepository('CadolesCoreBundle:Config')->find("datausers");
$fields=$config->getValue();
$fields=json_decode($fields,true);
if(!is_array($fields)) $fields=[];
if(!array_key_exists("visite",$fields)) $fields["visite"]["perm"]=0;
$fgviewvisite=($fields["visite"]["perm"]==1);
foreach($datas as $data) {
// Propriétaire
$usergroup=$em->getRepository("CadolesCoreBundle:UserGroup")->findOneBy(["user"=>$data->getId(),"group"=>$id]);
@ -522,12 +529,18 @@ class GroupController extends Controller
}
// Visite
$visite="";
if($usergroup->getVisitedate()) {
$visite=$usergroup->getVisitedate()->format("d/m/Y H:i")."<br>nb = ".$usergroup->getVisitecpt();
if($fgviewvisite) {
$visite="";
if($usergroup->getVisitedate()) {
$visite=$usergroup->getVisitedate()->format("d/m/Y H:i")."<br>nb = ".$usergroup->getVisitecpt();
}
}
if($fgviewvisite)
$tmp=array("DT_RowId"=>"user".$data->getId(),$action,$avatar,$data->getUsername(),$data->getEmail(),$visite,$rolegroup);
else
$tmp=array("DT_RowId"=>"user".$data->getId(),$action,$avatar,$data->getUsername(),$data->getEmail(),$rolegroup);
array_push($output["data"],array("DT_RowId"=>"user".$data->getId(),$action,$avatar,$data->getUsername(),$data->getEmail(),$visite,$rolegroup));
array_push($output["data"],$tmp);
}
// Retour
@ -575,7 +588,7 @@ class GroupController extends Controller
$websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key->toString(),$userid,$groupid,$message);
// Notification mail auprès de la personne inscrite
if($group->getFgcanshare()) {
if($group->getFgcanshare()&&$this->get('session')->get('fgnotifgroup')) {
$idpage =$group->getPages()->first()->getId();
$url = $this->generateUrl('cadoles_core_redirect', ["route"=>"cadoles_core_home","id"=>$idpage], UrlGeneratorInterface::ABSOLUTE_URL);
$texthtml="Vous venez d'être inscrit dans le groupe de travail : ".$group->getLabel()."<br>Suivez le lien suivant pour y accéder = <a href='$url'>$url</a>";
@ -629,7 +642,7 @@ class GroupController extends Controller
$em->flush();
// Notification mail auprès des managers
if($group->getFgcanshare()) {
if($group->getFgcanshare()&&$this->get('session')->get('fgnotifgroup')) {
$text=$user->getUsername()." a été désinscrit du groupe de travail : ".$group->getLabel();
$template="template";
$mail_params=array(
@ -675,7 +688,7 @@ class GroupController extends Controller
$em->flush();
// Notification mail auprès des managers
if($group->getFgcanshare()) {
if($group->getFgcanshare()&&$this->get('session')->get('fgnotifgroup')) {
$text=$user->getUsername()." a été désinscrit du groupe de travail : ".$group->getLabel();
$template="template";
$mail_params=array(
@ -875,7 +888,7 @@ class GroupController extends Controller
$this->ctrlFgcanshare($data,$access);
// Si le propriétaire change de main on prévient le nouveau propriétaire
if($data->getOwner()&&$data->getOwner()!=$oldowner) {
if($data->getOwner()&&$data->getOwner()!=$oldowner&&$this->get('session')->get('fgnotifgroup')) {
// Email à destination de l'inscript pour le prévenir qu'un administrateur doit valider
$text="On vient de vous tranférer la propriété du groupe ".$data->getLabel();
$template="template";
@ -1018,6 +1031,14 @@ class GroupController extends Controller
// idreturn ?
$idreturn=$request->get("idreturn");
$em = $this->getDoctrine()->getManager();
$config=$em->getRepository('CadolesCoreBundle:Config')->find("datausers");
$fields=$config->getValue();
$fields=json_decode($fields,true);
if(!is_array($fields)) $fields=[];
if(!array_key_exists("visite",$fields)) $fields["visite"]["perm"]=0;
$fgviewvisite=($fields["visite"]["perm"]==1);
// Affichage du formulaire
return $this->render($this->labelentity.':users.html.twig', [
'useheader' => true,
@ -1026,6 +1047,7 @@ class GroupController extends Controller
'access' => $access,
$this->labeldata => $data,
'idreturn' => $idreturn,
'fgviewvisite' => $fgviewvisite,
]);
}

View File

@ -331,8 +331,15 @@ class PermmodoprofilController extends Controller
$this->addModeration($profil,'cadoles_portal_config_flux',1);
$this->addModeration($profil,'cadoles_portal_config_notice',1);
$this->addModeration($profil,'cadoles_portal_config_icon',1);
$this->addModeration($profil,'cadoles_portal_config_syncbalado',0);
$this->addModeration($profil,'cadoles_portal_config_synccdt',0);
$this->addModeration($profil,'cadoles_portal_config_syncgepiannu',0);
$this->addModeration($profil,'cadoles_portal_config_syncgepisiecle',0);
$this->addModeration($profil,'cadoles_portal_config_synclimesurvey',0);
$this->addModeration($profil,'cadoles_portal_config_syncmoodle',0);
$this->addModeration($profil,'cadoles_portal_config_syncnextcloud',0);
$this->addModeration($profil,'cadoles_portal_config_syncsacoche',0);
$this->addModeration($profil,'cadoles_portal_config_syncpiwik',0);
$this->addModeration($profil,'cadoles_portal_config_syncwordpress',0);
$this->addModeration($profil,'cadoles_core_config_statistic',1);
$this->addModeration($profil,'cadoles_core_config_mailing',1);

View File

@ -46,6 +46,7 @@ class SondeController extends Controller
elseif($route=="cadoles_portal_user_page_view") {
if($usage=="group") $usagesonde="collaboratif";
elseif($usage=="user") $usagesonde="collaboratif";
elseif($usage=="accueil") $usagesonde="accueil";
else $usagesonde="portail";
}
elseif(stripos($route,"cadoles_portal_user_calendar")!==false)

View File

@ -366,8 +366,8 @@ class UserController extends Controller
// Initialisation de l'enregistrement
$data = new User();
$data->setVisible(true);
$data->setBelongingpopulation("authlevel");
$data->setAuthlevel("simple");
$data->setBelongingpopulation("agent");
$fields=$this->getDefaultDatauser();
// Création du formulaire
@ -429,7 +429,7 @@ class UserController extends Controller
$websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key->toString(),$iduser,$idgroup,$message);
// Notification mail auprès de la personne inscrite
if($group->getFgcanshare()) {
if($group->getFgcanshare()&&$this->get('session')->get('fgnotifgroup')) {
$idpage =$group->getPages()->first()->getId();
$url = $this->generateUrl('cadoles_core_redirect', ["route"=>"cadoles_core_home","id"=>$idpage], UrlGeneratorInterface::ABSOLUTE_URL);
$texthtml="Vous venez d'être inscrit dans le groupe de travail : ".$group->getLabel()."<br>Suivez le lien suivant pour y accéder = <a href='$url'>$url</a>";
@ -489,6 +489,7 @@ class UserController extends Controller
$oldpassword=$data->getPassword();
$fields=$this->getDefaultDatauser();
// Si un acces modo via console d'admin on s'assure qu'il a les droit dessus sinon retour à la liste
if($this->isGranted('ROLE_MODO')&&$access=="config") {
$niveau01=$data->getNiveau01();
@ -580,7 +581,7 @@ class UserController extends Controller
$websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key->toString(),$id,$idgroup,$message);
// Notification mail auprès de la personne inscrite
if($group->getFgcanshare()) {
if($group->getFgcanshare()&&$this->get('session')->get('fgnotifgroup')) {
$idpage =$group->getPages()->first()->getId();
$url = $this->generateUrl('cadoles_core_redirect', ["route"=>"cadoles_core_home","id"=>$idpage], UrlGeneratorInterface::ABSOLUTE_URL);
$texthtml="Vous venez d'être inscrit dans le groupe de travail : ".$group->getLabel()."<br>Suivez le lien suivant pour y accéder = <a href='$url'>$url</a>";
@ -623,7 +624,7 @@ class UserController extends Controller
$em->flush();
// Notification mail auprès des managers
if($group->getFgcanshare()) {
if($group->getFgcanshare()&&$this->get('session')->get('fgnotifgroup')) {
$text=$data->getUsername()." a été désinscrit du groupe de travail : ".$group->getLabel();
$template="template";
$mail_params=array(
@ -841,12 +842,15 @@ class UserController extends Controller
public function viewAction($id, Request $request)
{
$user=$this->getData($id);
$fields=$this->getDefaultDatausers();
return $this->render('CadolesCoreBundle:User:view.html.twig', [
'useheader' => false,
'usemenu' => false,
'usesidebar' => false,
"user" => $user
'user' => $user,
'fields' => $fields,
]);
}
@ -1255,7 +1259,7 @@ class UserController extends Controller
$key=$request->request->get('key');
$id=$request->request->get('id');
$value=$request->request->get('value');
// Récupérer les préférences de l'utilisateur
$preference=$this->getUser()->getPreference();
@ -1290,7 +1294,7 @@ class UserController extends Controller
$toupdate=true;
$preference[$key][$id]=$value;
}
if($value&&$preference[$key][$id]!=$value) {
if($preference[$key][$id]!=$value) {
$toupdate=true;
$preference[$key][$id]=$value;
}
@ -1452,7 +1456,76 @@ class UserController extends Controller
if(!array_key_exists("visite",$fields)) {
$fields["visite"]["perm"]=1;
$fields["visite"]["label"]="Visite";
}
return $fields;
}
protected function getDefaultDatausers()
{
$em = $this->getDoctrine()->getManager();
$session=$this->get('session');
$config=$em->getRepository('CadolesCoreBundle:Config')->find("datausers");
$fields=$config->getValue();
$fields=json_decode($fields, true);
if(!is_array($fields)) $fields=[];
// Valeur par défaut 0=caché / 3=visible
if(!array_key_exists("avatar",$fields)) {
$fields["avatar"]["perm"]=1;
$fields["avatar"]["label"]="Avatar";
}
if(!array_key_exists("login",$fields)) {
$fields["login"]["perm"]=1;
$fields["login"]["label"]="Login";
}
if(!array_key_exists("lastname",$fields)) {
$fields["lastname"]["perm"]=1;
$fields["lastname"]["label"]="Nom";
}
if(!array_key_exists("firstname",$fields)) {
$fields["firstname"]["perm"]=1;
$fields["firstname"]["label"]="Prenom";
}
if(!array_key_exists("email",$fields)) {
$fields["email"]["perm"]=1;
$fields["email"]["label"]="Email";
}
if(!array_key_exists("niveau01",$fields)) {
$fields["niveau01"]["perm"]=1;
$fields["niveau01"]["label"]=$session->get('labelniveau01');
}
if(!array_key_exists("niveau02",$fields)) {
$fields["niveau02"]["perm"]=1;
$fields["niveau02"]["label"]=$session->get('labelniveau02');
}
if(!array_key_exists("group",$fields)) $fields["group"]["perm"]=1;
$fields["group"]["label"]="Groupes (caché uniquement pour le rôle Utilisateur) ";
if(!array_key_exists("job",$fields)) {
$fields["job"]["perm"]=1;
$fields["job"]["label"]="Métier";
}
if(!array_key_exists("position",$fields)) {
$fields["position"]["perm"]=1;
$fields["position"]["label"]="Fonction";
}
if(!array_key_exists("role",$fields)) {
$fields["role"]["perm"]=1;
$fields["role"]["label"]="Rôles";
}
if(!array_key_exists("telephonenumber",$fields)) {
$fields["telephonenumber"]["perm"]=1;
$fields["telephonenumber"]["label"]="Téléphone";
}
if(!array_key_exists("visitedate",$fields)) $fields["visitedate"]["perm"]=1;
$fields["visitedate"]["label"]="Visite (caché uniquement pour les rôles Animateur et Utilisateur) ";
if(!$session->get('viewniveau02'))
unset($fields["niveau02"]);
return $fields;
}

View File

@ -27,10 +27,10 @@ class Registration implements UserInterface, \Serializable
private $id;
/**
* @ORM\Column(type="string", length=25, unique=true)
* @ORM\Column(type="string", length=128, unique=true)
* @Assert\Length(
* min = "5",
* max = "25",
* max = "128",
* minMessage = "Votre nom doit faire au moins {{ limit }} caractères",
* maxMessage = "Votre nom ne peut pas être plus long que {{ limit }} caractères"
* )
@ -68,7 +68,7 @@ class Registration implements UserInterface, \Serializable
private $passwordad;
/**
* @ORM\Column(type="string", length=60, unique=true)
* @ORM\Column(type="string", length=128, unique=true)
*/
private $email;

View File

@ -30,10 +30,10 @@ class User implements UserInterface, \Serializable
private $id;
/**
* @ORM\Column(type="string", length=50, unique=true)
* @ORM\Column(type="string", length=128, unique=true)
* @Assert\Length(
* min = "5",
* max = "25",
* max = "128",
* minMessage = "Votre nom doit faire au moins {{ limit }} caractères",
* maxMessage = "Votre nom ne peut pas être plus long que {{ limit }} caractères"
* )
@ -71,7 +71,7 @@ class User implements UserInterface, \Serializable
private $passwordad;
/**
* @ORM\Column(type="string", length=60, unique=true)
* @ORM\Column(type="string", length=128, unique=true)
*/
private $email;

View File

@ -13,12 +13,15 @@
class sessionListener {
protected $container;
protected $em;
protected $token_storage;
protected $session;
public function __construct($container, EntityManager $em, TokenStorageInterface $token_storage)
public function __construct($container, EntityManager $em, TokenStorageInterface $token_storage,Session $session)
{
$this->container = $container;
$this->em = $em;
$this->token_storage = $token_storage;
$this->session = $session;
}
public function haveRole($curentuser,$roles,$tohave,$route) {
@ -44,9 +47,7 @@
}
public function onDomainParse(Event $event) {
$session = new Session();
$session = $this->session;
$configs = $this->em->getRepository("CadolesCoreBundle:Config")->findAll();
foreach($configs as $config) {
@ -93,6 +94,7 @@
$app["activate_widwordpress"] =$this->container->getParameter('activate_widwordpress');
$app["widbalado_activate_syncenvole"] =$this->container->getParameter('widbalado_activate_syncenvole');
$app["widcdt_activate_syncenvole"] =$this->container->getParameter('widcdt_activate_syncenvole');
$app["widgepi_activate_syncenvole"] =$this->container->getParameter('widgepi_activate_syncenvole');
$app["widnextcloud_activate_syncenvole"] =$this->container->getParameter('widnextcloud_activate_syncenvole');
$app["widpiwik_activate_syncenvole"] =$this->container->getParameter('widpiwik_activate_syncenvole');

View File

@ -52,7 +52,7 @@ class MailType extends AbstractType
'mapped'=> false,
'required' => false,
'attr' => array("class" => "form-control", "style" => "margin-bottom:15px"),
'config' => ["height" => "150px",'filebrowserUploadRoute' => 'cadoles_portal_user_pagewidget_upload']
'config' => ["height" => "150px"]
]);
}

View File

@ -99,7 +99,7 @@ class MailingType extends AbstractType
'mapped'=> false,
'required' => true,
'attr' => array("class" => "form-control", "style" => "margin-bottom:15px"),
'config' => ["height" => "400px",'filebrowserUploadRoute' => 'cadoles_portal_user_pagewidget_upload']
'config' => ["height" => "400px"]
]);
}

View File

@ -26,7 +26,7 @@ services:
cadoles.core.session.listener:
public: true
class: Cadoles\CoreBundle\EventListener\sessionListener
arguments: ['@service_container','@doctrine.orm.entity_manager',"@security.token_storage"]
arguments: ['@service_container','@doctrine.orm.entity_manager',"@security.token_storage","@session"]
tags:
- { name: kernel.event_listener, event: kernel.request, method: onDomainParse }

View File

@ -60,6 +60,17 @@ body {
height: 20px;
}
@media (max-width: 991px) {
.header .title{
font-size: 30px;
}
.header small {
font-size:14px;
top: 25px;
}
}
@media (max-width: 767px) {
.header { display: none }
#menu-header { display: none }
@ -110,6 +121,25 @@ body {
margin-left: 10px;
}
#navbar-nameuser {
position: absolute;
top: 50px;
right: 30px;
}
.navbar-top-links #navbar-nameuser {
position: relative;
top: -8px;
right: inherit;
}
@media (max-width: 991px) {
.navbar-top-links #navbar-nameuser {
display: none;
}
}
@media (max-width: 767px) {
.navbar-default .navbar-header #title {
display: none;
@ -337,12 +367,12 @@ span.item-drag {
.grid-item .item-link img {
display: block;
max-width: 100%;
//max-height: 110px;
height: auto;
margin: 10px;
height: 105px;
}
.grid-item .grid-item-title {
display: inline-block;
vertical-align: top;
@ -735,6 +765,11 @@ a.item-heart {
max-width: 100%;
}
.widget-ckeditor img {
height:auto !important;
}
.frameitem {
position: absolute;
right: 0px;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -49,6 +49,12 @@
.header.reduit .avatar {height: 25px; }
.header.reduit #navbar-nameuser
{
top: 14px;
right: 210px;
}
/* ===================== FIN MODE REDUIT ==========================*/
/* fix defaut d'affichage sur toogle switch */
@ -57,7 +63,11 @@ body {
background: linear-gradient(180deg, var(--main), white,50%);
}
body.eleves, body.grp-National_1 {
#navbar-nameuser a {
color: var(--main, #004d9a) !important;
}
body.eleves, body.grp-National_1, body.grp-eleves {
--colorbody: #ffffff;
--main: #169b62;
--mainR: 22;
@ -77,7 +87,7 @@ body.eleves, body.grp-National_1 {
/* responsables #MAUVE #7D4E5B
*/
body.responsables, body.grp-National_2 {
body.responsables, body.grp-National_2,body.grp-responsables {
--colorbody: #ffffff;
--main: #7d4e5b;
--mainR: 125;
@ -96,7 +106,7 @@ body.responsables, body.grp-National_2 {
/* professeurs, enseignants1d #BLEU1 #5770BE */
body.professeurs, body.enseignants1d, body.grp-National_3 {
body.professeurs, body.enseignants1d, body.grp-National_3, body.grp-professeurs {
--colorbody: #ffffff;
--main: #5770be;
--mainR: 87;
@ -114,7 +124,7 @@ body.professeurs, body.enseignants1d, body.grp-National_3 {
}
/* administratifs, admin #ORANGE #FF6F4C */
body.administratifs, body.admin, body.grp-National_4 , body.grp-National_5, body.grp-National_6 {
body.administratifs, body.admin, body.grp-National_4 , body.grp-National_5, body.grp-National_6 , body.grp-administratifs, {
--colorbody: #ffffff;
--main: #ff6f4c;
--mainR: 255;
@ -278,7 +288,9 @@ div.header > a.title > span {
}
.nav.navbar-top-links.navbar-right > li a:hover {
color: var(--fontcolorhover, white) !important;
background: var(--fontcolorhoverdark, black) !important;
background: var(--light, black) !important;
border-radius: 5px;
padding-top: 1px;
}
/*

View File

@ -0,0 +1,26 @@
{% set logo = "" %}
{% set header = "header.jpg" %}
{% set heightheader = "" %}
{% set colormain = "" %}
{% set fontcolorhover = "" %}
{% set colorbody = "" %}
{% set fontfacetitle = "" %}
{% set fontfacebody = "" %}
{{
render(url("cadoles_core_theme_setconfig",
{
'logo':logo,
'header': header,
'heightheader': heightheader,
'colormain': colormain,
'fontcolorhover': fontcolorhover,
'colorbody': colorbody,
'fontfacetitle': fontfacetitle,
'fontfacebody': fontfacebody
}
))
}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@ -0,0 +1,3 @@
name: White
author: Arnaud Fornerot
version: 1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

View File

@ -0,0 +1,25 @@
.header{
background-image: url(header.jpg) !important;
}
.header .title {
color: var(--main);
}
.header .title:hover {
color: var(--light);
}
.header a {
color: var(--main);
}
.header a:hover {
color: #ffffff;
}
.grid-item .grid-item-title h2 {
font-weight: bold;
text-transform: initial;
font-size:110% !important;
}

View File

@ -4,6 +4,8 @@
<form>
<h1 class="page-header">Configuration Générale</h1>
Attention, selon la configuration du portail, certains paramètres sont forcés au niveau du serveur et donc certains réglages peuvent être inopérants dans cette interface.
<br><br>
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa fa-table fa-fw"></i> Liste des Configurations

View File

@ -2,7 +2,7 @@
{% block pagewrapper %}
{{ form_start(form) }}
<h1 class="page-header">Modification Configuration Générale</h1>
<h1 class="page-header">Modification Configuration Générale = {{config.id}}</h1>
{{ form_widget(form.submit) }} <a class="btn btn-default" href={{ path('cadoles_core_config_commun') }}>Annuler</a>

View File

@ -291,6 +291,7 @@
});
{% if canupdate and not fgtrash %}
$('.file').on('dragstart', function (s) {
dirsource=$(this).data("dir");
namesource=$(this).data("name");
@ -313,11 +314,17 @@
dirdestination=$(this).data("dir")+"/"+$(this).data("name");
namedestination=namesource;
// Si la source est la meme que la destination on ne fait rien
if(dirdestination+"/"+namedestination==dirsource+"/"+namesource) return false;
urlsource=dirsource+"/"+namesource;
urlsource=urlsource.replace("//","/");
urldestination=dirdestination+"/"+namedestination;
urldestination=urldestination.replace("//","/");
// Si la source est la meme que la destination on ne fait rien
if(urlsource==urldestination) return false;
// Si la source est dans la destination on ne fait rien
//if(urldestination.includes(urlsource)) return false;
console.log(dirsource+"/"+namesource);
console.log(dirdestination+"/"+namedestination);
// On déplace l'element
$.ajax({
method: "POST",
@ -336,11 +343,9 @@
}
});
return false;
});
{% endif %}
});
@ -366,6 +371,7 @@
}
}
{% if canupdate %}
// Trasher un fichier
function trashFile(directory,subdirectory,filename) {
var r = confirm("Confirmez-vous la mise à la poubelle de ce fichier ? Vous pourrez le récupèrer si besoin.");
@ -422,6 +428,7 @@
});
}
}
{% endif %}
// Affichage des frames associés aux items de bureau

View File

@ -4,11 +4,11 @@
{{ form_start(form) }}
<h1 class="page-header">
{% if mode=="update" %}
Modification Groupe
Modification Groupe = {{ group.label }}
{% elseif mode=="submit" %}
Création Groupe
{% elseif mode=="delete" %}
Suppression Groupe
Suppression Groupe = {{ group.label }}
{% endif %}
</h1>

View File

@ -36,7 +36,9 @@
<th width="70px" class="no-sort">Avatar</th>
<th width="200px">Login</th>
<th>Email</th>
{% if fgviewvisite %}
<th class="no-sort no-visible">Visite</th>
{% endif %}
{% if group.fgcanshare %}
<th class="no-sort no-visible">Permissions</th>
{% endif %}
@ -63,7 +65,9 @@
<th width="70px" class="no-sort">Avatar</th>
<th width="200px">Login</th>
<th>Email</th>
{% if fgviewvisite %}
<th class="no-sort">Visite</th>
{% endif %}
{% if group.fgcanshare %}
<th class="no-sort">Permissions</th>
{% endif %}

View File

@ -6,9 +6,9 @@
{% set permannu = app.session.get('permannu') %}
{% if fgheader %}
<li id="menu-header"><a onclick="switchHeader()" title="Cacher / Affichier Bannière " style="cursor:pointer"><i class="fa fa-chevron-up fa-fw"></i></a>
<li id="menu-header"><a onclick="switchHeader()" title="Cacher / Afficher Bannière " style="cursor:pointer"><i class="fa fa-chevron-up fa-fw"></i></a>
{% else %}
<li id="menu-header"><a onclick="switchHeader()" title="Cacher / Affichier Bannière " style="cursor:pointer"><i class="fa fa-chevron-down fa-fw"></i></a>
<li id="menu-header"><a onclick="switchHeader()" title="Cacher / Afficher Bannière " style="cursor:pointer"><i class="fa fa-chevron-down fa-fw"></i></a>
{% endif %}
{% if is_granted('ROLE_ADMIN') or (is_granted('ROLE_MODO') and (permannu=="ROLE_MODO" or permannu=="ROLE_ANIM" or permannu=="ROLE_USER")) or (is_granted('ROLE_ANIM') and (permannu=="ROLE_ANIM" or permannu=="ROLE_USER")) or (is_granted('ROLE_USER') and permannu=="ROLE_USER") %}

View File

@ -4,11 +4,11 @@
{{ form_start(form) }}
<h1 class="page-header">
{% if mode=="update" %}
Modification {{ labelniveau01 }}
Modification {{ labelniveau01 }} = {{niveau01.label}}
{% elseif mode=="submit" %}
Création {{ labelniveau01 }}
{% elseif mode=="delete" %}
Suppression {{ labelniveau01 }}
Suppression {{ labelniveau01 }} = {{niveau01.label}}
{% endif %}
</h1>

View File

@ -4,11 +4,11 @@
{{ form_start(form) }}
<h1 class="page-header">
{% if mode=="update" %}
Modification {{ labelniveau02 }}
Modification {{ labelniveau02 }} = {{niveau02.label}}
{% elseif mode=="submit" %}
Création {{ labelniveau02 }}
{% elseif mode=="delete" %}
Suppression {{ labelniveau02 }}
Suppression {{ labelniveau02 }} = {{niveau02.label}}
{% endif %}
</h1>

View File

@ -4,11 +4,11 @@
{{ form_start(form) }}
<h1 class="page-header">
{% if mode=="update" %}
Modification Profil de Modération
Modification Profil de Modération = {{ permmodoprofil.name }}
{% elseif mode=="submit" %}
Création Profil de Modération
{% elseif mode=="delete" %}
Suppression Profil de Modération
Suppression Profil de Modération = {{ permmodoprofil.name }}
{% endif %}
</h1>

View File

@ -5,11 +5,11 @@
{% if moderegistration!="none" %}
<h1 class="page-header">
{% if mode=="send" %}
Confirmation à l'Utilisateur
Confirmation à l'Utilisateur = {{ registration.username }}
{% elseif mode=="submit" %}
Inscription
{% elseif mode=="delete" %}
Suppression Inscription
Suppression Inscription = {{ registration.username }}
{% endif %}
</h1>

View File

@ -5,7 +5,7 @@
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa fa-table fa-fw"></i> Compteur de visites journalière
<i class="fa fa-table fa-fw"></i> Compteur de visites journalières
</div>
<div class="panel-body">
@ -15,7 +15,7 @@
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa fa-table fa-fw"></i> Compteur de visites journalière des groupes de travail
<i class="fa fa-table fa-fw"></i> Compteur de visites journalières des groupes de travail
</div>
<div class="panel-body">
@ -27,7 +27,7 @@
<div class="col col-md-6">
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa fa-table fa-fw"></i> Evolution du nombre de message dans les tchat
<i class="fa fa-table fa-fw"></i> Évolution du nombre de message dans les chats
</div>
<div class="panel-body">
@ -39,7 +39,7 @@
<div class="col col-md-6">
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa fa-table fa-fw"></i> Evolution du nombre d'articles de blog
<i class="fa fa-table fa-fw"></i> Évolution du nombre d'articles de blog
</div>
<div class="panel-body">

View File

@ -5,7 +5,7 @@
<h1 class="page-header">
{% if mode=="update" %}
{% if access=="config" %}
Modification Utilisateur
Modification Utilisateur = {{ user.username}}
{% else %}
Profil
{% endif %}

View File

@ -42,10 +42,10 @@ td { font-size: 10px; }
{% if viewniveau02 %}
<th class="no-sort {% if fields["niveau02"] is defined and fields["niveau02"].perm==0 %}no-visible{% endif %}">{{ labelniveau02 }}</th>
{% endif %}
<th class="no-sort {% if fields["group"] is defined and fields["group"].perm==0 %}no-visible{% endif %}">Groupes</th>
<th class="no-sort {% if fields["group"] is defined and fields["group"].perm==0 and is_granted('ROLE_USER') %}no-visible{% endif %}">Groupes</th>
<th class="{% if fields["job"] is defined and fields["job"].perm==0 %}no-visible{% endif %}">Métier</th>
<th class="{% if fields["position"] is defined and fields["position"].perm==0 %}no-visible{% endif %}">Fonction</th>
<th class="{% if fields["visitedate"] is defined and fields["visitedate"].perm==0 %}no-visible{% endif %}">Visite</th>
<th class="{% if fields["visitedate"] is defined and fields["visitedate"].perm==0 and (is_granted('ROLE_USER') or is_granted('ROLE_ANIM')) %}no-visible{% endif %}">Visite</th>
<th class="{% if fields["role"] is defined and fields["role"].perm==0 %}no-visible{% endif %}">Rôle</th>
</tr>
</thead>

View File

@ -11,28 +11,32 @@
<br>L'utilisateur souhaite masquer ses informations personnelles.
{% else %}
{%if user.lastname %}<b>Nom</b> = {{ user.lastname }}<br>{%endif%}
{%if user.firstname %}<b>Prénom</b> = {{ user.firstname }}<br>{%endif%}
{%if user.firstname and not fields["firstname"]["perm"]==0 %}<b>{{fields["firstname"]["label"]}}</b> = {{ user.firstname }}<br>{%endif%}
{%if user.email %}<b>Email</b> = <a href='mailto:{{ user.email }}'>{{ user.email }}</a><br>{%endif%}
{%if user.telephonenumber %}<b>Téléphone</b> = {{ user.telephonenumber }}<br>{%endif%}
{%if user.telephonenumber and not fields["telephonenumber"]["perm"]==0 %}<b>{{fields["telephonenumber"]["label"]}}</b> = {{ user.telephonenumber }}<br>{%endif%}
{%if user.niveau01 %}<b>{{ labelniveau01 }}</b> = {{ user.niveau01.label }}<br>{%endif%}
{%if viewniveau02 and user.niveau02%}<b>{{ labelniveau02 }}</b> = {{ user.niveau02.label }}<br>{% endif %}
{%if user.job %}<b>Métier</b> = {{ user.job }}<br>{%endif%}
{%if user.position %}<b>Fonction</b> = {{ user.position }}<br>{%endif%}
{%if user.postaladress %}<b>Adresse</b> = {{ user.postaladress }}<br>{%endif%}
{%if user.visitedate %}<b>Date de dernière visite</b> = {{ user.visitedate|date('d/m/Y H:i') }}<br>{%endif%}
{%if user.visitecpt %}<b>Nombre de visites</b> = {{ user.visitecpt }}<br>{%endif%}
<br>
{% set fgtitle=false %}
{% for usergroup in user.groups %}
{% if usergroup.group.fgcanshare %}
{% if not fgtitle %}
<br><b>Groupes de Travail</b><br>
{% set fgtitle=true %}
{%if user.job and not fields["job"]["perm"]==0 %}<b>{{fields["position"]["job"]}}</b> = {{ user.job }}<br>{%endif%}
{%if user.position and not fields["position"]["perm"]==0 %}<b>{{fields["position"]["label"]}}</b> = {{ user.position }}<br>{%endif%}
{%if user.postaladress and not fields["postaladress"]["perm"]==0 %}<b>{{fields["postaladress"]["label"]}}</b> = {{ user.postaladress }}<br>{%endif%}
{%if user.visitedate and (not fields["visitedate"]["perm"]==0 or (not is_granted('ROLE_USER') and not is_granted('ROLE_ANIM'))) %}<b>Date de dernière visite</b> = {{ user.visitedate|date('d/m/Y H:i') }}<br>{%endif%}
{%if user.visitecpt and (not fields["visitedate"]["perm"]==0 or (not is_granted('ROLE_USER') and not is_granted('ROLE_ANIM'))) %}<b>Nombre de visites</b> = {{ user.visitecpt }}<br>{%endif%}
{% if not fields["group"].perm==0 or not is_granted('ROLE_USER') %}
<br>
{% set fgtitle=false %}
{% for usergroup in user.groups %}
{% if usergroup.group.fgcanshare %}
{% if not fgtitle %}
<br><b>Groupes de Travail</b><br>
{% set fgtitle=true %}
{% endif %}
{{ usergroup.group.label }}<br>
{% endif %}
{{ usergroup.group.label }}<br>
{% endif %}
{% endfor %}
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
</div>

View File

@ -4,11 +4,11 @@
{{ form_start(form) }}
<h1 class="page-header">
{% if mode=="update" %}
Modification Liste Blanche
Modification Liste Blanche = {{ whitelist.label }}
{% elseif mode=="submit" %}
Création Liste Blanche
{% elseif mode=="delete" %}
Suppression Liste Blanche
Suppression Liste Blanche = {{ whitelist.label }}
{% endif %}
</h1>

View File

@ -84,6 +84,10 @@
{{ include('@CadolesCore/Include/menu.html.twig') }}
{% endif %}
</ul>
{% if app.user %}
<div id="navbar-nameuser"><a href="{{ path('cadoles_core_user') }}" title="Profil">{{ app.user.firstname }} {{ app.user.lastname }}</a></div>
{% endif %}
</div>
{% endif %}
{% endif %}
@ -106,6 +110,9 @@
</div>
<ul class="nav navbar-top-links navbar-right">
{% if app.user %}
<a id="navbar-nameuser" href="{{ path('cadoles_core_user') }}" title="Profil">{{ app.user.firstname }} {{ app.user.lastname }}</a>
{% endif %}
{% if mustread is not defined %}
{{ include('@CadolesCore/Include/menu.html.twig') }}
{% endif %}

View File

@ -81,6 +81,7 @@ class samlUserCreatorService implements UserCreatorInterface
$user->setAvatar("noavatar.png");
$user->setVisible(true);
$user->setAuthlevel("simple");
$user->setBelongingpopulation("agent");
$user->setRole("ROLE_USER");
// Création

View File

@ -200,7 +200,8 @@ class ApiController extends Controller
$bookmarks=null;
$items=null;
$itemcategorys=null;
$weburl="https://".$this->getParameter("weburl")."/".$this->getParameter("alias")."/";
# fixe #31884 "https://" => "//"
$weburl="//".$this->getParameter("weburl")."/".$this->getParameter("alias")."/";
$em->getRepository("CadolesPortalBundle:Item")->getUserItems($user,$bookmarks,$items,$itemcategorys,null,$ssoitems,3);
@ -673,10 +674,10 @@ $api('$id',data);";
}
public function sessionAction($id="",$access="config") {
// Masteridentity
$masteridentity=$this->getParameter("masteridentity");
if($masteridentity!="SSO") {
$output["error"]="Le bundle Edispatcher ne fonctionne qu'en mode MasterIdentity=SSO";
// mode_auth
$mode_auth=$this->getParameter("mode_auth");
if($mode_auth!="CAS") {
$output["error"]="Le bundle Edispatcher ne fonctionne qu'en mode mode_auth=CAS";
return new Response(json_encode($output), 400);
}
@ -729,6 +730,7 @@ $api('$id',data);";
$user->setAvatar("noavatar.png");
$user->setVisible(true);
$user->setAuthlevel("simple");
$user->setBelongingpopulation("agent");
$user->setRole("ROLE_USER");
if(in_array($username,$this->getParameter("ldap_usersadmin")))

View File

@ -24,7 +24,7 @@ class Datasource
private $id;
/**
* @ORM\Column(type="string", length=50, unique=true)
* @ORM\Column(type="string", length=128, unique=true)
*/
private $username;

View File

@ -12,6 +12,10 @@ div.header {
position: relative !important;
}
#navbar-nameuser a {
color: var(--main, #004d9a) !important;
}
div.header > a > span {
color: black !important;
}

View File

@ -407,6 +407,7 @@ class GetLimesurveyCommand extends Command
foreach($surveys as $survey) {
// Si le sondage est actif
if($survey["active"]=="Y") {
$this->writeln("SURVEY = ".$survey["surveyls_title"]);
// Liste des participants
$survey_id=$survey["sid"];
@ -415,6 +416,8 @@ class GetLimesurveyCommand extends Command
foreach($users as $user) {
if(isset($user["participant_info"]["email"]) && $user["participant_info"]["email"]!="") {
$this->writeln("EMAIL = ".$user["participant_info"]["email"]);
$entity = $this->em->getRepository('CadolesCoreBundle:User')->findOneBy(["email"=>$user["participant_info"]["email"]]);
if($entity) {
$surveypropconf = $myJSONRPCClient->get_survey_properties($sessionKey,$survey["sid"],["datecreated"]);

View File

@ -43,6 +43,7 @@ class InitDataCommand extends ContainerAwareCommand
$activate_widadminer = $this->getContainer()->getParameter('activate_widadminer');
$activate_widbalado = $this->getContainer()->getParameter('activate_widbalado');
$activate_widcdt = $this->getContainer()->getParameter('activate_widcdt');
$activate_widdokuwiki = $this->getContainer()->getParameter('activate_widdokuwiki');
$activate_wideconnect = $this->getContainer()->getParameter('activate_wideconnect');
$activate_widead = $this->getContainer()->getParameter('activate_widead');
@ -380,7 +381,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-394);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Adminer');
$entityItem->SetSubtitle("Gestionnaire de Bases de Données");
$entityItem->setSubtitle("Gestionnaire de Bases de Données");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryadm);
@ -402,7 +403,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-377);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Balado');
$entityItem->SetSubtitle("Enregistrement en ligne et partage ses enregistrements");
$entityItem->setSubtitle("Interactions orales et écrites en ligne avec possibilité denregistrement audio intégré");
$entityItem->SetContent("Balad((o)) permet dinteragir avec les élèves en leur proposant une activité en ligne avec texte, image, audio déposé ou enregistré en ligne, vidéo déposée ou intégrée, documents joints.<br>Les élèves peuvent répondre en ligne avec texte, image, audio déposé ou enregistré en ligne, vidéo déposée ou intégrée, documents joints.<br>Lenseignant peut ensuite consulter en ligne les travaux rendus par les élèves, mais pas encore les annoter individuellement.");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -413,6 +415,29 @@ class InitDataCommand extends ContainerAwareCommand
$em->persist($entityItem);
}
// Item CdT
if($activate_widcdt) {
$widcdt_url =$this->getContainer()->getParameter('widcdt_url');
$entityItem = $em->getRepository('CadolesPortalBundle:Item')->find(-391);
if(!$entityItem) {
$entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_cdt.png"]);
$entityItem = new Item();
$entityItem->setId(-391);
$entityItem->setRowOrder(0);
$entityItem->setTitle('CdT');
$entityItem->setSubtitle("Application complète de gestion de cahier de texte scolaire");
$entityItem->SetContent("Application complète de gestion de cahier de texte scolaire");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
$entityItem->setEssential(true);
$entityItem->addGroup($groupall);
}
$entityItem->setUrl($widcdt_url);
$em->persist($entityItem);
}
// Item Dokuwiki
if($activate_widdokuwiki) {
$widdokuwiki_url =$this->getContainer()->getParameter('widdokuwiki_url');
@ -424,7 +449,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-399);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Dokuwiki');
$entityItem->SetSubtitle("Création de documentations de toute sorte");
$entityItem->setSubtitle("Base de connaissances sous forme dun wiki");
$entityItem->SetContent("Le wiki permet de mettre du contenu classé par catégories.<br>Sur chaque catégorie et sur chaque page, des droits de lecture, modification, suppression peuvent être affectés à des utilisateurs ou des groupes dutilisateurs.<br>En établissement, le wiki peut être utilisé comme base de connaissances en intranet / extranet professionnel ou comme support pédagogique décriture collaborative.");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -446,7 +472,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-376);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Econnect');
$entityItem->SetSubtitle("Gestion de connecteurs vers d'autres applications");
$entityItem->setSubtitle("Gestion de connecteurs vers d'autres applications");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -468,7 +494,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-393);
$entityItem->setRowOrder(0);
$entityItem->setTitle('EAD');
$entityItem->SetSubtitle("Console d'administration du serveur scribe");
$entityItem->setSubtitle("Console d'administration du serveur scribe");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryadm);
@ -489,8 +515,9 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem = new Item();
$entityItem->setId(-370);
$entityItem->setRowOrder(0);
$entityItem->setTitle('EOE');
$entityItem->SetSubtitle("EOLE Outils Elève");
$entityItem->setTitle('Outils Élève');
$entityItem->setSubtitle("EOLE Outils Elève<br>(EOE)");
$entityItem->setContent("EOLE Outils Élève (EOE) permet à lélève en particulier de changer son mot de passe daccès, dans lobjectif de maîtriser son identité numérique sur lENT.");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -511,8 +538,9 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem = new Item();
$entityItem->setId(-371);
$entityItem->setRowOrder(0);
$entityItem->setTitle('EOP');
$entityItem->SetSubtitle("EOLE Outils Professeur");
$entityItem->setTitle('Outils Professeur');
$entityItem->setSubtitle("EOLE Outils Professeur<br>(EOP)");
$entityItem->setContent("Parmi les outils disponibles dans EOLE Outils Professeur (EOP) :<br>Changement de mot de passe local (Scribe) utilisé sur les postes en établissement<br>Changer le mot de passe des élèves (uniquement pour les professeurs principaux)<br>Distribuer des documents / devoirs à des classes et groupes à laide du dossier « perso » de lenseignant et de chaque élève. Cette application est adaptée à un fonctionnement synchrone en établissement, un peu moins en distanciel asynchrone.");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -534,7 +562,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-382);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Etherhome');
$entityItem->SetSubtitle("Gestion de vos pads et de vos calcs collaboratifs");
$entityItem->setSubtitle("Accès aux pads, calcs et scrums");
$entityItem->setContent("Etherhome permet de créer, partager et accéder aux pads (textes), calcs (tableaux) et scrums (murs de textes).<br>Les pads et calcs sont des supports de travail collaboratif synchrone ou asynchrone, à reprendre éventuellement ensuite dans un traitement de textes ou un tableur ou un logiciel de présentation.");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -556,7 +585,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-397);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Fluxbb');
$entityItem->SetSubtitle("Forum");
$entityItem->setSubtitle("Forum");
$entityItem->setContent("Forum avec gestion des droits des utilisateurs.");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -578,7 +608,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-368);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Genconfig');
$entityItem->SetSubtitle("Console de configuration du serveur");
$entityItem->setSubtitle("Console de configuration du serveur");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryadm);
@ -600,7 +630,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-389);
$entityItem->setRowOrder(0);
$entityItem->setTitle('GEPI');
$entityItem->SetSubtitle("Intégration du logiciel de gestion des notes, absences, cahier de texte");
$entityItem->setSubtitle("Intégration du logiciel de gestion des notes, absences, cahier de texte");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -622,7 +652,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-388);
$entityItem->setRowOrder(0);
$entityItem->setTitle('GLPI');
$entityItem->SetSubtitle("Gestion de tickets");
$entityItem->setSubtitle("Gestion de tickets");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -644,7 +674,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-388);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Grr');
$entityItem->SetSubtitle("Gestion et de Réservations de Ressources");
$entityItem->setSubtitle("Gestion et de Réservations de Ressources");
$entityItem->setContent("GRR permet de réserver des ressources disponibles dans létablissement : salles, matériels, etc.");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -666,7 +697,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-363);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Kanboard');
$entityItem->SetSubtitle("Gestion de Projets");
$entityItem->setSubtitle("Gestion de rojets");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -688,7 +719,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-374);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Limesurvey');
$entityItem->SetSubtitle("Application de sondage");
$entityItem->setSubtitle("Gestion denquêtes");
$entityItem->setContent("Limesurvey permet de créer des enquêtes en ligne avec différents formats de réponses : texte, nombre, choix multiple avec réponse unique ou non, etc.<br>Chaque enquête peut être adressée :<br>soit à des utilisateurs ou groupes par invitation individuelle, ce qui permet déviter les doubles réponses<br>soit de manière anonyme par un lien public");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -710,7 +742,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-369);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Mindmaps');
$entityItem->SetSubtitle("Carte Mentale");
$entityItem->setSubtitle("Carte Mentale");
$entityItem->setContent("Carte mentale simple, enregistrable mais non collaborative.");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -732,7 +765,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-387);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Moodle');
$entityItem->SetSubtitle("Application de eLearning");
$entityItem->setSubtitle("Cours en ligne");
$entityItem->setContent("Plateforme dapprentissage en ligne (« e-learning ») où lenseignant peut mettre à disposition :<br>- des ressources à consulter : textes en ligne, documents joints, vidéos intégrées, etc.<br>- des activités : devoirs à rendre, tests auto-évalués, glossaire collaboratif, activités multimédia H5P, etc.");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -754,7 +788,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-366);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Nextcloud');
$entityItem->SetSubtitle("Stockage de Fichiers");
$entityItem->setSubtitle("Dépôt et partage de fichiers");
$entityItem->setContent("Nextcloud permet de déposer des fichiers, organisés dans des dossiers.<br>Ces dossiers et fichiers peuvent être partagés avec des droits de lecture et/ou de modification / suppression :<br>Soit avec des utilisateurs ou groupes dutilisateurs<br>Soit de manière anonyme avec un lien public, paramétrable (durée, mot de passe)");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -776,7 +811,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-361);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Nineboard');
$entityItem->SetSubtitle("Gestionnaire de tableau de bord collaboratif");
$entityItem->setSubtitle("Accès aux pads, calcs, scrums, whiteboards, timelines et mindmaps");
$entityItem->setContent("Nineboard permet de créer, partager et accéder aux pads (textes), calcs (tableaux), scrums (murs de textes en colonne), whiteboards (murs de textes libre), timelines (frises temporelles) et mindmaps (cartes mentales)<br>Les pads et calcs sont des supports de travail collaboratif synchrone ou asynchrone, à reprendre éventuellement ensuite dans un traitement de textes ou un tableur ou un logiciel de présentation.");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -798,7 +834,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-1001);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Nineschool');
$entityItem->SetSubtitle("Gestionnaire d'activités scolaire'");
$entityItem->setSubtitle("Gestionnaire d'activités scolaire'");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -820,7 +856,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-1002);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Ninesurvey');
$entityItem->SetSubtitle("Application de Sondage par Date");
$entityItem->setSubtitle("Application de Sondage par Date");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -842,7 +878,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-1000);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Onlyoffice');
$entityItem->SetSubtitle("Application Bureautique");
$entityItem->setSubtitle("Application Bureautique");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -864,7 +900,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-383);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Opensondage');
$entityItem->SetSubtitle("Application de Sondage par Date");
$entityItem->setSubtitle("Création de sondage à réponse simple ou pour le choix dune date");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -886,7 +922,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-362);
$entityItem->setRowOrder(0);
$entityItem->setTitle('PhpLdapAdmin');
$entityItem->SetSubtitle("Gestionnaire dannuaire LDAP");
$entityItem->setSubtitle("Gestionnaire dannuaire LDAP");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryadm);
@ -897,7 +933,7 @@ class InitDataCommand extends ContainerAwareCommand
$em->persist($entityItem);
}
// Item piwigo
// Item Piwigo
if($activate_widpiwigo) {
$widpiwigo_url =$this->getContainer()->getParameter('widpiwigo_url');
$entityItem = $em->getRepository('CadolesPortalBundle:Item')->find(-396);
@ -908,7 +944,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-396);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Piwigo');
$entityItem->SetSubtitle("Gestionnaire dalbums photos");
$entityItem->setSubtitle("Gestionnaire dalbums photos");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -930,7 +966,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-380);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Piwik');
$entityItem->SetSubtitle("Application de Statistique de Visite");
$entityItem->setSubtitle("Mesures daudience du portail");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryadm);
@ -952,7 +988,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-398);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Roundcube');
$entityItem->SetSubtitle("Webmail");
$entityItem->setSubtitle("Messagerie");
$entityItem->setContent("Messagerie permettant la communication sécurisée par méls. La messagerie na pas pour but denvoyer des gros fichiers mais plutôt de communiquer des informations, des liens.");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -960,6 +997,12 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->addGroup($groupall);
}
$entityItem->setUrl($widroundcube_url);
if($this->getContainer()->getParameter('cas_type')=="proxy")
$entityItem->setBadgeurl("/ninegate/cas/imapunread");
else
$entityItem->setBadgeurl(null);
$em->persist($entityItem);
}
@ -974,7 +1017,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-372);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Sacoche');
$entityItem->SetSubtitle("Evaluation de compétences");
$entityItem->setSubtitle("Evaluation de compétences");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -996,7 +1039,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-400);
$entityItem->setRowOrder(0);
$entityItem->setTitle('Wordpress');
$entityItem->SetSubtitle("Application de Blog");
$entityItem->setSubtitle("Sites ou blogs en intranet ou sur internet");
$entityItem->setContent("Avec la plateforme Wordpress, sur demande, un administrateur peut créer des blogs ou sites.<br>Pour chaque blog ou site, des droits peuvent être donnés aux utilisateurs :<br>Qui peut écrire des articles ?<br>Qui peut valider ces articles ?<br>Qui peut consulter ces articles ? (le blog peut aussi être rendu visible publiquement sur internet)<br>");
$entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp);
@ -1011,15 +1055,15 @@ class InitDataCommand extends ContainerAwareCommand
//== WIDGET ============================================================================================================================================
$output->writeln(' > Creation Widget');
// Widget URL
// Widget Page web
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-2000);
if(!$entityWidget) $entityWidget = new Widget();
$entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_ribbon.png"]);
$entityWidget->setId(-2000);
$entityWidget->setRoworder(0);
$entityWidget->setIcon($entityicon);
$entityWidget->setName('URL');
$entityWidget->setDescription("Affiche le contenu d'une url");
$entityWidget->setName('Page web');
$entityWidget->setDescription("Affiche le contenu d'une page web");
$entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_url");
$entityWidget->setHeight("630");
$entityWidget->setAutoajust(false);
@ -1091,15 +1135,15 @@ class InitDataCommand extends ContainerAwareCommand
$em->persist($entityWidget);
// Widget Favoris
// Widget Liens
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1960);
if(!$entityWidget) $entityWidget = new Widget();
$entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_star.png"]);
$entityWidget->setId(-1960);
$entityWidget->setRoworder(0);
$entityWidget->setIcon($entityicon);
$entityWidget->setName('Favoris');
$entityWidget->setDescription("Création de Favoris");
$entityWidget->setName('Liens');
$entityWidget->setDescription("Bibliothèque de Liens");
$entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_bookmark");
$entityWidget->setHeight("630");
$entityWidget->setAutoajust(true);
@ -1111,7 +1155,7 @@ class InitDataCommand extends ContainerAwareCommand
$em->persist($entityWidget);
// Widget Liens
// Widget Lien
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1950);
if(!$entityWidget) $entityWidget = new Widget();
$entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_bolt.png"]);
@ -1119,7 +1163,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityWidget->setRoworder(0);
$entityWidget->setIcon($entityicon);
$entityWidget->setName('Lien');
$entityWidget->setDescription("Création d'un Lien");
$entityWidget->setDescription("Création d'un Lien unique");
$entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_link");
$entityWidget->setHeight("200");
$entityWidget->setAutoajust(true);
@ -1131,14 +1175,14 @@ class InitDataCommand extends ContainerAwareCommand
$em->persist($entityWidget);
// Widget Editor
// Widget Texte
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1940);
if(!$entityWidget) $entityWidget = new Widget();
$entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_compose.png"]);
$entityWidget->setId(-1940);
$entityWidget->setRoworder(0);
$entityWidget->setIcon($entityicon);
$entityWidget->setName('Editeur');
$entityWidget->setName('Texte');
$entityWidget->setDescription("Votre propre texte à éditer");
$entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_editor");
$entityWidget->setHeight("630");
@ -1302,14 +1346,14 @@ class InitDataCommand extends ContainerAwareCommand
$em->persist($entityWidget);
}
// Widget Information
// Widget Informations
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1860);
if(!$entityWidget) $entityWidget = new Widget();
$entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_info.png"]);
$entityWidget->setId(-1860);
$entityWidget->setRoworder(0);
$entityWidget->setIcon($entityicon);
$entityWidget->setName('Information Page');
$entityWidget->setName('Informations');
$entityWidget->setDescription("Afficher les informations associées à la page");
$entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_info");
$entityWidget->setHeight("630");

View File

@ -8,6 +8,7 @@ use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Form\FormError;
use Symfony\Component\Filesystem\Filesystem;
use Cadoles\PortalBundle\Entity\Alert;
use Cadoles\PortalBundle\Form\AlertType;
@ -195,6 +196,32 @@ class AlertController extends Controller
return $response;
}
public function uploadAction(Request $request,$access=null) {
// Fichier temporaire uploadé
$tmpfile = $request->files->get('upload');
$extention = $tmpfile->getClientOriginalExtension();
// Répertoire de Destination
$fs = new Filesystem();
$rootdir = $this->get('kernel')->getRootDir()."/../web";
$fs->mkdir($rootdir."/uploads/ckeditor");
// Fichier cible
$targetName = uniqid().".".$extention;
$targetFile = $rootdir."/uploads/ckeditor/".$targetName;
$targetUrl = "/".$this->getParameter('alias')."/uploads/ckeditor/".$targetName;
$message = "";
move_uploaded_file($tmpfile,$targetFile);
$output["uploaded"]=1;
$output["fileName"]=$targetName;
$output["url"]=$targetUrl;
return new Response(json_encode($output));
}
public function readAction(Request $request) {
$output=array();
$id=$request->request->get('id');

View File

@ -361,7 +361,7 @@ class BlogController extends Controller
if($groups[0]) {
if($groups[0]->getFgcanshare()) {
$pages=$groups[0]->getPages();
if($pages) {
if($pages[0]) {
$idpage=$pages[0]->getId();
$groups=$pages[0]->getGroups();
$idgroup=$groups[0]->getId();

View File

@ -182,7 +182,7 @@ class BlogarticleController extends Controller
if($groups[0]) {
if($groups[0]->getFgcanshare()) {
$pages=$groups[0]->getPages();
if($pages) {
if($pages[0]) {
$idpage=$pages[0]->getId();
$groups=$pages[0]->getGroups();
$idgroup=$groups[0]->getId();

View File

@ -41,7 +41,7 @@ class BookmarkController extends Controller
$user=$pagewidget->getPage()->getUser();
if($user!=$this->getUser()) throw $this->createNotFoundException('Permission denied');
}
else {
elseif($usage=="group") {
$groupentity=$this->getDoctrine()->getRepository("CadolesCoreBundle:Group")->find($group);
$usergroup=$this->getDoctrine()->getRepository("CadolesCoreBundle:UserGroup")->findoneby(["user"=>$this->getUser(),"group"=>$groupentity]);
if(!$usergroup or $usergroup->getRolegroup()<50) throw $this->createNotFoundException('Permission denied');

View File

@ -341,7 +341,7 @@ class CalendarController extends Controller
if($groups[0]) {
if($groups[0]->getFgcanshare()) {
$pages=$groups[0]->getPages();
if($pages) {
if($pages[0]) {
$idpage=$pages[0]->getId();
$groups=$pages[0]->getGroups();
$idgroup=$groups[0]->getId();

View File

@ -71,7 +71,8 @@ class ItemController extends Controller
"mode" => "submit",
"labelniveau01" => $this->GetParameter("labelsniveau01"),
"ssosynchroitem" => $this->GetParameter("ssosynchroitem"),
"user_attr_cas_item" => $this->GetParameter("user_attr_cas_item")
"user_attr_cas_item" => $this->GetParameter("user_attr_cas_item"),
"activate_widsonde" => $this->GetParameter("activate_widsonde"),
));
// Récupération des data du formulaire
@ -122,7 +123,8 @@ class ItemController extends Controller
"idicon" => ($data->getIcon()?$data->getIcon()->getId():null),
"labelniveau01" => $this->GetParameter("labelsniveau01"),
"ssosynchroitem" => $this->GetParameter("ssosynchroitem"),
"user_attr_cas_item" => $this->GetParameter("user_attr_cas_item")
"user_attr_cas_item" => $this->GetParameter("user_attr_cas_item"),
"activate_widsonde" => ($this->GetParameter("activate_widsonde")&&$data->getId()>0),
));
// Récupération des data du formulaire
@ -230,6 +232,13 @@ class ItemController extends Controller
if ($form->get('submit')->isClicked() && $mode=="submit") {
}
if ($form->get('submit')->isClicked() && ($mode=="submit" || $mode=="update")) {
// si clicksonde alors clicksondeservice obligatoire
if ($data->getClicksonde() && !$data->getClicksondeservice()) {
$form->addError(new FormError('Type de service sur le click sonde est obligatoire'));
}
}
if ($form->get('submit')->isClicked() && !$form->isValid()) {
$this->get('session')->getFlashBag()->clear();
$validator = $this->get('validator');

View File

@ -210,6 +210,10 @@ class NoticeController extends Controller
$em = $this->getDoctrine()->getManager();
$user=$this->getUser();
$notices=$em->getRepository("CadolesPortalBundle:Notice")->getNoticeToRead($user);
// Récupération redirection potentielle
$id = $request->get('id');
foreach($notices as $notice) {
$users=$notice->getUsers();
@ -223,7 +227,7 @@ class NoticeController extends Controller
}
}
return $this->redirectToRoute("cadoles_core_home");
return $this->redirectToRoute("cadoles_core_home",["id"=>$id]);
}
public function viewAction(Request $request) {

View File

@ -447,6 +447,26 @@ class PagewidgetController extends Controller
}
}
protected function getKeyPreference(&$entity,$key,$value) {
$user=$this->getUser();
if(!$user)
return $value;
$preference=$user->getPreference();
$id=$entity->getId();
if(!is_array($preference))
return $value;
if(!array_key_exists($key,$preference))
return $value;
if(!array_key_exists($id,$preference[$key]))
return $value;
return $preference[$key][$id];
}
protected function getRender($view,$params) {
// Paramétres toujours présent dans un rendu de widget
$allways = [
@ -602,6 +622,9 @@ class PagewidgetController extends Controller
}
}
// Préference utilisateur
$modedesktop = $this->getKeyPreference($this->entity,"modedesktop",$modedesktop);
// Profilage
$itemsordered = $this->em->getRepository("CadolesPortalBundle:Item")->getUserItems($this->user,$bookmarks,$items,$itemcategorys,$iditemcategory,$this->get('session')->get('ssoitems'),$withbookmark,false);
}
@ -639,10 +662,14 @@ class PagewidgetController extends Controller
break;
}
}
// Préference utilisateur
$modedesktop = $this->getKeyPreference($this->entity,"modedesktop",$modedesktop);
// Profilage
$itemsordered = $this->em->getRepository("CadolesPortalBundle:Item")->getUserItems($this->user,$bookmarks,$items,$itemcategorys,null,$this->get('session')->get('ssoitems'),0,true);
}
// Render
return $this->getRender('viewitemessential.html.twig', [
@ -651,7 +678,7 @@ class PagewidgetController extends Controller
'items' => $itemsordered,
'bookmarks' => $bookmarks,
]);
}
}
public function viewalertAction(Request $request,$id,$access="config") {
// Récupération de la requete

View File

@ -362,7 +362,7 @@ class ProjectController extends Controller
if($groups[0]) {
if($groups[0]->getFgcanshare()) {
$pages=$groups[0]->getPages();
if($pages) {
if($pages[0]) {
$idpage=$pages[0]->getId();
$groups=$pages[0]->getGroups();
$idgroup=$groups[0]->getId();

View File

@ -207,7 +207,7 @@ class ProjecttaskController extends Controller
if($groups[0]) {
if($groups[0]->getFgcanshare()) {
$pages=$groups[0]->getPages();
if($pages) {
if($pages[0]) {
$idpage=$pages[0]->getId();
$groups=$pages[0]->getGroups();
$idgroup=$groups[0]->getId();

View File

@ -39,6 +39,20 @@ class SyncenvoleController extends Controller
]);
}
public function cdtAction()
{
$url=$this->getParameter("widcdt_syncenvole");
$color=$this->get('session')->get('colormain');
$themename=$this->get('session')->get("theme");
return $this->render('CadolesPortalBundle:Tool:frame.html.twig', [
'useheader' => true,
'usemenu' => false,
'usesidebar' => true,
'url' => $url."/synchro.php?app=cdt&color=#color#"
]);
}
public function gepiannuAction()
{
$url=$this->getParameter("widgepi_syncenvole");

View File

@ -149,7 +149,7 @@ class Alert
{
$today = new \DateTime();
if (null === $this->unpublishedat) {
return true;
return false;
}
if ($this->unpublishedat->getTimestamp() < $today->getTimestamp()) {
return true;

View File

@ -95,6 +95,13 @@ class Item
*/
private $color;
/**
* @var string
*
* @ORM\Column(name="badgeurl", type="string", length=250, nullable=true)
*/
private $badgeurl;
/**
* @var string
*
@ -115,6 +122,20 @@ class Item
*/
private $icon;
/**
* @var boolean
*
* @ORM\Column(name="clicksonde", type="boolean", nullable=true, options={"default":false})
*/
private $clicksonde = false;
/**
* @var boolean
*
* @ORM\Column(name="clicksondeservice", type="string", nullable=true)
*/
private $clicksondeservice;
/**
* @var ArrayCollection $bookmark
* @var Bookmark
@ -650,4 +671,76 @@ class Item
{
return $this->ssoitem;
}
/**
* Set badgeurl.
*
* @param string|null $badgeurl
*
* @return Item
*/
public function setBadgeurl($badgeurl = null)
{
$this->badgeurl = $badgeurl;
return $this;
}
/**
* Get badgeurl.
*
* @return string|null
*/
public function getBadgeurl()
{
return $this->badgeurl;
}
/**
* Set clicksonde
*
* @param boolean $clicksonde
*
* @return Item
*/
public function setClicksonde($clicksonde)
{
$this->clicksonde = $clicksonde;
return $this;
}
/**
* Get clicksonde
*
* @return boolean
*/
public function getClicksonde()
{
return $this->clicksonde;
}
/**
* Set clicksondeservice
*
* @param string $clicksondeservice
*
* @return Item
*/
public function setClicksondeservice($clicksondeservice)
{
$this->clicksondeservice = $clicksondeservice;
return $this;
}
/**
* Get clicksondeservice
*
* @return string
*/
public function getClicksondeservice()
{
return $this->clicksondeservice;
}
}

View File

@ -33,7 +33,7 @@ class AlertType extends AbstractType
"label" => 'Description',
"required" => false,
"disabled" => ($options["mode"]=="delete"?true:false),
"config" => array("height" => "500px")
"config" => array("height" => "500px","filebrowserUploadRoute" => 'cadoles_portal_config_alert_upload')
])
->add("fghideable",ChoiceType::class,[
@ -118,14 +118,13 @@ class AlertType extends AbstractType
->add('publishedat', DateType::class, [
'label' => 'Publier du',
'input' => 'datetime',
"widget" => 'single_text',
])
->add('unpublishedat', DateType::class, [
'label' => 'Jusqu\'au',
'input' => 'datetime',
'required' => false,
'years' => range(date('Y'), date('Y')+10)
"widget" => 'single_text',
]);

View File

@ -118,6 +118,11 @@ class ItemType extends AbstractType
"required" => false
])
->add('badgeurl', TextType::class, [
'label' => "Badge URL",
'required' => false,
])
->add('essential', CheckboxType::class, [
"label" => "Item essentiel ?",
"required" => false
@ -141,6 +146,51 @@ class ItemType extends AbstractType
"disabled" => ($options["mode"]=="delete"?true:false),
]);
}
if($options["activate_widsonde"]) {
$builder
->add('clicksonde', CheckboxType::class, [
"label" => "Exécuter une sonde statistique sur le clic",
"required" => false
])
->add('clicksondeservice', ChoiceType::class, [
"label" => 'Type de Service associé à la sonde',
"placeholder" => 'Sélectionner un service',
"required" => false,
"choices" => [
"ACCUEIL" => "ACCUEIL",
"ACTUALITES" => "ACTUALITES",
"CAHIER TEXTES" => "CAHIER_TEXTES",
"CAHIER LIAISON" => "CAHIER_LIAISON",
"COURRIER ELECTRONIQUE" => "COURRIER_ELECTRONIQUE",
"MESSAGERIE INSTANTANEE" => "MESSAGERIE_INSTANTANEE",
"VISIOCONFERENCE" => "VISIOCONFERENCE",
"STOCKAGE PARTAGE" => "STOCKAGE_PARTAGE",
"PRODUCTION COLLABORATIVE" => "PRODUCTION_COLLABORATIVE",
"DOCUMENTATION CDI" => "DOCUMENTATION_CDI",
"PARCOURS PEDAGOGIQUE" => "PARCOURS_PEDAGOGIQUE",
"RESERVATION SALLES MATERIELS" => "RESERVATION_SALLES_MATERIELS",
"SERVICE COLLECTIVITE" => "SERVICE_COLLECTIVITE",
"SERVICES VIE SCOLAIRE" => "SERVICES_VIE_SCOLAIRE",
"GESTION TEMPS" => "GESTION_TEMPS",
"ABSENCES" => "ABSENCES",
"GESTION COMPETENCES" => "GESTION_COMPETENCES",
"NOTES" => "NOTES",
"MANUEL NUMERIQUE" => "MANUEL_NUMERIQUE",
"RESSOURCE MULTIMEDIA" => "RESSOURCE_MULTIMEDIA",
"RESSOURCE ORIENTATION" => "RESSOURCE_ORIENTATION",
"RESSOURCE PRODUCTION" => "RESSOURCE_PRODUCTION",
"RESSOURCE ACCOMPAGNEMENT ENTRAINEMENT" => "RESSOURCE_ACCOMPAGNEMENT_ENTRAINEMENT",
"RESSOURCE REFERENCE DICTIONNAIRE" => "RESSOURCE_REFERENCE_DICTIONNAIRE",
"RESSOURCE DOCUMENTAIRE" => "RESSOURCE_DOCUMENTAIRE",
"PAGE ENT" => "PAGE_ENT",
],
"disabled" => ($options["mode"]=="delete"?true:false),
]);
}
}
public function configureOptions(OptionsResolver $resolver)
@ -152,6 +202,7 @@ class ItemType extends AbstractType
'labelniveau01' => "string",
'ssosynchroitem' => "string",
'user_attr_cas_item' => "string",
"activate_widsonde" => "string",
]);
}
}

View File

@ -45,7 +45,9 @@ class AlertRepository extends EntityRepository
$roles=($user?$user->getRoles():["ROLE_ANONYME"]);
$niveau01=($user?$user->getNiveau01():null);
$groups=($user?$user->getGroups():[]);
$userreads=($user?$user->getAlertreaders():new ArrayCollection());
// Initialisation du calcul des alerts
$alerts=new ArrayCollection();
@ -67,8 +69,9 @@ class AlertRepository extends EntityRepository
->setParameter("alertcategory",$alertcategoryfilter);
}
$alertsroles=$qb->getQuery()->getResult();
foreach($alertsroles as $alertrole) {
if(!$alerts->contains($alertrole)&&!$alertrole->getReaders()->contains($user)) $alerts->add($alertrole);
if(!$alerts->contains($alertrole)&&!$userreads->contains($alertrole)) $alerts->add($alertrole);
}
}
@ -91,7 +94,7 @@ class AlertRepository extends EntityRepository
}
$alertsniveau01s=$qb->getQuery()->getResult();
foreach($alertsniveau01s as $alertniveau01) {
if(!$alerts->contains($alertniveau01)&&!$alertniveau01->getReaders()->contains($user)) $alerts->add($alertniveau01);
if(!$alerts->contains($alertniveau01)&&!$userreads->contains($alertniveau01)) $alerts->add($alertniveau01);
}
// Récupération des alerts par group
@ -113,8 +116,8 @@ class AlertRepository extends EntityRepository
->setParameter("alertcategory",$alertcategoryfilter);
}
$alertsgroups=$qb->getQuery()->getResult();
foreach($alertsgroups as $alertgroup) {
if(!$alerts->contains($alertgroup)&&!$alertgroup->getReaders()->contains($user)) $alerts->add($alertgroup);
foreach($alertsgroups as $alertgroup) {
if(!$alerts->contains($alertgroup)&&!$userreads->contains($alertgroup)) $alerts->add($alertgroup);
}
}
@ -141,8 +144,8 @@ class AlertRepository extends EntityRepository
->setParameter("alertcategory",$alertcategoryfilter);
}
$alertsitems=$qb->getQuery()->getResult();
foreach($alertsitems as $alertitem) {
if(!$alerts->contains($alertitem)&&!$alertitem->getReaders()->contains($user)) $alerts->add($alertitem);
foreach($alertsitems as $alertitem) {
if(!$alerts->contains($alertitem)&&!$userreads->contains($alertitem)) $alerts->add($alertitem);
}
}

View File

@ -8,7 +8,11 @@ cadoles_portal_config_syncdelegation:
cadoles_portal_config_syncbalado:
path: /config/syncenvole/balado
defaults: { _controller: CadolesPortalBundle:Syncenvole:balado }
cadoles_portal_config_synccdt:
path: /config/syncenvole/cdt
defaults: { _controller: CadolesPortalBundle:Syncenvole:cdt }
cadoles_portal_config_syncgepiannu:
path: /config/syncenvole/gepiannu
defaults: { _controller: CadolesPortalBundle:Syncenvole:gepiannu }
@ -159,6 +163,13 @@ cadoles_portal_config_alert_order:
path: /config/alert/order
defaults: { _controller: CadolesPortalBundle:Alert:order }
cadoles_portal_config_alert_upload:
path: /config/alert/upload
defaults: { _controller: CadolesPortalBundle:Alert:upload }
cadoles_portal_config_alert_upload_direct:
path: /config/alert/upload&responseType=json
defaults: { _controller: CadolesPortalBundle:Alert:upload }
cadoles_portal_config_ajax_alert_seleclist:
path: /config/alert/ajax/selectlist
defaults: { _controller: CadolesPortalBundle:Alert:ajaxseleclist }
@ -321,6 +332,9 @@ cadoles_portal_config_page_order:
cadoles_portal_config_page_upload:
path: /config/page/upload
defaults: { _controller: CadolesPortalBundle:Page:upload, access: config }
cadoles_portal_config_page_upload_direct:
path: /config/page/upload&responseType=json
defaults: { _controller: CadolesPortalBundle:Page:upload, access: config }
#-- Access user
cadoles_portal_user_page_submit:
@ -350,6 +364,9 @@ cadoles_portal_user_page_order:
cadoles_portal_user_page_upload:
path: /user/page/upload
defaults: { _controller: CadolesPortalBundle:Page:upload, access: user }
cadoles_portal_user_page_upload_direct:
path: /user/page/upload&responseType=json
defaults: { _controller: CadolesPortalBundle:Page:upload, access: user }
# Page spécifique
cadoles_portal_user_page_application:
@ -531,7 +548,10 @@ cadoles_portal_config_blogarticle_delete:
cadoles_portal_config_blogarticle_upload:
path: /config/blogarticle/upload
defaults: { _controller: CadolesPortalBundle:Blogarticle:upload, access: config }
cadoles_portal_config_blogarticle_upload_direct:
path: /config/blogarticle/upload&responseType=json
defaults: { _controller: CadolesPortalBundle:Blogarticle:upload, access: config }
cadoles_portal_config_blogarticle_image:
path: /config/blogarticle/image
defaults: { _controller: CadolesPortalBundle:Blogarticle:image, access: config }
@ -556,6 +576,9 @@ cadoles_portal_user_blogarticle_delete:
cadoles_portal_user_blogarticle_upload:
path: /user/blogarticle/upload
defaults: { _controller: CadolesPortalBundle:Blogarticle:upload, access: user }
cadoles_portal_user_blogarticle_upload_direct:
path: /user/blogarticle/upload&responseType=json
defaults: { _controller: CadolesPortalBundle:Blogarticle:upload, access: user }
cadoles_portal_user_blogarticle_image:
path: /user/blogarticle/image
@ -584,6 +607,9 @@ cadoles_portal_config_blogcomment_delete:
cadoles_portal_config_blogcomment_upload:
path: /config/blogcomment/upload
defaults: { _controller: CadolesPortalBundle:Blogcomment:upload, access: config }
cadoles_portal_config_blogcomment_upload_direct:
path: /config/blogcomment/upload&responseType=json
defaults: { _controller: CadolesPortalBundle:Blogcomment:upload, access: config }
#-- Access user
cadoles_portal_user_blogcomment_submit:
@ -605,7 +631,9 @@ cadoles_portal_user_blogcomment_delete:
cadoles_portal_user_blogcomment_upload:
path: /user/blogcomment/upload
defaults: { _controller: CadolesPortalBundle:Blogcomment:upload, access: user }
cadoles_portal_user_blogcomment_upload_direct:
path: /user/blogcomment/upload&responseType=json
defaults: { _controller: CadolesPortalBundle:Blogcomment:upload, access: user }
#== CALENDAR =============================================================================================================================================
@ -804,6 +832,9 @@ cadoles_portal_config_projecttask_delete:
cadoles_portal_config_projecttask_upload:
path: /config/projecttask/upload
defaults: { _controller: CadolesPortalBundle:Projecttask:upload, access: config }
cadoles_portal_config_projecttask_upload_direct:
path: /config/projecttask/upload&responseType=json
defaults: { _controller: CadolesPortalBundle:Projecttask:upload, access: config }
cadoles_portal_config_projecttask_users:
path: /config/projecttask/users
@ -833,6 +864,9 @@ cadoles_portal_user_projecttask_delete:
cadoles_portal_user_projecttask_upload:
path: /user/projecttask/upload
defaults: { _controller: CadolesPortalBundle:Projecttask:upload, access: user }
cadoles_portal_user_projecttask_upload_direct:
path: /user/projecttask/upload&responseType=json
defaults: { _controller: CadolesPortalBundle:Projecttask:upload, access: user }
cadoles_portal_user_projecttask_users:
path: /user/projecttask/users
@ -861,6 +895,9 @@ cadoles_portal_config_projectcomment_delete:
cadoles_portal_config_projectcomment_upload:
path: /config/projectcomment/upload
defaults: { _controller: CadolesPortalBundle:Projectcomment:upload, access: config }
cadoles_portal_config_projectcomment_upload_direct:
path: /config/projectcomment/upload&responseType=json
defaults: { _controller: CadolesPortalBundle:Projectcomment:upload, access: config }
#-- Access user
cadoles_portal_user_projectcomment_submit:
@ -878,7 +915,9 @@ cadoles_portal_user_projectcomment_delete:
cadoles_portal_user_projectcomment_upload:
path: /user/projectcomment/upload
defaults: { _controller: CadolesPortalBundle:Projectcomment:upload, access: user }
cadoles_portal_user_projectcomment_upload_direct:
path: /user/projectcomment/upload&responseType=json
defaults: { _controller: CadolesPortalBundle:Projectcomment:upload, access: user }
#== FEED =================================================================================================================================================
@ -930,6 +969,9 @@ cadoles_portal_config_pagewidget_order:
cadoles_portal_config_pagewidget_upload:
path: /config/pagewidget/upload
defaults: { _controller: CadolesPortalBundle:Pagewidget:upload, access: config }
cadoles_portal_config_pagewidget_upload_direct:
path: /config/pagewidget/upload&responseType=json
defaults: { _controller: CadolesPortalBundle:Pagewidget:upload, access: config }
cadoles_portal_config_panelwidget_view_url:
path: /config/pagewidget/view/url/{id}
@ -1051,6 +1093,9 @@ cadoles_portal_user_pagewidget_order:
cadoles_portal_user_pagewidget_upload:
path: /user/pagewidget/upload
defaults: { _controller: CadolesPortalBundle:Pagewidget:upload, access: user }
cadoles_portal_user_pagewidget_upload_direct:
path: /user/pagewidget/upload&responseType=json
defaults: { _controller: CadolesPortalBundle:Pagewidget:upload, access: user }
cadoles_portal_user_panelwidget_view_url:
path: /pagewidget/view/url/{id}

View File

@ -4,7 +4,7 @@
{{ form_start(form) }}
<h1 class="page-header">
{% if mode=="update" %}
Modification Annonces
Modification Annonces = {{alert.title}}
{% elseif mode=="submit" %}
Création Annonces
{% endif %}

View File

@ -11,50 +11,164 @@
<a href="{{ path('cadoles_portal_config_alert_submit') }}" class="btn btn-success">Ajouter une Annonce</a>
<a href="{{ path('cadoles_portal_config_alertcategory_submit') }}" class="btn btn-success">Ajouter une Catégorie</a>
</p>
<div id="listpending" class="panel panel-default">
<div class="panel-heading">
<h3 style="margin:0px">En Attente Publication</h2>
</div>
<div id="list" class="panel-group">
{% for alert in alerts %}
<div
class="
panel
list-item
alertcategory-{{ alert.alertcategory.id }}
{{ alert.isOnline ? "alertstatut-online" : ""}}
{{ alert.isPending ? "alertstatut-pending" : ""}}
{{ alert.isArchived ? "alertstatut-archived" : ""}}
{% for group in alert.groups %}{{ ' group-' ~ group.id }}{% endfor %}
{% for role in alert.roles %}{{ ' role-' ~ role }}{% endfor %}
"
data-alert-category-id="{{ alert.alertcategory.id }}"
data-alert-id="{{ alert.id }}"
style="background: {{ alert.alertcategory.color ? '#'~alert.alertcategory.color : '#'~color['main'] }};"
>
<div class="panel-heading" role="tab">
<a href="{{ path('cadoles_portal_config_alert_update', { id: alert.id }) }}" class="panel-heading-icon pull-left">
{% if alert.alertcategory.icon %}
<img height="25" src="/{{ alias }}/{{ alert.alertcategory.icon.label }}">
{% else %}
<img height="25" src="/{{ alias }}/uploads/icon/icon_megaphone.png">
{% endif %}
</a>
<a href="{{ path('cadoles_portal_config_alert_update', { id: alert.id }) }}">
<i class="fa fa-arrows-v" style="color: rgba(255,255,255,.5);"></i>
{{ alert.title }}
</a>
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#alert-{{ alert.id }}" aria-expanded="true" aria-controls="collapseOne" class="panel-heading-chevron pull-right">
<i class="fa fa-chevron-down"></i>
</a>
</div>
<div id="alert-{{ alert.id }}" class="panel-body panel-collapse collapse">
{{ alert.content|raw }}
</div>
<div class="panel-body">
<div class="list panel-group">
{% for alert in alerts if alert.isPending %}
<div
class="
panel
list-item
alertcategory-{{ alert.alertcategory.id }}
{{ alert.isOnline ? "alertstatut-online" : ""}}
{{ alert.isPending ? "alertstatut-pending" : ""}}
{{ alert.isArchived ? "alertstatut-archived" : ""}}
{% for group in alert.groups %}{{ ' group-' ~ group.id }}{% endfor %}
{% for role in alert.roles %}{{ ' role-' ~ role }}{% endfor %}
"
data-alert-category-id="{{ alert.alertcategory.id }}"
data-alert-id="{{ alert.id }}"
style="background: {{ alert.alertcategory.color ? '#'~alert.alertcategory.color : '#'~color['main'] }};"
>
<div class="panel-heading" role="tab">
<a href="{{ path('cadoles_portal_config_alert_update', { id: alert.id }) }}" class="panel-heading-icon pull-left">
{% if alert.alertcategory.icon %}
<img height="25" src="/{{ alias }}/{{ alert.alertcategory.icon.label }}">
{% else %}
<img height="25" src="/{{ alias }}/uploads/icon/icon_megaphone.png">
{% endif %}
</a>
<a href="{{ path('cadoles_portal_config_alert_update', { id: alert.id }) }}">
<i class="fa fa-arrows-v" style="color: rgba(255,255,255,.5);"></i>
{{ alert.title }}
</a>
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#alert-{{ alert.id }}" aria-expanded="true" aria-controls="collapseOne" class="panel-heading-chevron pull-right">
<i class="fa fa-chevron-down"></i>
</a>
</div>
<input type="hidden" name="alert_item[id][]" value="{{ alert.id }}" />
<div id="alert-{{ alert.id }}" class="panel-body panel-collapse collapse">
{{ alert.content|raw }}
</div>
<input type="hidden" name="alert_item[id][]" value="{{ alert.id }}" />
</div>
{% endfor %}
</div>
{% endfor %}
</div>
</div>
<div id="listonline" class="panel panel-default">
<div class="panel-heading">
<h3 style="margin:0px">En Ligne</h2>
</div>
<div class="panel-body">
<div id="listonline" class="list panel-group">
{% for alert in alerts if alert.isOnline %}
<div
class="
panel
list-item
alertcategory-{{ alert.alertcategory.id }}
{{ alert.isOnline ? "alertstatut-online" : ""}}
{{ alert.isPending ? "alertstatut-pending" : ""}}
{{ alert.isArchived ? "alertstatut-archived" : ""}}
{% for group in alert.groups %}{{ ' group-' ~ group.id }}{% endfor %}
{% for role in alert.roles %}{{ ' role-' ~ role }}{% endfor %}
"
data-alert-category-id="{{ alert.alertcategory.id }}"
data-alert-id="{{ alert.id }}"
style="background: {{ alert.alertcategory.color ? '#'~alert.alertcategory.color : '#'~color['main'] }};"
>
<div class="panel-heading" role="tab">
<a href="{{ path('cadoles_portal_config_alert_update', { id: alert.id }) }}" class="panel-heading-icon pull-left">
{% if alert.alertcategory.icon %}
<img height="25" src="/{{ alias }}/{{ alert.alertcategory.icon.label }}">
{% else %}
<img height="25" src="/{{ alias }}/uploads/icon/icon_megaphone.png">
{% endif %}
</a>
<a href="{{ path('cadoles_portal_config_alert_update', { id: alert.id }) }}">
<i class="fa fa-arrows-v" style="color: rgba(255,255,255,.5);"></i>
{{ alert.title }}
</a>
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#alert-{{ alert.id }}" aria-expanded="true" aria-controls="collapseOne" class="panel-heading-chevron pull-right">
<i class="fa fa-chevron-down"></i>
</a>
</div>
<div id="alert-{{ alert.id }}" class="panel-body panel-collapse collapse">
{{ alert.content|raw }}
</div>
<input type="hidden" name="alert_item[id][]" value="{{ alert.id }}" />
</div>
{% endfor %}
</div>
</div>
</div>
<div id="listarchived" class="panel panel-default">
<div class="panel-heading">
<h3 style="margin:0px">Archivées</h2>
</div>
<div class="panel-body">
<div id="listarchived" class="list panel-group">
{% for alert in alerts if alert.isArchived %}
<div
class="
panel
list-item
alertcategory-{{ alert.alertcategory.id }}
{{ alert.isOnline ? "alertstatut-online" : ""}}
{{ alert.isPending ? "alertstatut-pending" : ""}}
{{ alert.isArchived ? "alertstatut-archived" : ""}}
{% for group in alert.groups %}{{ ' group-' ~ group.id }}{% endfor %}
{% for role in alert.roles %}{{ ' role-' ~ role }}{% endfor %}
"
data-alert-category-id="{{ alert.alertcategory.id }}"
data-alert-id="{{ alert.id }}"
style="background: {{ alert.alertcategory.color ? '#'~alert.alertcategory.color : '#'~color['main'] }};"
>
<div class="panel-heading" role="tab">
<a href="{{ path('cadoles_portal_config_alert_update', { id: alert.id }) }}" class="panel-heading-icon pull-left">
{% if alert.alertcategory.icon %}
<img height="25" src="/{{ alias }}/{{ alert.alertcategory.icon.label }}">
{% else %}
<img height="25" src="/{{ alias }}/uploads/icon/icon_megaphone.png">
{% endif %}
</a>
<a href="{{ path('cadoles_portal_config_alert_update', { id: alert.id }) }}">
<i class="fa fa-arrows-v" style="color: rgba(255,255,255,.5);"></i>
{{ alert.title }}
</a>
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#alert-{{ alert.id }}" aria-expanded="true" aria-controls="collapseOne" class="panel-heading-chevron pull-right">
<i class="fa fa-chevron-down"></i>
</a>
</div>
<div id="alert-{{ alert.id }}" class="panel-body panel-collapse collapse">
{{ alert.content|raw }}
</div>
<input type="hidden" name="alert_item[id][]" value="{{ alert.id }}" />
</div>
{% endfor %}
</div>
</div>
</div>
</div>
@ -219,7 +333,11 @@
});
}
$( "#list" ).sortable({
if($(".alertstatut-pending").length==0) $("#listpending").hide();
if($(".alertstatut-online").length==0) $("#listonline").hide();
if($(".alertstatut-archived").length==0) $("#listarchived").hide();
$( ".list" ).sortable({
axis: "y",
placeholder: "list-item placeholder",
update: updateItems

View File

@ -4,7 +4,7 @@
{{ form_start(form) }}
<h1 class="page-header">
{% if mode=="update" %}
Modification Catégorie d'Annonce
Modification Catégorie d'Annonce = {{alertcategory.label}}
{% elseif mode=="submit" %}
Création Catégorie d'Annonce
{% endif %}

View File

@ -4,7 +4,7 @@
{{ form_start(form) }}
<h1 class="page-header">
{% if mode=="update" %}
Modification Blog
Modification Blog = {{entity.name}}
{% elseif mode=="submit" %}
Création Blog
{% endif %}

View File

@ -9,7 +9,7 @@
<p>
<a href="{{ path('cadoles_portal_config_blog_submit') }}" class="btn btn-success">Ajouter un Blog</a>
<span class="pull-right">
<label for="alluser" class="control-label">Afficher les utilisateurs</label>
<label id="labelalluser" for="alluser" class="control-label" style="margin-right:15px">Afficher les blogs créés par des utilisateurs</label>
<input id="alluser" name="alluser" type="checkbox" class="switch" onChange="switchalluser();">
</span>
</p>
@ -74,6 +74,12 @@
if (typeof table !== 'undefined') {
table.ajax.reload();
}
var check = $('#alluser').bootstrapSwitch('state');
if(check)
$("#labelalluser").html("Afficher les blogs non liés à un utilisateur");
else
$("#labelalluser").html("Afficher les blogs créés par des utilisateurs");
}
{% endblock %}

View File

@ -4,7 +4,7 @@
{{ form_start(form) }}
<h1 class="page-header">
{% if mode=="update" %}
Modification Calendrier
Modification Calendrier = {{entity.name}}
{% elseif mode=="submit" %}
Création Calendrier
{% endif %}

View File

@ -10,7 +10,7 @@
<a href="{{ path('cadoles_portal_config_calendar_submit') }}" class="btn btn-success">Ajouter un Calendrier</a>
<span class="pull-right">
<label for="alluser" class="control-label">Afficher les utilisateurs</label>
<label id="labelalluser" for="alluser" class="control-label" style="margin-right:15px">Afficher les calendriers créés par des utilisateurs</label>
<input id="alluser" name="alluser" type="checkbox" class="switch" onChange="switchalluser();">
</span>
</p>
@ -73,6 +73,12 @@
if (typeof table !== 'undefined') {
table.ajax.reload();
}
var check = $('#alluser').bootstrapSwitch('state');
if(check)
$("#labelalluser").html("Afficher les calendriers non liés à un utilisateur");
else
$("#labelalluser").html("Afficher les calendriers créés par des utilisateurs");
}
{% endblock %}

View File

@ -3,7 +3,7 @@
{% block pagewrapper %}
{{ form_start(form) }}
<h1>
Partage Calendrier
Partage Calendrier = {{entity.name}}
</h1>
<p>

View File

@ -288,7 +288,12 @@
{% if entity.id is defined %}
{% for calendar in calendars %}
{% if calendar.id==entity.id %}
showCalendar({{ calendar.id }}, {{ calendar.canadd }});
{% if access=="config" %}
{% set calendarcanadd=true %}
{% else %}
{% set calendarcanadd=calendar.canadd %}
{% endif %}
showCalendar({{ calendar.id }}, {{ calendarcanadd }});
{% endif %}
{% endfor %}
{% else %}

View File

@ -4,7 +4,7 @@
{{ form_start(form) }}
<h1 class="page-header">
{% if mode=="update" %}
Modification Flux
Modification Flux = {{flux.title}}
{% elseif mode=="submit" %}
Création Flux
{% endif %}
@ -17,7 +17,7 @@
<a href={{ path('cadoles_portal_config_flux_delete',{'id':flux.id}) }}
class="btn btn-danger pull-right"
data-method="delete" data-csrf="_token:{{ 'csrf' }}"
data-confirm="Êtes-vous sûr de vouloir supprimer cette annonce ?">
data-confirm="Êtes-vous sûr de vouloir supprimer ce flux ?">
Supprimer
</a>
{% endif %}

View File

@ -4,7 +4,7 @@
{{ form_start(form) }}
<h1 class="page-header">
{% if mode=="update" %}
Modification Item
Modification Item = {{item.title}}
{% elseif mode=="submit" %}
Création Item
{% endif %}
@ -49,6 +49,8 @@
{{ form_row(form.subtitle) }}
{{ form_row(form.essential) }}
{{ form_row(form.content) }}
{{ form_row(form.badgeurl) }}
{{ form_row(form.protected) }}
</div>
@ -65,6 +67,13 @@
{{ form_row(form.ssoitem) }}
{% endif %}
{% if form.clicksonde is defined %}
{{ form_row(form.clicksonde) }}
<div id="divclicksondeservice">
{{ form_row(form.clicksondeservice) }}
</div>
{% endif %}
{{ form_row(form.color) }}
<div id="diviconsel" class="col-md-12 text-left" style="height:140px; padding:20px; text-align:center; background-color: {{ item.color ? "#"~item.color : '#'~color['main'] }};">
@ -92,6 +101,10 @@
showhide();
});
$('#item_clicksonde').change(function() {
showhide();
});
function selIcon(idicon,label) {
$("#item_idicon").val(idicon);
$("#diviconsel img").remove();
@ -120,5 +133,13 @@
if($("#item_target").val()=="frame") {
$("#divhelp").show();
}
if($("#item_clicksonde").is(':checked')) {
$("#divclicksondeservice").show();
}
else {
$("#divclicksondeservice").hide();
}
}
{% endblock %}

View File

@ -4,7 +4,7 @@
{{ form_start(form) }}
<h1 class="page-header">
{% if mode=="update" %}
Modification Catégorie d'Item
Modification Catégorie d'Item = {{itemcategory.label}}
{% elseif mode=="submit" %}
Création Catégorie d'Item
{% endif %}

View File

@ -4,7 +4,7 @@
{{ form_start(form) }}
<h1 class="page-header">
{% if mode=="update" %}
Modification Charte
Modification Charte = {{notice.title}}
{% elseif mode=="submit" %}
Création Charte
{% endif %}

View File

@ -18,7 +18,7 @@
{% endfor %}
<form name="toread" method="post">
<input style="float:left; zoom:1.7;margin:5px 0px 0px 0px;" type="checkbox" id="readcharte" name="readcharte" value="0">
<span style="float:left; zoom: 1.7;margin-top: 3px;">Accepter la charte d'utilisation</span>
</form>
@ -37,7 +37,7 @@
function haveRead() {
if($("#readcharte").val()=="1") {
document.location.href ="{{ path("cadoles_portal_user_notice_haveread") }}";
document.location.href ="{{ path("cadoles_portal_user_notice_haveread",{id:id}) }}";
}
}
{% endblock %}

View File

@ -25,12 +25,17 @@
<div class="grid-item-content" style="background-color: {{ bookmark.color ? "#"~bookmark.color : '#'~colormain }};">
<a style="cursor:pointer" onClick="modBookmark({{ bookmark.id }})" class="item-update"><i style="color: #FFF" class="fa fa-file" title="Modifier le favori"></i></a>
{% set datasonde = "" %}
{% if bookmark.item and bookmark.item.clicksonde %}
{% set datasonde = "class='linktosonde' data-sondetitle='"~bookmark.item.title~"' data-sondeservice='"~bookmark.item.clicksondeservice~"'" %}
{% endif %}
{% if bookmark.target == 'frame' %}
<a class="linktosonde" data-sonde="{{ bookmark.title }}" style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.id }}','{{ bookmark.url }}')">
<a {{datasonde|raw}} style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.id }}','{{ bookmark.url }}')">
{% elseif bookmark.target == "_self" %}
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.target }}{% endif %}">
<a {{datasonde|raw}} href="{{ bookmark.url }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.target }}{% endif %}">
{% else %}
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url }}" target="{{ bookmark.target }}">
<a {{datasonde|raw}} href="{{ bookmark.url }}" target="{{ bookmark.target }}">
{% endif %}
<div class="item-link clearfix">
@ -110,12 +115,17 @@
{% endif %}
{% else %}
{% set datasonde = "" %}
{% if item.clicksonde %}
{% set datasonde = "class='linktosonde' data-sondetitle='"~item.title~"' data-sondeservice='"~item.clicksondeservice~"'" %}
{% endif %}
{% if item.target == 'frame' %}
<a class="linktosonde" data-sonde="{{ item.title }}" style="cursor:pointer" onClick="showFrameitem({{ item.id }},'{{ item.url }}')">
<a {{datasonde|raw}} style="cursor:pointer" onClick="showFrameitem({{ item.id }},'{{ item.url }}')">
{% elseif item.target == "_self" %}
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url }}" target="{% if access=="user" %}_top{% else %}{{ item.target }}{% endif %}">
<a {{datasonde|raw}} href="{{ item.url }}" target="{% if access=="user" %}_top{% else %}{{ item.target }}{% endif %}">
{% else %}
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url }}" target="{{ item.target }}">
<a {{datasonde|raw}} href="{{ item.url }}" target="{{ item.target }}">
{% endif %}
{% endif %}
@ -196,9 +206,10 @@
// Sur click item à sonder
{% if activate_widsonde %}
$( ".linktosonde" ).click(function() {
title=$(this).attr("data-sonde");
//$.getScript( "{{ widsonde_url }}?appli="+title );
});
title=$(this).attr("data-sondetitle");
service=$(this).attr("data-sondeservice");
EnvoleClickSondes($(this),title,service);
});
{% endif %}
});

View File

@ -86,7 +86,7 @@
<div class="caption">
<h3 style="text-align:center">Portail<br>Personnalisable</h3>
<p>Les utilisateurs du portail sont libres de créer leur propre page.</p>
<p>En fonction de la configuration et de leur profil, les utilisateurs du portail sont libres de créer leur propre page.</p>
<p>Les pages de l'utilisateur pouvant prendre plusieurs formes :
<ul>
<li>Une page pointant sur l'adresse d'un autre site</li>
@ -105,7 +105,7 @@
<div class="caption">
<h3 style="text-align:center">Portail<br>Evolutif</h3>
<p>NinthGate est évolutif dans le sens où, vous disposerez d'une large bibliothèque de widgets qui composeront vos pages</p>
<p>Ninegate est évolutif dans le sens où, vous disposerez d'une large bibliothèque de widgets qui composeront vos pages.</p>
<p>Voici quelques exemples :
<ul>
<li>Widget URL</li>
@ -133,8 +133,8 @@
<li>Distribuer {{ app.session.get('appname') }}</li>
</ul>
</p>
<p>NinthGate est développé dans le cadre du projet <a href='http://envole.ac-dijon.fr' target='_blank'>Envole</a>. Vous pourrez trouver le code source de NinthGate sur la <a href='https://dev-eole.ac-dijon.fr/projects/eole-eportail' target='_blank'>forge du projet</a></p>
<p>NinthGate est propulsé par la société <a href='http://cadoles.com' target='_blank'>Cadoles</a></p>
<p>Ninegate est développé dans le cadre du projet <a href='https://envole.ac-dijon.fr/ninegate/' target='_blank'>Envole</a>. Vous pourrez trouver le code source de Ninegate sur la <a href='https://dev-eole.ac-dijon.fr/projects/eole-eportail' target='_blank'>forge du projet</a></p>
<p>Ninegate est propulsé par la société <a href='https://cadoles.com' target='_blank'>Cadoles</a></p>
</div>
</div>
</div>

View File

@ -10,7 +10,7 @@
<a href="{{ path('cadoles_portal_config_page_submit') }}" class="btn btn-success">Ajouter une Page</a>
<span class="pull-right">
<label for="alluser" class="control-label">Afficher les utilisateurs</label>
<label id="labelalluser" for="alluser" class="control-label" style="margin-right:15px">Afficher les pages créées par des utilisateurs</label>
<input id="alluser" name="alluser" type="checkbox" class="switch" onChange="switchalluser();">
</span>
</p>
@ -43,6 +43,9 @@
$(".switch").bootstrapSwitch();
{% if not app.session.get('alluserpage') is empty %}
var state={{ app.session.get('alluserpage') }};
if(state)
$("#labelalluser").html("Afficher les pages non liées à un utilisateur");
$("#alluser").bootstrapSwitch('state',state);
{% endif %}
@ -76,6 +79,13 @@
if (typeof table !== 'undefined') {
table.ajax.reload();
}
var check = $('#alluser').bootstrapSwitch('state');
if(check)
$("#labelalluser").html("Afficher les pages non liées à un utilisateur");
else
$("#labelalluser").html("Afficher les pages créées par des utilisateurs");
}
{% endblock %}

View File

@ -13,7 +13,7 @@
{% endif %}
<li id="menupage-{{page.id}}" {{ isactive }} class="list-group-item {{isactive}}" onClick="$('#listgrouppage li').removeClass('active'); $(this).addClass('active') " style="cursor:pointer">
<a data-group="{{groupshared.id}}" onClick="$('#selgrouppages').modal('hide'); showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','group','{{forcereload}}','{{groupshared.id}}')">
<a data-group="{{groupshared.id}}" onClick="$('#selgrouppages').modal('hide'); showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','group','{{forcereload}}','{{groupshared.id}}','{{page.name}}')">
{% if page.fonticon %}
<i class="{{ page.fonticon }} fa-faw"></i>
{% else %}
@ -55,7 +55,7 @@
{% endif %}
<li id="menupage-{{page.id}}" {{ isactive }} style="cursor:pointer">
<a data-group="{{groupshared.id}}" onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','group','{{forcereload}}','{{groupshared.id}}')">
<a data-group="{{groupshared.id}}" onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','group','{{forcereload}}','{{groupshared.id}}','{{page.name}}')">
{% if page.fonticon %}
<i class="{{ page.fonticon }} fa-faw"></i>
{% else %}
@ -93,7 +93,7 @@
{% endif %}
<li id="menupage-{{page.id}}" {{isactive}} style="cursor:pointer">
<a onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','group','{{forcereload}}','{{groupshared.id}}')">
<a onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','group','{{forcereload}}','{{groupshared.id}}','{{page.name}}')">
{% if page.fonticon %}
<i class="{{ page.fonticon }} fa-faw"></i>
{% endif %}

View File

@ -26,11 +26,11 @@
<a style="cursor:pointer" onClick="modBookmark({{ bookmark.id }})" class="item-update"><i style="color: #FFF" class="fa fa-file" title="Modifier le favori"></i></a>
{% if bookmark.target == 'frame' %}
<a class="linktosonde" data-sonde="{{ bookmark.title }}" style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.id }}','{{ bookmark.url }}')">
<a style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.id }}','{{ bookmark.url }}')">
{% elseif bookmark.target == "_self" %}
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.target }}{% endif %}">
<a href="{{ bookmark.url }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.target }}{% endif %}">
{% else %}
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url }}" target="{{ bookmark.target }}">
<a href="{{ bookmark.url }}" target="{{ bookmark.target }}">
{% endif %}
<div class="item-link clearfix">
@ -111,11 +111,11 @@
{% else %}
{% if item.target == 'frame' %}
<a class="linktosonde" data-sonde="{{ item.title }}" style="cursor:pointer" onClick="showFrameitem({{ item.id }},'{{ item.url }}')">
<a style="cursor:pointer" onClick="showFrameitem({{ item.id }},'{{ item.url }}')">
{% elseif item.target == "_self" %}
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url }}" target="{% if access=="user" %}_top{% else %}{{ item.target }}{% endif %}">
<a href="{{ item.url }}" target="{% if access=="user" %}_top{% else %}{{ item.target }}{% endif %}">
{% else %}
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url }}" target="{{ item.target }}">
<a href="{{ item.url }}" target="{{ item.target }}">
{% endif %}
{% endif %}
@ -192,15 +192,6 @@
var grid = $('.grid').masonry(optiongrid);
}
});
// Sur click item à sonder
{% if activate_widsonde %}
$( ".linktosonde" ).click(function() {
title=$(this).attr("data-sonde");
//$.getScript( "{{ widsonde_url }}?appli="+title );
});
{% endif %}
});

View File

@ -13,9 +13,12 @@
{% set forcereload=page.toreload %}
{% endif %}
{% set usage="portal" %}
{% if loop.first %} {% set usage="accueil" %} {%endif %}
{% if entity.id is defined and page.id==entity.id %}
<li id="menupage-{{page.id}}" class="active" style="cursor:pointer">
<a onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','portal','{{forcereload}}')">
<a onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','{{usage}}','{{forcereload}}',null,'{{page.name}}')">
{% if page.fonticon %}
<i class="{{ page.fonticon }} fa-faw"></i>&nbsp;
{% endif %}
@ -24,7 +27,7 @@
</li>
{% else %}
<li id="menupage-{{page.id}}">
<a style="cursor:pointer" onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','portal','{{forcereload}}')">
<a style="cursor:pointer" onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','portal','{{forcereload}}',null,'{{page.name}}')">
{% if page.fonticon %}
<i class="{{ page.fonticon }} fa-faw"></i>&nbsp;
{% endif %}
@ -45,7 +48,7 @@
{% if entity.id is defined and page.id==entity.id %}
<li id="menupage-{{page.id}}" class="active" style="cursor:pointer">
<a onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','user','{{forcereload}}')">
<a onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','user','{{forcereload}}',null,'{{page.name}}')">
{% if page.fonticon %}
<i class="{{ page.fonticon }} fa-faw"></i>
{% else %}
@ -56,7 +59,7 @@
</li>
{% else %}
<li id="menupage-{{page.id}}">
<a style="cursor:pointer" onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','user','{{forcereload}}')">
<a style="cursor:pointer" onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','user','{{forcereload}}',null,'{{page.name}}')">
{% if page.fonticon %}
<i class="{{ page.fonticon }} fa-faw"></i>
{% else %}
@ -91,6 +94,8 @@
<div id="menupageaction">
<a id="menuname" style="cursor:pointer;font-size:80%" href=""></a>
{% if canadd %}
<a id="menusubmit" style="cursor:pointer" onclick="submitPage()" title='Ajouter une page'><i class='fa fa-plus fa-fw'></i></a>
{% endif %}
@ -256,20 +261,22 @@
{% if gotoroute is empty %}
{% for page in pagesadmin %}
{% if page.id==entity.id %}
showPage({{ page.id }}, {{ page.pagecategory.id }},'{{ page.canupdate }}','portal');
{% set usage="portal" %}
{% if loop.first %} {% set usage="accueil" %} {%endif %}
showPage({{ page.id }}, {{ page.pagecategory.id }},'{{ page.canupdate }}','{{usage}}',false,null,'{{page.name}}');
{% endif %}
{% endfor %}
{% for page in pagesuser %}
{% if page.id==entity.id %}
showPage({{ page.id }}, {{ page.pagecategory.id }},'{{ page.canupdate }}','user');
showPage({{ page.id }}, {{ page.pagecategory.id }},'{{ page.canupdate }}','user',false,null,'{{page.name}}');
{% endif %}
{% endfor %}
{% for groupshared in groupsshared %}
{% for page in groupshared.pagesshared %}
{% if page.id==entity.id %}
showPage({{ page.id }}, {{ page.pagecategory.id }},'{{ page.canupdate }}','group',true,{{groupshared.id}});
showPage({{ page.id }}, {{ page.pagecategory.id }},'{{ page.canupdate }}','group',true,{{groupshared.id}},'{{page.name}}');
{% endif %}
{% endfor %}
{% endfor %}
@ -306,54 +313,11 @@
order: [[ 1, "asc" ]],
});
{% if app.user %}
{% if app.user and app.session.get("timerefreshnotif") > 0%}
setInterval(function(){
loadmsgCounter()
}, 10000);
}, {{(app.session.get("timerefreshnotif")*1000)}});
{% endif %}
// Init socket de counter
/* Désactiver car il semble préférable de faire un appel ajax régulier plutot qu'ouvrir un channel websocket
{% if websocket_activate %}
var _WS_URI = "wss://{{ gos_web_socket_server_host }}:{{ gos_web_socket_server_port }}";
var webSocket = WS.connect(_WS_URI);
webSocket.on("socket/connect", function (session) {
// The callback function in "subscribe" is called everytime an event is published in that channel.
session.subscribe("websocket/counter", function (uri, payload) {
if(payload.log) {
console.log("Received message", payload.log);
}
if(payload.alert) {
alert(payload.alert);
}
{% if app.user %}
if(payload.from!="{{app.user.id}}") {
menu=$("a[data-group='"+payload.group+"']");
if(menu.length) {
if(payload.add) {
console.log("Ajout counter pour group "+payload.group+" by "+payload.from);
if(menu.children(".badge").length) {
menu.children(".badge").html(+(menu.children(".badge").html())+1);
}
else menu.append("<span id='badge-"+payload.group+"' class='badge'>1</span");
}
}
}
{% endif %}
});
$(document).on('click', '#refreshcounter', function(){
{% if app.user %}
event=$(this).data("event");
event.userid={{app.user.id}}
session.publish("websocket/counter", event);
{% endif %}
});
});
{% endif %}
*/
});
$(window).resize(function() {
@ -406,7 +370,7 @@
}
// Affichages des pages
function showPage(id,catid,canupdate,usage,forcereload,groupid) {
function showPage(id,catid,canupdate,usage,forcereload,groupid,pagename) {
// Sauvegarder la page en cours
idpage=id;
@ -449,6 +413,10 @@
$("#badge-"+groupid).remove()
}
// Nom de la page
console.log(pagename);
$("#menuname").html(pagename);
// Cacher les actions possibles sur la page
$("#menuupdate").hide();
$("#menushare").hide();
@ -578,19 +546,7 @@
$(location).attr('href', url);
};
function loadmsgCounter() {
/*
menu=$("a[data-group='"+payload.group+"']");
if(menu.length) {
if(payload.add) {
console.log("Ajout counter pour group "+payload.group+" by "+payload.from);
if(menu.children(".badge").length) {
menu.children(".badge").html(+(menu.children(".badge").html())+1);
}
else menu.append("<span id='badge-"+payload.group+"' class='badge'>1</span");
}
}
*/
function loadmsgCounter() {
$.ajax({
method: "POST",
@ -611,40 +567,5 @@
});
}
});
/*
$.ajax({
method: "GET",
url: "process.php?process=process-notifuser.php",
success: function(data, dataType)
{
if(data.trim()!="") {
var result=data.split(",");
if(parseInt(result[0])) {
$("#notif").show();
if(result[1]!=0) {
$("#notifbadge").html(result[1]);
$("#notifbadge").css('display', 'inline-block');
}
else {
$("#notifbadge").hide();
}
}
else $("#notifbadge").hide();
}
else {
$("#notif").hide();
}
}
});
*/
}
// Permet de déclencher l'évenement de modification des counter
/* Plus nécessaire on passe par de l'ajax
function counter(event) {
$('#refreshcounter').data("event",event);
$('#refreshcounter').click();
};
*/
{% endblock %}

View File

@ -4,7 +4,7 @@
{{ form_start(form) }}
<h1 class="page-header">
{% if mode=="update" %}
Modification Page Editeur
Modification Page Editeur = {{entity.name}}
{% elseif mode=="submit" %}
Création Page Editeur
{% endif %}

View File

@ -3,7 +3,7 @@
{% block pagewrapper %}
{{ form_start(form) }}
<h1 class="page-header">
Modification Page {{ entity.pagecategory.name}}
Modification Page {{ entity.pagecategory.name}} = {{entity.name}}
</h1>
<p>

View File

@ -4,7 +4,7 @@
{{ form_start(form) }}
<h1 class="page-header">
{% if mode=="update" %}
Modification Page URL
Modification Page URL = {{entity.name}}
{% elseif mode=="submit" %}
Création Page URL
{% endif %}

View File

@ -142,9 +142,9 @@
{{ form_start(form) }}
<h1 class="page-header">
{% if mode=="update" %}
Modification Page Widget
Modification Page Widget = {{entity.name}}
{% elseif mode=="updatetemplate" %}
Modification Modèle de Page
Modification Modèle de Page = {{entity.name}}
{% elseif mode=="submit" %}
Création Page Widget
{% endif %}

View File

@ -263,6 +263,18 @@
}
});
// badgeurl item
$(".itembadgeurl").each(function() {
mybadge=$(this);
$.ajax({
method: "GET",
url: $(this).data("url"),
success: function(data) {
mybadge.append(data);
}
});
});
// Création des slick
slick();
@ -277,8 +289,9 @@
// Sur click item à sonder
{% if activate_widsonde %}
$( ".linktosonde" ).click(function() {
title=$(this).attr("data-sonde");
//$.getScript( "{{ widsonde_url }}?appli="+title );
title=$(this).attr("data-sondetitle");
service=$(this).attr("data-sondeservice");
EnvoleClickSondes($(this),title,service);
});
{% endif %}
@ -391,6 +404,31 @@
}
}
// Changer widget
function changeWidget(idwidget,key,value) {
{% if app.user %}
if(key=="modedesktop") {
value=value+1;
console.log(value);
if(value==4) value=0;
console.log(value);
}
$.ajax({
method: "POST",
url: "{{ path('cadoles_core_user_preference') }}",
data: {
id:idwidget,
key:key,
value:value
},
success: function() {
location.reload();
}
});
{% endif %}
}
// Aggrandir widget
function bigWidget(idwidget) {
var url="{{ path('cadoles_portal_'~access~'_page_view',{id:entity.id,group:group,usage:usage,by:mode,look:'list',selwidget:'xx'})}}";

View File

@ -68,7 +68,7 @@
</div>
<div class="panel-body">
{{ alert.content|raw }}
<div class="widget-ckeditor">{{ alert.content|raw }}</div>
{% if not alert.items is empty %}
{% if app.user %}
@ -95,11 +95,11 @@
{% else %}
{% if item.target == 'frame' %}
<a class="linktosonde" data-sonde="{{ item.title }}" style="cursor:pointer" onClick="showFrameitem({{ item.id }},'{{ item.url|replace({'#login#': username}) }}')">
<a style="cursor:pointer" onClick="showFrameitem({{ item.id }},'{{ item.url|replace({'#login#': username}) }}')">
{% elseif item.target == "_self" %}
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ item.target }}{% endif %}">
<a href="{{ item.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ item.target }}{% endif %}">
{% else %}
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url|replace({'#login#': username}) }}" target="{{ item.target }}">
<a href="{{ item.url|replace({'#login#': username}) }}" target="{{ item.target }}">
{% endif %}
{% endif %}

View File

@ -83,7 +83,7 @@
<div class="grid-item {{ stylegrid }}" data-idcategory="{{ item.itemcategory.id }}" data-iditem="{{ item.id }}">
<div class="grid-item-content" style="background-color: {{ item.color ? "#"~item.color : '#'~colormain }};">
<a class="linktosonde" data-sonde="{{ item.itemcategory.label }}" href="{{ item.url }}" target="_blank">
<a href="{{ item.url }}" target="_blank">
<div class="item-link clearfix">

View File

@ -87,11 +87,11 @@
{% endif %}
{% if bookmark.target == 'frame' %}
<a class="linktosonde" data-sonde="{{ bookmark.title }}" style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.id }}','{{ bookmark.url|replace({'#login#': username}) }}')">
<a style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.id }}','{{ bookmark.url|replace({'#login#': username}) }}')">
{% elseif bookmark.target == "_self" %}
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.target }}{% endif %}">
<a href="{{ bookmark.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.target }}{% endif %}">
{% else %}
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url|replace({'#login#': username}) }}" target="{{ bookmark.target }}">
<a href="{{ bookmark.url|replace({'#login#': username}) }}" target="{{ bookmark.target }}">
{% endif %}
<div class="item-link clearfix">

View File

@ -109,7 +109,7 @@
<div class="grid-item {{ stylegrid }} feed flux-{{ feed.fluxid }}">
<div class="grid-item-content" style="{{ stylecolor }};">
<a class="linktosonde" data-sonde="Flux = {{ feed.fluxtitle }}" href="{{ feed.link }}" target="_blank">
<a href="{{ feed.link }}" target="_blank">
<div class="item-link clearfix">
{% if feed.image is not empty %}
<div class="grid-item-logo">

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