mirror of
https://github.com/RaspbianFrance/raspisms.git
synced 2025-04-21 08:56:27 +02:00
remove makefile
This commit is contained in:
parent
f955cf3db0
commit
38a8b023cb
276 changed files with 0 additions and 138 deletions
162
templates/contact/add.php
Executable file
162
templates/contact/add.php
Executable file
|
@ -0,0 +1,162 @@
|
|||
<?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">
|
||||
Nouveau contact
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li>
|
||||
<i class="fa fa-dashboard"></i> <a href="<?php echo \descartes\Router::url('Dashboard', 'show'); ?>">Dashboard</a>
|
||||
</li>
|
||||
<li>
|
||||
<i class="fa fa-user"></i> <a href="<?php echo \descartes\Router::url('Contact', 'list'); ?>">Contacts</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
<i class="fa fa-plus"></i> Nouveau
|
||||
</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> Ajout d'un contact</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<form action="<?php echo \descartes\Router::url('Contact', 'create', ['csrf' => $_SESSION['csrf']]);?>" method="POST">
|
||||
<div class="form-group">
|
||||
<label>Nom contact</label>
|
||||
<div class="form-group input-group">
|
||||
<span class="input-group-addon"><span class="fa fa-user"></span></span>
|
||||
<input name="name" class="form-control" type="text" placeholder="Nom contact" autofocus required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Numéro de téléphone du contact</label>
|
||||
<div class="form-group">
|
||||
<input name="" class="form-control" type="tel" id="phone-international-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Données du contact</label>
|
||||
<p class="italic small help" id="description-datas">
|
||||
Les données d'un contact vous permettent de l'enrichir afin de pouvoir accéder à ces données au sein d'un message via <a href="#">l'utilisation de templates.</a><br/>
|
||||
Laissez vide si vous ne souhaitez pas renseigner d'informations supplémentaires pour le contact. Utilisez uniquement des lettres, des chiffres et des underscore pour les noms de données, ni espace ni caractères spéciaux.
|
||||
</p>
|
||||
<div class="contact-datas-container">
|
||||
<div class="form-group">
|
||||
<input name="" class="form-control contact-data-name" type="text" placeholder="Nom de la donnée" pattern="[a-zA-Z0-9_]*">
|
||||
:
|
||||
<input name="" class="form-control contact-data-value" type="text" placeholder="Valeur de la donnée">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a class="btn btn-danger" href="<?php echo \descartes\Router::url('Contact', 'list'); ?>">Annuler</a>
|
||||
<input type="submit" class="btn btn-success" value="Enregistrer le contact" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
jQuery('document').ready(function($)
|
||||
{
|
||||
var number_input = jQuery('#phone-international-input')[0];
|
||||
var iti_number_input = window.intlTelInput(number_input, {
|
||||
hiddenInput: 'number',
|
||||
defaultCountry: '<?php $this->s($_SESSION['user']['settings']['default_phone_country']); ?>',
|
||||
preferredCountries: <?php $this->s(json_encode(explode(',', $_SESSION['user']['settings']['preferred_phone_country'])), false, false); ?>,
|
||||
nationalMode: true,
|
||||
<?php if ($_SESSION['user']['settings']['authorized_phone_country'] ?? false) { ?>
|
||||
onlyCountries: <?php $this->s(json_encode(explode(',', $_SESSION['user']['settings']['authorized_phone_country'])), false, false); ?>,
|
||||
<?php } ?>
|
||||
utilsScript: '<?php echo HTTP_PWD_JS; ?>/intlTelInput/utils.js'
|
||||
});
|
||||
|
||||
|
||||
jQuery('.contact-datas-container').on('input', '.contact-data-value, .contact-data-name', function (e)
|
||||
{
|
||||
var focus_group = jQuery(this).parent('.form-group');
|
||||
var focus_input = this;
|
||||
var input_name = focus_group.find('.contact-data-name');
|
||||
var input_value = focus_group.find('.contact-data-value');
|
||||
|
||||
jQuery('.contact-datas-container .form-group').each(function (e)
|
||||
{
|
||||
var current_input_name = jQuery(this).find('.contact-data-name');
|
||||
var current_input_value = jQuery(this).find('.contact-data-value');
|
||||
|
||||
if (current_input_value.is(focus_input) || current_input_name.is(focus_input))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (jQuery(current_input_name).val() === '' && jQuery(current_input_value).val() === '')
|
||||
{
|
||||
jQuery(this).remove();
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
if (input_name.val() === '' || input_value.val() === '')
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
var template = '' +
|
||||
'<div class="form-group">' +
|
||||
'<input name="" class="form-control contact-data-name" type="text" placeholder="Nom de la donnée" pattern="[a-zA-Z0-9_]*">' +
|
||||
' : ' +
|
||||
'<input name="" class="form-control contact-data-value" type="text" placeholder="Valeur de la donnée">' +
|
||||
' <a href="#" class="contact-datas-remove"><span class="fa fa-times"></span></a>' +
|
||||
'</div>';
|
||||
jQuery('.contact-datas-container').append(template);
|
||||
});
|
||||
|
||||
jQuery('.contact-datas-container').on('click', '.contact-datas-remove', function (e)
|
||||
{
|
||||
e.preventDefault();
|
||||
if (jQuery('.contact-datas-container .form-group').length > 1)
|
||||
{
|
||||
jQuery(this).parent('.form-group').remove();
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
jQuery('form').on('submit', function (e)
|
||||
{
|
||||
e.preventDefault();
|
||||
|
||||
jQuery('.contact-datas-container .form-group').each(function ()
|
||||
{
|
||||
var name = jQuery(this).find('.contact-data-name').val();
|
||||
name = name.replace(/\W/g, '');
|
||||
name = 'datas[' + name + ']';
|
||||
jQuery(this).find('.contact-data-value').attr('name', name);
|
||||
});
|
||||
|
||||
e.currentTarget.submit();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<?php
|
||||
$this->render('incs/footer');
|
192
templates/contact/edit.php
Executable file
192
templates/contact/edit.php
Executable file
|
@ -0,0 +1,192 @@
|
|||
<?php
|
||||
//Template dashboard
|
||||
|
||||
$this->render('incs/head', ['title' => 'Contacts - Edit'])
|
||||
?>
|
||||
<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">
|
||||
Modification contacts
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li>
|
||||
<i class="fa fa-dashboard"></i> <a href="<?php echo \descartes\Router::url('Dashboard', 'show'); ?>">Dashboard</a>
|
||||
</li>
|
||||
<li>
|
||||
<i class="fa fa-user"></i> <a href="<?php echo \descartes\Router::url('Contact', 'list'); ?>">Contacts</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
<i class="fa fa-edit"></i> Modifier
|
||||
</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-edit fa-fw"></i> Modification de contacts</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<form action="<?php echo \descartes\Router::url('Contact', 'update', ['csrf' => $_SESSION['csrf']]);?>" method="POST">
|
||||
<?php foreach ($contacts as $contact) { ?>
|
||||
<div class="form-group">
|
||||
<input name="contacts[<?php $this->s($contact['id']); ?>][id]" type="hidden" value="<?php $this->s($contact['id']); ?>">
|
||||
<label>Nom contact</label>
|
||||
<div class="form-group input-group">
|
||||
<span class="input-group-addon"><span class="fa fa-user"></span></span>
|
||||
<input name="contacts[<?php $this->s($contact['id']); ?>][name]" class="form-control" type="text" placeholder="Nom contact" autofocus required value="<?php $this->s($contact['name']); ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Numéro de téléphone du contact</label>
|
||||
<div class="form-group">
|
||||
<input name="" class="form-control phone-international-input" type="tel" contact-id="<?php $this->s($contact['id']); ?>" value="<?php $this->s($contact['number']); ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Données du contact</label>
|
||||
<p class="italic small help" id="description-datas">
|
||||
Les données d'un contact vous permettent de l'enrichir afin de pouvoir accéder à ces données au sein d'un message via <a href="#">l'utilisation de templates.</a><br/>
|
||||
Laissez vide si vous ne souhaitez pas renseigner d'informations supplémentaires pour le contact. Utilisez uniquement des lettres, des chiffres et des underscore pour les noms de données, ni espace ni caractères spéciaux.
|
||||
</p>
|
||||
<div class="contact-datas-container" data-id-contact="<?php $this->s($contact['id']); ?>">
|
||||
<?php if (!$contact['datas']) { ?>
|
||||
<div class="form-group">
|
||||
<input name="" class="form-control contact-data-name" type="text" placeholder="Nom de la donnée" pattern="[a-zA-Z0-9_]*">
|
||||
:
|
||||
<input name="" class="form-control contact-data-value" type="text" placeholder="Valeur de la donnée">
|
||||
</div>
|
||||
<?php } else {?>
|
||||
<?php foreach ($contact['datas'] as $name => $data) { ?>
|
||||
<div class="form-group">
|
||||
<input name="" class="form-control contact-data-name" type="text" placeholder="Nom de la donnée" pattern="[a-zA-Z0-9_]*" value="<?php $this->s($name); ?>">
|
||||
:
|
||||
<input name="" class="form-control contact-data-value" type="text" placeholder="Valeur de la donnée" value="<?php $this->s($data); ?>">
|
||||
<a href="#" class="contact-datas-remove"><span class="fa fa-times"></span></a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<div class="form-group">
|
||||
<input name="" class="form-control contact-data-name" type="text" placeholder="Nom de la donnée" pattern="[a-zA-Z0-9_]*">
|
||||
:
|
||||
<input name="" class="form-control contact-data-value" type="text" placeholder="Valeur de la donnée">
|
||||
<a href="#" class="contact-datas-remove"><span class="fa fa-times"></span></a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
<hr/>
|
||||
<?php } ?>
|
||||
<a class="btn btn-danger" href="<?php echo \descartes\Router::url('Contact', 'list'); ?>">Annuler</a>
|
||||
<input type="submit" class="btn btn-success" value="Enregistrer le contact" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
jQuery('document').ready(function($)
|
||||
{
|
||||
jQuery('.phone-international-input').each(function()
|
||||
{
|
||||
var number_input = this;
|
||||
var hidden_input_name = 'contacts[' + jQuery(number_input).attr('contact-id') + '][number]';
|
||||
var iti_number_input = window.intlTelInput(number_input, {
|
||||
hiddenInput: hidden_input_name,
|
||||
defaultCountry: '<?php $this->s($_SESSION['user']['settings']['default_phone_country']); ?>',
|
||||
preferredCountries: <?php $this->s(json_encode(explode(',', $_SESSION['user']['settings']['preferred_phone_country'])), false, false); ?>,
|
||||
<?php if ($_SESSION['user']['settings']['authorized_phone_country'] ?? false) { ?>
|
||||
onlyCountries: <?php $this->s(json_encode(explode(',', $_SESSION['user']['settings']['authorized_phone_country'])), false, false); ?>,
|
||||
<?php } ?>
|
||||
nationalMode: true,
|
||||
utilsScript: '<?php echo HTTP_PWD_JS; ?>/intlTelInput/utils.js'
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
jQuery('.contact-datas-container').on('input', '.contact-data-value, .contact-data-name', function (e)
|
||||
{
|
||||
var focus_group = jQuery(this).parent('.form-group');
|
||||
var focus_input = this;
|
||||
var input_name = focus_group.find('.contact-data-name');
|
||||
var input_value = focus_group.find('.contact-data-value');
|
||||
|
||||
var datas_container = jQuery(this).parents('.contact-datas-container');
|
||||
|
||||
datas_container.find('.form-group').each(function (e)
|
||||
{
|
||||
console.log(this);
|
||||
var current_input_name = jQuery(this).find('.contact-data-name');
|
||||
var current_input_value = jQuery(this).find('.contact-data-value');
|
||||
|
||||
if (current_input_value.is(focus_input) || current_input_name.is(focus_input))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (jQuery(current_input_name).val() === '' && jQuery(current_input_value).val() === '')
|
||||
{
|
||||
jQuery(this).remove();
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
if (input_name.val() === '' || input_value.val() === '')
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
var template = '' +
|
||||
'<div class="form-group">' +
|
||||
'<input name="" class="form-control contact-data-name" type="text" placeholder="Nom de la donnée" pattern="[a-zA-Z0-9_]*">' +
|
||||
' : ' +
|
||||
'<input name="" class="form-control contact-data-value" type="text" placeholder="Valeur de la donnée">' +
|
||||
' <a href="#" class="contact-datas-remove"><span class="fa fa-times"></span></a>' +
|
||||
'</div>';
|
||||
datas_container.append(template);
|
||||
});
|
||||
|
||||
jQuery('.contact-datas-container').on('click', '.contact-datas-remove', function (e)
|
||||
{
|
||||
e.preventDefault();
|
||||
if (jQuery('.contact-datas-container .form-group').length > 1)
|
||||
{
|
||||
jQuery(this).parent('.form-group').remove();
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
jQuery('form').on('submit', function (e)
|
||||
{
|
||||
e.preventDefault();
|
||||
|
||||
jQuery('.contact-datas-container .form-group').each(function ()
|
||||
{
|
||||
var contact_id = jQuery(this).parents('.contact-datas-container').attr('data-id-contact');
|
||||
var name = jQuery(this).find('.contact-data-name').val();
|
||||
name = name.replace(/\W/g, '');
|
||||
|
||||
name = 'contacts[' + contact_id + '][datas][' + name + ']';
|
||||
jQuery(this).find('.contact-data-value').attr('name', name);
|
||||
});
|
||||
|
||||
e.currentTarget.submit();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<?php
|
||||
$this->render('incs/footer');
|
143
templates/contact/list.php
Executable file
143
templates/contact/list.php
Executable file
|
@ -0,0 +1,143 @@
|
|||
<?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>
|
||||
<a class="btn btn-info float-right" id="btn-export" href="#"><span class="fa fa-upload"></span> Exporter la liste des contacts</a>
|
||||
<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>
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li>
|
||||
<i class="fa fa-dashboard"></i> <a href="<?php echo \descartes\Router::url('Dashboard', 'show'); ?>">Dashboard</a>
|
||||
</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">
|
||||
<?php if (!$contacts) { ?>
|
||||
<p>Aucun contact n'est enregistré pour le moment.</p>
|
||||
<?php } else { ?>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover table-striped" id="table-contacts">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>Nom</th>
|
||||
<th>Numéro</th>
|
||||
<th style="width:5%;">Sélectionner</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($contacts as $contact) { ?>
|
||||
<tr>
|
||||
<td><?php $this->s($contact['id']); ?></td>
|
||||
<td><?php $this->s($contact['name']); ?></td>
|
||||
<td><?php echo(\controllers\internals\Tool::phone_link($contact['number'])); ?></td>
|
||||
<td><input type="checkbox" name="ids[]" value="<?php $this->s($contact['id']); ?>"></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<div>
|
||||
<div class="col-xs-6 no-padding">
|
||||
<a class="btn btn-success" href="<?php echo \descartes\Router::url('Contact', 'add'); ?>"><span class="fa fa-plus"></span> Ajouter un contact</a>
|
||||
</div>
|
||||
<?php if ($contacts) { ?>
|
||||
<div class="text-right col-xs-6 no-padding">
|
||||
<strong>Action pour la séléction :</strong>
|
||||
<button class="btn btn-default" type="submit" formaction="<?php echo \descartes\Router::url('Scheduled', 'add', ['prefilled' => 'contacts']); ?>"><span class="fa fa-send"></span> Envoyer un message</button>
|
||||
<button class="btn btn-default" type="submit" formaction="<?php echo \descartes\Router::url('Contact', 'edit'); ?>"><span class="fa fa-edit"></span> Modifier</button>
|
||||
<button class="btn btn-default btn-confirm" type="submit" formaction="<?php echo \descartes\Router::url('Contact', 'delete', ['csrf' => $_SESSION['csrf']]); ?>"><span class="fa fa-trash-o"></span> Supprimer</button>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<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\Router::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">×</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\Router::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">×</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\Router::url('Contact', 'export', ['format' => 'csv'])); ?>" class="btn btn-default">CSV</a>
|
||||
<a target="_blank" href="<?php $this->s(\descartes\Router::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>
|
||||
<script>
|
||||
jQuery(document).ready(function()
|
||||
{
|
||||
jQuery('body').on('click', '#btn-import', function ()
|
||||
{
|
||||
jQuery('#import-modal').modal({'keyboard': true});
|
||||
});
|
||||
|
||||
jQuery('body').on('click', '#btn-export', function ()
|
||||
{
|
||||
jQuery('#export-modal').modal({'keyboard': true});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<?php
|
||||
$this->render('incs/footer');
|
Loading…
Add table
Add a link
Reference in a new issue