(function ($, document, window) { function resetTuner(page, id) { var message = Globalize.translate('MessageConfirmResetTuner'); Dashboard.confirm(message, Globalize.translate('HeaderResetTuner'), function (confirmResult) { if (confirmResult) { Dashboard.showLoadingMsg(); ApiClient.resetLiveTvTuner(id).done(function () { Dashboard.hideLoadingMsg(); reload(page); }); } }); } function renderTuners(page, tuners) { var html = ''; for (var i = 0, length = tuners.length; i < length; i++) { var tuner = tuners[i]; html += ''; html += ''; html += tuner.Name; html += ''; html += ''; html += tuner.SourceType; html += ''; html += ''; if (tuner.Status == 'RecordingTv') { if (tuner.ChannelName) { html += ''; html += Globalize.translate('StatusRecordingProgram').replace('{0}', tuner.ChannelName); html += ''; } else { html += Globalize.translate('StatusRecording'); } } else if (tuner.Status == 'LiveTv') { if (tuner.ChannelName) { html += ''; html += Globalize.translate('StatusWatchingProgram').replace('{0}', tuner.ChannelName); html += ''; } else { html += Globalize.translate('StatusWatching'); } } else { html += tuner.Status; } html += ''; html += ''; if (tuner.ProgramName) { html += tuner.ProgramName; } html += ''; html += ''; html += tuner.Clients.join('
'); html += ''; html += ''; html += ''; html += ''; html += ''; } var elem = $('.tunersResultBody', page).html(html).parents('.tblTuners').table("refresh").trigger('create'); $('.btnResetTuner', elem).on('click', function () { var id = this.getAttribute('data-tunerid'); resetTuner(page, id); }); } function getServiceHtml(service) { var html = ''; html += '
'; var serviceUrl = service.HomePageUrl || '#'; html += '

' + service.Name + '

'; var versionHtml = service.Version || 'Unknown'; if (service.HasUpdateAvailable) { versionHtml += ' ' + Globalize.translate('LiveTvUpdateAvailable') + ''; } else { versionHtml += ' ' + Globalize.translate('LabelVersionUpToDate'); } html += '

' + versionHtml + '

'; var status = service.Status; if (service.Status == 'Ok') { status = '' + status + ''; } else { if (service.StatusMessage) { status += ' (' + service.StatusMessage + ')'; } status = '' + status + ''; } html += '

' + Globalize.translate('ValueStatus', status) + '

'; html += '
'; return html; } function loadPage(page, liveTvInfo) { if (liveTvInfo.IsEnabled) { $('.liveTvStatusContent', page).show(); $('.noLiveTvServices', page).hide(); } else { $('.liveTvStatusContent', page).hide(); $('.noLiveTvServices', page).show(); } $('.servicesList', page).html(liveTvInfo.Services.map(getServiceHtml).join('')).trigger('create'); var tuners = []; for (var i = 0, length = liveTvInfo.Services.length; i < length; i++) { for (var j = 0, numTuners = liveTvInfo.Services[i].Tuners.length; j < numTuners; j++) { tuners.push(liveTvInfo.Services[i].Tuners[j]); } } renderTuners(page, tuners); Dashboard.hideLoadingMsg(); } function reload(page) { Dashboard.showLoadingMsg(); ApiClient.getLiveTvInfo().done(function (liveTvInfo) { loadPage(page, liveTvInfo); }); } $(document).on('pageshowready', "#liveTvStatusPage", function () { var page = this; reload(page); // on here $('.btnRefreshGuide', page).taskButton({ mode: 'on', progressElem: $('.refreshGuideProgress', page), lastResultElem: $('.lastRefreshGuideResult', page), taskKey: 'RefreshGuide' }); }).on('pagebeforehide', "#liveTvStatusPage", function () { var page = this; // off here $('.btnRefreshGuide', page).taskButton({ mode: 'off' }); }); })(jQuery, document, window);