class InstancesController extends AppController {
public $helpers = array('Html', 'Form');
public $components = array('RequestHandler');
+ public $uses = array('Instance', 'Historique');
public function index() {
- // IMPORT DES CONTROLLEURS
+
+ // GETTING CONTROLLERS
App::import('Controller', 'Alertes');
$alertesController = new AlertesController;
App::import('Controller', 'Historiques');
$historiquesController = new HistoriquesController;
+ App::import('Controller', 'Clients');
+ $clientsController = new ClientsController;
- // RÉCUPÉRATION DES INSTANCES
+ // GETTING ALL APPLIANCES
$instances = $this->Instance->find('all');
- // RECUPERATION DES INFOS DE CHAQUE INSTANCE
+ // GETTING ALL CLIENTS
+ $totalClients = $clientsController->Client->find('all');
+
+ // GETTING INFORMATION FOR EACH APPLIANCE
$historiques = array();
$totalAlertes = array();
$clients = array();
+ $last_updates = array();
foreach($instances as $instance) {
- // RECUPERATION DE L'HISTORIQUE
+ // GETTING CHANGELOG
$historique = $historiquesController->Historique->findById($instance['Instance']['historique']);
if ($historique) {
- // RÉCUPÉRATION DES ALERTES DE L'HISTORIQUE
+ // GETTING WARNINGS OF CHANGELOG
if($historique['Historique']['alertes']) {
$alertes_id = explode('|', $historique['Historique']['alertes']);
$alertes = array();
foreach ($alertes_id as $alerte_id) {
$alertes[] = $alertesController->Alerte->findById($alerte_id);
}
- // AJOUT DANS LA LISTE DES ALERTES
+ // ADDING WARNING TO LIST
$totalAlertes[$historique['Historique']['id']] = $alertes;
}
- // AJOUT DANS LA LISTE DES HISTORIQUES
+ // GETTING LAST VERSION DECLARED OF CHANGELOG
+ if($historique['Historique']['versions']) {
+ $infos_versions = explode('|', $historique['Historique']['versions']);
+ $last_update = $historique['Historique']['installation'];
+ foreach ($infos_versions as $infos_version) {
+ $infos_version_array = explode(';', $infos_version);
+ if(isset($infos_version_array[1])) {
+ $update = $infos_version_array[1];
+ if($update > $last_update) {
+ $last_update = $update;
+ }
+ }
+ }
+ // ADDING UPDATE DATE TO LIST
+ $last_updates[$instance['Instance']['id']] = $last_update;
+ }
+ // ADDING CHANGELOG TO LIST
$historiques[$instance['Instance']['id']] = $historique;
}
- // RECUPERATION DU NOM DU CLIENT
- $reference = str_replace("/", "\\/", $instance['Instance']['reference']);
- $url = 'http://allo_serveur/?action=get_client&reference='.$reference;
- $options = array("http" => array("method" => "GET"));
- $context = stream_context_create($options);
- $client = file_get_contents($url, false, $context);
- if ($client) {
- $clients[$instance['Instance']['id']] = $client;
+
+ // GETTING CUSTOMER
+ $refInstanceSansProduit = explode("/",$instance['Instance']['reference']);
+ $idAPClient = substr($refInstanceSansProduit[1],0,-11);
+ foreach($totalClients as $client) {
+ // ADDING CUSTOMER TO LIST
+ if($client['Client']['identifiant_AP'] === $idAPClient) {
+ $clients[$instance['Instance']['id']] = $client;
+ }
}
}
- // ENVOI DES DONNÉES À LA VUE
+ // SENDING DATA TO VIEW
$this->set(array(
'instances' => $instances,
'_serialize' => array('instances')
'totalAlertes' => $totalAlertes,
'_serialize' => array('totalAlertes')
));
+ $this->set(array(
+ 'last_updates' => $last_updates,
+ '_serialize' => array('last_updates')
+ ));
}
public function view($id = null) {
if (!$instance) {
throw new NotFoundException(__('Instance introuvable'));
}
+ $this->Instance->id = $id;
+
+ // GETTING PRODUCT CONTROLLER AND PRODUCTS
+ App::import('Controller', 'Produits');
+ $produitsController = new ProduitsController;
+ $produits = $produitsController->Produit->find('all');
+
+ // GETTING VERSION CONTROLLER AND VERSIONS
+ App::import('Controller', 'Versions');
+ $versionsController = new VersionsController;
+ $versions = $versionsController->Version->find('all');
+
+ // GETTING PRODUCT ID FOR THIS APPLIANCE
+ foreach($produits as $produit) {
+ if($produit['Produit']['nom'] == $this->Instance->value('nom')) {
+ $idProduit = $produit['Produit']['id'];
+ break;
+ }
+ }
+
+ // GETTING ALL AVAILABLE VERSIONS FOR THIS PRODUCT
+ $versionsPossibles = array();
+ foreach($versions as $version) {
+ if($version['Version']['produit'] == $idProduit) {
+ $versionsPossibles[] = $version['Version']['valeur'];
+ }
+ }
+ // SENDING DATA TO VIEW
+ $this->set(array(
+ 'versionsPossibles' => $versionsPossibles,
+ '_serialize' => array('versionsPossibles')
+ ));
+
+ // IN CASE OF A PUT REQUEST
if ($this->request->is(array('instance', 'put'))) {
- $this->Instance->id = $id;
+
+ // GETTING CHANGELOG
+ $historique = $this->Historique->findById($this->Instance->value('historique'));
+ if (!$historique) {
+ throw new NotFoundException(__('Historique introuvable'));
+ }
+ $this->Historique->id = $this->Instance->value('historique');
+
+ // GETTING VERSIONS OF APPLIANCE
+ if($this->Historique->value('versions')) {
+ $historiqueVersions = explode('|', $this->Historique->value('versions'));
+ } else {
+ $historiqueVersions = array();
+ }
+
+ // SAVING APPLIANCE
if ($this->Instance->save($this->request->data)) {
+
+ // GETTING VERSION TO ADD TO CHANGELOG
+ foreach($versionsPossibles as $versionPossible) {
+ if($versionPossible['Version']['valeur'] == $this->Instance->value('version')) {
+ $idVersion = $versionPossible['Version']['id'];
+ break;
+ }
+ }
+
+ // CHANGING AND SAVING CHANGELOG
+ $historiqueVersions[] = $idVersion.";".date('Y-m-d');
+ $this->Historique->value('versions', implode('|', $historiqueVersions));
+ $this->Historique->save();
$this->Session->setFlash(__("L'instance a été mise à jour."));
return $this->redirect(array('action' => 'index'));
}
}
}
- // API REST
+ // REST API
/*public function rest_get_all() {
$instances = $this->Instance->find('all');