mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
commit
0b82afacf2
16 changed files with 106 additions and 67 deletions
|
@ -30,21 +30,17 @@
|
|||
<div class="fieldDescription">
|
||||
<div>${LabelWatchFolderHelp}</div>
|
||||
</div>
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
<label for="txtMinFileSize">${LabelMinFileSizeForOrganize}</label>
|
||||
<input type="number" id="txtMinFileSize" name="txtMinFileSize" pattern="[0-9]*" required="required" min="0" />
|
||||
<paper-input type="number" id="txtMinFileSize" name="txtMinFileSize" label="${LabelMinFileSizeForOrganize}" pattern="[0-9]*" min="0" required></paper-input>
|
||||
<div class="fieldDescription">${LabelMinFileSizeForOrganizeHelp}</div>
|
||||
</li>
|
||||
<li>
|
||||
<label for="txtSeasonFolderPattern">${LabelSeasonFolderPattern}</label>
|
||||
<input type="text" id="txtSeasonFolderPattern" name="txtSeasonFolderPattern" required="required" />
|
||||
<paper-input type="text" id="txtSeasonFolderPattern" name="txtSeasonFolderPattern" label="${LabelSeasonFolderPattern}" required></paper-input>
|
||||
<div class="fieldDescription seasonFolderFieldDescription"></div>
|
||||
</li>
|
||||
<li>
|
||||
<label for="txtSeasonZeroName">${LabelSeasonZeroFolderName}</label>
|
||||
<input type="text" id="txtSeasonZeroName" name="txtSeasonZeroName" required="required" />
|
||||
<paper-input type="text" id="txtSeasonZeroName" name="txtSeasonZeroName" label="${LabelSeasonZeroFolderName}" required></paper-input>
|
||||
</li>
|
||||
</ul>
|
||||
<div data-role="collapsible">
|
||||
|
@ -52,14 +48,12 @@
|
|||
<div>
|
||||
<br />
|
||||
<div>
|
||||
<label for="txtEpisodePattern">${LabelEpisodePattern}</label>
|
||||
<input type="text" id="txtEpisodePattern" name="txtEpisodePattern" required="required" />
|
||||
<paper-input type="text" id="txtEpisodePattern" name="txtEpisodePattern" label="${LabelEpisodePattern}" required></paper-input>
|
||||
<div class="fieldDescription episodePatternDescription"></div>
|
||||
</div>
|
||||
<br />
|
||||
<div>
|
||||
<label for="txtMultiEpisodePattern">${LabelMultiEpisodePattern}</label>
|
||||
<input type="text" id="txtMultiEpisodePattern" name="txtMultiEpisodePattern" required="required" />
|
||||
<paper-input type="text" id="txtMultiEpisodePattern" name="txtMultiEpisodePattern" label="${LabelMultiEpisodePattern}" required></paper-input>
|
||||
<div class="fieldDescription multiEpisodePatternDescription"></div>
|
||||
</div>
|
||||
|
||||
|
@ -143,7 +137,7 @@
|
|||
<br />
|
||||
<ul data-role="listview" class="ulForm">
|
||||
<li>
|
||||
<label for="copyOrMoveFile">${LabelTransferMethod}</label>
|
||||
<label for="copyOrMoveFile" class="selectLabel">${LabelTransferMethod}</label>
|
||||
<select id="copyOrMoveFile" data-mini="true">
|
||||
<option value="true">${OptionCopy}</option>
|
||||
<option value="false">${OptionMove}</option>
|
||||
|
@ -155,8 +149,7 @@
|
|||
<label for="chkOverwriteExistingEpisodes">${OptionOverwriteExistingEpisodes}</label>
|
||||
</li>
|
||||
<li>
|
||||
<label for="txtDeleteLeftOverFiles">${LabelDeleteLeftOverFiles}</label>
|
||||
<input type="text" id="txtDeleteLeftOverFiles" name="txtDeleteLeftOverFiles" />
|
||||
<paper-input type="text" id="txtDeleteLeftOverFiles" name="txtDeleteLeftOverFiles" label="${LabelDeleteLeftOverFiles}"></paper-input>
|
||||
<div class="fieldDescription">${LabelDeleteLeftOverFilesHelp}</div>
|
||||
</li>
|
||||
<li>
|
||||
|
|
|
@ -16,12 +16,12 @@
|
|||
},
|
||||
"devDependencies": {},
|
||||
"ignore": [],
|
||||
"version": "1.0.34",
|
||||
"_release": "1.0.34",
|
||||
"version": "1.0.35",
|
||||
"_release": "1.0.35",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "1.0.34",
|
||||
"commit": "1bbacdd65aa7c7af955cdd7f0500a4419064a98b"
|
||||
"tag": "1.0.35",
|
||||
"commit": "d84b62c2a98faed179e07ef805e54cd7e6d2e036"
|
||||
},
|
||||
"_source": "git://github.com/MediaBrowser/Emby.ApiClient.Javascript.git",
|
||||
"_target": "~1.0.3",
|
||||
|
|
|
@ -3414,5 +3414,35 @@
|
|||
|
||||
return self.getJSON(url);
|
||||
};
|
||||
|
||||
self.getSmartMatchInfos = function (options) {
|
||||
|
||||
options = options || {};
|
||||
|
||||
var url = self.getUrl("Library/FileOrganizations/SmartMatches", options);
|
||||
|
||||
return self.ajax({
|
||||
type: "GET",
|
||||
url: url,
|
||||
dataType: "json"
|
||||
});
|
||||
};
|
||||
|
||||
self.deleteSmartMatchEntry = function (name, options) {
|
||||
|
||||
var url = self.getUrl("Library/FileOrganizations/SmartMatches", options || {});
|
||||
|
||||
var postData = {
|
||||
Name: name
|
||||
};
|
||||
|
||||
return self.ajax({
|
||||
|
||||
type: "POST",
|
||||
url: url,
|
||||
data: JSON.stringify(postData),
|
||||
contentType: "application/json"
|
||||
});
|
||||
};
|
||||
};
|
||||
});
|
|
@ -1056,7 +1056,7 @@
|
|||
var template = this.response;
|
||||
var dlg = paperDialogHelper.createDialog({
|
||||
removeOnClose: true,
|
||||
size: 'small'
|
||||
size: 'medium'
|
||||
});
|
||||
|
||||
dlg.classList.add('ui-body-b');
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
</paper-button>
|
||||
</div>
|
||||
|
||||
<form class="editItemMetadataForm editMetadataForm ">
|
||||
<form class="editItemMetadataForm editMetadataForm" style="margin:0;">
|
||||
<div class="metadataFormFields">
|
||||
|
||||
<div style="padding: 0 0 10px;">
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
var template = this.response;
|
||||
var dlg = paperDialogHelper.createDialog({
|
||||
removeOnClose: true,
|
||||
size: 'small'
|
||||
size: 'medium'
|
||||
});
|
||||
|
||||
dlg.classList.add('ui-body-b');
|
||||
|
@ -28,9 +28,9 @@
|
|||
dlg.innerHTML = html;
|
||||
document.body.appendChild(dlg);
|
||||
|
||||
$('#txtPersonName', dlg).val(person.Name || '');
|
||||
$('#selectPersonType', dlg).val(person.Type || '');
|
||||
$('#txtPersonRole', dlg).val(person.Role || '');
|
||||
$('.txtPersonName', dlg).val(person.Name || '');
|
||||
$('.selectPersonType', dlg).val(person.Type || '');
|
||||
$('.txtPersonRole', dlg).val(person.Role || '');
|
||||
|
||||
paperDialogHelper.open(dlg);
|
||||
|
||||
|
@ -52,9 +52,9 @@
|
|||
|
||||
submitted = true;
|
||||
|
||||
person.Name = $('#txtPersonName', dlg).val();
|
||||
person.Type = $('#selectPersonType', dlg).val();
|
||||
person.Role = $('#txtPersonRole', dlg).val() || null;
|
||||
person.Name = $('.txtPersonName', dlg).val();
|
||||
person.Type = $('.selectPersonType', dlg).val();
|
||||
person.Role = $('.txtPersonRole', dlg).val() || null;
|
||||
|
||||
paperDialogHelper.close(dlg);
|
||||
|
||||
|
|
|
@ -8,13 +8,13 @@
|
|||
<form class="popupEditPersonForm" style="max-width: none;margin:0;">
|
||||
|
||||
<div>
|
||||
<paper-input type="text" id="txtPersonName" required="required" label="${LabelName}"></paper-input>
|
||||
<paper-input type="text" class="txtPersonName" required="required" label="${LabelName}"></paper-input>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<div>
|
||||
<label for="selectPersonType" class="selectLabel">${LabelType}</label>
|
||||
<select id="selectPersonType" data-mini="true">
|
||||
<select id="selectPersonType" class="selectPersonType" data-mini="true">
|
||||
<option value=""></option>
|
||||
<option value="Actor">${OptionActor}</option>
|
||||
<option value="Composer">${OptionComposer}</option>
|
||||
|
@ -25,7 +25,7 @@
|
|||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<paper-input type="text" id="txtPersonRole" label="${LabelPersonRole}"></paper-input>
|
||||
<paper-input type="text" class="txtPersonRole" label="${LabelPersonRole}"></paper-input>
|
||||
<div class="fieldDescription">${LabelPersonRoleHelp}</div>
|
||||
</div>
|
||||
<br />
|
||||
|
|
|
@ -551,15 +551,18 @@
|
|||
function updateCastIcon(context) {
|
||||
|
||||
var info = MediaController.getPlayerInfo();
|
||||
var btnCast = context.querySelector('.nowPlayingCastIcon');
|
||||
|
||||
if (info.isLocalPlayer) {
|
||||
|
||||
context.querySelector('.nowPlayingCastIcon').icon = 'cast';
|
||||
btnCast.icon = 'cast';
|
||||
btnCast.classList.remove('btnActiveCast');
|
||||
context.querySelector('.nowPlayingSelectedPlayer').innerHTML = '';
|
||||
|
||||
} else {
|
||||
|
||||
context.querySelector('.nowPlayingCastIcon').icon = 'cast-connected';
|
||||
btnCast.icon = 'cast-connected';
|
||||
btnCast.classList.add('btnActiveCast');
|
||||
context.querySelector('.nowPlayingSelectedPlayer').innerHTML = info.deviceName || info.name;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title>${TitleDlna}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="dlnaSettingsPage" data-role="page" class="page type-interior dlnaPage" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Play%20to" data-require="scripts/dlnasettings,paper-input">
|
||||
<div id="dlnaSettingsPage" data-role="page" class="page type-interior dlnaPage" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Play%20to" data-require="scripts/dlnasettings,paper-input,paper-checkbox">
|
||||
|
||||
<div data-role="content">
|
||||
<div class="content-primary">
|
||||
|
@ -19,14 +19,12 @@
|
|||
|
||||
<ul data-role="listview" class="ulForm">
|
||||
<li>
|
||||
<label for="chkEnablePlayTo">${LabelEnableDlnaPlayTo}</label>
|
||||
<input type="checkbox" id="chkEnablePlayTo" data-mini="true" />
|
||||
<div class="fieldDescription">${LabelEnableDlnaPlayToHelp}</div>
|
||||
<paper-checkbox type="checkbox" id="chkEnablePlayTo">${LabelEnableDlnaPlayTo}</paper-checkbox>
|
||||
<div class="fieldDescription paperCheckboxFieldDescription">${LabelEnableDlnaPlayToHelp}</div>
|
||||
</li>
|
||||
<li>
|
||||
<label for="chkEnableDlnaDebugLogging">${LabelEnableDlnaDebugLogging}</label>
|
||||
<input type="checkbox" id="chkEnableDlnaDebugLogging" data-mini="true" />
|
||||
<div class="fieldDescription">${LabelEnableDlnaDebugLoggingHelp}</div>
|
||||
<paper-checkbox type="checkbox" id="chkEnableDlnaDebugLogging">${LabelEnableDlnaDebugLogging}</paper-checkbox>
|
||||
<div class="fieldDescription paperCheckboxFieldDescription">${LabelEnableDlnaDebugLoggingHelp}</div>
|
||||
</li>
|
||||
<li>
|
||||
<paper-input type="number" id="txtClientDiscoveryInterval" min="1" max="300" label="${LabelEnableDlnaClientDiscoveryInterval}"></paper-input>
|
||||
|
|
|
@ -19,8 +19,11 @@
|
|||
populateList(page, infos);
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
}, onApiFailure);
|
||||
|
||||
}, function () {
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
});
|
||||
}
|
||||
|
||||
function populateList(page, result) {
|
||||
|
@ -55,8 +58,7 @@
|
|||
if (info.OrganizerType != currentType) {
|
||||
currentType = info.OrganizerType;
|
||||
|
||||
if (html.length > 0)
|
||||
{
|
||||
if (html.length > 0) {
|
||||
html += "</ul>";
|
||||
}
|
||||
|
||||
|
@ -74,7 +76,7 @@
|
|||
|
||||
html += "<p>" + info.MatchStrings[n] + "</p>";
|
||||
|
||||
html += "<a id='btnDeleteMatchEntry" + info.Id + "' class='btnDeleteMatchEntry' href='#' data-id='" + info.Id + "' data-matchstring='" + info.MatchStrings[n] + "' data-icon='delete'>" + Globalize.translate('ButtonDelete') + "</a>";
|
||||
html += "<a id='btnDeleteMatchEntry" + info.Id + "' class='btnDeleteMatchEntry' href='#' data-id='" + info.Id + "' data-matchstring='" + info.MatchStrings[n] + "' data-icon='delete'>" + Globalize.translate('ButtonDelete') + "</a>";
|
||||
|
||||
html += "</a>";
|
||||
|
||||
|
@ -92,8 +94,7 @@
|
|||
Dashboard.hideLoadingMsg();
|
||||
|
||||
Dashboard.alert({
|
||||
title: Globalize.translate('AutoOrganizeError'),
|
||||
message: Globalize.translate('ErrorOrganizingFileWithErrorCode', e.getResponseHeader("X-Application-Error-Code"))
|
||||
message: Globalize.translate('DefaultErrorMessage')
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -2,8 +2,9 @@
|
|||
|
||||
function loadPage(page, config) {
|
||||
|
||||
$('#chkEnablePlayTo', page).checked(config.EnablePlayTo).checkboxradio("refresh");
|
||||
$('#chkEnableDlnaDebugLogging', page).checked(config.EnableDebugLogging).checkboxradio("refresh");
|
||||
page.querySelector('#chkEnablePlayTo').checked = config.EnablePlayTo;
|
||||
page.querySelector('#chkEnableDlnaDebugLogging').checked = config.EnableDebugLogging;
|
||||
|
||||
$('#txtClientDiscoveryInterval', page).val(config.ClientDiscoveryIntervalSeconds);
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
|
@ -17,8 +18,9 @@
|
|||
|
||||
ApiClient.getNamedConfiguration("dlna").then(function (config) {
|
||||
|
||||
config.EnablePlayTo = $('#chkEnablePlayTo', form).checked();
|
||||
config.EnableDebugLogging = $('#chkEnableDlnaDebugLogging', form).checked();
|
||||
config.EnablePlayTo = form.querySelector('#chkEnablePlayTo').checked;
|
||||
config.EnableDebugLogging = form.querySelector('#chkEnableDlnaDebugLogging').checked;
|
||||
|
||||
config.ClientDiscoveryIntervalSeconds = $('#txtClientDiscoveryInterval', form).val();
|
||||
|
||||
ApiClient.updateNamedConfiguration("dlna", config).then(Dashboard.processServerConfigurationUpdateResult);
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
function loadPage(page, config) {
|
||||
|
||||
$('#chkEnableDebugEncodingLogging', page).checked(config.EnableDebugLogging).checkboxradio('refresh');
|
||||
page.querySelector('#chkEnableThrottle').checked = config.EnableThrottling;
|
||||
|
||||
$('.radioEncodingQuality', page).each(function () {
|
||||
|
@ -28,7 +27,6 @@
|
|||
|
||||
ApiClient.getNamedConfiguration("encoding").then(function (config) {
|
||||
|
||||
config.EnableDebugLogging = $('#chkEnableDebugEncodingLogging', form).checked();
|
||||
config.EncodingQuality = $('.radioEncodingQuality:checked', form).val();
|
||||
config.DownMixAudioBoost = $('#txtDownMixAudioBoost', form).val();
|
||||
config.TranscodingTempPath = $('#txtTranscodingTempPath', form).val();
|
||||
|
|
|
@ -674,22 +674,24 @@
|
|||
|
||||
function updateCastIcon() {
|
||||
|
||||
var context = document;
|
||||
|
||||
var btnCast = context.querySelector('.btnCast');
|
||||
|
||||
var info = MediaController.getPlayerInfo();
|
||||
|
||||
if (info.isLocalPlayer) {
|
||||
|
||||
$('.btnCast').removeClass('btnActiveCast').each(function () {
|
||||
this.icon = 'cast';
|
||||
});
|
||||
$('.headerSelectedPlayer').html('');
|
||||
btnCast.icon = 'cast';
|
||||
btnCast.classList.remove('btnActiveCast');
|
||||
|
||||
context.querySelector('.headerSelectedPlayer').innerHTML = '';
|
||||
|
||||
} else {
|
||||
|
||||
$('.btnCast').addClass('btnActiveCast').each(function () {
|
||||
this.icon = 'cast-connected';
|
||||
});
|
||||
|
||||
$('.headerSelectedPlayer').html((info.deviceName || info.name));
|
||||
btnCast.icon = 'cast-connected';
|
||||
btnCast.classList.add('btnActiveCast');
|
||||
context.querySelector('.headerSelectedPlayer').innerHTML = info.deviceName || info.name;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -792,6 +794,21 @@
|
|||
}
|
||||
}
|
||||
|
||||
pageClassOn('pageinit', 'page', function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
var isLibraryPage = page.classList.contains('libraryPage');
|
||||
|
||||
if (isLibraryPage) {
|
||||
|
||||
var navs = page.querySelectorAll('.libraryViewNav');
|
||||
for (var i = 0, length = navs.length; i < length; i++) {
|
||||
initHeadRoom(navs[i]);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
pageClassOn('pagebeforeshow', 'page', function () {
|
||||
|
||||
var page = this;
|
||||
|
@ -823,11 +840,6 @@
|
|||
document.body.classList.add('libraryDocument');
|
||||
document.body.classList.remove('dashboardDocument');
|
||||
document.body.classList.remove('hideMainDrawer');
|
||||
|
||||
var navs = page.querySelectorAll('.libraryViewNav');
|
||||
for (var i = 0, length = navs.length; i < length; i++) {
|
||||
initHeadRoom(navs[i]);
|
||||
}
|
||||
}
|
||||
else if (page.classList.contains('type-interior')) {
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
});
|
||||
}
|
||||
|
||||
function showPlayerSelection(button) {
|
||||
function showPlayerSelection(button, enableHistory) {
|
||||
|
||||
var playerInfo = MediaController.getPlayerInfo();
|
||||
|
||||
|
@ -101,6 +101,7 @@
|
|||
title: Globalize.translate('HeaderSelectPlayer'),
|
||||
items: menuItems,
|
||||
positionTo: button,
|
||||
enableHistory: enableHistory !== false,
|
||||
callback: function (id) {
|
||||
|
||||
var target = targets.filter(function (t) {
|
||||
|
|
|
@ -743,6 +743,7 @@
|
|||
|
||||
html += '<paper-slider pin step="1" min="0" max="100" value="0" class="videoVolumeSlider" style="width:100px;vertical-align:middle;margin-left:-1em;margin-right:2em;display:inline-block;"></paper-slider>';
|
||||
|
||||
html += '<paper-icon-button icon="cast" class="mediaButton castButton" onclick="MediaController.showPlayerSelection(this, false);" style="width:32px;height:32px;"></paper-icon-button>';
|
||||
html += '<paper-icon-button icon="fullscreen" class="mediaButton fullscreenButton" onclick="MediaPlayer.toggleFullscreen();" id="video-fullscreenButton"></paper-icon-button>';
|
||||
html += '<paper-icon-button icon="info" class="mediaButton infoButton" onclick="MediaPlayer.toggleInfo();"></paper-icon-button>';
|
||||
//html += '<paper-icon-button icon="dvr" class="mediaButton guideButton" onclick="MediaPlayer.toggleGuide();"></paper-icon-button>';
|
||||
|
|
|
@ -1640,7 +1640,7 @@ var AppInfo = {};
|
|||
function initializeApiClient(apiClient) {
|
||||
|
||||
if (AppInfo.enableAppStorePolicy) {
|
||||
apiClient.getAvailablePlugins = function() {
|
||||
apiClient.getAvailablePlugins = function () {
|
||||
return Promise.resolve([]);
|
||||
};
|
||||
apiClient.getInstalledPlugins = function () {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue