1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

update prompt dialog

This commit is contained in:
Luke Pulverenti 2016-09-08 02:15:44 -04:00
parent 1bc42f10d6
commit 719ed8d8bd
60 changed files with 285 additions and 206 deletions

View file

@ -14,12 +14,12 @@
},
"devDependencies": {},
"ignore": [],
"version": "1.4.229",
"_release": "1.4.229",
"version": "1.4.230",
"_release": "1.4.230",
"_resolution": {
"type": "version",
"tag": "1.4.229",
"commit": "aaee0b2e654b9007116e9b4eb5b5b86dd39d323b"
"tag": "1.4.230",
"commit": "d7cf0c71da21ae2be3cdda68017c0e4c654275a5"
},
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
"_target": "^1.2.1",

View file

@ -32,6 +32,16 @@
max-height: 84%;
}
@media all and (min-width: 800px) and (min-height: 600px) {
.dialog-mini {
top: 20% !important;
bottom: 20% !important;
left: 25% !important;
right: 25% !important;
}
}
@media all and (min-width: 1280px) and (min-height: 720px) {
.dialog-medium {
@ -54,9 +64,13 @@
left: 20% !important;
right: 20% !important;
}
}
@media all and (min-width: 1280px) and (min-height: 720px) {
.dialog-mini {
top: 20% !important;
bottom: 20% !important;
left: 30% !important;
right: 30% !important;
}
.dialog-fullscreen-border {
top: 5% !important;

View file

@ -22,6 +22,7 @@
border: 0;
text-transform: none;
border-bottom: 1px solid #333;
padding-left: .1em;
}
.emby-collapse-expandIcon {

View file

@ -31,43 +31,27 @@
if (!this.id) {
this.id = 'embyinput' + inputId;
inputId++;
}
};
EmbyInputPrototype.attachedCallback = function () {
if (this.classList.contains('emby-input')) {
} if (this.classList.contains('emby-input')) {
return;
}
this.classList.add('emby-input');
var parentNode = this.parentNode;
var label = this.ownerDocument.createElement('label');
var document = this.ownerDocument;
var label = document.createElement('label');
label.innerHTML = this.getAttribute('label') || '';
label.classList.add('inputLabel');
label.classList.add('inputLabelUnfocused');
var instanceSupportsFloat = supportsFloatingLabel && this.type != 'date' && this.type != 'time';
label.htmlFor = this.id;
parentNode.insertBefore(label, this);
this.labelElement = label;
var div = document.createElement('div');
div.classList.add('emby-input-selectionbar');
parentNode.insertBefore(div, this.nextSibling);
function onChange() {
if (this.value) {
label.classList.remove('inputLabel-float');
} else {
if (instanceSupportsFloat) {
label.classList.add('inputLabel-float');
}
}
}
dom.addEventListener(this, 'focus', function () {
onChange.call(this);
label.classList.add('inputLabelFocused');
@ -93,12 +77,32 @@
dom.addEventListener(this, 'valueset', onChange, {
passive: true
});
};
function onChange() {
var label = this.labelElement;
if (this.value) {
label.classList.remove('inputLabel-float');
} else {
var instanceSupportsFloat = supportsFloatingLabel && this.type != 'date' && this.type != 'time';
if (instanceSupportsFloat) {
label.classList.add('inputLabel-float');
}
}
}
EmbyInputPrototype.attachedCallback = function () {
this.labelElement.htmlFor = this.id;
onChange.call(this);
};
this.label = function (text) {
label.innerHTML = text;
};
EmbyInputPrototype.label = function (text) {
this.labelElement.innerHTML = text;
};
document.registerElement('emby-input', {

View file

@ -17,7 +17,12 @@
for (var i = 0, length = chkIndicators.length; i < length; i++) {
var type = chkIndicators[i].getAttribute('data-type');
chkIndicators[i].checked = userSettings.get('guide-indicator-' + type) == 'true';
if (chkIndicators[i].getAttribute('data-default') == 'true') {
chkIndicators[i].checked = userSettings.get('guide-indicator-' + type) != 'false';
} else {
chkIndicators[i].checked = userSettings.get('guide-indicator-' + type) == 'true';
}
}
}

View file

@ -14,7 +14,7 @@
<span>${HDPrograms}</span>
</label>
<label>
<input type="checkbox" is="emby-checkbox" class="chkIndicator" data-type="live" />
<input type="checkbox" is="emby-checkbox" class="chkIndicator" data-type="live" data-default="true" />
<span>${LiveBroadcasts}</span>
</label>
<label>
@ -22,7 +22,7 @@
<span>${NewEpisodes}</span>
</label>
<label>
<input type="checkbox" is="emby-checkbox" class="chkIndicator" data-type="premiere" />
<input type="checkbox" is="emby-checkbox" class="chkIndicator" data-type="premiere" data-default="true" />
<span>${Premieres}</span>
</label>
<label>

View file

@ -432,8 +432,8 @@
var options = {
showHdIcon: allowIndicators && userSettings.get('guide-indicator-hd') == 'true',
showLiveIndicator: allowIndicators && userSettings.get('guide-indicator-live') == 'true',
showPremiereIndicator: allowIndicators && userSettings.get('guide-indicator-premiere') == 'true',
showLiveIndicator: allowIndicators && userSettings.get('guide-indicator-live') != 'false',
showPremiereIndicator: allowIndicators && userSettings.get('guide-indicator-premiere') != 'false',
showNewIndicator: allowIndicators && userSettings.get('guide-indicator-new') == 'true',
showRepeatIndicator: allowIndicators && userSettings.get('guide-indicator-repeat') == 'true'
};

View file

@ -1,89 +1,59 @@
define(['dialogHelper', 'layoutManager', 'globalize', 'material-icons', 'css!./style.css', 'emby-button', 'paper-icon-button-light', 'emby-input'], function (dialogHelper, layoutManager, globalize) {
define(['dialogHelper', 'layoutManager', 'scrollHelper', 'globalize', 'require', 'material-icons', 'emby-button', 'paper-icon-button-light', 'emby-input', 'emby-input', 'formDialogStyle'], function (dialogHelper, layoutManager, scrollHelper, globalize, require) {
function getIcon(icon, cssClass, canFocus, autoFocus) {
var tabIndex = canFocus ? '' : ' tabindex="-1"';
autoFocus = autoFocus ? ' autofocus' : '';
return '<button is="paper-icon-button-light" class="autoSize ' + cssClass + '"' + tabIndex + autoFocus + '><i class="md-icon promptExitIcon">' + icon + '</i></button>';
function setInputProperties(dlg, options) {
var txtInput = dlg.querySelector('#txtInput');
txtInput.value = options.value || '';
txtInput.label(options.label || '');
}
return function (options) {
if (typeof options === 'string') {
options = {
title: '',
text: options
};
}
function showPrompt(options, template) {
var dialogOptions = {
removeOnClose: true
removeOnClose: true,
scrollY: false
};
var backButton = false;
var raisedButtons = false;
if (layoutManager.tv) {
dialogOptions.size = 'fullscreen';
backButton = true;
raisedButtons = true;
} else {
dialogOptions.modal = false;
dialogOptions.entryAnimationDuration = 160;
dialogOptions.exitAnimationDuration = 200;
dialogOptions.size = 'mini';
}
var dlg = dialogHelper.createDialog(dialogOptions);
dlg.classList.add('promptDialog');
dlg.classList.add('formDialog');
var html = '';
var submitValue = '';
dlg.innerHTML = globalize.translateHtml(template, 'sharedcomponents');
html += '<div class="promptDialogContent">';
if (backButton) {
html += getIcon('&#xE5C4;', 'btnPromptExit', false);
if (layoutManager.tv) {
scrollHelper.centerFocus.on(dlg.querySelector('.formDialogContent'), false);
}
dlg.querySelector('.btnCancel').addEventListener('click', function (e) {
dialogHelper.close(dlg);
});
if (options.title) {
html += '<h2>';
html += options.title;
html += '</h2>';
dlg.querySelector('.dialogContentTitle').innerHTML = options.title;
} else {
dlg.querySelector('.dialogContentTitle').classList.add('hide');
}
html += '<form>';
html += '<div class="inputContainer" style="margin-bottom:0;">';
html += '<input is="emby-input" type="text" autoFocus class="txtPromptValue" value="' + (options.value || '') + '" label="' + (options.label || '') + '"/>';
if (options.description) {
html += '<div class="fieldDescription">';
html += options.description;
html += '</div>';
}
html += '</div>';
html += '<br/>';
if (raisedButtons) {
html += '<button is="emby-button" type="submit" class="raised btnSubmit"><i class="md-icon">check</i><span>' + globalize.translate('sharedcomponents#ButtonOk') + '</span></button>';
dlg.querySelector('.fieldDescription').innerHTML = options.description;
} else {
html += '<div class="buttons">';
html += '<button is="emby-button" type="submit" class="btnSubmit">' + globalize.translate('sharedcomponents#ButtonOk') + '</button>';
html += '<button is="emby-button" type="button" class="btnPromptExit">' + globalize.translate('sharedcomponents#ButtonCancel') + '</button>';
html += '</div>';
dlg.querySelector('.fieldDescription').classList.add('hide');
}
html += '</form>';
html += '</div>';
dlg.innerHTML = html;
setInputProperties(dlg, options);
document.body.appendChild(dlg);
var submitValue;
dlg.querySelector('form').addEventListener('submit', function (e) {
submitValue = dlg.querySelector('.txtPromptValue').value;
submitValue = dlg.querySelector('#txtInput').value;
e.preventDefault();
e.stopPropagation();
@ -95,11 +65,6 @@ define(['dialogHelper', 'layoutManager', 'globalize', 'material-icons', 'css!./s
return false;
});
dlg.querySelector('.btnPromptExit').addEventListener('click', function (e) {
dialogHelper.close(dlg);
});
return dialogHelper.open(dlg).then(function () {
var value = submitValue;
@ -109,5 +74,21 @@ define(['dialogHelper', 'layoutManager', 'globalize', 'material-icons', 'css!./s
return Promise.reject();
}
});
}
return function (options) {
return new Promise(function (resolve, reject) {
require(['text!./prompt.template.html'], function (template) {
if (typeof options === 'string') {
options = {
title: '',
text: options
};
}
showPrompt(options, template).then(resolve, reject);
});
});
};
});

View file

@ -0,0 +1,24 @@
<div class="formDialogHeader">
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>
</div>
<div class="formDialogContent smoothScrollY">
<div class="dialogContentInner dialog-content-centered">
<h1 class="dialogContentTitle"></h1>
<form>
<div class="inputContainer">
<input is="emby-input" type="text" id="txtInput" label="${LabelPrePaddingMinutes}"/>
<div class="fieldDescription"></div>
</div>
<div class="formDialogFooter">
<button is="emby-button" type="submit" class="raised btnSubmit block formDialogFooterItem">
<span>${ButtonOk}</span>
</button>
</div>
</form>
</div>
</div>

View file

@ -1,37 +0,0 @@
.promptDialog {
flex-direction: column;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
}
.promptDialogContent {
text-align: left;
margin: 0 !important;
}
.promptDialog-fullscreen .promptDialogContent {
padding: 0;
width: 50%;
}
.promptDialog-fullscreen .btnSubmit {
display: flex;
width: 100%;
align-items: center;
justify-content: center;
}
.promptDialog-fullscreen .btnPromptExit {
z-index: 1002;
position: absolute;
top: .5em;
left: .5em;
}
.promptDialog-fullscreen .promptExitIcon {
width: 4.4vh;
height: 4.4vh;
font-size: 4.4vh;
}

View file

@ -1,4 +1,4 @@
define(['dialogHelper', 'globalize', 'layoutManager', 'mediaInfo', 'apphost', 'connectionManager', 'require', 'loading', 'scrollHelper', 'emby-checkbox', 'emby-button', 'emby-collapse', 'emby-input', 'paper-icon-button-light', 'css!./../formdialog', 'css!./recordingcreator', 'material-icons'], function (dialogHelper, globalize, layoutManager, mediaInfo, appHost, connectionManager, require, loading, scrollHelper) {
define(['dialogHelper', 'globalize', 'layoutManager', 'mediaInfo', 'apphost', 'connectionManager', 'require', 'loading', 'scrollHelper', 'shell', 'emby-checkbox', 'emby-button', 'emby-collapse', 'emby-input', 'paper-icon-button-light', 'css!./../formdialog', 'css!./recordingcreator', 'material-icons'], function (dialogHelper, globalize, layoutManager, mediaInfo, appHost, connectionManager, require, loading, scrollHelper, shell) {
var currentProgramId;
var currentServerId;
@ -99,13 +99,14 @@
return false;
}
function getRegistration(apiClient) {
function getRegistration(apiClient, programId, feature) {
loading.show();
return apiClient.getJSON(apiClient.getUrl('LiveTv/Registration', {
Feature: 'seriesrecordings'
ProgramId: programId,
Feature: feature
})).then(function (result) {
@ -139,13 +140,34 @@
showSeriesDays(context);
context.querySelector('.btnSubmit').classList.remove('hide');
getRegistration(apiClient).then(function (regInfo) {
getRegistration(apiClient, currentProgramId, 'seriesrecordings').then(function (regInfo) {
if (regInfo.IsRegistered) {
context.querySelector('.btnSubmit').classList.remove('hide');
context.querySelector('.supporterContainer').classList.add('hide');
} else {
context.querySelector('.supporterContainerText').innerHTML = globalize.translate('sharedcomponents#MessageActiveSubscriptionRequiredSeriesRecordings');
context.querySelector('.supporterContainer').classList.remove('hide');
context.querySelector('.btnSubmit').classList.add('hide');
}
});
}
function showSingleRecordingFields(context, apiClient) {
context.querySelector('.btnSubmit').classList.remove('hide');
getRegistration(apiClient, currentProgramId, 'dvr').then(function (regInfo) {
if (regInfo.IsRegistered) {
context.querySelector('.btnSubmit').classList.remove('hide');
context.querySelector('.supporterContainer').classList.add('hide');
} else {
context.querySelector('.supporterContainerText').innerHTML = globalize.translate('sharedcomponents#DvrSubscriptionRequired');
context.querySelector('.supporterContainer').classList.remove('hide');
context.querySelector('.btnSubmit').classList.add('hide');
}
@ -205,6 +227,7 @@
showSeriesRecordingFields(context, apiClient);
} else {
hideSeriesRecordingFields(context);
showSingleRecordingFields(context, apiClient);
}
});
@ -299,10 +322,9 @@
function onSupporterButtonClick() {
if (appHost.supports('externalpremium')) {
require(['shell'], function (shell) {
shell.openUrl('https://emby.media/premiere');
});
shell.openUrl('https://emby.media/premiere');
} else {
}
}
@ -379,6 +401,7 @@
dlg.querySelector('.btnSupporterForConverting').addEventListener('click', onSupporterButtonClick);
hideSeriesRecordingFields(dlg);
showSingleRecordingFields(dlg, connectionManager.getApiClient(serverId));
init(dlg);
reload(dlg, itemId);

View file

@ -99,7 +99,8 @@
<br />
<div class="formDialogFooter">
<div class="supporterContainer hide formDialogFooterItem">
<p>${MessageActiveSubscriptionRequiredSeriesRecordings}</p>
<div class="supporterContainerText"></div>
<br/>
<button is="emby-button" type="button" class="btnSupporter hide raised accent block">
<span>${HeaderBecomeProjectSupporter}</span>
</button>

View file

@ -75,11 +75,6 @@
});
context.querySelector('form').addEventListener('submit', onSubmit);
context.querySelector('.btnHeaderSave').addEventListener('click', function (e) {
context.querySelector('.btnSubmit').click();
});
}
function reload(context, id) {

View file

@ -3,12 +3,6 @@
<div class="formDialogHeaderTitle">
${Edit}
</div>
<div style="margin-left:auto; display: flex; align-items: center; justify-content: center;">
<button is="emby-button" type="button" class="btnHeaderSave accent" tabindex="-1">
<i class="md-icon">check</i>
<span>${Save}</span>
</button>
</div>
</div>
<div class="formDialogContent smoothScrollY">

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "Programas en HD",
"LiveBroadcasts": "Transmisiones en vivo",
"Premieres": "Estrenos",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repetir episodios",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -277,10 +277,11 @@
"ConfirmDeleteImage": "\u0421\u0443\u0440\u0435\u0442\u0442\u0456 \u0436\u043e\u044f\u043c\u044b\u0437 \u0431\u0430?",
"HeaderEditImages": "\u0421\u0443\u0440\u0435\u0442\u0442\u0435\u0440\u0434\u0456 \u04e9\u04a3\u0434\u0435\u0443",
"Settings": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043b\u0435\u0440",
"ShowIndicatorsFor": "\u041c\u044b\u043d\u0430\u0443 \u04af\u0448\u0456\u043d \u0430\u0439\u0493\u0430\u049b\u0442\u0430\u0443\u044b\u0448\u0442\u0430\u0440\u0434\u044b \u043a\u04e9\u0440\u0441\u0435\u0442\u0443:",
"ShowIndicatorsFor": "\u041c\u044b\u043d\u0430\u0443 \u04af\u0448\u0456\u043d \u0431\u0435\u043b\u0433\u0456 \u043a\u04e9\u0440\u0441\u0435\u0442\u0443:",
"NewEpisodes": "\u0416\u0430\u04a3\u0430 \u0431\u04e9\u043b\u0456\u043c\u0434\u0435\u0440",
"HDPrograms": "HD-\u043a\u04e9\u0440\u0441\u0435\u0442\u0456\u043c\u0434\u0435\u0440",
"LiveBroadcasts": "\u042d\u0444\u0438\u0440\u043b\u0456\u043a \u0442\u0430\u0440\u0430\u0442\u0443\u043b\u0430\u0440",
"LiveBroadcasts": "\u0422\u0456\u043a\u0435\u043b\u0435\u0439 \u0442\u0430\u0440\u0430\u0442\u044b\u043c\u0434\u0430\u0440",
"Premieres": "\u041f\u0440\u0435\u043c\u044c\u0435\u0440\u0430\u043b\u0430\u0440",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "\u0411\u04e9\u043b\u0456\u043c\u0434\u0435\u0440\u0434\u0456\u04a3 \u049b\u0430\u0439\u0442\u0430\u043b\u0430\u043d\u0443\u044b",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -277,10 +277,11 @@
"ConfirmDeleteImage": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0440\u0438\u0441\u0443\u043d\u043e\u043a?",
"HeaderEditImages": "\u041f\u0440\u0430\u0432\u0438\u0442\u044c \u0440\u0438\u0441\u0443\u043d\u043a\u0438",
"Settings": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b",
"ShowIndicatorsFor": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0434\u043b\u044f:",
"ShowIndicatorsFor": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043a\u0438 \u0434\u043b\u044f:",
"NewEpisodes": "\u041d\u043e\u0432\u044b\u0435 \u044d\u043f\u0438\u0437\u043e\u0434\u044b",
"HDPrograms": "HD-\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438",
"LiveBroadcasts": "\u042d\u0444\u0438\u0440\u043d\u043e\u0435 \u0432\u0435\u0449\u0430\u043d\u0438\u0435",
"LiveBroadcasts": "\u041f\u0440\u044f\u043c\u044b\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438",
"Premieres": "\u041f\u0440\u0435\u043c\u044c\u0435\u0440\u044b",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "\u041f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0435 \u044d\u043f\u0438\u0437\u043e\u0434\u043e\u0432",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -282,5 +282,6 @@
"HDPrograms": "HD programs",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes"
"RepeatEpisodes": "Repeat episodes",
"DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription."
}

View file

@ -32,14 +32,14 @@
"web-component-tester": "^4.0.0",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
},
"homepage": "https://github.com/PolymerElements/iron-icon",
"homepage": "https://github.com/polymerelements/iron-icon",
"_release": "1.0.10",
"_resolution": {
"type": "version",
"tag": "v1.0.10",
"commit": "f4e146da4982ff96bb25db85290c09e8de4ec734"
},
"_source": "git://github.com/PolymerElements/iron-icon.git",
"_source": "git://github.com/polymerelements/iron-icon.git",
"_target": "^1.0.0",
"_originalSource": "PolymerElements/iron-icon"
"_originalSource": "polymerelements/iron-icon"
}

View file

@ -27,14 +27,14 @@
},
"main": "iron-meta.html",
"ignore": [],
"homepage": "https://github.com/PolymerElements/iron-meta",
"homepage": "https://github.com/polymerelements/iron-meta",
"_release": "1.1.2",
"_resolution": {
"type": "version",
"tag": "v1.1.2",
"commit": "bae96531b63ea6d4ce982f5592248aea849c0f5a"
},
"_source": "git://github.com/PolymerElements/iron-meta.git",
"_source": "git://github.com/polymerelements/iron-meta.git",
"_target": "^1.0.0",
"_originalSource": "PolymerElements/iron-meta"
"_originalSource": "polymerelements/iron-meta"
}

View file

@ -32,14 +32,14 @@
"iron-component-page": "polymerElements/iron-component-page#^1.1.6"
},
"private": true,
"homepage": "https://github.com/polymer/polymer",
"homepage": "https://github.com/Polymer/polymer",
"_release": "1.6.1",
"_resolution": {
"type": "version",
"tag": "v1.6.1",
"commit": "1f197d9d7874b1e5808b2a5c26f34446a7d912fc"
},
"_source": "git://github.com/polymer/polymer.git",
"_source": "git://github.com/Polymer/polymer.git",
"_target": "^1.1.0",
"_originalSource": "polymer/polymer"
"_originalSource": "Polymer/polymer"
}

View file

@ -1,5 +1,11 @@
<div id="liveTvSuggestedPage" data-dom-cache="true" data-role="page" class="page libraryPage liveTvPage pageWithAbsoluteTabs" data-title="${HeaderLiveTv}" data-backdroptype="series,movie">
<style>
.guideOptions {
/* Avoid getting covered up by the tabs */
margin-bottom: 55px;
}
</style>
<div is="emby-tabs" class="libraryViewNav">
<div class="emby-tabs-slider">
<button is="emby-button" class="emby-tab-button emby-tab-button-active" data-index="0">

View file

@ -1,4 +1,4 @@
<div id="liveTvItemsPage" data-role="page" class="page libraryPage liveTvPage noSecondaryNavPage" data-title="${HeaderLiveTv}" data-require="scripts/livetvitems,livetvcss" data-menubutton="false">
<div id="liveTvItemsPage" data-role="page" class="page libraryPage liveTvPage noSecondaryNavPage" data-require="scripts/livetvitems,livetvcss" data-backbutton="true">
<div data-role="content">
<div class="viewSettings">

View file

@ -134,6 +134,34 @@
query.IsKids = false;
}
if (params.type == 'Recordings') {
if (params.IsMovie) {
LibraryMenu.setTitle(Globalize.translate('TabMovies'));
} else if (params.IsSports) {
LibraryMenu.setTitle(Globalize.translate('Sports'));
} else if (params.IsKids) {
LibraryMenu.setTitle(Globalize.translate('HeaderForKids'));
} else {
LibraryMenu.setTitle(Globalize.translate('TabRecordings'));
}
} else if (params.type == 'RecordingSeries') {
LibraryMenu.setTitle(Globalize.translate('TabSeries'));
} else {
if (params.IsMovie) {
LibraryMenu.setTitle(Globalize.translate('HeaderUpcomingMovies'));
} else if (params.IsSports) {
LibraryMenu.setTitle(Globalize.translate('HeaderUpcomingSports'));
} else if (params.IsKids) {
LibraryMenu.setTitle(Globalize.translate('HeaderUpcomingForKids'));
} else {
LibraryMenu.setTitle(Globalize.translate('HeaderUpcomingPrograms'));
}
}
var viewkey = getSavedQueryKey();
LibraryBrowser.loadSavedQueryValues(viewkey, query);