From 7265099724f1377dea49b9fc83d20aee9cfdc25d Mon Sep 17 00:00:00 2001 From: afornerot Date: Mon, 28 Oct 2019 11:37:50 +0100 Subject: [PATCH 1/5] ajout core-init-01.sql dans le gitignore --- src/ninegate-1.0/.gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ninegate-1.0/.gitignore b/src/ninegate-1.0/.gitignore index 69073512..f0b8bd87 100644 --- a/src/ninegate-1.0/.gitignore +++ b/src/ninegate-1.0/.gitignore @@ -1,5 +1,6 @@ /.web-server-pid /app/config/parameters.yml +/src/Cadoles/CoreBundle/Command/data/core-init-01.sql /build/ /phpunit.xml /var/* From 5d877dd8ca46cc3d486abce05dbd537d93cd81a2 Mon Sep 17 00:00:00 2001 From: afornerot Date: Mon, 28 Oct 2019 11:39:08 +0100 Subject: [PATCH 2/5] indicateur user online sur le chat (fixes #5) --- .../Resources/views/Chat/client.html.twig | 42 ++++++++++++++++++- .../WebsocketBundle/Topic/WebsocketTopic.php | 21 ++++++++-- 2 files changed, 57 insertions(+), 6 deletions(-) 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 3f19fe71..48ac77ff 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 @@ -58,6 +58,7 @@ Envoyer +
@@ -222,16 +223,18 @@ ], height: 150 }); - },500); + },1000); $(".switch").bootstrapSwitch(); $("#mymodal-sendmail").removeAttr("tabindex"); websocket(); + /* setInterval(function(){ islive(); }, 15000); + */ }); {% if websocket_activate and app.user %} @@ -303,6 +306,28 @@ if(payload.alert) { alert(payload.alert); } + + if(payload.islive) { + if(payload.userid!={{app.user.id}}) { + console.log("Received message islive", payload.userid); + addOnline(payload.userid, payload.useravatar, payload.userlastname, payload.userfirstname); + {% if app.user.visible %} + event={mykey: "{{userkey}}", type: "meto", userid: {{app.user.id}}, useravatar: "{{app.user.avatar}}", userlastname: "{{ app.user.lastname}}", userfirstname: "{{ app.user.firstname }}" }; + session.publish("websocket/channel/{{groupid}}", event); + {% endif %} + + } + } + + if(payload.meto) { + console.log("Received message meto", payload.userid, payload.useravatar, payload.userlastname, payload.userfirstname); + addOnline(payload.userid, payload.useravatar, payload.userlastname, payload.userfirstname); + } + + if(payload.isdead) { + console.log("Received message isdead", payload.userid); + $("#online"+payload.userid).remove(); + } }); }); @@ -472,11 +497,24 @@ function islive() { if(!session) return; isalive=true; - event={mykey: "{{userkey}}", type: "islive", userid: {{app.user.id}}}; + + {% if app.user.visible %} + addOnline({{app.user.id}}, "{{app.user.avatar}}", "{{app.user.lastname}}", "{{app.user.firstname}}"); + + event={mykey: "{{userkey}}", type: "islive", userid: {{app.user.id}}, useravatar: "{{app.user.avatar}}", userlastname: "{{app.user.lastname}}", userfirstname: "{{app.user.firstname}}" }; console.log("send islive"); session.publish("websocket/channel/{{groupid}}", event); + {% endif %} } + function addOnline(userid, useravatar, userlastname, userfirstname) { + if(!$("#online"+userid).length) { + html = ""; + html+= ""; + html+= ""; + $("#useronline").append(html); + } + } {% endif %} 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 97a5708c..72caf168 100644 --- a/src/ninegate-1.0/src/Cadoles/WebsocketBundle/Topic/WebsocketTopic.php +++ b/src/ninegate-1.0/src/Cadoles/WebsocketBundle/Topic/WebsocketTopic.php @@ -52,9 +52,7 @@ 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' => "Alive = ".$event["userid"]]); - - $topic->broadcast(['log' => $connection->resourceId . " has left " . $topic->getId(). " || userid = ".$connection->userId]); + $topic->broadcast(['isdead' => 'isdead','userid'=>$connection->userId]); } @@ -90,10 +88,25 @@ class WebsocketTopic implements TopicInterface if($group&&$usergroup&&$user) { if($event["type"]=="islive") { - $topic->broadcast(['log' => "Alive = ".$event["userid"]]); + $topic->broadcast([ + "islive" => "islive", + "userid" => $event["userid"], + "useravatar" => $event["useravatar"], + "userlastname" => $event["userlastname"], + "userfirstname" => $event["userfirstname"], + ]); $connection->userId=$event["userid"]; } + if($event["type"]=="meto") { + $topic->broadcast([ + "meto" => "meto", + "userid" => $event["userid"], + "useravatar" => $event["useravatar"], + "userlastname" => $event["userlastname"], + "userfirstname" => $event["userfirstname"], + ]); + } if($event["type"]=="add") { if(array_key_exists("mail",$event)) { From 6d89671acff6d0480c4edf58d1ce80cf27b62e62 Mon Sep 17 00:00:00 2001 From: afornerot Date: Mon, 28 Oct 2019 15:07:23 +0100 Subject: [PATCH 3/5] =?UTF-8?q?d=C3=A9coupage=20des=20tour=20par=20frame?= =?UTF-8?q?=20(fixes=20#24)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CoreBundle/Command/data/core-init-01.sql | 2 +- .../Resources/public/themes/transnum/local.js | 90 ++++++++++++++----- .../Resources/views/Include/footer.html.twig | 4 +- 3 files changed, 73 insertions(+), 23 deletions(-) diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/data/core-init-01.sql b/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/data/core-init-01.sql index b14c05b0..932cd8e3 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/data/core-init-01.sql +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/data/core-init-01.sql @@ -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}wVosXEVYfrthFQKc0AqqOtZZXDWT3re1 +(-100, -100, 'admin', 'Administrateur', 'draaf', '{SSHA}e8qvl9iAOSAmoVpq/NkxAa4QSpRdn+Z2 ', 'admin@ldapbundle.ac-arno.fr', 'admin.jpg', 'ROLE_ADMIN', '130007107', 'simple'); 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 175a4015..130481a3 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 @@ -1,12 +1,46 @@ +var templatetour; +templatetour ="
"; +templatetour+="
"; +templatetour+="

