var WebNotifications = {
_getPermission: function() {
if (!Notification || Notification.permission === 'denied') {
return false;
} else if (Notification.permission === 'granted') {
return true;
} else {
Notification.requestPermission(function (status) {
if (Notification.permission !== status) {
Notification.permission = status;
}
});
if (Notification.permission === 'granted') {
return true;
}
return false;
}
},
notify: function(msg) {
if (this._getPermission()) {
var n = new Notification("gray", { tag: "gray", body: msg });
} else {
alert(msg);
}
}
};
// ここからマークと通知処理の抜粋
// 自レス番号の配列作成
var numbers = [];
myIDs.forEach(function(id){
var idnums = idData[id];
if (idnums) numbers = numbers.concat(idnums);
});
numbers = uniqueArray(numbers.concat(myPosts));
var repCount = 0;
numbers.forEach(function(resNumber){
// 自レスをマーク
resArray[resNumber].classList.add('my-post');
var repnums = tbData[resNumber];
if (repnums) repnums.forEach(function(reply){
// 返信レスの処理
resArray[reply].classList.add('reply-to-me');
if (resArray[reply].getAttribute("new")) {
repCount++;
}
});
});
// 返信通知
if (Pref.MyAndRepNotifyReply && (repCount > 0)) {
var msg = message("myandrep_notify_new_reply") + " ( " + repCount + " res )";
WebNotifications.notify(msg);
}
// ここまで