$(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 = $(`
' + translate('Ładowanie powiadomień. Proszę czekać') + '...
${result.meta.message}
${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 = $(`