Notification Section -> Setting
This commit is contained in:
parent
669b873a4f
commit
15c429e151
40
app/templates/js/setting.js
Normal file
40
app/templates/js/setting.js
Normal file
@ -0,0 +1,40 @@
|
||||
navigator.permissions.query({name:'notifications'}).then(function(result) {
|
||||
var element = document.getElementById("notifications");
|
||||
if (result.state === 'granted') {
|
||||
element.checked = true;
|
||||
} else if (result.state === 'denied') {
|
||||
element.checked = false;
|
||||
} else if (result.state === 'prompt') {
|
||||
element.checked = false;
|
||||
}
|
||||
});
|
||||
|
||||
function toggleNotificationPermissions(input){
|
||||
navigator.permissions.query({name:'notifications'}).then(function(result) {
|
||||
if (result.state === 'granted') {
|
||||
input.checked = true;
|
||||
} else if (result.state === 'denied') {
|
||||
input.checked = false;
|
||||
} else if (result.state === 'prompt') {
|
||||
input.checked = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function sendTestNotification(){
|
||||
console.log("sending test notification");
|
||||
$.ajax({
|
||||
url: 'ajax',
|
||||
type: 'POST',
|
||||
data: {
|
||||
"notification" : 'X',
|
||||
"action": 'sendTest'
|
||||
},
|
||||
success: function(data){
|
||||
console.log(data);
|
||||
},
|
||||
error: function (request, status, error) {
|
||||
console.log("ERROR ", request, error);
|
||||
}
|
||||
});
|
||||
}
|
@ -20,10 +20,10 @@
|
||||
</div>
|
||||
<div class="col-md-9 main-body">
|
||||
<div class="col-12 col-sm-9 mx-auto mt-4">
|
||||
<h4 class="mb-4">Stránka po načtení</h4>
|
||||
<form method="post" enctype="multipart/form-data">
|
||||
<div class="">
|
||||
<div class="field">
|
||||
<div class="label">Stránka po načtení</div>
|
||||
<select class="input" name="loadPage">
|
||||
<option value="0" <?php echo (UserManager::getUserData("startPage") == 0 ? "selected" : ""); ?>>Default</option>
|
||||
<option value="1" <?php echo (UserManager::getUserData("startPage") == 1 ? "selected" : ""); ?>>Dashboard</option>
|
||||
@ -34,26 +34,30 @@
|
||||
</div>
|
||||
</form>
|
||||
<div class="col-12 col-sm-9 mx-auto mt-4">
|
||||
<h4 class="mb-4">Profil</h4>
|
||||
<div class="field">
|
||||
<a href="logout" class="button is-primary">Odhlásit se</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-sm-9 mx-auto mt-4">
|
||||
<div class="label">Testovavcí Nastavení</div>
|
||||
<h4 class="mb-4">Notifications</h4>
|
||||
<input id="notifications" type="checkbox" onChange="toggleNotificationPermissions(this);" />
|
||||
<div class="label">Status notifikací</div>
|
||||
<div class="field">
|
||||
<a href="rooms" class="button">ROOMS</a>
|
||||
<a onClick="sendTestNotification();" class="button">Test Notification</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-sm-9 mx-auto mt-4">
|
||||
<h4 class="mb-4">Logs</h4>
|
||||
<div class="field">
|
||||
<a href="log" class="button">Logs</a>
|
||||
<a href="rooms" class="button">ROOMS</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<script src="./app/templates/js/setting.js"></script>
|
||||
<?php
|
||||
$partial = new Partial('footer');
|
||||
$partial->render();
|
||||
|
@ -68,7 +68,7 @@ class Ajax extends Template
|
||||
if ($subDeviceData['type'] == 'on/off'){
|
||||
$lastValue = RecordManager::getLastRecord($subDeviceData['subdevice_id'])['value'];
|
||||
RecordManager::create($deviceId, 'on/off', !$lastValue);
|
||||
echo ($lastValue ? 'ON' : 'OFF');
|
||||
echo (!$lastValue ? 'ON' : 'OFF');
|
||||
}
|
||||
die();
|
||||
break;
|
||||
@ -114,11 +114,28 @@ class Ajax extends Template
|
||||
switch ($_POST['action']) {
|
||||
//add suscription to database
|
||||
case 'subscribe':
|
||||
$subscriptionToken = $_POST['Token'];
|
||||
$subscriptionToken = $_POST['token'];
|
||||
NotificationManager::addSubscriber($_SESSION['user']['id'], $subscriptionToken);
|
||||
die();
|
||||
break;
|
||||
|
||||
case 'sendTest':
|
||||
echo "test";
|
||||
$notificationData = [
|
||||
'title' => 'Alert',
|
||||
'body' => 'test notification',
|
||||
'icon' => '',
|
||||
];
|
||||
$notificationMng = new NotificationManager;
|
||||
$subscribers = $notificationMng::getSubscription();
|
||||
foreach ($subscribers as $key => $subscriber) {
|
||||
echo $subscriber['user_id'];
|
||||
if ($subscriber['user_id'] != $_SESSION['user']['id']) continue;
|
||||
echo $notificationMng::sendSimpleNotification(SERVERKEY, $subscriber['token'], $notificationData);
|
||||
}
|
||||
die();
|
||||
break;
|
||||
|
||||
default:
|
||||
echo 'no action detected';
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user