diff --git a/app/controllers/settingController.php b/app/controllers/settingController.php index b5652ec..4ac7544 100644 --- a/app/controllers/settingController.php +++ b/app/controllers/settingController.php @@ -21,13 +21,24 @@ if (isset($_POST) && !empty($_POST)){ $ga = new PHPGangsta_GoogleAuthenticator(); $checkResult = $ga->verifyCode($otaSecret, $otaCode, 2); // 2 = 2*30sec clock tolerance - if ($checkResult) { - $userManager->setOta($otaCode, $otaSecret); - } + if ($checkResult) { + $userManager->setOta($otaCode, $otaSecret); + } header('Location: ' . BASEURL . 'setting'); die(); } else if (isset ($_POST['userPermission']) && !empty ($_POST['userID'])) { $userManager->setUserDataAdmin("permission", $_POST['userPermission'], $_POST['userID']); + header('Location: ' . BASEURL . 'setting'); + die(); + } else { + foreach ($_POST as $key => $value) { + if ($key == 'submit') continue; + $settingMng = new SettingsManager(); + if ($settingMng->getByName($key)) { + $settingMng->update($key, $value); + } + } + header('Location: ' . BASEURL . 'setting'); die(); } diff --git a/app/models/managers/SettingsManager.php b/app/models/managers/SettingsManager.php index 7ff3424..1d350f9 100644 --- a/app/models/managers/SettingsManager.php +++ b/app/models/managers/SettingsManager.php @@ -14,21 +14,23 @@ class SettingsManager{ } public static function create ($name, $value, $type = '') { - $setting = array ( - 'name' => $name, - 'value' => $value, - 'type' => $type, - ); - try { - Db::add ('settings', $setting); - } catch(PDOException $error) { - echo $error->getMessage(); - die(); + if (!self::getByName($name)){ + $setting = array ( + 'name' => $name, + 'value' => $value, + 'type' => $type, + ); + try { + Db::add ('settings', $setting); + } catch(PDOException $error) { + echo $error->getMessage(); + die(); + } } } public static function update ($name, $value, $type = '') { - if (self::getByName($name)){ + if (!self::getByName($name)){ self::create($name, $value, $type); } else { try { diff --git a/app/plugins/AirQuality.php b/app/plugins/AirQuality.php index 35b6ea2..7f76132 100644 --- a/app/plugins/AirQuality.php +++ b/app/plugins/AirQuality.php @@ -9,6 +9,14 @@ class AirQuality extends VirtualDeviceManager function make() { + //Register the settings + $settingMng = new SettingsManager(); + if (!($settingField = $settingMng->getByName("airquality"))) { + $settingMng->create("token", "", "airquality"); + } else { + $app_id = $settingField['value']; + } + try { if (DeviceManager::registeret($this->virtual_device_name)) { $deviceId = DeviceManager::getDeviceByToken($this->virtual_device_name)['device_id']; @@ -17,9 +25,9 @@ class AirQuality extends VirtualDeviceManager sleep(1); $subDevice = SubDeviceManager::getSubDeviceByMaster($deviceId, strtolower($this->subdevice_type)); } - + //if (!$this->fetchEnabled($deviceId,$subDevice['subdevice_id'])) die(); - + $finalUrl = sprintf($this->api_uri, $this->city_sluig, $this->app_id); $json = json_decode(Utilities::CallAPI('GET', $finalUrl, ''), true); RecordManager::create($deviceId, $this->subdevice_type, $json['data']['aqi']); diff --git a/app/views/templates/setting.phtml b/app/views/templates/setting.phtml index 3f093b1..12b224c 100644 --- a/app/views/templates/setting.phtml +++ b/app/views/templates/setting.phtml @@ -210,7 +210,7 @@ $partial = new Partial('head'); $pluginSetingField) { ?>
:
- +