1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

display metadata fields locks

This commit is contained in:
Luis Miguel Almánzar 2013-06-15 01:30:48 -04:00
parent e3b7710c62
commit cda277fed5
3 changed files with 95 additions and 17 deletions

View file

@ -993,3 +993,7 @@ input[type="range"]::-ms-fill-upper {
#editItemMetadataPage #txtOverview {
height: 70px;
}
#editItemMetadataPage #providerSettingsContainer .ui-slider-switch {
width: 8em;
}

View file

@ -105,7 +105,7 @@
<option value='Saturday'>Saturday</option>
<option value='Sunday'>Sunday</option>
</select>
<a data-role="button" data-theme="b" data-inline="true" data-mini="true" data-icon="plus" onclick="EditItemMetadataPage.AddElementToEditableListview(this,EditItemMetadataPage.sortDaysOfTheWeek)">Add</a>
<a data-role="button" data-theme="b" data-inline="true" data-mini="true" data-icon="plus" onclick="EditItemMetadataPage.addElementToEditableListview(this,EditItemMetadataPage.sortDaysOfTheWeek)">Add</a>
</div>
<ul data-role="listview" data-inset="true" data-split-icon="delete" id="listAirDays"></ul>
</div>
@ -150,7 +150,7 @@
<div data-role="editableListviewContainer">
<div data-role="fieldcontain">
<input type="text" data-mini="true" />
<a data-role="button" data-theme="b" data-inline="true" data-mini="true" data-icon="plus" onclick="EditItemMetadataPage.AddElementToEditableListview(this)">Add</a>
<a data-role="button" data-theme="b" data-inline="true" data-mini="true" data-icon="plus" onclick="editItemMetadataPage.addElementToEditableListview(this)">Add</a>
</div>
<ul data-role="listview" data-inset="true" data-split-icon="delete" id="listGenres"></ul>
</div>
@ -160,7 +160,7 @@
<div data-role="editableListviewContainer">
<div data-role="fieldcontain">
<input type="text" data-mini="true" />
<a data-role="button" data-theme="b" data-inline="true" data-mini="true" data-icon="plus" onclick="EditItemMetadataPage.AddElementToEditableListview(this)">Add</a>
<a data-role="button" data-theme="b" data-inline="true" data-mini="true" data-icon="plus" onclick="EditItemMetadataPage.addElementToEditableListview(this)">Add</a>
</div>
<ul data-role="listview" data-inset="true" data-split-icon="delete" id="listStudios"></ul>
</div>
@ -170,7 +170,7 @@
<div data-role="editableListviewContainer">
<div data-role="fieldcontain">
<input type="text" data-mini="true" />
<a data-role="button" data-theme="b" data-inline="true" data-mini="true" data-icon="plus" onclick="EditItemMetadataPage.AddElementToEditableListview(this)">Add</a>
<a data-role="button" data-theme="b" data-inline="true" data-mini="true" data-icon="plus" onclick="EditItemMetadataPage.addElementToEditableListview(this)">Add</a>
</div>
<ul data-role="listview" data-inset="true" data-split-icon="delete" id="listTags"></ul>
</div>
@ -212,7 +212,21 @@
</div>
</div>
</div>
<div data-role="collapsible">
<h3>Internet Provider Settings</h3>
<div>
<div data-role="fieldcontain">
<label for="enableInternetProviders">Enable internet metadata providers:</label>
<select name="enableInternetProviders" id="enableInternetProviders" data-role="slider" data-mini="true" onchange="EditItemMetadataPage.setProviderSettingsContainerVisibility(this)">
<option value="false">Off</option>
<option value="true">On</option>
</select>
</div>
<div id="providerSettingsContainer" style="display: none">
</div>
</div>
</div>
<br />
<ul data-role="listview" class="ulForm">
<li>

View file

