svg
This commit is contained in:
parent
8ad58b3d93
commit
5399306e87
|
@ -6,18 +6,18 @@
|
||||||
|
|
||||||
<containers>
|
<containers>
|
||||||
<container name='web'>
|
<container name='web'>
|
||||||
<file filelist='ninegate' name='/etc/apache2/sites-available/ninegate' source='ninegate-apache.conf'/>
|
<file filelist='ninegate' name='/etc/apache2/sites-available/ninegate' source='ninegate-apache.conf' rm="True"/>
|
||||||
<file filelist="ninegate" name="/var/www/html/ninegate/app/config/parameters.yml" source="ninegate-parameters.yml" rm="True"/>
|
<file filelist="ninegate" name="/var/www/html/ninegate/app/config/parameters.yml" source="ninegate-parameters.yml" rm="True"/>
|
||||||
<file filelist="ninegate" name="/var/www/html/ninegate/app/config/template.yml" source="ninegate-template.yml" rm="True"/>
|
<file filelist="ninegate" name="/var/www/html/ninegate/app/config/template.yml" source="ninegate-template.yml" rm="True"/>
|
||||||
<file filelist="ninegate" name="/var/www/html/ninegate/scripts/ninegate-postservice-00.sh" source="ninegate-postservice-00.sh" rm="True" mode="700" />
|
<file filelist="ninegate" name="/var/www/html/ninegate/scripts/ninegate-postservice-00.sh" source="ninegate-postservice-00.sh" rm="True" mode="700" />
|
||||||
<file filelist="ninegate" name="/var/www/html/ninegate/src/Cadoles/CoreBundle/Command/data/core-init-01.sql" source="ninegate-init-01.sql" rm="True"/>
|
<file filelist="ninegate" name="/var/www/html/ninegate/src/Cadoles/CoreBundle/Command/data/core-init-01.sql" source="ninegate-init-01.sql" rm="True"/>
|
||||||
<file filelist='ninegate' name='/etc/cron.d/ninegate' source='ninegate.cron' rm='True'/>
|
<file filelist='ninegate' name='/etc/cron.d/ninegate' source='ninegate.cron' rm='True'/>
|
||||||
<file filelist='ninegate' name='/etc/nginx/conf.d/ninegate.conf' source='ninegate.nginx.conf' rm='True'/>
|
<file filelist='ninegate_websocket' name='/etc/nginx/conf.d/ninegate.conf' source='ninegate.nginx.conf' rm='True'/>
|
||||||
|
|
||||||
<service method='apache' servicelist='ninegate'>ninegate</service>
|
<service method='apache' servicelist='ninegate'>ninegate</service>
|
||||||
|
|
||||||
<service_access service='ninegate'>
|
<service_access service='ninegate_websocket'>
|
||||||
<port>5555</port>
|
<port port_type="SymLinkOption">ninegate_websocket_portexterne</port>
|
||||||
</service_access>
|
</service_access>
|
||||||
|
|
||||||
</container>
|
</container>
|
||||||
|
@ -168,10 +168,10 @@
|
||||||
|
|
||||||
<!-- WEBSOCKET -->
|
<!-- WEBSOCKET -->
|
||||||
<variable type='string' name='ninegate_websocket_url' description='Host du serveur Websocket' mandatory='True' />
|
<variable type='string' name='ninegate_websocket_url' description='Host du serveur Websocket' mandatory='True' />
|
||||||
<variable type='string' name='ninegate_websocket_portexterne' description='Pot de commuinication externe du serveur Websocket' mandatory='True' >
|
<variable type='string' name='ninegate_websocket_portexterne' description='Port de commuinication externe du serveur Websocket' mandatory='True' >
|
||||||
<value>5555</value>
|
<value>5555</value>
|
||||||
</variable>
|
</variable>
|
||||||
<variable type='string' name='ninegate_websocket_portinterne' description='Pot de commuinication externe du serveur Websocket' mandatory='True'>
|
<variable type='string' name='ninegate_websocket_portinterne' description='Port de commuinication externe du serveur Websocket' mandatory='True'>
|
||||||
<value>5556</value>
|
<value>5556</value>
|
||||||
</variable>
|
</variable>
|
||||||
|
|
||||||
|
@ -275,6 +275,9 @@
|
||||||
<target type='variable'>ninegate_allow_hosts</target>
|
<target type='variable'>ninegate_allow_hosts</target>
|
||||||
<target type='variable'>ninegate_dbuser</target>
|
<target type='variable'>ninegate_dbuser</target>
|
||||||
<target type='variable'>ninegate_dbpass</target>
|
<target type='variable'>ninegate_dbpass</target>
|
||||||
|
|
||||||
|
<target type='filelist'>ninegate</target>
|
||||||
|
<target type='servicelist'>ninegate</target>
|
||||||
</condition>
|
</condition>
|
||||||
|
|
||||||
<condition name='hidden_if_in' source='ninegate_masteridentity'>
|
<condition name='hidden_if_in' source='ninegate_masteridentity'>
|
||||||
|
@ -383,6 +386,7 @@
|
||||||
<target type='variable'>ninegate_websocket_url</target>
|
<target type='variable'>ninegate_websocket_url</target>
|
||||||
<target type='variable'>ninegate_websocket_portinterne</target>
|
<target type='variable'>ninegate_websocket_portinterne</target>
|
||||||
<target type='variable'>ninegate_websocket_portexterne</target>
|
<target type='variable'>ninegate_websocket_portexterne</target>
|
||||||
|
<target type='servicelist'>ninegate_websocket</target>
|
||||||
</condition>
|
</condition>
|
||||||
|
|
||||||
<fill name='calc_multi_condition' target='ninegate_websocket_url'>
|
<fill name='calc_multi_condition' target='ninegate_websocket_url'>
|
||||||
|
|
|
@ -8,7 +8,7 @@ INSERT IGNORE INTO `niveau01` (`id`, `label`, `siren`) VALUES
|
||||||
(-100, 'DRAAF', '130007107');
|
(-100, 'DRAAF', '130007107');
|
||||||
|
|
||||||
INSERT IGNORE INTO `user` (`id`, `niveau01_id`, `username`, `firstname`, `lastname`, `password`, `email`, `avatar`, `role`,`siren`,`authlevel`) VALUES
|
INSERT IGNORE INTO `user` (`id`, `niveau01_id`, `username`, `firstname`, `lastname`, `password`, `email`, `avatar`, `role`,`siren`,`authlevel`) VALUES
|
||||||
(-100, -100, 'admin', 'Administrateur', 'draaf', '{SSHA}XuBTTUoInXPRBr1msGCFHj0Nm1C83fj/
|
(-100, -100, 'admin', 'Administrateur', 'draaf', '{SSHA}ydZGT20kB14WfmeVQZVPRTfbbrX0ahPR
|
||||||
', 'admin@ldapbundle.ac-arno.fr', 'admin.jpg', 'ROLE_ADMIN', '130007107', 'simple');
|
', 'admin@ldapbundle.ac-arno.fr', 'admin.jpg', 'ROLE_ADMIN', '130007107', 'simple');
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -77,26 +77,16 @@ $(document).on('ready', function(){
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
if( typeof CKEDITOR !== 'undefined') {
|
if( typeof CKEDITOR !== 'undefined') {
|
||||||
CKEDITOR.on('dialogDefinition', function(ev) {
|
CKEDITOR.on('dialogDefinition', function(ev) {
|
||||||
try {
|
try {
|
||||||
/* this just gets the name of the dialog */
|
|
||||||
var dialogName = ev.data.name;
|
var dialogName = ev.data.name;
|
||||||
|
|
||||||
/* this just gets the contents of the opened dialog */
|
|
||||||
var dialogDefinition = ev.data.definition;
|
var dialogDefinition = ev.data.definition;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Make sure that the dialog opened is the link plugin ... otherwise do nothing */
|
|
||||||
if(dialogName == 'link') {
|
if(dialogName == 'link') {
|
||||||
/* Getting the contents of the Target tab */
|
|
||||||
var informationTab = dialogDefinition.getContents('target');
|
var informationTab = dialogDefinition.getContents('target');
|
||||||
|
|
||||||
/* Getting the contents of the dropdown field "Target" so we can set it */
|
|
||||||
var targetField = informationTab.get('linkTargetType');
|
var targetField = informationTab.get('linkTargetType');
|
||||||
|
|
||||||
/* Now that we have the field, we just set the default to _blank */
|
|
||||||
targetField['default'] = '_blank';
|
targetField['default'] = '_blank';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,4 +99,5 @@ $(document).on('ready', function(){
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
});
|
});
|
|
@ -100,6 +100,7 @@
|
||||||
.grid-item h3,
|
.grid-item h3,
|
||||||
.pagination>li>a,
|
.pagination>li>a,
|
||||||
.pagination>li>span,
|
.pagination>li>span,
|
||||||
|
.modal-dialog,
|
||||||
a
|
a
|
||||||
{
|
{
|
||||||
color: #{{ color['main'] }}
|
color: #{{ color['main'] }}
|
||||||
|
|
|
@ -13,6 +13,8 @@ use Symfony\Component\Finder\Finder;
|
||||||
use Symfony\Component\Filesystem\Filesystem;
|
use Symfony\Component\Filesystem\Filesystem;
|
||||||
use Symfony\Component\HttpFoundation\File\File;
|
use Symfony\Component\HttpFoundation\File\File;
|
||||||
use GuzzleHttp\Exception\RequestException;
|
use GuzzleHttp\Exception\RequestException;
|
||||||
|
use Symfony\Component\Form\FormError;
|
||||||
|
|
||||||
|
|
||||||
use Cadoles\PortalBundle\Entity\Pagewidget;
|
use Cadoles\PortalBundle\Entity\Pagewidget;
|
||||||
use Cadoles\PortalBundle\Form\PagewidgetType;
|
use Cadoles\PortalBundle\Form\PagewidgetType;
|
||||||
|
@ -98,7 +100,11 @@ class PagewidgetController extends Controller
|
||||||
if($page->getPagecategory()->getId()!=2)
|
if($page->getPagecategory()->getId()!=2)
|
||||||
throw $this->createNotFoundException('Permission denied');
|
throw $this->createNotFoundException('Permission denied');
|
||||||
|
|
||||||
if ($form->isValid()) {
|
// Sur erreur
|
||||||
|
$this->getErrorForm(null,$form,$request,$idwidgettype,$page,$entity,"submit");
|
||||||
|
|
||||||
|
// Sur validation
|
||||||
|
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||||
$idicon = $form->get('idicon')->getData();
|
$idicon = $form->get('idicon')->getData();
|
||||||
$icon=$this->getDoctrine()->getRepository("CadolesPortalBundle:Icon")->findoneby(["id"=>$idicon]);
|
$icon=$this->getDoctrine()->getRepository("CadolesPortalBundle:Icon")->findoneby(["id"=>$idicon]);
|
||||||
$widgettype=$this->getDoctrine()->getRepository("CadolesPortalBundle:Widget")->findoneby(["id"=>$idwidgettype]);
|
$widgettype=$this->getDoctrine()->getRepository("CadolesPortalBundle:Widget")->findoneby(["id"=>$idwidgettype]);
|
||||||
|
@ -314,7 +320,38 @@ class PagewidgetController extends Controller
|
||||||
return new Response($response);
|
return new Response($response);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected function getErrorForm($id,$form,$request,$idwidgettype,$page,$data,$mode) {
|
||||||
|
if ($form->get('submit')->isClicked()&&$mode=="delete") {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($form->get('submit')->isClicked() && ($mode=="submit" || $mode=="update")) {
|
||||||
|
// Interdire l'insertion de 2 chat dans la meme page
|
||||||
|
if($idwidgettype==-1840) {
|
||||||
|
$pagewidget=$this->getDoctrine()->getRepository("CadolesPortalBundle:Pagewidget")->findoneby(["page"=>$page,"widget"=>-1840]);
|
||||||
|
if($pagewidget) {
|
||||||
|
$form->addError(new FormError("Vous ne pouvez pas insérer deux widgets de type Chat dans la même page"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($form->get('submit')->isClicked() && !$form->isValid()) {
|
||||||
|
$this->get('session')->getFlashBag()->clear();
|
||||||
|
$validator = $this->get('validator');
|
||||||
|
$errors = $validator->validate($data);
|
||||||
|
foreach( $errors as $error ) {
|
||||||
|
$request->getSession()->getFlashBag()->add("error", $error->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
$errors = $form->getErrors();
|
||||||
|
foreach( $errors as $error ) {
|
||||||
|
$request->getSession()->getFlashBag()->add("error", $error->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function viewurlAction($id,$access="config") {
|
public function viewurlAction($id,$access="config") {
|
||||||
$em = $this->getDoctrine()->getManager();
|
$em = $this->getDoctrine()->getManager();
|
||||||
$entity = $em->getRepository($this->labelentity)->find($id);
|
$entity = $em->getRepository($this->labelentity)->find($id);
|
||||||
|
|
|
@ -46,8 +46,11 @@
|
||||||
<span class="title">{{ entity.name }}</span>
|
<span class="title">{{ entity.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="widgetbody" style="{{ stylewidgetbodyframe }}">
|
<div class="widgetbody" style="{{ stylewidgetbody }}">
|
||||||
|
{{ render(url('cadoles_websocket_chat',{'id':group,'framed':true,'border':entity.border,'colorbodybacklight':colorbodyback, 'colorbodyback':colorbodyback,'colorbodyfont':colorbodyfont})) }}
|
||||||
|
<!--
|
||||||
<iframe src="{{ path(tool,{'id':group,'framed':true,'border':entity.border,'colorbodybacklight':colorbodyback, 'colorbodyback':colorbodyback,'colorbodyfont':colorbodyfont}) }}" class="{% if entity.autoajust %}frameajust {% endif %}"></iframe>
|
<iframe src="{{ path(tool,{'id':group,'framed':true,'border':entity.border,'colorbodybacklight':colorbodyback, 'colorbodyback':colorbodyback,'colorbodyfont':colorbodyfont}) }}" class="{% if entity.autoajust %}frameajust {% endif %}"></iframe>
|
||||||
|
-->
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -69,6 +69,7 @@ class ChatController extends Controller
|
||||||
'usesidebar' => false,
|
'usesidebar' => false,
|
||||||
'userkey' => $key,
|
'userkey' => $key,
|
||||||
'groupid' => $id,
|
'groupid' => $id,
|
||||||
|
'group' => $group,
|
||||||
'messages' => $messages,
|
'messages' => $messages,
|
||||||
'framed' => $framed,
|
'framed' => $framed,
|
||||||
'border' => $border,
|
'border' => $border,
|
||||||
|
|
|
@ -31,7 +31,15 @@ class ChatType extends AbstractType
|
||||||
'required' => false,
|
'required' => false,
|
||||||
'config' => ["height" => "100px",'filebrowserUploadRoute' => 'cadoles_portal_user_pagewidget_upload']
|
'config' => ["height" => "100px",'filebrowserUploadRoute' => 'cadoles_portal_user_pagewidget_upload']
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
$builder
|
||||||
|
->add("messagemail",CKEditorType::class,[
|
||||||
|
'config_name' => 'small_config',
|
||||||
|
'label' => "Message",
|
||||||
|
'mapped'=> false,
|
||||||
|
'required' => false,
|
||||||
|
'config' => ["height" => "200px",'filebrowserUploadRoute' => 'cadoles_portal_user_pagewidget_upload']
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function configureOptions(OptionsResolver $resolver)
|
public function configureOptions(OptionsResolver $resolver)
|
||||||
|
|
|
@ -36,6 +36,18 @@
|
||||||
line-height: 12px;
|
line-height: 12px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
.bootstrap-switch{
|
||||||
|
margin-top:5px;
|
||||||
|
}
|
||||||
|
.labelswitch {
|
||||||
|
line-height: 40px;
|
||||||
|
float: right;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
#listtoavatar img {
|
||||||
|
margin:0px 5px 5px 0px;
|
||||||
|
cursor:pointer;
|
||||||
|
}
|
||||||
#cke_1_bottom{ display:none }
|
#cke_1_bottom{ display:none }
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
@ -43,10 +55,12 @@
|
||||||
{{ form_start(form) }}
|
{{ form_start(form) }}
|
||||||
<div class='row'>
|
<div class='row'>
|
||||||
{{ form_widget(form.message) }}
|
{{ form_widget(form.message) }}
|
||||||
|
<input id="sendbymail" type="checkbox" id="item_essential" name="item[essential]" style="float:right" class='switch' ></input>
|
||||||
|
<label class="custom-control-label" for="sendbymail">Envoyer par Mail ?</label>
|
||||||
<a id="sendbtn" class="btn btn-success" style="margin-top:5px; width:100%; margin-bottom:15px">Envoyer</a>
|
<a id="sendbtn" class="btn btn-success" style="margin-top:5px; width:100%; margin-bottom:15px">Envoyer</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{ form_end(form) }}
|
|
||||||
|
|
||||||
<div class="mychat">
|
<div class="mychat">
|
||||||
{% for message in messages %}
|
{% for message in messages %}
|
||||||
|
@ -67,6 +81,35 @@
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="mymodal-sendmail" class="modal fade" tabindex="-1" role="dialog">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||||
|
<h4 class="modal-title">Notifier par Mail</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="form-group ">
|
||||||
|
<label class="control-label required" for="mailsuject">Sujet du Mail<span class="mandatory">*</span></label>
|
||||||
|
<input type="text" id="mailsuject" name="mailsuject" required="required" class="form-control">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label class="control-label required">Destinataires (cliquez sur les images pour les enlever de la liste des destinataires)<span class="mandatory">*</span></label>
|
||||||
|
<div id="listtoavatar"></div>
|
||||||
|
<input type="hidden" id="mailto" name="mailto" required="required" class="form-control">
|
||||||
|
</div>
|
||||||
|
<div class="form-group" style="margin-top:10px">
|
||||||
|
<label class="control-label required">Corps du Mail<span class="mandatory">*</span></label>
|
||||||
|
{{ form_widget(form.messagemail) }}
|
||||||
|
</div>
|
||||||
|
<a id="sendbtnmail" class="btn btn-success" style="margin-top:5px; width:100%; margin-bottom:15px">Envoyer</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{ form_end(form) }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block localexternalscript %}
|
{% block localexternalscript %}
|
||||||
|
@ -76,6 +119,7 @@
|
||||||
|
|
||||||
{% block localjavascript %}
|
{% block localjavascript %}
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
$(".switch").bootstrapSwitch();
|
||||||
var dateoptions = {weekday: "long", year: "numeric", month: "long", day: "numeric", hour: "2-digit", minute: "2-digit" };
|
var dateoptions = {weekday: "long", year: "numeric", month: "long", day: "numeric", hour: "2-digit", minute: "2-digit" };
|
||||||
|
|
||||||
|
|
||||||
|
@ -120,22 +164,62 @@
|
||||||
|
|
||||||
$( "#sendbtn" ).click(function() {
|
$( "#sendbtn" ).click(function() {
|
||||||
var data = CKEDITOR.instances["chat_message"].getData();
|
var data = CKEDITOR.instances["chat_message"].getData();
|
||||||
if(data) {
|
if($("#sendbymail").bootstrapSwitch('state')) {
|
||||||
event={mykey: "{{userkey}}", type: "add", message: data};
|
CKEDITOR.instances["chat_messagemail"].setData(data);
|
||||||
|
$("#mailsuject").val("{{app.session.get('appname')}} = Notification {{ group.label }}");
|
||||||
|
$("#mailto").val("");
|
||||||
|
//$("#listtoavatar").html("");
|
||||||
|
|
||||||
|
{% for user in group.users %}
|
||||||
|
{%if(user.user!=app.user)%}
|
||||||
|
$("#mailto").val($("#mailto").val()+";{{user.user.email}}");
|
||||||
|
$("#listtoavatar").append($("<img class='avatar' title='{{user.user.lastname}} {{user.user.firstname}}' data-mail='{{user.user.email}}' src='\\{{alias}}\\uploads\\avatar\\{{user.user.avatar}}'>"));
|
||||||
|
{%endif%}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
$('#mymodal-sendmail').modal('show');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if(data) {
|
||||||
|
event={mykey: "{{userkey}}", type: "add", message: data};
|
||||||
|
session.publish("websocket/channel/{{groupid}}", event);
|
||||||
|
CKEDITOR.instances["chat_message"].setData('');
|
||||||
|
|
||||||
|
event={type: "add", group:{{groupid}}};
|
||||||
|
parent.counter(event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$( "#sendbtnmail" ).click(function() {
|
||||||
|
var data = CKEDITOR.instances["chat_messagemail"].getData();
|
||||||
|
var subject=$("#mailsuject").val();
|
||||||
|
var mailto=$("#mailto").val();
|
||||||
|
|
||||||
|
if(data&&subject&&mailto) {
|
||||||
|
event={mykey: "{{userkey}}", type: "add", message: data, mail: "true", to: mailto, subject: subject};
|
||||||
session.publish("websocket/channel/{{groupid}}", event);
|
session.publish("websocket/channel/{{groupid}}", event);
|
||||||
CKEDITOR.instances["chat_message"].setData('');
|
CKEDITOR.instances["chat_message"].setData('');
|
||||||
|
|
||||||
event={type: "add", group:{{groupid}}};
|
event={type: "add", group:{{groupid}}};
|
||||||
parent.parent.counter(event);
|
parent.counter(event);
|
||||||
}
|
|
||||||
|
$('#mymodal-sendmail').modal('hide');
|
||||||
|
|
||||||
|
}
|
||||||
|
else alert("Sujet, corps et destinataire(s) obligatoire");
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).on('click', '.delmessage', function(){
|
$(document).on('click', '.delmessage', function(){
|
||||||
id=$(this).data("id");
|
id=$(this).data("id");
|
||||||
event={mykey: "{{userkey}}", type: "del", id: id};
|
event={mykey: "{{userkey}}", type: "del", id: id};
|
||||||
session.publish("websocket/channel/{{groupid}}", event);
|
session.publish("websocket/channel/{{groupid}}", event);
|
||||||
|
});
|
||||||
|
|
||||||
|
$(document).on('click', '#listtoavatar img', function(){
|
||||||
|
var mail = ";"+$(this).data("mail");
|
||||||
|
$("#mailto").val($("#mailto").val().replace(mail, ""));
|
||||||
|
$(this).remove();
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -36,10 +36,8 @@ class WebsocketCounter implements TopicInterface
|
||||||
*/
|
*/
|
||||||
public function onSubscribe(ConnectionInterface $connection, Topic $topic, WampRequest $request)
|
public function onSubscribe(ConnectionInterface $connection, Topic $topic, WampRequest $request)
|
||||||
{
|
{
|
||||||
$userid=$connection->userid;
|
|
||||||
//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()." ".$userid]);
|
//$topic->broadcast(['log' => $connection->resourceId." has joined ".$topic->getId()." ".$userid]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -88,6 +88,24 @@ class WebsocketTopic implements TopicInterface
|
||||||
|
|
||||||
if($group&&$usergroup&&$user) {
|
if($group&&$usergroup&&$user) {
|
||||||
if($event["type"]=="add") {
|
if($event["type"]=="add") {
|
||||||
|
if(array_key_exists("mail",$event)) {
|
||||||
|
$mail = $this->container->get('cadoles.core.service.mail');
|
||||||
|
if($mail) {
|
||||||
|
$mail_params=array(
|
||||||
|
"subject" => $event["subject"],
|
||||||
|
"body_html"=>$event["message"],
|
||||||
|
"body_text"=>strip_tags($event["message"])
|
||||||
|
);
|
||||||
|
|
||||||
|
// Transformer la liste des destinataires en tableau : [0] tjr vide on l'unset
|
||||||
|
$to=explode(";",$event["to"]);
|
||||||
|
unset($to[0]);
|
||||||
|
|
||||||
|
$mail->sendEmail("template", $mail_params, $to, $user->getEmail(), $user->getLastname()." ".$user->getFirstname());
|
||||||
|
$event["message"].="<br><i>Notification envoyée par mail</i>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$message=new Message();
|
$message=new Message();
|
||||||
$message->setTopic($event["message"]);
|
$message->setTopic($event["message"]);
|
||||||
$message->setUser($user);
|
$message->setUser($user);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
server {
|
server {
|
||||||
listen 5555 ssl;
|
listen %%ninegate_websocket_portexterne ssl;
|
||||||
|
|
||||||
ssl on;
|
ssl on;
|
||||||
ssl_certificate %%server_cert;
|
ssl_certificate %%server_cert;
|
||||||
|
@ -19,6 +19,6 @@ server {
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
proxy_pass http://%%web_url:5556;
|
proxy_pass http://%%web_url:%%ninegate_websocket_portinterne;
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue