Settings Save Mechanism an few fixes

This commit is contained in:
Václav Španinger 2020-12-23 15:57:12 +01:00
parent 464f229a16
commit daa0e0a2c5
4 changed files with 38 additions and 17 deletions

View File

@ -21,13 +21,24 @@ if (isset($_POST) && !empty($_POST)){
$ga = new PHPGangsta_GoogleAuthenticator(); $ga = new PHPGangsta_GoogleAuthenticator();
$checkResult = $ga->verifyCode($otaSecret, $otaCode, 2); // 2 = 2*30sec clock tolerance $checkResult = $ga->verifyCode($otaSecret, $otaCode, 2); // 2 = 2*30sec clock tolerance
if ($checkResult) { if ($checkResult) {
$userManager->setOta($otaCode, $otaSecret); $userManager->setOta($otaCode, $otaSecret);
} }
header('Location: ' . BASEURL . 'setting'); header('Location: ' . BASEURL . 'setting');
die(); die();
} else if (isset ($_POST['userPermission']) && !empty ($_POST['userID'])) { } else if (isset ($_POST['userPermission']) && !empty ($_POST['userID'])) {
$userManager->setUserDataAdmin("permission", $_POST['userPermission'], $_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'); header('Location: ' . BASEURL . 'setting');
die(); die();
} }

View File

@ -14,21 +14,23 @@ class SettingsManager{
} }
public static function create ($name, $value, $type = '') { public static function create ($name, $value, $type = '') {
$setting = array ( if (!self::getByName($name)){
'name' => $name, $setting = array (
'value' => $value, 'name' => $name,
'type' => $type, 'value' => $value,
); 'type' => $type,
try { );
Db::add ('settings', $setting); try {
} catch(PDOException $error) { Db::add ('settings', $setting);
echo $error->getMessage(); } catch(PDOException $error) {
die(); echo $error->getMessage();
die();
}
} }
} }
public static function update ($name, $value, $type = '') { public static function update ($name, $value, $type = '') {
if (self::getByName($name)){ if (!self::getByName($name)){
self::create($name, $value, $type); self::create($name, $value, $type);
} else { } else {
try { try {

View File

@ -9,6 +9,14 @@ class AirQuality extends VirtualDeviceManager
function make() function make()
{ {
//Register the settings
$settingMng = new SettingsManager();
if (!($settingField = $settingMng->getByName("airquality"))) {
$settingMng->create("token", "", "airquality");
} else {
$app_id = $settingField['value'];
}
try { try {
if (DeviceManager::registeret($this->virtual_device_name)) { if (DeviceManager::registeret($this->virtual_device_name)) {
$deviceId = DeviceManager::getDeviceByToken($this->virtual_device_name)['device_id']; $deviceId = DeviceManager::getDeviceByToken($this->virtual_device_name)['device_id'];
@ -17,9 +25,9 @@ class AirQuality extends VirtualDeviceManager
sleep(1); sleep(1);
$subDevice = SubDeviceManager::getSubDeviceByMaster($deviceId, strtolower($this->subdevice_type)); $subDevice = SubDeviceManager::getSubDeviceByMaster($deviceId, strtolower($this->subdevice_type));
} }
//if (!$this->fetchEnabled($deviceId,$subDevice['subdevice_id'])) die(); //if (!$this->fetchEnabled($deviceId,$subDevice['subdevice_id'])) die();
$finalUrl = sprintf($this->api_uri, $this->city_sluig, $this->app_id); $finalUrl = sprintf($this->api_uri, $this->city_sluig, $this->app_id);
$json = json_decode(Utilities::CallAPI('GET', $finalUrl, ''), true); $json = json_decode(Utilities::CallAPI('GET', $finalUrl, ''), true);
RecordManager::create($deviceId, $this->subdevice_type, $json['data']['aqi']); RecordManager::create($deviceId, $this->subdevice_type, $json['data']['aqi']);

View File

@ -210,7 +210,7 @@ $partial = new Partial('head');
<?php foreach ($pluginSeting['settings'] as $key => $pluginSetingField) { ?> <?php foreach ($pluginSeting['settings'] as $key => $pluginSetingField) { ?>
<div class="field"> <div class="field">
<div class="label"><?php echo $pluginSetingField['name'] ?>:</div> <div class="label"><?php echo $pluginSetingField['name'] ?>:</div>
<input type="text" class="input" name="roomName" value="<?php echo $pluginSetingField['value'] ?>"> <input type="text" class="input" name="<?php echo $pluginSetingField['name'] ?>" value="<?php echo $pluginSetingField['value'] ?>">
</div> </div>
<?php } ?> <?php } ?>
<div class="field"> <div class="field">