@ -192,6 +192,14 @@
populateListView($('#listGenres', page), item.Genres);
populateListView($('#listStudios', page), item.Studios.map(function (element) { return element.Name || ''; }));
populateListView($('#listTags', page), item.Tags);
var enableInternetProviders = (item.EnableInternetProviders || false);
$("#enableInternetProviders",page).val('' + enableInternetProviders).slider('refresh');
if (enableInternetProviders) {
$('#providerSettingsContainer',page).show();
} else {
$('#providerSettingsContainer',page).hide();
}
populateInternetProviderSettings(page, item.LockedFields, item.LockedImages);
$('#txtName', page).val(item.Name || "");
$('#txtOverview', page).val(item.Overview || "");
@ -357,7 +365,7 @@
}
var html = '';
for (var i = 0; i < items.length; i++) {
html += '<li><a class="data">' + items[i] + '</a><a onclick="EditItemMetadataPage.RemoveElementFromListview(this)"></a></li>';
html += '<li><a class="data">' + items[i] + '</a><a onclick="EditItemMetadataPage.removeElementFromListview(this)"></a></li>';
}
list.html(html).listview('refresh');
}
@ -366,6 +374,42 @@
return list.find('a.data').map(function () { return $(this).text(); }).get();
}
function generateSliders(fields, type) {
var html = '';
for (var i = 0; i < fields.length; i++) {
var field = fields[i];
html += '<div data-role="fieldcontain">';
html += '<label for="lock' + field + '">' + field + ':</label>';
html += '<select name="lock'+ type +'" id="lock' + field + '" data-role="slider" data-mini="true">';
html += '<option value="" selected="selected">Off</option>';
html += '<option value="' + field + '">Locked</option>';
html += '</select>';
html += '</div>';
}
return html;
}
function populateInternetProviderSettings(page, lockedFields, lockedImages) {
var container = $('#providerSettingsContainer', page);
lockedFields = lockedFields || new Array();
lockedImages= lockedImages|| new Array();
var metadatafields = new Array("Name", "Overview", "Cast", "Genres", "ProductionLocations", "Studios", "Tags");
var imageTypes = new Array("Primary", "Art", "Backdrop", "Banner", "Logo", "Thumb", "Disc", "Box", "Screenshot", "Menu", "Chapter", "BoxRear");
var html = '';
html += "<h3>Fields</h3>";
html += generateSliders(metadatafields, 'Fields');
html += "<h3>Images</h3>";
html += generateSliders(imageTypes, 'Images');
container.html(html).trigger('create');
for (var fieldIndex = 0; fieldIndex < lockedFields.length; fieldIndex++) {
var field = lockedFields[fieldIndex];
$('#lock' + field).val(field).slider('refresh');
}
for (var imageIndex = 0; imageIndex < lockedImages.length; imageIndex++) {
var image = lockedImages[imageIndex];
$('#lock' + image).val(image).slider('refresh');
}
}
function editItemMetadataPage() {
var self = this;
@ -375,7 +419,6 @@
var form = this;
var item = {
Id: getParameterByName('id'),
Name: $('#txtName', form).val(),
SortName: $('#txtSortName', form).val(),
@ -409,6 +452,15 @@
OfficialRating: $('#selectOfficialRating', form).val(),
CustomRating: $('#selectCustomRating', form).val(),
People: currentItem.People,
EnableInternetProviders: $("#enableInternetProviders", form).val(),
LockedFields: $('select[name="lockFields"]', form).map(function() {
var value = $(this).val();
if (value != '') return value;
}).get(),
LockedImages: $('select[name="lockImages"]', form).map(function() {
var value = $(this).val();
if (value != '') return value;
}).get(),
ProviderIds:
{
@ -421,7 +473,6 @@
MusicBrainzReleaseGroupId: $('#txtMusicBrainzReleaseGroupId', form).val(),
RottenTomatoes: $('#txtRottenTomatoes', form).val()
}
};
ApiClient.updateItem(item).done(function () {
@ -431,8 +482,9 @@
});
return false;
};
self.AddElementToEditableListview = function(source, sortCallback) {
}
self.addElementToEditableListview = function(source, sortCallback) {
var input = $(source).parent().find('input[type="text"], select');
var text = input.val();
input.val('');
@ -443,13 +495,21 @@
populateListView(list, items, sortCallback);
};
self.setProviderSettingsContainerVisibility = function (source) {
if ($(source).val() == "true") {
$('#providerSettingsContainer').show();
} else {
$('#providerSettingsContainer').hide();
}
};
self.sortDaysOfTheWeek = function(list) {
var days = new Array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");
list.sort(function(a, b) { return days.indexOf(a) > days.indexOf(b); });
return list;
};
self.RemoveElementFromListview = function(source) {
self.removeElementFromListview = function(source) {
var list = $(source).parents('ul[data-role="listview"]');
$(source).parent().remove();
list.listview('refresh');