diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/public/themes/transnum/local.js b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/public/themes/transnum/local.js index abb65545..175a4015 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/public/themes/transnum/local.js +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/public/themes/transnum/local.js @@ -3,7 +3,7 @@ // Instance the tour function MyTour() { - var template="

"; + var template="

"; var tour = new Tour({ name: "tour", template: template, @@ -16,19 +16,82 @@ 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: "Bureau", - content: "Vos items essentiels, vous pouvez via le bouton + ajouter des items à votre bureau", + 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") + } ] }); diff --git a/src/ninegate-1.0/src/Cadoles/WebsocketBundle/Resources/views/Chat/client.html.twig b/src/ninegate-1.0/src/Cadoles/WebsocketBundle/Resources/views/Chat/client.html.twig index 385cff32..3f19fe71 100644 --- a/src/ninegate-1.0/src/Cadoles/WebsocketBundle/Resources/views/Chat/client.html.twig +++ b/src/ninegate-1.0/src/Cadoles/WebsocketBundle/Resources/views/Chat/client.html.twig @@ -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(); @@ -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 %} \ No newline at end of file diff --git a/src/ninegate-1.0/src/Cadoles/WebsocketBundle/Topic/WebsocketTopic.php b/src/ninegate-1.0/src/Cadoles/WebsocketBundle/Topic/WebsocketTopic.php index 92f03209..97a5708c 100644 --- a/src/ninegate-1.0/src/Cadoles/WebsocketBundle/Topic/WebsocketTopic.php +++ b/src/ninegate-1.0/src/Cadoles/WebsocketBundle/Topic/WebsocketTopic.php @@ -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');