mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge pull request #27 from hawken93/fix_503
Stop pagination and adding a library from being able to trigger multiple times
This commit is contained in:
commit
7417b844f0
11 changed files with 267 additions and 110 deletions
|
@ -2,30 +2,48 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
function onSubmit(e) {
|
function onSubmit(e) {
|
||||||
if (e.preventDefault(), e.stopPropagation(), 0 == pathInfos.length) return require(["alert"], function(alert) {
|
e.preventDefault();
|
||||||
alert({
|
e.stopPropagation();
|
||||||
text: Globalize.translate("PleaseAddAtLeastOneFolder"),
|
|
||||||
type: "error"
|
if (isCreating) return false;
|
||||||
})
|
|
||||||
}), !1;
|
if (pathInfos.length == 0) {
|
||||||
var form = this,
|
require(["alert"], function(alert) {
|
||||||
dlg = $(form).parents(".dialog")[0],
|
alert({
|
||||||
name = $("#txtValue", form).val(),
|
text: Globalize.translate("PleaseAddAtLeastOneFolder"),
|
||||||
type = $("#selectCollectionType", form).val();
|
type: "error"
|
||||||
"mixed" == type && (type = null);
|
})
|
||||||
var libraryOptions = libraryoptionseditor.getLibraryOptions(dlg.querySelector(".libraryOptions"));
|
});
|
||||||
return libraryOptions.PathInfos = pathInfos, ApiClient.addVirtualFolder(name, type, currentOptions.refresh, libraryOptions).then(function() {
|
} else {
|
||||||
hasChanges = !0, dialogHelper.close(dlg)
|
isCreating = true;
|
||||||
}, function() {
|
loading.show();
|
||||||
require(["toast"], function(toast) {
|
|
||||||
toast(Globalize.translate("ErrorAddingMediaPathToVirtualFolder"))
|
var form = this,
|
||||||
})
|
dlg = $(form).parents(".dialog")[0],
|
||||||
}), !1
|
name = $("#txtValue", form).val(),
|
||||||
|
type = $("#selectCollectionType", form).val();
|
||||||
|
if (type == "mixed") type = null;
|
||||||
|
var libraryOptions = libraryoptionseditor.getLibraryOptions(dlg.querySelector(".libraryOptions"));
|
||||||
|
libraryOptions.PathInfos = pathInfos;
|
||||||
|
ApiClient.addVirtualFolder(name, type, currentOptions.refresh, libraryOptions).then(function() {
|
||||||
|
hasChanges = true;
|
||||||
|
isCreating = false;
|
||||||
|
loading.hide();
|
||||||
|
dialogHelper.close(dlg);
|
||||||
|
}, function() {
|
||||||
|
require(["toast"], function(toast) {
|
||||||
|
toast(Globalize.translate("ErrorAddingMediaPathToVirtualFolder"))
|
||||||
|
})
|
||||||
|
isCreating = false;
|
||||||
|
loading.hide();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getCollectionTypeOptionsHtml(collectionTypeOptions) {
|
function getCollectionTypeOptionsHtml(collectionTypeOptions) {
|
||||||
return collectionTypeOptions.filter(function(i) {
|
return collectionTypeOptions.filter(function(i) {
|
||||||
return !1 !== i.isSelectable
|
return i.isSelectable
|
||||||
}).map(function(i) {
|
}).map(function(i) {
|
||||||
return '<option value="' + i.value + '">' + i.name + "</option>"
|
return '<option value="' + i.value + '">' + i.name + "</option>"
|
||||||
}).join("")
|
}).join("")
|
||||||
|
@ -35,9 +53,15 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed
|
||||||
$("#selectCollectionType", page).html(getCollectionTypeOptionsHtml(collectionTypeOptions)).val("").on("change", function() {
|
$("#selectCollectionType", page).html(getCollectionTypeOptionsHtml(collectionTypeOptions)).val("").on("change", function() {
|
||||||
var value = this.value,
|
var value = this.value,
|
||||||
dlg = $(this).parents(".dialog")[0];
|
dlg = $(this).parents(".dialog")[0];
|
||||||
if (libraryoptionseditor.setContentType(dlg.querySelector(".libraryOptions"), "mixed" == value ? "" : value), value ? dlg.querySelector(".libraryOptions").classList.remove("hide") : dlg.querySelector(".libraryOptions").classList.add("hide"), "mixed" != value) {
|
libraryoptionseditor.setContentType(dlg.querySelector(".libraryOptions"), value == "mixed" ? "" : value);
|
||||||
|
if (value)
|
||||||
|
dlg.querySelector(".libraryOptions").classList.remove("hide");
|
||||||
|
else
|
||||||
|
dlg.querySelector(".libraryOptions").classList.add("hide");
|
||||||
|
|
||||||
|
if (value != "mixed") {
|
||||||
var index = this.selectedIndex;
|
var index = this.selectedIndex;
|
||||||
if (-1 != index) {
|
if (index != -1) {
|
||||||
var name = this.options[index].innerHTML.replace("*", "").replace("&", "&");
|
var name = this.options[index].innerHTML.replace("*", "").replace("&", "&");
|
||||||
$("#txtValue", dlg).val(name);
|
$("#txtValue", dlg).val(name);
|
||||||
var folderOption = collectionTypeOptions.filter(function(i) {
|
var folderOption = collectionTypeOptions.filter(function(i) {
|
||||||
|
@ -59,7 +83,7 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed
|
||||||
require(["directorybrowser"], function(directoryBrowser) {
|
require(["directorybrowser"], function(directoryBrowser) {
|
||||||
var picker = new directoryBrowser;
|
var picker = new directoryBrowser;
|
||||||
picker.show({
|
picker.show({
|
||||||
enableNetworkSharePath: !0,
|
enableNetworkSharePath: true,
|
||||||
callback: function(path, networkSharePath) {
|
callback: function(path, networkSharePath) {
|
||||||
path && addMediaLocation(page, path, networkSharePath), picker.close()
|
path && addMediaLocation(page, path, networkSharePath), picker.close()
|
||||||
}
|
}
|
||||||
|
@ -101,7 +125,10 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed
|
||||||
}
|
}
|
||||||
|
|
||||||
function onDialogClosed() {
|
function onDialogClosed() {
|
||||||
loading.hide(), currentResolve(hasChanges)
|
// I can't see any corresponding call to loading.show,
|
||||||
|
// so I think this is not supposed to be here.
|
||||||
|
loading.hide();
|
||||||
|
currentResolve(hasChanges);
|
||||||
}
|
}
|
||||||
|
|
||||||
function initLibraryOptions(dlg) {
|
function initLibraryOptions(dlg) {
|
||||||
|
@ -113,23 +140,36 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed
|
||||||
function editor() {
|
function editor() {
|
||||||
this.show = function(options) {
|
this.show = function(options) {
|
||||||
return new Promise(function(resolve, reject) {
|
return new Promise(function(resolve, reject) {
|
||||||
currentOptions = options, currentResolve = resolve, hasChanges = !1;
|
currentOptions = options, currentResolve = resolve, hasChanges = false;
|
||||||
var xhr = new XMLHttpRequest;
|
var xhr = new XMLHttpRequest;
|
||||||
xhr.open("GET", "components/medialibrarycreator/medialibrarycreator.template.html", !0), xhr.onload = function(e) {
|
xhr.open("GET", "components/medialibrarycreator/medialibrarycreator.template.html", true);
|
||||||
|
xhr.onload = function(e) {
|
||||||
var template = this.response,
|
var template = this.response,
|
||||||
dlg = dialogHelper.createDialog({
|
dlg = dialogHelper.createDialog({
|
||||||
size: "medium-tall",
|
size: "medium-tall",
|
||||||
modal: !1,
|
modal: false,
|
||||||
removeOnClose: !0,
|
removeOnClose: true,
|
||||||
scrollY: !1
|
scrollY: false
|
||||||
});
|
});
|
||||||
dlg.classList.add("ui-body-a"), dlg.classList.add("background-theme-a"), dlg.classList.add("dlg-librarycreator"), dlg.classList.add("formDialog"), dlg.innerHTML = Globalize.translateDocument(template), initEditor(dlg, options.collectionTypeOptions), dlg.addEventListener("close", onDialogClosed), dialogHelper.open(dlg), dlg.querySelector(".btnCancel").addEventListener("click", function() {
|
dlg.classList.add("ui-body-a");
|
||||||
|
dlg.classList.add("background-theme-a");
|
||||||
|
dlg.classList.add("dlg-librarycreator");
|
||||||
|
dlg.classList.add("formDialog");
|
||||||
|
dlg.innerHTML = Globalize.translateDocument(template);
|
||||||
|
initEditor(dlg, options.collectionTypeOptions);
|
||||||
|
dlg.addEventListener("close", onDialogClosed);
|
||||||
|
dialogHelper.open(dlg);
|
||||||
|
dlg.querySelector(".btnCancel").addEventListener("click", function() {
|
||||||
dialogHelper.close(dlg)
|
dialogHelper.close(dlg)
|
||||||
}), pathInfos = [], renderPaths(dlg), initLibraryOptions(dlg)
|
});
|
||||||
}, xhr.send()
|
pathInfos = [];
|
||||||
|
renderPaths(dlg);
|
||||||
|
initLibraryOptions(dlg);
|
||||||
|
};
|
||||||
|
xhr.send();
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var currentResolve, hasChanges, currentOptions, pathInfos = [];
|
var currentResolve, hasChanges, currentOptions, pathInfos = [], isCreating = false;
|
||||||
return editor
|
return editor
|
||||||
});
|
});
|
||||||
|
|
|
@ -37,15 +37,21 @@ define(["loading", "events", "libraryBrowser", "imageLoader", "listView", "cardB
|
||||||
|
|
||||||
function reloadItems(page) {
|
function reloadItems(page) {
|
||||||
loading.show();
|
loading.show();
|
||||||
|
isLoading = true;
|
||||||
var query = getQuery(page);
|
var query = getQuery(page);
|
||||||
ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function(result) {
|
ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function(result) {
|
||||||
function onNextPageClick() {
|
function onNextPageClick() {
|
||||||
query.StartIndex += query.Limit, reloadItems(tabContent)
|
if (isLoading) return;
|
||||||
|
query.StartIndex += query.Limit;
|
||||||
|
reloadItems(tabContent)
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPreviousPageClick() {
|
function onPreviousPageClick() {
|
||||||
query.StartIndex -= query.Limit, reloadItems(tabContent)
|
if (isLoading) return;
|
||||||
|
query.StartIndex -= query.Limit;
|
||||||
|
reloadItems(tabContent)
|
||||||
}
|
}
|
||||||
|
|
||||||
window.scrollTo(0, 0);
|
window.scrollTo(0, 0);
|
||||||
var html, pagingHtml = libraryBrowser.getQueryPagingHtml({
|
var html, pagingHtml = libraryBrowser.getQueryPagingHtml({
|
||||||
startIndex: query.StartIndex,
|
startIndex: query.StartIndex,
|
||||||
|
@ -80,16 +86,24 @@ define(["loading", "events", "libraryBrowser", "imageLoader", "listView", "cardB
|
||||||
scalable: !0,
|
scalable: !0,
|
||||||
overlayPlayButton: !0
|
overlayPlayButton: !0
|
||||||
});
|
});
|
||||||
var i, length, elems = tabContent.querySelectorAll(".paging");
|
var i, length, elems;
|
||||||
for (i = 0, length = elems.length; i < length; i++) elems[i].innerHTML = pagingHtml;
|
for (elems = tabContent.querySelectorAll(".paging"), i = 0, length = elems.length; i < length; i++)
|
||||||
for (elems = tabContent.querySelectorAll(".btnNextPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onNextPageClick);
|
elems[i].innerHTML = pagingHtml;
|
||||||
for (elems = tabContent.querySelectorAll(".btnPreviousPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onPreviousPageClick);
|
for (elems = tabContent.querySelectorAll(".btnNextPage"), i = 0, length = elems.length; i < length; i++)
|
||||||
itemsContainer.innerHTML = html, imageLoader.lazyChildren(itemsContainer), libraryBrowser.saveQueryValues(getSavedQueryKey(page), query), loading.hide()
|
elems[i].addEventListener("click", onNextPageClick);
|
||||||
|
for (elems = tabContent.querySelectorAll(".btnPreviousPage"), i = 0, length = elems.length; i < length; i++)
|
||||||
|
elems[i].addEventListener("click", onPreviousPageClick);
|
||||||
|
itemsContainer.innerHTML = html;
|
||||||
|
imageLoader.lazyChildren(itemsContainer);
|
||||||
|
libraryBrowser.saveQueryValues(getSavedQueryKey(page), query);
|
||||||
|
loading.hide();
|
||||||
|
isLoading = false;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
var self = this,
|
var self = this,
|
||||||
pageSize = 100,
|
pageSize = 100,
|
||||||
data = {};
|
data = {},
|
||||||
|
isLoading = false;
|
||||||
self.showFilterMenu = function() {
|
self.showFilterMenu = function() {
|
||||||
require(["components/filterdialog/filterdialog"], function(filterDialogFactory) {
|
require(["components/filterdialog/filterdialog"], function(filterDialogFactory) {
|
||||||
var filterDialog = new filterDialogFactory({
|
var filterDialog = new filterDialogFactory({
|
||||||
|
@ -152,4 +166,4 @@ define(["loading", "events", "libraryBrowser", "imageLoader", "listView", "cardB
|
||||||
reloadItems(tabContent)
|
reloadItems(tabContent)
|
||||||
}, self.destroy = function() {}
|
}, self.destroy = function() {}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -30,10 +30,12 @@ define(["cardBuilder", "imageLoader", "libraryBrowser", "loading", "events", "em
|
||||||
|
|
||||||
function renderChannels(context, result) {
|
function renderChannels(context, result) {
|
||||||
function onNextPageClick() {
|
function onNextPageClick() {
|
||||||
|
if (isLoading) return;
|
||||||
query.StartIndex += query.Limit, reloadItems(context)
|
query.StartIndex += query.Limit, reloadItems(context)
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPreviousPageClick() {
|
function onPreviousPageClick() {
|
||||||
|
if (isLoading) return;
|
||||||
query.StartIndex -= query.Limit, reloadItems(context)
|
query.StartIndex -= query.Limit, reloadItems(context)
|
||||||
}
|
}
|
||||||
var query = getQuery();
|
var query = getQuery();
|
||||||
|
@ -68,17 +70,20 @@ define(["cardBuilder", "imageLoader", "libraryBrowser", "loading", "events", "em
|
||||||
|
|
||||||
function reloadItems(context, save) {
|
function reloadItems(context, save) {
|
||||||
loading.show();
|
loading.show();
|
||||||
|
isLoading = true;
|
||||||
var query = getQuery(),
|
var query = getQuery(),
|
||||||
apiClient = ApiClient;
|
apiClient = ApiClient;
|
||||||
query.UserId = apiClient.getCurrentUserId(), apiClient.getLiveTvChannels(query).then(function(result) {
|
query.UserId = apiClient.getCurrentUserId(), apiClient.getLiveTvChannels(query).then(function(result) {
|
||||||
renderChannels(context, result), loading.hide()
|
renderChannels(context, result);
|
||||||
|
loading.hide();
|
||||||
|
isLoading = false;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
var pageData, self = this;
|
var pageData, self = this, isLoading = false;
|
||||||
tabContent.querySelector(".btnFilter").addEventListener("click", function() {
|
tabContent.querySelector(".btnFilter").addEventListener("click", function() {
|
||||||
showFilterMenu(tabContent)
|
showFilterMenu(tabContent)
|
||||||
}), self.renderTab = function() {
|
}), self.renderTab = function() {
|
||||||
reloadItems(tabContent)
|
reloadItems(tabContent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -4,20 +4,25 @@ define(["loading", "events", "libraryBrowser", "imageLoader", "listView", "cardB
|
||||||
function getPageData(context) {
|
function getPageData(context) {
|
||||||
var key = getSavedQueryKey(context),
|
var key = getSavedQueryKey(context),
|
||||||
pageData = data[key];
|
pageData = data[key];
|
||||||
return pageData || (pageData = data[key] = {
|
if (!pageData) {
|
||||||
query: {
|
pageData = data[key] = {
|
||||||
SortBy: "SortName",
|
query: {
|
||||||
SortOrder: "Ascending",
|
SortBy: "SortName",
|
||||||
IncludeItemTypes: "BoxSet",
|
SortOrder: "Ascending",
|
||||||
Recursive: !0,
|
IncludeItemTypes: "BoxSet",
|
||||||
Fields: "PrimaryImageAspectRatio,SortName",
|
Recursive: true,
|
||||||
ImageTypeLimit: 1,
|
Fields: "PrimaryImageAspectRatio,SortName",
|
||||||
EnableImageTypes: "Primary,Backdrop,Banner,Thumb",
|
ImageTypeLimit: 1,
|
||||||
StartIndex: 0,
|
EnableImageTypes: "Primary,Backdrop,Banner,Thumb",
|
||||||
Limit: pageSize
|
StartIndex: 0,
|
||||||
},
|
Limit: pageSize
|
||||||
view: libraryBrowser.getSavedView(key) || "Poster"
|
},
|
||||||
}, pageData.query.ParentId = params.topParentId, libraryBrowser.loadSavedQueryValues(key, pageData.query)), pageData
|
view: libraryBrowser.getSavedView(key) || "Poster"
|
||||||
|
};
|
||||||
|
pageData.query.ParentId = params.topParentId;
|
||||||
|
libraryBrowser.loadSavedQueryValues(key, pageData.query);
|
||||||
|
}
|
||||||
|
return pageData;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getQuery(context) {
|
function getQuery(context) {
|
||||||
|
@ -36,13 +41,16 @@ define(["loading", "events", "libraryBrowser", "imageLoader", "listView", "cardB
|
||||||
|
|
||||||
function reloadItems(page) {
|
function reloadItems(page) {
|
||||||
loading.show();
|
loading.show();
|
||||||
|
isLoading = true;
|
||||||
var query = getQuery(page);
|
var query = getQuery(page);
|
||||||
ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function(result) {
|
ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function(result) {
|
||||||
function onNextPageClick() {
|
function onNextPageClick() {
|
||||||
|
if (isLoading) return;
|
||||||
query.StartIndex += query.Limit, reloadItems(tabContent)
|
query.StartIndex += query.Limit, reloadItems(tabContent)
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPreviousPageClick() {
|
function onPreviousPageClick() {
|
||||||
|
if (isLoading) return;
|
||||||
query.StartIndex -= query.Limit, reloadItems(tabContent)
|
query.StartIndex -= query.Limit, reloadItems(tabContent)
|
||||||
}
|
}
|
||||||
window.scrollTo(0, 0);
|
window.scrollTo(0, 0);
|
||||||
|
@ -106,12 +114,17 @@ define(["loading", "events", "libraryBrowser", "imageLoader", "listView", "cardB
|
||||||
for (elems = tabContent.querySelectorAll(".btnPreviousPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onPreviousPageClick);
|
for (elems = tabContent.querySelectorAll(".btnPreviousPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onPreviousPageClick);
|
||||||
result.Items.length || (html = '<p style="text-align:center;">' + Globalize.translate("MessageNoCollectionsAvailable") + "</p>");
|
result.Items.length || (html = '<p style="text-align:center;">' + Globalize.translate("MessageNoCollectionsAvailable") + "</p>");
|
||||||
var itemsContainer = tabContent.querySelector(".itemsContainer");
|
var itemsContainer = tabContent.querySelector(".itemsContainer");
|
||||||
itemsContainer.innerHTML = html, imageLoader.lazyChildren(itemsContainer), libraryBrowser.saveQueryValues(getSavedQueryKey(page), query), loading.hide()
|
itemsContainer.innerHTML = html;
|
||||||
|
imageLoader.lazyChildren(itemsContainer);
|
||||||
|
libraryBrowser.saveQueryValues(getSavedQueryKey(page), query);
|
||||||
|
loading.hide();
|
||||||
|
isLoading = false;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
var self = this,
|
var self = this,
|
||||||
pageSize = 100,
|
pageSize = 100,
|
||||||
data = {};
|
data = {},
|
||||||
|
isLoading = false;
|
||||||
self.getCurrentViewStyle = function() {
|
self.getCurrentViewStyle = function() {
|
||||||
return getPageData(tabContent).view
|
return getPageData(tabContent).view
|
||||||
},
|
},
|
||||||
|
@ -160,4 +173,4 @@ define(["loading", "events", "libraryBrowser", "imageLoader", "listView", "cardB
|
||||||
reloadItems(tabContent)
|
reloadItems(tabContent)
|
||||||
}, self.destroy = function() {}
|
}, self.destroy = function() {}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,8 +1,16 @@
|
||||||
define(["layoutManager", "userSettings", "events", "libraryBrowser", "alphaPicker", "listView", "cardBuilder", "emby-itemscontainer"], function(layoutManager, userSettings, events, libraryBrowser, alphaPicker, listView, cardBuilder) {
|
define(["loading", "layoutManager", "userSettings", "events", "libraryBrowser", "alphaPicker", "listView", "cardBuilder", "emby-itemscontainer"],
|
||||||
|
function(loading, layoutManager, userSettings, events, libraryBrowser, alphaPicker, listView, cardBuilder) {
|
||||||
"use strict";
|
"use strict";
|
||||||
return function(view, params, tabContent, options) {
|
return function(view, params, tabContent, options) {
|
||||||
function onViewStyleChange() {
|
function onViewStyleChange() {
|
||||||
"List" == self.getCurrentViewStyle() ? (itemsContainer.classList.add("vertical-list"), itemsContainer.classList.remove("vertical-wrap")) : (itemsContainer.classList.remove("vertical-list"), itemsContainer.classList.add("vertical-wrap")), itemsContainer.innerHTML = ""
|
if (self.getCurrentViewStyle() == "List") {
|
||||||
|
itemsContainer.classList.add("vertical-list");
|
||||||
|
itemsContainer.classList.remove("vertical-wrap");
|
||||||
|
} else {
|
||||||
|
itemsContainer.classList.remove("vertical-list");
|
||||||
|
itemsContainer.classList.add("vertical-wrap");
|
||||||
|
}
|
||||||
|
itemsContainer.innerHTML = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateFilterControls() {
|
function updateFilterControls() {
|
||||||
|
@ -10,19 +18,26 @@ define(["layoutManager", "userSettings", "events", "libraryBrowser", "alphaPicke
|
||||||
}
|
}
|
||||||
|
|
||||||
function fetchData() {
|
function fetchData() {
|
||||||
|
isLoading = true;
|
||||||
|
loading.show();
|
||||||
return ApiClient.getItems(ApiClient.getCurrentUserId(), query)
|
return ApiClient.getItems(ApiClient.getCurrentUserId(), query)
|
||||||
}
|
}
|
||||||
|
|
||||||
function afterRefresh(result) {
|
function afterRefresh(result) {
|
||||||
function onNextPageClick() {
|
function onNextPageClick() {
|
||||||
query.StartIndex += query.Limit, itemsContainer.refreshItems()
|
if (isLoading) return;
|
||||||
|
query.StartIndex += query.Limit;
|
||||||
|
itemsContainer.refreshItems();
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPreviousPageClick() {
|
function onPreviousPageClick() {
|
||||||
query.StartIndex -= query.Limit, itemsContainer.refreshItems()
|
if (isLoading) return;
|
||||||
|
query.StartIndex -= query.Limit;
|
||||||
|
itemsContainer.refreshItems();
|
||||||
}
|
}
|
||||||
window.scrollTo(0, 0), updateFilterControls();
|
window.scrollTo(0, 0);
|
||||||
var i, length, pagingHtml = libraryBrowser.getQueryPagingHtml({
|
updateFilterControls();
|
||||||
|
var i, length, elems, pagingHtml = libraryBrowser.getQueryPagingHtml({
|
||||||
startIndex: query.StartIndex,
|
startIndex: query.StartIndex,
|
||||||
limit: query.Limit,
|
limit: query.Limit,
|
||||||
totalRecordCount: result.TotalRecordCount,
|
totalRecordCount: result.TotalRecordCount,
|
||||||
|
@ -31,11 +46,15 @@ define(["layoutManager", "userSettings", "events", "libraryBrowser", "alphaPicke
|
||||||
addLayoutButton: !1,
|
addLayoutButton: !1,
|
||||||
sortButton: !1,
|
sortButton: !1,
|
||||||
filterButton: !1
|
filterButton: !1
|
||||||
}),
|
});
|
||||||
elems = tabContent.querySelectorAll(".paging");
|
for (elems = tabContent.querySelectorAll(".paging"), i = 0, length = elems.length; i < length; i++)
|
||||||
for (i = 0, length = elems.length; i < length; i++) elems[i].innerHTML = pagingHtml;
|
elems[i].innerHTML = pagingHtml;
|
||||||
for (elems = tabContent.querySelectorAll(".btnNextPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onNextPageClick);
|
for (elems = tabContent.querySelectorAll(".btnNextPage"), i = 0, length = elems.length; i < length; i++)
|
||||||
for (elems = tabContent.querySelectorAll(".btnPreviousPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onPreviousPageClick)
|
elems[i].addEventListener("click", onNextPageClick);
|
||||||
|
for (elems = tabContent.querySelectorAll(".btnPreviousPage"), i = 0, length = elems.length; i < length; i++)
|
||||||
|
elems[i].addEventListener("click", onPreviousPageClick)
|
||||||
|
isLoading = false;
|
||||||
|
loading.hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
function getItemsHtml(items) {
|
function getItemsHtml(items) {
|
||||||
|
@ -89,15 +108,27 @@ define(["layoutManager", "userSettings", "events", "libraryBrowser", "alphaPicke
|
||||||
}
|
}
|
||||||
|
|
||||||
function initPage(tabContent) {
|
function initPage(tabContent) {
|
||||||
itemsContainer.fetchData = fetchData, itemsContainer.getItemsHtml = getItemsHtml, itemsContainer.afterRefresh = afterRefresh;
|
itemsContainer.fetchData = fetchData;
|
||||||
|
itemsContainer.getItemsHtml = getItemsHtml;
|
||||||
|
itemsContainer.afterRefresh = afterRefresh;
|
||||||
var alphaPickerElement = tabContent.querySelector(".alphaPicker");
|
var alphaPickerElement = tabContent.querySelector(".alphaPicker");
|
||||||
alphaPickerElement && (alphaPickerElement.addEventListener("alphavaluechanged", function(e) {
|
if (alphaPickerElement) {
|
||||||
var newValue = e.detail.value;
|
alphaPickerElement.addEventListener("alphavaluechanged", function(e) {
|
||||||
query.NameStartsWithOrGreater = newValue, query.StartIndex = 0, itemsContainer.refreshItems()
|
var newValue = e.detail.value;
|
||||||
}), self.alphaPicker = new alphaPicker({
|
query.NameStartsWithOrGreater = newValue;
|
||||||
element: alphaPickerElement,
|
query.StartIndex = 0;
|
||||||
valueChangeEvent: "click"
|
itemsContainer.refreshItems();
|
||||||
}), (layoutManager.desktop || layoutManager.mobile) && (alphaPickerElement.classList.add("alphabetPicker-right"), itemsContainer.classList.remove("padded-left-withalphapicker"), itemsContainer.classList.add("padded-right-withalphapicker")));
|
});
|
||||||
|
self.alphaPicker = new alphaPicker({
|
||||||
|
element: alphaPickerElement,
|
||||||
|
valueChangeEvent: "click"
|
||||||
|
});
|
||||||
|
if (layoutManager.desktop || layoutManager.mobile) {
|
||||||
|
alphaPickerElement.classList.add("alphabetPicker-right");
|
||||||
|
itemsContainer.classList.remove("padded-left-withalphapicker");
|
||||||
|
itemsContainer.classList.add("padded-right-withalphapicker");
|
||||||
|
}
|
||||||
|
}
|
||||||
var btnFilter = tabContent.querySelector(".btnFilter");
|
var btnFilter = tabContent.querySelector(".btnFilter");
|
||||||
btnFilter && btnFilter.addEventListener("click", function() {
|
btnFilter && btnFilter.addEventListener("click", function() {
|
||||||
self.showFilterMenu()
|
self.showFilterMenu()
|
||||||
|
@ -145,7 +176,10 @@ define(["layoutManager", "userSettings", "events", "libraryBrowser", "alphaPicke
|
||||||
libraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), "Banner,List,Poster,PosterCard,Thumb,ThumbCard".split(","))
|
libraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), "Banner,List,Poster,PosterCard,Thumb,ThumbCard".split(","))
|
||||||
}), btnSelectView.addEventListener("layoutchange", function(e) {
|
}), btnSelectView.addEventListener("layoutchange", function(e) {
|
||||||
var viewStyle = e.detail.viewStyle;
|
var viewStyle = e.detail.viewStyle;
|
||||||
userSettings.set(savedViewKey, viewStyle), query.StartIndex = 0, onViewStyleChange(), itemsContainer.refreshItems()
|
userSettings.set(savedViewKey, viewStyle);
|
||||||
|
query.StartIndex = 0;
|
||||||
|
onViewStyleChange();
|
||||||
|
itemsContainer.refreshItems();
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
var self = this,
|
var self = this,
|
||||||
|
@ -163,8 +197,11 @@ define(["layoutManager", "userSettings", "events", "libraryBrowser", "alphaPicke
|
||||||
StartIndex: 0,
|
StartIndex: 0,
|
||||||
Limit: 100,
|
Limit: 100,
|
||||||
ParentId: params.topParentId
|
ParentId: params.topParentId
|
||||||
};
|
},
|
||||||
"favorites" === options.mode && (query.IsFavorite = !0), query = userSettings.loadQuerySettings(savedQueryKey, query), self.showFilterMenu = function() {
|
isLoading = false;
|
||||||
|
if (options.mode === "favorites") query.IsFavorite = true;
|
||||||
|
query = userSettings.loadQuerySettings(savedQueryKey, query);
|
||||||
|
self.showFilterMenu = function() {
|
||||||
require(["components/filterdialog/filterdialog"], function(filterDialogFactory) {
|
require(["components/filterdialog/filterdialog"], function(filterDialogFactory) {
|
||||||
var filterDialog = new filterDialogFactory({
|
var filterDialog = new filterDialogFactory({
|
||||||
query: query,
|
query: query,
|
||||||
|
@ -175,14 +212,20 @@ define(["layoutManager", "userSettings", "events", "libraryBrowser", "alphaPicke
|
||||||
query.StartIndex = 0, itemsContainer.refreshItems()
|
query.StartIndex = 0, itemsContainer.refreshItems()
|
||||||
}), filterDialog.show()
|
}), filterDialog.show()
|
||||||
})
|
})
|
||||||
}, self.getCurrentViewStyle = function() {
|
};
|
||||||
|
self.getCurrentViewStyle = function() {
|
||||||
return userSettings.get(savedViewKey) || "Poster"
|
return userSettings.get(savedViewKey) || "Poster"
|
||||||
}, self.initTab = function() {
|
};
|
||||||
initPage(tabContent), onViewStyleChange()
|
self.initTab = function() {
|
||||||
}, self.renderTab = function() {
|
initPage(tabContent);
|
||||||
itemsContainer.refreshItems(), updateFilterControls()
|
onViewStyleChange();
|
||||||
}, self.destroy = function() {
|
};
|
||||||
|
self.renderTab = function() {
|
||||||
|
itemsContainer.refreshItems();
|
||||||
|
updateFilterControls();
|
||||||
|
};
|
||||||
|
self.destroy = function() {
|
||||||
itemsContainer = null
|
itemsContainer = null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -30,13 +30,16 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", "
|
||||||
|
|
||||||
function reloadItems() {
|
function reloadItems() {
|
||||||
loading.show();
|
loading.show();
|
||||||
|
isLoading = true;
|
||||||
var query = getQuery(tabContent);
|
var query = getQuery(tabContent);
|
||||||
ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function(result) {
|
ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function(result) {
|
||||||
function onNextPageClick() {
|
function onNextPageClick() {
|
||||||
|
if (isLoading) return;
|
||||||
query.StartIndex += query.Limit, reloadItems()
|
query.StartIndex += query.Limit, reloadItems()
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPreviousPageClick() {
|
function onPreviousPageClick() {
|
||||||
|
if (isLoading) return;
|
||||||
query.StartIndex -= query.Limit, reloadItems()
|
query.StartIndex -= query.Limit, reloadItems()
|
||||||
}
|
}
|
||||||
window.scrollTo(0, 0), updateFilterControls(tabContent);
|
window.scrollTo(0, 0), updateFilterControls(tabContent);
|
||||||
|
@ -98,7 +101,11 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", "
|
||||||
for (elems = tabContent.querySelectorAll(".btnPreviousPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onPreviousPageClick);
|
for (elems = tabContent.querySelectorAll(".btnPreviousPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onPreviousPageClick);
|
||||||
result.Items.length || (html = '<p style="text-align:center;">' + Globalize.translate("MessageNoTrailersFound") + "</p>");
|
result.Items.length || (html = '<p style="text-align:center;">' + Globalize.translate("MessageNoTrailersFound") + "</p>");
|
||||||
var itemsContainer = tabContent.querySelector(".itemsContainer");
|
var itemsContainer = tabContent.querySelector(".itemsContainer");
|
||||||
itemsContainer.innerHTML = html, imageLoader.lazyChildren(itemsContainer), libraryBrowser.saveQueryValues(getSavedQueryKey(tabContent), query), loading.hide()
|
itemsContainer.innerHTML = html;
|
||||||
|
imageLoader.lazyChildren(itemsContainer);
|
||||||
|
libraryBrowser.saveQueryValues(getSavedQueryKey(tabContent), query);
|
||||||
|
loading.hide();
|
||||||
|
isLoading = false;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,7 +115,8 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", "
|
||||||
}
|
}
|
||||||
var self = this,
|
var self = this,
|
||||||
pageSize = 100,
|
pageSize = 100,
|
||||||
data = {};
|
data = {},
|
||||||
|
isLoading = false;
|
||||||
self.showFilterMenu = function() {
|
self.showFilterMenu = function() {
|
||||||
require(["components/filterdialog/filterdialog"], function(filterDialogFactory) {
|
require(["components/filterdialog/filterdialog"], function(filterDialogFactory) {
|
||||||
var filterDialog = new filterDialogFactory({
|
var filterDialog = new filterDialogFactory({
|
||||||
|
@ -174,4 +182,4 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", "
|
||||||
reloadItems(), updateFilterControls(tabContent)
|
reloadItems(), updateFilterControls(tabContent)
|
||||||
}, self.destroy = function() {}
|
}, self.destroy = function() {}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -50,13 +50,16 @@ define(["layoutManager", "playbackManager", "loading", "events", "libraryBrowser
|
||||||
|
|
||||||
function reloadItems(page) {
|
function reloadItems(page) {
|
||||||
loading.show();
|
loading.show();
|
||||||
|
isLoading = true;
|
||||||
var query = getQuery();
|
var query = getQuery();
|
||||||
ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function(result) {
|
ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function(result) {
|
||||||
function onNextPageClick() {
|
function onNextPageClick() {
|
||||||
|
if (isLoading) return;
|
||||||
query.StartIndex += query.Limit, reloadItems(tabContent)
|
query.StartIndex += query.Limit, reloadItems(tabContent)
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPreviousPageClick() {
|
function onPreviousPageClick() {
|
||||||
|
if (isLoading) return;
|
||||||
query.StartIndex -= query.Limit, reloadItems(tabContent)
|
query.StartIndex -= query.Limit, reloadItems(tabContent)
|
||||||
}
|
}
|
||||||
window.scrollTo(0, 0), updateFilterControls(page);
|
window.scrollTo(0, 0), updateFilterControls(page);
|
||||||
|
@ -100,7 +103,11 @@ define(["layoutManager", "playbackManager", "loading", "events", "libraryBrowser
|
||||||
for (elems = tabContent.querySelectorAll(".btnNextPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onNextPageClick);
|
for (elems = tabContent.querySelectorAll(".btnNextPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onNextPageClick);
|
||||||
for (elems = tabContent.querySelectorAll(".btnPreviousPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onPreviousPageClick);
|
for (elems = tabContent.querySelectorAll(".btnPreviousPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onPreviousPageClick);
|
||||||
var itemsContainer = tabContent.querySelector(".itemsContainer");
|
var itemsContainer = tabContent.querySelector(".itemsContainer");
|
||||||
itemsContainer.innerHTML = html, imageLoader.lazyChildren(itemsContainer), libraryBrowser.saveQueryValues(getSavedQueryKey(), query), loading.hide()
|
itemsContainer.innerHTML = html;
|
||||||
|
imageLoader.lazyChildren(itemsContainer);
|
||||||
|
libraryBrowser.saveQueryValues(getSavedQueryKey(), query);
|
||||||
|
loading.hide();
|
||||||
|
isLoading = false;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,7 +116,8 @@ define(["layoutManager", "playbackManager", "loading", "events", "libraryBrowser
|
||||||
self.alphaPicker.value(query.NameStartsWithOrGreater)
|
self.alphaPicker.value(query.NameStartsWithOrGreater)
|
||||||
}
|
}
|
||||||
var savedQueryKey, pageData, self = this,
|
var savedQueryKey, pageData, self = this,
|
||||||
pageSize = 100;
|
pageSize = 100,
|
||||||
|
isLoading = false;
|
||||||
self.showFilterMenu = function() {
|
self.showFilterMenu = function() {
|
||||||
require(["components/filterdialog/filterdialog"], function(filterDialogFactory) {
|
require(["components/filterdialog/filterdialog"], function(filterDialogFactory) {
|
||||||
var filterDialog = new filterDialogFactory({
|
var filterDialog = new filterDialogFactory({
|
||||||
|
@ -179,4 +187,4 @@ define(["layoutManager", "playbackManager", "loading", "events", "libraryBrowser
|
||||||
reloadItems(tabContent), updateFilterControls(tabContent)
|
reloadItems(tabContent), updateFilterControls(tabContent)
|
||||||
}, self.destroy = function() {}
|
}, self.destroy = function() {}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -35,13 +35,16 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", "
|
||||||
|
|
||||||
function reloadItems(page) {
|
function reloadItems(page) {
|
||||||
loading.show();
|
loading.show();
|
||||||
|
isLoading = true;
|
||||||
var query = getQuery(page);
|
var query = getQuery(page);
|
||||||
("albumartists" == self.mode ? ApiClient.getAlbumArtists(ApiClient.getCurrentUserId(), query) : ApiClient.getArtists(ApiClient.getCurrentUserId(), query)).then(function(result) {
|
("albumartists" == self.mode ? ApiClient.getAlbumArtists(ApiClient.getCurrentUserId(), query) : ApiClient.getArtists(ApiClient.getCurrentUserId(), query)).then(function(result) {
|
||||||
function onNextPageClick() {
|
function onNextPageClick() {
|
||||||
|
if (isLoading) return;
|
||||||
query.StartIndex += query.Limit, reloadItems(tabContent)
|
query.StartIndex += query.Limit, reloadItems(tabContent)
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPreviousPageClick() {
|
function onPreviousPageClick() {
|
||||||
|
if (isLoading) return;
|
||||||
query.StartIndex -= query.Limit, reloadItems(tabContent)
|
query.StartIndex -= query.Limit, reloadItems(tabContent)
|
||||||
}
|
}
|
||||||
window.scrollTo(0, 0), updateFilterControls(page);
|
window.scrollTo(0, 0), updateFilterControls(page);
|
||||||
|
@ -81,7 +84,11 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", "
|
||||||
for (elems = tabContent.querySelectorAll(".btnNextPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onNextPageClick);
|
for (elems = tabContent.querySelectorAll(".btnNextPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onNextPageClick);
|
||||||
for (elems = tabContent.querySelectorAll(".btnPreviousPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onPreviousPageClick);
|
for (elems = tabContent.querySelectorAll(".btnPreviousPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onPreviousPageClick);
|
||||||
var itemsContainer = tabContent.querySelector(".itemsContainer");
|
var itemsContainer = tabContent.querySelector(".itemsContainer");
|
||||||
itemsContainer.innerHTML = html, imageLoader.lazyChildren(itemsContainer), libraryBrowser.saveQueryValues(getSavedQueryKey(page), query), loading.hide()
|
itemsContainer.innerHTML = html;
|
||||||
|
imageLoader.lazyChildren(itemsContainer);
|
||||||
|
libraryBrowser.saveQueryValues(getSavedQueryKey(page), query);
|
||||||
|
loading.hide();
|
||||||
|
isLoading = false;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,7 +97,8 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", "
|
||||||
self.alphaPicker.value(query.NameStartsWithOrGreater)
|
self.alphaPicker.value(query.NameStartsWithOrGreater)
|
||||||
}
|
}
|
||||||
var self = this,
|
var self = this,
|
||||||
data = {};
|
data = {},
|
||||||
|
isLoading = false;
|
||||||
self.showFilterMenu = function() {
|
self.showFilterMenu = function() {
|
||||||
require(["components/filterdialog/filterdialog"], function(filterDialogFactory) {
|
require(["components/filterdialog/filterdialog"], function(filterDialogFactory) {
|
||||||
var filterDialog = new filterDialogFactory({
|
var filterDialog = new filterDialogFactory({
|
||||||
|
@ -133,4 +141,4 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", "
|
||||||
reloadItems(tabContent), updateFilterControls(tabContent)
|
reloadItems(tabContent), updateFilterControls(tabContent)
|
||||||
}, self.destroy = function() {}
|
}, self.destroy = function() {}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -29,13 +29,16 @@ define(["events", "libraryBrowser", "imageLoader", "listView", "loading", "emby-
|
||||||
|
|
||||||
function reloadItems(page) {
|
function reloadItems(page) {
|
||||||
loading.show();
|
loading.show();
|
||||||
|
isLoading = true;
|
||||||
var query = getQuery(page);
|
var query = getQuery(page);
|
||||||
ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function(result) {
|
ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function(result) {
|
||||||
function onNextPageClick() {
|
function onNextPageClick() {
|
||||||
|
if (isLoading) return;
|
||||||
query.StartIndex += query.Limit, reloadItems(tabContent)
|
query.StartIndex += query.Limit, reloadItems(tabContent)
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPreviousPageClick() {
|
function onPreviousPageClick() {
|
||||||
|
if (isLoading) return;
|
||||||
query.StartIndex -= query.Limit, reloadItems(tabContent)
|
query.StartIndex -= query.Limit, reloadItems(tabContent)
|
||||||
}
|
}
|
||||||
window.scrollTo(0, 0);
|
window.scrollTo(0, 0);
|
||||||
|
@ -61,11 +64,16 @@ define(["events", "libraryBrowser", "imageLoader", "listView", "loading", "emby-
|
||||||
for (elems = tabContent.querySelectorAll(".btnNextPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onNextPageClick);
|
for (elems = tabContent.querySelectorAll(".btnNextPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onNextPageClick);
|
||||||
for (elems = tabContent.querySelectorAll(".btnPreviousPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onPreviousPageClick);
|
for (elems = tabContent.querySelectorAll(".btnPreviousPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onPreviousPageClick);
|
||||||
var itemsContainer = tabContent.querySelector(".itemsContainer");
|
var itemsContainer = tabContent.querySelector(".itemsContainer");
|
||||||
itemsContainer.innerHTML = html, imageLoader.lazyChildren(itemsContainer), libraryBrowser.saveQueryValues(getSavedQueryKey(page), query), loading.hide()
|
itemsContainer.innerHTML = html;
|
||||||
|
imageLoader.lazyChildren(itemsContainer);
|
||||||
|
libraryBrowser.saveQueryValues(getSavedQueryKey(page), query);
|
||||||
|
loading.hide();
|
||||||
|
isLoading = false;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
var self = this,
|
var self = this,
|
||||||
data = {};
|
data = {},
|
||||||
|
isLoading = false;
|
||||||
self.showFilterMenu = function() {
|
self.showFilterMenu = function() {
|
||||||
require(["components/filterdialog/filterdialog"], function(filterDialogFactory) {
|
require(["components/filterdialog/filterdialog"], function(filterDialogFactory) {
|
||||||
var filterDialog = new filterDialogFactory({
|
var filterDialog = new filterDialogFactory({
|
||||||
|
@ -124,4 +132,4 @@ define(["events", "libraryBrowser", "imageLoader", "listView", "loading", "emby-
|
||||||
reloadItems(tabContent)
|
reloadItems(tabContent)
|
||||||
}, self.destroy = function() {}
|
}, self.destroy = function() {}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -36,14 +36,19 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", "
|
||||||
|
|
||||||
function reloadItems(page) {
|
function reloadItems(page) {
|
||||||
loading.show();
|
loading.show();
|
||||||
|
isLoading = true;
|
||||||
var query = getQuery(page);
|
var query = getQuery(page);
|
||||||
ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function(result) {
|
ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function(result) {
|
||||||
function onNextPageClick() {
|
function onNextPageClick() {
|
||||||
query.StartIndex += query.Limit, reloadItems(tabContent)
|
if (isLoading) return;
|
||||||
|
query.StartIndex += query.Limit;
|
||||||
|
reloadItems(tabContent);
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPreviousPageClick() {
|
function onPreviousPageClick() {
|
||||||
query.StartIndex -= query.Limit, reloadItems(tabContent)
|
if (isLoading) return;
|
||||||
|
query.StartIndex -= query.Limit;
|
||||||
|
reloadItems(tabContent);
|
||||||
}
|
}
|
||||||
window.scrollTo(0, 0), updateFilterControls(page);
|
window.scrollTo(0, 0), updateFilterControls(page);
|
||||||
var html, pagingHtml = libraryBrowser.getQueryPagingHtml({
|
var html, pagingHtml = libraryBrowser.getQueryPagingHtml({
|
||||||
|
@ -103,7 +108,11 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", "
|
||||||
for (elems = tabContent.querySelectorAll(".btnNextPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onNextPageClick);
|
for (elems = tabContent.querySelectorAll(".btnNextPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onNextPageClick);
|
||||||
for (elems = tabContent.querySelectorAll(".btnPreviousPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onPreviousPageClick);
|
for (elems = tabContent.querySelectorAll(".btnPreviousPage"), i = 0, length = elems.length; i < length; i++) elems[i].addEventListener("click", onPreviousPageClick);
|
||||||
var itemsContainer = tabContent.querySelector(".itemsContainer");
|
var itemsContainer = tabContent.querySelector(".itemsContainer");
|
||||||
itemsContainer.innerHTML = html, imageLoader.lazyChildren(itemsContainer), libraryBrowser.saveQueryValues(getSavedQueryKey(page), query), loading.hide()
|
itemsContainer.innerHTML = html;
|
||||||
|
imageLoader.lazyChildren(itemsContainer);
|
||||||
|
libraryBrowser.saveQueryValues(getSavedQueryKey(page), query);
|
||||||
|
loading.hide();
|
||||||
|
isLoading = false;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,7 +122,8 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", "
|
||||||
}
|
}
|
||||||
var self = this,
|
var self = this,
|
||||||
pageSize = 100,
|
pageSize = 100,
|
||||||
data = {};
|
data = {},
|
||||||
|
isLoading = false;
|
||||||
self.showFilterMenu = function() {
|
self.showFilterMenu = function() {
|
||||||
require(["components/filterdialog/filterdialog"], function(filterDialogFactory) {
|
require(["components/filterdialog/filterdialog"], function(filterDialogFactory) {
|
||||||
var filterDialog = new filterDialogFactory({
|
var filterDialog = new filterDialogFactory({
|
||||||
|
@ -183,4 +193,4 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", "
|
||||||
reloadItems(tabContent), updateFilterControls(tabContent)
|
reloadItems(tabContent), updateFilterControls(tabContent)
|
||||||
}, self.destroy = function() {}
|
}, self.destroy = function() {}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -37,7 +37,7 @@ define(["loading", "libraryMenu", "emby-linkbutton"], function(loading, libraryM
|
||||||
var userId = params.userId,
|
var userId = params.userId,
|
||||||
currentPassword = view.querySelector("#txtCurrentPassword").value,
|
currentPassword = view.querySelector("#txtCurrentPassword").value,
|
||||||
newPassword = view.querySelector("#txtNewPassword").value;
|
newPassword = view.querySelector("#txtNewPassword").value;
|
||||||
if(view.querySelector("#fldCurrentPassword").classList.contains("hide")) {
|
if (view.querySelector("#fldCurrentPassword").classList.contains("hide")) {
|
||||||
// Firefox does not respect autocomplete=off, so clear it if the field is supposed to be hidden (and blank)
|
// Firefox does not respect autocomplete=off, so clear it if the field is supposed to be hidden (and blank)
|
||||||
// This should only happen when user.HasConfiguredPassword is false, but this information is not passed on
|
// This should only happen when user.HasConfiguredPassword is false, but this information is not passed on
|
||||||
currentPassword = "";
|
currentPassword = "";
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue