$(function () { 'use strict'; translate.setPluralizationRule('pl', function(count) { count = count.toString(); count = count.charAt(count.length - 1); return (count <= 1) ? 0 : ((count > 1 && count < 5) ? 1 : 2); }, {pluralizeTo: 'count'}); translate.add({ 'Kliknij, aby otworzyć podgląd powiadomienia.': 'Click to open message preview.', 'Ładowanie powiadomień. Proszę czekać': 'Loading messages. Please wait.', 'Błąd pobierania powiadomień': 'Messages loading error', 'Ukrywanie powiadomienia': 'Hiding message', 'Wystąpił błąd. Spróbuj ponownie.': 'Error rised. Please try again later.', 'Wystąpił błąd. Zamknij okno i spróbuj ponownie.': 'Error rised. Close the window and try again later.', 'Ukryj powiadomienie.': 'Hide message.', 'Pobierz więcej': 'Load more.', hasMessages: [ 'You have {{counter}} message.', 'You have {{counter}} messages.' ], hasTasks: [ 'You have {{counter}} task.', 'You have {{counter}} tasks.' ], hasIssues: [ 'You have {{counter}} issue.', 'You have {{counter}} issues.' ], 'Przejdź': 'Go to' }, 'en'); translate.add({ hasMessages: [ 'Masz {{counter}} powiadomienie.', 'Masz {{counter}} powiadomienia.', 'Masz {{counter}} powiadomień.' ], hasTasks: [ 'Masz {{counter}} zadanie.', 'Masz {{counter}} zadania.', 'Masz {{counter}} zadań.', ], hasIssues: [ 'Masz {{counter}} zgłoszenie.', 'Masz {{counter}} zgłoszenia.', 'Masz {{counter}} zgłoszeń.', ], }, 'pl'); translate.setLocale($.cookie('language') ? $.cookie('language') : 'pl'); const reloadPeriod = 300000; class Counter { constructor(initValue) { this._counter = initValue; } get counter() { return this._counter; } set counter(val) { let lastValue = this._counter; this._counter = val; this._listener(val, lastValue); } _listener (val) {} registerListener (listener) { this._listener = listener; } } let personNewsCounter = new Counter(null); personNewsCounter.registerListener(function (val, lastValue){ $("#newMessagesCounter span.badge").text(val); if (lastValue !== null && val > 0 && lastValue < val) { $.flashMessenger.info(translate('hasMessages', {counter: val})); } }); let tasksCounter = new Counter(null); tasksCounter.registerListener(function (val, lastValue){ $("#newTaskCounter span.badge").text(val); if (lastValue !== null && val > 0 && lastValue < val) { $.flashMessenger.info(translate('hasTasks', {counter: val})); } }); let issuesCounter = new Counter(null); issuesCounter.registerListener(function (val, lastValue){ $("#unreadIssues span.badge").text(val); if (lastValue !== null && val > 0 && lastValue < val) { $.flashMessenger.info(translate('hasIssues', {counter: val})); } }); // Obsługa najnowszych powiadomień let loadNextBtn = $('#messagesView .modal-body [data-action="load-next"]'); let lastMsgId = 0; $('.modal.aside').ace_aside(); $(document).on('click', '.fn-messages-trigger', function (e) { e.preventDefault(); if ($('#messagesView').length === 0) { window.location = '/admin/person-news/index'; } }); $('#messagesView [data-action="reload"]').click(function () { getLatestNews(); }); checkNewMessages(); // getLatestNews(); //preview action $(document).on('click', '#messagesView [data-message_id] .fn-preview', function (e) { e.preventDefault(); $('#personNewsPreview').data('messageId', $(this).parents('[data-message_id]').data('message_id')).modal({ keyboard: false }); }); //delete action $(document).on('click', '#messagesView [data-message_id] .fn-delete', function (e) { e.preventDefault(); let messageId = $(this).parents('[data-message_id]').data('message_id'); deleteMessage(messageId); }); loadNextBtn.click(function (e) { e.preventDefault(); getLatestNews(lastMsgId); }); //close && set as readed action $(document).on('click', '#messagesView [data-action="close"]', function (e) { e.preventDefault(); e.stopPropagation(); let messageId = $(e.currentTarget).parents('div[data-message_id]').data('message_id'); hideMessage(messageId); }); $('#personNewsPreview').on('show.bs.modal', function (e) { let content = $('#personNewsPreview').find('.modal-body'); let loading_text = 'Wczytuję dane... '; let msg_id = $(this).data('messageId'); $.ajax({ url: '/admin/person-news/get-news-preview', type: 'POST', data: { 'msg_id': msg_id }, beforeSend: function (jqXHR, settings) { content.html(loading_text); }, success: function (data, textStatus, jqXHR) { content.html(data); }, error: function (jqXHR, textStatus, errorThrown) { var msg = translate('Wystąpił błąd. Zamknij okno i spróbuj ponownie.'); content.html(msg); } }); }); function checkNewMessages() { $.get('/admin/person-news/getnewmessages', function (result) { if (result.meta !== undefined) { var messageBtn = $("#newMessagesCounter"); if (messageBtn.length === 0) { messageBtn = $(`
  • `).insertBefore('#userMenu'); } if (personNewsCounter.counter < result.data.count) { getLatestNews(); personNewsCounter.counter = result.data.count; } messageBtn.attr("title", result.meta.message); if (result.meta.status > 0) { messageBtn.find('i').addClass('icon-animated-vertical'); } else { messageBtn.find('i').removeClass('icon-animated-vertical'); } setTimeout(checkNewMessages, reloadPeriod); } }); } function createNewsBox(news) { let panelClass; switch (parseInt(news.priority)) { case 1: panelClass = 'alert-danger'; break; default: panelClass = 'alert-default'; break; } if (news.readed) { news.text = `${news.text.substring(0, 150)}`; } else { news.text = news.text.substring(0, 150); } if (news.text.length > 150) { news.text += ` ...`; } if (lastMsgId === 0 || lastMsgId > parseInt(news.id)) { lastMsgId = parseInt(news.id); } let context = null; let toolsHtml = ''; let gotoUrl = ''; if (news.context !== undefined) { context = JSON.parse(news.context); if (context !== null && context.ref !== undefined) { gotoUrl = context.ref; } } if (gotoUrl) { toolsHtml += `${translate('Przejdź')}` } toolsHtml += `
    `; return `
    ${news.dateCreate}
    ${news.text}
    ${toolsHtml}
    `; } function getLatestNews(lastId = 0) { let contentBox = $('#messagesView .modal-body .person-news-list'); if (lastId === 0) { contentBox.html('


    ' + translate('Ładowanie powiadomień. Proszę czekać') + '...

    '); loadNextBtn.hide(); } else { loadNextBtn.html('' + translate('Ładowanie powiadomień.') + '...'); loadNextBtn.attr('disabled', true); } $.getJSON('/admin/person-news/latest/unreaded.1', {newest: lastId}, function (result) { loadNextBtn.html(translate('Pobierz więcej')).attr('disabled', false); if (result.meta !== undefined) { if (result.meta.status === 0 && lastId > 0) { $.flashMessenger.info(result.meta.message); } else if (result.meta.status <= 0 && lastId <= 0) { contentBox.html(`


    ${result.meta.message}

    `); } else { let items = []; $.each(result.data, function (key, val) { let tmpl = createNewsBox(val); items.push(tmpl); }); let newsList = $('
    ', { 'class': 'my-news-list', html: items.join('') }); if (lastId > 0) { contentBox.append(newsList); } else { contentBox.html(newsList); } loadNextBtn.show(); } } else { if (result.meta !== undefined) { contentBox.html(`

    ${translate('Błąd pobierania powiadomień')}: ${result.meta.message}

    `); $.flashMessenger.error(result.meta.message); } } }).fail(function (jqXHR, textStatus, errorThrown) { $.flashMessenger.error(jqXHR.responseText); contentBox.text(textStatus); }); } function hideMessage(id) { let messageBlock = $('#messagesView div[data-message_id="'+id+'"]'); $.ajax({ url: '/admin/person-news/set-readed', type: 'GET', data: { 'id': messageBlock.data('message_id') }, beforeSend: function (jqXHR, settings) { if ('undefined' !== typeof $.blockUI) { messageBlock.block({ message: translate('Ukrywanie powiadomienia') + '...', css: { border: 'none', padding: '5px', backgroundColor: '#000', opacity: 0.9, color: '#fff', cursor: 'wait', width: '90%' }, }); } }, success: function (data, textStatus, jqXHR) { if (data.meta.status <= 0) { $.flashMessenger.error(data.meta.message); } else { messageBlock.remove(); } }, error: function (jqXHR, textStatus, errorThrown) { var msg = translate('Wystąpił błąd. Spróbuj ponownie.'); content.html(msg); }, finally: function () { if ('undefined' !== typeof $.unblockUI) { messageBlock.unblock(); } } }); return true; } function deleteMessage(id) { $.getJSON('/admin/person-news/delete/id.' + id) .done(function(data) { if (data.meta !== undefined) { if (data.meta.status > 0) { $.flashMessenger.success(data.meta.message); hideMessage(id); personNewsCounter.counter--; } else if (data.meta.status === 0) { $.flashMessenger.warning(data.meta.message); } else { $.flashMessenger.error(data.meta.message); } } else { $.flashMessenger.error('Niepoprawna odpowiedź. Spróbuj ponownie lub skontaktuj się z administratorem.'); } }) .fail(function (jqXHR, textStatus, errorThrown) { $.flashMessenger.error(jqXHR.responseText); }) } if (typeof(__moduleHasMCity) !== "undefined" && __moduleHasMCity) { const checkUnreadIssues = () => { $.get('/mcity/admin/index/unreadissues', function (result) { if (result.data !== undefined) { var messageBtn = $("#unreadIssues"); if (messageBtn.length === 0) { messageBtn = $(`
  • `).insertBefore('#userMenu'); } issuesCounter.counter = result.data.count; messageBtn.find('a').attr("title", result.meta.msg); if (result.meta.status > 0) { messageBtn.find('i').addClass('icon-animated-vertical'); } else { messageBtn.find('i').removeClass('icon-animated-vertical'); } setTimeout(checkUnreadIssues, reloadPeriod); } }); checkUnreadIssues(); } } if (typeof(__moduleHasTasks) !== "undefined" && __moduleHasTasks) { const checkNewTasks = () => { $.get('/task/admin/task/counter', function (result) { if (result.meta !== undefined) { var tasksBtn = $("#newTaskCounter"); if (tasksBtn.length === 0) { tasksBtn = $(`
  • `).insertBefore('#userMenu'); } tasksCounter.counter = result.data.count; tasksBtn.find('a').attr("title", result.meta.msg); if (result.meta.status > 0) { tasksBtn.find('i').addClass('icon-animated-vertical'); } else { tasksBtn.find('i').removeClass('icon-animated-vertical'); } setTimeout(checkNewTasks, reloadPeriod); } }); } checkNewTasks(); } // ustawienia strony startowej $('#setAsStartPage').click(function(e) { e.preventDefault(); $.get('/admin/person/set-start-page') .done(function(result) { if (result.meta.status != undefined) { var type = 'success'; if (result.meta.status === 0) { type = 'info'; } else if (result.meta.status < 0) { type = 'error'; } $.flashMessenger(result.meta.msg, type, true); } }) .fail(function(data) { $.flashMessenger('Błąd ustawiania widoku startowego.', 'error', true); }); }); // makes modal draggable $('.modal-content').draggable({ handle: ".modal-header" }); });