This commit is contained in:
afornerot 2019-10-23 10:45:06 +02:00
parent 02a8b475f7
commit 87ce3767fa
3 changed files with 97 additions and 8 deletions

View File

@ -3,7 +3,7 @@
// Instance the tour // Instance the tour
function MyTour() { function MyTour() {
var template="<div class='popover tour'><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 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({ var tour = new Tour({
name: "tour", name: "tour",
template: template, template: template,
@ -16,19 +16,82 @@ function MyTour() {
{ {
element: "#menu-profil", element: "#menu-profil",
title: "Votre 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", element: "#menu-annuaire",
title: "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"), element: $("iframe").first().contents().find(".widget-itemessential").find(".widgetheader"),
title: "Bureau", title: "le Bureau",
content: "Vos items essentiels, vous pouvez via le bouton + ajouter des items à votre 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") 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")
}
] ]
}); });

View File

@ -229,6 +229,9 @@
websocket(); websocket();
setInterval(function(){
islive();
}, 15000);
}); });
{% if websocket_activate and app.user %} {% if websocket_activate and app.user %}
@ -242,6 +245,7 @@
var tosendmail=false; var tosendmail=false;
var todelete=false; var todelete=false;
var idtodelete; var idtodelete;
var isalive;
function websocket() function websocket()
{ {
@ -257,6 +261,8 @@
//the callback function in "subscribe" is called everytime an event is published in that channel. //the callback function in "subscribe" is called everytime an event is published in that channel.
sess.subscribe("websocket/channel/{{groupid}}", function (uri, payload) { sess.subscribe("websocket/channel/{{groupid}}", function (uri, payload) {
if(!isalive||isdeco) islive();
// Récupération lastmessage // Récupération lastmessage
if(isdeco) recuplastmsg(); if(isdeco) recuplastmsg();
@ -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 %} {% endif %}
{% endblock %} {% endblock %}

View File

@ -19,6 +19,7 @@ class WebsocketTopic implements TopicInterface
protected $em; protected $em;
protected $container; protected $container;
protected $clientManipulator; protected $clientManipulator;
protected $users;
public function __construct(ClientManipulatorInterface $clientManipulator, EntityManager $em, ContainerInterface $container) { public function __construct(ClientManipulatorInterface $clientManipulator, EntityManager $em, ContainerInterface $container) {
$this->clientManipulator = $clientManipulator; $this->clientManipulator = $clientManipulator;
@ -38,7 +39,6 @@ class WebsocketTopic implements TopicInterface
{ {
//this will broadcast the message to ALL subscribers of this topic. //this will broadcast the message to ALL subscribers of this topic.
$topic->broadcast(['log' => $connection->resourceId." has joined ".$topic->getId()]); $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) public function onUnSubscribe(ConnectionInterface $connection, Topic $topic, WampRequest $request)
{ {
//this will broadcast the message to ALL subscribers of this topic. //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($group&&$usergroup&&$user) {
if($event["type"]=="islive") {
$topic->broadcast(['log' => "Alive = ".$event["userid"]]);
$connection->userId=$event["userid"];
}
if($event["type"]=="add") { if($event["type"]=="add") {
if(array_key_exists("mail",$event)) { if(array_key_exists("mail",$event)) {
$mail = $this->container->get('cadoles.core.service.mail'); $mail = $this->container->get('cadoles.core.service.mail');