mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update timer listings
This commit is contained in:
parent
c2290dd41d
commit
cf3aa152cf
39 changed files with 368 additions and 287 deletions
|
@ -16,12 +16,12 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {},
|
"devDependencies": {},
|
||||||
"ignore": [],
|
"ignore": [],
|
||||||
"version": "1.1.86",
|
"version": "1.1.87",
|
||||||
"_release": "1.1.86",
|
"_release": "1.1.87",
|
||||||
"_resolution": {
|
"_resolution": {
|
||||||
"type": "version",
|
"type": "version",
|
||||||
"tag": "1.1.86",
|
"tag": "1.1.87",
|
||||||
"commit": "a6eb0622d2498b239814205e3313531bdbe15ad7"
|
"commit": "21057764cdf82e9ef08514cca4e48c76d47e535f"
|
||||||
},
|
},
|
||||||
"_source": "https://github.com/MediaBrowser/Emby.ApiClient.Javascript.git",
|
"_source": "https://github.com/MediaBrowser/Emby.ApiClient.Javascript.git",
|
||||||
"_target": "^1.1.51",
|
"_target": "^1.1.51",
|
||||||
|
|
|
@ -1087,7 +1087,7 @@
|
||||||
Servers: [server]
|
Servers: [server]
|
||||||
});
|
});
|
||||||
|
|
||||||
} if (result.Id != server.Id) {
|
} if (result.Id !== server.Id) {
|
||||||
|
|
||||||
// http request succeeded, but it's a different server than what was expected
|
// http request succeeded, but it's a different server than what was expected
|
||||||
testNextConnectionMode(tests, index + 1, server, options, resolve);
|
testNextConnectionMode(tests, index + 1, server, options, resolve);
|
||||||
|
|
|
@ -14,12 +14,12 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {},
|
"devDependencies": {},
|
||||||
"ignore": [],
|
"ignore": [],
|
||||||
"version": "1.4.283",
|
"version": "1.4.285",
|
||||||
"_release": "1.4.283",
|
"_release": "1.4.285",
|
||||||
"_resolution": {
|
"_resolution": {
|
||||||
"type": "version",
|
"type": "version",
|
||||||
"tag": "1.4.283",
|
"tag": "1.4.285",
|
||||||
"commit": "52a82ab789f4650d3b0ab7ee41cba96d417cfa76"
|
"commit": "832eef9023fe34ea838262763ca6f4b70e7b39ae"
|
||||||
},
|
},
|
||||||
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
|
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
|
||||||
"_target": "^1.2.1",
|
"_target": "^1.2.1",
|
||||||
|
|
|
@ -558,7 +558,7 @@ define(['browser'], function (browser) {
|
||||||
}]
|
}]
|
||||||
});
|
});
|
||||||
|
|
||||||
if (browser.chrome) {
|
if (!browser.edgeUwp && !browser.tizen && !browser.web0s) {
|
||||||
profile.CodecProfiles[profile.CodecProfiles.length - 1].Conditions.push({
|
profile.CodecProfiles[profile.CodecProfiles.length - 1].Conditions.push({
|
||||||
Condition: 'NotEquals',
|
Condition: 'NotEquals',
|
||||||
Property: 'IsAVC',
|
Property: 'IsAVC',
|
||||||
|
|
|
@ -82,6 +82,10 @@
|
||||||
transform: scale(1.16, 1.16);
|
transform: scale(1.16, 1.16);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.cardBox-mobile {
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
@media all and (min-width: 600px) {
|
@media all and (min-width: 600px) {
|
||||||
|
|
||||||
.cardBox-mobile {
|
.cardBox-mobile {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
define(['dialog', 'globalize'], function (dialog, globalize) {
|
define(['dialog', 'globalize'], function (dialog, globalize) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
return function (text, title) {
|
return function (text, title) {
|
||||||
|
|
||||||
|
@ -17,19 +18,19 @@ define(['dialog', 'globalize'], function (dialog, globalize) {
|
||||||
items.push({
|
items.push({
|
||||||
name: options.cancelText || globalize.translate('sharedcomponents#ButtonCancel'),
|
name: options.cancelText || globalize.translate('sharedcomponents#ButtonCancel'),
|
||||||
id: 'cancel',
|
id: 'cancel',
|
||||||
type: options.primary == 'cancel' ? 'submit' : 'cancel'
|
type: options.primary === 'cancel' ? 'submit' : 'cancel'
|
||||||
});
|
});
|
||||||
|
|
||||||
items.push({
|
items.push({
|
||||||
name: options.confirmText || globalize.translate('sharedcomponents#ButtonOk'),
|
name: options.confirmText || globalize.translate('sharedcomponents#ButtonOk'),
|
||||||
id: 'ok',
|
id: 'ok',
|
||||||
type: options.primary == 'cancel' ? 'cancel' : 'submit'
|
type: options.primary === 'cancel' ? 'cancel' : 'submit'
|
||||||
});
|
});
|
||||||
|
|
||||||
options.buttons = items;
|
options.buttons = items;
|
||||||
|
|
||||||
return dialog(options).then(function (result) {
|
return dialog(options).then(function (result) {
|
||||||
if (result == 'ok') {
|
if (result === 'ok') {
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
define([], function () {
|
define([], function () {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
function replaceAll(str, find, replace) {
|
function replaceAll(str, find, replace) {
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
define(['globalize'], function (globalize) {
|
define(['globalize'], function (globalize) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
function parseISO8601Date(s, toLocal) {
|
function parseISO8601Date(s, toLocal) {
|
||||||
|
|
||||||
|
@ -40,12 +41,12 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
// if there's a timezone, calculate it
|
// if there's a timezone, calculate it
|
||||||
if (d[8] != "Z" && d[10]) {
|
if (d[8] !== "Z" && d[10]) {
|
||||||
var offset = d[10] * 60 * 60 * 1000;
|
var offset = d[10] * 60 * 60 * 1000;
|
||||||
if (d[11]) {
|
if (d[11]) {
|
||||||
offset += d[11] * 60 * 1000;
|
offset += d[11] * 60 * 1000;
|
||||||
}
|
}
|
||||||
if (d[9] == "-") {
|
if (d[9] === "-") {
|
||||||
ms -= offset;
|
ms -= offset;
|
||||||
} else {
|
} else {
|
||||||
ms += offset;
|
ms += offset;
|
||||||
|
@ -161,7 +162,7 @@
|
||||||
|
|
||||||
yesterday.setDate(day); // automatically adjusts month/year appropriately
|
yesterday.setDate(day); // automatically adjusts month/year appropriately
|
||||||
|
|
||||||
return date.getFullYear() == yesterday.getFullYear() && date.getMonth() == yesterday.getMonth() && date.getDate() == day;
|
return date.getFullYear() === yesterday.getFullYear() && date.getMonth() === yesterday.getMonth() && date.getDate() === day;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
define(['dialogHelper', 'dom', 'layoutManager', 'scrollHelper', 'globalize', 'require', 'material-icons', 'emby-button', 'paper-icon-button-light', 'emby-input', 'formDialogStyle'], function (dialogHelper, dom, layoutManager, scrollHelper, globalize, require) {
|
define(['dialogHelper', 'dom', 'layoutManager', 'scrollHelper', 'globalize', 'require', 'material-icons', 'emby-button', 'paper-icon-button-light', 'emby-input', 'formDialogStyle'], function (dialogHelper, dom, layoutManager, scrollHelper, globalize, require) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
function showDialog(options, template) {
|
function showDialog(options, template) {
|
||||||
|
|
||||||
|
@ -50,7 +51,7 @@ define(['dialogHelper', 'dom', 'layoutManager', 'scrollHelper', 'globalize', 're
|
||||||
for (i = 0, length = options.buttons.length; i < length; i++) {
|
for (i = 0, length = options.buttons.length; i < length; i++) {
|
||||||
|
|
||||||
var item = options.buttons[i];
|
var item = options.buttons[i];
|
||||||
var autoFocus = i == 0 ? ' autofocus' : '';
|
var autoFocus = i === 0 ? ' autofocus' : '';
|
||||||
|
|
||||||
var buttonClass = 'btnOption raised formDialogFooterItem formDialogFooterItem-autosize';
|
var buttonClass = 'btnOption raised formDialogFooterItem formDialogFooterItem-autosize';
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
define(['historyManager', 'focusManager', 'browser', 'layoutManager', 'inputManager', 'dom', 'css!./dialoghelper.css', 'scrollStyles'], function (historyManager, focusManager, browser, layoutManager, inputManager, dom) {
|
define(['historyManager', 'focusManager', 'browser', 'layoutManager', 'inputManager', 'dom', 'css!./dialoghelper.css', 'scrollStyles'], function (historyManager, focusManager, browser, layoutManager, inputManager, dom) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
var globalOnOpenCallback;
|
var globalOnOpenCallback;
|
||||||
|
|
||||||
|
@ -27,7 +28,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function dialogHashHandler(dlg, hash, resolve) {
|
function DialogHashHandler(dlg, hash, resolve) {
|
||||||
|
|
||||||
var self = this;
|
var self = this;
|
||||||
self.originalUrl = window.location.href;
|
self.originalUrl = window.location.href;
|
||||||
|
@ -36,7 +37,7 @@
|
||||||
|
|
||||||
function onHashChange(e) {
|
function onHashChange(e) {
|
||||||
|
|
||||||
var isBack = self.originalUrl == window.location.href;
|
var isBack = self.originalUrl === window.location.href;
|
||||||
|
|
||||||
if (isBack || !isOpened(dlg)) {
|
if (isBack || !isOpened(dlg)) {
|
||||||
window.removeEventListener('popstate', onHashChange);
|
window.removeEventListener('popstate', onHashChange);
|
||||||
|
@ -50,7 +51,7 @@
|
||||||
|
|
||||||
function onBackCommand(e) {
|
function onBackCommand(e) {
|
||||||
|
|
||||||
if (e.detail.command == 'back') {
|
if (e.detail.command === 'back') {
|
||||||
self.closedByBack = true;
|
self.closedByBack = true;
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
|
@ -75,7 +76,7 @@
|
||||||
|
|
||||||
if (!self.closedByBack && isHistoryEnabled(dlg)) {
|
if (!self.closedByBack && isHistoryEnabled(dlg)) {
|
||||||
var state = history.state || {};
|
var state = history.state || {};
|
||||||
if (state.dialogId == hash) {
|
if (state.dialogId === hash) {
|
||||||
history.back();
|
history.back();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -84,7 +85,7 @@
|
||||||
activeElement.focus();
|
activeElement.focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dlg.getAttribute('data-removeonclose') != 'false') {
|
if (dlg.getAttribute('data-removeonclose') !== 'false') {
|
||||||
removeCenterFocus(dlg);
|
removeCenterFocus(dlg);
|
||||||
|
|
||||||
var dialogContainer = dlg.dialogContainer;
|
var dialogContainer = dlg.dialogContainer;
|
||||||
|
@ -123,7 +124,7 @@
|
||||||
cancelable: false
|
cancelable: false
|
||||||
}));
|
}));
|
||||||
|
|
||||||
if (dlg.getAttribute('data-lockscroll') == 'true' && !document.body.classList.contains('noScroll')) {
|
if (dlg.getAttribute('data-lockscroll') === 'true' && !document.body.classList.contains('noScroll')) {
|
||||||
document.body.classList.add('noScroll');
|
document.body.classList.add('noScroll');
|
||||||
removeScrollLockOnClose = true;
|
removeScrollLockOnClose = true;
|
||||||
}
|
}
|
||||||
|
@ -154,7 +155,7 @@
|
||||||
}, 0);
|
}, 0);
|
||||||
|
|
||||||
dom.addEventListener((dlg.dialogContainer || backdrop), 'click', function (e) {
|
dom.addEventListener((dlg.dialogContainer || backdrop), 'click', function (e) {
|
||||||
if (e.target == dlg.dialogContainer) {
|
if (e.target === dlg.dialogContainer) {
|
||||||
close(dlg);
|
close(dlg);
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
|
@ -163,7 +164,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function isHistoryEnabled(dlg) {
|
function isHistoryEnabled(dlg) {
|
||||||
return dlg.getAttribute('data-history') == 'true';
|
return dlg.getAttribute('data-history') === 'true';
|
||||||
}
|
}
|
||||||
|
|
||||||
function open(dlg) {
|
function open(dlg) {
|
||||||
|
@ -185,7 +186,7 @@
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
new dialogHashHandler(dlg, 'dlg' + new Date().getTime(), resolve);
|
new DialogHashHandler(dlg, 'dlg' + new Date().getTime(), resolve);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -212,7 +213,7 @@
|
||||||
{ transform: 'scale(0)', offset: 0 },
|
{ transform: 'scale(0)', offset: 0 },
|
||||||
{ transform: 'none', offset: 1 }];
|
{ transform: 'none', offset: 1 }];
|
||||||
var timing = elem.animationConfig.entry.timing;
|
var timing = elem.animationConfig.entry.timing;
|
||||||
return elem.animate(keyframes, timing).onfinish = onFinish;
|
elem.animate(keyframes, timing).onfinish = onFinish;
|
||||||
}
|
}
|
||||||
|
|
||||||
function slideUp(elem, onFinish) {
|
function slideUp(elem, onFinish) {
|
||||||
|
@ -221,7 +222,7 @@
|
||||||
{ transform: 'translate3d(0,30%,0)', opacity: 0, offset: 0 },
|
{ transform: 'translate3d(0,30%,0)', opacity: 0, offset: 0 },
|
||||||
{ transform: 'none', opacity: 1, offset: 1 }];
|
{ transform: 'none', opacity: 1, offset: 1 }];
|
||||||
var timing = elem.animationConfig.entry.timing;
|
var timing = elem.animationConfig.entry.timing;
|
||||||
return elem.animate(keyframes, timing).onfinish = onFinish;
|
elem.animate(keyframes, timing).onfinish = onFinish;
|
||||||
}
|
}
|
||||||
|
|
||||||
function fadeIn(elem, onFinish) {
|
function fadeIn(elem, onFinish) {
|
||||||
|
@ -230,7 +231,7 @@
|
||||||
{ opacity: '0', offset: 0 },
|
{ opacity: '0', offset: 0 },
|
||||||
{ opacity: '1', offset: 1 }];
|
{ opacity: '1', offset: 1 }];
|
||||||
var timing = elem.animationConfig.entry.timing;
|
var timing = elem.animationConfig.entry.timing;
|
||||||
return elem.animate(keyframes, timing).onfinish = onFinish;
|
elem.animate(keyframes, timing).onfinish = onFinish;
|
||||||
}
|
}
|
||||||
|
|
||||||
function scaleDown(elem) {
|
function scaleDown(elem) {
|
||||||
|
@ -289,11 +290,11 @@
|
||||||
|
|
||||||
var animation;
|
var animation;
|
||||||
|
|
||||||
if (dlg.animationConfig.exit.name == 'fadeout') {
|
if (dlg.animationConfig.exit.name === 'fadeout') {
|
||||||
animation = fadeOut(dlg);
|
animation = fadeOut(dlg);
|
||||||
} else if (dlg.animationConfig.exit.name == 'scaledown') {
|
} else if (dlg.animationConfig.exit.name === 'scaledown') {
|
||||||
animation = scaleDown(dlg);
|
animation = scaleDown(dlg);
|
||||||
} else if (dlg.animationConfig.exit.name == 'slidedown') {
|
} else if (dlg.animationConfig.exit.name === 'slidedown') {
|
||||||
animation = slideDown(dlg);
|
animation = slideDown(dlg);
|
||||||
} else {
|
} else {
|
||||||
onAnimationFinish();
|
onAnimationFinish();
|
||||||
|
@ -308,7 +309,7 @@
|
||||||
|
|
||||||
var onAnimationFinish = function () {
|
var onAnimationFinish = function () {
|
||||||
focusManager.pushScope(dlg);
|
focusManager.pushScope(dlg);
|
||||||
if (dlg.getAttribute('data-autofocus') == 'true') {
|
if (dlg.getAttribute('data-autofocus') === 'true') {
|
||||||
focusManager.autoFocus(dlg);
|
focusManager.autoFocus(dlg);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -317,11 +318,11 @@
|
||||||
onAnimationFinish();
|
onAnimationFinish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (dlg.animationConfig.entry.name == 'fadein') {
|
if (dlg.animationConfig.entry.name === 'fadein') {
|
||||||
fadeIn(dlg, onAnimationFinish);
|
fadeIn(dlg, onAnimationFinish);
|
||||||
} else if (dlg.animationConfig.entry.name == 'scaleup') {
|
} else if (dlg.animationConfig.entry.name === 'scaleup') {
|
||||||
scaleUp(dlg, onAnimationFinish);
|
scaleUp(dlg, onAnimationFinish);
|
||||||
} else if (dlg.animationConfig.entry.name == 'slideup') {
|
} else if (dlg.animationConfig.entry.name === 'slideup') {
|
||||||
slideUp(dlg, onAnimationFinish);
|
slideUp(dlg, onAnimationFinish);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -332,7 +333,7 @@
|
||||||
return options.lockScroll;
|
return options.lockScroll;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.size == 'fullscreen') {
|
if (options.size === 'fullscreen') {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
define([], function () {
|
define([], function () {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
function parentWithAttribute(elem, name, value) {
|
function parentWithAttribute(elem, name, value) {
|
||||||
|
|
||||||
while ((value ? elem.getAttribute(name) != value : !elem.getAttribute(name))) {
|
while ((value ? elem.getAttribute(name) !== value : !elem.getAttribute(name))) {
|
||||||
elem = elem.parentNode;
|
elem = elem.parentNode;
|
||||||
|
|
||||||
if (!elem || !elem.getAttribute) {
|
if (!elem || !elem.getAttribute) {
|
||||||
|
@ -20,7 +21,7 @@ define([], function () {
|
||||||
tagNames = [tagNames];
|
tagNames = [tagNames];
|
||||||
}
|
}
|
||||||
|
|
||||||
while (tagNames.indexOf(elem.tagName || '') == -1) {
|
while (tagNames.indexOf(elem.tagName || '') === -1) {
|
||||||
elem = elem.parentNode;
|
elem = elem.parentNode;
|
||||||
|
|
||||||
if (!elem) {
|
if (!elem) {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
define(['browser', 'dom', 'css!./emby-button', 'registerElement'], function (browser, dom) {
|
define(['browser', 'dom', 'css!./emby-button', 'registerElement'], function (browser, dom) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
var EmbyButtonPrototype = Object.create(HTMLButtonElement.prototype);
|
var EmbyButtonPrototype = Object.create(HTMLButtonElement.prototype);
|
||||||
|
|
||||||
|
@ -40,14 +41,14 @@
|
||||||
|
|
||||||
function onKeyDown(e) {
|
function onKeyDown(e) {
|
||||||
|
|
||||||
if (e.keyCode == 13) {
|
if (e.keyCode === 13) {
|
||||||
animateButton.call(this, e);
|
animateButton.call(this, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function onMouseDown(e) {
|
function onMouseDown(e) {
|
||||||
|
|
||||||
if (e.button == 0) {
|
if (e.button === 0) {
|
||||||
animateButton.call(this, e);
|
animateButton.call(this, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
define(['browser', 'dom', 'css!./emby-button', 'registerElement'], function (browser, dom) {
|
define(['browser', 'dom', 'css!./emby-button', 'registerElement'], function (browser, dom) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
var EmbyButtonPrototype = Object.create(HTMLButtonElement.prototype);
|
var EmbyButtonPrototype = Object.create(HTMLButtonElement.prototype);
|
||||||
|
|
||||||
|
@ -43,7 +44,7 @@
|
||||||
|
|
||||||
function onKeyDown(e) {
|
function onKeyDown(e) {
|
||||||
|
|
||||||
if (e.keyCode == 13) {
|
if (e.keyCode === 13) {
|
||||||
animateButton.call(this, e);
|
animateButton.call(this, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
define(['css!./emby-checkbox', 'registerElement'], function () {
|
define(['css!./emby-checkbox', 'registerElement'], function () {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
var EmbyCheckboxPrototype = Object.create(HTMLInputElement.prototype);
|
var EmbyCheckboxPrototype = Object.create(HTMLInputElement.prototype);
|
||||||
|
|
||||||
function onKeyDown(e) {
|
function onKeyDown(e) {
|
||||||
|
|
||||||
// Don't submit form on enter
|
// Don't submit form on enter
|
||||||
if (e.keyCode == 13) {
|
if (e.keyCode === 13) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
this.checked = !this.checked;
|
this.checked = !this.checked;
|
||||||
|
@ -20,7 +21,7 @@
|
||||||
|
|
||||||
EmbyCheckboxPrototype.attachedCallback = function () {
|
EmbyCheckboxPrototype.attachedCallback = function () {
|
||||||
|
|
||||||
if (this.getAttribute('data-embycheckbox') == 'true') {
|
if (this.getAttribute('data-embycheckbox') === 'true') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -241,7 +241,9 @@
|
||||||
if (browser.touch) {
|
if (browser.touch) {
|
||||||
this.addEventListener('contextmenu', disableEvent);
|
this.addEventListener('contextmenu', disableEvent);
|
||||||
} else {
|
} else {
|
||||||
this.addEventListener('contextmenu', onContextMenu);
|
if (this.getAttribute('data-contextmenu') !== 'false') {
|
||||||
|
this.addEventListener('contextmenu', onContextMenu);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (layoutManager.desktop) {
|
if (layoutManager.desktop) {
|
||||||
|
|
|
@ -346,6 +346,41 @@
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getTimerIndicator(item) {
|
||||||
|
|
||||||
|
var status;
|
||||||
|
|
||||||
|
if (item.Type == 'SeriesTimer') {
|
||||||
|
return '<i class="md-icon programIcon seriesTimerIcon"></i>';
|
||||||
|
}
|
||||||
|
else if (item.TimerId) {
|
||||||
|
|
||||||
|
status = item.TimerStatus;
|
||||||
|
}
|
||||||
|
else if (item.Type == 'Timer') {
|
||||||
|
|
||||||
|
status = item.Status;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item.SeriesTimerId) {
|
||||||
|
|
||||||
|
if (status != 'Cancelled' && status != 'Aborted') {
|
||||||
|
return '<i class="md-icon programIcon seriesTimerIcon"></i>';
|
||||||
|
}
|
||||||
|
|
||||||
|
return '<i class="md-icon programIcon seriesTimerIcon seriesTimerIcon-inactive"></i>';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isActive) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
return '<i class="md-icon programIcon"></i>';
|
||||||
|
}
|
||||||
|
|
||||||
function getChannelProgramsHtml(context, date, channel, programs, options) {
|
function getChannelProgramsHtml(context, date, channel, programs, options) {
|
||||||
|
|
||||||
var html = '';
|
var html = '';
|
||||||
|
@ -477,16 +512,7 @@
|
||||||
html += '<i class="guideHdIcon md-icon programIcon">hd</i>';
|
html += '<i class="guideHdIcon md-icon programIcon">hd</i>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (program.SeriesTimerId) {
|
html += getTimerIndicator(program);
|
||||||
if (program.TimerId) {
|
|
||||||
html += '<i class="seriesTimerIcon md-icon programIcon"></i>';
|
|
||||||
} else {
|
|
||||||
html += '<i class="seriesTimerIcon seriesTimerIcon-inactive md-icon programIcon"></i>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (program.TimerId) {
|
|
||||||
html += '<i class="timerIcon md-icon programIcon"></i>';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (accentCssClass) {
|
if (accentCssClass) {
|
||||||
html += '<div class="programAccent ' + accentCssClass + '"></div>';
|
html += '<div class="programAccent ' + accentCssClass + '"></div>';
|
||||||
|
|
|
@ -98,18 +98,37 @@ define(['css!./indicators.css', 'material-icons'], function () {
|
||||||
|
|
||||||
function getTimerIndicator(item) {
|
function getTimerIndicator(item) {
|
||||||
|
|
||||||
if (item.SeriesTimerId || item.Type == 'SeriesTimer') {
|
var status;
|
||||||
if (item.TimerId || item.Type == 'Timer' || item.Type == 'SeriesTimer') {
|
|
||||||
return '<i class="md-icon timerIndicator indicatorIcon"></i>';
|
if (item.Type == 'SeriesTimer') {
|
||||||
} else {
|
return '<i class="md-icon timerIndicator indicatorIcon"></i>';
|
||||||
return '<i class="md-icon timerIndicator timerIndicator-inactive indicatorIcon"></i>';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (item.TimerId || item.Type == 'Timer') {
|
else if (item.TimerId) {
|
||||||
return '<i class="md-icon timerIndicator indicatorIcon"></i>';
|
|
||||||
|
status = item.TimerStatus;
|
||||||
|
}
|
||||||
|
else if (item.Type == 'Timer') {
|
||||||
|
|
||||||
|
status = item.Status;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
return '';
|
if (item.SeriesTimerId) {
|
||||||
|
|
||||||
|
if (status != 'Cancelled' && status != 'Aborted') {
|
||||||
|
return '<i class="md-icon timerIndicator indicatorIcon"></i>';
|
||||||
|
}
|
||||||
|
|
||||||
|
return '<i class="md-icon timerIndicator timerIndicator-inactive indicatorIcon"></i>';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isActive) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
return '<i class="md-icon timerIndicator indicatorIcon"></i>';
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSyncIndicator(item) {
|
function getSyncIndicator(item) {
|
||||||
|
|
|
@ -8,6 +8,10 @@ define(['apphost'], function (appHost) {
|
||||||
|
|
||||||
options = options || {};
|
options = options || {};
|
||||||
|
|
||||||
|
if (item.Type == 'Timer') {
|
||||||
|
item = item.ProgramInfo || item;
|
||||||
|
}
|
||||||
|
|
||||||
var name = (item.Type == 'Program' && item.IsSeries ? item.EpisodeTitle : item.Name) || '';
|
var name = (item.Type == 'Program' && item.IsSeries ? item.EpisodeTitle : item.Name) || '';
|
||||||
|
|
||||||
if (item.Type == "TvChannel") {
|
if (item.Type == "TvChannel") {
|
||||||
|
|
|
@ -19,11 +19,6 @@
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.listItem-nosidepadding {
|
|
||||||
padding-left: 0;
|
|
||||||
padding-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.listItem-largeImage {
|
.listItem-largeImage {
|
||||||
padding: .5em !important;
|
padding: .5em !important;
|
||||||
}
|
}
|
||||||
|
@ -59,8 +54,12 @@
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.listItemBody-noleftpadding {
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
.listItem-odd {
|
.listItem-odd {
|
||||||
background: #171717;
|
background: #1c1c1c;
|
||||||
}
|
}
|
||||||
|
|
||||||
.three-line {
|
.three-line {
|
||||||
|
@ -148,6 +147,7 @@
|
||||||
/* Don't display if flex not supported */
|
/* Don't display if flex not supported */
|
||||||
display: none;
|
display: none;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
margin-right: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.listGroupHeader {
|
.listGroupHeader {
|
||||||
|
|
|
@ -111,6 +111,12 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
|
||||||
|
|
||||||
for (var i = 0, length = textlines.length; i < length; i++) {
|
for (var i = 0, length = textlines.length; i < length; i++) {
|
||||||
|
|
||||||
|
var text = textlines[i];
|
||||||
|
|
||||||
|
if (!text) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (i === 0) {
|
if (i === 0) {
|
||||||
if (isLargeStyle) {
|
if (isLargeStyle) {
|
||||||
html += '<h2 class="listItemBodyText">';
|
html += '<h2 class="listItemBodyText">';
|
||||||
|
@ -143,7 +149,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
|
||||||
|
|
||||||
var clickEntireItem = layoutManager.tv ? true : false;
|
var clickEntireItem = layoutManager.tv ? true : false;
|
||||||
var outerTagName = clickEntireItem ? 'button' : 'div';
|
var outerTagName = clickEntireItem ? 'button' : 'div';
|
||||||
var enableSideMediaInfo = options.enableSideMediaInfo != null ? options.enableSideMediaInfo : clickEntireItem;
|
var enableSideMediaInfo = options.enableSideMediaInfo != null ? options.enableSideMediaInfo : true;
|
||||||
|
|
||||||
var outerHtml = '';
|
var outerHtml = '';
|
||||||
|
|
||||||
|
@ -178,7 +184,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var cssClass = "listItem listItem-nosidepadding";
|
var cssClass = "listItem";
|
||||||
|
|
||||||
if (options.highlight !== false) {
|
if (options.highlight !== false) {
|
||||||
if (i % 2 == 1) {
|
if (i % 2 == 1) {
|
||||||
|
@ -285,29 +291,31 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
|
||||||
parentTitle += ' - ' + displayName;
|
parentTitle += ' - ' + displayName;
|
||||||
}
|
}
|
||||||
|
|
||||||
textlines.push(parentTitle || ' ');
|
textlines.push(parentTitle || '');
|
||||||
}
|
}
|
||||||
else if (options.showParentTitle) {
|
else if (options.showParentTitle) {
|
||||||
textlines.push(parentTitle || ' ');
|
textlines.push(parentTitle || '');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (displayName && !options.parentTitleWithTitle) {
|
if (displayName && !options.parentTitleWithTitle) {
|
||||||
textlines.push(displayName);
|
textlines.push(displayName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.ArtistItems && item.Type != 'MusicAlbum') {
|
if (options.artist !== false) {
|
||||||
textlines.push(item.ArtistItems.map(function (a) {
|
if (item.ArtistItems && item.Type != 'MusicAlbum') {
|
||||||
return a.Name;
|
textlines.push(item.ArtistItems.map(function (a) {
|
||||||
|
return a.Name;
|
||||||
|
|
||||||
}).join(', ') || ' ');
|
}).join(', '));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.AlbumArtist && item.Type == 'MusicAlbum') {
|
if (item.AlbumArtist && item.Type == 'MusicAlbum') {
|
||||||
textlines.push(item.AlbumArtist || ' ');
|
textlines.push(item.AlbumArtist);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.Type == 'Game') {
|
if (item.Type == 'Game') {
|
||||||
textlines.push(item.GameSystem || ' ');
|
textlines.push(item.GameSystem);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.Type == 'TvChannel') {
|
if (item.Type == 'TvChannel') {
|
||||||
|
@ -317,11 +325,15 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cssClass = 'listItemBody two-line';
|
cssClass = 'listItemBody';
|
||||||
if (!clickEntireItem) {
|
if (!clickEntireItem) {
|
||||||
cssClass += ' itemAction';
|
cssClass += ' itemAction';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (options.image === false) {
|
||||||
|
cssClass += ' itemAction listItemBody-noleftpadding';
|
||||||
|
}
|
||||||
|
|
||||||
html += '<div class="' + cssClass + '">';
|
html += '<div class="' + cssClass + '">';
|
||||||
|
|
||||||
var moreIcon = appHost.moreIcon == 'dots-horiz' ? '' : '';
|
var moreIcon = appHost.moreIcon == 'dots-horiz' ? '' : '';
|
||||||
|
@ -360,12 +372,21 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!options.recordButton && (item.Type == 'Timer' || item.Type == 'Program')) {
|
||||||
|
html += indicators.getTimerIndicator(item).replace('indicatorIcon', 'indicatorIcon listItemAside');
|
||||||
|
}
|
||||||
|
|
||||||
if (!clickEntireItem) {
|
if (!clickEntireItem) {
|
||||||
|
|
||||||
if (options.moreButton !== false) {
|
if (options.moreButton !== false) {
|
||||||
html += '<button is="paper-icon-button-light" class="listItemButton itemAction autoSize" data-action="menu"><i class="md-icon">' + moreIcon + '</i></button>';
|
html += '<button is="paper-icon-button-light" class="listItemButton itemAction autoSize" data-action="menu"><i class="md-icon">' + moreIcon + '</i></button>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (options.recordButton) {
|
||||||
|
|
||||||
|
html += '<button is="paper-icon-button-light" class="listItemButton itemAction autoSize" data-action="programdialog">' + indicators.getTimerIndicator(item) + '</button>';
|
||||||
|
}
|
||||||
|
|
||||||
if (options.enableUserDataButtons !== false) {
|
if (options.enableUserDataButtons !== false) {
|
||||||
html += '<span class="listViewUserDataButtons">';
|
html += '<span class="listViewUserDataButtons">';
|
||||||
html += userdataButtons.getIconsHtml({
|
html += userdataButtons.getIconsHtml({
|
||||||
|
|
|
@ -1,5 +1,40 @@
|
||||||
define(['datetime', 'globalize', 'embyRouter', 'itemHelper', 'material-icons', 'css!./mediainfo.css', 'programStyles'], function (datetime, globalize, embyRouter, itemHelper) {
|
define(['datetime', 'globalize', 'embyRouter', 'itemHelper', 'material-icons', 'css!./mediainfo.css', 'programStyles'], function (datetime, globalize, embyRouter, itemHelper) {
|
||||||
|
|
||||||
|
function getTimerIndicator(item) {
|
||||||
|
|
||||||
|
var status;
|
||||||
|
|
||||||
|
if (item.Type == 'SeriesTimer') {
|
||||||
|
return '<i class="md-icon mediaInfoItem mediaInfoIconItem mediaInfoTimerIcon"></i>';
|
||||||
|
}
|
||||||
|
else if (item.TimerId) {
|
||||||
|
|
||||||
|
status = item.TimerStatus;
|
||||||
|
}
|
||||||
|
else if (item.Type == 'Timer') {
|
||||||
|
|
||||||
|
status = item.Status;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item.SeriesTimerId) {
|
||||||
|
|
||||||
|
if (status != 'Cancelled' && status != 'Aborted') {
|
||||||
|
return '<i class="md-icon mediaInfoItem mediaInfoIconItem mediaInfoTimerIcon"></i>';
|
||||||
|
}
|
||||||
|
|
||||||
|
return '<i class="md-icon mediaInfoItem mediaInfoIconItem"></i>';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isActive) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
return '<i class="md-icon mediaInfoItem mediaInfoIconItem mediaInfoTimerIcon"></i>';
|
||||||
|
}
|
||||||
|
|
||||||
function getProgramInfoHtml(item, options) {
|
function getProgramInfoHtml(item, options) {
|
||||||
var html = '';
|
var html = '';
|
||||||
|
|
||||||
|
@ -41,20 +76,10 @@ define(['datetime', 'globalize', 'embyRouter', 'itemHelper', 'material-icons', '
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.timerIndicator !== false) {
|
if (options.timerIndicator !== false) {
|
||||||
if (item.SeriesTimerId || item.Type == 'SeriesTimer') {
|
var timerHtml = getTimerIndicator(item);
|
||||||
if (item.TimerId || item.Type == 'Timer' || item.Type == 'SeriesTimer') {
|
if (timerHtml) {
|
||||||
miscInfo.push({
|
|
||||||
html: '<i class="md-icon mediaInfoItem mediaInfoTimerIcon mediaInfoIconItem"></i>'
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
miscInfo.push({
|
|
||||||
html: '<i class="md-icon mediaInfoItem mediaInfoIconItem"></i>'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (item.TimerId) {
|
|
||||||
miscInfo.push({
|
miscInfo.push({
|
||||||
html: '<i class="md-icon mediaInfoItem mediaInfoTimerIcon mediaInfoIconItem"></i>'
|
html: timerHtml
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -206,20 +231,22 @@ define(['datetime', 'globalize', 'embyRouter', 'itemHelper', 'material-icons', '
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.Type != "Series" && item.Type != "Episode" && item.Type != "Person" && item.MediaType != 'Photo' && item.Type != 'Program') {
|
if (options.year !== false) {
|
||||||
|
if (item.Type != "Series" && item.Type != "Episode" && item.Type != "Person" && item.MediaType != 'Photo' && item.Type != 'Program') {
|
||||||
|
|
||||||
if (item.ProductionYear) {
|
if (item.ProductionYear) {
|
||||||
|
|
||||||
miscInfo.push(item.ProductionYear);
|
miscInfo.push(item.ProductionYear);
|
||||||
}
|
|
||||||
else if (item.PremiereDate) {
|
|
||||||
|
|
||||||
try {
|
|
||||||
text = datetime.parseISO8601Date(item.PremiereDate).getFullYear();
|
|
||||||
miscInfo.push(text);
|
|
||||||
}
|
}
|
||||||
catch (e) {
|
else if (item.PremiereDate) {
|
||||||
console.log("Error parsing date: " + item.PremiereDate);
|
|
||||||
|
try {
|
||||||
|
text = datetime.parseISO8601Date(item.PremiereDate).getFullYear();
|
||||||
|
miscInfo.push(text);
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
console.log("Error parsing date: " + item.PremiereDate);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,7 +117,7 @@
|
||||||
parent.querySelector('.seriesRecordingButton .buttonText').innerHTML = globalize.translate('sharedcomponents#RecordSeries');
|
parent.querySelector('.seriesRecordingButton .buttonText').innerHTML = globalize.translate('sharedcomponents#RecordSeries');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (program.TimerId) {
|
if (program.TimerId && program.TimerStatus != 'Cancelled') {
|
||||||
parent.querySelector('.btnManageRecording').classList.remove('visibilityHide');
|
parent.querySelector('.btnManageRecording').classList.remove('visibilityHide');
|
||||||
parent.querySelector('.singleRecordingButton .recordingIcon').classList.add('recordingIcon-active');
|
parent.querySelector('.singleRecordingButton .recordingIcon').classList.add('recordingIcon-active');
|
||||||
parent.querySelector('.singleRecordingButton .buttonText').innerHTML = globalize.translate('sharedcomponents#DoNotRecord');
|
parent.querySelector('.singleRecordingButton .buttonText').innerHTML = globalize.translate('sharedcomponents#DoNotRecord');
|
||||||
|
@ -138,6 +138,7 @@
|
||||||
return apiClient.getLiveTvProgram(options.programId, apiClient.getCurrentUserId()).then(function (program) {
|
return apiClient.getLiveTvProgram(options.programId, apiClient.getCurrentUserId()).then(function (program) {
|
||||||
|
|
||||||
instance.TimerId = program.TimerId;
|
instance.TimerId = program.TimerId;
|
||||||
|
instance.TimerStatus = program.TimerStatus;
|
||||||
instance.SeriesTimerId = program.SeriesTimerId;
|
instance.SeriesTimerId = program.SeriesTimerId;
|
||||||
|
|
||||||
loadData(options.parent, program, apiClient);
|
loadData(options.parent, program, apiClient);
|
||||||
|
@ -161,7 +162,7 @@
|
||||||
|
|
||||||
var options = this.options;
|
var options = this.options;
|
||||||
|
|
||||||
if (!this.TimerId) {
|
if (!this.TimerId || this.TimerStatus == 'Cancelled') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -212,8 +213,10 @@
|
||||||
var button = dom.parentWithTag(e.target, 'BUTTON');
|
var button = dom.parentWithTag(e.target, 'BUTTON');
|
||||||
var isChecked = !button.querySelector('i').classList.contains('recordingIcon-active');
|
var isChecked = !button.querySelector('i').classList.contains('recordingIcon-active');
|
||||||
|
|
||||||
|
var hasEnabledTimer = this.TimerId && this.TimerStatus != 'Cancelled';
|
||||||
|
|
||||||
if (isChecked) {
|
if (isChecked) {
|
||||||
if (!this.TimerId) {
|
if (!hasEnabledTimer) {
|
||||||
loading.show();
|
loading.show();
|
||||||
recordingHelper.createRecording(apiClient, options.programId, false).then(function () {
|
recordingHelper.createRecording(apiClient, options.programId, false).then(function () {
|
||||||
events.trigger(self, 'recordingchanged');
|
events.trigger(self, 'recordingchanged');
|
||||||
|
@ -222,7 +225,7 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (this.TimerId) {
|
if (hasEnabledTimer) {
|
||||||
loading.show();
|
loading.show();
|
||||||
recordingHelper.cancelTimer(apiClient, this.TimerId, true).then(function () {
|
recordingHelper.cancelTimer(apiClient, this.TimerId, true).then(function () {
|
||||||
events.trigger(self, 'recordingchanged');
|
events.trigger(self, 'recordingchanged');
|
||||||
|
|
|
@ -59,16 +59,18 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleRecording(serverId, programId, timerId, seriesTimerId) {
|
function toggleRecording(serverId, programId, timerId, timerStatus, seriesTimerId) {
|
||||||
|
|
||||||
var apiClient = connectionManager.getApiClient(serverId);
|
var apiClient = connectionManager.getApiClient(serverId);
|
||||||
|
|
||||||
if (seriesTimerId && timerId) {
|
var hasTimer = timerId && timerStatus != 'Cancelled';
|
||||||
|
|
||||||
|
if (seriesTimerId && hasTimer) {
|
||||||
|
|
||||||
// cancel
|
// cancel
|
||||||
return cancelTimer(apiClient, timerId, true);
|
return cancelTimer(apiClient, timerId, true);
|
||||||
|
|
||||||
} else if (timerId && programId) {
|
} else if (hasTimer && programId) {
|
||||||
|
|
||||||
// change to series recording, if possible
|
// change to series recording, if possible
|
||||||
// otherwise cancel individual recording
|
// otherwise cancel individual recording
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
define(['connectionManager', 'globalize', 'dom', 'paper-icon-button-light', 'material-icons', 'emby-button', 'css!./userdatabuttons'], function (connectionManager, globalize, dom) {
|
define(['connectionManager', 'globalize', 'dom', 'paper-icon-button-light', 'material-icons', 'emby-button', 'css!./userdatabuttons'], function (connectionManager, globalize, dom) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
var userDataMethods = {
|
var userDataMethods = {
|
||||||
markPlayed: markPlayed,
|
markPlayed: markPlayed,
|
||||||
|
@ -9,13 +10,13 @@ define(['connectionManager', 'globalize', 'dom', 'paper-icon-button-light', 'mat
|
||||||
|
|
||||||
function getUserDataButtonHtml(method, itemId, buttonCssClass, iconCssClass, icon, tooltip, style) {
|
function getUserDataButtonHtml(method, itemId, buttonCssClass, iconCssClass, icon, tooltip, style) {
|
||||||
|
|
||||||
if (style == 'fab-mini') {
|
if (style === 'fab-mini') {
|
||||||
style = 'fab';
|
style = 'fab';
|
||||||
buttonCssClass = buttonCssClass ? (buttonCssClass + ' mini') : 'mini';
|
buttonCssClass = buttonCssClass ? (buttonCssClass + ' mini') : 'mini';
|
||||||
}
|
}
|
||||||
|
|
||||||
var is = style == 'fab' ? 'emby-button' : 'paper-icon-button-light';
|
var is = style === 'fab' ? 'emby-button' : 'paper-icon-button-light';
|
||||||
var className = style == 'fab' ? 'autoSize fab' : 'autoSize';
|
var className = style === 'fab' ? 'autoSize fab' : 'autoSize';
|
||||||
|
|
||||||
if (buttonCssClass) {
|
if (buttonCssClass) {
|
||||||
className += ' ' + buttonCssClass;
|
className += ' ' + buttonCssClass;
|
||||||
|
@ -29,9 +30,7 @@ define(['connectionManager', 'globalize', 'dom', 'paper-icon-button-light', 'mat
|
||||||
|
|
||||||
iconCssClass += 'md-icon';
|
iconCssClass += 'md-icon';
|
||||||
|
|
||||||
return '<button title="' + tooltip + '" data-itemid="' + itemId + '" is="' + is + '" data-method="' + method + '" class="' + className + '">\
|
return '<button title="' + tooltip + '" data-itemid="' + itemId + '" is="' + is + '" data-method="' + method + '" class="' + className + '"><i class="'+ iconCssClass + '">' + icon + '</i></button>';
|
||||||
<i class="'+ iconCssClass + '">' + icon + '</i>\
|
|
||||||
</button>';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function onContainerClick(e) {
|
function onContainerClick(e) {
|
||||||
|
@ -50,7 +49,7 @@ define(['connectionManager', 'globalize', 'dom', 'paper-icon-button-light', 'mat
|
||||||
|
|
||||||
var html = getIconsHtml(options);
|
var html = getIconsHtml(options);
|
||||||
|
|
||||||
if (options.fillMode == 'insertAdjacent') {
|
if (options.fillMode === 'insertAdjacent') {
|
||||||
options.element.insertAdjacentHTML(options.insertLocation || 'beforeend', html);
|
options.element.insertAdjacentHTML(options.insertLocation || 'beforeend', html);
|
||||||
} else {
|
} else {
|
||||||
options.element.innerHTML = html;
|
options.element.innerHTML = html;
|
||||||
|
@ -98,8 +97,8 @@ define(['connectionManager', 'globalize', 'dom', 'paper-icon-button-light', 'mat
|
||||||
if (includePlayed !== false) {
|
if (includePlayed !== false) {
|
||||||
var tooltipPlayed = globalize.translate('sharedcomponents#MarkPlayed');
|
var tooltipPlayed = globalize.translate('sharedcomponents#MarkPlayed');
|
||||||
|
|
||||||
if (item.MediaType == 'Video' || item.Type == 'Series' || item.Type == 'Season' || item.Type == 'BoxSet' || item.Type == 'Playlist') {
|
if (item.MediaType === 'Video' || item.Type === 'Series' || item.Type === 'Season' || item.Type === 'BoxSet' || item.Type === 'Playlist') {
|
||||||
if (item.Type != 'TvChannel') {
|
if (item.Type !== 'TvChannel') {
|
||||||
if (userData.Played) {
|
if (userData.Played) {
|
||||||
html += getUserDataButtonHtml('markPlayed', itemId, btnCssClass + ' btnUserDataOn', iconCssClass, 'check', tooltipPlayed, style);
|
html += getUserDataButtonHtml('markPlayed', itemId, btnCssClass + ' btnUserDataOn', iconCssClass, 'check', tooltipPlayed, style);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
define(['userSettingsBuilder'], function (userSettingsBuilder) {
|
define(['userSettingsBuilder'], function (userSettingsBuilder) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
return new userSettingsBuilder();
|
return new userSettingsBuilder();
|
||||||
});
|
});
|
|
@ -1,4 +1,5 @@
|
||||||
define(['appSettings', 'events', 'browser'], function (appsettings, events, browser) {
|
define(['appSettings', 'events', 'browser'], function (appsettings, events, browser) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
return function () {
|
return function () {
|
||||||
|
|
||||||
|
@ -50,7 +51,7 @@ define(['appSettings', 'events', 'browser'], function (appsettings, events, brow
|
||||||
saveServerPreferences();
|
saveServerPreferences();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentValue != value) {
|
if (currentValue !== value) {
|
||||||
events.trigger(self, 'change', [name]);
|
events.trigger(self, 'change', [name]);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -79,7 +80,7 @@ define(['appSettings', 'events', 'browser'], function (appsettings, events, brow
|
||||||
val = self.get('enableCinemaMode', false);
|
val = self.get('enableCinemaMode', false);
|
||||||
|
|
||||||
if (val) {
|
if (val) {
|
||||||
return val != 'false';
|
return val !== 'false';
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -94,7 +95,7 @@ define(['appSettings', 'events', 'browser'], function (appsettings, events, brow
|
||||||
val = self.get('enableThemeSongs', false);
|
val = self.get('enableThemeSongs', false);
|
||||||
|
|
||||||
if (val) {
|
if (val) {
|
||||||
return val != 'false';
|
return val !== 'false';
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -109,7 +110,7 @@ define(['appSettings', 'events', 'browser'], function (appsettings, events, brow
|
||||||
val = self.get('enableThemeVideos', false);
|
val = self.get('enableThemeVideos', false);
|
||||||
|
|
||||||
if (val) {
|
if (val) {
|
||||||
return val != 'false';
|
return val !== 'false';
|
||||||
}
|
}
|
||||||
|
|
||||||
return !browser.slow;
|
return !browser.slow;
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
define(['browser', 'css!./viewcontainer-lite'], function (browser) {
|
define(['browser', 'css!./viewcontainer-lite'], function (browser) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
var mainAnimatedPages = document.querySelector('.mainAnimatedPages');
|
var mainAnimatedPages = document.querySelector('.mainAnimatedPages');
|
||||||
var allPages = [];
|
var allPages = [];
|
||||||
|
@ -32,7 +33,7 @@ define(['browser', 'css!./viewcontainer-lite'], function (browser) {
|
||||||
cancelActiveAnimations();
|
cancelActiveAnimations();
|
||||||
|
|
||||||
var selected = selectedPageIndex;
|
var selected = selectedPageIndex;
|
||||||
var previousAnimatable = selected == -1 ? null : allPages[selected];
|
var previousAnimatable = selected === -1 ? null : allPages[selected];
|
||||||
var pageIndex = selected + 1;
|
var pageIndex = selected + 1;
|
||||||
|
|
||||||
if (pageIndex >= pageContainerCount) {
|
if (pageIndex >= pageContainerCount) {
|
||||||
|
@ -81,7 +82,7 @@ define(['browser', 'css!./viewcontainer-lite'], function (browser) {
|
||||||
|
|
||||||
function beforeAnimate(allPages, newPageIndex, oldPageIndex) {
|
function beforeAnimate(allPages, newPageIndex, oldPageIndex) {
|
||||||
for (var i = 0, length = allPages.length; i < length; i++) {
|
for (var i = 0, length = allPages.length; i < length; i++) {
|
||||||
if (newPageIndex == i || oldPageIndex == i) {
|
if (newPageIndex === i || oldPageIndex === i) {
|
||||||
//allPages[i].classList.remove('hide');
|
//allPages[i].classList.remove('hide');
|
||||||
} else {
|
} else {
|
||||||
allPages[i].classList.add('hide');
|
allPages[i].classList.add('hide');
|
||||||
|
@ -91,7 +92,7 @@ define(['browser', 'css!./viewcontainer-lite'], function (browser) {
|
||||||
|
|
||||||
function afterAnimate(allPages, newPageIndex) {
|
function afterAnimate(allPages, newPageIndex) {
|
||||||
for (var i = 0, length = allPages.length; i < length; i++) {
|
for (var i = 0, length = allPages.length; i < length; i++) {
|
||||||
if (newPageIndex == i) {
|
if (newPageIndex === i) {
|
||||||
//allPages[i].classList.remove('hide');
|
//allPages[i].classList.remove('hide');
|
||||||
} else {
|
} else {
|
||||||
allPages[i].classList.add('hide');
|
allPages[i].classList.add('hide');
|
||||||
|
@ -102,9 +103,9 @@ define(['browser', 'css!./viewcontainer-lite'], function (browser) {
|
||||||
function animate(newAnimatedPage, oldAnimatedPage, transition, isBack) {
|
function animate(newAnimatedPage, oldAnimatedPage, transition, isBack) {
|
||||||
|
|
||||||
if (enableAnimation() && oldAnimatedPage && newAnimatedPage.animate) {
|
if (enableAnimation() && oldAnimatedPage && newAnimatedPage.animate) {
|
||||||
if (transition == 'slide') {
|
if (transition === 'slide') {
|
||||||
return slide(newAnimatedPage, oldAnimatedPage, transition, isBack);
|
return slide(newAnimatedPage, oldAnimatedPage, transition, isBack);
|
||||||
} else if (transition == 'fade') {
|
} else if (transition === 'fade') {
|
||||||
return fade(newAnimatedPage, oldAnimatedPage, transition, isBack);
|
return fade(newAnimatedPage, oldAnimatedPage, transition, isBack);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -120,7 +121,7 @@ define(['browser', 'css!./viewcontainer-lite'], function (browser) {
|
||||||
iterations: 1,
|
iterations: 1,
|
||||||
easing: 'ease-out',
|
easing: 'ease-out',
|
||||||
fill: 'both'
|
fill: 'both'
|
||||||
}
|
};
|
||||||
|
|
||||||
var animations = [];
|
var animations = [];
|
||||||
|
|
||||||
|
@ -158,7 +159,7 @@ define(['browser', 'css!./viewcontainer-lite'], function (browser) {
|
||||||
iterations: 1,
|
iterations: 1,
|
||||||
easing: 'ease-out',
|
easing: 'ease-out',
|
||||||
fill: 'both'
|
fill: 'both'
|
||||||
}
|
};
|
||||||
|
|
||||||
var animations = [];
|
var animations = [];
|
||||||
|
|
||||||
|
@ -212,7 +213,7 @@ define(['browser', 'css!./viewcontainer-lite'], function (browser) {
|
||||||
var url = options.url;
|
var url = options.url;
|
||||||
var index = currentUrls.indexOf(url);
|
var index = currentUrls.indexOf(url);
|
||||||
|
|
||||||
if (index != -1) {
|
if (index !== -1) {
|
||||||
|
|
||||||
var animatable = allPages[index];
|
var animatable = allPages[index];
|
||||||
var view = animatable;
|
var view = animatable;
|
||||||
|
@ -226,7 +227,7 @@ define(['browser', 'css!./viewcontainer-lite'], function (browser) {
|
||||||
cancelActiveAnimations();
|
cancelActiveAnimations();
|
||||||
|
|
||||||
var selected = selectedPageIndex;
|
var selected = selectedPageIndex;
|
||||||
var previousAnimatable = selected == -1 ? null : allPages[selected];
|
var previousAnimatable = selected === -1 ? null : allPages[selected];
|
||||||
|
|
||||||
if (onBeforeChange) {
|
if (onBeforeChange) {
|
||||||
onBeforeChange(view, true, options);
|
onBeforeChange(view, true, options);
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
define(['viewcontainer', 'focusManager', 'queryString', 'layoutManager'], function (viewcontainer, focusManager, queryString, layoutManager) {
|
define(['viewcontainer', 'focusManager', 'queryString', 'layoutManager'], function (viewcontainer, focusManager, queryString, layoutManager) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
var currentView;
|
var currentView;
|
||||||
var dispatchPageEvents;
|
var dispatchPageEvents;
|
||||||
|
@ -94,7 +95,7 @@ define(['viewcontainer', 'focusManager', 'queryString', 'layoutManager'], functi
|
||||||
var url = options.url;
|
var url = options.url;
|
||||||
var state = options.state;
|
var state = options.state;
|
||||||
var index = url.indexOf('?');
|
var index = url.indexOf('?');
|
||||||
var params = index == -1 ? {} : queryString.parse(url.substring(index + 1));
|
var params = index === -1 ? {} : queryString.parse(url.substring(index + 1));
|
||||||
|
|
||||||
return {
|
return {
|
||||||
detail: {
|
detail: {
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
<div style="text-align: center;display:flex; align-items: center; flex-wrap: wrap; justify-content: center;margin: 0 0 1em 0;">
|
<div style="text-align: center;display:flex; align-items: center; flex-wrap: wrap; justify-content: center;margin: 0 0 1em 0;">
|
||||||
<div style="margin: 0;">
|
<div style="margin: 0;">
|
||||||
<label for="selectImageProvider" style="display: inline-block;">${LabelSource}</label>
|
<label for="selectImageProvider" style="display: inline-block;">${LabelSource}</label>
|
||||||
<select id="selectImageProvider" style="padding-left:.5em;padding-right:0;display: inline-block;width:auto!important;color: #fff;">
|
<select id="selectImageProvider" style="padding-left:.5em;padding-right:0;display: inline-block;width:auto!important;">
|
||||||
<option value="">${OptionAll}</option>
|
<option value="">${OptionAll}</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-left:1em;">
|
<div style="margin-left:1em;">
|
||||||
<label for="selectBrowsableImageType" style="display: inline-block;">${LabelImage}</label>
|
<label for="selectBrowsableImageType" style="display: inline-block;">${LabelImage}</label>
|
||||||
<select id="selectBrowsableImageType" style="padding-left:.5em;padding-right:0;display: inline-block;width:auto!important;color: #fff;">
|
<select id="selectBrowsableImageType" style="padding-left:.5em;padding-right:0;display: inline-block;width:auto!important;">
|
||||||
<option value="Primary">${OptionPrimary}</option>
|
<option value="Primary">${OptionPrimary}</option>
|
||||||
<option value="Art">${OptionArt}</option>
|
<option value="Art">${OptionArt}</option>
|
||||||
<option value="Backdrop">${OptionBackdrop}</option>
|
<option value="Backdrop">${OptionBackdrop}</option>
|
||||||
|
|
|
@ -1,4 +1,83 @@
|
||||||
/* Tabs (e.g. advanced metadata page) */
|
.dashboardFooter {
|
||||||
|
margin-top: 50px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dashboardFooter a {
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0 .7em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dashboardFooter .appLinks a {
|
||||||
|
margin: .25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dashboardFooter .appLinks img {
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Gradient Shadow
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* All HTML5 progress enabled browsers */
|
||||||
|
progress {
|
||||||
|
/* Turns off styling - not usually needed, but good to know. */
|
||||||
|
appearance: none;
|
||||||
|
-moz-appearance: none;
|
||||||
|
-webkit-appearance: none;
|
||||||
|
/* gets rid of default border in Firefox and Opera. */
|
||||||
|
border: solid #cccccc 2px;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Polyfill */
|
||||||
|
progress[role]:after {
|
||||||
|
background-image: none; /* removes default background from polyfill */
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Background of the progress bar background
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Firefox and Polyfill */
|
||||||
|
progress {
|
||||||
|
background: #cccccc !important; /* !important only needed in polyfill */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Chrome */
|
||||||
|
progress::-webkit-progress-bar {
|
||||||
|
background: #cccccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Background of the progress bar value
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Firefox */
|
||||||
|
progress::-moz-progress-bar {
|
||||||
|
border-radius: 5px;
|
||||||
|
background-image: -moz-linear-gradient( center bottom, rgb(43,194,83) 37%, rgb(84,240,84) 69% );
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Chrome */
|
||||||
|
progress::-webkit-progress-value {
|
||||||
|
border-radius: 5px;
|
||||||
|
background-image: -webkit-gradient( linear, left bottom, left top, color-stop(0, rgb(43,194,83)), color-stop(1, rgb(84,240,84)) );
|
||||||
|
background-image: -webkit-linear-gradient( center bottom, rgb(43,194,83) 37%, rgb(84,240,84) 69% );
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Polyfill */
|
||||||
|
progress[aria-valuenow]:before {
|
||||||
|
border-radius: 5px;
|
||||||
|
background-image: -moz-linear-gradient( center bottom, rgb(43,194,83) 37%, rgb(84,240,84) 69% );
|
||||||
|
background-image: -ms-linear-gradient( center bottom, rgb(43,194,83) 37%, rgb(84,240,84) 69% );
|
||||||
|
background-image: -o-linear-gradient( center bottom, rgb(43,194,83) 37%, rgb(84,240,84) 69% );
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Tabs (e.g. advanced metadata page) */
|
||||||
.localnav {
|
.localnav {
|
||||||
margin-bottom: 30px !important;
|
margin-bottom: 30px !important;
|
||||||
}
|
}
|
||||||
|
@ -362,10 +441,10 @@ a[data-role='button'], .type-interior button:not([data-role='none']):not(.clearB
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.header .imageLink img {
|
.header .imageLink img {
|
||||||
height: 28px;
|
height: 28px;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ulForm {
|
.ulForm {
|
||||||
margin: -1em !important;
|
margin: -1em !important;
|
||||||
|
|
|
@ -8,13 +8,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.background-theme-b .backgroundContainer, .dialog.background-theme-b {
|
.background-theme-b .backgroundContainer, .dialog.background-theme-b {
|
||||||
background-color: #121314;
|
background-color: #161616;
|
||||||
/*background: radial-gradient(circle, #282828, #141414);*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.background-theme-b .backgroundContainer.withBackdrop {
|
.background-theme-b .backgroundContainer.withBackdrop {
|
||||||
background-color: rgba(6, 6,6, .9);
|
background-color: rgba(6, 6,6, .9);
|
||||||
/*background: radial-gradient(circle, #282828, #141414);*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.ui-body-b {
|
.ui-body-b {
|
||||||
|
|
|
@ -127,7 +127,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.ui-body-b .libraryViewNav {
|
.ui-body-b .libraryViewNav {
|
||||||
box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),1px 5px 1px rgba(0,0,0,.12);
|
|
||||||
position: fixed;
|
position: fixed;
|
||||||
right: 0;
|
right: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
|
@ -156,7 +155,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.dashboardDocument .viewMenuBar {
|
.dashboardDocument .viewMenuBar {
|
||||||
background-color: #333;
|
|
||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,10 +166,6 @@
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dashboardDocument .viewMenuBar #selectionBar {
|
|
||||||
height: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.viewMenuBarTabs {
|
.viewMenuBarTabs {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,11 +78,6 @@ body {
|
||||||
background-color: transparent !important;
|
background-color: transparent !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Undo this from jqm which may cause the page to have it's own scrollbar */
|
|
||||||
.ui-mobile .ui-page-active {
|
|
||||||
overflow-x: visible;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bodyWithPopupOpen {
|
.bodyWithPopupOpen {
|
||||||
overflow-y: hidden !important;
|
overflow-y: hidden !important;
|
||||||
}
|
}
|
||||||
|
@ -170,11 +165,6 @@ input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='r
|
||||||
border-color: #ccc!important;
|
border-color: #ccc!important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ui-body-b select option {
|
|
||||||
background: #333;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ui-body-a .secondaryText {
|
.ui-body-a .secondaryText {
|
||||||
color: #ccc;
|
color: #ccc;
|
||||||
}
|
}
|
||||||
|
@ -227,10 +217,6 @@ div[data-role='page'] {
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ui-popup-container {
|
|
||||||
z-index: 99999;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media all and (max-height: 800px) {
|
@media all and (max-height: 800px) {
|
||||||
|
|
||||||
.header {
|
.header {
|
||||||
|
@ -261,7 +247,7 @@ div[data-role='page'] {
|
||||||
}
|
}
|
||||||
|
|
||||||
.background-theme-a .backgroundContainer {
|
.background-theme-a .backgroundContainer {
|
||||||
background-color: #f5f5f5;
|
background-color: #f6f6f6;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dialog.background-theme-a {
|
.dialog.background-theme-a {
|
||||||
|
@ -340,113 +326,6 @@ div[data-role='page'] {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Gradient Shadow
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* All HTML5 progress enabled browsers */
|
|
||||||
progress {
|
|
||||||
/* Turns off styling - not usually needed, but good to know. */
|
|
||||||
appearance: none;
|
|
||||||
-moz-appearance: none;
|
|
||||||
-webkit-appearance: none;
|
|
||||||
/* gets rid of default border in Firefox and Opera. */
|
|
||||||
border: solid #cccccc 2px;
|
|
||||||
border-radius: 4px;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Polyfill */
|
|
||||||
progress[role]:after {
|
|
||||||
background-image: none; /* removes default background from polyfill */
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Background of the progress bar background
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Firefox and Polyfill */
|
|
||||||
progress {
|
|
||||||
background: #cccccc !important; /* !important only needed in polyfill */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Chrome */
|
|
||||||
progress::-webkit-progress-bar {
|
|
||||||
background: #cccccc;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Background of the progress bar value
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Firefox */
|
|
||||||
progress::-moz-progress-bar {
|
|
||||||
border-radius: 5px;
|
|
||||||
background-image: -moz-linear-gradient( center bottom, rgb(43,194,83) 37%, rgb(84,240,84) 69% );
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Chrome */
|
|
||||||
progress::-webkit-progress-value {
|
|
||||||
border-radius: 5px;
|
|
||||||
background-image: -webkit-gradient( linear, left bottom, left top, color-stop(0, rgb(43,194,83)), color-stop(1, rgb(84,240,84)) );
|
|
||||||
background-image: -webkit-linear-gradient( center bottom, rgb(43,194,83) 37%, rgb(84,240,84) 69% );
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Polyfill */
|
|
||||||
progress[aria-valuenow]:before {
|
|
||||||
border-radius: 5px;
|
|
||||||
background-image: -moz-linear-gradient( center bottom, rgb(43,194,83) 37%, rgb(84,240,84) 69% );
|
|
||||||
background-image: -ms-linear-gradient( center bottom, rgb(43,194,83) 37%, rgb(84,240,84) 69% );
|
|
||||||
background-image: -o-linear-gradient( center bottom, rgb(43,194,83) 37%, rgb(84,240,84) 69% );
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Detail Page*/
|
|
||||||
|
|
||||||
.btnUserItemRating {
|
|
||||||
vertical-align: middle;
|
|
||||||
color: #aaa !important;
|
|
||||||
display: inline-block !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btnUserItemRatingOn {
|
|
||||||
color: #cc3333 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.imgUserItemRating {
|
|
||||||
height: 16px;
|
|
||||||
width: 16px;
|
|
||||||
margin-right: .75em;
|
|
||||||
cursor: pointer;
|
|
||||||
vertical-align: top;
|
|
||||||
}
|
|
||||||
|
|
||||||
.imgUserItemRating:last-child {
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.imgUserItemRating:hover {
|
|
||||||
opacity: .5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dashboardFooter {
|
|
||||||
margin-top: 50px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dashboardFooter a {
|
|
||||||
text-decoration: none;
|
|
||||||
font-weight: normal;
|
|
||||||
margin: 0 .7em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dashboardFooter .appLinks a {
|
|
||||||
margin: .25em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dashboardFooter .appLinks img {
|
|
||||||
height: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.supporterPromotionContainer {
|
.supporterPromotionContainer {
|
||||||
margin: 0 0 2em;
|
margin: 0 0 2em;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,11 +20,11 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h1 style="margin-top:0;">${HeaderSchedule}</h1>
|
<h1 style="margin-top:0;">${HeaderSchedule}</h1>
|
||||||
<div style="display:flex;align-items:center;margin:1em 0;">
|
<div style="display:flex;align-items:center;margin:1em 0;justify-content:flex-end;">
|
||||||
<i class="md-icon" style="color:#cc3333;font-size:1.5em;"></i>
|
<i class="md-icon" style="color:#cc3333;font-size:1.5em;"></i>
|
||||||
<div style="margin-left:.25em;">${WillRecord}</div>
|
<div style="margin-left:.3em;">${WillRecord}</div>
|
||||||
<i class="md-icon" style="color:gray;font-size:1.5em;margin-left: 1.5em;"></i>
|
<i class="md-icon" style="color:gray;font-size:1.5em;margin-left: 1em;"></i>
|
||||||
<div style="margin-left:.25em;">${NotScheduledToRecord}</div>
|
<div style="margin-left:.3em;">${NotScheduledToRecord}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="scheduleTab seriesTimerSchedule">
|
<div class="scheduleTab seriesTimerSchedule">
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -29,6 +29,11 @@
|
||||||
|
|
||||||
appSettings.cameraUploadServers(cameraUploadServers);
|
appSettings.cameraUploadServers(cameraUploadServers);
|
||||||
|
|
||||||
|
if (window.MainActivity) {
|
||||||
|
// TODO: isolate into android app
|
||||||
|
MainActivity.authorizeStorage();
|
||||||
|
}
|
||||||
|
|
||||||
Dashboard.hideLoadingMsg();
|
Dashboard.hideLoadingMsg();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1113,7 +1113,8 @@
|
||||||
showIndexNumber: true,
|
showIndexNumber: true,
|
||||||
playFromHere: true,
|
playFromHere: true,
|
||||||
action: 'playallfromhere',
|
action: 'playallfromhere',
|
||||||
lazy: true
|
image: false,
|
||||||
|
artist: false
|
||||||
});
|
});
|
||||||
isList = true;
|
isList = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,8 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
upcomingRecordingsPromise = ApiClient.getLiveTvTimers({
|
upcomingRecordingsPromise = ApiClient.getLiveTvTimers({
|
||||||
IsActive: false
|
IsActive: false,
|
||||||
|
IsScheduled: true
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
options = options || {};
|
options = options || {};
|
||||||
|
|
||||||
var html = '';
|
var html = '';
|
||||||
html += '<div is="emby-itemscontainer" class="itemsContainer vertical-list">';
|
html += '<div is="emby-itemscontainer" class="itemsContainer vertical-list" data-contextmenu="false">';
|
||||||
html += listView.getListViewHtml({
|
html += listView.getListViewHtml({
|
||||||
items: items,
|
items: items,
|
||||||
enableUserDataButtons: false,
|
enableUserDataButtons: false,
|
||||||
|
@ -22,7 +22,8 @@
|
||||||
showProgramDateTime: true,
|
showProgramDateTime: true,
|
||||||
mediaInfo: false,
|
mediaInfo: false,
|
||||||
action: 'none',
|
action: 'none',
|
||||||
moreButton: false
|
moreButton: false,
|
||||||
|
recordButton: false
|
||||||
});
|
});
|
||||||
|
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
@ -32,7 +33,7 @@
|
||||||
|
|
||||||
function renderSchedule(page) {
|
function renderSchedule(page) {
|
||||||
|
|
||||||
ApiClient.getLiveTvPrograms({
|
ApiClient.getLiveTvTimers({
|
||||||
UserId: ApiClient.getCurrentUserId(),
|
UserId: ApiClient.getCurrentUserId(),
|
||||||
ImageTypeLimit: 1,
|
ImageTypeLimit: 1,
|
||||||
EnableImageTypes: "Primary,Backdrop,Thumb",
|
EnableImageTypes: "Primary,Backdrop,Thumb",
|
||||||
|
@ -40,8 +41,7 @@
|
||||||
EnableTotalRecordCount: false,
|
EnableTotalRecordCount: false,
|
||||||
EnableUserData: false,
|
EnableUserData: false,
|
||||||
SeriesTimerId: params.id,
|
SeriesTimerId: params.id,
|
||||||
Fields: "ChannelInfo",
|
Fields: "ChannelInfo"
|
||||||
limit: 100
|
|
||||||
|
|
||||||
}).then(function (result) {
|
}).then(function (result) {
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
/* "page" containers - full-screen views, one should always be in view post-pageload */
|
.ui-popup-container {
|
||||||
|
z-index: 99999;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* "page" containers - full-screen views, one should always be in view post-pageload */
|
||||||
.ui-mobile [data-role=dialog] {
|
.ui-mobile [data-role=dialog] {
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue