This commit is contained in:
root 2019-06-13 13:15:55 +02:00
parent e161d9e575
commit 47e0c5f61c
17 changed files with 333 additions and 17 deletions

View File

@ -67,26 +67,75 @@
<variable type='string' name='ninegate_moderegistration' description="Mode de registration : none / byuser / byadmin" mandatory='True'><value>none</value></variable>
<variable type='string' name='ninegate_keyterm' description="Taille minimun du password" mandatory='True'><value>8</value></variable>
<!-- MODULE PORTAL -->
<variable type="oui/non" name='ninegate_activate_portal' description='Activer le module portail' mandatory='True'>
<value>oui</value>
</variable>
<variable type="oui/non" name='ninegate_activate_page' description='Activer le module page' mandatory='True'>
<value>oui</value>
</variable>
<variable type="oui/non" name='ninegate_activate_item' description='Activer le module item' mandatory='True'>
<value>oui</value>
</variable>
<variable type="oui/non" name='ninegate_activate_alert' description='Activer le module annonce' mandatory='True'>
<value>oui</value>
</variable>
<variable type="oui/non" name='ninegate_activate_calendar' description='Activer le module calendrier' mandatory='True'>
<value>oui</value>
</variable>
<variable type="oui/non" name='ninegate_activate_blog' description='Activer le module blog' mandatory='True'>
<value>oui</value>
</variable>
<variable type="oui/non" name='ninegate_activate_flux' description='Activer le module flux' mandatory='True'>
<value>oui</value>
</variable>
<variable type="oui/non" name='ninegate_activate_notice' description='Activer le module charte' mandatory='True'>
<value>oui</value>
</variable>
<!-- MODULE SYNCENVOLE -->
<variable type="oui/non" name='ninegate_activate_syncenvole' description='Activer le module Synchronisation Envole' mandatory='True'>
<value>oui</value>
</variable>
<!-- MODULE CRON -->
<variable type="oui/non" name='ninegate_activate_cron' description='Activer le module CRON' mandatory='True'>
<value>oui</value>
</variable>
<!-- MOODLE -->
<variable type="oui/non" name='ninegate_activate_widmoodle' description='Activer le widget Moodle' mandatory='True'>
<value>non</value>
</variable>
<variable type='string' name='ninegate_widmoodle_url' description='URL complète de votre Moodle' mandatory='True' />
<variable type='string' name='ninegate_widmoodle_apikey' description='API Key de votre Moodle' mandatory='True' />
<variable type='string' name='ninegate_widmoodle_syncenvole' description='URL Posh-Profil pour synchronisation Moodle' mandatory='True' />
<!-- LIMESURVEY -->
<variable type="oui/non" name='ninegate_activate_widlimesurvey' description='Activer le widget Limesurvey' mandatory='True'>
<value>non</value>
</variable>
<variable type='string' name='ninegate_widlimesurvey_url' description='URL complète de votre Limesurvey' mandatory='True' />
<variable type='string' name='ninegate_widlimesurvey_apiuser' description='API User de votre Limesurvey' mandatory='True' />
<variable type='string' name='ninegate_widlimesurvey_apikey' description='API Key de votre Limesurvey' mandatory='True' />
<variable type='string' name='ninegate_widlimesurvey_syncenvole' description='URL Posh-Profil pour synchronisation Limesurvey' mandatory='True' />
<!-- EMAIL -->
<variable type='string' name='ninegate_noreply' description='Adresse mail utilisé pour le noreply' mandatory='True' />
<variable type='string' name='ninegate_smtphost' description='Host du serveur SMTP' />
<variable type='string' name='ninegate_smtpport' description='Port du serveur SMTP' />
@ -95,6 +144,9 @@
<variable type='string' name='ninegate_smtpencryption' description='Type Encryptage du serveur SMTP' />
<variable type='string' name='ninegate_smtpauthmode' description='Mode Authentification du serveur SMTP' />
<!-- EOLEDB -->
<variable type='string' name='ninegate_db_mode' description='Serveur de bases de données à utiliser' mode='expert'/>
<variable type='string' name='ninegate_dbserver' description='Adresse du serveur de base de données' mode='expert'/>
<variable type='number' name='ninegate_dbport' description="Port d'écoute du serveur de base de données" mode='expert'/>
@ -155,7 +207,15 @@
<target type='variable'>ninegate_keyterm</target>
<target type='variable'>ninegate_activate_portal</target>
<target type='variable'>ninegate_activate_page</target>
<target type='variable'>ninegate_activate_item</target>
<target type='variable'>ninegate_activate_alert</target>
<target type='variable'>ninegate_activate_calendar</target>
<target type='variable'>ninegate_activate_blog</target>
<target type='variable'>ninegate_activate_flux</target>
<target type='variable'>ninegate_activate_notice</target>
<target type='variable'>ninegate_activate_syncenvole</target>
<target type='variable'>ninegate_activate_cron</target>
<target type='variable'>ninegate_noreply</target>
<target type='variable'>ninegate_smtphost</target>
@ -235,7 +295,7 @@
<!-- AFFICHAGE EN FONCTION DES MODULES ACTIVES -->
<!-- AFFICHAGE EN FONCTION Du MODULE PORTAL -->
<condition name='hidden_if_in' source='ninegate_activate_portal'>
<param>non</param>
@ -246,11 +306,26 @@
<condition name='hidden_if_in' source='ninegate_activate_portal'>
<param>oui</param>
<target type='variable'>ninegate_activate_page</target>
<target type='variable'>ninegate_activate_item</target>
<target type='variable'>ninegate_activate_alert</target>
<target type='variable'>ninegate_activate_calendar</target>
<target type='variable'>ninegate_activate_blog</target>
<target type='variable'>ninegate_activate_flux</target>
<target type='variable'>ninegate_activate_notice</target>
</condition>
<!-- AFFICHAGE EN FONCTION Du MODULE SYNCENVOLE -->
<condition name='hidden_if_in' source='ninegate_activate_syncenvole'>
<param>non</param>
<target type='variable'>ninegate_widmoodle_syncenvole</target>
<target type='variable'>ninegate_widlimesurvey_syncenvole</target>
</condition>
<!-- AFFICHAGE EN FONCTION DU WIDGET MOODLE -->
<fill name='calc_multi_condition' target='ninegate_activate_widmoodle'>
@ -266,6 +341,7 @@
<target type='variable'>ninegate_widmoodle_url</target>
<target type='variable'>ninegate_widmoodle_apikey</target>
<target type='variable'>ninegate_widmoodle_syncenvole</target>
</condition>
<fill name='calc_multi_condition' target='ninegate_widmoodle_url'>
@ -282,6 +358,12 @@
<param name='default_mismatch'>None</param>
</fill>
<fill name='calc_multi_condition' target='ninegate_widmoodle_syncenvole'>
<param>oui</param>
<param type='eole' name='condition_1' hidden='False'>activer_moodle</param>
<param name='match'>/posh-profil</param>
<param name='default_mismatch'>None</param>
</fill>
@ -300,6 +382,7 @@
<target type='variable'>ninegate_widlimesurvey_url</target>
<target type='variable'>ninegate_widlimesurvey_apiuser</target>
<target type='variable'>ninegate_widlimesurvey_apikey</target>
<target type='variable'>ninegate_widlimesurvey_syncenvole</target>
</condition>
<fill name='calc_multi_condition' target='ninegate_widlimesurvey_url'>
@ -323,6 +406,12 @@
<param name='default_mismatch'>None</param>
</fill>
<fill name='calc_multi_condition' target='ninegate_widlimesurvey_syncenvole'>
<param>oui</param>
<param type='eole' name='condition_1' hidden='False'>activer_limesurvey</param>
<param name='match'>/posh-profil</param>
<param name='default_mismatch'>None</param>
</fill>

