From f93b2980b2f579463271e913729c830daf27c093 Mon Sep 17 00:00:00 2001 From: afornerot Date: Mon, 19 Aug 2019 14:09:46 +0200 Subject: [PATCH] notification sur chat creation/modification fichier+article+event+lien (fixes #4) --- .../EventListener/uploadListener.php | 37 ++++++++++++++----- .../CoreBundle/Resources/config/services.yml | 2 +- .../CoreBundle/Resources/public/css/style.css | 1 - .../Controller/BlogarticleController.php | 19 ++++++++++ .../Controller/BookmarkController.php | 21 +++++++++++ .../Controller/CalendareventController.php | 16 ++++++++ .../views/Pagewidget/viewchat.html.twig | 2 +- 7 files changed, 86 insertions(+), 12 deletions(-) diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/uploadListener.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/uploadListener.php index e4057808..4399d585 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/uploadListener.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/uploadListener.php @@ -1,26 +1,28 @@ om = $om; + $this->em = $em; $this->session = $session; + $this->token = $token_storage; + $this->container = $container; } protected function getHeight($image) { @@ -98,6 +100,8 @@ class uploadListener // Déplacer le fichier dans la cible $request = $event->getRequest(); $directory = $request->get('directory'); + $fs = new Filesystem(); + $fgexit=$fs->exists($pathname."/".$directory."/".$filename); $file->move($pathname."/".$directory, $filename); // Création d'un thumb dans le cas d'un fichier de type imapge @@ -111,10 +115,25 @@ class uploadListener $this->resizeImage($pathname."/".$directory."/thumb/".$filename,$width,$height,$scale); } + if (strpos($directory, 'widget') === 0) { + $tmp=explode("-",$directory); + $widgetid=$tmp[1]; + $widget=$this->em->getRepository("CadolesPortalBundle:Pagewidget")->find($widgetid); + if($widget) { + foreach($widget->getPage()->getGroups() as $group) { + if($group->getFgcanshare()) { + if($fgexit) $message="Modification fichier
".$filename; + else $message="Création fichier
".$filename; + + $key=$this->em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(["group"=>$group,"user"=>$this->token->getToken()->getUser()])->getKeyvalue(); + $websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key,$this->token->getToken()->getUser()->getId(),$group->getId(),$message); + } + } + } + } + $response = $event->getResponse(); $response['file'] = $filename; - - break; case "blogarticle": diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/config/services.yml b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/config/services.yml index 0638acae..a2aeea7f 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/config/services.yml +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/config/services.yml @@ -9,7 +9,7 @@ services: cadoles.core.upload.listener: public: true class: Cadoles\CoreBundle\EventListener\uploadListener - arguments: ["@doctrine.orm.entity_manager","@security.token_storage","@session"] + arguments: ["@doctrine.orm.entity_manager","@security.token_storage","@session","@service_container"] tags: - { name: kernel.event_listener, event: oneup_uploader.post_persist, method: onUpload } diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/public/css/style.css b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/public/css/style.css index 7c9b3a78..172492c5 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/public/css/style.css +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/public/css/style.css @@ -543,7 +543,6 @@ a.item-heart { .widgetbody iframe { width:100%; border:0px; - height:100%; } .frameitem { diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/BlogarticleController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/BlogarticleController.php index b852886b..a488a639 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/BlogarticleController.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/BlogarticleController.php @@ -10,6 +10,7 @@ use Symfony\Component\Filesystem\Filesystem; use Cadoles\PortalBundle\Entity\Blogarticle; use Cadoles\PortalBundle\Form\BlogarticleType; +use Cadoles\CoreBundle\Entity\Usergroup; class BlogarticleController extends Controller { @@ -54,6 +55,15 @@ class BlogarticleController extends Controller $em->persist($entity); $em->flush(); + foreach($entity->getBlog()->getGroups() as $group) { + if($group->getFgcanshare()) { + $url=$this->generateUrl('cadoles_portal_'.$access.'_blogarticle_view',["id"=>$entity->getId()]); + $message="Création article
".$entity->getName().""; + $key=$em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(["group"=>$group,"user"=>$this->getUser()])->getKeyvalue(); + $websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key,$this->getUser()->getId(),$group->getId(),$message); + } + } + return $this->redirect($this->generateUrl('cadoles_portal_'.$access.'_blogarticle_view',["id"=>$entity->getId()])); } @@ -90,6 +100,15 @@ class BlogarticleController extends Controller $em->persist($entity); $em->flush(); + foreach($entity->getBlog()->getGroups() as $group) { + if($group->getFgcanshare()) { + $url=$this->generateUrl('cadoles_portal_'.$access.'_blogarticle_view',["id"=>$entity->getId()]); + $message="Modification article
".$entity->getName().""; + $key=$em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(["group"=>$group,"user"=>$this->getUser()])->getKeyvalue(); + $websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key,$this->getUser()->getId(),$group->getId(),$message); + } + } + return $this->redirect($this->generateUrl('cadoles_portal_'.$access.'_blogarticle_view',["id"=>$entity->getId()])); } diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/BookmarkController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/BookmarkController.php index 9321b816..615631d2 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/BookmarkController.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/BookmarkController.php @@ -62,6 +62,16 @@ class BookmarkController extends Controller $em->persist($data); $em->flush(); + if($pagewidget) { + foreach($pagewidget->getPage()->getGroups() as $groupchat) { + if($groupchat->getFgcanshare()) { + $message="Création favoris
".$data->getTitle().""; + $key=$em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(["group"=>$groupchat,"user"=>$this->getUser()])->getKeyvalue(); + $websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key,$this->getUser()->getId(),$groupchat->getId(),$message); + } + } + } + // Retour à la page return $this->redirect($this->generateUrl('cadoles_portal_'.$access.'_page_view',["id"=>$idpage,"usage"=>$usage,"group"=>$group])); } @@ -139,6 +149,17 @@ class BookmarkController extends Controller $em->persist($data); $em->flush(); + $pagewidget=$data->getPagewidget(); + if($pagewidget) { + foreach($pagewidget->getPage()->getGroups() as $groupchat) { + if($groupchat->getFgcanshare()) { + $message="Modification favoris
".$data->getTitle().""; + $key=$em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(["group"=>$groupchat,"user"=>$this->getUser()])->getKeyvalue(); + $websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key,$this->getUser()->getId(),$groupchat->getId(),$message); + } + } + } + // Retour à la page return $this->redirect($this->generateUrl('cadoles_portal_'.$access.'_page_view',["id"=>$idpage,"usage"=>$usage,"group"=>$group])); } diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/CalendareventController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/CalendareventController.php index 829b59ee..3476870e 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/CalendareventController.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/CalendareventController.php @@ -125,6 +125,14 @@ class CalendareventController extends Controller $em->persist($calendarevent); $em->flush(); + foreach($calendarevent->getCalendar()->getGroups() as $group) { + if($group->getFgcanshare()) { + $message="Création évènement
".$calendarevent->getName()."
du ".$start->format("d/m/Y H:i")." au ".$end->sub(new \DateInterval('PT1M'))->format("d/m/Y H:i"); + $key=$em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(["group"=>$group,"user"=>$this->getUser()])->getKeyvalue(); + $websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key,$this->getUser()->getId(),$group->getId(),$message); + } + } + $output["id"]=$calendarevent->getId(); $output["color"]="#".(is_null($calendar->getColor())?$this->get('session')->get('color')["main"]:$calendar->getColor()); @@ -170,6 +178,14 @@ class CalendareventController extends Controller $em->persist($calendarevent); $em->flush(); + foreach($calendarevent->getCalendar()->getGroups() as $group) { + if($group->getFgcanshare()) { + $message="Modification évènement
".$calendarevent->getName()."
du ".$start->format("d/m/Y H:i")." au ".$end->sub(new \DateInterval('PT1M'))->format("d/m/Y H:i"); + $key=$em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(["group"=>$group,"user"=>$this->getUser()])->getKeyvalue(); + $websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key,$this->getUser()->getId(),$group->getId(),$message); + } + } + $output["id"]=$calendarevent->getId(); $output["color"]="#".(is_null($calendar->getColor())?$this->get('session')->get('color')["main"]:$calendar->getColor()); diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Pagewidget/viewchat.html.twig b/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Pagewidget/viewchat.html.twig index b15fba9c..c959c12a 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Pagewidget/viewchat.html.twig +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Pagewidget/viewchat.html.twig @@ -46,7 +46,7 @@ {{ entity.name }} -
+
{{ render(url('cadoles_websocket_chat',{'id':group,'framed':true,'border':entity.border,'colorbodybacklight':colorbodyback, 'colorbodyback':colorbodyback,'colorbodyfont':colorbodyfont})) }}