function ipcam_action() { global $_, $conf; switch ($_['action']) { case 'ipcam_save_camera': Action::write(function ($_, &$response) { require_once 'Camera.class.php'; $camera = new Camera(); if (empty($_['labelCamera'])) { throw new Exception("Le nom est obligatoire"); } if (empty($_['ipCamera'])) { throw new Exception("L'IP est obligatoire"); } $camera = !empty($_['id']) ? $camera->getById($_['id']) : new Camera(); $camera->label = $_['labelCamera']; $camera->location = $_['locationCamera']; $camera->ip = $_['ipCamera']; $camera->login = $_['loginCamera']; $camera->password = $_['passwordCamera']; $camera->save(); $response['message'] = 'Caméra enregistrée avec succès'; }, array('ipcam' => 'c')); break; case 'ipcam_delete_camera': Action::write(function ($_, $response) { require_once 'Camera.class.php'; $camera = new Camera(); $camera->delete(array('id' => $_['id'])); }, array('ipcam' => 'd')); break; case 'ipcam_load_widget': require_once dirname(__FILE__) . '/../dashboard/Widget.class.php'; Action::write(function ($_, &$response) { $widget = new Widget(); $widget = $widget->getById($_['id']); $parameters = $widget->data(); if (empty($parameters['camera'])) { $content = 'Choisissez une camera en cliquant sur l \'icone <i class="fa fa-wrench"></i> de la barre du widget'; } else { global $conf; require_once 'Camera.class.php'; $camera = new Camera(); $camera = $camera->getById($parameters['camera']); $room = new Room(); $room = $room->getById($camera->location); $response['title'] = 'Sonde ' . $camera->label . ' (' . $room->getName() . ')'; $content = ' <!-- CSS --> <style> </style> <!-- HTML --> '; $content .= '<div class="ipcam_widget"><img name="main" id="main" border="0" src="http://' . $camera->login . ':' . $camera->password . '@' . $camera->ip . '/videostream.cgi">'; $content .= '</div>'; $content .= ' <!-- JS --> <script type="text/javascript"> </script> '; } $response['content'] = $content; }); break; case 'ipcam_edit_widget': require_once dirname(__FILE__) . '/../dashboard/Widget.class.php'; require_once dirname(__FILE__) . '/Camera.class.php'; $widget = new Widget(); $widget = $widget->getById($_['id']); $data = $widget->data(); $camera = new Camera(); $cameras = $camera->populate(); $content = '<h3>Choix de la camera</h3>'; if (count($cameras) == 0) { $content = 'Aucune camera enregistrée,<a href="setting.php?section=ipcam">enregistrer une camera<a>'; } else { $content .= '<select id="camera">'; foreach ($cameras as $camera) { $content .= '<option ' . ($camera->id == $data['camera'] ? 'selected="selected"' : '') . ' value="' . $camera->id . '">' . $camera->label . ' (' . $camera->uid . ')</option>'; } $content .= '</select>'; } echo $content; break; case 'ipcam_save_widget': require_once dirname(__FILE__) . '/../dashboard/Widget.class.php'; $widget = new Widget(); $widget = $widget->getById($_['id']); $data = $widget->data(); $data['camera'] = $_['camera']; $widget->data($data); $widget->save(); echo $content; break; } }