76 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
101 changed files with 1481 additions and 494 deletions

View File

@ -2,6 +2,7 @@
<creole> <creole>
<files> <files>
<file filelist='ninegate' name='/etc/eole/eole-db.d/ninegate-db.yml' rm='True' mkdir='True'/> <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> </files>
<containers> <containers>
@ -9,6 +10,7 @@
<package>ninegate-apps</package> <package>ninegate-apps</package>
<file filelist='ninegate' name='/etc/apache2/sites-available/ninegate' source='ninegate-apache.conf' rm="True"/> <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/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/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" /> <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'/> <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 method='apache' servicelist='ninegate'>ninegate</service>
<service servicelist="ninegate">wssninegate</service>
<service_access service='ninegate_websocket'>
<port port_type="SymLinkOption">ninegate_websocket_portexterne</port>
</service_access>
</container> </container>
</containers> </containers>
<variables> <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='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_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'/> <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="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_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_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_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_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> <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_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_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_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> <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 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='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> <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='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='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_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='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> <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_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' /> <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 --> <!-- DOKUWIKI -->
<variable type="oui/non" name='ninegate_activate_widdokuwiki' description='Activer Dokuwiki' mandatory='True'> <variable type="oui/non" name='ninegate_activate_widdokuwiki' description='Activer Dokuwiki' mandatory='True'>
<value>non</value> <value>non</value>
@ -213,7 +219,6 @@
<variable type="oui/non" name='ninegate_activate_widead' description='Activer EAD' mandatory='True'> <variable type="oui/non" name='ninegate_activate_widead' description='Activer EAD' mandatory='True'>
<value>non</value> <value>non</value>
</variable> </variable>
<variable type='string' name='ninegate_widead_url' description='URL complète de votre EAD' mandatory='True' />
<!-- EOE --> <!-- EOE -->
<variable type="oui/non" name='ninegate_activate_wideoe' description='Activer EOE' mandatory='True'> <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_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' /> <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 --> <!-- EMAIL -->
<variable type='string' name='ninegate_noreply' description='Adresse mail utilisé pour le noreply' mandatory='True' /> <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'> <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_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_smtpencryption' description='Type Encryptage du serveur SMTP' />
<variable type='string' name='ninegate_smtpauthmode' description='Mode Authentification du serveur SMTP' /> <variable type='string' name='ninegate_smtpauthmode' description='Mode Authentification du serveur SMTP' />
</family>
<family name='EoleDB' icon='database' mode='expert'>
<!-- EOLEDB --> <!-- EOLEDB -->
<variable type='string' name='ninegate_db_mode' description='Serveur de bases de données à utiliser' mode='expert'/> <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'/> <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_portal">Paramètres associés aux modules à activer</separator>
<separator name="ninegate_activate_widadminer">Paramètres associés à Adminer</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_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_widdokuwiki">Paramètres associés à Dokuwiki</separator>
<separator name="ninegate_activate_wideconnect">Paramètres associés à eConnect</separator> <separator name="ninegate_activate_wideconnect">Paramètres associés à eConnect</separator>
<separator name="ninegate_activate_widead">Paramètres associés à EAD</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_widroundcube">Paramètres associés à Roundcube</separator>
<separator name="ninegate_activate_widsacoche">Paramètres associés à Sacoche</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_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_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> </separators>
</variables> </variables>
@ -455,6 +448,11 @@
<target type='variable'>activer_ninegate</target> <target type='variable'>activer_ninegate</target>
</condition> </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'> <condition name='hidden_if_in' source='activer_ninegate'>
<param>non</param> <param>non</param>
@ -466,6 +464,7 @@
<target type='variable'>ninegate_ssoreqgroup</target> <target type='variable'>ninegate_ssoreqgroup</target>
<target type='variable'>ninegate_ssosynchroitem</target> <target type='variable'>ninegate_ssosynchroitem</target>
<target type='variable'>ninegate_ssoreqitem</target> <target type='variable'>ninegate_ssoreqitem</target>
<target type='variable'>ninegate_typesso</target>
<target type='variable'>ninegate_syncldap</target> <target type='variable'>ninegate_syncldap</target>
<target type='variable'>ninegate_ldaptemplate</target> <target type='variable'>ninegate_ldaptemplate</target>
@ -530,6 +529,7 @@
<target type='variable'>ninegate_dbpass</target> <target type='variable'>ninegate_dbpass</target>
<target type='filelist'>ninegate</target> <target type='filelist'>ninegate</target>
<target type='filelist'>ninegate_nginx</target>
<target type='filelist'>ninegate-migration</target> <target type='filelist'>ninegate-migration</target>
<target type='servicelist'>ninegate</target> <target type='servicelist'>ninegate</target>
@ -568,6 +568,14 @@
<target type='variable'>ninegate_ssoreqitem</target> <target type='variable'>ninegate_ssoreqitem</target>
</condition> </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'> <condition name='hidden_if_in' source='ninegate_syncldap'>
<param>non</param> <param>non</param>
@ -717,6 +725,7 @@
<target type='variable'>ninegate_activate_widadminer</target> <target type='variable'>ninegate_activate_widadminer</target>
<target type='variable'>ninegate_activate_widbalado</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_widdokuwiki</target>
<target type='variable'>ninegate_activate_wideconnect</target> <target type='variable'>ninegate_activate_wideconnect</target>
<target type='variable'>ninegate_activate_widead</target> <target type='variable'>ninegate_activate_widead</target>
@ -766,6 +775,7 @@
<param>non</param> <param>non</param>
<target type='variable'>ninegate_widbalado_syncenvole</target> <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_widgepi_syncenvole</target>
<target type='variable'>ninegate_widlimesurvey_syncenvole</target> <target type='variable'>ninegate_widlimesurvey_syncenvole</target>
<target type='variable'>ninegate_widmoodle_syncenvole</target> <target type='variable'>ninegate_widmoodle_syncenvole</target>
@ -784,30 +794,12 @@
<condition name='hidden_if_in' source='poshprofil_typesynchro'> <condition name='hidden_if_in' source='poshprofil_typesynchro'>
<param>Annuaire</param> <param>Annuaire</param>
<target type='variable'>ninegate_widbalado_syncenvole</target> <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_widgepi_syncenvole</target>
<target type='variable'>ninegate_widnextcloud_syncenvole</target> <target type='variable'>ninegate_widnextcloud_syncenvole</target>
<target type='variable'>ninegate_widsacoche_syncenvole</target> <target type='variable'>ninegate_widsacoche_syncenvole</target>
</condition> </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 --> <!-- AFFICHAGE EN FONCTION DU WIDGET ADMINER -->
<fill name='calc_multi_condition' target='ninegate_activate_widadminer'> <fill name='calc_multi_condition' target='ninegate_activate_widadminer'>
<param>oui</param> <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'> <fill name='calc_multi_condition' target='ninegate_activate_widbalado'>
<param>oui</param> <param>oui</param>
<param type='eole' name='condition_1' hidden='False'>activer_balado</param> <param type='eole' name='condition_1' hidden='False'>activer_balado</param>
@ -863,6 +855,39 @@
</fill> </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 --> <!-- AFFICHAGE EN FONCTION DU WIDGET DOKUWIKI -->
<fill name='calc_multi_condition' target='ninegate_activate_widdokuwiki'> <fill name='calc_multi_condition' target='ninegate_activate_widdokuwiki'>
<param>oui</param> <param>oui</param>
@ -919,18 +944,6 @@
<param name='default_mismatch'>non</param> <param name='default_mismatch'>non</param>
</fill> </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 --> <!-- AFFICHAGE EN FONCTION DU WIDGET EOE -->
<fill name='calc_multi_condition' target='ninegate_activate_wideoe'> <fill name='calc_multi_condition' target='ninegate_activate_wideoe'>
<param>oui</param> <param>oui</param>
@ -1651,6 +1664,10 @@
<param>['CAS', 'SAML', 'SQL', 'LDAP']</param> <param>['CAS', 'SAML', 'SQL', 'LDAP']</param>
</check> </check>
<check name='valid_enum' target='ninegate_typesso'>
<param>['client', 'proxy']</param>
</check>
<check name='valid_enum' target='ninegate_moderegistration'> <check name='valid_enum' target='ninegate_moderegistration'>
<param>['none', 'byuser', 'byadmin']</param> <param>['none', 'byuser', 'byadmin']</param>
</check> </check>

View File

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

View File

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

View File

@ -30,7 +30,10 @@ class SecurityController extends Controller
// Init Client CAS // Init Client CAS
\phpCAS::setDebug("/var/log/phpcas/phpCAS-ninegate.log"); \phpCAS::setDebug("/var/log/phpcas/phpCAS-ninegate.log");
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); @\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(); \phpCAS::setNoCasServerValidation();
@ -75,7 +78,9 @@ class SecurityController extends Controller
if($masteridentity=="LDAP") { if($masteridentity=="LDAP") {
// Normalement la synchronisation des comptes aurait du générer le compte en base c'est donc pas normal // 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 // 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") { if($masteridentity=="SSO") {
@ -86,8 +91,10 @@ class SecurityController extends Controller
// On calcule le niveau01 de l'utilisateur // On calcule le niveau01 de l'utilisateur
$niveau01=$em->getRepository('CadolesCoreBundle:Niveau01')->calculateNiveau01($attributes); $niveau01=$em->getRepository('CadolesCoreBundle:Niveau01')->calculateNiveau01($attributes);
if(!$niveau01) if(!$niveau01) {
throw $this->createNotFoundException('Permission denied. No Organisation Niveau 01 match'); $niveau01=$em->getRepository('CadolesCoreBundle:Niveau01')->findAll()[0];
//throw $this->createNotFoundException('Permission denied. No Organisation Niveau 01 match');
}
$user->setUsername($username); $user->setUsername($username);
$user->setEmail($email); $user->setEmail($email);
@ -195,7 +202,10 @@ class SecurityController extends Controller
public function logoutAction() { public function logoutAction() {
// Init Client CAS // Init Client CAS
\phpCAS::setDebug(false); \phpCAS::setDebug(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'), true); @\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(); \phpCAS::setNoCasServerValidation();
@ -209,7 +219,10 @@ class SecurityController extends Controller
// Init Client CAS // Init Client CAS
\phpCAS::setDebug("/var/log/phpcas/phpCAS-ninegate.log"); \phpCAS::setDebug("/var/log/phpcas/phpCAS-ninegate.log");
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); @\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(); \phpCAS::setNoCasServerValidation();
@ -295,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 path: /test
defaults: { _controller: CadolesCASBundle:Security: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_flux',1);
$this->addModeration($profil,'cadoles_portal_config_notice',1); $this->addModeration($profil,'cadoles_portal_config_notice',1);
$this->addModeration($profil,'cadoles_portal_config_icon',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_synclimesurvey',0);
$this->addModeration($profil,'cadoles_portal_config_syncmoodle',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_portal_config_syncwordpress',0);
$this->addModeration($profil,'cadoles_core_config_statistic',1); $this->addModeration($profil,'cadoles_core_config_statistic',1);
$this->addModeration($profil,'cadoles_core_config_mailing',1); $this->addModeration($profil,'cadoles_core_config_mailing',1);
$this->addModeration($profil,'cadoles_core_config_importuser',0); $this->addModeration($profil,'cadoles_core_config_importuser',0);

View File

@ -380,6 +380,46 @@ class PurgeFileCommand extends Command
if($result) $find=true; 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 // Si pas trouvé on supprime
if(!$find) { if(!$find) {
$this->writeln($name); $this->writeln($name);

View File

@ -156,6 +156,44 @@ class ScriptCommand extends Command
$this->writeln(""); $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; return 1;
} }
@ -354,7 +392,75 @@ class ScriptCommand extends Command
} }
} }
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)))"; $ldapfilter="(|(&(uid=*)(ENTPersonProfils=enseignant))(&(uid=*)(typeadmin=0))(&(uid=*)(typeadmin=2)))";
$label="PROFIL - Enseignants"; $label="PROFIL - Enseignants";
$this->writeln(" - $label"); $this->writeln(" - $label");
if(!$simulate) $this->addmodGroup($label,$ldapfilter,$scribe_group); if(!$simulate) $this->addmodGroup($label,$ldapfilter,false);
// Responsables // Responsables
$ldapfilter="(&(uid=*)(ENTPersonProfils=responsable))"; $ldapfilter="(&(uid=*)(ENTPersonProfils=responsable))";
@ -140,7 +140,20 @@ class SynchroCommand extends Command
$ldapfilter="(&(uid=*)(ENTPersonProfils=administratif))"; $ldapfilter="(&(uid=*)(ENTPersonProfils=administratif))";
$label="PROFIL - Administratifs"; $label="PROFIL - Administratifs";
$this->writeln(" - $label"); $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 // Classes
$this->writeln(''); $this->writeln('');
@ -155,6 +168,32 @@ class SynchroCommand extends Command
if(!$simulate) $this->addmodGroup($label,$ldapfilter,$scribe_group); 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 // Options
$this->writeln(''); $this->writeln('');
$this->writeln('== OPTIONS =========================================='); $this->writeln('== OPTIONS ==========================================');

