mirror of https://github.com/jellyfin/jellyfin.git
171 lines
9.0 KiB
HTML
171 lines
9.0 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>TMDb</title>
|
|
</head>
|
|
<body>
|
|
<div id="configPage" data-role="page" class="page type-interior pluginConfigurationPage configPage" data-require="emby-input,emby-button,emby-checkbox">
|
|
<div data-role="content">
|
|
<div class="content-primary">
|
|
<h1>TMDb</h1>
|
|
<form class="configForm">
|
|
<label class="checkboxContainer">
|
|
<input is="emby-checkbox" type="checkbox" id="includeAdult" />
|
|
<span>Include adult content in search results.</span>
|
|
</label>
|
|
<label class="checkboxContainer">
|
|
<input is="emby-checkbox" type="checkbox" id="excludeTagsSeries" />
|
|
<span>Exclude tags/keywords from metadata fetched for series.</span>
|
|
</label>
|
|
<label class="checkboxContainer">
|
|
<input is="emby-checkbox" type="checkbox" id="excludeTagsMovies" />
|
|
<span>Exclude tags/keywords from metadata fetched for movies.</span>
|
|
</label>
|
|
<label class="checkboxContainer">
|
|
<input is="emby-checkbox" type="checkbox" id="importSeasonName" />
|
|
<span>Import season name from metadata fetched for series.</span>
|
|
</label>
|
|
<div class="inputContainer">
|
|
<input is="emby-input" type="number" id="maxCastMembers" pattern="[0-9]*" required min="0" max="1000" label="Max Cast Members" />
|
|
<div class="fieldDescription">The maximum number of cast members to fetch for an item.</div>
|
|
</div>
|
|
<div class="verticalSection verticalSection-extrabottompadding">
|
|
<h2>Image Scaling</h2>
|
|
<div class="selectContainer">
|
|
<select is="emby-select" id="selectPosterSize" label="Poster"></select>
|
|
</div>
|
|
<div class="selectContainer">
|
|
<select is="emby-select" id="selectBackdropSize" label="Backdrop"></select>
|
|
</div>
|
|
<div class="selectContainer">
|
|
<select is="emby-select" id="selectLogoSize" label="Logo"></select>
|
|
</div>
|
|
<div class="selectContainer">
|
|
<select is="emby-select" id="selectProfileSize" label="Profile"></select>
|
|
</div>
|
|
<div class="selectContainer">
|
|
<select is="emby-select" id="selectStillSize" label="Still"></select>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<button is="emby-button" type="submit" class="raised button-submit block"><span>Save</span></button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
var PluginConfig = {
|
|
pluginId: "b8715ed1-6c47-4528-9ad3-f72deb539cd4"
|
|
};
|
|
|
|
document.querySelector('.configPage')
|
|
.addEventListener('pageshow', function () {
|
|
Dashboard.showLoadingMsg();
|
|
|
|
var clientConfig, pluginConfig;
|
|
var configureImageScaling = function() {
|
|
if (clientConfig === undefined || pluginConfig === undefined) {
|
|
return;
|
|
}
|
|
if (Object.keys(clientConfig).length === 0) {
|
|
clientConfig = {
|
|
PosterSizes: [pluginConfig.PosterSize],
|
|
BackdropSizes: [pluginConfig.BackdropSize],
|
|
LogoSizes: [pluginConfig.LogoSize],
|
|
ProfileSizes: [pluginConfig.ProfileSize],
|
|
StillSizes: [pluginConfig.StillSize]
|
|
};
|
|
}
|
|
|
|
var sizeOptionsGenerator = function (size) {
|
|
return '<option value="' + size + '">' + size + '</option>';
|
|
}
|
|
|
|
var selPosterSize = document.querySelector('#selectPosterSize');
|
|
selPosterSize.innerHTML = clientConfig.PosterSizes.map(sizeOptionsGenerator);
|
|
selPosterSize.value = pluginConfig.PosterSize;
|
|
|
|
var selBackdropSize = document.querySelector('#selectBackdropSize');
|
|
selBackdropSize.innerHTML = clientConfig.BackdropSizes.map(sizeOptionsGenerator);
|
|
selBackdropSize.value = pluginConfig.BackdropSize;
|
|
|
|
var selLogoSize = document.querySelector('#selectLogoSize');
|
|
selLogoSize.innerHTML = clientConfig.LogoSizes.map(sizeOptionsGenerator);
|
|
selLogoSize.value = pluginConfig.LogoSize;
|
|
|
|
var selProfileSize = document.querySelector('#selectProfileSize');
|
|
selProfileSize.innerHTML = clientConfig.ProfileSizes.map(sizeOptionsGenerator);
|
|
selProfileSize.value = pluginConfig.ProfileSize;
|
|
|
|
var selStillSize = document.querySelector('#selectStillSize');
|
|
selStillSize.innerHTML = clientConfig.StillSizes.map(sizeOptionsGenerator);
|
|
selStillSize.value = pluginConfig.StillSize;
|
|
|
|
Dashboard.hideLoadingMsg();
|
|
}
|
|
|
|
const request = {
|
|
url: ApiClient.getUrl('tmdb/ClientConfiguration'),
|
|
dataType: 'json',
|
|
type: 'GET',
|
|
headers: { accept: 'application/json' }
|
|
}
|
|
ApiClient.fetch(request).then(function (config) {
|
|
clientConfig = config;
|
|
configureImageScaling();
|
|
}, function (error) {
|
|
error.text().then(function (contents) {
|
|
Dashboard.alert({
|
|
title: error.statusText,
|
|
message: contents
|
|
});
|
|
clientConfig = {};
|
|
configureImageScaling();
|
|
});
|
|
});
|
|
|
|
ApiClient.getPluginConfiguration(PluginConfig.pluginId).then(function (config) {
|
|
document.querySelector('#includeAdult').checked = config.IncludeAdult;
|
|
document.querySelector('#excludeTagsSeries').checked = config.ExcludeTagsSeries;
|
|
document.querySelector('#excludeTagsMovies').checked = config.ExcludeTagsMovies;
|
|
document.querySelector('#importSeasonName').checked = config.ImportSeasonName;
|
|
|
|
var maxCastMembers = document.querySelector('#maxCastMembers');
|
|
maxCastMembers.value = config.MaxCastMembers;
|
|
maxCastMembers.dispatchEvent(new Event('change', {
|
|
bubbles: true,
|
|
cancelable: false
|
|
}));
|
|
|
|
pluginConfig = config;
|
|
configureImageScaling();
|
|
});
|
|
});
|
|
|
|
|
|
document.querySelector('.configForm')
|
|
.addEventListener('submit', function (e) {
|
|
Dashboard.showLoadingMsg();
|
|
|
|
ApiClient.getPluginConfiguration(PluginConfig.pluginId).then(function (config) {
|
|
config.IncludeAdult = document.querySelector('#includeAdult').checked;
|
|
config.ExcludeTagsSeries = document.querySelector('#excludeTagsSeries').checked;
|
|
config.ExcludeTagsMovies = document.querySelector('#excludeTagsMovies').checked;
|
|
config.ImportSeasonName = document.querySelector('#importSeasonName').checked;
|
|
config.MaxCastMembers = document.querySelector('#maxCastMembers').value;
|
|
config.PosterSize = document.querySelector('#selectPosterSize').value;
|
|
config.BackdropSize = document.querySelector('#selectBackdropSize').value;
|
|
config.LogoSize = document.querySelector('#selectLogoSize').value;
|
|
config.ProfileSize = document.querySelector('#selectProfileSize').value;
|
|
config.StillSize = document.querySelector('#selectStillSize').value;
|
|
ApiClient.updatePluginConfiguration(PluginConfig.pluginId, config).then(Dashboard.processPluginConfigurationUpdateResult);
|
|
});
|
|
|
|
e.preventDefault();
|
|
return false;
|
|
});
|
|
</script>
|
|
</div>
|
|
</body>
|
|
</html>
|