mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
60 lines
2.8 KiB
JavaScript
60 lines
2.8 KiB
JavaScript
define(['loading', 'libraryMenu', 'globalize', 'listViewStyle', 'emby-button'], function(loading, libraryMenu, globalize) {
|
|
'use strict';
|
|
|
|
function reload(page) {
|
|
loading.show();
|
|
ApiClient.getJSON(ApiClient.getUrl('Notifications/Types')).then(function(list) {
|
|
var html = '';
|
|
var lastCategory = '';
|
|
var showHelp = true;
|
|
html += list.map(function(notification) {
|
|
var itemHtml = '';
|
|
if (notification.Category !== lastCategory) {
|
|
lastCategory = notification.Category;
|
|
if (lastCategory) {
|
|
itemHtml += '</div>';
|
|
itemHtml += '</div>';
|
|
}
|
|
itemHtml += '<div class="verticalSection verticalSection-extrabottompadding">';
|
|
itemHtml += '<div class="sectionTitleContainer" style="margin-bottom:1em;">';
|
|
itemHtml += '<h2 class="sectionTitle">';
|
|
itemHtml += notification.Category;
|
|
itemHtml += '</h2>';
|
|
if (showHelp) {
|
|
showHelp = false;
|
|
itemHtml += '<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/notifications.html">';
|
|
itemHtml += globalize.translate('Help');
|
|
itemHtml += '</a>';
|
|
}
|
|
itemHtml += '</div>';
|
|
itemHtml += '<div class="paperList">';
|
|
}
|
|
itemHtml += '<a class="listItem listItem-border" is="emby-linkbutton" data-ripple="false" href="notificationsetting.html?type=' + notification.Type + '">';
|
|
if (notification.Enabled) {
|
|
itemHtml += '<span class="listItemIcon material-icons notifications_active"></span>';
|
|
} else {
|
|
itemHtml += '<span class="listItemIcon material-icons notifications_off" style="background-color:#999;"></span>';
|
|
}
|
|
itemHtml += '<div class="listItemBody">';
|
|
itemHtml += '<div class="listItemBodyText">' + notification.Name + '</div>';
|
|
itemHtml += '</div>';
|
|
itemHtml += '<button type="button" is="paper-icon-button-light"><span class="material-icons mode_edit"></span></button>';
|
|
itemHtml += '</a>';
|
|
return itemHtml;
|
|
}).join('');
|
|
|
|
if (list.length) {
|
|
html += '</div>';
|
|
html += '</div>';
|
|
}
|
|
page.querySelector('.notificationList').innerHTML = html;
|
|
loading.hide();
|
|
});
|
|
}
|
|
|
|
return function(view, params) {
|
|
view.addEventListener('viewshow', function() {
|
|
reload(view);
|
|
});
|
|
};
|
|
});
|