"; +templatetour+="
"; +templatetour+="
"; +templatetour+=""; +templatetour+=""; +templatetour+=""; +templatetour+="
"; +templatetour+="
" +templatetour+=""; +templatetour+=""; +templatetour+="
"; +templatetour+="
"; + +function callTour(mytour) { + // Tour entête + if(mytour=="MyTour") { + // On lance le tour + top.MyTour(); + } + + // Tour Accueil + if(mytour=="MyTourAcceuil") { + // On force l'affichage de la premiere frame + top.$(".navbar-left").find("a").eq(0).click(); + + // On lance le tour au bout de 1s le temps que l'iframe se réalise + setTimeout(function(){top.$("iframe").first().prop('contentWindow').MyTourAccueil(); }, 2000); + } +} // Instance the tour function MyTour() { - var template="

"; var tour = new Tour({ name: "tour", - template: template, + template: templatetour, + onEnd: function (tour) { + $("#page-51").prop('contentWindow').MyTourAccueil(); + }, steps: [ { element: "#logo", @@ -41,57 +75,72 @@ function MyTour() { 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" + content: "Cette barre vous permet d'accéder rapidement à la page d'accueil et à vos groupes de travail", }, + ] + }); + + // Initialize the tour + tour.init(); + + // Start the tour + tour.goTo(0); + tour.restart(); +} + +function MyTourAccueil() { + var tour = new Tour({ + name: "touraccueil", + template: templatetour, + steps: [ { - element: $("iframe").first().contents().find(".widget-itemessential").find(".widgetheader"), + element: $(".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"), + element: $(".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"), + element: $(".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. ", + }, + { + element: $(".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"), + element: $(".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"), + element: $(".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"), + element: $(".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"), + element: $(".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") - } + } ] }); @@ -106,5 +155,6 @@ function MyTour() { // Create Button Tour $(document).on('ready', function(){ // Instance the Tour - $("
  • ").insertBefore($("#menu-annuaire")); + if($("#menu-annuaire".length)) + $("
  • ").insertBefore($("#menu-annuaire")); }); \ No newline at end of file diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Include/footer.html.twig b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Include/footer.html.twig index fc0c5214..c0552cc7 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Include/footer.html.twig +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Include/footer.html.twig @@ -83,12 +83,12 @@ {% endjavascripts %} {% endblock %} - {% if useheader %} + {% set theme = app.session.get('theme') %} {% if theme is not empty %} {% endif %} - {% endif %} +