<?php
//_________________________________________________________________________________
//Récupération du cron
$reqCron = getQueries("api_crons LEFT JOIN api_commands ON api_crons.command_uniqid = api_commands.command_uniqid",
array("idCron" => encrypt_decrypt("decrypt", rawurldecode($_GET['element']), $key_user, $iv_user)));
if(!$reqCron['count'])
redirect("index.php?page_slug=crons");
$cron = $reqCron['result'][0];
//_________________________________________________________________________________
//_________________________________________________________________________________
//Récupération des tokens
$reqTokens = getQueries("api_tokens", array('application_uniqid' => $_SESSION['current_application_uniqid'],
'token_status' => 1));
$tokens = $reqTokens['result'];
//_________________________________________________________________________________
//_________________________________________________________________________________
//Récupération des commandes API de type fonction
$reqCommands = getQueries("api_commands", array('application_uniqid' => $_SESSION['current_application_uniqid'],
'command_type' => 'function',
'ORDER BY' => 'command_name'));
$commands = $reqCommands['result'];
//_________________________________________________________________________________
//_________________________________________________________________________________
//Mise à jour du cron
if(isset($_POST['update-cron'])) {
$form = array('cron_name' => htmlspecialchars($_POST['cron_name']),
'cron_start' => htmlspecialchars($_POST['cron_start']),
'cron_end' => htmlspecialchars($_POST['cron_end']),
'cron_every_year' => htmlspecialchars($_POST['cron_every_year']),
'cron_every_month' => htmlspecialchars($_POST['cron_every_month']),
'cron_every_day' => htmlspecialchars($_POST['cron_every_day']),
'cron_every_hour' => htmlspecialchars($_POST['cron_every_hour']),
'cron_every_minute' => htmlspecialchars($_POST['cron_every_minute']),
'cron_status' => htmlspecialchars($_POST['cron_status']),
'cron_order' => htmlspecialchars($_POST['cron_order']),
'cron_counter' => htmlspecialchars($_POST['cron_counter']),
'cron_max_counter' => htmlspecialchars($_POST['cron_max_counter']),
'cron_token' => htmlspecialchars($_POST['cron_token']),
'command_uniqid' => htmlspecialchars($_POST['command_uniqid']),
'user_id' => $user -> getUserId());
$selector = array('idCron' => $cron['idCron']);
$flag = dbRowUpdate2("api_crons", $form, $selector);
if($flag) {
itsLog(array('log_table' => "api_crons",
'log_operation' => "Mise à jour du cron",
'log_request' => json_encode($form),
'log_response' => json_encode($flag),
'log_selector' => json_encode($selector),
'log_color' => "success",
'log_display' => 1,
'log_timeout' => 5000,
'id_log' => $setting['idSetting'],
'user_id' => $user -> getUserId()
));
} else {
itsLog(array('log_table' => "api_crons",
'log_operation' => "Erreur durant la mise à jour du cron",
'log_request' => json_encode($form),
'log_response' => json_encode($flag),
'log_selector' => json_encode($selector),
'log_color' => "danger",
'log_display' => 1,
'log_timeout' => 5000,
'id_log' => $setting['idSetting'],
'user_id' => $user -> getUserId()
));
}
//Refresh
redirect($_SERVER['REQUEST_URI']);
}
//_________________________________________________________________________________
?>
<div class="content d-flex flex-column flex-column-fluid" id="kt_content">
<!--begin::Container-->
<div class="container-xxl" id="kt_content_container">
<!--begin::Layout-->
<div class="d-flex flex-column flex-xl-row">
<!--begin::Sidebar-->
<div class="flex-column flex-lg-row-auto w-100 w-xl-350px mb-10">
<!--begin::Card-->
<div class="card mb-5 mb-xl-8">
<!--begin::Card body-->
<div class="card-body">
<!--begin::Summary-->
<!--begin::User Info-->
<div class="d-flex flex-center flex-column py-5">
<!--begin::Name-->
<span class="fs-3 text-gray-800 fw-bolder mb-3"><?= $cron['cron_name']?></span>
<!--end::Name-->
</div>
<!--end::User Info-->
<!--end::Summary-->
<!--begin::Details toggle-->
<div class="d-flex flex-stack fs-4 py-3">
<div class="fw-bolder rotate collapsible" data-bs-toggle="collapse" href="#kt_user_view_details" role="button" aria-expanded="false" aria-controls="kt_user_view_details">Détails
<span class="ms-2 rotate-180">
<!--begin::Svg Icon | path: icons/duotune/arrows/arr072.svg-->
<span class="svg-icon svg-icon-3">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<path d="M11.4343 12.7344L7.25 8.55005C6.83579 8.13583 6.16421 8.13584 5.75 8.55005C5.33579 8.96426 5.33579 9.63583 5.75 10.05L11.2929 15.5929C11.6834 15.9835 12.3166 15.9835 12.7071 15.5929L18.25 10.05C18.6642 9.63584 18.6642 8.96426 18.25 8.55005C17.8358 8.13584 17.1642 8.13584 16.75 8.55005L12.5657 12.7344C12.2533 13.0468 11.7467 13.0468 11.4343 12.7344Z" fill="black" />
</svg>
</span>
<!--end::Svg Icon-->
</span></div>
</div>
<!--end::Details toggle-->
<div class="separator"></div>
<!--begin::Details content-->
<div id="kt_user_view_details" class="collapse show">
<div class="pb-5 fs-6">
<!--begin::Details item-->
<div class="fw-bolder mt-5">Identifiant du cron</div>
<div class="text-gray-600">ID-<?= $cron['idCron'] .'-'.$cron['cron_uniqid']?></div>
<!--begin::Details item-->
<!--begin::Details item-->
<div class="fw-bolder mt-5">Statut</div>
<div class="text-gray-600">
<span class="badge badge-secondary position-relative me-5"><?= ( $cron['cron_status'] == 1 ? 'Actif' : 'Inactif')?><span class="position-absolute top-0 start-100 translate-middle badge badge-circle badge-<?= ( $cron['cron_status'] == 1 ? 'success':'warning' )?>"></span></span>
</div>
<!--begin::Details item-->
<!--begin::Details item-->
<div class="fw-bolder mt-5">Commande API</div>
<div class="text-gray-600">
<?= $cron['command_name'] .'['. $cron['command_api_name'] .']'?>
</div>
<!--begin::Details item-->
</div>
</div>
<!--end::Details content-->
</div>
<!--end::Card body-->
</div>
<!--end::Card-->
</div>
<!--end::Sidebar-->
<!--begin::Content-->
<div class="flex-lg-row-fluid ms-lg-15">
<!--begin:::Tabs-->
<ul class="nav nav-custom nav-tabs nav-line-tabs nav-line-tabs-2x border-0 fs-4 fw-bold mb-8">
<!--begin:::Tab item-->
<li class="nav-item">
<a class="nav-link text-active-primary pb-4 active" data-bs-toggle="tab" href="#edit_cron">Modifier</a>
</li>
<!--end:::Tab item-->
<!--begin:::Tab item-->
<li class="nav-item ms-auto">
<!--begin::Action menu-->
<a href="#" class="btn btn-primary ps-7" data-kt-menu-trigger="click" data-kt-menu-attach="parent" data-kt-menu-placement="bottom-end">Actions
<!--begin::Svg Icon | path: icons/duotune/arrows/arr072.svg-->
<span class="svg-icon svg-icon-2 me-0">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<path d="M11.4343 12.7344L7.25 8.55005C6.83579 8.13583 6.16421 8.13584 5.75 8.55005C5.33579 8.96426 5.33579 9.63583 5.75 10.05L11.2929 15.5929C11.6834 15.9835 12.3166 15.9835 12.7071 15.5929L18.25 10.05C18.6642 9.63584 18.6642 8.96426 18.25 8.55005C17.8358 8.13584 17.1642 8.13584 16.75 8.55005L12.5657 12.7344C12.2533 13.0468 11.7467 13.0468 11.4343 12.7344Z" fill="black" />
</svg>
</span>
<!--end::Svg Icon--></a>
<!--begin::Menu-->
<div class="menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-800 menu-state-bg-light-primary fw-bold py-4 w-250px fs-6" data-kt-menu="true">
<!--begin::Menu item-->
<div class="menu-item px-5">
<div class="menu-content text-muted pb-2 px-5 fs-7 text-uppercase">Tâche planifiée</div>
</div>
<!--end::Menu item-->
<!--begin::Menu item-->
<div class="menu-item px-5">
<a href="index.php?page_slug=api_command-tables&element=<?= rawurlencode(encrypt_decrypt("encrypt", $cron['idCommand'], $key_user, $iv_user))?>" target="_blank" class="menu-link text-info px-5">Ouvrir la commande</a>
</div>
<!--end::Menu item-->
<!--begin::Menu item-->
<div class="menu-item px-5">
<a href="#" class="menu-link text-danger px-5" data-action="delete" data-table="<?= encrypt_decrypt("encrypt", "api_crons", $key_user, $iv_user)?>" data-column_primary="<?= encrypt_decrypt("encrypt", "idCron", $key_user, $iv_user)?>" data-id="<?= encrypt_decrypt("encrypt", $cron['idCron'], $key_user, $iv_user)?>" data-method="custom">Supprimer le cron</a>
</div>
<!--end::Menu item-->
</div>
<!--end::Menu-->
<!--end::Menu-->
</li>
<!--end:::Tab item-->
</ul>
<!--end:::Tabs-->
<!--begin:::Tab content-->
<div class="tab-content" id="myTabContent">
<!--begin:::Tab pane-->
<div class="tab-pane fade show active" id="edit_cron" role="tabpanel">
<form method="post" action="">
<!--begin::Card-->
<div class="card card-flush mb-6 mb-xl-9">
<!--begin::Card body-->
<div class="card-body border-top p-9">
<!--begin::Input group-->
<div class="row mb-6">
<!--begin::Label-->
<label class="col-lg-4 col-form-label required fw-bold fs-6">Nom</label>
<!--end::Label-->
<!--begin::Col-->
<div class="col-lg-8 fv-row">
<input type="text" class="form-control form-control-lg form-control-solid" value="<?= $cron['cron_name']?>" name="cron_name"/>
</div>
<!--end::Col-->
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="row mb-6">
<!--begin::Label-->
<label class="col-lg-4 col-form-label required fw-bold fs-6">Nombre de tour actuel</label>
<!--end::Label-->
<!--begin::Col-->
<div class="col-lg-8 fv-row">
<input type="number" class="form-control form-control-lg form-control-solid" value="<?= $cron['cron_counter']?>" name="cron_counter"/>
</div>
<!--end::Col-->
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="row mb-6">
<!--begin::Label-->
<label class="col-lg-4 col-form-label required fw-bold fs-6">Nombre de tour maximum</label>
<!--end::Label-->
<!--begin::Col-->
<div class="col-lg-8 fv-row">
<input type="number" class="form-control form-control-lg form-control-solid" value="<?= $cron['cron_max_counter']?>" name="cron_max_counter"/>
</div>
<!--end::Col-->
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="row mb-6">
<!--begin::Label-->
<label class="col-lg-4 col-form-label required fw-bold fs-6">Ordre de priorité</label>
<!--end::Label-->
<!--begin::Col-->
<div class="col-lg-8 fv-row">
<input type="number" class="form-control form-control-lg form-control-solid" value="<?= $cron['cron_order']?>" name="cron_order"/>
</div>
<!--end::Col-->
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="row mb-6">
<!--begin::Label-->
<label class="col-lg-4 col-form-label required fw-bold fs-6">Début</label>
<!--end::Label-->
<!--begin::Col-->
<div class="col-lg-8 fv-row">
<input type="date" id="kt_datepicker_1" class="form-control form-control-lg form-control-solid" value="<?= $cron['cron_start']?>" name="cron_start" placeholder="dd-mm-yyyy"/>
</div>
<!--end::Col-->
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="row mb-6">
<!--begin::Label-->
<label class="col-lg-4 col-form-label required fw-bold fs-6">Fin</label>
<!--end::Label-->
<!--begin::Col-->
<div class="col-lg-8 fv-row">
<input type="date" id="kt_datepicker_2" class="form-control form-control-lg form-control-solid" value="<?= $cron['cron_end']?>" name="cron_end" placeholder="dd-mm-yyyy"/>
</div>
<!--end::Col-->
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="row mb-6">
<!--begin::Label-->
<label class="col-lg-4 col-form-label required fw-bold fs-6">Répétition toutes les .. minutes</label>
<!--end::Label-->
<!--begin::Col-->
<div class="col-lg-8 fv-row">
<select class="form-select" id="cron_every_minute" name="cron_every_minute">
<option value="0" <?= ($cron['cron_every_minute'] == '0' ? 'selected' :'')?> >0</option>
<option value="15" <?= ($cron['cron_every_minute'] == '15' ? 'selected' :'')?> >15</option>
<option value="30" <?= ($cron['cron_every_minute'] == '30' ? 'selected' :'')?> >30</option>
</select>
</div>
<!--end::Col-->
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="row mb-6">
<!--begin::Label-->
<label class="col-lg-4 col-form-label required fw-bold fs-6">Répétition toutes les .. heures</label>
<!--end::Label-->
<!--begin::Col-->
<div class="col-lg-8 fv-row">
<select class="form-select" id="cron_every_hour" name="cron_every_hour">
<option value="0" <?= ($cron['cron_every_hour'] == '0' ? 'selected' :'')?> >0</option>
<option value="1" <?= ($cron['cron_every_hour'] == '1' ? 'selected' :'')?> >1</option>
<option value="2" <?= ($cron['cron_every_hour'] == '2' ? 'selected' :'')?> >2</option>
<option value="3" <?= ($cron['cron_every_hour'] == '3' ? 'selected' :'')?> >3</option>
<option value="4" <?= ($cron['cron_every_hour'] == '4' ? 'selected' :'')?> >4</option>
<option value="5" <?= ($cron['cron_every_hour'] == '5' ? 'selected' :'')?> >5</option>
<option value="6" <?= ($cron['cron_every_hour'] == '6' ? 'selected' :'')?> >6</option>
<option value="7" <?= ($cron['cron_every_hour'] == '7' ? 'selected' :'')?> >7</option>
<option value="8" <?= ($cron['cron_every_hour'] == '8' ? 'selected' :'')?> >8</option>
<option value="9" <?= ($cron['cron_every_hour'] == '9' ? 'selected' :'')?> >9</option>
<option value="10" <?= ($cron['cron_every_hour'] == '10' ? 'selected' :'')?> >10</option>
<option value="11" <?= ($cron['cron_every_hour'] == '11' ? 'selected' :'')?> >11</option>
<option value="12" <?= ($cron['cron_every_hour'] == '12' ? 'selected' :'')?> >12</option>
</select>
</div>
<!--end::Col-->
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="row mb-6">
<!--begin::Label-->
<label class="col-lg-4 col-form-label required fw-bold fs-6">Répétition tout les .. jours</label>
<!--end::Label-->
<!--begin::Col-->
<div class="col-lg-8 fv-row">
<select class="form-select" id="cron_every_day" name="cron_every_day">
<option value="0" <?= ($cron['cron_every_day'] == '0' ? 'selected' :'')?> >0</option>
<option value="1" <?= ($cron['cron_every_day'] == '1' ? 'selected' :'')?> >1</option>
<option value="2" <?= ($cron['cron_every_day'] == '2' ? 'selected' :'')?> >2</option>
<option value="3" <?= ($cron['cron_every_day'] == '3' ? 'selected' :'')?> >3</option>
<option value="4" <?= ($cron['cron_every_day'] == '4' ? 'selected' :'')?> >4</option>
<option value="5" <?= ($cron['cron_every_day'] == '5' ? 'selected' :'')?> >5</option>
<option value="6" <?= ($cron['cron_every_day'] == '6' ? 'selected' :'')?> >6</option>
<option value="7" <?= ($cron['cron_every_day'] == '7' ? 'selected' :'')?> >7</option>
<option value="8" <?= ($cron['cron_every_day'] == '8' ? 'selected' :'')?> >8</option>
<option value="9" <?= ($cron['cron_every_day'] == '9' ? 'selected' :'')?> >9</option>
<option value="10" <?= ($cron['cron_every_day'] == '10' ? 'selected' :'')?> >10</option>
<option value="11" <?= ($cron['cron_every_day'] == '11' ? 'selected' :'')?> >11</option>
<option value="12" <?= ($cron['cron_every_day'] == '12' ? 'selected' :'')?> >12</option>
<option value="13" <?= ($cron['cron_every_day'] == '13' ? 'selected' :'')?> >13</option>
<option value="14" <?= ($cron['cron_every_day'] == '14' ? 'selected' :'')?> >14</option>
<option value="15" <?= ($cron['cron_every_day'] == '15' ? 'selected' :'')?> >15</option>
<option value="16" <?= ($cron['cron_every_day'] == '16' ? 'selected' :'')?> >16</option>
<option value="17" <?= ($cron['cron_every_day'] == '17' ? 'selected' :'')?> >17</option>
<option value="18" <?= ($cron['cron_every_day'] == '18' ? 'selected' :'')?> >18</option>
<option value="19" <?= ($cron['cron_every_day'] == '19' ? 'selected' :'')?> >19</option>
<option value="20" <?= ($cron['cron_every_day'] == '20' ? 'selected' :'')?> >20</option>
<option value="21" <?= ($cron['cron_every_day'] == '21' ? 'selected' :'')?> >21</option>
<option value="22" <?= ($cron['cron_every_day'] == '22' ? 'selected' :'')?> >22</option>
<option value="23" <?= ($cron['cron_every_day'] == '23' ? 'selected' :'')?> >23</option>
<option value="24" <?= ($cron['cron_every_day'] == '24' ? 'selected' :'')?> >24</option>
<option value="25" <?= ($cron['cron_every_day'] == '25' ? 'selected' :'')?> >25</option>
<option value="26" <?= ($cron['cron_every_day'] == '26' ? 'selected' :'')?> >26</option>
<option value="27" <?= ($cron['cron_every_day'] == '27' ? 'selected' :'')?> >27</option>
<option value="28" <?= ($cron['cron_every_day'] == '28' ? 'selected' :'')?> >28</option>
<option value="29" <?= ($cron['cron_every_day'] == '29' ? 'selected' :'')?> >29</option>
<option value="30" <?= ($cron['cron_every_day'] == '30' ? 'selected' :'')?> >30</option>
<option value="31" <?= ($cron['cron_every_day'] == '31' ? 'selected' :'')?> >31</option>
</select>
</div>
<!--end::Col-->
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="row mb-6">
<!--begin::Label-->
<label class="col-lg-4 col-form-label required fw-bold fs-6">Répétition tout les .. mois</label>
<!--end::Label-->
<!--begin::Col-->
<div class="col-lg-8 fv-row">
<select class="form-select" id="cron_every_month" name="cron_every_month">
<option value="0" <?= ($cron['cron_every_month'] == '0' ? 'selected' :'')?> >0</option>
<option value="1" <?= ($cron['cron_every_month'] == '1' ? 'selected' :'')?> >1</option>
<option value="2" <?= ($cron['cron_every_month'] == '2' ? 'selected' :'')?> >2</option>
<option value="3" <?= ($cron['cron_every_month'] == '3' ? 'selected' :'')?> >3</option>
<option value="4" <?= ($cron['cron_every_month'] == '4' ? 'selected' :'')?> >4</option>
<option value="5" <?= ($cron['cron_every_month'] == '5' ? 'selected' :'')?> >5</option>
<option value="6" <?= ($cron['cron_every_month'] == '6' ? 'selected' :'')?> >6</option>
<option value="7" <?= ($cron['cron_every_month'] == '7' ? 'selected' :'')?> >7</option>
<option value="8" <?= ($cron['cron_every_month'] == '8' ? 'selected' :'')?> >8</option>
<option value="9" <?= ($cron['cron_every_month'] == '9' ? 'selected' :'')?> >9</option>
<option value="10" <?= ($cron['cron_every_month'] == '10' ? 'selected' :'')?> >10</option>
<option value="11" <?= ($cron['cron_every_month'] == '11' ? 'selected' :'')?> >11</option>
<option value="12" <?= ($cron['cron_every_month'] == '12' ? 'selected' :'')?>>12</option>
</select>
</div>
<!--end::Col-->
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="row mb-6">
<!--begin::Label-->
<label class="col-lg-4 col-form-label required fw-bold fs-6">Répétition toutes les .. années</label>
<!--end::Label-->
<!--begin::Col-->
<div class="col-lg-8 fv-row">
<select class="form-select" id="cron_every_year" name="cron_every_year">
<option value="0" <?= ($cron['cron_every_year'] == '0' ? 'selected' :'')?> >0</option>
<option value="1" <?= ($cron['cron_every_year'] == '1' ? 'selected' :'')?> >1</option>
<option value="2" <?= ($cron['cron_every_year'] == '2' ? 'selected' :'')?> >2</option>
<option value="3" <?= ($cron['cron_every_year'] == '3' ? 'selected' :'')?> >3</option>
</select>
</div>
<!--end::Col-->
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="row mb-6">
<!--begin::Label-->
<label class="col-lg-4 col-form-label required fw-bold fs-6">Commande API</label>
<!--end::Label-->
<!--begin::Col-->
<div class="col-lg-8 fv-row">
<select class="form-select" id="command_uniqid" name="command_uniqid">
<?php
foreach($commands as $command)
echo '<option value="'.$command['command_uniqid'].'" '.($cron['command_uniqid'] == $command['command_uniqid'] ? 'selected' : '').'>'.$command['command_name'].'</option>';
?>
</select>
</div>
<!--end::Col-->
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="row mb-6">
<!--begin::Label-->
<label class="col-lg-4 col-form-label required fw-bold fs-6">Token d'authentification</label>
<!--end::Label-->
<!--begin::Col-->
<div class="col-lg-8 fv-row">
<select class="form-select" id="cron_token" name="cron_token">
<?php
foreach($tokens as $token)
echo '<option value="'.$token['token_value'].'" '.($cron['cron_token'] == $token['token_value'] ? 'selected' : '').'>'.$token['token_name'].'</option>';
?>
</select>
</div>
<!--end::Col-->
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="row mb-6">
<!--begin::Label-->
<label class="col-lg-4 col-form-label required fw-bold fs-6">Statut</label>
<!--end::Label-->
<!--begin::Col-->
<div class="col-lg-8 fv-row">
<select class="form-select" id="cron_status" name="cron_status">
<option value="0" <?= ($cron['cron_status'] == '0' ? 'selected' :'')?> >Inactif</option>
<option value="1" <?= ($cron['cron_status'] == '1' ? 'selected' :'')?> >Actif</option>
</select>
</div>
<!--end::Col-->
</div>
<!--end::Input group-->
</div>
<!--end::Card body-->
<!--begin::Actions-->
<div class="card-footer d-flex justify-content-end py-6 px-9">
<button type="submit" class="btn btn-primary" name="update-cron">Enregistrer</button>
</div>
<!--end::Actions-->
</div>
<!--end::Card-->
</form>
</div>
<!--end:::Tab pane-->
</div>
<!--end:::Tab content-->
</div>
<!--end::Content-->
</div>
<!--end::Layout-->
</div>
<!--end::Container-->
</div>