Merge pull request #1957 from MediaBrowser/dev

Dev
This commit is contained in:
Luke 2016-07-18 23:59:02 -04:00 committed by GitHub
commit 683853da7b
35 changed files with 275 additions and 365 deletions

View file

@ -15,12 +15,12 @@
}, },
"devDependencies": {}, "devDependencies": {},
"ignore": [], "ignore": [],
"version": "1.4.98", "version": "1.4.101",
"_release": "1.4.98", "_release": "1.4.101",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "1.4.98", "tag": "1.4.101",
"commit": "6e0ce46f8c48908f94a7f32e95fee78b994c16f5" "commit": "c6aa6b09f9c705ca83e31728ebbf0c4a2cda2454"
}, },
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
"_target": "^1.2.0", "_target": "^1.2.0",

View file

@ -1,17 +1,4 @@
define(['dialogHelper', 'layoutManager', 'globalize', 'browser', 'emby-button', 'css!./actionsheet', 'material-icons', 'scrollStyles'], function (dialogHelper, layoutManager, globalize, browser) { define(['dialogHelper', 'layoutManager', 'globalize', 'browser', 'dom', 'emby-button', 'css!./actionsheet', 'material-icons', 'scrollStyles'], function (dialogHelper, layoutManager, globalize, browser, dom) {
function parentWithClass(elem, className) {
while (!elem.classList || !elem.classList.contains(className)) {
elem = elem.parentNode;
if (!elem) {
return null;
}
}
return elem;
}
function getOffsets(elems) { function getOffsets(elems) {
@ -221,7 +208,7 @@
dlg.addEventListener('click', function (e) { dlg.addEventListener('click', function (e) {
var actionSheetMenuItem = parentWithClass(e.target, 'actionSheetMenuItem'); var actionSheetMenuItem = dom.parentWithClass(e.target, 'actionSheetMenuItem');
if (actionSheetMenuItem) { if (actionSheetMenuItem) {
selectedId = actionSheetMenuItem.getAttribute('data-id'); selectedId = actionSheetMenuItem.getAttribute('data-id');

View file

@ -1,4 +1,4 @@
define(['historyManager', 'focusManager', 'browser', 'layoutManager', 'inputManager', 'scrollHelper', 'css!./dialoghelper.css', 'scrollStyles'], function (historyManager, focusManager, browser, layoutManager, inputManager, scrollHelper) { define(['historyManager', 'focusManager', 'browser', 'layoutManager', 'inputManager', 'scrollHelper', 'dom', 'css!./dialoghelper.css', 'scrollStyles'], function (historyManager, focusManager, browser, layoutManager, inputManager, scrollHelper, dom) {
var globalOnOpenCallback; var globalOnOpenCallback;
@ -128,19 +128,6 @@
} }
} }
function parentWithTag(elem, tagName) {
while (elem.tagName != tagName) {
elem = elem.parentNode;
if (!elem) {
return null;
}
}
return elem;
}
function closeOnBackdropClick(dlg) { function closeOnBackdropClick(dlg) {
dlg.addEventListener('click', function (event) { dlg.addEventListener('click', function (event) {
@ -149,7 +136,7 @@
&& rect.left <= event.clientX && event.clientX <= (rect.left + rect.width)); && rect.left <= event.clientX && event.clientX <= (rect.left + rect.width));
if (!isInDialog) { if (!isInDialog) {
if (parentWithTag(event.target, 'SELECT')) { if (dom.parentWithTag(event.target, 'SELECT')) {
isInDialog = true; isInDialog = true;
} }
} }

View file

@ -0,0 +1,47 @@
define([], function () {
function parentWithAttribute(elem, name, value) {
while ((value ? elem.getAttribute(name) != value : !elem.getAttribute(name))) {
elem = elem.parentNode;
if (!elem || !elem.getAttribute) {
return null;
}
}
return elem;
}
function parentWithTag(elem, tagName) {
while (elem.tagName != tagName) {
elem = elem.parentNode;
if (!elem) {
return null;
}
}
return elem;
}
function parentWithClass(elem, className) {
while (!elem.classList || !elem.classList.contains(className)) {
elem = elem.parentNode;
if (!elem) {
return null;
}
}
return elem;
}
return {
parentWithAttribute: parentWithAttribute,
parentWithClass: parentWithClass,
parentWithTag: parentWithTag
};
});

View file

@ -1,26 +1,21 @@
define(['itemShortcuts', 'connectionManager', 'layoutManager', 'browser', 'registerElement'], function (itemShortcuts, connectionManager, layoutManager, browser) { define(['itemShortcuts', 'connectionManager', 'layoutManager', 'browser', 'dom', 'registerElement'], function (itemShortcuts, connectionManager, layoutManager, browser, dom) {
var ItemsContainerProtoType = Object.create(HTMLDivElement.prototype); var ItemsContainerProtoType = Object.create(HTMLDivElement.prototype);
function parentWithAttribute(elem, name) {
while (!elem.getAttribute(name)) {
elem = elem.parentNode;
if (!elem || !elem.getAttribute) {
return null;
}
}
return elem;
}
function onClick(e) { function onClick(e) {
var itemsContainer = this; var itemsContainer = this;
var target = e.target; var target = e.target;
itemShortcuts.onClick.call(this, e); var multiSelect = itemsContainer.multiSelect;
if (multiSelect) {
if (multiSelect.onContainerClick.call(itemsContainer, e) === false) {
return;
}
}
itemShortcuts.onClick.call(itemsContainer, e);
} }
function disableEvent(e) { function disableEvent(e) {
@ -35,7 +30,7 @@
var itemsContainer = this; var itemsContainer = this;
var target = e.target; var target = e.target;
var card = parentWithAttribute(target, 'data-id'); var card = dom.parentWithAttribute(target, 'data-id');
if (card) { if (card) {
@ -99,7 +94,10 @@
var self = this; var self = this;
require(['multiSelect'], function (MultiSelect) { require(['multiSelect'], function (MultiSelect) {
self.multiSelect = new MultiSelect(self); self.multiSelect = new MultiSelect({
container: self,
bindOnClick: false
});
}); });
}; };

View file

@ -1,4 +1,4 @@
define([], function () { define(['dom'], function (dom) {
function autoFocus(view, defaultToFirst) { function autoFocus(view, defaultToFirst) {
@ -194,7 +194,7 @@ define([], function () {
return; return;
} }
var focusableContainer = parentWithClass(activeElement, 'focusable'); var focusableContainer = dom.parentWithClass(activeElement, 'focusable');
var doc = activeElement.ownerDocument; var doc = activeElement.ownerDocument;
var windowData = getWindowData(doc.defaultView, doc.documentElement); var windowData = getWindowData(doc.defaultView, doc.documentElement);
@ -273,9 +273,9 @@ define([], function () {
var nearestElement = nearest[0].node; var nearestElement = nearest[0].node;
// See if there's a focusable container, and if so, send the focus command to that // See if there's a focusable container, and if so, send the focus command to that
var nearestElementFocusableParent = parentWithClass(nearestElement, 'focusable'); var nearestElementFocusableParent = dom.parentWithClass(nearestElement, 'focusable');
if (nearestElementFocusableParent && nearestElementFocusableParent != nearestElement && activeElement) { if (nearestElementFocusableParent && nearestElementFocusableParent != nearestElement && activeElement) {
if (parentWithClass(activeElement, 'focusable') != nearestElementFocusableParent) { if (dom.parentWithClass(activeElement, 'focusable') != nearestElementFocusableParent) {
nearestElement = nearestElementFocusableParent; nearestElement = nearestElementFocusableParent;
} }
} }
@ -283,19 +283,6 @@ define([], function () {
} }
} }
function parentWithClass(elem, className) {
while (!elem.classList || !elem.classList.contains(className)) {
elem = elem.parentNode;
if (!elem) {
return null;
}
}
return elem;
}
function intersectsInternal(a1, a2, b1, b2) { function intersectsInternal(a1, a2, b1, b2) {
return (b1 >= a1 && b1 <= a2) || (b2 >= a1 && b2 <= a2); return (b1 >= a1 && b1 <= a2) || (b2 >= a1 && b2 <= a2);

View file

@ -443,6 +443,9 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter',
getResolveFunction(resolve, id, true)(); getResolveFunction(resolve, id, true)();
}); });
break;
case 'canceltimer':
deleteTimer(itemId, parentWithClass(card, 'itemsContainer'));
break; break;
default: default:
reject(); reject();
@ -455,13 +458,20 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter',
var method = queue ? 'queue' : 'play'; var method = queue ? 'queue' : 'play';
var startPosition = 0;
if (resume && item.UserData && item.UserData.PlaybackPositionTicks) {
startPosition = item.UserData.PlaybackPositionTicks;
}
if (item.Type == 'Program') { if (item.Type == 'Program') {
playbackManager[method]({ playbackManager[method]({
ids: [item.ChannelId] ids: [item.ChannelId],
startPositionTicks: startPosition
}); });
} else { } else {
playbackManager[method]({ playbackManager[method]({
items: [item] items: [item],
startPositionTicks: startPosition
}); });
} }
} }

View file

@ -1,21 +1,8 @@
define(['connectionManager', 'itemHelper', 'mediaInfo', 'userdataButtons', 'playbackManager', 'globalize', 'css!./itemhovermenu', 'emby-button'], function (connectionManager, itemHelper, mediaInfo, userdataButtons, playbackManager, globalize) { define(['connectionManager', 'itemHelper', 'mediaInfo', 'userdataButtons', 'playbackManager', 'globalize', 'dom', 'css!./itemhovermenu', 'emby-button'], function (connectionManager, itemHelper, mediaInfo, userdataButtons, playbackManager, globalize, dom) {
var preventHover = false; var preventHover = false;
var showOverlayTimeout; var showOverlayTimeout;
function parentWithAttribute(elem, name) {
while (!elem.getAttribute(name)) {
elem = elem.parentNode;
if (!elem || !elem.getAttribute) {
return null;
}
}
return elem;
}
function onHoverOut(e) { function onHoverOut(e) {
var elem = e.target; var elem = e.target;
@ -164,18 +151,6 @@
return html; return html;
} }
function parentWithClass(elem, className) {
while (!elem.classList || !elem.classList.contains(className)) {
elem = elem.parentNode;
if (!elem) {
return null;
}
}
return elem;
}
function onShowTimerExpired(elem) { function onShowTimerExpired(elem) {
@ -186,10 +161,16 @@
innerElem.classList.add('hide'); innerElem.classList.add('hide');
innerElem.classList.add('cardOverlayTarget'); innerElem.classList.add('cardOverlayTarget');
elem.parentNode.appendChild(innerElem); var appendTo;
if (elem.classList.contains('cardImageContainer')) {
appendTo = dom.parentWithClass(elem, 'cardBox');
} else {
appendTo = elem.parentNode;
}
appendTo.appendChild(innerElem);
} }
var dataElement = parentWithAttribute(elem, 'data-id'); var dataElement = dom.parentWithAttribute(elem, 'data-id');
var id = dataElement.getAttribute('data-id'); var id = dataElement.getAttribute('data-id');
var type = dataElement.getAttribute('data-type'); var type = dataElement.getAttribute('data-type');
@ -218,7 +199,7 @@
function onHoverIn(e) { function onHoverIn(e) {
var elem = e.target; var elem = e.target;
var card = parentWithClass(elem, 'cardImageContainer') || parentWithClass(elem, 'cardImage'); var card = dom.parentWithClass(elem, 'cardImageContainer') || dom.parentWithClass(elem, 'cardImage');
if (!card) { if (!card) {
return; return;

View file

@ -169,7 +169,9 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
var playlistItemId = item.PlaylistItemId ? (' data-playlistitemid="' + item.PlaylistItemId + '"') : ''; var playlistItemId = item.PlaylistItemId ? (' data-playlistitemid="' + item.PlaylistItemId + '"') : '';
html += '<' + outerTagName + ' class="' + cssClass + '" data-index="' + index + '"' + playlistItemId + ' data-action="' + action + '" data-isfolder="' + item.IsFolder + '" data-id="' + item.Id + '" data-serverid="' + item.ServerId + '" data-type="' + item.Type + '">'; var positionTicksData = item.UserData && item.UserData.PlaybackPositionTicks ? (' data-positionticks="' + item.UserData.PlaybackPositionTicks + '"') : '';
html += '<' + outerTagName + ' class="' + cssClass + '" data-index="' + index + '"' + playlistItemId + ' data-action="' + action + '" data-isfolder="' + item.IsFolder + '" data-id="' + item.Id + '" data-serverid="' + item.ServerId + '" data-mediatype="' + item.MediaType + '" data-type="' + item.Type + '"' + positionTicksData + '>';
if (!clickEntireItem && options.dragHandle) { if (!clickEntireItem && options.dragHandle) {
html += '<button is="paper-icon-button-light" class="listViewDragHandle autoSize"><i class="md-icon">&#xE25D;</i></button>'; html += '<button is="paper-icon-button-light" class="listViewDragHandle autoSize"><i class="md-icon">&#xE25D;</i></button>';

View file

@ -1,22 +1,9 @@
define(['browser', 'appStorage', 'apphost', 'loading', 'connectionManager', 'globalize', 'embyRouter', 'css!./multiselect'], function (browser, appStorage, appHost, loading, connectionManager, globalize, embyRouter) { define(['browser', 'appStorage', 'apphost', 'loading', 'connectionManager', 'globalize', 'embyRouter', 'dom', 'css!./multiselect'], function (browser, appStorage, appHost, loading, connectionManager, globalize, embyRouter, dom) {
var selectedItems = []; var selectedItems = [];
var selectedElements = []; var selectedElements = [];
var currentSelectionCommandsPanel; var currentSelectionCommandsPanel;
function parentWithClass(elem, className) {
while (!elem.classList || !elem.classList.contains(className)) {
elem = elem.parentNode;
if (!elem) {
return null;
}
}
return elem;
}
function hideSelections() { function hideSelections() {
var selectionCommandsPanel = currentSelectionCommandsPanel; var selectionCommandsPanel = currentSelectionCommandsPanel;
@ -66,7 +53,7 @@
function onItemSelectionPanelClick(e, itemSelectionPanel) { function onItemSelectionPanelClick(e, itemSelectionPanel) {
// toggle the checkbox, if it wasn't clicked on // toggle the checkbox, if it wasn't clicked on
if (!parentWithClass(e.target, 'chkItemSelect')) { if (!dom.parentWithClass(e.target, 'chkItemSelect')) {
var chkItemSelect = itemSelectionPanel.querySelector('.chkItemSelect'); var chkItemSelect = itemSelectionPanel.querySelector('.chkItemSelect');
if (chkItemSelect) { if (chkItemSelect) {
@ -88,7 +75,7 @@
function updateItemSelection(chkItemSelect, selected) { function updateItemSelection(chkItemSelect, selected) {
var id = parentWithClass(chkItemSelect, 'card').getAttribute('data-id'); var id = dom.parentWithClass(chkItemSelect, 'card').getAttribute('data-id');
if (selected) { if (selected) {
@ -377,26 +364,13 @@
}); });
} }
function parentWithAttribute(elem, name, value) {
while ((value ? elem.getAttribute(name) != value : !elem.getAttribute(name))) {
elem = elem.parentNode;
if (!elem || !elem.getAttribute) {
return null;
}
}
return elem;
}
function dispatchNeedsRefresh() { function dispatchNeedsRefresh() {
var elems = []; var elems = [];
[].forEach.call(selectedElements, function (i) { [].forEach.call(selectedElements, function (i) {
var container = parentWithAttribute(i, 'is', 'emby-itemscontainer'); var container = dom.parentWithAttribute(i, 'is', 'emby-itemscontainer');
if (container && elems.indexOf(container) == -1) { if (container && elems.indexOf(container) == -1) {
elems.push(container); elems.push(container);
@ -466,7 +440,7 @@
if (selectedItems.length) { if (selectedItems.length) {
var card = parentWithClass(target, 'card'); var card = dom.parentWithClass(target, 'card');
if (card) { if (card) {
var itemSelectionPanel = card.querySelector('.itemSelectionPanel'); var itemSelectionPanel = card.querySelector('.itemSelectionPanel');
if (itemSelectionPanel) { if (itemSelectionPanel) {
@ -482,13 +456,15 @@
document.addEventListener('viewbeforehide', hideSelections); document.addEventListener('viewbeforehide', hideSelections);
return function (container) { return function (options) {
var self = this; var self = this;
var container = options.container;
function onTapHold(e) { function onTapHold(e) {
var card = parentWithClass(e.target, 'card'); var card = dom.parentWithClass(e.target, 'card');
if (card) { if (card) {
@ -531,7 +507,11 @@
initTapHold(container); initTapHold(container);
if (options.bindOnClick !== false) {
container.addEventListener('click', onContainerClick); container.addEventListener('click', onContainerClick);
}
self.onContainerClick = onContainerClick;
self.destroy = function () { self.destroy = function () {

View file

@ -1,4 +1,4 @@
define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'globalize', 'loading'], function (playbackManager, inputManager, connectionManager, embyRouter, globalize, loading) { define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'globalize', 'loading', 'dom'], function (playbackManager, inputManager, connectionManager, embyRouter, globalize, loading, dom) {
function playAllFromHere(card, serverId, queue) { function playAllFromHere(card, serverId, queue) {
@ -92,7 +92,7 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
function getItem(button) { function getItem(button) {
button = parentWithAttribute(button, 'data-id'); button = dom.parentWithAttribute(button, 'data-id');
var serverId = button.getAttribute('data-serverid'); var serverId = button.getAttribute('data-serverid');
var id = button.getAttribute('data-id'); var id = button.getAttribute('data-id');
var type = button.getAttribute('data-type'); var type = button.getAttribute('data-type');
@ -109,13 +109,13 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
getItem(card).then(function (item) { getItem(card).then(function (item) {
var itemsContainer = options.itemsContainer || parentWithAttribute(card, 'is', 'emby-itemscontainer'); var itemsContainer = options.itemsContainer || dom.parentWithAttribute(card, 'is', 'emby-itemscontainer');
var playlistId = itemsContainer ? itemsContainer.getAttribute('data-playlistid') : null; var playlistId = itemsContainer ? itemsContainer.getAttribute('data-playlistid') : null;
var collectionId = itemsContainer ? itemsContainer.getAttribute('data-collectionid') : null; var collectionId = itemsContainer ? itemsContainer.getAttribute('data-collectionid') : null;
if (playlistId) { if (playlistId) {
var elem = parentWithAttribute(card, 'data-playlistitemid'); var elem = dom.parentWithAttribute(card, 'data-playlistitemid');
item.PlaylistItemId = elem ? elem.getAttribute('data-playlistitemid') : null; item.PlaylistItemId = elem ? elem.getAttribute('data-playlistitemid') : null;
} }
@ -153,7 +153,16 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
function showPlayMenu(card, target) { function showPlayMenu(card, target) {
getItem(card).then(function (item) { var item = {
Type: card.getAttribute('data-type'),
Id: card.getAttribute('data-id'),
ServerId: card.getAttribute('data-serverid'),
MediaType: card.getAttribute('data-mediatype'),
IsFolder: card.getAttribute('data-isfolder') == 'true',
UserData: {
PlaybackPositionTicks: parseInt(card.getAttribute('data-positionticks') || '0')
}
};
require(['playMenu'], function (playMenu) { require(['playMenu'], function (playMenu) {
@ -163,7 +172,6 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
positionTo: target positionTo: target
}); });
}); });
});
} }
function executeAction(card, target, action) { function executeAction(card, target, action) {
@ -173,7 +181,7 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
var id = card.getAttribute('data-id'); var id = card.getAttribute('data-id');
if (!id) { if (!id) {
card = parentWithAttribute(card, 'data-id'); card = dom.parentWithAttribute(card, 'data-id');
id = card.getAttribute('data-id'); id = card.getAttribute('data-id');
} }
@ -196,7 +204,7 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
else if (action == 'play') { else if (action == 'play') {
var startPositionTicks = parseInt(card.getAttribute('data-startpositionticks') || '0'); var startPositionTicks = parseInt(card.getAttribute('data-positionticks') || '0');
playbackManager.play({ playbackManager.play({
ids: [id], ids: [id],
@ -363,7 +371,7 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
function onClick(e) { function onClick(e) {
var card = parentWithClass(e.target, 'itemAction'); var card = dom.parentWithClass(e.target, 'itemAction');
if (card) { if (card) {
@ -371,7 +379,7 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
var action = actionElement.getAttribute('data-action'); var action = actionElement.getAttribute('data-action');
if (!action) { if (!action) {
actionElement = parentWithAttribute(actionElement, 'data-action'); actionElement = dom.parentWithAttribute(actionElement, 'data-action');
action = actionElement.getAttribute('data-action'); action = actionElement.getAttribute('data-action');
} }
@ -385,37 +393,11 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
} }
} }
function parentWithAttribute(elem, name, value) {
while ((value ? elem.getAttribute(name) != value : !elem.getAttribute(name))) {
elem = elem.parentNode;
if (!elem || !elem.getAttribute) {
return null;
}
}
return elem;
}
function parentWithClass(elem, className) {
while (!elem.classList || !elem.classList.contains(className)) {
elem = elem.parentNode;
if (!elem) {
return null;
}
}
return elem;
}
function onCommand(e) { function onCommand(e) {
var cmd = e.detail.command; var cmd = e.detail.command;
if (cmd == 'play' || cmd == 'record' || cmd == 'menu' || cmd == 'info') { if (cmd == 'play' || cmd == 'record' || cmd == 'menu' || cmd == 'info') {
var card = parentWithClass(e.target, 'itemAction'); var card = dom.parentWithClass(e.target, 'itemAction');
if (card) { if (card) {
executeAction(card, card, cmd); executeAction(card, card, cmd);

View file

@ -120,5 +120,7 @@
"GroupVersions": "Group Versions", "GroupVersions": "Group Versions",
"PleaseSelectTwoItems": "Please select at least two items.", "PleaseSelectTwoItems": "Please select at least two items.",
"TheSelectedItemsWillBeGrouped": "The selected videos will be grouped into one virtual item. Emby apps will automatically choose which version to play based on device and network performance. Are you sure you wish to continue?", "TheSelectedItemsWillBeGrouped": "The selected videos will be grouped into one virtual item. Emby apps will automatically choose which version to play based on device and network performance. Are you sure you wish to continue?",
"TryMultiSelect": "Try Multi-Select",
"TryMultiSelectMessage": "To edit multiple media items, just click and hold any poster and select the items you want to manage. Try it!",
"Error": "Error" "Error": "Error"
} }

View file

@ -1,4 +1,4 @@
define(['dialogHelper', 'require', 'layoutManager', 'globalize', 'scrollHelper', 'appStorage', 'connectionManager', 'loading', 'focusManager', 'emby-select', 'listViewStyle', 'paper-icon-button-light', 'css!./../formdialog', 'material-icons', 'css!./subtitleeditor', 'emby-button'], function (dialogHelper, require, layoutManager, globalize, scrollHelper, appStorage, connectionManager, loading, focusManager) { define(['dialogHelper', 'require', 'layoutManager', 'globalize', 'scrollHelper', 'appStorage', 'connectionManager', 'loading', 'focusManager', 'dom', 'emby-select', 'listViewStyle', 'paper-icon-button-light', 'css!./../formdialog', 'material-icons', 'css!./subtitleeditor', 'emby-button'], function (dialogHelper, require, layoutManager, globalize, scrollHelper, appStorage, connectionManager, loading, focusManager, dom) {
var currentItem; var currentItem;
var hasChanges; var hasChanges;
@ -326,25 +326,12 @@
} }
} }
function parentWithClass(elem, className) {
while (!elem.classList || !elem.classList.contains(className)) {
elem = elem.parentNode;
if (!elem) {
return null;
}
}
return elem;
}
function onSearchSubmit(e) { function onSearchSubmit(e) {
var form = this; var form = this;
var lang = form.querySelector('#selectLanguage', form).value; var lang = form.querySelector('#selectLanguage', form).value;
searchForSubtitles(parentWithClass(form, 'dialogContent'), lang); searchForSubtitles(dom.parentWithClass(form, 'dialogContent'), lang);
e.preventDefault(); e.preventDefault();
return false; return false;
@ -352,20 +339,20 @@
function onSubtitleListClick(e) { function onSubtitleListClick(e) {
var btnDelete = parentWithClass(e.target, 'btnDelete'); var btnDelete = dom.parentWithClass(e.target, 'btnDelete');
if (btnDelete) { if (btnDelete) {
var index = btnDelete.getAttribute('data-index'); var index = btnDelete.getAttribute('data-index');
var context = parentWithClass(btnDelete, 'subtitleEditorDialog'); var context = dom.parentWithClass(btnDelete, 'subtitleEditorDialog');
deleteLocalSubtitle(context, index); deleteLocalSubtitle(context, index);
} }
} }
function onSubtitleResultsClick(e) { function onSubtitleResultsClick(e) {
var btnOptions = parentWithClass(e.target, 'btnOptions'); var btnOptions = dom.parentWithClass(e.target, 'btnOptions');
if (btnOptions) { if (btnOptions) {
var subtitleId = btnOptions.getAttribute('data-subid'); var subtitleId = btnOptions.getAttribute('data-subid');
var context = parentWithClass(btnOptions, 'subtitleEditorDialog'); var context = dom.parentWithClass(btnOptions, 'subtitleEditorDialog');
showDownloadOptions(btnOptions, context, subtitleId); showDownloadOptions(btnOptions, context, subtitleId);
} }
} }

View file

@ -46,7 +46,7 @@ define(['connectionManager', 'globalize', 'paper-icon-button-light', 'material-i
} }
if (includePlayed !== false) { if (includePlayed !== false) {
var tooltipPlayed = globalize.translate('sharedcomponents#Played'); 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') {

View file

@ -0,0 +1,48 @@
define(['itemHelper'], function (itemHelper) {
function initSyncButtons(view) {
var apiClient = window.ApiClient;
if (!apiClient || !apiClient.getCurrentUserId()) {
return;
}
apiClient.getCurrentUser().then(function (user) {
var item = {
SupportsSync: true
};
var categorySyncButtons = view.querySelectorAll('.categorySyncButton');
for (var i = 0, length = categorySyncButtons.length; i < length; i++) {
categorySyncButtons[i].addEventListener('click', onCategorySyncButtonClick);
if (itemHelper.canSync(user, item)) {
categorySyncButtons[i].classList.remove('hide');
} else {
categorySyncButtons[i].classList.add('hide');
}
}
});
}
function onCategorySyncButtonClick(e) {
var button = this;
var category = button.getAttribute('data-category');
var parentId = LibraryMenu.getTopParentId();
require(['syncDialog'], function (syncDialog) {
syncDialog.showMenu({
ParentId: parentId,
Category: category
});
});
}
return {
init: function (view) {
initSyncButtons(view);
}
};
});

View file

@ -1,4 +1,4 @@
define(['emby-itemscontainer'], function () { define(['components/categorysyncbuttons', 'emby-itemscontainer'], function (categorysyncbuttons) {
function getNextUpPromise() { function getNextUpPromise() {
@ -50,6 +50,8 @@
var self = this; var self = this;
var nextUpPromise; var nextUpPromise;
categorysyncbuttons.init(view);
self.preRender = function () { self.preRender = function () {
nextUpPromise = getNextUpPromise(); nextUpPromise = getNextUpPromise();
}; };

View file

@ -1,4 +1,4 @@
define(['layoutManager', 'datetime', 'mediaInfo', 'backdrop', 'listView', 'itemContextMenu', 'itemHelper', 'userdataButtons', 'scrollStyles', 'emby-itemscontainer'], function (layoutManager, datetime, mediaInfo, backdrop, listView, itemContextMenu, itemHelper, userdataButtons) { define(['layoutManager', 'datetime', 'mediaInfo', 'backdrop', 'listView', 'itemContextMenu', 'itemHelper', 'userdataButtons', 'dom', 'scrollStyles', 'emby-itemscontainer'], function (layoutManager, datetime, mediaInfo, backdrop, listView, itemContextMenu, itemHelper, userdataButtons, dom) {
var currentItem; var currentItem;
@ -2038,19 +2038,6 @@
window.ItemDetailPage = new itemDetailPage(); window.ItemDetailPage = new itemDetailPage();
function parentWithClass(elem, className) {
while (!elem.classList || !elem.classList.contains(className)) {
elem = elem.parentNode;
if (!elem) {
return null;
}
}
return elem;
}
function onPlayClick() { function onPlayClick() {
playCurrentItem(this); playCurrentItem(this);
} }
@ -2144,20 +2131,20 @@
view.addEventListener('click', function (e) { view.addEventListener('click', function (e) {
if (parentWithClass(e.target, 'moreScenes')) { if (dom.parentWithClass(e.target, 'moreScenes')) {
Dashboard.getCurrentUser().then(function (user) { Dashboard.getCurrentUser().then(function (user) {
renderScenes(view, currentItem, user); renderScenes(view, currentItem, user);
}); });
} }
else if (parentWithClass(e.target, 'morePeople')) { else if (dom.parentWithClass(e.target, 'morePeople')) {
renderCast(view, currentItem, params.context); renderCast(view, currentItem, params.context);
} }
else if (parentWithClass(e.target, 'moreSpecials')) { else if (dom.parentWithClass(e.target, 'moreSpecials')) {
Dashboard.getCurrentUser().then(function (user) { Dashboard.getCurrentUser().then(function (user) {
renderSpecials(view, currentItem, user); renderSpecials(view, currentItem, user);
}); });
} }
else if (parentWithClass(e.target, 'moreCriticReviews')) { else if (dom.parentWithClass(e.target, 'moreCriticReviews')) {
renderCriticReviews(view, currentItem); renderCriticReviews(view, currentItem);
} }
}); });
@ -2168,7 +2155,7 @@
}); });
view.querySelector('.detailImageContainer').addEventListener('click', function (e) { view.querySelector('.detailImageContainer').addEventListener('click', function (e) {
var itemDetailGalleryLink = parentWithClass(e.target, 'itemDetailGalleryLink'); var itemDetailGalleryLink = dom.parentWithClass(e.target, 'itemDetailGalleryLink');
if (itemDetailGalleryLink) { if (itemDetailGalleryLink) {
LibraryBrowser.editImages(currentItem.Id).then(function () { LibraryBrowser.editImages(currentItem.Id).then(function () {
reload(view, params); reload(view, params);

View file

@ -1,17 +1,4 @@
define(['scrollHelper', 'viewManager', 'appSettings', 'appStorage', 'apphost', 'datetime', 'itemHelper', 'mediaInfo', 'scroller', 'indicators', 'scrollStyles'], function (scrollHelper, viewManager, appSettings, appStorage, appHost, datetime, itemHelper, mediaInfo, scroller, indicators) { define(['scrollHelper', 'viewManager', 'appSettings', 'appStorage', 'apphost', 'datetime', 'itemHelper', 'mediaInfo', 'scroller', 'indicators', 'dom', 'scrollStyles'], function (scrollHelper, viewManager, appSettings, appStorage, appHost, datetime, itemHelper, mediaInfo, scroller, indicators, dom) {
function parentWithClass(elem, className) {
while (!elem.classList || !elem.classList.contains(className)) {
elem = elem.parentNode;
if (!elem) {
return null;
}
}
return elem;
}
function fadeInRight(elem) { function fadeInRight(elem) {
@ -267,7 +254,7 @@
tabs.addEventListener('click', function (e) { tabs.addEventListener('click', function (e) {
var current = tabs.querySelector('.is-active'); var current = tabs.querySelector('.is-active');
var link = parentWithClass(e.target, 'pageTabButton'); var link = dom.parentWithClass(e.target, 'pageTabButton');
if (link && link != current) { if (link && link != current) {

View file

@ -1,4 +1,4 @@
define(['libraryBrowser', 'itemHelper'], function (libraryBrowser, itemHelper) { define(['libraryBrowser'], function (libraryBrowser) {
function isClickable(target) { function isClickable(target) {
@ -56,62 +56,4 @@
e.preventDefault(); e.preventDefault();
return false; return false;
} }
function showSyncButtonsPerUser(page) {
var apiClient = window.ApiClient;
if (!apiClient || !apiClient.getCurrentUserId()) {
return;
}
Dashboard.getCurrentUser().then(function (user) {
var item = {
SupportsSync: true
};
var categorySyncButtons = page.querySelectorAll('.categorySyncButton');
for (var i = 0, length = categorySyncButtons.length; i < length; i++) {
if (itemHelper.canSync(user, item)) {
categorySyncButtons[i].classList.remove('hide');
} else {
categorySyncButtons[i].classList.add('hide');
}
}
});
}
function onCategorySyncButtonClick(e) {
var button = this;
var category = button.getAttribute('data-category');
var parentId = LibraryMenu.getTopParentId();
require(['syncDialog'], function (syncDialog) {
syncDialog.showMenu({
ParentId: parentId,
Category: category
});
});
}
pageClassOn('pageinit', "libraryPage", function () {
var page = this;
var categorySyncButtons = page.querySelectorAll('.categorySyncButton');
for (var i = 0, length = categorySyncButtons.length; i < length; i++) {
categorySyncButtons[i].addEventListener('click', onCategorySyncButtonClick);
}
});
pageClassOn('pageshow', "libraryPage", function () {
var page = this;
if (!Dashboard.isServerlessPage()) {
showSyncButtonsPerUser(page);
}
});
}); });

View file

@ -1,4 +1,4 @@
define(['imageLoader', 'layoutManager', 'viewManager', 'navdrawer', 'paper-icon-button-light', 'material-icons'], function (imageLoader, layoutManager, viewManager, navdrawer) { define(['imageLoader', 'layoutManager', 'viewManager', 'navdrawer', 'libraryBrowser', 'paper-icon-button-light', 'material-icons'], function (imageLoader, layoutManager, viewManager, navdrawer, libraryBrowser) {
var navDrawerElement = document.querySelector('.mainDrawer'); var navDrawerElement = document.querySelector('.mainDrawer');
var navDrawerScrollContainer = navDrawerElement.querySelector('.scrollContainer'); var navDrawerScrollContainer = navDrawerElement.querySelector('.scrollContainer');
@ -179,7 +179,7 @@
function onHeaderAppsButtonClick() { function onHeaderAppsButtonClick() {
require(['dialogHelper'], function (dialogHelper) { require(['dialogHelper', 'dom'], function (dialogHelper, dom) {
var dlg = dialogHelper.createDialog({ var dlg = dialogHelper.createDialog({
removeOnClose: true, removeOnClose: true,
@ -222,7 +222,7 @@
document.body.appendChild(dlg); document.body.appendChild(dlg);
dlg.addEventListener('click', function (e) { dlg.addEventListener('click', function (e) {
var link = parentWithTag(e.target, 'A'); var link = dom.parentWithTag(e.target, 'A');
if (link) { if (link) {
dialogHelper.close(dlg); dialogHelper.close(dlg);
} }
@ -275,7 +275,7 @@
function getItemHref(item, context) { function getItemHref(item, context) {
return LibraryBrowser.getHref(item, context); return libraryBrowser.getHref(item, context);
} }
var requiresUserRefresh = true; var requiresUserRefresh = true;
@ -391,19 +391,6 @@
} }
} }
function parentWithTag(elem, tagName) {
while (elem.tagName != tagName) {
elem = elem.parentNode;
if (!elem) {
return null;
}
}
return elem;
}
function updateDashboardMenuSelectedItem() { function updateDashboardMenuSelectedItem() {
var links = navDrawerScrollContainer.querySelectorAll('.sidebarLink'); var links = navDrawerScrollContainer.querySelectorAll('.sidebarLink');

View file

@ -1,4 +1,4 @@
define(['scripts/livetvcomponents', 'emby-button', 'listViewStyle', 'emby-itemscontainer'], function () { define(['components/categorysyncbuttons', 'scripts/livetvcomponents', 'emby-button', 'listViewStyle', 'emby-itemscontainer'], function (categorysyncbuttons) {
function getRecordingGroupHtml(group) { function getRecordingGroupHtml(group) {
@ -183,6 +183,8 @@
return function (view, params, tabContent) { return function (view, params, tabContent) {
var self = this; var self = this;
categorysyncbuttons.init(tabContent);
tabContent.querySelector('#activeRecordings .recordingItems').addEventListener('timercancelled', function () { tabContent.querySelector('#activeRecordings .recordingItems').addEventListener('timercancelled', function () {
reload(tabContent); reload(tabContent);
}); });

View file

@ -1,4 +1,4 @@
define([], function () { define(['libraryBrowser'], function (libraryBrowser) {
function getApiClient() { function getApiClient() {
@ -125,7 +125,7 @@
} }
else { else {
var background = LibraryBrowser.getMetroColor(user.Id); var background = libraryBrowser.getMetroColor(user.Id);
imgUrl = 'css/images/logindefault.png'; imgUrl = 'css/images/logindefault.png';

View file

@ -1,4 +1,4 @@
define([], function () { define(['libraryBrowser'], function (libraryBrowser) {
return function (view, params, tabContent) { return function (view, params, tabContent) {
@ -19,11 +19,11 @@
Fields: "DateCreated,SyncInfo,ItemCounts", Fields: "DateCreated,SyncInfo,ItemCounts",
StartIndex: 0 StartIndex: 0
}, },
view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Thumb', 'Thumb') view: libraryBrowser.getSavedView(key) || libraryBrowser.getDefaultItemsView('Thumb', 'Thumb')
}; };
pageData.query.ParentId = params.topParentId; pageData.query.ParentId = params.topParentId;
LibraryBrowser.loadSavedQueryValues(key, pageData.query); libraryBrowser.loadSavedQueryValues(key, pageData.query);
} }
return pageData; return pageData;
} }
@ -35,7 +35,7 @@
function getSavedQueryKey() { function getSavedQueryKey() {
return LibraryBrowser.getSavedQueryKey('genres'); return libraryBrowser.getSavedQueryKey('genres');
} }
function getPromise() { function getPromise() {
@ -57,7 +57,7 @@
var viewStyle = self.getCurrentViewStyle(); var viewStyle = self.getCurrentViewStyle();
if (viewStyle == "Thumb") { if (viewStyle == "Thumb") {
html = LibraryBrowser.getPosterViewHtml({ html = libraryBrowser.getPosterViewHtml({
items: result.Items, items: result.Items,
shape: "backdrop", shape: "backdrop",
preferThumb: true, preferThumb: true,
@ -70,7 +70,7 @@
} }
else if (viewStyle == "ThumbCard") { else if (viewStyle == "ThumbCard") {
html = LibraryBrowser.getPosterViewHtml({ html = libraryBrowser.getPosterViewHtml({
items: result.Items, items: result.Items,
shape: "backdrop", shape: "backdrop",
preferThumb: true, preferThumb: true,
@ -82,7 +82,7 @@
}); });
} }
else if (viewStyle == "PosterCard") { else if (viewStyle == "PosterCard") {
html = LibraryBrowser.getPosterViewHtml({ html = libraryBrowser.getPosterViewHtml({
items: result.Items, items: result.Items,
shape: "portrait", shape: "portrait",
context: 'movies', context: 'movies',
@ -93,7 +93,7 @@
}); });
} }
else if (viewStyle == "Poster") { else if (viewStyle == "Poster") {
html = LibraryBrowser.getPosterViewHtml({ html = libraryBrowser.getPosterViewHtml({
items: result.Items, items: result.Items,
shape: "portrait", shape: "portrait",
context: 'movies', context: 'movies',
@ -108,7 +108,7 @@
elem.innerHTML = html; elem.innerHTML = html;
ImageLoader.lazyChildren(elem); ImageLoader.lazyChildren(elem);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query); libraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg(); Dashboard.hideLoadingMsg();
}); });
@ -123,7 +123,7 @@
self.setCurrentViewStyle = function (viewStyle) { self.setCurrentViewStyle = function (viewStyle) {
getPageData(tabContent).view = viewStyle; getPageData(tabContent).view = viewStyle;
LibraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle); libraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle);
fullyReload(); fullyReload();
}; };
@ -147,7 +147,7 @@
var btnSelectView = tabContent.querySelector('.btnSelectView'); var btnSelectView = tabContent.querySelector('.btnSelectView');
btnSelectView.addEventListener('click', function (e) { btnSelectView.addEventListener('click', function (e) {
LibraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), self.getViewStyles()); libraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), self.getViewStyles());
}); });
btnSelectView.addEventListener('layoutchange', function (e) { btnSelectView.addEventListener('layoutchange', function (e) {

View file

@ -1,4 +1,4 @@
define(['libraryBrowser', 'scrollStyles', 'emby-itemscontainer'], function (libraryBrowser) { define(['libraryBrowser', 'components/categorysyncbuttons', 'scrollStyles', 'emby-itemscontainer'], function (libraryBrowser, categorysyncbuttons) {
function getView() { function getView() {
@ -270,7 +270,9 @@
var self = this; var self = this;
self.initTab = function () { self.initTab = function () {
var tabContent = view.querySelector('.pageTabContent[data-index=\'' + 0 + '\']'); var tabContent = view.querySelector('.pageTabContent[data-index=\'' + 0 + '\']');
categorysyncbuttons.init(tabContent);
initSuggestedTab(view, tabContent); initSuggestedTab(view, tabContent);
}; };

View file

@ -1,4 +1,4 @@
define([], function () { define(['libraryBrowser'], function (libraryBrowser) {
// The base query options // The base query options
var data = {}; var data = {};
@ -27,7 +27,7 @@
function getSavedQueryKey() { function getSavedQueryKey() {
return LibraryBrowser.getSavedQueryKey('studios'); return libraryBrowser.getSavedQueryKey('studios');
} }
function getPromise(context, params) { function getPromise(context, params) {
@ -44,7 +44,7 @@
var html = ''; var html = '';
html += LibraryBrowser.getPosterViewHtml({ html += libraryBrowser.getPosterViewHtml({
items: result.Items, items: result.Items,
shape: "backdrop", shape: "backdrop",
showTitle: false, showTitle: false,

View file

@ -1,4 +1,4 @@
define([], function () { define(['libraryBrowser'], function (libraryBrowser) {
return function (view, params, tabContent) { return function (view, params, tabContent) {
@ -19,11 +19,11 @@
Fields: "DateCreated,SyncInfo,ItemCounts", Fields: "DateCreated,SyncInfo,ItemCounts",
StartIndex: 0 StartIndex: 0
}, },
view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Thumb', 'Thumb') view: libraryBrowser.getSavedView(key) || libraryBrowser.getDefaultItemsView('Thumb', 'Thumb')
}; };
pageData.query.ParentId = params.topParentId; pageData.query.ParentId = params.topParentId;
LibraryBrowser.loadSavedQueryValues(key, pageData.query); libraryBrowser.loadSavedQueryValues(key, pageData.query);
} }
return pageData; return pageData;
} }
@ -35,7 +35,7 @@
function getSavedQueryKey() { function getSavedQueryKey() {
return LibraryBrowser.getSavedQueryKey('genres'); return libraryBrowser.getSavedQueryKey('genres');
} }
function getPromise() { function getPromise() {
@ -57,7 +57,7 @@
var viewStyle = self.getCurrentViewStyle(); var viewStyle = self.getCurrentViewStyle();
if (viewStyle == "Thumb") { if (viewStyle == "Thumb") {
html = LibraryBrowser.getPosterViewHtml({ html = libraryBrowser.getPosterViewHtml({
items: result.Items, items: result.Items,
shape: "backdrop", shape: "backdrop",
preferThumb: true, preferThumb: true,
@ -70,7 +70,7 @@
} }
else if (viewStyle == "ThumbCard") { else if (viewStyle == "ThumbCard") {
html = LibraryBrowser.getPosterViewHtml({ html = libraryBrowser.getPosterViewHtml({
items: result.Items, items: result.Items,
shape: "backdrop", shape: "backdrop",
preferThumb: true, preferThumb: true,
@ -82,7 +82,7 @@
}); });
} }
else if (viewStyle == "PosterCard") { else if (viewStyle == "PosterCard") {
html = LibraryBrowser.getPosterViewHtml({ html = libraryBrowser.getPosterViewHtml({
items: result.Items, items: result.Items,
shape: "portrait", shape: "portrait",
context: 'music', context: 'music',
@ -93,7 +93,7 @@
}); });
} }
else if (viewStyle == "Poster") { else if (viewStyle == "Poster") {
html = LibraryBrowser.getPosterViewHtml({ html = libraryBrowser.getPosterViewHtml({
items: result.Items, items: result.Items,
shape: "portrait", shape: "portrait",
context: 'music', context: 'music',
@ -108,7 +108,7 @@
elem.innerHTML = html; elem.innerHTML = html;
ImageLoader.lazyChildren(elem); ImageLoader.lazyChildren(elem);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query); libraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg(); Dashboard.hideLoadingMsg();
}); });
@ -123,7 +123,7 @@
self.setCurrentViewStyle = function (viewStyle) { self.setCurrentViewStyle = function (viewStyle) {
getPageData(tabContent).view = viewStyle; getPageData(tabContent).view = viewStyle;
LibraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle); libraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle);
fullyReload(); fullyReload();
}; };
@ -147,7 +147,7 @@
var btnSelectView = tabContent.querySelector('.btnSelectView'); var btnSelectView = tabContent.querySelector('.btnSelectView');
btnSelectView.addEventListener('click', function (e) { btnSelectView.addEventListener('click', function (e) {
LibraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), self.getViewStyles()); libraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), self.getViewStyles());
}); });
btnSelectView.addEventListener('layoutchange', function (e) { btnSelectView.addEventListener('layoutchange', function (e) {

View file

@ -1,4 +1,4 @@
define([], function () { define(['libraryBrowser'], function (libraryBrowser) {
function notifications() { function notifications() {
@ -106,7 +106,7 @@
var query = { StartIndex: startIndex, Limit: limit }; var query = { StartIndex: startIndex, Limit: limit };
html += LibraryBrowser.getQueryPagingHtml({ html += libraryBrowser.getQueryPagingHtml({
startIndex: query.StartIndex, startIndex: query.StartIndex,
limit: query.Limit, limit: query.Limit,
totalRecordCount: totalRecordCount, totalRecordCount: totalRecordCount,

View file

@ -1,4 +1,4 @@
define(['jQuery'], function ($) { define(['jQuery', 'libraryBrowser'], function ($, libraryBrowser) {
var defaultSortBy = "SortName"; var defaultSortBy = "SortName";
var topItems = 5; var topItems = 5;
@ -311,7 +311,7 @@
$('#tabFilter', page).hide(); $('#tabFilter', page).hide();
} }
var pagingHtml = LibraryBrowser.getQueryPagingHtml({ var pagingHtml = libraryBrowser.getQueryPagingHtml({
startIndex: query.StartIndex, startIndex: query.StartIndex,
limit: query.Limit, limit: query.Limit,
totalRecordCount: result.TotalRecordCount, totalRecordCount: result.TotalRecordCount,

View file

@ -1,4 +1,4 @@
define(['jQuery'], function ($) { define(['jQuery', 'libraryBrowser'], function ($, libraryBrowser) {
var currentItem; var currentItem;
@ -18,9 +18,9 @@
currentItem = item; currentItem = item;
LibraryBrowser.renderName(item, $('.itemName', page)[0], false); libraryBrowser.renderName(item, $('.itemName', page)[0], false);
LibraryBrowser.renderParentName(item, $('.parentName', page)[0]); libraryBrowser.renderParentName(item, $('.parentName', page)[0]);
LibraryBrowser.renderDetailPageBackdrop(page, item); libraryBrowser.renderDetailPageBackdrop(page, item);
renderImage(page, item); renderImage(page, item);
@ -58,7 +58,7 @@
} }
function renderImage(page, item) { function renderImage(page, item) {
LibraryBrowser.renderDetailImage(page.querySelector('.detailImageContainer'), item, false); libraryBrowser.renderDetailImage(page.querySelector('.detailImageContainer'), item, false);
} }
$(document).on('pageinit', "#publicSharedItemPage", function () { $(document).on('pageinit', "#publicSharedItemPage", function () {

View file

@ -1822,6 +1822,7 @@ var AppInfo = {};
define("subtitleEditor", [embyWebComponentsBowerPath + "/subtitleeditor/subtitleeditor"], returnFirstDependency); define("subtitleEditor", [embyWebComponentsBowerPath + "/subtitleeditor/subtitleeditor"], returnFirstDependency);
define("mediaInfo", [embyWebComponentsBowerPath + "/mediainfo/mediainfo"], returnFirstDependency); define("mediaInfo", [embyWebComponentsBowerPath + "/mediainfo/mediainfo"], returnFirstDependency);
define("itemContextMenu", [embyWebComponentsBowerPath + "/itemcontextmenu"], returnFirstDependency); define("itemContextMenu", [embyWebComponentsBowerPath + "/itemcontextmenu"], returnFirstDependency);
define("dom", [embyWebComponentsBowerPath + "/dom"], returnFirstDependency);
define("playMenu", [embyWebComponentsBowerPath + "/playmenu"], returnFirstDependency); define("playMenu", [embyWebComponentsBowerPath + "/playmenu"], returnFirstDependency);
define("refreshDialog", [embyWebComponentsBowerPath + "/refreshdialog/refreshdialog"], returnFirstDependency); define("refreshDialog", [embyWebComponentsBowerPath + "/refreshdialog/refreshdialog"], returnFirstDependency);
define("backdrop", [embyWebComponentsBowerPath + "/backdrop/backdrop"], returnFirstDependency); define("backdrop", [embyWebComponentsBowerPath + "/backdrop/backdrop"], returnFirstDependency);
@ -3176,7 +3177,6 @@ var AppInfo = {};
} }
} }
deps.push('scripts/librarylist');
deps.push('scripts/librarymenu'); deps.push('scripts/librarymenu');
deps.push('css!css/card.css'); deps.push('css!css/card.css');

View file

@ -1,4 +1,4 @@
define([], function () { define(['libraryBrowser'], function (libraryBrowser) {
return function (view, params, tabContent) { return function (view, params, tabContent) {
@ -19,11 +19,11 @@
Fields: "DateCreated,SyncInfo,ItemCounts", Fields: "DateCreated,SyncInfo,ItemCounts",
StartIndex: 0 StartIndex: 0
}, },
view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Thumb', 'Thumb') view: libraryBrowser.getSavedView(key) || libraryBrowser.getDefaultItemsView('Thumb', 'Thumb')
}; };
pageData.query.ParentId = params.topParentId; pageData.query.ParentId = params.topParentId;
LibraryBrowser.loadSavedQueryValues(key, pageData.query); libraryBrowser.loadSavedQueryValues(key, pageData.query);
} }
return pageData; return pageData;
} }
@ -35,7 +35,7 @@
function getSavedQueryKey() { function getSavedQueryKey() {
return LibraryBrowser.getSavedQueryKey('genres'); return libraryBrowser.getSavedQueryKey('genres');
} }
function getPromise() { function getPromise() {
@ -57,7 +57,7 @@
var viewStyle = self.getCurrentViewStyle(); var viewStyle = self.getCurrentViewStyle();
if (viewStyle == "Thumb") { if (viewStyle == "Thumb") {
html = LibraryBrowser.getPosterViewHtml({ html = libraryBrowser.getPosterViewHtml({
items: result.Items, items: result.Items,
shape: "backdrop", shape: "backdrop",
preferThumb: true, preferThumb: true,
@ -70,7 +70,7 @@
} }
else if (viewStyle == "ThumbCard") { else if (viewStyle == "ThumbCard") {
html = LibraryBrowser.getPosterViewHtml({ html = libraryBrowser.getPosterViewHtml({
items: result.Items, items: result.Items,
shape: "backdrop", shape: "backdrop",
preferThumb: true, preferThumb: true,
@ -82,7 +82,7 @@
}); });
} }
else if (viewStyle == "PosterCard") { else if (viewStyle == "PosterCard") {
html = LibraryBrowser.getPosterViewHtml({ html = libraryBrowser.getPosterViewHtml({
items: result.Items, items: result.Items,
shape: "portrait", shape: "portrait",
context: 'tv', context: 'tv',
@ -93,7 +93,7 @@
}); });
} }
else if (viewStyle == "Poster") { else if (viewStyle == "Poster") {
html = LibraryBrowser.getPosterViewHtml({ html = libraryBrowser.getPosterViewHtml({
items: result.Items, items: result.Items,
shape: "portrait", shape: "portrait",
context: 'tv', context: 'tv',
@ -108,7 +108,7 @@
elem.innerHTML = html; elem.innerHTML = html;
ImageLoader.lazyChildren(elem); ImageLoader.lazyChildren(elem);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query); libraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg(); Dashboard.hideLoadingMsg();
}); });
@ -123,7 +123,7 @@
self.setCurrentViewStyle = function(viewStyle) { self.setCurrentViewStyle = function(viewStyle) {
getPageData(tabContent).view = viewStyle; getPageData(tabContent).view = viewStyle;
LibraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle); libraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle);
fullyReload(); fullyReload();
}; };
@ -147,7 +147,7 @@
var btnSelectView = tabContent.querySelector('.btnSelectView'); var btnSelectView = tabContent.querySelector('.btnSelectView');
btnSelectView.addEventListener('click', function (e) { btnSelectView.addEventListener('click', function (e) {
LibraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), self.getViewStyles()); libraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), self.getViewStyles());
}); });
btnSelectView.addEventListener('layoutchange', function (e) { btnSelectView.addEventListener('layoutchange', function (e) {

View file

@ -1,4 +1,4 @@
define([], function () { define(['components/categorysyncbuttons'], function (categorysyncbuttons) {
function getView() { function getView() {
@ -77,7 +77,8 @@
return function (view, params, tabContent) { return function (view, params, tabContent) {
var self = this; var self = this;
var latestPromise;
categorysyncbuttons.init(tabContent); var latestPromise;
self.preRender = function () { self.preRender = function () {
latestPromise = getLatestPromise(view, params); latestPromise = getLatestPromise(view, params);

View file

@ -1,4 +1,4 @@
define(['libraryBrowser', 'scrollStyles', 'emby-itemscontainer'], function (libraryBrowser) { define(['libraryBrowser', 'components/categorysyncbuttons', 'scrollStyles', 'emby-itemscontainer'], function (libraryBrowser, categorysyncbuttons) {
return function (view, params) { return function (view, params) {
@ -165,6 +165,8 @@
} else { } else {
tabContent.querySelector('#resumableItems').classList.remove('hiddenScrollX'); tabContent.querySelector('#resumableItems').classList.remove('hiddenScrollX');
} }
categorysyncbuttons.init(tabContent);
}; };
self.renderTab = function () { self.renderTab = function () {

View file

@ -1,4 +1,4 @@
define([], function () { define(['libraryBrowser'], function (libraryBrowser) {
// The base query options // The base query options
var data = {}; var data = {};
@ -27,7 +27,7 @@
function getSavedQueryKey() { function getSavedQueryKey() {
return LibraryBrowser.getSavedQueryKey('studios'); return libraryBrowser.getSavedQueryKey('studios');
} }
function getPromise(context, params) { function getPromise(context, params) {
@ -44,7 +44,7 @@
var html = ''; var html = '';
html += LibraryBrowser.getPosterViewHtml({ html += libraryBrowser.getPosterViewHtml({
items: result.Items, items: result.Items,
shape: "backdrop", shape: "backdrop",
showTitle: false, showTitle: false,

View file

@ -1,4 +1,4 @@
define(['datetime', 'scrollStyles', 'emby-itemscontainer'], function (datetime) { define(['datetime', 'libraryBrowser', 'scrollStyles', 'emby-itemscontainer'], function (datetime, libraryBrowser) {
function getUpcomingPromise(context, params) { function getUpcomingPromise(context, params) {
@ -69,7 +69,7 @@
if (premiereDate.getDate() == new Date().getDate() - 1) { if (premiereDate.getDate() == new Date().getDate() - 1) {
dateText = Globalize.translate('Yesterday'); dateText = Globalize.translate('Yesterday');
} else { } else {
dateText = LibraryBrowser.getFutureDateText(premiereDate, true); dateText = libraryBrowser.getFutureDateText(premiereDate, true);
} }
} catch (err) { } catch (err) {
@ -107,7 +107,7 @@
html += '<div is="emby-itemscontainer" class="itemsContainer">'; html += '<div is="emby-itemscontainer" class="itemsContainer">';
} }
html += LibraryBrowser.getPosterViewHtml({ html += libraryBrowser.getPosterViewHtml({
items: group.items, items: group.items,
showLocationTypeIndicator: false, showLocationTypeIndicator: false,
shape: getThumbShape(), shape: getThumbShape(),