Compare commits
9 Commits
2262bebcda
...
28e9c37e48
Author | SHA1 | Date |
---|---|---|
Arnaud Fornerot | 28e9c37e48 | |
afornerot | 87ce3767fa | |
afornerot | 02a8b475f7 | |
afornerot | ce5552e610 | |
afornerot | 52ad21060b | |
afornerot | 7ce296fd29 | |
afornerot | 198ebd14f5 | |
afornerot | 4f3efd5776 | |
afornerot | c08719deda |
|
@ -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}d+3hdhVA7sp4QIbp8DlYbcKNekrYbPkG
|
||||
(-100, -100, 'admin', 'Administrateur', 'draaf', '{SSHA}wVosXEVYfrthFQKc0AqqOtZZXDWT3re1
|
||||
', 'admin@ldapbundle.ac-arno.fr', 'admin.jpg', 'ROLE_ADMIN', '130007107', 'simple');
|
||||
|
||||
|
||||
|
|
|
@ -317,6 +317,9 @@ class ConfigController extends Controller
|
|||
|
||||
$fields["role"]["perm"]=1;
|
||||
$fields["role"]["label"]="Rôles";
|
||||
|
||||
$fields["telephonenumber"]["perm"]=1;
|
||||
$fields["telephonenumber"]["label"]="Téléphone";
|
||||
}
|
||||
else {
|
||||
$fields=json_decode($fields, true);
|
||||
|
|
|
@ -76,6 +76,7 @@ class CoreController extends Controller
|
|||
foreach($fields as $key => $field) {
|
||||
// Si champs obligatoire
|
||||
if($field["perm"]==2) {
|
||||
dump($key);
|
||||
switch($key) {
|
||||
case "firstname": if($user->getFirstname()=="") $toprofil=true; break;
|
||||
case "visible": if($user->getVisible()=="") $toprofil=true; break;
|
||||
|
@ -93,12 +94,13 @@ class CoreController extends Controller
|
|||
case "birthcountry": if($user->getBirthcountry()=="") $toprofil=true; break;
|
||||
case "birthplace": if($user->getBirthplace()=="") $toprofil=true; break;
|
||||
}
|
||||
dump($toprofil);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($toprofil) {
|
||||
return $this->redirect($this->generateUrl('cadoles_core_profil',array("info"=>"Merci de compléter votre profil")));
|
||||
return $this->redirect($this->generateUrl('cadoles_core_user',array("info"=>"Merci de compléter votre profil")));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -188,7 +188,7 @@ class GroupController extends Controller
|
|||
|
||||
$userinfo="";
|
||||
if($data->getOwner()) {
|
||||
$userinfo.="<img src='/".$this->container->getParameter('alias')."/uploads/avatar/".$data->getOwner()->getAvatar()."' class='avatar' style='margin:0px 5px 0px 0px;display:inline-block;'>";
|
||||
$userinfo.="<img style='cursor:pointer' onClick='seeUser(".$data->getOwner()->getId().")' src='/".$this->container->getParameter('alias')."/uploads/avatar/".$data->getOwner()->getAvatar()."' class='avatar' style='margin:0px 5px 0px 0px;display:inline-block;'>";
|
||||
$userinfo.=$data->getOwner()->getUsername();
|
||||
}
|
||||
|
||||
|
@ -331,7 +331,7 @@ class GroupController extends Controller
|
|||
$fgmanager="<input type='checkbox' class='switch' onChange='switchManager(".$data->getId().");'>";
|
||||
|
||||
// Avatar
|
||||
$avatar="<img src='/".$this->container->getParameter('alias')."/uploads/avatar/".$data->getAvatar()."' style='width:30px;background-color:#337ab7;margin:auto;display:block;'>";
|
||||
$avatar="<img onClick='seeUser(".$data->getId().")' src='/".$this->container->getParameter('alias')."/uploads/avatar/".$data->getAvatar()."' style='width:30px;background-color:#337ab7;margin:auto;display:block;cursor:pointer;'>";
|
||||
|
||||
array_push($output["data"],array("DT_RowId"=>"user".$data->getId(),$action,$avatar,$data->getUsername(),$data->getEmail(),$fgmanager));
|
||||
}
|
||||
|
@ -463,7 +463,7 @@ class GroupController extends Controller
|
|||
$action.="<a style='cursor:pointer' onClick='delUsers(".$data->getId().")'><i class='fa fa-minus fa-fw'></i></a>";
|
||||
|
||||
// Avatar
|
||||
$avatar="<img src='/".$this->container->getParameter('alias')."/uploads/avatar/".$data->getAvatar()."' style='width:30px;background-color:#337ab7;margin:auto;display:block;'>";
|
||||
$avatar="<img onClick='seeUser(".$data->getId().")' src='/".$this->container->getParameter('alias')."/uploads/avatar/".$data->getAvatar()."' style='width:30px;background-color:#337ab7;margin:auto;display:block;cursor:pointer'>";
|
||||
|
||||
// Flag manager
|
||||
$fgmanager="";
|
||||
|
|
|
@ -65,10 +65,14 @@ class UserController extends Controller
|
|||
$draw= $request->query->get('draw');
|
||||
$order= $request->query->get('order');
|
||||
$viewniveau02=$this->getParameter('viewniveau02');
|
||||
$fields=$this->getDefaultDatauser();
|
||||
$fgusevisible=!($fields["visible"]["perm"]==0);
|
||||
|
||||
// Nombre total d'enregistrement
|
||||
if($this->isGranted('ROLE_ADMIN')||$access=="user")
|
||||
if($access=="config") {
|
||||
if($this->isGranted('ROLE_ADMIN')) {
|
||||
$total = $em->createQueryBuilder()->select('COUNT(user)')->from($this->labelentity,'user')->getQuery()->getSingleScalarResult();
|
||||
}
|
||||
elseif($this->isGranted('ROLE_MODO')) {
|
||||
$usermodo=$this->get('security.token_storage')->getToken()->getUser()->getId();
|
||||
$total = $em->createQueryBuilder()
|
||||
|
@ -80,21 +84,22 @@ class UserController extends Controller
|
|||
->setParameter("userid", $usermodo)
|
||||
->getQuery()->getSingleScalarResult();
|
||||
}
|
||||
elseif($this->isGranted('ROLE_ANIM')||$this->isGranted('ROLE_USER')) {
|
||||
$niveau01=$this->get('security.token_storage')->getToken()->getUser()->getNiveau01();
|
||||
$total = $em->createQueryBuilder()
|
||||
->select('COUNT(user)')
|
||||
->from($this->labelentity,'user')
|
||||
->where("user.niveau01 = :niveau01")
|
||||
->setParameter("niveau01", $niveau01)
|
||||
->getQuery()->getSingleScalarResult();
|
||||
}
|
||||
else {
|
||||
if($fgusevisible) {
|
||||
$total = $em->createQueryBuilder()->select('COUNT(user)')->from($this->labelentity,'user')->where('user.visible=true')->getQuery()->getSingleScalarResult();
|
||||
}
|
||||
else {
|
||||
$total = $em->createQueryBuilder()->select('COUNT(user)')->from($this->labelentity,'user')->getQuery()->getSingleScalarResult();
|
||||
}
|
||||
}
|
||||
|
||||
// Nombre d'enregistrement filtré
|
||||
if($search["value"]=="")
|
||||
$totalf = $total;
|
||||
else {
|
||||
if($this->isGranted('ROLE_ADMIN')||$access=="user")
|
||||
if($access=="config") {
|
||||
if($this->isGranted('ROLE_ADMIN')) {
|
||||
$totalf= $em->createQueryBuilder()
|
||||
->select('COUNT(user)')
|
||||
->from('CadolesCoreBundle:User','user')
|
||||
|
@ -104,7 +109,8 @@ class UserController extends Controller
|
|||
->setParameter("value", "%".$search["value"]."%")
|
||||
->getQuery()
|
||||
->getSingleScalarResult();
|
||||
elseif($this->isGranted('ROLE_MODO'))
|
||||
}
|
||||
elseif($this->isGranted('ROLE_MODO')) {
|
||||
$totalf= $em->createQueryBuilder()
|
||||
->select('COUNT(user)')
|
||||
->from('CadolesCoreBundle:User','user')
|
||||
|
@ -118,19 +124,34 @@ class UserController extends Controller
|
|||
->setParameter("value", "%".$search["value"]."%")
|
||||
->getQuery()
|
||||
->getSingleScalarResult();
|
||||
elseif($this->isGranted('ROLE_ANIM')||$this->isGranted('ROLE_USER'))
|
||||
}
|
||||
}
|
||||
else {
|
||||
if($fgusevisible) {
|
||||
$totalf= $em->createQueryBuilder()
|
||||
->select('COUNT(user)')
|
||||
->from('CadolesCoreBundle:User','user')
|
||||
->from('CadolesCoreBundle:Niveau01', 'niveau01')
|
||||
->where('user.niveau01=niveau01.id')
|
||||
->andWhere('user.visible=true')
|
||||
->andWhere('user.username LIKE :value OR user.firstname LIKE :value OR user.lastname LIKE :value OR user.email LIKE :value OR user.role LIKE :value OR niveau01.label LIKE :value')
|
||||
->setParameter("value", "%".$search["value"]."%")
|
||||
->getQuery()
|
||||
->getSingleScalarResult();
|
||||
}
|
||||
else {
|
||||
$totalf= $em->createQueryBuilder()
|
||||
->select('COUNT(user)')
|
||||
->from('CadolesCoreBundle:User','user')
|
||||
->from('CadolesCoreBundle:Niveau01', 'niveau01')
|
||||
->where('user.niveau01=niveau01.id')
|
||||
->andWhere('user.username LIKE :value OR user.firstname LIKE :value OR user.lastname LIKE :value OR user.email LIKE :value OR user.role LIKE :value OR niveau01.label LIKE :value')
|
||||
->andWhere("user.niveau01 = :niveau01")
|
||||
->setParameter("niveau01", $niveau01)
|
||||
->setParameter("value", "%".$search["value"]."%")
|
||||
->getQuery()
|
||||
->getSingleScalarResult();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Construction du tableau de retour
|
||||
$output = array(
|
||||
|
@ -142,7 +163,8 @@ class UserController extends Controller
|
|||
|
||||
// Parcours des Enregistrement
|
||||
$qb = $em->createQueryBuilder();
|
||||
if($this->isGranted('ROLE_ADMIN')||$access=="user") {
|
||||
if($access=="config") {
|
||||
if($this->isGranted('ROLE_ADMIN')) {
|
||||
$qb->select('user')->from($this->labelentity,'user')->from('CadolesCoreBundle:Niveau01','niveau01');
|
||||
$qb->where('user.niveau01=niveau01.id');
|
||||
}
|
||||
|
@ -153,11 +175,11 @@ class UserController extends Controller
|
|||
->andWhere("usermodo.user = :userid")
|
||||
->setParameter("userid", $usermodo);
|
||||
}
|
||||
elseif($this->isGranted('ROLE_ANIM')||$this->isGranted('ROLE_USER')) {
|
||||
}
|
||||
else {
|
||||
$qb->select('user')->from($this->labelentity,'user')->from('CadolesCoreBundle:Niveau01','niveau01');
|
||||
$qb->where('user.niveau01=niveau01.id')
|
||||
->andwhere("user.niveau01 = :niveau01")
|
||||
->setParameter("niveau01", $niveau01);
|
||||
$qb->where('user.niveau01=niveau01.id');
|
||||
if($fgusevisible) $qb->andWhere('user.visible=true');
|
||||
}
|
||||
|
||||
if($search["value"]!="") {
|
||||
|
@ -184,10 +206,14 @@ class UserController extends Controller
|
|||
break;
|
||||
|
||||
case 6 :
|
||||
$qb->orderBy('user.telephonenumber',$order[0]["dir"]);
|
||||
break;
|
||||
|
||||
case 7 :
|
||||
$qb->orderBy('niveau01.label',$order[0]["dir"]);
|
||||
break;
|
||||
|
||||
case 9 :
|
||||
case 10 :
|
||||
$qb->orderBy('user.role',$order[0]["dir"]);
|
||||
break;
|
||||
}
|
||||
|
@ -211,10 +237,14 @@ class UserController extends Controller
|
|||
break;
|
||||
|
||||
case 5 :
|
||||
$qb->orderBy('user.telephonenumber',$order[0]["dir"]);
|
||||
break;
|
||||
|
||||
case 6 :
|
||||
$qb->orderBy('niveau01.label',$order[0]["dir"]);
|
||||
break;
|
||||
|
||||
case 7 :
|
||||
case 8 :
|
||||
$qb->orderBy('user.role',$order[0]["dir"]);
|
||||
break;
|
||||
}
|
||||
|
@ -240,11 +270,12 @@ class UserController extends Controller
|
|||
|
||||
$tmp=array();
|
||||
if($access=="config") array_push($tmp,$action);
|
||||
array_push($tmp,"<img src='/".$this->container->getParameter('alias')."/uploads/avatar/".$data->getAvatar()."' class='avatar' style='margin:auto;display:block;'>");
|
||||
array_push($tmp,"<img style='cursor:pointer' onClick='seeUser(".$data->getId().")' src='/".$this->container->getParameter('alias')."/uploads/avatar/".$data->getAvatar()."' class='avatar' style='margin:auto;display:block;'>");
|
||||
array_push($tmp,$data->getUsername());
|
||||
array_push($tmp,$data->getLastname());
|
||||
array_push($tmp,$data->getFirstname());
|
||||
array_push($tmp,"<a href='mailto:".$data->getEmail()."'>".$data->getEmail()."</a>");
|
||||
array_push($tmp,$data->getTelephonenumber());
|
||||
array_push($tmp,$data->getNiveau01()->getLabel());
|
||||
if($viewniveau02) array_push($tmp,($data->getNiveau02()!==null?$data->getNiveau02()->getLabel():""));
|
||||
array_push($tmp,$groups);
|
||||
|
@ -704,7 +735,17 @@ class UserController extends Controller
|
|||
return $this->updateAction($user->getId(),"user",$request);
|
||||
}
|
||||
|
||||
public function viewAction($id, Request $request)
|
||||
{
|
||||
$user=$this->getData($id);
|
||||
|
||||
return $this->render('CadolesCoreBundle:User:view.html.twig', [
|
||||
'useheader' => false,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => false,
|
||||
"user" => $user
|
||||
]);
|
||||
}
|
||||
|
||||
public function importuserAction(Request $request) {
|
||||
if($this->GetParameter("masteridentity")!="SQL")
|
||||
|
|
|
@ -265,6 +265,10 @@ cadoles_core_user_users:
|
|||
path: /user/users
|
||||
defaults: { _controller: CadolesCoreBundle:User:list, access: user }
|
||||
|
||||
cadoles_core_user_view:
|
||||
path: /user/view/{id}
|
||||
defaults: { _controller: CadolesCoreBundle:User:view }
|
||||
|
||||
|
||||
#== Niveau01 =============================================================================================================
|
||||
cadoles_core_config_niveau01:
|
||||
|
|
|
@ -603,6 +603,7 @@ a.item-heart {
|
|||
position: absolute;
|
||||
margin-left:50px;
|
||||
cursor: pointer;
|
||||
font-size: 1.5vw;
|
||||
}
|
||||
|
||||
.widgetheader iframe,
|
||||
|
@ -619,6 +620,12 @@ a.item-heart {
|
|||
height:100%;
|
||||
}
|
||||
|
||||
@media (max-width: 991px) {
|
||||
.widgetheader .title {
|
||||
font-size: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
/*== FEED ===============================================================================================================================================*/
|
||||
|
||||
.cat-list-feed {
|
||||
|
|
|
@ -3,7 +3,10 @@
|
|||
|
||||
// Instance the tour
|
||||
function MyTour() {
|
||||
var template="<div class='popover tour' style='max-width:500px !important;'><div class='arrow'></div><h3 class='popover-title'></h3><div class='popover-content'></div><div class='popover-navigation'><button class='btn btn-sm btn-default' data-role='prev'>« Prec</button><button class='btn btn-sm btn-default' data-role='next'>Suiv »</button><button class='btn btn-sm btn-default' data-role='end'>Fin</button></div></div>";
|
||||
var tour = new Tour({
|
||||
name: "tour",
|
||||
template: template,
|
||||
steps: [
|
||||
{
|
||||
element: "#logo",
|
||||
|
@ -13,14 +16,84 @@ function MyTour() {
|
|||
{
|
||||
element: "#menu-profil",
|
||||
title: "Votre Profil",
|
||||
content: "Vous pouvez modifier les informations vous concernant à cet emplacement"
|
||||
placement : "left",
|
||||
content: "Vous pouvez modifier les informations vous concernant à cet emplacement. A droite du bouton 'profil', vous trouvez le bouton vous permettant de vous déconnecter du portail"
|
||||
},
|
||||
{
|
||||
element: "#menu-notice",
|
||||
title: "Charte utilisateur",
|
||||
placement : "left",
|
||||
content: "Vous pouvez consulter ici la charte d'utilisation du portail qui précise les conditions que vous vous engagez à respecter notamment en termes de sécurité et de protection des données"
|
||||
},
|
||||
{
|
||||
element: "#menu-group",
|
||||
title: "Vos Groupes",
|
||||
placement : "left",
|
||||
content: "Vous accédez ici aux groupes auxquels vous êtes inscrits"
|
||||
},
|
||||
{
|
||||
element: "#menu-annuaire",
|
||||
title: "Annuaire",
|
||||
content: "Vous pouvez recherche un utilisateur parmis l'annuaire du portail"
|
||||
placement : "left",
|
||||
content: "Vous pouvez rechercher un utilisateur dans l'annuaire du portail"
|
||||
},
|
||||
{
|
||||
element: "#appmenu",
|
||||
title: "Barre de navigation rapide",
|
||||
placement : "bottom",
|
||||
content: "Cette barre vous permet d'accéder rapidement à la page d'accueil et à vos groupes de travail"
|
||||
},
|
||||
{
|
||||
element: $("iframe").first().contents().find(".widget-itemessential").find(".widgetheader"),
|
||||
title: "le Bureau",
|
||||
placement : "right",
|
||||
content: "Dans le premier panneau d'outils ci-dessous, vous trouvez les applications qui vous sont proposées. En cliquant sur le bouton '+', vous avez accès à d'autres applications",
|
||||
container: $("iframe").first().contents().find("body")
|
||||
},
|
||||
{
|
||||
element: $("iframe").first().contents().find(".widget-group").find(".widgetheader"),
|
||||
title: "Mes Groupes de travail",
|
||||
placement : "right",
|
||||
content: "Dans le 2nd panneau d'outils ci-dessous, vous trouvez les 'groupes de travail' auxquels vous avez été invités et ceux que vous avez créés. En cliquant sur le bouton '+', vous pouvez créer un groupe de travail. ",
|
||||
container: $("iframe").first().contents().find("body")
|
||||
},
|
||||
{
|
||||
element: $("iframe").first().contents().find(".widget-blog").find(".widgetheader"),
|
||||
title: "Journaux des groupes",
|
||||
placement : "right",
|
||||
content: "Dans le 3ème panneau d'outils ci-dessous, vous trouvez les 'Journaux des Groupes' auxquels vous avez été invités et ceux que vous avez créés. ",
|
||||
container: $("iframe").first().contents().find("body")
|
||||
},
|
||||
{
|
||||
element: $("iframe").first().contents().find(".widget-alert").find(".widgetheader"),
|
||||
title: "Radio Transnum",
|
||||
placement : "left",
|
||||
content: "Dans le premier panneau de droite ci-dessous, vous trouvez les annonces et nouvelles qui concernent tous les membres du portail. ",
|
||||
container: $("iframe").first().contents().find("body")
|
||||
},
|
||||
{
|
||||
element: $("iframe").first().contents().find(".widget-groupmessage").find(".widgetheader"),
|
||||
title: "Actualités des groupes",
|
||||
placement : "left",
|
||||
content: "Dans le 2nd panneau de droite ci-dessous, vous trouvez les annonces et nouvelles qui vous concernent uniquement comme membre de groupes. ",
|
||||
container: $("iframe").first().contents().find("body")
|
||||
},
|
||||
{
|
||||
element: $("iframe").first().contents().find(".widget-calendar").find(".widgetheader"),
|
||||
title: "Agenda des groupes",
|
||||
placement : "left",
|
||||
content: "Dans le troisième panneau de droite ci-dessous, vous trouvez les prochains évènements de vos agendas de groupes. ",
|
||||
container: $("iframe").first().contents().find("body")
|
||||
},
|
||||
{
|
||||
element: $("iframe").first().contents().find(".widget-appexternal").find(".widgetheader"),
|
||||
placement : "left",
|
||||
title: "Formulaires",
|
||||
content: "Dans le dernier panneau de droite ci-dessous, vous trouvez les formulaires qui sont mis à votre disposition pour effectuer des demandes (par exemple faire un 'ticket de support'). ",
|
||||
container: $("iframe").first().contents().find("body")
|
||||
}
|
||||
]});
|
||||
]
|
||||
});
|
||||
|
||||
// Initialize the tour
|
||||
tour.init();
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.widgetheader .title {
|
||||
font-size: 25px;
|
||||
font-size: 1.2vw;
|
||||
}
|
||||
|
||||
|
||||
|
@ -59,17 +59,6 @@ body.simple {
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
.widget-notbordered .widgetheader {
|
||||
box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
|
||||
}
|
||||
|
||||
.widget-notbordered .widgetbody .list-item, .widget-notbordered .widgetbody .grid-item-content {
|
||||
box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
.grid .grid-preview {
|
||||
width: 15%;
|
||||
min-width: 138px;
|
||||
|
@ -95,3 +84,9 @@ body.simple {
|
|||
border-radius: 10px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
@media (max-width: 991px) {
|
||||
.widgetheader .title {
|
||||
font-size: 25px;
|
||||
}
|
||||
}
|
|
@ -91,6 +91,17 @@
|
|||
{% endif %}
|
||||
|
||||
<script>
|
||||
function seeUser(id) {
|
||||
{% if app.user %}
|
||||
$("#mymodal").find(".modal-title").html("FICHE UTILISATEUR");
|
||||
var url="{{ path('cadoles_core_user_view',{id:'xx'}) }}";
|
||||
url=url.replace('xx',id);
|
||||
|
||||
$("#mymodal").find("#framemodal").attr("src",url);
|
||||
$("#mymodal").modal().show();
|
||||
{% endif %}
|
||||
}
|
||||
|
||||
function inIframe () {
|
||||
try {
|
||||
return window.self !== window.top;
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
<th class="{% if fields["lastname"] is defined and fields["lastname"].perm==0 %}no-visible{% endif %}">Nom</th>
|
||||
<th class="{% if fields["firstname"] is defined and fields["firstname"].perm==0 %}no-visible{% endif %}">Prénom</th>
|
||||
<th class="{% if fields["email"] is defined and fields["email"].perm==0 %}no-visible{% endif %}">Email</th>
|
||||
<th class="{% if fields["telephonenumber"] is defined and fields["telephonenumber"].perm==0 %}no-visible{% endif %}">Téléphone</th>
|
||||
<th class="{% if fields["niveau01"] is defined and fields["niveau01"].perm==0 %}no-visible{% endif %}">{{ labelniveau01 }}</th>
|
||||
{% if viewniveau02 %}
|
||||
<th class="no-sort {% if fields["niveau02"] is defined and fields["niveau02"].perm==0 %}no-visible{% endif %}">{{ labelniveau02 }}</th>
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
{% extends '@CadolesCore/base.html.twig' %}
|
||||
|
||||
{% block pagewrapper %}
|
||||
<div style='margin-auto; text-align:center'>
|
||||
{% if not app.user %}
|
||||
Vous n'êtes pas autorisé à visualiser les fiches utilisateurs
|
||||
{% else %}
|
||||
<br><img id="user_avatar_img" src="/{{ alias }}/uploads/avatar/{{ user.avatar }}" class="avatar big" ><br>
|
||||
<b>Login</b> = {{ user.username }}<br>
|
||||
{% if not user.visible %}
|
||||
<br>L'utilisateur souhaite masquer ses informations personnelles.
|
||||
{% else %}
|
||||
{%if user.lastname %}<b>Nom</b> = {{ user.lastname }}<br>{%endif%}
|
||||
{%if user.firstname %}<b>Prénom</b> = {{ user.firstname }}<br>{%endif%}
|
||||
{%if user.email %}<b>Email</b> = <a href='mailto:{{ user.email }}'>{{ user.email }}</a><br>{%endif%}
|
||||
{%if user.telephonenumber %}<b>Téléphone</b> = {{ user.telephonenumber }}<br>{%endif%}
|
||||
{%if user.niveau01 %}<b>{{ labelniveau01 }}</b> = {{ user.niveau01.label }}<br>{%endif%}
|
||||
{%if viewniveau02 and user.niveau02%}<b>{{ labelniveau02 }}</b> = {{ user.niveau02.label }}<br>{% endif %}
|
||||
{%if user.job %}<b>Métier</b> = {{ user.job }}<br>{%endif%}
|
||||
{%if user.position %}<b>Fonction</b> = {{ user.position }}<br>{%endif%}
|
||||
{%if user.postaladress %}<b>Adresse</b> = {{ user.postaladress }}<br><br>{%endif%}
|
||||
|
||||
{% set fgtitle=false %}
|
||||
{% for usergroup in user.groups %}
|
||||
{% if usergroup.group.fgcanshare %}
|
||||
{% if not fgtitle %}
|
||||
<br><b>Groupes de Travail</b><br>
|
||||
{% set fgtitle=true %}
|
||||
{% endif %}
|
||||
|
||||
{{ usergroup.group.label }}<br>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block localjavascript %}
|
||||
{% endblock %}
|
|
@ -428,6 +428,7 @@ class PagewidgetController extends Controller
|
|||
// Récupération des paramétres du widget
|
||||
$modedesktop=0;
|
||||
$iditemcategory=null;
|
||||
$withbookmark=true;
|
||||
$search=false;
|
||||
$menu=false;
|
||||
$menuall=true;
|
||||
|
@ -1974,6 +1975,7 @@ class PagewidgetController extends Controller
|
|||
|
||||
$mygroups=[];
|
||||
$this->getDoctrine()->getRepository("CadolesPortalBundle:Page")->getPagesUser($user,null,$default,$pagesuser,$pagesadmin,$groupsshared);
|
||||
if(is_array($groupsshared)) {
|
||||
foreach($groupsshared as $groupshared) {
|
||||
|
||||
$title=$groupshared->getLabel();
|
||||
|
@ -1984,6 +1986,7 @@ class PagewidgetController extends Controller
|
|||
|
||||
array_push($mygroups,["title"=>$title,"icon"=>$icon,"id"=>$idpage]);
|
||||
}
|
||||
}
|
||||
|
||||
// Render
|
||||
return $this->render($this->labelentity.':viewgroup.html.twig', [
|
||||
|
|
|
@ -56,6 +56,7 @@
|
|||
|
||||
<div class="col-md-4">
|
||||
{{ form_row(form.url) }}
|
||||
<em>le mot clé #login# sera remplacé par le login de l'utilisateur</em><br><br>
|
||||
{{ form_row(form.target) }}
|
||||
{{ form_row(form.color) }}
|
||||
|
||||
|
|
|
@ -54,6 +54,7 @@
|
|||
|
||||
<div class="col-md-4">
|
||||
{{ form_row(form.url) }}
|
||||
<em>le mot clé #login# sera remplacé par le login de l'utilisateur</em><br><br>
|
||||
{{ form_row(form.target) }}
|
||||
{{ form_row(form.itemcategory) }}
|
||||
{{ form_row(form.roles) }}
|
||||
|
|
|
@ -55,6 +55,7 @@
|
|||
|
||||
{{ form_row(form.name) }}
|
||||
{{ form_row(form.url) }}
|
||||
<em>le mot clé #login# sera remplacé par le login de l'utilisateur</em><br><br>
|
||||
{{ form_row(form.roworder) }}
|
||||
{{ form_row(form.maxwidth) }}
|
||||
</div>
|
||||
|
|
|
@ -5,6 +5,12 @@
|
|||
#pageiframe { margin: 0px -30px;}
|
||||
{% endblock %}
|
||||
|
||||
{% if app.user %}
|
||||
{% set username = app.user.username %}
|
||||
{% else %}
|
||||
{% set username = "" %}
|
||||
{% endif %}
|
||||
|
||||
{% block pagewrapper %}
|
||||
{% if access=="config" %}
|
||||
<div class="pagemenu">
|
||||
|
@ -16,7 +22,7 @@
|
|||
{% endif %}
|
||||
|
||||
<div id="pageiframe" style="{% if entity.maxwidth>0%} max-width:{{ entity.maxwidth }}px; margin:auto; {% endif %}">
|
||||
<iframe src="{{entity.url}}" id="frameContent" style="border:none;" width="100%" height="100%"></iframe>
|
||||
<iframe src="{{entity.url|replace({'#login#': username})}}" id="frameContent" style="border:none;" width="100%" height="100%"></iframe>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
{% set stylewidgetbody = constants.mystylewidgetbody(entity) %}
|
||||
|
||||
{% if canupdate or alerts|length>0 %}
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%}" 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-alert" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if canupdate %}
|
||||
<div class="widgetmenu">
|
||||
<i class="fa fa-trash fa-fw" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
{% set colorbodyfont = "color: #" ~ entity.colorbodyfont %}
|
||||
{% endif %}
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%}" 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-appexternal" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if canupdate or canadd %}
|
||||
<div class="widgetmenu">
|
||||
{% if canupdate %}
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
</style>
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%}" 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-blog" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
<div class="widgetmenu">
|
||||
{% if canupdate %}
|
||||
<i class="fa fa-trash fa-fw" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
|
|
|
@ -26,7 +26,14 @@
|
|||
{% set colorbodyfont = "color: #" ~ entity.colorbodyfont %}
|
||||
{% endif %}
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%}" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if app.user %}
|
||||
{% set username = app.user.username %}
|
||||
{% else %}
|
||||
{% set username = "" %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%} widget-bookmark" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if canupdate or canadd %}
|
||||
<div class="widgetmenu">
|
||||
{% if canupdate %}
|
||||
|
@ -64,11 +71,11 @@
|
|||
{% endif %}
|
||||
|
||||
{% if bookmark.target == 'frame' %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.id }}','{{ bookmark.url }}')">
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.id }}','{{ bookmark.url|replace({'#login#': username}) }}')">
|
||||
{% elseif bookmark.target == "_self" %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.target }}{% endif %}">
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.target }}{% endif %}">
|
||||
{% else %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url }}" target="{{ bookmark.target }}">
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url|replace({'#login#': username}) }}" target="{{ bookmark.target }}">
|
||||
{% endif %}
|
||||
|
||||
<div class="item-link clearfix">
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
</style>
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%}" 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-calendar" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
<div class="widgetmenu">
|
||||
{% if canupdate %}
|
||||
<i class="fa fa-trash fa-fw" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
|
@ -30,7 +30,7 @@
|
|||
{% if usage=="group" and firstcalendar is defined %}
|
||||
{% set url= path('cadoles_portal_'~access~'_calendar_view',{id:firstcalendar}) %}
|
||||
{% endif %}
|
||||
<a onClick="showFrameitem('calendar','{{url }}',true)" style="{{ stylewidgetmenu }}"><i class="fa fa-calendar fa-fw"></i></a>
|
||||
<a onClick="showFrameitem('calendar','{{ url }}',true)" style="{{ stylewidgetmenu }}"><i class="fa fa-calendar fa-fw"></i></a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
|
@ -68,7 +68,7 @@
|
|||
<div style="margin-top:15px; font-weight:bold; font-size:18px;">{{ libday ~ " " ~ dateeventstart|date("d/m/Y") }}</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="widget-event" style="background-color:{{ event.color }}; color: #FFF; padding:2px;">
|
||||
<div class="widget-event" style="background-color:{{ event.color }}; color: #FFF; padding:2px;" title="{{ event.description }}">
|
||||
{% if not event.allDay %}
|
||||
{{ event.start | date("H:i") }} -
|
||||
{%endif%}
|
||||
|
@ -80,7 +80,9 @@
|
|||
|
||||
{% endfor %}
|
||||
|
||||
{% if url is defined %}
|
||||
<div style="cursor:pointer; text-align: right; margin-top:20px;"><a onClick="showFrameitem('calendar','{{url }}',true)" style="{{ stylewidgetbody }}">Voir mes Agendas</a></div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
{% endif %}
|
||||
|
||||
{% if app.user %}
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%}" 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-chat" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if canupdate %}
|
||||
<div class="widgetmenu">
|
||||
<i class="fa fa-trash fa-fw" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
{% set colorbodyfont = color['fontcolorhover'] %}
|
||||
{% endif %}
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%}" 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-file" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if canupdate or canadd %}
|
||||
<div class="widgetmenu">
|
||||
{% if canupdate %}
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
{% set stylegrid="grid-list" %}
|
||||
{% endif %}
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%}" 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-flux" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if canupdate %}
|
||||
<div class="widgetmenu">
|
||||
<i class="fa fa-trash fa-fw" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
{% set colorbodyfont = color['fontcolorhover'] %}
|
||||
{% endif %}
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%}" 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-frame" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if canupdate %}
|
||||
<div class="widgetmenu">
|
||||
<i class="fa fa-trash fa-fw" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
{% set colorbodyfont = color['fontcolorhover'] %}
|
||||
{% endif %}
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%}" 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-galery" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if canupdate or canadd %}
|
||||
<div class="widgetmenu">
|
||||
{% if canupdate %}
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
{% set canadd = true %}
|
||||
{% endif %}
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%} widget-editor" 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-group" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if canupdate %}
|
||||
<div class="widgetmenu">
|
||||
{% if canupdate %}
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
{% set stylegrid="grid-list" %}
|
||||
{% endif %}
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%}" 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-groupmessage" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if canupdate %}
|
||||
<div class="widgetmenu">
|
||||
<i class="fa fa-trash fa-fw" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
|
@ -75,7 +75,7 @@
|
|||
<div class="grid-item-content">
|
||||
<div class="item-link clearfix">
|
||||
<div class="grid-item-logo">
|
||||
<img class="grid-item-img avatar" src="/{{alias}}/uploads/avatar/{{message.user.avatar}}" width="100%">
|
||||
<img style='cursor:pointer' onClick="seeUser({{message.user.id}})" class="grid-item-img avatar" src="/{{alias}}/uploads/avatar/{{message.user.avatar}}" width="100%">
|
||||
<a onClick="hideMessage({{message.id}})" style="cursor:pointer;" title="Ne plus afficher"><i class="fa fa-eye-slash"></i></a>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
{% endif %}
|
||||
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%}" 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-info" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if canupdate %}
|
||||
<div class="widgetmenu">
|
||||
<i class="fa fa-trash fa-fw" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
|
@ -29,12 +29,12 @@
|
|||
{% endif %}
|
||||
|
||||
{% set canadd = false %}
|
||||
<div class="widgetheader" style="{{ stylewidgetheader }};">
|
||||
{% set style = "width: 90px;display: block;margin: auto; padding: 10px 0px 10px 0px; position: inherit;height: auto;" %}
|
||||
<div class="widgetheader" style="{{ stylewidgetheader }}; padding-top:10px;">
|
||||
{% set style = "margin: auto; display: inherit;background-color:transparent;" %}
|
||||
{% if icon %}
|
||||
<img src="/{{ alias }}{{ icon }}" class="logo" style="{{ style }}" />
|
||||
<img src="/{{ alias }}{{ icon }}" class="avatar big" style="{{ style }}" />
|
||||
{% else %}
|
||||
<img src="/{{ alias }}/uploads/icon/icon_users.png" style="{{ style }}" />
|
||||
<img src="/{{ alias }}/uploads/icon/icon_users.png" class="avatar big" style="{{ style }}" />
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
|
@ -55,7 +55,7 @@
|
|||
<div class="grid-item grid-small" style="{{ stylewidgetbodyreverse }};">
|
||||
<div class="grid-item-content">
|
||||
<div class="grid-item-logo">
|
||||
<img src="/{{ alias }}/uploads/avatar/{{ member.user.avatar}}" class="grid-item-img avatar" height="110" >
|
||||
<img onclick="seeUser({{member.user.id}})" src="/{{ alias }}/uploads/avatar/{{ member.user.avatar}}" class="grid-item-img avatar" height="110" style="cursor:pointer;">
|
||||
</div>
|
||||
|
||||
<div class="grid-item-title">
|
||||
|
|
|
@ -27,7 +27,13 @@
|
|||
{% set colorbodyfont = "color: #" ~ entity.colorbodyfont %}
|
||||
{% endif %}
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%}" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if app.user %}
|
||||
{% set username = app.user.username %}
|
||||
{% else %}
|
||||
{% set username = "" %}
|
||||
{% endif %}
|
||||
|
||||
<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">
|
||||
{% if canupdate or canadd %}
|
||||
<div class="widgetmenu">
|
||||
{% if canupdate %}
|
||||
|
@ -100,11 +106,11 @@
|
|||
<a style="cursor:pointer" onClick="modBookmark({{ bookmark.id }})" class="item-update"><i style="color: #FFF" class="fa fa-file" title="Modifier le favori"></i></a>
|
||||
|
||||
{% if bookmark.target == 'frame' %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.id }}','{{ bookmark.url }}')">
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.id }}','{{ bookmark.url|replace({'#login#': username}) }}')">
|
||||
{% elseif bookmark.target == "_self" %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.target }}{% endif %}">
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.target }}{% endif %}">
|
||||
{% else %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url }}" target="{{ bookmark.target }}">
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url|replace({'#login#': username}) }}" target="{{ bookmark.target }}">
|
||||
{% endif %}
|
||||
|
||||
<div class="item-link clearfix">
|
||||
|
@ -209,11 +215,11 @@
|
|||
|
||||
{% else %}
|
||||
{% if item.target == 'frame' %}
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" style="cursor:pointer" onClick="showFrameitem({{ item.id }},'{{ item.url }}')">
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" style="cursor:pointer" onClick="showFrameitem({{ item.id }},'{{ item.url|replace({'#login#': username}) }}')">
|
||||
{% elseif item.target == "_self" %}
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url }}" target="{% if access=="user" %}_top{% else %}{{ item.target }}{% endif %}">
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ item.target }}{% endif %}">
|
||||
{% else %}
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url }}" target="{{ item.target }}">
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url|replace({'#login#': username}) }}" target="{{ item.target }}">
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
|
|
|
@ -27,7 +27,13 @@
|
|||
{% set colorbodyfont = "color: #" ~ entity.colorbodyfont %}
|
||||
{% endif %}
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%}" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if app.user %}
|
||||
{% set username = app.user.username %}
|
||||
{% else %}
|
||||
{% set username = "" %}
|
||||
{% endif %}
|
||||
|
||||
<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">
|
||||
{% if canupdate or canadd %}
|
||||
<div class="widgetmenu">
|
||||
{% if canupdate %}
|
||||
|
@ -65,11 +71,11 @@
|
|||
<a style="cursor:pointer" onClick="modBookmark({{ bookmark.id }})" class="item-update"><i style="color: #FFF" class="fa fa-file" title="Modifier le favori"></i></a>
|
||||
|
||||
{% if bookmark.target == 'frame' %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.id }}','{{ bookmark.url }}')">
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.id }}','{{ bookmark.url|replace({'#login#': username}) }}')">
|
||||
{% elseif bookmark.target == "_self" %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.target }}{% endif %}">
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.target }}{% endif %}">
|
||||
{% else %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url }}" target="{{ bookmark.target }}">
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url|replace({'#login#': username}) }}" target="{{ bookmark.target }}">
|
||||
{% endif %}
|
||||
|
||||
<div class="item-link clearfix">
|
||||
|
@ -113,11 +119,11 @@
|
|||
|
||||
{% else %}
|
||||
{% if item.target == 'frame' %}
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" style="cursor:pointer" onClick="showFrameitem({{ item.id }},'{{ item.url }}')">
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" style="cursor:pointer" onClick="showFrameitem({{ item.id }},'{{ item.url|replace({'#login#': username}) }}')">
|
||||
{% elseif item.target == "_self" %}
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url }}" target="{% if access=="user" %}_top{% else %}{{ item.target }}{% endif %}">
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ item.target }}{% endif %}">
|
||||
{% else %}
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url }}" target="{{ item.target }}">
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url|replace({'#login#': username}) }}" target="{{ item.target }}">
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
|
|
|
@ -18,7 +18,13 @@
|
|||
{% set stylelink = "color:#" ~ color['fontcolorhover'] %}
|
||||
{% endif %}
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%}" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if app.user %}
|
||||
{% set username = app.user.username %}
|
||||
{% else %}
|
||||
{% set username = "" %}
|
||||
{% endif %}
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%} widget-link" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if canupdate %}
|
||||
<div class="widgetmenu">
|
||||
{% if canupdate %}
|
||||
|
@ -31,11 +37,11 @@
|
|||
|
||||
<div class="widgetheader" style="{{ stylewidgetbodyimage }}; height:100%;">
|
||||
{% if target == 'frame' %}
|
||||
<a class="linktosonde" data-sonde="{{ entity.name }}" style="cursor:pointer; {{ stylelink }}" onClick="showFrameitem('link{{ entity.id }}','{{ url }}')">
|
||||
<a class="linktosonde" data-sonde="{{ entity.name }}" style="cursor:pointer; {{ stylelink }}" onClick="showFrameitem('link{{ entity.id }}','{{ url|replace({'#login#': username}) }}')">
|
||||
{% elseif target == "_self" %}
|
||||
<a class="linktosonde" data-sonde="{{ entity.name }}" style="{{ stylelink }}"href="{{ url }}" target="{% if access=="user" %}_top{% else %}{{ target }}{% endif %}">
|
||||
<a class="linktosonde" data-sonde="{{ entity.name }}" style="{{ stylelink }}"href="{{ url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ target }}{% endif %}">
|
||||
{% else %}
|
||||
<a class="linktosonde" data-sonde="{{ entity.name }}" style="{{ stylelink }}" href="{{ url }}" target="{{ target }}">
|
||||
<a class="linktosonde" data-sonde="{{ entity.name }}" style="{{ stylelink }}" href="{{ url|replace({'#login#': username}) }}" target="{{ target }}">
|
||||
{% endif %}
|
||||
{% if entity.icon %}
|
||||
<img src="/{{ alias }}/{{ entity.icon.label }}" style="max-height: 100%; width: auto; display: block; margin: auto; padding-top: 10px;" />
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
{% set colorbodyfont = color['main'] %}
|
||||
{% endif %}
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%}" 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-separator" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if canupdate %}
|
||||
<div class="widgetmenu">
|
||||
<i class="fa fa-trash fa-fw" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
|
|
|
@ -17,7 +17,13 @@
|
|||
{% set stylelink = "color:#" ~ color['fontcolorhover'] ~ ";" %}
|
||||
{% endif %}
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%}" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if app.user %}
|
||||
{% set username = app.user.username %}
|
||||
{% else %}
|
||||
{% set username = "" %}
|
||||
{% endif %}
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%} widget-slide" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if canupdate or canadd %}
|
||||
<div class="widgetmenu">
|
||||
{% if canupdate %}
|
||||
|
@ -44,11 +50,11 @@
|
|||
|
||||
{% if slide.url is not empty %}
|
||||
{% if slide.target == 'frame' %}
|
||||
<a class="slicklink" style="{{ stylelink }} cursor:pointer" onClick="showFrameitem('slide{{ slide.id }}','{{ slide.url }}')">
|
||||
<a class="slicklink" style="{{ stylelink }} cursor:pointer" onClick="showFrameitem('slide{{ slide.id }}','{{ slide.url|replace({'#login#': username}) }}')">
|
||||
{% elseif slide.target == "_self" %}
|
||||
<a class="slicklink" style="{{ stylelink }}" href="{{ slide.url }}" target="{% if access=="user" %}_top{% else %}{{ slide.target }}{% endif %}">
|
||||
<a class="slicklink" style="{{ stylelink }}" href="{{ slide.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ slide.target }}{% endif %}">
|
||||
{% else %}
|
||||
<a class="slicklink" style="{{ stylelink }}" href="{{ slide.url }}" target="{{ slide.target }}">
|
||||
<a class="slicklink" style="{{ stylelink }}" href="{{ slide.url|replace({'#login#': username}) }}" target="{{ slide.target }}">
|
||||
{% endif %}
|
||||
|
||||
<i class="fa fa-link"></i></a>
|
||||
|
|
|
@ -11,7 +11,13 @@
|
|||
{% set stylewidgetbodyframe = constants.mystylewidgetbodyframe(entity) %}
|
||||
{% set stylewidgetbodyimage = constants.mystylewidgetbodyimage(entity) %}
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%}" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if app.user %}
|
||||
{% set username = app.user.username %}
|
||||
{% else %}
|
||||
{% set username = "" %}
|
||||
{% endif %}
|
||||
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%} widget-url" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
{% if canupdate %}
|
||||
<div class="widgetmenu">
|
||||
<i class="fa fa-trash fa-fw" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
|
@ -30,10 +36,10 @@
|
|||
<span class="title">{{ entity.name }}</span>
|
||||
</div>
|
||||
<div class="widgetbody" style="{{ stylewidgetbodyframe }}">
|
||||
<img src="{{ url }}" width="100%" >
|
||||
<img src="{{ url|replace({'#login#': username}) }}" width="100%" >
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="widgetheader" style="{{ stylewidgetbodyimage }} width:100%; background-image: url({{url}}); background-size:cover; background-position:center;")></div>
|
||||
<div class="widgetheader" style="{{ stylewidgetbodyimage }} width:100%; background-image: url({{ url|replace({'#login#': username}) }}); background-size:cover; background-position:center;")></div>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||
|
@ -46,7 +52,7 @@
|
|||
</div>
|
||||
|
||||
<div class="widgetbody" style="{{ stylewidgetbodyframe }}">
|
||||
<iframe src="{{ url }}" class="{% if entity.autoajust %}frameajust {% endif %}" style="{{ stylewidgetbodyframe }}"></iframe>
|
||||
<iframe src="{{ url|replace({'#login#': username}) }}" class="{% if entity.autoajust %}frameajust {% endif %}" style="{{ stylewidgetbodyframe }}"></iframe>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
|
|
@ -59,6 +59,7 @@
|
|||
<div class="col-md-4">
|
||||
{{ form_row(form.roworder) }}
|
||||
{{ form_row(form.url) }}
|
||||
<em>le mot clé #login# sera remplacé par le login de l'utilisateur</em><br><br>
|
||||
{{ form_row(form.target) }}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -66,7 +66,7 @@
|
|||
{% for message in messages %}
|
||||
<div id='message-{{message.id}}' class='message row'>
|
||||
<div class='msgavatar'>
|
||||
<img id='user_avatar_img' src='/{{ alias }}/uploads/avatar/{{message.user.avatar}}' class='avatar'><br>
|
||||
<img style='cursor:pointer' onclick='seeUser({{message.user.id}})' id='user_avatar_img' src='/{{ alias }}/uploads/avatar/{{message.user.avatar}}' class='avatar'><br>
|
||||
{% if fgmanager or message.user == app.user %}
|
||||
<i class='delmessage fa fa-trash fa-fw' data-id='{{message.id}}' style='cursor: pointer;'></i>
|
||||
{% endif %}
|
||||
|
@ -229,6 +229,9 @@
|
|||
|
||||
websocket();
|
||||
|
||||
setInterval(function(){
|
||||
islive();
|
||||
}, 15000);
|
||||
});
|
||||
|
||||
{% if websocket_activate and app.user %}
|
||||
|
@ -242,6 +245,7 @@
|
|||
var tosendmail=false;
|
||||
var todelete=false;
|
||||
var idtodelete;
|
||||
var isalive;
|
||||
|
||||
function websocket()
|
||||
{
|
||||
|
@ -257,6 +261,8 @@
|
|||
//the callback function in "subscribe" is called everytime an event is published in that channel.
|
||||
sess.subscribe("websocket/channel/{{groupid}}", function (uri, payload) {
|
||||
|
||||
if(!isalive||isdeco) islive();
|
||||
|
||||
// Récupération lastmessage
|
||||
if(isdeco) recuplastmsg();
|
||||
|
||||
|
@ -271,7 +277,7 @@
|
|||
if(payload.msg) {
|
||||
html ="<div id='message-"+payload.msg.id+"' class='message row'>";
|
||||
html+="<div class='msgavatar'>";
|
||||
html+="<img id='user_avatar_img' src='/{{ alias }}/uploads/avatar/"+payload.msg.avatar+"' class='avatar'><br>";
|
||||
html+="<img style='pointer:cursor' onclick='seeUser("+payload.msg.userid+")' id='user_avatar_img' src='/{{ alias }}/uploads/avatar/"+payload.msg.avatar+"' class='avatar'><br>";
|
||||
if(payload.msg.userid=={{app.user.id}} || '{{ fgmanager }}'=='1') {
|
||||
html+="<i class='delmessage fa fa-trash fa-fw' data-id='"+payload.msg.id+"' style='cursor: pointer;'></i>";
|
||||
}
|
||||
|
@ -445,7 +451,7 @@
|
|||
if(!$("#message-"+data.id).length) {
|
||||
html ="<div id='message-"+data.id+"' class='message row'>";
|
||||
html+="<div class='msgavatar'>";
|
||||
html+="<img id='user_avatar_img' src='/{{ alias }}/uploads/avatar/"+data.useravatar+"' class='avatar'><br>";
|
||||
html+="<img style='cursor:pointer' onclick='seeUser("+data.userid+")' id='user_avatar_img' src='/{{ alias }}/uploads/avatar/"+data.useravatar+"' class='avatar'><br>";
|
||||
if(data.userid=={{app.user.id}} || '{{ fgmanager }}'=='1') {
|
||||
html+="<i class='delmessage fa fa-trash fa-fw' data-id='"+data.id+"' style='cursor: pointer;'></i>";
|
||||
}
|
||||
|
@ -461,6 +467,18 @@
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
// islive
|
||||
function islive() {
|
||||
if(!session) return;
|
||||
isalive=true;
|
||||
event={mykey: "{{userkey}}", type: "islive", userid: {{app.user.id}}};
|
||||
console.log("send islive");
|
||||
session.publish("websocket/channel/{{groupid}}", event);
|
||||
}
|
||||
|
||||
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
|
@ -19,6 +19,7 @@ class WebsocketTopic implements TopicInterface
|
|||
protected $em;
|
||||
protected $container;
|
||||
protected $clientManipulator;
|
||||
protected $users;
|
||||
|
||||
public function __construct(ClientManipulatorInterface $clientManipulator, EntityManager $em, ContainerInterface $container) {
|
||||
$this->clientManipulator = $clientManipulator;
|
||||
|
@ -38,7 +39,6 @@ class WebsocketTopic implements TopicInterface
|
|||
{
|
||||
//this will broadcast the message to ALL subscribers of this topic.
|
||||
$topic->broadcast(['log' => $connection->resourceId." has joined ".$topic->getId()]);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -52,7 +52,9 @@ class WebsocketTopic implements TopicInterface
|
|||
public function onUnSubscribe(ConnectionInterface $connection, Topic $topic, WampRequest $request)
|
||||
{
|
||||
//this will broadcast the message to ALL subscribers of this topic.
|
||||
$topic->broadcast(['log' => $connection->resourceId . " has left " . $topic->getId()]);
|
||||
$topic->broadcast(['log' => "Alive = ".$event["userid"]]);
|
||||
|
||||
$topic->broadcast(['log' => $connection->resourceId . " has left " . $topic->getId(). " || userid = ".$connection->userId]);
|
||||
}
|
||||
|
||||
|
||||
|
@ -87,6 +89,12 @@ class WebsocketTopic implements TopicInterface
|
|||
}
|
||||
|
||||
if($group&&$usergroup&&$user) {
|
||||
if($event["type"]=="islive") {
|
||||
$topic->broadcast(['log' => "Alive = ".$event["userid"]]);
|
||||
$connection->userId=$event["userid"];
|
||||
}
|
||||
|
||||
|
||||
if($event["type"]=="add") {
|
||||
if(array_key_exists("mail",$event)) {
|
||||
$mail = $this->container->get('cadoles.core.service.mail');
|
||||
|
|
Loading…
Reference in New Issue