define([
"exports",
"./../modules/viewmanager/basesettingsview.js",
"./../modules/loading/loading.js",
"./../modules/common/globalize.js",
"./../modules/emby-elements/emby-input/emby-input.js",
"./../modules/emby-elements/emby-button/emby-button.js",
"./../modules/emby-elements/emby-checkbox/emby-checkbox.js",
"./../modules/emby-elements/emby-select/emby-select.js",
"./../modules/emby-elements/emby-scroller/emby-scroller.js",
"./../modules/layoutmanager.js",
"./../modules/common/usersettings/usersettings.js",
"./../modules/common/usersettings/usersettingsbuilder.js",
"./../modules/emby-apiclient/connectionmanager.js",
"./../modules/listview/listview.js",
], function (
_exports,
_basesettingsview,
_loading,
_globalize,
_embyInput,
_embyButton,
_embyCheckbox,
_embySelect,
_embyScroller,
_layoutmanager,
_usersettings,
_usersettingsbuilder,
_connectionmanager,
_listview,
) {
function getLandingScreenOptionsHtml(type) {
return (function (type) {
var list = [];
return (
"movies" === type
? (list.push({
name: _globalize.default.translate("Movies"),
value: "movies",
isDefault: !0,
}),
list.push({
name: _globalize.default.translate("Suggestions"),
value: "suggestions",
}),
list.push({
name: _globalize.default.translate("Favorites"),
value: "favorites",
}),
list.push({
name: _globalize.default.translate("Genres"),
value: "genres",
}),
list.push({
name: _globalize.default.translate("Collections"),
value: "collections",
}),
list.push({
name: _globalize.default.translate("Folders"),
value: "folders",
}))
: "musicvideos" === type
? (list.push({
name: _globalize.default.translate("Videos"),
value: "videos",
isDefault: !0,
}),
list.push({
name: _globalize.default.translate("Folders"),
value: "folders",
}))
: "tvshows" === type
? (list.push({
name: _globalize.default.translate("Shows"),
value: "shows",
isDefault: !0,
}),
list.push({
name: _globalize.default.translate("Suggestions"),
value: "suggestions",
}),
list.push({
name: _globalize.default.translate("Favorites"),
value: "favorites",
}),
list.push({
name: _globalize.default.translate("Collections"),
value: "collections",
}),
list.push({
name: _globalize.default.translate("Genres"),
value: "genres",
}),
list.push({
name: _globalize.default.translate("Networks"),
value: "studios",
}),
list.push({
name: _globalize.default.translate("Folders"),
value: "folders",
}))
: "music" === type
? (list.push({
name: _globalize.default.translate("Suggestions"),
value: "suggestions",
isDefault: !0,
}),
list.push({
name: _globalize.default.translate("Albums"),
value: "albums",
}),
list.push({
name: _globalize.default.translate("HeaderAlbumArtists"),
value: "albumartists",
}),
list.push({
name: _globalize.default.translate("Artists"),
value: "artists",
}),
list.push({
name: _globalize.default.translate("Playlists"),
value: "playlists",
}),
list.push({
name: _globalize.default.translate("Genres"),
value: "genres",
}),
list.push({
name: _globalize.default.translate("Songs"),
value: "songs",
}),
list.push({
name: _globalize.default.translate("Folders"),
value: "folders",
}))
: "audiobooks" === type
? (list.push({
name: _globalize.default.translate("Suggestions"),
value: "suggestions",
isDefault: !0,
}),
list.push({
name: _globalize.default.translate("Books"),
value: "albums",
}),
list.push({
name: _globalize.default.translate("Authors"),
value: "artists",
}),
list.push({
name: _globalize.default.translate("Playlists"),
value: "playlists",
}),
list.push({
name: _globalize.default.translate("Genres"),
value: "genres",
}),
list.push({
name: _globalize.default.translate("Folders"),
value: "folders",
}))
: "livetv" === type
? (list.push({
name: _globalize.default.translate("Suggestions"),
value: "suggestions",
isDefault: !0,
}),
list.push({
name: _globalize.default.translate("Guide"),
value: "guide",
}),
list.push({
name: _globalize.default.translate("Channels"),
value: "channels",
}))
: "homevideos" === type &&
(list.push({
name: _globalize.default.translate("Videos"),
value: "videos",
}),
list.push({
name: _globalize.default.translate("Photos"),
value: "photos",
}),
list.push({
name: _globalize.default.translate("Folders"),
value: "folders",
})),
list
);
})(type)
.map(function (o) {
return (
'"
);
})
.join("");
}
function renderPerLibrarySettings(context, user, userViews) {
for (
var context = context.querySelector(".perLibrarySettings"),
html = "",
i = 0,
length = userViews.length;
i < length;
i++
)
html += (function (item, user) {
var html = "",
folderId = item.Guid || item.Id;
return (
("Channel" !== item.Type &&
"boxsets" !== item.CollectionType &&
"playlists" !== item.CollectionType) ||
(html =
(html =
(html += "
") +
'
"),
(html =
(html =
-1 ===
["playlists", "livetv", "boxsets", "channels"].indexOf(
item.CollectionType || "",
)
? (html =
html +
'"
: html) &&
'' + html + "
"),
("movies" !== item.CollectionType &&
"tvshows" !== item.CollectionType &&
"musicvideos" !== item.CollectionType &&
"music" !== item.CollectionType &&
"audiobooks" !== item.CollectionType &&
"livetv" !== item.CollectionType &&
"homevideos" !== item.CollectionType) ||
((folderId =
"landing-" +
(user =
"livetv" === item.CollectionType
? item.CollectionType
: folderId)),
(html =
(html =
(html += '') +
'
")),
html &&
((html =
"" +
'' +
'
' +
item.Name +
"
" +
html),
(html += "")),
html
);
})(userViews[i], user);
context.innerHTML = html;
}
function loadForm(context, user, userSettings, apiClient) {
apiClient = apiClient.getUserViews({ IncludeHidden: !0 }, user.Id);
return Promise.all([apiClient]).then(function (responses) {
!(function (context, result) {
var html = "";
(html += result.Items.map(function (view) {
var currentHtml = "";
return (
(currentHtml +=
'') +
'
' +
'
' +
"
" +
view.Name +
"
" +
"
" +
('
') +
('
') +
"
"
);
}).join("")),
(context.querySelector(".viewOrderList").innerHTML = html);
})(context, responses[0]),
renderPerLibrarySettings(context, user, responses[0].Items),
_loading.default.hide();
});
}
function getCheckboxItems(selector, context, isChecked) {
for (
var inputs = context.querySelectorAll(selector),
list = [],
i = 0,
length = inputs.length;
i < length;
i++
)
inputs[i].checked === isChecked && list.push(inputs[i]);
return list;
}
function onSubmit(e) {
return e && e.preventDefault(), !1;
}
function onTVHomeScreenChange() {
var fldHomeFocusPreviews = this.closest("form").querySelector(
".fldHomeFocusPreviews",
);
_layoutmanager.default.tv && "vertical" === this.value
? fldHomeFocusPreviews.classList.remove("hide")
: fldHomeFocusPreviews.classList.add("hide");
}
function embed(options, self) {
options.element.querySelector(".viewOrderList").addEventListener(
"click",
function (e) {
if ((target = e.target.closest(".btnViewItemMove"))) {
var viewItem = target.closest(".viewItem");
if (
(viewItem &&
(target.classList.contains("btnViewItemDown")
? (target = viewItem.nextElementSibling) &&
(viewItem.parentNode.removeChild(viewItem),
target.parentNode.insertBefore(
viewItem,
target.nextElementSibling,
),
(changed = !0))
: (target = viewItem.previousElementSibling) &&
(viewItem.parentNode.removeChild(viewItem),
target.parentNode.insertBefore(viewItem, target),
(changed = !0))),
changed)
) {
for (
var viewItem = this.options,
target = _connectionmanager.default.getApiClient(
viewItem.serverId,
),
changed = viewItem.userId,
viewItem = {},
viewItems = e.target
.closest("form")
.querySelectorAll(".viewItem"),
orderedViews = [],
i = 0,
length = viewItems.length;
i < length;
i++
)
orderedViews.push(viewItems[i].getAttribute("data-viewid"));
(viewItem.OrderedViews = orderedViews),
target.updatePartialUserConfiguration(changed, viewItem);
}
}
}.bind(self),
),
options.element
.querySelector("form")
.addEventListener("submit", onSubmit.bind(self)),
options.element.addEventListener(
"change",
function (e) {
var fldIncludeInLatest,
options = this.options,
apiClient = _connectionmanager.default.getApiClient(
options.serverId,
),
options = options.userId,
context = e.target.closest("form"),
chkIncludeInMyMedia = e.target.closest(".chkIncludeInMyMedia");
chkIncludeInMyMedia
? ((fldIncludeInLatest = chkIncludeInMyMedia
.closest(".verticalSection")
.querySelector(".fldIncludeInLatest")) &&
(chkIncludeInMyMedia.checked
? fldIncludeInLatest.classList.remove("hide")
: fldIncludeInLatest.classList.add("hide")),
((chkIncludeInMyMedia = {}).MyMediaExcludes = getCheckboxItems(
".chkIncludeInMyMedia",
context,
!1,
).map(function (i) {
return i.getAttribute("data-folderid");
})),
apiClient.updatePartialUserConfiguration(
options,
chkIncludeInMyMedia,
))
: e.target.closest(".chkIncludeInLatest") &&
(((fldIncludeInLatest = {}).LatestItemsExcludes =
getCheckboxItems(".chkIncludeInLatest", context, !1).map(
function (i) {
return i.getAttribute("data-folderid");
},
)),
apiClient.updatePartialUserConfiguration(
options,
fldIncludeInLatest,
));
}.bind(self),
);
self = options.element.querySelector(".selectTVHomeScreenContainer");
_layoutmanager.default.tv
? self.classList.remove("hide")
: self.classList.add("hide"),
options.element
.querySelector(".selectTVHomeScreen")
.addEventListener("change", onTVHomeScreenChange);
}
function HomeScreenSettings(options) {
embed((this.options = options), this);
}
function View(view, params) {
_basesettingsview.default.apply(this, arguments);
var apiClient = _connectionmanager.default.getApiClient(params.serverId),
userId = params.userId || apiClient.getCurrentUserId(),
userSettings =
userId === apiClient.getCurrentUserId()
? _usersettings.default
: new _usersettingsbuilder.default(),
apiClient = {
serverId: apiClient.serverId(),
userId: userId,
element: view.querySelector(".settingsContainer"),
userSettings: userSettings,
};
(this.settingsOptions = apiClient),
(this.settingsInstance = new HomeScreenSettings(this.settingsOptions));
}
Object.defineProperty(_exports, "__esModule", { value: !0 }),
(_exports.default = void 0),
(HomeScreenSettings.prototype.loadData = function () {
var self = this,
context = self.options.element,
userId = (_loading.default.show(), self.options.userId),
apiClient = _connectionmanager.default.getApiClient(
self.options.serverId,
),
userSettings = self.options.userSettings;
return (
(function (context) {
for (
var elems = context.querySelectorAll('option[value="nextup"]'),
i = 0,
length = elems.length;
i < length;
i++
)
elems[i].innerHTML =
_globalize.default.translate("HeaderNextUp") + " (Legacy)";
})(context),
apiClient.getUser(userId).then(function (user) {
return (
(self.options.user = user),
(userId === apiClient.getCurrentUserId()
? Promise.resolve()
: userSettings.setUserInfo(userId, apiClient)
).then(function () {
return loadForm(context, user, 0, apiClient);
})
);
})
);
}),
(HomeScreenSettings.prototype.submit = function () {
onSubmit.call(this);
}),
(HomeScreenSettings.prototype.destroy = function () {
this.options = null;
}),
Object.assign(View.prototype, _basesettingsview.default.prototype),
(View.prototype.loadSettingsInternal = function () {
var instance = this;
return this.settingsInstance.loadData().then(function () {
return instance.loadAutoSettings();
});
}),
(View.prototype.getAutoSettingsObjectsPromises = function () {
var options,
list =
_basesettingsview.default.prototype.getAutoSettingsObjectsPromises.apply(
this,
arguments,
);
return (
list.push(
((options = this.settingsOptions),
Promise.resolve({
key: "userconfiguration",
value: options.user.Configuration,
})),
),
list
);
}),
(View.prototype.getUserConfigurationUserId = function () {
return this.settingsOptions.userId;
}),
(View.prototype.getNamedSettingsOwner = function (owner) {
switch (owner) {
case "usersettings":
return this.settingsOptions.userSettings;
case "userconfiguration":
return this.settingsOptions.user.Configuration;
default:
return _basesettingsview.default.prototype.getNamedSettingsOwner.apply(
this,
arguments,
);
}
}),
(View.prototype.onPause = function () {
this.settingsInstance && this.settingsInstance.submit(),
_basesettingsview.default.prototype.onPause.apply(this, arguments);
}),
(View.prototype.destroy = function () {
_basesettingsview.default.prototype.destroy.apply(this, arguments),
this.settingsInstance &&
(this.settingsInstance.destroy(), (this.settingsInstance = null)),
(this.settingsOptions = null);
}),
(_exports.default = View);
});