View File

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

View File

@ -331,8 +331,15 @@ class PermmodoprofilController extends Controller
$this->addModeration($profil,'cadoles_portal_config_flux',1); $this->addModeration($profil,'cadoles_portal_config_flux',1);
$this->addModeration($profil,'cadoles_portal_config_notice',1); $this->addModeration($profil,'cadoles_portal_config_notice',1);
$this->addModeration($profil,'cadoles_portal_config_icon',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_synclimesurvey',0);
$this->addModeration($profil,'cadoles_portal_config_syncmoodle',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_portal_config_syncwordpress',0);
$this->addModeration($profil,'cadoles_core_config_statistic',1); $this->addModeration($profil,'cadoles_core_config_statistic',1);
$this->addModeration($profil,'cadoles_core_config_mailing',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") { elseif($route=="cadoles_portal_user_page_view") {
if($usage=="group") $usagesonde="collaboratif"; if($usage=="group") $usagesonde="collaboratif";
elseif($usage=="user") $usagesonde="collaboratif"; elseif($usage=="user") $usagesonde="collaboratif";
elseif($usage=="accueil") $usagesonde="accueil";
else $usagesonde="portail"; else $usagesonde="portail";
} }
elseif(stripos($route,"cadoles_portal_user_calendar")!==false) elseif(stripos($route,"cadoles_portal_user_calendar")!==false)

View File

@ -842,7 +842,7 @@ class UserController extends Controller
public function viewAction($id, Request $request) public function viewAction($id, Request $request)
{ {
$user=$this->getData($id); $user=$this->getData($id);
$fields=$this->getDefaultDatauser(); $fields=$this->getDefaultDatausers();
return $this->render('CadolesCoreBundle:User:view.html.twig', [ return $this->render('CadolesCoreBundle:User:view.html.twig', [
'useheader' => false, 'useheader' => false,
@ -1294,7 +1294,7 @@ class UserController extends Controller
$toupdate=true; $toupdate=true;
$preference[$key][$id]=$value; $preference[$key][$id]=$value;
} }
if($value&&$preference[$key][$id]!=$value) { if($preference[$key][$id]!=$value) {
$toupdate=true; $toupdate=true;
$preference[$key][$id]=$value; $preference[$key][$id]=$value;
} }
@ -1457,6 +1457,75 @@ class UserController extends Controller
$fields["visite"]["perm"]=1; $fields["visite"]["perm"]=1;
$fields["visite"]["label"]="Visite"; $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; return $fields;
} }

View File

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

View File

@ -52,7 +52,7 @@ class MailType extends AbstractType
'mapped'=> false, 'mapped'=> false,
'required' => false, 'required' => false,
'attr' => array("class" => "form-control", "style" => "margin-bottom:15px"), '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, 'mapped'=> false,
'required' => true, 'required' => true,
'attr' => array("class" => "form-control", "style" => "margin-bottom:15px"), '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: cadoles.core.session.listener:
public: true public: true
class: Cadoles\CoreBundle\EventListener\sessionListener 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: tags:
- { name: kernel.event_listener, event: kernel.request, method: onDomainParse } - { name: kernel.event_listener, event: kernel.request, method: onDomainParse }

View File

@ -60,6 +60,17 @@ body {
height: 20px; height: 20px;
} }
@media (max-width: 991px) {
.header .title{
font-size: 30px;
}
.header small {
font-size:14px;
top: 25px;
}
}
@media (max-width: 767px) { @media (max-width: 767px) {
.header { display: none } .header { display: none }
#menu-header { display: none } #menu-header { display: none }
@ -110,6 +121,25 @@ body {
margin-left: 10px; 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) { @media (max-width: 767px) {
.navbar-default .navbar-header #title { .navbar-default .navbar-header #title {
display: none; display: none;
@ -337,12 +367,12 @@ span.item-drag {
.grid-item .item-link img { .grid-item .item-link img {
display: block; display: block;
max-width: 100%; margin: 10px;
//max-height: 110px; height: 105px;
height: auto;
} }
.grid-item .grid-item-title { .grid-item .grid-item-title {
display: inline-block; display: inline-block;
vertical-align: top; vertical-align: top;
@ -735,6 +765,11 @@ a.item-heart {
max-width: 100%; max-width: 100%;
} }
.widget-ckeditor img {
height:auto !important;
}
.frameitem { .frameitem {
position: absolute; position: absolute;
right: 0px; 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 .avatar {height: 25px; }
.header.reduit #navbar-nameuser
{
top: 14px;
right: 210px;
}
/* ===================== FIN MODE REDUIT ==========================*/ /* ===================== FIN MODE REDUIT ==========================*/
/* fix defaut d'affichage sur toogle switch */ /* fix defaut d'affichage sur toogle switch */
@ -57,7 +63,11 @@ body {
background: linear-gradient(180deg, var(--main), white,50%); 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; --colorbody: #ffffff;
--main: #169b62; --main: #169b62;
--mainR: 22; --mainR: 22;
@ -77,7 +87,7 @@ body.eleves, body.grp-National_1 {
/* responsables #MAUVE #7D4E5B /* responsables #MAUVE #7D4E5B
*/ */
body.responsables, body.grp-National_2 { body.responsables, body.grp-National_2,body.grp-responsables {
--colorbody: #ffffff; --colorbody: #ffffff;
--main: #7d4e5b; --main: #7d4e5b;
--mainR: 125; --mainR: 125;
@ -96,7 +106,7 @@ body.responsables, body.grp-National_2 {
/* professeurs, enseignants1d #BLEU1 #5770BE */ /* 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; --colorbody: #ffffff;
--main: #5770be; --main: #5770be;
--mainR: 87; --mainR: 87;
@ -114,7 +124,7 @@ body.professeurs, body.enseignants1d, body.grp-National_3 {
} }
/* administratifs, admin #ORANGE #FF6F4C */ /* 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; --colorbody: #ffffff;
--main: #ff6f4c; --main: #ff6f4c;
--mainR: 255; --mainR: 255;
@ -278,7 +288,9 @@ div.header > a.title > span {
} }
.nav.navbar-top-links.navbar-right > li a:hover { .nav.navbar-top-links.navbar-right > li a:hover {
color: var(--fontcolorhover, white) !important; 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> <form>
<h1 class="page-header">Configuration Générale</h1> <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 panel-primary">
<div class="panel-heading"> <div class="panel-heading">
<i class="fa fa-table fa-fw"></i> Liste des Configurations <i class="fa fa-table fa-fw"></i> Liste des Configurations

View File

@ -2,7 +2,7 @@
{% block pagewrapper %} {% block pagewrapper %}
{{ form_start(form) }} {{ 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> {{ form_widget(form.submit) }} <a class="btn btn-default" href={{ path('cadoles_core_config_commun') }}>Annuler</a>

View File

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

View File

@ -6,9 +6,9 @@
{% set permannu = app.session.get('permannu') %} {% set permannu = app.session.get('permannu') %}
{% if fgheader %} {% 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 %} {% 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 %} {% 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") %} {% 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) }} {{ form_start(form) }}
<h1 class="page-header"> <h1 class="page-header">
{% if mode=="update" %} {% if mode=="update" %}
Modification {{ labelniveau01 }} Modification {{ labelniveau01 }} = {{niveau01.label}}
{% elseif mode=="submit" %} {% elseif mode=="submit" %}
Création {{ labelniveau01 }} Création {{ labelniveau01 }}
{% elseif mode=="delete" %} {% elseif mode=="delete" %}
Suppression {{ labelniveau01 }} Suppression {{ labelniveau01 }} = {{niveau01.label}}
{% endif %} {% endif %}
</h1> </h1>

View File

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

View File

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

View File

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

View File

@ -5,7 +5,7 @@
<div class="panel panel-primary"> <div class="panel panel-primary">
<div class="panel-heading"> <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>
<div class="panel-body"> <div class="panel-body">
@ -15,7 +15,7 @@
<div class="panel panel-primary"> <div class="panel panel-primary">
<div class="panel-heading"> <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>
<div class="panel-body"> <div class="panel-body">
@ -27,7 +27,7 @@
<div class="col col-md-6"> <div class="col col-md-6">
<div class="panel panel-primary"> <div class="panel panel-primary">
<div class="panel-heading"> <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>
<div class="panel-body"> <div class="panel-body">
@ -39,7 +39,7 @@
<div class="col col-md-6"> <div class="col col-md-6">
<div class="panel panel-primary"> <div class="panel panel-primary">
<div class="panel-heading"> <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>
<div class="panel-body"> <div class="panel-body">

View File

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

View File

@ -42,10 +42,10 @@ td { font-size: 10px; }
{% if viewniveau02 %} {% if viewniveau02 %}
<th class="no-sort {% if fields["niveau02"] is defined and fields["niveau02"].perm==0 %}no-visible{% endif %}">{{ labelniveau02 }}</th> <th class="no-sort {% if fields["niveau02"] is defined and fields["niveau02"].perm==0 %}no-visible{% endif %}">{{ labelniveau02 }}</th>
{% endif %} {% 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["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["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> <th class="{% if fields["role"] is defined and fields["role"].perm==0 %}no-visible{% endif %}">Rôle</th>
</tr> </tr>
</thead> </thead>

View File

@ -19,8 +19,11 @@
{%if user.job and not fields["job"]["perm"]==0 %}<b>{{fields["position"]["job"]}}</b> = {{ user.job }}<br>{%endif%} {%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.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.postaladress and not fields["postaladress"]["perm"]==0 %}<b>{{fields["postaladress"]["label"]}}</b> = {{ user.postaladress }}<br>{%endif%}
{%if user.visitedate and not fields["visite"]["perm"]==0 %}<b>Date de dernière visite</b> = {{ user.visitedate|date('d/m/Y H:i') }}<br>{%endif%}
{%if user.visitecpt and not fields["visite"]["perm"]==0 %}<b>Nombre de visites</b> = {{ user.visitecpt }}<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> <br>
{% set fgtitle=false %} {% set fgtitle=false %}
{% for usergroup in user.groups %} {% for usergroup in user.groups %}
@ -35,6 +38,7 @@
{% endfor %} {% endfor %}
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endif %}
</div> </div>
{% endblock %} {% endblock %}

View File

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

View File

@ -84,6 +84,10 @@
{{ include('@CadolesCore/Include/menu.html.twig') }} {{ include('@CadolesCore/Include/menu.html.twig') }}
{% endif %} {% endif %}
</ul> </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> </div>
{% endif %} {% endif %}
{% endif %} {% endif %}
@ -106,6 +110,9 @@
</div> </div>
<ul class="nav navbar-top-links navbar-right"> <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 %} {% if mustread is not defined %}
{{ include('@CadolesCore/Include/menu.html.twig') }} {{ include('@CadolesCore/Include/menu.html.twig') }}
{% endif %} {% endif %}

View File

@ -200,7 +200,8 @@ class ApiController extends Controller
$bookmarks=null; $bookmarks=null;
$items=null; $items=null;
$itemcategorys=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); $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") { public function sessionAction($id="",$access="config") {
// Masteridentity // mode_auth
$masteridentity=$this->getParameter("masteridentity"); $mode_auth=$this->getParameter("mode_auth");
if($masteridentity!="SSO") { if($mode_auth!="CAS") {
$output["error"]="Le bundle Edispatcher ne fonctionne qu'en mode MasterIdentity=SSO"; $output["error"]="Le bundle Edispatcher ne fonctionne qu'en mode mode_auth=CAS";
return new Response(json_encode($output), 400); return new Response(json_encode($output), 400);
} }

View File

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

View File

@ -43,6 +43,7 @@ class InitDataCommand extends ContainerAwareCommand
$activate_widadminer = $this->getContainer()->getParameter('activate_widadminer'); $activate_widadminer = $this->getContainer()->getParameter('activate_widadminer');
$activate_widbalado = $this->getContainer()->getParameter('activate_widbalado'); $activate_widbalado = $this->getContainer()->getParameter('activate_widbalado');
$activate_widcdt = $this->getContainer()->getParameter('activate_widcdt');
$activate_widdokuwiki = $this->getContainer()->getParameter('activate_widdokuwiki'); $activate_widdokuwiki = $this->getContainer()->getParameter('activate_widdokuwiki');
$activate_wideconnect = $this->getContainer()->getParameter('activate_wideconnect'); $activate_wideconnect = $this->getContainer()->getParameter('activate_wideconnect');
$activate_widead = $this->getContainer()->getParameter('activate_widead'); $activate_widead = $this->getContainer()->getParameter('activate_widead');
@ -380,7 +381,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-394); $entityItem->setId(-394);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Adminer'); $entityItem->setTitle('Adminer');
$entityItem->SetSubtitle("Gestionnaire de Bases de Données"); $entityItem->setSubtitle("Gestionnaire de Bases de Données");
$entityItem->setIcon($entityicon); $entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryadm); $entityItem->setItemcategory($entityItemcategoryadm);
@ -402,7 +403,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-377); $entityItem->setId(-377);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Balado'); $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->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -413,6 +415,29 @@ class InitDataCommand extends ContainerAwareCommand
$em->persist($entityItem); $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 // Item Dokuwiki
if($activate_widdokuwiki) { if($activate_widdokuwiki) {
$widdokuwiki_url =$this->getContainer()->getParameter('widdokuwiki_url'); $widdokuwiki_url =$this->getContainer()->getParameter('widdokuwiki_url');
@ -424,7 +449,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-399); $entityItem->setId(-399);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Dokuwiki'); $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->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -446,7 +472,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-376); $entityItem->setId(-376);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Econnect'); $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->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -468,7 +494,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-393); $entityItem->setId(-393);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('EAD'); $entityItem->setTitle('EAD');
$entityItem->SetSubtitle("Console d'administration du serveur scribe"); $entityItem->setSubtitle("Console d'administration du serveur scribe");
$entityItem->setIcon($entityicon); $entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryadm); $entityItem->setItemcategory($entityItemcategoryadm);
@ -489,8 +515,9 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem = new Item(); $entityItem = new Item();
$entityItem->setId(-370); $entityItem->setId(-370);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('EOE'); $entityItem->setTitle('Outils Élève');
$entityItem->SetSubtitle("EOLE Outils Elè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->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -511,8 +538,9 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem = new Item(); $entityItem = new Item();
$entityItem->setId(-371); $entityItem->setId(-371);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('EOP'); $entityItem->setTitle('Outils Professeur');
$entityItem->SetSubtitle("EOLE 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->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -534,7 +562,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-382); $entityItem->setId(-382);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Etherhome'); $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->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -556,7 +585,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-397); $entityItem->setId(-397);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Fluxbb'); $entityItem->setTitle('Fluxbb');
$entityItem->SetSubtitle("Forum"); $entityItem->setSubtitle("Forum");
$entityItem->setContent("Forum avec gestion des droits des utilisateurs.");
$entityItem->setIcon($entityicon); $entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -578,7 +608,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-368); $entityItem->setId(-368);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Genconfig'); $entityItem->setTitle('Genconfig');
$entityItem->SetSubtitle("Console de configuration du serveur"); $entityItem->setSubtitle("Console de configuration du serveur");
$entityItem->setIcon($entityicon); $entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryadm); $entityItem->setItemcategory($entityItemcategoryadm);
@ -600,7 +630,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-389); $entityItem->setId(-389);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('GEPI'); $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->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -622,7 +652,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-388); $entityItem->setId(-388);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('GLPI'); $entityItem->setTitle('GLPI');
$entityItem->SetSubtitle("Gestion de tickets"); $entityItem->setSubtitle("Gestion de tickets");
$entityItem->setIcon($entityicon); $entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -644,7 +674,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-388); $entityItem->setId(-388);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Grr'); $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->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -666,7 +697,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-363); $entityItem->setId(-363);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Kanboard'); $entityItem->setTitle('Kanboard');
$entityItem->SetSubtitle("Gestion de Projets"); $entityItem->setSubtitle("Gestion de rojets");
$entityItem->setIcon($entityicon); $entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -688,7 +719,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-374); $entityItem->setId(-374);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Limesurvey'); $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->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -710,7 +742,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-369); $entityItem->setId(-369);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Mindmaps'); $entityItem->setTitle('Mindmaps');
$entityItem->SetSubtitle("Carte Mentale"); $entityItem->setSubtitle("Carte Mentale");
$entityItem->setContent("Carte mentale simple, enregistrable mais non collaborative.");
$entityItem->setIcon($entityicon); $entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -732,7 +765,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-387); $entityItem->setId(-387);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Moodle'); $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->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -754,7 +788,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-366); $entityItem->setId(-366);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Nextcloud'); $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->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -776,7 +811,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-361); $entityItem->setId(-361);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Nineboard'); $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->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -798,7 +834,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-1001); $entityItem->setId(-1001);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Nineschool'); $entityItem->setTitle('Nineschool');
$entityItem->SetSubtitle("Gestionnaire d'activités scolaire'"); $entityItem->setSubtitle("Gestionnaire d'activités scolaire'");
$entityItem->setIcon($entityicon); $entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -820,7 +856,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-1002); $entityItem->setId(-1002);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Ninesurvey'); $entityItem->setTitle('Ninesurvey');
$entityItem->SetSubtitle("Application de Sondage par Date"); $entityItem->setSubtitle("Application de Sondage par Date");
$entityItem->setIcon($entityicon); $entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -842,7 +878,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-1000); $entityItem->setId(-1000);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Onlyoffice'); $entityItem->setTitle('Onlyoffice');
$entityItem->SetSubtitle("Application Bureautique"); $entityItem->setSubtitle("Application Bureautique");
$entityItem->setIcon($entityicon); $entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -864,7 +900,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-383); $entityItem->setId(-383);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Opensondage'); $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->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -886,7 +922,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-362); $entityItem->setId(-362);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('PhpLdapAdmin'); $entityItem->setTitle('PhpLdapAdmin');
$entityItem->SetSubtitle("Gestionnaire dannuaire LDAP"); $entityItem->setSubtitle("Gestionnaire dannuaire LDAP");
$entityItem->setIcon($entityicon); $entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryadm); $entityItem->setItemcategory($entityItemcategoryadm);
@ -897,7 +933,7 @@ class InitDataCommand extends ContainerAwareCommand
$em->persist($entityItem); $em->persist($entityItem);
} }
// Item piwigo // Item Piwigo
if($activate_widpiwigo) { if($activate_widpiwigo) {
$widpiwigo_url =$this->getContainer()->getParameter('widpiwigo_url'); $widpiwigo_url =$this->getContainer()->getParameter('widpiwigo_url');
$entityItem = $em->getRepository('CadolesPortalBundle:Item')->find(-396); $entityItem = $em->getRepository('CadolesPortalBundle:Item')->find(-396);
@ -908,7 +944,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-396); $entityItem->setId(-396);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Piwigo'); $entityItem->setTitle('Piwigo');
$entityItem->SetSubtitle("Gestionnaire dalbums photos"); $entityItem->setSubtitle("Gestionnaire dalbums photos");
$entityItem->setIcon($entityicon); $entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -930,7 +966,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-380); $entityItem->setId(-380);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Piwik'); $entityItem->setTitle('Piwik');
$entityItem->SetSubtitle("Application de Statistique de Visite"); $entityItem->setSubtitle("Mesures daudience du portail");
$entityItem->setIcon($entityicon); $entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryadm); $entityItem->setItemcategory($entityItemcategoryadm);
@ -952,7 +988,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-398); $entityItem->setId(-398);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Roundcube'); $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->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -960,6 +997,12 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->addGroup($groupall); $entityItem->addGroup($groupall);
} }
$entityItem->setUrl($widroundcube_url); $entityItem->setUrl($widroundcube_url);
if($this->getContainer()->getParameter('cas_type')=="proxy")
$entityItem->setBadgeurl("/ninegate/cas/imapunread");
else
$entityItem->setBadgeurl(null);
$em->persist($entityItem); $em->persist($entityItem);
} }
@ -974,7 +1017,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-372); $entityItem->setId(-372);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Sacoche'); $entityItem->setTitle('Sacoche');
$entityItem->SetSubtitle("Evaluation de compétences"); $entityItem->setSubtitle("Evaluation de compétences");
$entityItem->setIcon($entityicon); $entityItem->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -996,7 +1039,8 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->setId(-400); $entityItem->setId(-400);
$entityItem->setRowOrder(0); $entityItem->setRowOrder(0);
$entityItem->setTitle('Wordpress'); $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->setIcon($entityicon);
$entityItem->setTarget("_blank"); $entityItem->setTarget("_blank");
$entityItem->setItemcategory($entityItemcategoryapp); $entityItem->setItemcategory($entityItemcategoryapp);
@ -1011,15 +1055,15 @@ class InitDataCommand extends ContainerAwareCommand
//== WIDGET ============================================================================================================================================ //== WIDGET ============================================================================================================================================
$output->writeln(' > Creation Widget'); $output->writeln(' > Creation Widget');
// Widget URL // Widget Page web
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-2000); $entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-2000);
if(!$entityWidget) $entityWidget = new Widget(); if(!$entityWidget) $entityWidget = new Widget();
$entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_ribbon.png"]); $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_ribbon.png"]);
$entityWidget->setId(-2000); $entityWidget->setId(-2000);
$entityWidget->setRoworder(0); $entityWidget->setRoworder(0);
$entityWidget->setIcon($entityicon); $entityWidget->setIcon($entityicon);
$entityWidget->setName('URL'); $entityWidget->setName('Page web');
$entityWidget->setDescription("Affiche le contenu d'une url"); $entityWidget->setDescription("Affiche le contenu d'une page web");
$entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_url"); $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_url");
$entityWidget->setHeight("630"); $entityWidget->setHeight("630");
$entityWidget->setAutoajust(false); $entityWidget->setAutoajust(false);
@ -1091,15 +1135,15 @@ class InitDataCommand extends ContainerAwareCommand
$em->persist($entityWidget); $em->persist($entityWidget);
// Widget Favoris // Widget Liens
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1960); $entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1960);
if(!$entityWidget) $entityWidget = new Widget(); if(!$entityWidget) $entityWidget = new Widget();
$entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_star.png"]); $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_star.png"]);
$entityWidget->setId(-1960); $entityWidget->setId(-1960);
$entityWidget->setRoworder(0); $entityWidget->setRoworder(0);
$entityWidget->setIcon($entityicon); $entityWidget->setIcon($entityicon);
$entityWidget->setName('Favoris'); $entityWidget->setName('Liens');
$entityWidget->setDescription("Création de Favoris"); $entityWidget->setDescription("Bibliothèque de Liens");
$entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_bookmark"); $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_bookmark");
$entityWidget->setHeight("630"); $entityWidget->setHeight("630");
$entityWidget->setAutoajust(true); $entityWidget->setAutoajust(true);
@ -1111,7 +1155,7 @@ class InitDataCommand extends ContainerAwareCommand
$em->persist($entityWidget); $em->persist($entityWidget);
// Widget Liens // Widget Lien
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1950); $entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1950);
if(!$entityWidget) $entityWidget = new Widget(); if(!$entityWidget) $entityWidget = new Widget();
$entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_bolt.png"]); $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_bolt.png"]);
@ -1119,7 +1163,7 @@ class InitDataCommand extends ContainerAwareCommand
$entityWidget->setRoworder(0); $entityWidget->setRoworder(0);
$entityWidget->setIcon($entityicon); $entityWidget->setIcon($entityicon);
$entityWidget->setName('Lien'); $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->setRouteview("cadoles_portal_config_panelwidget_view_link");
$entityWidget->setHeight("200"); $entityWidget->setHeight("200");
$entityWidget->setAutoajust(true); $entityWidget->setAutoajust(true);
@ -1131,14 +1175,14 @@ class InitDataCommand extends ContainerAwareCommand
$em->persist($entityWidget); $em->persist($entityWidget);
// Widget Editor // Widget Texte
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1940); $entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1940);
if(!$entityWidget) $entityWidget = new Widget(); if(!$entityWidget) $entityWidget = new Widget();
$entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_compose.png"]); $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_compose.png"]);
$entityWidget->setId(-1940); $entityWidget->setId(-1940);
$entityWidget->setRoworder(0); $entityWidget->setRoworder(0);
$entityWidget->setIcon($entityicon); $entityWidget->setIcon($entityicon);
$entityWidget->setName('Editeur'); $entityWidget->setName('Texte');
$entityWidget->setDescription("Votre propre texte à éditer"); $entityWidget->setDescription("Votre propre texte à éditer");
$entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_editor"); $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_editor");
$entityWidget->setHeight("630"); $entityWidget->setHeight("630");
@ -1302,14 +1346,14 @@ class InitDataCommand extends ContainerAwareCommand
$em->persist($entityWidget); $em->persist($entityWidget);
} }
// Widget Information // Widget Informations
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1860); $entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1860);
if(!$entityWidget) $entityWidget = new Widget(); if(!$entityWidget) $entityWidget = new Widget();
$entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_info.png"]); $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_info.png"]);
$entityWidget->setId(-1860); $entityWidget->setId(-1860);
$entityWidget->setRoworder(0); $entityWidget->setRoworder(0);
$entityWidget->setIcon($entityicon); $entityWidget->setIcon($entityicon);
$entityWidget->setName('Information Page'); $entityWidget->setName('Informations');
$entityWidget->setDescription("Afficher les informations associées à la page"); $entityWidget->setDescription("Afficher les informations associées à la page");
$entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_info"); $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_info");
$entityWidget->setHeight("630"); $entityWidget->setHeight("630");

View File

@ -8,6 +8,7 @@ use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Form\FormError; use Symfony\Component\Form\FormError;
use Symfony\Component\Filesystem\Filesystem;
use Cadoles\PortalBundle\Entity\Alert; use Cadoles\PortalBundle\Entity\Alert;
use Cadoles\PortalBundle\Form\AlertType; use Cadoles\PortalBundle\Form\AlertType;
@ -195,6 +196,32 @@ class AlertController extends Controller
return $response; 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) { public function readAction(Request $request) {
$output=array(); $output=array();
$id=$request->request->get('id'); $id=$request->request->get('id');

View File

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

View File

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

View File

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

View File

@ -71,7 +71,8 @@ class ItemController extends Controller
"mode" => "submit", "mode" => "submit",
"labelniveau01" => $this->GetParameter("labelsniveau01"), "labelniveau01" => $this->GetParameter("labelsniveau01"),
"ssosynchroitem" => $this->GetParameter("ssosynchroitem"), "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 // Récupération des data du formulaire
@ -122,7 +123,8 @@ class ItemController extends Controller
"idicon" => ($data->getIcon()?$data->getIcon()->getId():null), "idicon" => ($data->getIcon()?$data->getIcon()->getId():null),
"labelniveau01" => $this->GetParameter("labelsniveau01"), "labelniveau01" => $this->GetParameter("labelsniveau01"),
"ssosynchroitem" => $this->GetParameter("ssosynchroitem"), "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 // 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") {
} }
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()) { if ($form->get('submit')->isClicked() && !$form->isValid()) {
$this->get('session')->getFlashBag()->clear(); $this->get('session')->getFlashBag()->clear();
$validator = $this->get('validator'); $validator = $this->get('validator');

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) { protected function getRender($view,$params) {
// Paramétres toujours présent dans un rendu de widget // Paramétres toujours présent dans un rendu de widget
$allways = [ $allways = [
@ -602,6 +622,9 @@ class PagewidgetController extends Controller
} }
} }
// Préference utilisateur
$modedesktop = $this->getKeyPreference($this->entity,"modedesktop",$modedesktop);
// Profilage // Profilage
$itemsordered = $this->em->getRepository("CadolesPortalBundle:Item")->getUserItems($this->user,$bookmarks,$items,$itemcategorys,$iditemcategory,$this->get('session')->get('ssoitems'),$withbookmark,false); $itemsordered = $this->em->getRepository("CadolesPortalBundle:Item")->getUserItems($this->user,$bookmarks,$items,$itemcategorys,$iditemcategory,$this->get('session')->get('ssoitems'),$withbookmark,false);
} }
@ -640,10 +663,14 @@ class PagewidgetController extends Controller
} }
} }
// Préference utilisateur
$modedesktop = $this->getKeyPreference($this->entity,"modedesktop",$modedesktop);
// Profilage // Profilage
$itemsordered = $this->em->getRepository("CadolesPortalBundle:Item")->getUserItems($this->user,$bookmarks,$items,$itemcategorys,null,$this->get('session')->get('ssoitems'),0,true); $itemsordered = $this->em->getRepository("CadolesPortalBundle:Item")->getUserItems($this->user,$bookmarks,$items,$itemcategorys,null,$this->get('session')->get('ssoitems'),0,true);
} }
// Render // Render
return $this->getRender('viewitemessential.html.twig', [ return $this->getRender('viewitemessential.html.twig', [
'canadd' => ($this->user), 'canadd' => ($this->user),

View File

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

View File

@ -207,7 +207,7 @@ class ProjecttaskController extends Controller
if($groups[0]) { if($groups[0]) {
if($groups[0]->getFgcanshare()) { if($groups[0]->getFgcanshare()) {
$pages=$groups[0]->getPages(); $pages=$groups[0]->getPages();
if($pages) { if($pages[0]) {
$idpage=$pages[0]->getId(); $idpage=$pages[0]->getId();
$groups=$pages[0]->getGroups(); $groups=$pages[0]->getGroups();
$idgroup=$groups[0]->getId(); $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() public function gepiannuAction()
{ {
$url=$this->getParameter("widgepi_syncenvole"); $url=$this->getParameter("widgepi_syncenvole");

View File

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

View File

@ -95,6 +95,13 @@ class Item
*/ */
private $color; private $color;
/**
* @var string
*
* @ORM\Column(name="badgeurl", type="string", length=250, nullable=true)
*/
private $badgeurl;
/** /**
* @var string * @var string
* *
@ -115,6 +122,20 @@ class Item
*/ */
private $icon; 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 ArrayCollection $bookmark
* @var Bookmark * @var Bookmark
@ -650,4 +671,76 @@ class Item
{ {
return $this->ssoitem; 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', "label" => 'Description',
"required" => false, "required" => false,
"disabled" => ($options["mode"]=="delete"?true: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,[ ->add("fghideable",ChoiceType::class,[
@ -118,14 +118,13 @@ class AlertType extends AbstractType
->add('publishedat', DateType::class, [ ->add('publishedat', DateType::class, [
'label' => 'Publier du', 'label' => 'Publier du',
'input' => 'datetime', "widget" => 'single_text',
]) ])
->add('unpublishedat', DateType::class, [ ->add('unpublishedat', DateType::class, [
'label' => 'Jusqu\'au', 'label' => 'Jusqu\'au',
'input' => 'datetime',
'required' => false, 'required' => false,
'years' => range(date('Y'), date('Y')+10) "widget" => 'single_text',
]); ]);

View File

@ -118,6 +118,11 @@ class ItemType extends AbstractType
"required" => false "required" => false
]) ])
->add('badgeurl', TextType::class, [
'label' => "Badge URL",
'required' => false,
])
->add('essential', CheckboxType::class, [ ->add('essential', CheckboxType::class, [
"label" => "Item essentiel ?", "label" => "Item essentiel ?",
"required" => false "required" => false
@ -141,6 +146,51 @@ class ItemType extends AbstractType
"disabled" => ($options["mode"]=="delete"?true:false), "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) public function configureOptions(OptionsResolver $resolver)
@ -152,6 +202,7 @@ class ItemType extends AbstractType
'labelniveau01' => "string", 'labelniveau01' => "string",
'ssosynchroitem' => "string", 'ssosynchroitem' => "string",
'user_attr_cas_item' => "string", 'user_attr_cas_item' => "string",
"activate_widsonde" => "string",
]); ]);
} }
} }

View File

@ -46,6 +46,8 @@ class AlertRepository extends EntityRepository
$niveau01=($user?$user->getNiveau01():null); $niveau01=($user?$user->getNiveau01():null);
$groups=($user?$user->getGroups():[]); $groups=($user?$user->getGroups():[]);
$userreads=($user?$user->getAlertreaders():new ArrayCollection());
// Initialisation du calcul des alerts // Initialisation du calcul des alerts
$alerts=new ArrayCollection(); $alerts=new ArrayCollection();
@ -67,8 +69,9 @@ class AlertRepository extends EntityRepository
->setParameter("alertcategory",$alertcategoryfilter); ->setParameter("alertcategory",$alertcategoryfilter);
} }
$alertsroles=$qb->getQuery()->getResult(); $alertsroles=$qb->getQuery()->getResult();
foreach($alertsroles as $alertrole) { 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(); $alertsniveau01s=$qb->getQuery()->getResult();
foreach($alertsniveau01s as $alertniveau01) { 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 // Récupération des alerts par group
@ -114,7 +117,7 @@ class AlertRepository extends EntityRepository
} }
$alertsgroups=$qb->getQuery()->getResult(); $alertsgroups=$qb->getQuery()->getResult();
foreach($alertsgroups as $alertgroup) { foreach($alertsgroups as $alertgroup) {
if(!$alerts->contains($alertgroup)&&!$alertgroup->getReaders()->contains($user)) $alerts->add($alertgroup); if(!$alerts->contains($alertgroup)&&!$userreads->contains($alertgroup)) $alerts->add($alertgroup);
} }
} }
@ -142,7 +145,7 @@ class AlertRepository extends EntityRepository
} }
$alertsitems=$qb->getQuery()->getResult(); $alertsitems=$qb->getQuery()->getResult();
foreach($alertsitems as $alertitem) { foreach($alertsitems as $alertitem) {
if(!$alerts->contains($alertitem)&&!$alertitem->getReaders()->contains($user)) $alerts->add($alertitem); if(!$alerts->contains($alertitem)&&!$userreads->contains($alertitem)) $alerts->add($alertitem);
} }
} }

View File

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

View File

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

View File

@ -12,8 +12,14 @@
<a href="{{ path('cadoles_portal_config_alertcategory_submit') }}" class="btn btn-success">Ajouter une Catégorie</a> <a href="{{ path('cadoles_portal_config_alertcategory_submit') }}" class="btn btn-success">Ajouter une Catégorie</a>
</p> </p>
<div id="list" class="panel-group"> <div id="listpending" class="panel panel-default">
{% for alert in alerts %} <div class="panel-heading">
<h3 style="margin:0px">En Attente Publication</h2>
</div>
<div class="panel-body">
<div class="list panel-group">
{% for alert in alerts if alert.isPending %}
<div <div
class=" class="
panel panel
@ -57,6 +63,114 @@
{% endfor %} {% endfor %}
</div> </div>
</div> </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>
<div class="col-md-3"> <div class="col-md-3">
<div class="panel panel-default"> <div class="panel panel-default">
@ -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", axis: "y",
placeholder: "list-item placeholder", placeholder: "list-item placeholder",
update: updateItems update: updateItems

View File

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

View File

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

View File

@ -9,7 +9,7 @@
<p> <p>
<a href="{{ path('cadoles_portal_config_blog_submit') }}" class="btn btn-success">Ajouter un Blog</a> <a href="{{ path('cadoles_portal_config_blog_submit') }}" class="btn btn-success">Ajouter un Blog</a>
<span class="pull-right"> <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();"> <input id="alluser" name="alluser" type="checkbox" class="switch" onChange="switchalluser();">
</span> </span>
</p> </p>
@ -74,6 +74,12 @@
if (typeof table !== 'undefined') { if (typeof table !== 'undefined') {
table.ajax.reload(); 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 %} {% endblock %}

View File

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

View File

@ -10,7 +10,7 @@
<a href="{{ path('cadoles_portal_config_calendar_submit') }}" class="btn btn-success">Ajouter un Calendrier</a> <a href="{{ path('cadoles_portal_config_calendar_submit') }}" class="btn btn-success">Ajouter un Calendrier</a>
<span class="pull-right"> <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();"> <input id="alluser" name="alluser" type="checkbox" class="switch" onChange="switchalluser();">
</span> </span>
</p> </p>
@ -73,6 +73,12 @@
if (typeof table !== 'undefined') { if (typeof table !== 'undefined') {
table.ajax.reload(); 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 %} {% endblock %}

View File

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

View File

@ -288,7 +288,12 @@
{% if entity.id is defined %} {% if entity.id is defined %}
{% for calendar in calendars %} {% for calendar in calendars %}
{% if calendar.id==entity.id %} {% 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 %} {% endif %}
{% endfor %} {% endfor %}
{% else %} {% else %}

View File

@ -4,7 +4,7 @@
{{ form_start(form) }} {{ form_start(form) }}
<h1 class="page-header"> <h1 class="page-header">
{% if mode=="update" %} {% if mode=="update" %}
Modification Flux Modification Flux = {{flux.title}}
{% elseif mode=="submit" %} {% elseif mode=="submit" %}
Création Flux Création Flux
{% endif %} {% endif %}
@ -17,7 +17,7 @@
<a href={{ path('cadoles_portal_config_flux_delete',{'id':flux.id}) }} <a href={{ path('cadoles_portal_config_flux_delete',{'id':flux.id}) }}
class="btn btn-danger pull-right" class="btn btn-danger pull-right"
data-method="delete" data-csrf="_token:{{ 'csrf' }}" 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 Supprimer
</a> </a>
{% endif %} {% endif %}

View File

@ -4,7 +4,7 @@
{{ form_start(form) }} {{ form_start(form) }}
<h1 class="page-header"> <h1 class="page-header">
{% if mode=="update" %} {% if mode=="update" %}
Modification Item Modification Item = {{item.title}}
{% elseif mode=="submit" %} {% elseif mode=="submit" %}
Création Item Création Item
{% endif %} {% endif %}
@ -49,6 +49,8 @@
{{ form_row(form.subtitle) }} {{ form_row(form.subtitle) }}
{{ form_row(form.essential) }} {{ form_row(form.essential) }}
{{ form_row(form.content) }} {{ form_row(form.content) }}
{{ form_row(form.badgeurl) }}
{{ form_row(form.protected) }}
</div> </div>
@ -65,6 +67,13 @@
{{ form_row(form.ssoitem) }} {{ form_row(form.ssoitem) }}
{% endif %} {% endif %}
{% if form.clicksonde is defined %}
{{ form_row(form.clicksonde) }}
<div id="divclicksondeservice">
{{ form_row(form.clicksondeservice) }}
</div>
{% endif %}
{{ form_row(form.color) }} {{ 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'] }};"> <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(); showhide();
}); });
$('#item_clicksonde').change(function() {
showhide();
});
function selIcon(idicon,label) { function selIcon(idicon,label) {
$("#item_idicon").val(idicon); $("#item_idicon").val(idicon);
$("#diviconsel img").remove(); $("#diviconsel img").remove();
@ -120,5 +133,13 @@
if($("#item_target").val()=="frame") { if($("#item_target").val()=="frame") {
$("#divhelp").show(); $("#divhelp").show();
} }
if($("#item_clicksonde").is(':checked')) {
$("#divclicksondeservice").show();
}
else {
$("#divclicksondeservice").hide();
}
} }
{% endblock %} {% endblock %}

View File

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

View File

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

View File

@ -25,12 +25,17 @@
<div class="grid-item-content" style="background-color: {{ bookmark.color ? "#"~bookmark.color : '#'~colormain }};"> <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> <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' %} {% 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" %} {% 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 %} {% else %}
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url }}" target="{{ bookmark.target }}"> <a {{datasonde|raw}} href="{{ bookmark.url }}" target="{{ bookmark.target }}">
{% endif %} {% endif %}
<div class="item-link clearfix"> <div class="item-link clearfix">
@ -110,12 +115,17 @@
{% endif %} {% endif %}
{% else %} {% else %}
{% set datasonde = "" %}
{% if item.clicksonde %}
{% set datasonde = "class='linktosonde' data-sondetitle='"~item.title~"' data-sondeservice='"~item.clicksondeservice~"'" %}
{% endif %}
{% if item.target == 'frame' %} {% 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" %} {% 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 %} {% 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 %}
{% endif %} {% endif %}
@ -196,8 +206,9 @@
// Sur click item à sonder // Sur click item à sonder
{% if activate_widsonde %} {% if activate_widsonde %}
$( ".linktosonde" ).click(function() { $( ".linktosonde" ).click(function() {
title=$(this).attr("data-sonde"); title=$(this).attr("data-sondetitle");
//$.getScript( "{{ widsonde_url }}?appli="+title ); service=$(this).attr("data-sondeservice");
EnvoleClickSondes($(this),title,service);
}); });
{% endif %} {% endif %}

View File

@ -86,7 +86,7 @@
<div class="caption"> <div class="caption">
<h3 style="text-align:center">Portail<br>Personnalisable</h3> <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 : <p>Les pages de l'utilisateur pouvant prendre plusieurs formes :
<ul> <ul>
<li>Une page pointant sur l'adresse d'un autre site</li> <li>Une page pointant sur l'adresse d'un autre site</li>
@ -105,7 +105,7 @@
<div class="caption"> <div class="caption">
<h3 style="text-align:center">Portail<br>Evolutif</h3> <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 : <p>Voici quelques exemples :
<ul> <ul>
<li>Widget URL</li> <li>Widget URL</li>
@ -133,8 +133,8 @@
<li>Distribuer {{ app.session.get('appname') }}</li> <li>Distribuer {{ app.session.get('appname') }}</li>
</ul> </ul>
</p> </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>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>NinthGate est propulsé par la société <a href='http://cadoles.com' target='_blank'>Cadoles</a></p> <p>Ninegate est propulsé par la société <a href='https://cadoles.com' target='_blank'>Cadoles</a></p>
</div> </div>
</div> </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> <a href="{{ path('cadoles_portal_config_page_submit') }}" class="btn btn-success">Ajouter une Page</a>
<span class="pull-right"> <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();"> <input id="alluser" name="alluser" type="checkbox" class="switch" onChange="switchalluser();">
</span> </span>
</p> </p>
@ -43,6 +43,9 @@
$(".switch").bootstrapSwitch(); $(".switch").bootstrapSwitch();
{% if not app.session.get('alluserpage') is empty %} {% if not app.session.get('alluserpage') is empty %}
var state={{ app.session.get('alluserpage') }}; var state={{ app.session.get('alluserpage') }};
if(state)
$("#labelalluser").html("Afficher les pages non liées à un utilisateur");
$("#alluser").bootstrapSwitch('state',state); $("#alluser").bootstrapSwitch('state',state);
{% endif %} {% endif %}
@ -76,6 +79,13 @@
if (typeof table !== 'undefined') { if (typeof table !== 'undefined') {
table.ajax.reload(); 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 %} {% endblock %}

View File

@ -13,7 +13,7 @@
{% endif %} {% endif %}
<li id="menupage-{{page.id}}" {{ isactive }} class="list-group-item {{isactive}}" onClick="$('#listgrouppage li').removeClass('active'); $(this).addClass('active') " style="cursor:pointer"> <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 %} {% if page.fonticon %}
<i class="{{ page.fonticon }} fa-faw"></i> <i class="{{ page.fonticon }} fa-faw"></i>
{% else %} {% else %}
@ -55,7 +55,7 @@
{% endif %} {% endif %}
<li id="menupage-{{page.id}}" {{ isactive }} style="cursor:pointer"> <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 %} {% if page.fonticon %}
<i class="{{ page.fonticon }} fa-faw"></i> <i class="{{ page.fonticon }} fa-faw"></i>
{% else %} {% else %}
@ -93,7 +93,7 @@
{% endif %} {% endif %}
<li id="menupage-{{page.id}}" {{isactive}} style="cursor:pointer"> <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 %} {% if page.fonticon %}
<i class="{{ page.fonticon }} fa-faw"></i> <i class="{{ page.fonticon }} fa-faw"></i>
{% endif %} {% 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> <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' %} {% 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" %} {% 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 %} {% else %}
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url }}" target="{{ bookmark.target }}"> <a href="{{ bookmark.url }}" target="{{ bookmark.target }}">
{% endif %} {% endif %}
<div class="item-link clearfix"> <div class="item-link clearfix">
@ -111,11 +111,11 @@
{% else %} {% else %}
{% if item.target == 'frame' %} {% 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" %} {% 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 %} {% else %}
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url }}" target="{{ item.target }}"> <a href="{{ item.url }}" target="{{ item.target }}">
{% endif %} {% endif %}
{% endif %} {% endif %}
@ -192,15 +192,6 @@
var grid = $('.grid').masonry(optiongrid); 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 %} {% set forcereload=page.toreload %}
{% endif %} {% endif %}
{% set usage="portal" %}
{% if loop.first %} {% set usage="accueil" %} {%endif %}
{% if entity.id is defined and page.id==entity.id %} {% if entity.id is defined and page.id==entity.id %}
<li id="menupage-{{page.id}}" class="active" style="cursor:pointer"> <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 %} {% if page.fonticon %}
<i class="{{ page.fonticon }} fa-faw"></i>&nbsp; <i class="{{ page.fonticon }} fa-faw"></i>&nbsp;
{% endif %} {% endif %}
@ -24,7 +27,7 @@
</li> </li>
{% else %} {% else %}
<li id="menupage-{{page.id}}"> <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 %} {% if page.fonticon %}
<i class="{{ page.fonticon }} fa-faw"></i>&nbsp; <i class="{{ page.fonticon }} fa-faw"></i>&nbsp;
{% endif %} {% endif %}
@ -45,7 +48,7 @@
{% if entity.id is defined and page.id==entity.id %} {% if entity.id is defined and page.id==entity.id %}
<li id="menupage-{{page.id}}" class="active" style="cursor:pointer"> <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 %} {% if page.fonticon %}
<i class="{{ page.fonticon }} fa-faw"></i> <i class="{{ page.fonticon }} fa-faw"></i>
{% else %} {% else %}
@ -56,7 +59,7 @@
</li> </li>
{% else %} {% else %}
<li id="menupage-{{page.id}}"> <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 %} {% if page.fonticon %}
<i class="{{ page.fonticon }} fa-faw"></i> <i class="{{ page.fonticon }} fa-faw"></i>
{% else %} {% else %}
@ -91,6 +94,8 @@
<div id="menupageaction"> <div id="menupageaction">
<a id="menuname" style="cursor:pointer;font-size:80%" href=""></a>
{% if canadd %} {% if canadd %}
<a id="menusubmit" style="cursor:pointer" onclick="submitPage()" title='Ajouter une page'><i class='fa fa-plus fa-fw'></i></a> <a id="menusubmit" style="cursor:pointer" onclick="submitPage()" title='Ajouter une page'><i class='fa fa-plus fa-fw'></i></a>
{% endif %} {% endif %}
@ -256,20 +261,22 @@
{% if gotoroute is empty %} {% if gotoroute is empty %}
{% for page in pagesadmin %} {% for page in pagesadmin %}
{% if page.id==entity.id %} {% 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 %} {% endif %}
{% endfor %} {% endfor %}
{% for page in pagesuser %} {% for page in pagesuser %}
{% if page.id==entity.id %} {% 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 %} {% endif %}
{% endfor %} {% endfor %}
{% for groupshared in groupsshared %} {% for groupshared in groupsshared %}
{% for page in groupshared.pagesshared %} {% for page in groupshared.pagesshared %}
{% if page.id==entity.id %} {% 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 %} {% endif %}
{% endfor %} {% endfor %}
{% endfor %} {% endfor %}
@ -306,54 +313,11 @@
order: [[ 1, "asc" ]], order: [[ 1, "asc" ]],
}); });
{% if app.user %} {% if app.user and app.session.get("timerefreshnotif") > 0%}
setInterval(function(){ setInterval(function(){
loadmsgCounter() loadmsgCounter()
}, 10000); }, {{(app.session.get("timerefreshnotif")*1000)}});
{% endif %} {% 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() { $(window).resize(function() {
@ -406,7 +370,7 @@
} }
// Affichages des pages // 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 // Sauvegarder la page en cours
idpage=id; idpage=id;
@ -449,6 +413,10 @@
$("#badge-"+groupid).remove() $("#badge-"+groupid).remove()
} }
// Nom de la page
console.log(pagename);
$("#menuname").html(pagename);
// Cacher les actions possibles sur la page // Cacher les actions possibles sur la page
$("#menuupdate").hide(); $("#menuupdate").hide();
$("#menushare").hide(); $("#menushare").hide();
@ -579,18 +547,6 @@
}; };
function loadmsgCounter() { 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");
}
}
*/
$.ajax({ $.ajax({
method: "POST", 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 %} {% endblock %}

View File

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

View File

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

View File

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

View File

@ -142,9 +142,9 @@
{{ form_start(form) }} {{ form_start(form) }}
<h1 class="page-header"> <h1 class="page-header">
{% if mode=="update" %} {% if mode=="update" %}
Modification Page Widget Modification Page Widget = {{entity.name}}
{% elseif mode=="updatetemplate" %} {% elseif mode=="updatetemplate" %}
Modification Modèle de Page Modification Modèle de Page = {{entity.name}}
{% elseif mode=="submit" %} {% elseif mode=="submit" %}
Création Page Widget Création Page Widget
{% endif %} {% 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 // Création des slick
slick(); slick();
@ -277,8 +289,9 @@
// Sur click item à sonder // Sur click item à sonder
{% if activate_widsonde %} {% if activate_widsonde %}
$( ".linktosonde" ).click(function() { $( ".linktosonde" ).click(function() {
title=$(this).attr("data-sonde"); title=$(this).attr("data-sondetitle");
//$.getScript( "{{ widsonde_url }}?appli="+title ); service=$(this).attr("data-sondeservice");
EnvoleClickSondes($(this),title,service);
}); });
{% endif %} {% 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 // Aggrandir widget
function bigWidget(idwidget) { function bigWidget(idwidget) {
var url="{{ path('cadoles_portal_'~access~'_page_view',{id:entity.id,group:group,usage:usage,by:mode,look:'list',selwidget:'xx'})}}"; 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>
<div class="panel-body"> <div class="panel-body">
{{ alert.content|raw }} <div class="widget-ckeditor">{{ alert.content|raw }}</div>
{% if not alert.items is empty %} {% if not alert.items is empty %}
{% if app.user %} {% if app.user %}
@ -95,11 +95,11 @@
{% else %} {% else %}
{% if item.target == 'frame' %} {% 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" %} {% 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 %} {% 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 %}
{% 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 {{ stylegrid }}" data-idcategory="{{ item.itemcategory.id }}" data-iditem="{{ item.id }}">
<div class="grid-item-content" style="background-color: {{ item.color ? "#"~item.color : '#'~colormain }};"> <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"> <div class="item-link clearfix">

View File

@ -87,11 +87,11 @@
{% endif %} {% endif %}
{% if bookmark.target == 'frame' %} {% 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" %} {% 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 %} {% 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 %} {% endif %}
<div class="item-link clearfix"> <div class="item-link clearfix">

View File

@ -109,7 +109,7 @@
<div class="grid-item {{ stylegrid }} feed flux-{{ feed.fluxid }}"> <div class="grid-item {{ stylegrid }} feed flux-{{ feed.fluxid }}">
<div class="grid-item-content" style="{{ stylecolor }};"> <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"> <div class="item-link clearfix">
{% if feed.image is not empty %} {% if feed.image is not empty %}
<div class="grid-item-logo"> <div class="grid-item-logo">

View File

@ -48,6 +48,10 @@
{% else %} {% else %}
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%} widget-item" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px"> <div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%} widget-item" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
<div class="widgetmenu"> <div class="widgetmenu">
{% if canadd %}
<i class="fas fa-text-height" title="Changer taille des items" onClick="changeWidget({{ entity.id }},'modedesktop',{{modedesktop}})" style="{{ stylewidgetmenu }}"></i>
{% endif %}
{% if canupdate %} {% if canupdate %}
<i class="fa fa-trash fa-fw" title="Supprimer le Widget" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i> <i class="fa fa-trash fa-fw" title="Supprimer le Widget" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
<i class="fa fa-file fa-fw" title="Modifier le Widget" onClick="modWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i> <i class="fa fa-file fa-fw" title="Modifier le Widget" onClick="modWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
@ -121,11 +125,11 @@
<a style="cursor:pointer" onClick="delBookmark({{ bookmark.id }})" class="item-heart"><i style="color: #FFF" class="fa fa-trash" title="Supprimer le favori"></i></a> <a style="cursor:pointer" onClick="delBookmark({{ bookmark.id }})" class="item-heart"><i style="color: #FFF" class="fa fa-trash" title="Supprimer le favori"></i></a>
{% if bookmark.target == 'frame' %} {% 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" %} {% 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 %} {% 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 %} {% endif %}
<div class="item-link clearfix"> <div class="item-link clearfix">
@ -176,7 +180,7 @@
{%endif%} {%endif%}
<div class="grid-item {{ stylegrid }}" data-idcategory="bookmark" data-title="{{ bookmark.item.title|lower }}"> <div class="grid-item {{ stylegrid }}" data-idcategory="bookmark" data-title="{{ bookmark.item.title|lower }}">
<div class="grid-item-content" style="background-color: {{ bookmark.color ? "#"~bookmark.color : '#'~colormain }};"> <div class="grid-item-content" style="background-color: {{ bookmark.item.color ? "#"~bookmark.item.color : '#'~colormain }};">
{% if bookmark.item.content %} {% if bookmark.item.content %}
<a style="cursor:pointer" class="item-preview"><i style="color: #FFF" class="fa fa-info" title="Informations sur ce service"></i></a> <a style="cursor:pointer" class="item-preview"><i style="color: #FFF" class="fa fa-info" title="Informations sur ce service"></i></a>
{% endif %} {% endif %}
@ -184,12 +188,17 @@
<a style="cursor:pointer" onClick="delBookmark({{ bookmark.id }})" class="item-heart"><i style="color: #FFF" class="fa fa-trash" title="Supprimer des favoris"></i></a> <a style="cursor:pointer" onClick="delBookmark({{ bookmark.id }})" class="item-heart"><i style="color: #FFF" class="fa fa-trash" title="Supprimer des favoris"></i></a>
{% endif %} {% endif %}
{% 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.item.target == 'frame' %} {% if bookmark.item.target == 'frame' %}
<a class="linktosonde" data-sonde="{{ bookmark.item.title }}" style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.item.id }}','{{ bookmark.item.url|replace({'#login#': username}) }}')"> <a {{datasonde|raw}} style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.item.id }}','{{ bookmark.item.url|replace({'#login#': username}) }}')">
{% elseif bookmark.target == "_self" %} {% elseif bookmark.target == "_self" %}
<a class="linktosonde" data-sonde="{{ bookmark.item.title }}" href="{{ bookmark.item.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.item.target }}{% endif %}"> <a {{datasonde|raw}} data-sonde="{{ bookmark.item.title }}" href="{{ bookmark.item.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.item.target }}{% endif %}">
{% else %} {% else %}
<a class="linktosonde" data-sonde="{{ bookmark.item.title }}" href="{{ bookmark.item.url|replace({'#login#': username}) }}" target="{{ bookmark.item.target }}"> <a {{datasonde|raw}} href="{{ bookmark.item.url|replace({'#login#': username}) }}" target="{{ bookmark.item.target }}">
{% endif %} {% endif %}
<div class="item-link clearfix"> <div class="item-link clearfix">
@ -203,7 +212,10 @@
<div class="grid-item-title"> <div class="grid-item-title">
<h2>{{ bookmark.item.title }}</h2> <h2>{{ bookmark.item.title }}</h2>
<span>{{ bookmark.item.subtitle|nl2br }}</<span> <span>{{ bookmark.item.subtitle|nl2br }}</span>
{% if not bookmark.item.badgeurl is empty %}
<div class="itembadgeurl badge badge-pill" data-url="{{bookmark.item.badgeurl}}" style="background-color: #ffffff; color: {{ bookmark.item.color ? "#"~bookmark.item.color : '#'~colormain }};"></div>
{% endif %}
</div> </div>
</div> </div>
</a> </a>
@ -229,7 +241,7 @@
{% for bookmark in bookmarks %} {% for bookmark in bookmarks %}
{% if bookmark.item %} {% if bookmark.item %}
<div class="grid-item {{ stylegrid }}" data-idcategory="bookmark" data-title="{{ bookmark.item.title|lower }}"> <div class="grid-item {{ stylegrid }}" data-idcategory="bookmark" data-title="{{ bookmark.item.title|lower }}">
<div class="grid-item-content" style="background-color: {{ bookmark.color ? "#"~bookmark.color : '#'~colormain }};"> <div class="grid-item-content" style="background-color: {{ bookmark.item.color ? "#"~bookmark.item.color : '#'~colormain }};">
{% if bookmark.item.content %} {% if bookmark.item.content %}
<a style="cursor:pointer" class="item-preview"><i style="color: #FFF" class="fa fa-info" title="Informations sur ce service"></i></a> <a style="cursor:pointer" class="item-preview"><i style="color: #FFF" class="fa fa-info" title="Informations sur ce service"></i></a>
{% endif %} {% endif %}
@ -237,12 +249,17 @@
<a style="cursor:pointer" onClick="delBookmark({{ bookmark.id }})" class="item-heart"><i style="color: #FFF" class="fa fa-trash" title="Supprimer des favoris"></i></a> <a style="cursor:pointer" onClick="delBookmark({{ bookmark.id }})" class="item-heart"><i style="color: #FFF" class="fa fa-trash" title="Supprimer des favoris"></i></a>
{% endif %} {% endif %}
{% 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.item.target == 'frame' %} {% if bookmark.item.target == 'frame' %}
<a class="linktosonde" data-sonde="{{ bookmark.item.title }}" style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.item.id }}','{{ bookmark.item.url|replace({'#login#': username}) }}')"> <a {{datasonde|raw}} style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.item.id }}','{{ bookmark.item.url|replace({'#login#': username}) }}')">
{% elseif bookmark.target == "_self" %} {% elseif bookmark.target == "_self" %}
<a class="linktosonde" data-sonde="{{ bookmark.item.title }}" href="{{ bookmark.item.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.item.target }}{% endif %}"> <a {{datasonde|raw}} href="{{ bookmark.item.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.item.target }}{% endif %}">
{% else %} {% else %}
<a class="linktosonde" data-sonde="{{ bookmark.item.title }}" href="{{ bookmark.item.url|replace({'#login#': username}) }}" target="{{ bookmark.item.target }}"> <a {{datasonde|raw}} href="{{ bookmark.item.url|replace({'#login#': username}) }}" target="{{ bookmark.item.target }}">
{% endif %} {% endif %}
<div class="item-link clearfix"> <div class="item-link clearfix">
@ -256,7 +273,12 @@
<div class="grid-item-title"> <div class="grid-item-title">
<h2>{{ bookmark.item.title }}</h2> <h2>{{ bookmark.item.title }}</h2>
<span>{{ bookmark.item.subtitle|nl2br }}</<span> <span>{{ bookmark.item.subtitle|nl2br }}</span>
{% if not bookmark.item.badgeurl is empty %}
<div style="margin-top:5px;text-align:center;{% if stylegrid == "grid-list"%} float: right;position: absolute;top: 10px;right: -50px; {%endif%}">
<div class="itembadgeurl badge badge-pill" data-url="{{bookmark.item.badgeurl}}" style="background-color: #ffffff; color: {{ bookmark.color ? "#"~bookmark.color : '#'~colormain }};"></div>
</div>
{% endif %}
</div> </div>
</div> </div>
</a> </a>
@ -273,11 +295,11 @@
<a style="cursor:pointer" onClick="delBookmark({{ bookmark.id }})" class="item-heart"><i style="color: #FFF" class="fa fa-trash" title="Supprimer le favori"></i></a> <a style="cursor:pointer" onClick="delBookmark({{ bookmark.id }})" class="item-heart"><i style="color: #FFF" class="fa fa-trash" title="Supprimer le favori"></i></a>
{% if bookmark.target == 'frame' %} {% 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" %} {% 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 %} {% 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 %} {% endif %}
<div class="item-link clearfix"> <div class="item-link clearfix">
@ -291,7 +313,7 @@
<div class="grid-item-title"> <div class="grid-item-title">
<h2>{{ bookmark.title }}</h2> <h2>{{ bookmark.title }}</h2>
<span>{{ bookmark.subtitle|nl2br }}</<span> <span>{{ bookmark.subtitle|nl2br }}</span>
</div> </div>
</div> </div>
</a> </a>
@ -382,12 +404,17 @@
{% endif %} {% endif %}
{% else %} {% else %}
{% set datasonde = "" %}
{% if item.clicksonde %}
{% set datasonde = "class='linktosonde' data-sondetitle='"~item.title~"' data-sondeservice='"~item.clicksondeservice~"'" %}
{% endif %}
{% if item.target == 'frame' %} {% if item.target == 'frame' %}
<a class="linktosonde" data-sonde="{{ item.title }}" style="cursor:pointer" onClick="showFrameitem({{ item.id }},'{{ item.url|replace({'#login#': username}) }}')"> <a {{datasonde|raw}} style="cursor:pointer" onClick="showFrameitem({{ item.id }},'{{ item.url|replace({'#login#': username}) }}')">
{% elseif item.target == "_self" %} {% 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 {{datasonde|raw}} href="{{ item.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ item.target }}{% endif %}">
{% else %} {% else %}
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url|replace({'#login#': username}) }}" target="{{ item.target }}"> <a {{datasonde|raw}} href="{{ item.url|replace({'#login#': username}) }}" target="{{ item.target }}">
{% endif %} {% endif %}
{% endif %} {% endif %}
@ -402,7 +429,12 @@
<div class="grid-item-title"> <div class="grid-item-title">
<h2>{{ item.title }}</h2> <h2>{{ item.title }}</h2>
<span>{{ item.subtitle|nl2br }}</<span> <span>{{ item.subtitle|nl2br }}</span>
{% if not item.badgeurl is empty %}
<div style="margin-top:5px;text-align:center;{% if stylegrid == "grid-list"%} float: right;position: absolute;top: 10px;right: -50px; {%endif%}">
<div class="itembadgeurl badge badge-pill" data-url="{{item.badgeurl}}" style="background-color: #ffffff; color: {{ item.color ? "#"~item.color : '#'~colormain }};"></div>
</div>
{% endif %}
</div> </div>
</div> </div>
</a> </a>

View File

@ -48,6 +48,10 @@
{% else %} {% else %}
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%} widget-itemessential" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px"> <div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%} widget-itemessential" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
<div class="widgetmenu"> <div class="widgetmenu">
{% if canadd %}
<i class="fas fa-text-height" title="Changer taille des items" onClick="changeWidget({{ entity.id }},'modedesktop',{{modedesktop}})" style="{{ stylewidgetmenu }}"></i>
{% endif %}
{% if canupdate %} {% if canupdate %}
<i class="fa fa-trash fa-fw" title="Supprimer le Widget" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i> <i class="fa fa-trash fa-fw" title="Supprimer le Widget" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
<i class="fa fa-file fa-fw" title="Modifier le Widget" onClick="modWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i> <i class="fa fa-file fa-fw" title="Modifier le Widget" onClick="modWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
@ -85,7 +89,7 @@
{% for bookmark in bookmarks %} {% for bookmark in bookmarks %}
{% if bookmark.item %} {% if bookmark.item %}
<div class="grid-item {{ stylegrid }}" data-idcategory="bookmark" data-title="{{ bookmark.item.title|lower }}"> <div class="grid-item {{ stylegrid }}" data-idcategory="bookmark" data-title="{{ bookmark.item.title|lower }}">
<div class="grid-item-content" style="background-color: {{ bookmark.color ? "#"~bookmark.color : '#'~colormain }};"> <div class="grid-item-content" style="background-color: {{ bookmark.item.color ? "#"~bookmark.item.color : '#'~colormain }};">
{% if bookmark.item.content %} {% if bookmark.item.content %}
<a style="cursor:pointer" class="item-preview"><i style="color: #FFF" class="fa fa-info" title="Informations sur ce service"></i></a> <a style="cursor:pointer" class="item-preview"><i style="color: #FFF" class="fa fa-info" title="Informations sur ce service"></i></a>
{% endif %} {% endif %}
@ -93,12 +97,17 @@
<a style="cursor:pointer" onClick="delBookmark({{ bookmark.id }})" class="item-heart"><i style="color: #FFF" class="fa fa-trash" title="Supprimer des favoris"></i></a> <a style="cursor:pointer" onClick="delBookmark({{ bookmark.id }})" class="item-heart"><i style="color: #FFF" class="fa fa-trash" title="Supprimer des favoris"></i></a>
{% endif %} {% endif %}
{% set datasonde = "" %}
{% if bookmark.item.clicksonde %}
{% set datasonde = "class='linktosonde' data-sondetitle='"~bookmark.item.title~"' data-sondeservice='"~bookmark.item.clicksondeservice~"'" %}
{% endif %}
{% if bookmark.item.target == 'frame' %} {% if bookmark.item.target == 'frame' %}
<a class="linktosonde" data-sonde="{{ bookmark.item.title }}" style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.item.id }}','{{ bookmark.item.url|replace({'#login#': username}) }}')"> <a {{datasonde|raw}} style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.item.id }}','{{ bookmark.item.url|replace({'#login#': username}) }}')">
{% elseif bookmark.target == "_self" %} {% elseif bookmark.target == "_self" %}
<a class="linktosonde" data-sonde="{{ bookmark.item.title }}" href="{{ bookmark.item.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.item.target }}{% endif %}"> <a {{datasonde|raw}} href="{{ bookmark.item.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.item.target }}{% endif %}">
{% else %} {% else %}
<a class="linktosonde" data-sonde="{{ bookmark.item.title }}" href="{{ bookmark.item.url|replace({'#login#': username}) }}" target="{{ bookmark.item.target }}"> <a {{datasonde|raw}} href="{{ bookmark.item.url|replace({'#login#': username}) }}" target="{{ bookmark.item.target }}">
{% endif %} {% endif %}
<div class="item-link clearfix"> <div class="item-link clearfix">
@ -112,7 +121,12 @@
<div class="grid-item-title"> <div class="grid-item-title">
<h2>{{ bookmark.item.title }}</h2> <h2>{{ bookmark.item.title }}</h2>
<span>{{ bookmark.item.subtitle|nl2br }}</<span> <span>{{ bookmark.item.subtitle|nl2br }}</span>
{% if not bookmark.item.badgeurl is empty %}
<div style="margin-top:5px;text-align:center;{% if stylegrid == "grid-list"%} float: right;position: absolute;top: 10px;right: -50px; {%endif%}">
<div class="itembadgeurl badge badge-pill" data-url="{{bookmark.item.badgeurl}}" style="background-color: #ffffff; color: {{ bookmark.item.color ? "#"~bookmark.item.color : '#'~colormain }};"></div>
</div>
{% endif %}
</div> </div>
</div> </div>
</a> </a>
@ -129,11 +143,11 @@
<a style="cursor:pointer" onClick="delBookmark({{ bookmark.id }})" class="item-heart"><i style="color: #FFF" class="fa fa-trash" title="Supprimer le favori"></i></a> <a style="cursor:pointer" onClick="delBookmark({{ bookmark.id }})" class="item-heart"><i style="color: #FFF" class="fa fa-trash" title="Supprimer le favori"></i></a>
{% if bookmark.target == 'frame' %} {% 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" %} {% 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 %} {% 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 %} {% endif %}
<div class="item-link clearfix"> <div class="item-link clearfix">
@ -177,12 +191,17 @@
{% endif %} {% endif %}
{% else %} {% else %}
{% set datasonde = "" %}
{% if item.clicksonde %}
{% set datasonde = "class='linktosonde' data-sondetitle='"~item.title~"' data-sondeservice='"~item.clicksondeservice~"'" %}
{% endif %}
{% if item.target == 'frame' %} {% if item.target == 'frame' %}
<a class="linktosonde" data-sonde="{{ item.title }}" style="cursor:pointer" onClick="showFrameitem({{ item.id }},'{{ item.url|replace({'#login#': username}) }}')"> <a {{datasonde|raw}} style="cursor:pointer" onClick="showFrameitem({{ item.id }},'{{ item.url|replace({'#login#': username}) }}')">
{% elseif item.target == "_self" %} {% 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 {{datasonde|raw}} href="{{ item.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ item.target }}{% endif %}">
{% else %} {% else %}
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url|replace({'#login#': username}) }}" target="{{ item.target }}"> <a {{datasonde|raw}} href="{{ item.url|replace({'#login#': username}) }}" target="{{ item.target }}">
{% endif %} {% endif %}
{% endif %} {% endif %}
@ -197,7 +216,12 @@
<div class="grid-item-title"> <div class="grid-item-title">
<h2>{{ item.title }}</h2> <h2>{{ item.title }}</h2>
<span>{{ item.subtitle|nl2br }}</<span> <span>{{ item.subtitle|nl2br }}</span>
{% if not item.badgeurl is empty %}
<div style="margin-top:5px;text-align:center;{% if stylegrid == "grid-list"%} float: right;position: absolute;top: 10px;right: -50px; {%endif%}">
<div class="itembadgeurl badge badge-pill" data-url="{{item.badgeurl}}" style="background-color: #ffffff; color: {{ item.color ? "#"~item.color : '#'~colormain }};"></div>
</div>
{% endif %}
</div> </div>
</div> </div>
</a> </a>

View File

@ -28,11 +28,11 @@
<div class="widget widget-mini widget-link" data-id="{{ entity.id }}" loc="{{ entity.loc }}"> <div class="widget widget-mini widget-link" data-id="{{ entity.id }}" loc="{{ entity.loc }}">
<div class="widgetheader"> <div class="widgetheader">
{% if target == 'frame' %} {% if target == 'frame' %}
<a class="linktosonde" data-sonde="{{ entity.name }}" style="cursor:pointer; {{ stylelink }}" onClick="showFrameitem('link{{ entity.id }}','{{ url|replace({'#login#': username}) }}')"> <a style="cursor:pointer; {{ stylelink }}" onClick="showFrameitem('link{{ entity.id }}','{{ url|replace({'#login#': username}) }}')">
{% elseif target == "_self" %} {% elseif target == "_self" %}
<a class="linktosonde" data-sonde="{{ entity.name }}" style="{{ stylelink }}"href="{{ url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ target }}{% endif %}"> <a style="{{ stylelink }}"href="{{ url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ target }}{% endif %}">
{% else %} {% else %}
<a class="linktosonde" data-sonde="{{ entity.name }}" style="{{ stylelink }}" href="{{ url|replace({'#login#': username}) }}" target="{{ target }}"> <a style="{{ stylelink }}" href="{{ url|replace({'#login#': username}) }}" target="{{ target }}">
{% endif %} {% endif %}
{% if entity.icon %} {% if entity.icon %}
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo" title="{{entity.name}}" /> <img src="/{{ alias }}/{{ entity.icon.label }}" class="logo" title="{{entity.name}}" />
@ -54,11 +54,11 @@
<div class="widgetheader" style="{{ stylewidgetbodyimage }}; height:100%;"> <div class="widgetheader" style="{{ stylewidgetbodyimage }}; height:100%;">
{% if target == 'frame' %} {% if target == 'frame' %}
<a class="linktosonde" data-sonde="{{ entity.name }}" style="cursor:pointer; {{ stylelink }}" onClick="showFrameitem('link{{ entity.id }}','{{ url|replace({'#login#': username}) }}')"> <a style="cursor:pointer; {{ stylelink }}" onClick="showFrameitem('link{{ entity.id }}','{{ url|replace({'#login#': username}) }}')">
{% elseif target == "_self" %} {% elseif target == "_self" %}
<a class="linktosonde" data-sonde="{{ entity.name }}" style="{{ stylelink }}"href="{{ url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ target }}{% endif %}"> <a style="{{ stylelink }}"href="{{ url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ target }}{% endif %}">
{% else %} {% else %}
<a class="linktosonde" data-sonde="{{ entity.name }}" style="{{ stylelink }}" href="{{ url|replace({'#login#': username}) }}" target="{{ target }}"> <a style="{{ stylelink }}" href="{{ url|replace({'#login#': username}) }}" target="{{ target }}">
{% endif %} {% endif %}
{% if entity.icon %} {% if entity.icon %}
<img src="/{{ alias }}/{{ entity.icon.label }}" style="max-height: 100%; width: auto; display: block; margin: auto; padding-top: 10px;" /> <img src="/{{ alias }}/{{ entity.icon.label }}" style="max-height: 100%; width: auto; display: block; margin: auto; padding-top: 10px;" />

View File

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

View File

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

View File

@ -51,13 +51,17 @@ class ChatController extends Controller
if(!$group) die(); if(!$group) die();
// Génération d'une clé temporaire d'accès au chat // Génération d'une clé temporaire d'accès au chat
$key = Uuid::uuid4();
$usergroup=$em->getRepository("CadolesCoreBundle:UserGroup")->findOneBy(["group"=>$group,"user"=>$user]); $usergroup=$em->getRepository("CadolesCoreBundle:UserGroup")->findOneBy(["group"=>$group,"user"=>$user]);
$key=null;
if($usergroup) { if($usergroup) {
$key=$usergroup->getKeyvalue();
if(is_null($key)) {
$key = Uuid::uuid4();
$usergroup->setKeyvalue($key); $usergroup->setKeyvalue($key);
$em->persist($usergroup); $em->persist($usergroup);
$em->flush(); $em->flush();
} }
}
// Récupération des message parent du groupe // Récupération des message parent du groupe

View File

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

View File

@ -362,7 +362,8 @@
function websocket() function websocket()
{ {
var _WS_URI = "wss://{{ gos_web_socket_server_host }}:{{ gos_web_socket_server_port }}"; var _WS_URI = "wss://{{ gos_web_socket_server_host }}";
console.log(_WS_URI);
webSocket = WS.connect(_WS_URI,{retryDelay: delayRetry}); webSocket = WS.connect(_WS_URI,{retryDelay: delayRetry});
webSocket.on("socket/connect", function (sess) { webSocket.on("socket/connect", function (sess) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

@ -9,23 +9,6 @@ Alias /ninegate /var/www/html/ninegate/web
</Directory> </Directory>
%if %%getVar("ninegate_activate_websocket", 'non') == "oui" %if %%getVar("ninegate_activate_websocket", 'non') == "oui"
Listen %%adresse_ip_eth0:%%ninegate_websocket_portexterne ProxyPass /wssninegate ws://0.0.0.0:5556 retry=0 keepalive=On
<VirtualHost %%adresse_ip_eth0:%%ninegate_websocket_portexterne> ProxyPassReverse /wssninegate ws://0.0.0.0:5556 retry=0
ErrorLog /var/log/apache2/ssl_error.log
CustomLog /var/log/apache2/ssl_access.log common
SSLEngine on
%if %%cert_type == "letsencrypt"
SSLCertificateFile /etc/ssl/letsencrypt/conf/live/%%ninegate_websocket_url/cert.pem
SSLCertificateKeyFile /etc/ssl/letsencrypt/conf/live/%%ninegate_websocket_url/privkey.pem
%else
SSLCertificateFile %%server_cert
SSLCertificateKeyFile %%server_key
%end if
SSLProtocol all -SSLv3 -SSLv2
ServerName %%ninegate_websocket_url
RewriteEngine On
ProxyPass / ws://%%adresse_ip_eth0:%%ninegate_websocket_portinterne retry=0 keepalive=On
ProxyPassReverse / ws://%%adresse_ip_eth0:%%ninegate_websocket_portinterne retry=0
</VirtualHost>
%end if %end if

View File

@ -67,11 +67,12 @@ INSERT IGNORE INTO `sidebar` (`id`, `parent_id`, `roworder`, `label`, `path`, `f
(3000, NULL, 3000, 'SYNCHRONISATION', NULL, 'fa fa-exchange-alt', 'ROLE_ADMIN,ROLE_MODO', 'syncenvole_activate'), (3000, NULL, 3000, 'SYNCHRONISATION', NULL, 'fa fa-exchange-alt', 'ROLE_ADMIN,ROLE_MODO', 'syncenvole_activate'),
(3001, 3000, 3001, 'Délégation', 'cadoles_portal_config_syncdelegation', 'fa fa-balance-scale', 'ROLE_ADMIN,ROLE_MODO', 'syncenvole_activate'), (3001, 3000, 3001, 'Délégation', 'cadoles_portal_config_syncdelegation', 'fa fa-balance-scale', 'ROLE_ADMIN,ROLE_MODO', 'syncenvole_activate'),
(3110, 3000, 3110, 'Balado', 'cadoles_portal_config_syncbalado', 'fa fa-microphone', 'ROLE_ADMIN,ROLE_MODO', 'widbalado_activate_syncenvole'), (3110, 3000, 3110, 'Balado', 'cadoles_portal_config_syncbalado', 'fa fa-microphone', 'ROLE_ADMIN,ROLE_MODO', 'widbalado_activate_syncenvole'),
(3112, 3000, 3112, 'CdT', 'cadoles_portal_config_synccdt', 'fa fa-star', 'ROLE_ADMIN,ROLE_MODO', 'widcdt_activate_syncenvole'),
(3115, 3000, 3115, 'GEPI via Annuaire', 'cadoles_portal_config_syncgepiannu', 'fa fa-tags', 'ROLE_ADMIN,ROLE_MODO', 'widgepi_activate_syncenvole'), (3115, 3000, 3115, 'GEPI via Annuaire', 'cadoles_portal_config_syncgepiannu', 'fa fa-tags', 'ROLE_ADMIN,ROLE_MODO', 'widgepi_activate_syncenvole'),
(3116, 3000, 3116, 'GEPI via SIECLE', 'cadoles_portal_config_syncgepisiecle', 'fa fa-tags', 'ROLE_ADMIN,ROLE_MODO', 'widgepi_activate_syncenvole'), (3116, 3000, 3116, 'GEPI via SIECLE', 'cadoles_portal_config_syncgepisiecle', 'fa fa-tags', 'ROLE_ADMIN,ROLE_MODO', 'widgepi_activate_syncenvole'),
(3120, 3000, 3120, 'Limesurvey', 'cadoles_portal_config_synclimesurvey', 'fa fa-question', 'ROLE_ADMIN,ROLE_MODO', 'activate_widlimesurvey'), (3120, 3000, 3120, 'Limesurvey', 'cadoles_portal_config_synclimesurvey', 'fa fa-question', 'ROLE_ADMIN,ROLE_MODO', 'activate_widlimesurvey'),
(3130, 3000, 3130, 'Moodle', 'cadoles_portal_config_syncmoodle', 'fa fa-graduation-cap', 'ROLE_ADMIN,ROLE_MODO', 'activate_widmoodle'), (3130, 3000, 3130, 'Moodle', 'cadoles_portal_config_syncmoodle', 'fa fa-graduation-cap', 'ROLE_ADMIN,ROLE_MODO', 'activate_widmoodle'),
(3140, 3000, 3140, 'Nexcloud', 'cadoles_portal_config_syncnextcloud', 'fa fa-cloud', 'ROLE_ADMIN,ROLE_MODO', 'widnextcloud_activate_syncenvole'), (3140, 3000, 3140, 'Nextcloud', 'cadoles_portal_config_syncnextcloud', 'fa fa-cloud', 'ROLE_ADMIN,ROLE_MODO', 'widnextcloud_activate_syncenvole'),
(3150, 3000, 3150, 'Sacoche via SIECLE', 'cadoles_portal_config_syncsacoche', 'fa fa-suitcase', 'ROLE_ADMIN,ROLE_MODO', 'widsacoche_activate_syncenvole'), (3150, 3000, 3150, 'Sacoche via SIECLE', 'cadoles_portal_config_syncsacoche', 'fa fa-suitcase', 'ROLE_ADMIN,ROLE_MODO', 'widsacoche_activate_syncenvole'),
(3160, 3000, 3160, 'Piwik', 'cadoles_portal_config_syncpiwik', 'fa fa-signal', 'ROLE_ADMIN,ROLE_MODO', 'widpiwik_activate_syncenvole'), (3160, 3000, 3160, 'Piwik', 'cadoles_portal_config_syncpiwik', 'fa fa-signal', 'ROLE_ADMIN,ROLE_MODO', 'widpiwik_activate_syncenvole'),
(3230, 3000, 3230, 'Wordpress', 'cadoles_portal_config_syncwordpress', 'fab fa-wordpress', 'ROLE_ADMIN,ROLE_MODO', 'activate_widwordpress'), (3230, 3000, 3230, 'Wordpress', 'cadoles_portal_config_syncwordpress', 'fab fa-wordpress', 'ROLE_ADMIN,ROLE_MODO', 'activate_widwordpress'),
@ -107,7 +108,7 @@ INSERT IGNORE INTO `config` (`order`, `visible`, `changeable`, `required`, `type
('052', 1, 1, 1, 'color', 'colorbody', 'ffffff', '', 'Couleur de fond de vos pages'), ('052', 1, 1, 1, 'color', 'colorbody', 'ffffff', '', 'Couleur de fond de vos pages'),
('060', 1, 1, 1, 'font', 'fontfacetitle', 'Anton-Regular', '', 'Police des titres de votre site'), ('060', 1, 1, 1, 'font', 'fontfacetitle', 'Anton-Regular', '', 'Police des titres de votre site'),
('061', 1, 1, 1, 'font', 'fontfacebody', 'Helvetica', '', 'Police des titres de votre site'), ('061', 1, 1, 1, 'font', 'fontfacebody', 'Helvetica', '', 'Police générale de votre site'),
%if %%activer_proxy_client == 'oui' %if %%activer_proxy_client == 'oui'
('200', 1, 0, 1, 'boolean', 'PROXYactivate', '1', '', 'Définit un Proxy'), ('200', 1, 0, 1, 'boolean', 'PROXYactivate', '1', '', 'Définit un Proxy'),
@ -119,12 +120,13 @@ INSERT IGNORE INTO `config` (`order`, `visible`, `changeable`, `required`, `type
('202', 1, 0, 1, 'string', 'PROXYport', '', 'PROXYactivate','Port du Proxy'), ('202', 1, 0, 1, 'string', 'PROXYport', '', 'PROXYactivate','Port du Proxy'),
%end if %end if
('500', 1, 1, 1, 'permgroup', 'permgroup', 'ROLE_ANIM', '', 'Determine quel rôle aura la permission de créer des groupes de travail'), ('500', 1, 1, 1, 'permgroup', 'permgroup', 'ROLE_ANIM', '', 'Détermine quel rôle aura la permission de créer des groupes de travail'),
('501', 1, 1, 1, 'permgroup', 'permannu', 'ROLE_USER', '', 'Determine quel rôle aura la permission de voir l\'annuaire'), ('501', 1, 1, 1, 'permgroup', 'permannu', 'ROLE_USER', '', 'Détermine quel rôle aura la permission de voir l\'annuaire'),
('502', 1, 1, 1, 'boolean', 'permunsubscribe', '0', '', 'Permettre aux utilisateurs de se désinscrire par eux-mêmes des groupes de travail'), ('502', 1, 1, 1, 'boolean', 'permunsubscribe', '0', '', 'Permettre aux utilisateurs de se désinscrire par eux-mêmes des groupes de travail'),
('503', 1, 1, 1, 'boolean', 'fgnotifgroup', '1', '', 'Activer les notifications mails sur les groupes de travail'), ('503', 1, 1, 1, 'boolean', 'fgnotifgroup', '1', '', 'Activer les notifications mails sur les groupes de travail'),
('504', 1, 1, 1, 'integer', 'timerefreshnotif', '20', '', 'Temps en secondes pour rafraîchir les messages de notifications (0 = désactivé)'),
('600', 1, 1, 1, 'string', 'labelbookmarkuser','Favoris', '', 'Titre sur la section des items créés par l\'utilisateur, et qui ne sont listés que dans cette section.'), ('600', 1, 1, 1, 'string', 'labelbookmarkuser','Favoris', '', 'Titre de la section des items créés par l\'utilisateur, et qui ne sont listés que dans cette section.'),
('601', 1, 1, 1, 'string', 'labelbookmarkitem','Mes Ressources', '', '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.'); ('601', 1, 1, 1, 'string', 'labelbookmarkitem','Mes Ressources', '', 'Titre de 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.');

6
tmpl/ninegate-nginx.conf Normal file
View File

@ -0,0 +1,6 @@
location /wssninegate {
proxy_pass https://%%container_ip_web;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

View File

@ -52,14 +52,8 @@ parameters:
%end if %end if
%if %%getVar("ninegate_activate_websocket", 'non') == "oui" %if %%getVar("ninegate_activate_websocket", 'non') == "oui"
websocket_activate: true websocket_activate: true
websocket_host: %%ninegate_websocket_url
websocket_port: %%ninegate_websocket_portexterne
websocket_portinterne: %%ninegate_websocket_portinterne
%else %else
websocket_activate: false websocket_activate: false
websocket_host: %%web_url
websocket_port: 80
websocket_portinterne: 80
%end if %end if
%if %%getVar("ninegate_activate_portal", 'non') == "oui" %if %%getVar("ninegate_activate_portal", 'non') == "oui"
portal_activate: true portal_activate: true
@ -133,6 +127,11 @@ parameters:
%else %else
ldap_tls: false ldap_tls: false
%end if %end if
%if %%getVar("ninegate_masteridentity", 'SQL') != "SQL"
ldap_user: %%ldap_reader
ldap_password: %%pwdreader("",%%ldap_reader_passfile)
%else
%if %%getVar("activer_admin_passfile", 'non') == "oui" %if %%getVar("activer_admin_passfile", 'non') == "oui"
%if %%getVar("ldap_writer", '') == "" %if %%getVar("ldap_writer", '') == ""
ldap_user: cn=admin,o=gouv,c=fr ldap_user: cn=admin,o=gouv,c=fr
@ -143,6 +142,7 @@ parameters:
%else %else
ldap_user: %%ldap_reader ldap_user: %%ldap_reader
ldap_password: %%pwdreader("",%%ldap_reader_passfile) ldap_password: %%pwdreader("",%%ldap_reader_passfile)
%end if
%end if %end if
ldap_basedn: %%ldap_base_dn ldap_basedn: %%ldap_base_dn
%if %%getVar("ninegate_ldaptype", 'LDAP') == "AD" %if %%getVar("ninegate_ldaptype", 'LDAP') == "AD"
@ -284,6 +284,20 @@ parameters:
widbalado_activate_syncenvole: false widbalado_activate_syncenvole: false
%end if %end if
%if %%getVar("ninegate_activate_widcdt", 'non') == "oui"
activate_widcdt: true
widcdt_url: %%ninegate_widcdt_url
%if %%getVar("poshprofil_typesynchro", "") == "ENT"
widcdt_activate_syncenvole: true
widcdt_syncenvole: %%ninegate_widcdt_syncenvole
%else
widcdt_activate_syncenvole: false
%end if
%else
activate_widcdt: false
widcdt_activate_syncenvole: false
%end if
%if %%getVar("ninegate_activate_widdokuwiki", 'non') == "oui" %if %%getVar("ninegate_activate_widdokuwiki", 'non') == "oui"
activate_widdokuwiki: true activate_widdokuwiki: true
widdokuwiki_url: %%ninegate_widdokuwiki_url widdokuwiki_url: %%ninegate_widdokuwiki_url
@ -300,7 +314,11 @@ parameters:
%if %%getVar("ninegate_activate_widead", 'non') == "oui" %if %%getVar("ninegate_activate_widead", 'non') == "oui"
activate_widead: true activate_widead: true
widead_url: %%ninegate_widead_url %if %%getVar("activer_ead_reverseproxy", 'non') == "oui"
widead_url: https://%%web_url:%%port_ead_reverseproxy/connect/?server=1
%else
widead_url: https://%%web_url:4200/connect/?server=1
%end if
%else %else
activate_widead: false activate_widead: false
%end if %end if
@ -536,6 +554,8 @@ parameters:
cas_host: %%eolesso_adresse cas_host: %%eolesso_adresse
cas_path: %%getVar("eolesso_cas_folder", '') cas_path: %%getVar("eolesso_cas_folder", '')
cas_port: %%eolesso_port cas_port: %%eolesso_port
cas_type: %%getVar("ninegate_typesso", 'client')
# Si mode_aut = SAML # Si mode_aut = SAML
saml_entityid: 'http://dev.nuonet.cadoles' saml_entityid: 'http://dev.nuonet.cadoles'
@ -581,6 +601,18 @@ parameters:
noreply: %%ninegate_noreply noreply: %%ninegate_noreply
%end if %end if
%if %%is_defined('adresse_imap') or %%is_defined('adresse_ip_mail')
active_imapunread: true
%if %%is_defined('adresse_imap')
imapundread_ip: %%adresse_imap
%else
imapundread_ip: %%adresse_ip_mail
%end if
%else
active_imapunread: false
imapunread_ip:
%end if
# Doctrine Configuration # Doctrine Configuration
doctrine: doctrine:
dbal: dbal:

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