-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAdinNotifier.js
More file actions
106 lines (85 loc) · 2.58 KB
/
AdinNotifier.js
File metadata and controls
106 lines (85 loc) · 2.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
if (!("Notification" in window)) {
console.log("This browser does not support notifications");
}
if (Notification.permission !== "granted") {
Notification.requestPermission();
}
var browserNotification = Notification;
var wsUrlBase = "wss://pusher.adin.ir/api/";
var pusherUrlBase = "https://pusher.adin.ir/api/";
window.addEventListener("load", onLoad, false);
function onLoad() {
var wsUri = wsUrlBase + "WebSocket/Get";
websocket = new WebSocket(wsUri);
websocket.onopen = function (evt) { onOpen(evt) };
websocket.onclose = function (evt) { onClose(evt) };
websocket.onmessage = function (evt) { onMessage(evt) };
websocket.onerror = function (evt) { onError(evt) };
}
function onOpen(evt) {
console.log("Connected to server");
}
function onClose(evt) {
console.log("Not connected");
onLoad();
}
function onMessage(evt) {
console.log(evt);
handleData(evt.data);
}
function onError(evt) {
console.log("Communication error");
}
function handleData(dataa) {
var data = JSON.parse(dataa);
var userID = Xrm.Page.context.getUserId().substring(1,37).toLowerCase();
console.log(userID);
switch (data.Code) {
case 0:
{
fetch(
pusherUrlBase +
"WebSocket/JoinGroup?groupname=" +
userID +
"&userId=" +
data.Data,
{
method: "Get",
headers: {
Accept: "application/json",
"Content-Type": "application/json",
}
}
)
.then(function (res) { })
.catch(error => {
console.error(error);
});
}
break;
case 100:
{
console.log(data.Message);
ShowAlert(data.Title, data.Message,decodeURIComponent( data.Link));
}
break;
}
}
function ShowAlert(title, message, link) {
if (browserNotification.permission !== "granted") {
browserNotification.requestPermission();
}
else {
var options = {
body: message,
icon: "https://adin.ir/images/IranCard-logo.png",
requireInteraction: true,
title:"Default Title",
}
var notification = new browserNotification(title, options);
notification.onclick = function () {
window.open(link);
};
setTimeout(notification.close.bind(notification), 60000);
}
}