Notification Section -> Setting
This commit is contained in:
		
							
								
								
									
										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;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user