2019-10-29 14:57:13 +01:00
< ? php
//Template dashboard
$this -> render ( 'incs/head' , [ 'title' => 'Contacts - Show All' ])
?>
< div id = " wrapper " >
< ? php
$this -> render ( 'incs/nav' , [ 'page' => 'contacts' ])
?>
< div id = " page-wrapper " >
< div class = " container-fluid " >
<!-- Page Heading -->
< div class = " row " >
< div class = " col-lg-12 " >
< h1 class = " page-header " >
Dashboard < small > Contacts </ small >
2021-04-24 00:17:48 +02:00
< a class = " btn btn-warning float-right " id = " btn-conditional-deletion " href = " # " >< span class = " fa fa-trash-o " ></ span > Supprimer une liste dynamique de contacts </ a >
2021-04-24 00:10:23 +02:00
< a class = " btn btn-info float-right " id = " btn-export " href = " # " style = " margin-right: 10px; " >< span class = " fa fa-upload " ></ span > Exporter la liste des contacts </ a >
2019-11-30 05:31:20 +01:00
< a class = " btn btn-info float-right " id = " btn-import " href = " # " style = " margin-right: 10px; " >< span class = " fa fa-download " ></ span > Importer une liste de contacts </ a >
2019-10-29 14:57:13 +01:00
</ h1 >
< ol class = " breadcrumb " >
< li >
2019-11-07 17:52:33 +01:00
< i class = " fa fa-dashboard " ></ i > < a href = " <?php echo \ descartes \R outer::url('Dashboard', 'show'); ?> " > Dashboard </ a >
2019-10-29 14:57:13 +01:00
</ li >
< li class = " active " >
< i class = " fa fa-user " ></ i > Contacts
</ li >
</ ol >
</ div >
</ div >
<!-- /. row -->
< div class = " row " >
< div class = " col-lg-12 " >
< div class = " panel panel-default " >
< div class = " panel-heading " >
< h3 class = " panel-title " >< i class = " fa fa-user fa-fw " ></ i > Liste des contacts </ h3 >
</ div >
< div class = " panel-body " >
< form method = " GET " >
2020-09-23 03:02:13 +02:00
< div class = " table-responsive " >
< table class = " table table-bordered table-hover table-striped datatable " id = " table-contacts " >
< thead >
< tr >
< th > Nom </ th >
< th > Numéro </ th >
2021-04-23 22:56:27 +02:00
< th > Date de création </ th >
< th > Dernière modification </ th >
2021-06-29 20:05:56 +02:00
< th class = " checkcolumn " >< input type = " checkbox " id = " check-all " /></ th >
2020-09-23 03:02:13 +02:00
</ tr >
</ thead >
< tbody >
</ tbody >
</ table >
</ div >
2019-10-29 14:57:13 +01:00
< div >
< div class = " col-xs-6 no-padding " >
2019-11-07 17:52:33 +01:00
< a class = " btn btn-success " href = " <?php echo \ descartes \R outer::url('Contact', 'add'); ?> " >< span class = " fa fa-plus " ></ span > Ajouter un contact </ a >
2019-10-29 14:57:13 +01:00
</ div >
2020-09-23 03:02:13 +02:00
< div class = " text-right col-xs-6 no-padding " >
< strong > Action pour la séléction :</ strong >
2021-01-14 04:30:28 +01:00
< button class = " btn btn-default " type = " submit " formaction = " <?php echo \ descartes \R outer::url('Scheduled', 'add'); ?> " >< span class = " fa fa-send " ></ span > Envoyer un message </ button >
2020-09-23 03:02:13 +02:00
< button class = " btn btn-default " type = " submit " formaction = " <?php echo \ descartes \R outer::url('Contact', 'edit'); ?> " >< span class = " fa fa-edit " ></ span > Modifier </ button >
< button class = " btn btn-default btn-confirm " type = " submit " formaction = " <?php echo \ descartes \R outer::url('Contact', 'delete', ['csrf' => $_SESSION['csrf'] ]); ?> " >< span class = " fa fa-trash-o " ></ span > Supprimer </ button >
</ div >
2019-10-29 14:57:13 +01:00
</ div >
</ form >
</ div >
</ div >
</ div >
</ div >
</ div >
</ div >
</ div >
2019-11-30 05:31:20 +01:00
< div class = " modal fade " tabindex = " -1 " id = " import-modal " >
< div class = " modal-dialog modal-lg " >
< div class = " modal-content " >
< form action = " <?php $this->s ( \ descartes \R outer::url('Contact', 'import', ['csrf' => $_SESSION['csrf'] ])); ?> " method = " POST " enctype = " multipart/form-data " >
< div class = " modal-header " >
< button type = " button " class = " close " data - dismiss = " modal " aria - label = " Close " >< span aria - hidden = " true " >& times ; </ span ></ button >
< h4 class = " modal-title " > Importer une liste de contacts </ h4 >
</ div >
< div class = " modal-body text-center " >
< p > Vous pouvez importer une liste aux formats suivants : CSV ou JSON .</ p >
< input id = " contacts_list_file " type = " file " name = " contacts_list_file " class = " hidden " required = " required " >
< label class = " btn btn-default " for = " contacts_list_file " >< span class = " fa fa-file-text-o hidden invalid-icon " ></ span >< span class = " fa fa-check hidden valid-icon " ></ span > Choisir le fichier </ label >
</ div >
< div class = " modal-footer " >
< a type = " button " class = " btn btn-danger " data - dismiss = " modal " > Annuler </ a >
< input type = " submit " class = " btn btn-success " value = " Valider " />
</ div >
</ form >
</ div >
</ div >
</ div >
< div class = " modal fade " tabindex = " -1 " id = " export-modal " >
< div class = " modal-dialog modal-lg " >
< div class = " modal-content " >
< form action = " <?php $this->s ( \ descartes \R outer::url('Contact', 'import', ['csrf' => $_SESSION['csrf'] ])); ?> " method = " POST " enctype = " multipart/form-data " >
< div class = " modal-header " >
< button type = " button " class = " close " data - dismiss = " modal " aria - label = " Close " >< span aria - hidden = " true " >& times ; </ span ></ button >
< h4 class = " modal-title " > Exporter la liste des contacts </ h4 >
</ div >
< div class = " modal-body text-center " >
< p > Vous pouvez exporter la liste aux formats suivants .</ p >
< a target = " _blank " href = " <?php $this->s ( \ descartes \R outer::url('Contact', 'export', ['format' => 'csv'])); ?> " class = " btn btn-default " > CSV </ a >
< a target = " _blank " href = " <?php $this->s ( \ descartes \R outer::url('Contact', 'export', ['format' => 'json'])); ?> " class = " btn btn-default " > JSON </ a >
</ div >
< div class = " modal-footer " >
< a type = " button " class = " btn btn-danger " data - dismiss = " modal " > Annuler </ a >
</ div >
</ form >
</ div >
</ div >
</ div >
2021-04-24 00:10:23 +02:00
< div class = " modal fade " tabindex = " -1 " id = " conditional-deletion-modal " >
< div class = " modal-dialog modal-lg " >
< div class = " modal-content " >
< form action = " <?php $this->s ( \ descartes \R outer::url('Contact', 'conditional_delete', ['csrf' => $_SESSION['csrf'] ])); ?> " method = " POST " enctype = " multipart/form-data " >
< div class = " modal-header " >
< button type = " button " class = " close " data - dismiss = " modal " aria - label = " Close " >< span aria - hidden = " true " >& times ; </ span ></ button >
< h4 class = " modal-title " > Supprimer des contacts de façon conditionnelle </ h4 >
</ div >
< div class = " modal-body text-center " >
< div class = " form-group " >
< p > Vous pouvez supprimer une liste dynamique de contacts , construite selon des règles basées sur les données de ces contacts . Pour plus d 'informations consultez la documentation relative à <a href="https://documentation.raspisms.fr/users/groups_and_contacts/conditionnals_groups.html" target="_blank">l' utilisation des groupes conditionnels .</ a >< br /></ p >
< input class = " form-control " name = " condition " placeholder = " Ex : contact.gender == 'male' " required />
< div class = " conditional-deletion-preview-container " >
< div class = " conditional-deletion-preview-text " ></ div >
< a class = " btn btn-info conditional-deletion-preview-button " href = " # " > Prévisualiser les contacts qui seront supprimés </ a >
</ div >
</ div >
</ div >
< div class = " modal-footer " >
< a type = " button " class = " btn btn-danger " data - dismiss = " modal " > Annuler </ a >
< button class = " btn btn-default btn-confirm " type = " submit " >< span class = " fa fa-trash-o " ></ span > Supprimer les contacts </ button >
</ div >
</ form >
</ div >
</ div >
</ div >
2019-11-30 05:31:20 +01:00
< script >
2020-09-23 03:02:13 +02:00
jQuery ( document ) . ready ( function ()
{
//Import/export contacts
jQuery ( 'body' ) . on ( 'click' , '#btn-import' , function ()
{
jQuery ( '#import-modal' ) . modal ({ 'keyboard' : true });
});
jQuery ( 'body' ) . on ( 'click' , '#btn-export' , function ()
2019-11-30 05:31:20 +01:00
{
2020-09-23 03:02:13 +02:00
jQuery ( '#export-modal' ) . modal ({ 'keyboard' : true });
});
2021-04-24 00:10:23 +02:00
jQuery ( 'body' ) . on ( 'click' , '#btn-conditional-deletion' , function ()
{
jQuery ( '#conditional-deletion-modal' ) . modal ({ 'keyboard' : true });
});
jQuery ( 'body' ) . on ( 'click' , '.conditional-deletion-preview-button' , function ( e )
{
e . preventDefault ();
var condition = jQuery ( this ) . parents ( '.form-group' ) . find ( 'input' ) . val ();
var data = {
'condition' : condition ,
};
jQuery . ajax ({
type : " POST " ,
url : HTTP_PWD + '/conditional_group/preview/' ,
data : data ,
success : function ( data ) {
jQuery ( '.conditional-deletion-preview-text' ) . text ( data . result );
},
dataType : 'json'
});
});
2020-09-23 03:02:13 +02:00
//Datatable
jQuery ( '.datatable' ) . DataTable ({
" pageLength " : 25 ,
2021-10-18 03:40:06 +02:00
" lengthMenu " : [[ 25 , 50 , 100 , 1000 , 10000 , Math . pow ( 10 , 10 )], [ 25 , 50 , 100 , 1000 , 10000 , " All " ]],
2020-09-23 03:02:13 +02:00
" language " : {
" url " : HTTP_PWD + " /assets/js/datatables/french.json " ,
},
2021-07-19 21:14:56 +02:00
" orderMulti " : false ,
2020-09-23 03:02:13 +02:00
" columnDefs " : [{
'targets' : 'checkcolumn' ,
'orderable' : false ,
}],
2021-07-19 21:14:56 +02:00
" serverSide " : true ,
2020-09-23 03:02:13 +02:00
" ajax " : {
'url' : '<?php echo \descartes\Router::url(' Contact ', ' list_json '); ?>' ,
'dataSrc' : 'data' ,
},
" columns " : [
{ data : 'name' , render : jQuery . fn . dataTable . render . text ()},
{ data : 'number_formatted' },
2021-04-23 22:56:27 +02:00
{ data : 'created_at' },
{ data : 'updated_at' },
2020-09-23 03:02:13 +02:00
{
data : 'id' ,
render : function ( data , type , row , meta ) {
2021-01-14 04:30:28 +01:00
return '<input name="contact_ids[]" type="checkbox" value="' + data + '">' ;
2020-09-23 03:02:13 +02:00
},
},
],
" deferRender " : true
2019-11-30 05:31:20 +01:00
});
2020-09-23 03:02:13 +02:00
});
2019-11-30 05:31:20 +01:00
</ script >
2019-10-29 14:57:13 +01:00
< ? php
$this -> render ( 'incs/footer' );