View File

@ -86,6 +86,8 @@ oneup_uploader:
frontend: dropzone # or any uploader you use in the frontend
logo:
frontend: dropzone # or any uploader you use in the frontend
niveau01:
frontend: dropzone # or any uploader you use in the frontend
header:
frontend: dropzone # or any uploader you use in the frontend
icon:

View File

@ -137,7 +137,7 @@ class PurgeFileCommand extends Command
}
}
// /web/uploads/header
// /web/uploads/logo
$this->writelnred('');
$this->writelnred('== Directory = Logo');
@ -164,6 +164,33 @@ class PurgeFileCommand extends Command
}
}
// /web/uploads/niveau01
$this->writelnred('');
$this->writelnred('== Directory = Niveau01');
$directory=$this->container->get('kernel')->getRootDir()."/../web/uploads/niveau01";
$files=[];
$fs = new Filesystem();
if($fs->exists($directory)) {
$finder = new Finder();
$finder->in($directory)->files();
foreach (iterator_to_array($finder) as $file) {
$name = $file->getRelativePathname();
if($name!="logo.png") {
$entity=$this->em->getRepository("CadolesCoreBundle:Niveau01")->findBy(["logo"=>"uploads/niveau01/".$name]);
if(!$entity) {
$this->writeln($name);
$url=$directory."/".$name;
if($fs->exists($url)) {
$fs->remove($url);
}
}
}
}
}
// /web/uploads/slide
$this->writelnred('');
$this->writelnred('== Directory = Slide');

View File

@ -8,7 +8,7 @@ INSERT IGNORE INTO `niveau01` (`id`, `label`, `siren`) VALUES
(-100, 'DRAAF', '130007107');
INSERT IGNORE INTO `user` (`id`, `niveau01_id`, `username`, `firstname`, `lastname`, `password`, `email`, `avatar`, `role`,`siren`,`authlevel`) VALUES
(-100, -100, 'admin', 'Administrateur', 'draaf', '{SSHA}/Ord89DmD7WPXj/gZEt7CEvzfhNztOLv
(-100, -100, 'admin', 'Administrateur', 'draaf', '{SSHA}cj+q8n2VNxVgxAnOvUTqa4Omf/YCfNkC
', 'admin@transnum.cadol.es', 'admin.jpg', 'ROLE_ADMIN', '130007107', 'simple');

View File

@ -219,6 +219,15 @@ class Niveau01Controller extends Controller
]);
}
public function logoAction()
{
return $this->render('CadolesCoreBundle:Niveau01:logo.html.twig',[
'useheader' => false,
'usemenu' => false,
'usesidebar' => false,
]);
}
protected function getDatas()
{
$em = $this->getDoctrine()->getManager();

View File

@ -34,6 +34,16 @@ class Niveau01
*/
private $siren;
/**
* @ORM\Column(type="boolean")
*/
private $showsubappname;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $logo;
/**
* @ORM\Column(type="text", nullable=true)
*/
@ -81,6 +91,7 @@ class Niveau01
*/
protected $items;
/**
* Constructor
*/
@ -151,6 +162,54 @@ class Niveau01
return $this->siren;
}
/**
* Set showsubappname
*
* @param boolean $showsubappname
*
* @return Niveau01
*/
public function setShowsubappname($showsubappname)
{
$this->showsubappname = $showsubappname;
return $this;
}
/**
* Get showsubappname
*
* @return boolean
*/
public function getShowsubappname()
{
return $this->showsubappname;
}
/**
* Set logo
*
* @param string $logo
*
* @return Niveau01
*/
public function setLogo($logo)
{
$this->logo = $logo;
return $this;
}
/**
* Get logo
*
* @return string
*/
public function getLogo()
{
return $this->logo;
}
/**
* Set ldapfilter
*

View File

@ -90,6 +90,7 @@
$iconniveau02 =$this->container->getParameter('iconniveau02');
$labelsniveau02 =$this->container->getParameter('labelsniveau02');
$labelniveau02 =$this->container->getParameter('labelsniveau02');
$session->set('viewniveau02',$viewniveau02);
$session->set('labelniveau02',$labelniveau02);
$moderegistration =$this->container->getParameter('moderegistration');
@ -204,6 +205,7 @@
$session->set('cancreatepage',false);
$session->set('cancreatecalendar',false);
$session->set('cancreateblog',false);
$session->remove("sublogo");
if($curentuser!="anon.") {
$groups=$curentuser->getGroups();
@ -213,6 +215,14 @@
if($group->getFgcancreatecalendar()) $session->set('cancreatecalendar',true);
if($group->getFgcancreateblog()) $session->set('cancreateblog',true);
}
$niveau01=$curentuser->getNiveau01();
if($niveau01->getShowsubappname())
$session->set("subappname", $niveau01->getLabel());
if(!is_null($niveau01->getLogo()))
$session->set("sublogo", $niveau01->getLogo());
}
}
}

View File

@ -13,6 +13,7 @@ use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Doctrine\ORM\EntityRepository;
@ -44,7 +45,19 @@ class Niveau01Type extends AbstractType
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px")
)
);
$choices=array("oui" => "1","non" => "0");
$builder->add("showsubappname",
ChoiceType::class,array(
"label" =>"Afficher en tant que sous-titre ? ",
'disabled' => ($options["mode"]=="delete"?true:false),
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px"),
"choices" => $choices
)
);
$builder->add('logo',HiddenType::class);
// Si masteridentity = LDAP alors on demande obligatoirement le filtre des utilisateurs qui appartiennent à ce niveau01
if($options["masteridentity"]=="LDAP")
{

View File

@ -243,6 +243,10 @@ cadoles_core_config_niveau01_ajax_list:
path: /config/niveau01/ajax/list
defaults: { _controller: CadolesCoreBundle:Niveau01:ajaxlist }
cadoles_core_config_niveau01_logo:
path: /config/niveau01/logo
defaults: { _controller: CadolesCoreBundle:Niveau01:logo }
#== Niveau02 =============================================================================================================
cadoles_core_config_niveau02:
path: /config/niveau02

View File

@ -35,12 +35,25 @@ body {
.header #logo{
text-decoration: none;
margin:10px 10px 0px 10px;
margin:20px 0px 0px 0px;
float:left;
}
.header #logo:nth-of-type(1){
margin-left:10px;
}
.header span {
float:left;
padding-left: 10px;
}
.header small {
position: absolute;
top: 35px;
font-size: 20px;
margin-left: 5px;
height: 20px;
}
@media (max-width: 767px) {
@ -56,7 +69,6 @@ body {
}
.navbar-brand img {
width:40px;
height:40px;
margin-right:10px;
margin-top: -10px;

View File

@ -41,6 +41,7 @@
<div class="panel-body">
{{ form_row(form.label) }}
{{ form_row(form.siren) }}
{{ form_row(form.showsubappname) }}
{% if masteridentity=="LDAP" %}
{{ form_row(form.ldapfilter) }}
{% endif %}
@ -48,10 +49,23 @@
{% if masteridentity=="SSO" %}
{{ form_row(form.attributes) }}
{% endif %}
<div style="width:150px; margin:10px auto;">
<img id="niveau01_logo_img" src="/{{ alias }}/{{ niveau01.logo }}" style="width:90px;height:auto;margin:auto;display:block;margin-bottom:5px;">
{{ form_widget(form.logo) }}
<a class="btn btn-info" style="width:150px" data-toggle="modal" data-target="#mymodal" onClick="ModalLoad('mymodal','Logo','{{ path('cadoles_core_config_niveau01_logo') }}');" title='Ajouter un Logo'>Modifier</a>
<a class="btn btn-danger" onClick="delLogo()" title='Détacher' style="width:100%">Détacher le Logo</a>
</div>
</div>
</div>
{{ form_end(form) }}
{% endblock %}
{% block localjavascript %}
{% endblock %}
function delLogo() {
$("#niveau01_logo_img").attr("src","");
$("#niveau01_logo").val(null);
}
{% endblock %}

View File

@ -0,0 +1,36 @@
{% extends '@CadolesCore/base.html.twig' %}
{% block pagewrapper %}
<h3 class="page-header">Téléchargez votre Logo</h3>
<a class="btn btn-default" onClick="closeModal();">Annuler</a>
<form action="{{ oneup_uploader_endpoint('niveau01') }}" class="dropzone" id="MyDropZone" style="margin-top:10px">
</form>
{% endblock %}
{% block localjavascript %}
Dropzone.options.MyDropZone = {
acceptedMimeTypes: 'image/*',
maxFiles: 1,
resizeWidth:500,
success: function( file, response ){
parent.$("#niveau01_logo").val("uploads/niveau01/"+response["file"]);
parent.$("#niveau01_logo_img").attr("src","/{{ alias }}/uploads/niveau01/"+response["file"]);
closeModal();
}
}
function closeModal() {
window.parent.$("#mymodal").modal('hide');
}
$(window).load(function () {
// On vérifie que l'execution se fait bien dans le cadre d'une modal
if(!window.parent.$("#mymodal #framemodal").length) {
$(location).attr('href',"{{ path('cadoles_core_home') }}");
}
});
{% endblock %}

View File

@ -25,7 +25,7 @@
<thead>
<tr>
{% if access=="config" %}
<th width="70px" class="no-sort">Action</th>
<th width="90px" class="no-sort">Action</th>
{% endif %}
<th width="70px" class="no-sort">Avatar</th>
<th width="200px">Login</th>

View File

@ -29,6 +29,7 @@
{{ include('@CadolesCore/Include/head.html.twig') }}
<style>
{% block localstyle %}
{% endblock %}
@ -51,8 +52,17 @@
{% if useheader %}
<div class="header" style="height:{{ heightheader }}px; background-image: linear-gradient(90deg,rgba({{ colorR }},{{ colorG }},{{ colorB }},1),rgba({{ colorR }},{{ colorG }},{{ colorB }},0.1)),url(/{{ alias }}/{{ header }});">
<a class="title" style="cursor: pointer" href="{{ path("cadoles_core_home") }}">
<img id="logo" src="/{{ alias }}/{{ logo }}" style="height:{{ heightheader-20 }}px;">
<span style="height:{{ heightheader }}px; line-height:{{ heightheader }}px;">{{ app.session.get('appname') }}</span>
<img id="logo" src="/{{ alias }}/{{ logo }}" style="height:{{ heightheader-40 }}px;">
{% if not app.session.get('sublogo') is empty %}
<img id="logo" src="/{{ alias }}/{{ app.session.get('sublogo') }}" style="height:{{ heightheader-40 }}px;">
{% endif %}
<span style="height:{{ heightheader }}px; line-height:{{ heightheader }}px;">
{{ app.session.get('appname') }}
{% if not app.session.get('subappname') is empty %}
<small>{{ app.session.get('subappname') }}</small>
{% endif %}
</span>
</a>
<div class="navbar-header">

View File

@ -8,12 +8,11 @@
> Déplacement de widget vers une autre page du meme user
> widget ToDo
> widget opened/closed
> Améliorer la selection des users avec droits d'écriture sur blog / calendar
> Ajouter notion de user avec droits d'écriture sur page
> Widgets Envole
> Items Envole
> Synchronisation posh-profil à revoir
@ -21,7 +20,29 @@
> Séparateur milier sur datatable
> Donner des permissions d'écritures sur les calendriers comme sur le blog
> Couleur sur blog
> Retour Home page sur permission de deniers
> Import de compte
> Widget opened/closed
> Widget Moodle
> Widget Open Office
> Role Animateur de Groupe
> Widget invitation
> Notification
> Synchronisation posh-profil
> Favorie sur appexternal
> Montée de version LemonLDAP
> France Connect Agent
> Page Blanche paramétrable
> Fiche user paramétrable
> Sonde Piwik
> Widgets Envole
- Limesurvey
- Limesurvey Admin
- Moodle
- Wordpress
- Opensondage

View File

@ -5,11 +5,11 @@ SET time_zone = '+00:00';
SET foreign_key_checks = 0;
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
INSERT IGNORE INTO `niveau01` (`id`, `label`, `siren`) VALUES
INSERT IGNORE INTO `niveau01` (`id`, `label`, `siren`, `showsubappname`) VALUES
%if %%is_defined("ninegate_niveau01name")
(-100, '%%ninegate_niveau01name', '%%ninegate_niveau01siren');
(-100, '%%ninegate_niveau01name', '%%ninegate_niveau01siren',0);
%else
(-100, '%%libelle_etab', '%%numero_etab');
(-100, '%%libelle_etab', '%%numero_etab',0);
%end if
%if %%getVar("ninegate_syncldap", 'non') == "oui"

View File

@ -26,7 +26,16 @@ parameters:
%end if
# Activation module
%if %%getVar("ninegate_activate_cron", 'non') == "oui"
cron_activate: true
%else
cron_activate: false
%end if
%if %%getVar("ninegate_activate_syncenvole", 'non') == "oui"
syncenvole_activate: true
%else
syncenvole_activate: false
%end if
%if %%getVar("ninegate_activate_portal", 'non') == "oui"
portal_activate: true
module_activate: false
@ -45,7 +54,7 @@ parameters:
%else
page_activate: false
%end if
%if %%getVar("ninegate_activate_item", 'non') == "oui"
%if %%getVar("ninegate_activate_item", 'non') == "oui"
module_activate: true
item_activate: true
%else
@ -169,6 +178,7 @@ parameters:
widlimesurvey_url: %%ninegate_widlimesurvey_url
widlimesurvey_apiuser: %%ninegate_widlimesurvey_apiuser
widlimesurvey_apikey: %%ninegate_widlimesurvey_apikey
widlimesurvey_syncenvole: %%ninegate_widlimesurvey_syncenvole
%else
activate_widlimesurvey: false
%end if