Files
2025-07-02 14:13:16 +09:00

94 lines
3.3 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var show_alarm_exist=false;
function check_alarm(){
$.ajax({
type: 'POST',
data: { act: 'alarm' },
url: memo_alarm_url + '/get-events.php',
dataType: 'json',
async: true,
cache: false,
success: function(result) {
if(result.msg == 'SUCCESS') {
// URL을 추출하는 정규식
const urlRegex = /(https?:\/\/[^\s]+)/g;
const urlMatches = result.content.match(urlRegex);
// 추출된 URL이 있으면 그 값을 사용하고, 없으면 me_id 사용
const urlOrMeId = urlMatches ? urlMatches[0] : result.me_id;
// 추출된 값을 show_alarm으로 전달
show_alarm(result.title, result.content, result.url, urlOrMeId, result.me_send_datetime, result.me_id);
} else {
// 오류 처리
}
}
});
}
function show_alarm(title, content, url, urlOrMeId, me_send_datetime, me_id) {
if(show_alarm_exist) hide_alarm();
show_alarm_exist = true;
var html = "";
// audio.play(); // 알림 소리 재생
html = "<div id='alarm_layer' class='wrapper-notification bottom right side' style='display:none'>";
html += "<div class='notification notification-primary notification-msg animated bounceInUp' id='" + me_id + "'>";
// 알림 옵션 부분 (닫기 버튼, 읽음 처리 버튼 등)
html += "<div class='notification-option'>";
html += "<button class='notification-check' data-toggle='tooltip' data-trigger='hover' data-html='true' data-placement='top' data-original-title='읽음' onclick='set_recv_memo(\"" + me_id + "\")'>";
html += "<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-x'><line x1='18' y1='6' x2='6' y2='18'></line><line x1='6' y1='6' x2='18' y2='18'></line></svg></button>";
html += "</div>";
if (urlOrMeId.startsWith("http")) {
html += "<a href='" + urlOrMeId + "' data-original-title='읽음' onclick='set_recv_memo(\"" + me_id + "\");'>";
} else {
html += "<a href='../bbs/memo_view.php?me_id=" + me_id + "&kind=recv' onclick='win_memo(this.href); return false;'>";
}
html += "<div class='notification-heading'><span class='font-B'>새 알림</span> <span class='al_date'>" + me_send_datetime + "</span></div>";
html += "<div class='notification-content cut2 cursor'>" + content + "</div>";
html += "</a>";
html += "</div>";
html += "</div>";
$('body').prepend(html);
$('#alarm_layer').fadeIn();
setTimeout(function(){ hide_alarm(); }, 30000);
}
function hide_alarm(){
if(show_alarm_exist){
show_alarm_exist=false;
$("#alarm_layer").fadeOut(400,function(){
$('#alarm_layer').remove();
});
}
}
function set_recv_memo(me_id){
$.ajax({
type:'POST',
data : ({act : 'recv_memo', me_id : me_id}),
url: memo_alarm_url + '/get-events.php',
dataType:'json',
async:true,
cache:false,
success:function(result){
if(result.msg=='SUCCESS'){
hide_alarm();
}else{
}
}
});
}
function RemoveTag(s){
var tmp = '';
tmp = s;
tmp = tmp.replace('<','&lt;');
tmp = tmp.replace('>','&gt;');
tmp = tmp.replace('"','&quot;');
return tmp;
}