mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
added metadata editor sidebar
This commit is contained in:
parent
3945e0e9f4
commit
0dc7a2177e
34 changed files with 5572 additions and 342 deletions
|
@ -2,28 +2,30 @@
|
|||
|
||||
var currentItem;
|
||||
|
||||
function reload(page) {
|
||||
function updateTabs(page, item) {
|
||||
|
||||
var id = getParameterByName('id');
|
||||
var query = MetadataEditor.getEditQueryString(item);
|
||||
|
||||
$('#btnEditMetadata', page).attr('href', 'edititemmetadata.html?' + query);
|
||||
$('#btnEditImages', page).attr('href', 'edititemimages.html?' + query);
|
||||
}
|
||||
|
||||
function reload(page) {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
ApiClient.getItem(Dashboard.getCurrentUserId(), id).done(function (item) {
|
||||
|
||||
if (item.IsFolder) {
|
||||
$('#fldRecursive', page).show();
|
||||
} else {
|
||||
$('#fldRecursive', page).hide();
|
||||
}
|
||||
MetadataEditor.getItemPromise().done(function (item) {
|
||||
|
||||
$('#btnRefresh', page).button('enable');
|
||||
|
||||
$('#refreshLoading', page).hide();
|
||||
|
||||
currentItem = item;
|
||||
|
||||
LibraryBrowser.renderName(item, $('.itemName', page), true);
|
||||
LibraryBrowser.renderParentName(item, $('.parentName', page));
|
||||
fillPeopleContainer(item.People,$('#peopleContainer',page));
|
||||
updateTabs(page, item);
|
||||
|
||||
fillPeopleContainer(item.People, $('#peopleContainer', page));
|
||||
Dashboard.hideLoadingMsg();
|
||||
});
|
||||
}
|
||||
|
@ -44,7 +46,7 @@
|
|||
var name = person.Name || "";
|
||||
var role = person.Role || "";
|
||||
var type = person.Type || "";
|
||||
|
||||
|
||||
if (person.PrimaryImageTag) {
|
||||
|
||||
imgUrl = ApiClient.getPersonImageUrl(person.Name, {
|
||||
|
@ -57,27 +59,27 @@
|
|||
|
||||
imgUrl = "css/images/items/list/person.png";
|
||||
}
|
||||
html += '<div class="tileImage" style="background-image: url(\''+imgUrl+'\');"></div>';
|
||||
html += '<div class="tileImage" style="background-image: url(\'' + imgUrl + '\');"></div>';
|
||||
html += '<div class="tileContent">';
|
||||
html += '<div data-role="fieldcontain">';
|
||||
html += '<input type="hidden" name="originalName" value="' + name + '">';
|
||||
html += '<input type="hidden" name="originalRole" value="' + role + '">';
|
||||
html += '<input type="hidden" name="originalType" value="' + type + '">';
|
||||
html += '<label for="txtName">Name:</label>';
|
||||
html += '<span class="read" style="font-size: 16px;line-height: 1.4;"> ' + (name) + '</span><span style="display:none;" class="edit">';
|
||||
html += '<span class="read"> ' + (name) + '</span><span style="display:none;" class="edit">';
|
||||
html += '<input type="text" name="txtName" required="required" data-mini="true" value="' + (name) + '"/>';
|
||||
html += '</span>';
|
||||
html += '</div>';
|
||||
html += '<div data-role="fieldcontain">';
|
||||
html += '<label for="txtRole">Role:</label>';
|
||||
html += '<span class="read" style="font-size: 16px;line-height: 1.4;"> ' + (role) + '</span><span style="display:none;" class="edit">';
|
||||
html += '<span class="read"> ' + (role) + '</span><span style="display:none;" class="edit">';
|
||||
html += '<input type="text" name="txtRole" required="required" data-mini="true" value="' + (role) + '"/>';
|
||||
html += '</span>';
|
||||
html += '</div>';
|
||||
html += '<div data-role="fieldcontain">';
|
||||
html += '<label for="selectType">Type:</label>';
|
||||
html += '<span class="read" style="font-size: 16px;line-height: 1.4;"> ' + (type) + '</span><span style="display:none;" class="edit">';
|
||||
html += '<select name="selectType">';
|
||||
html += '<span class="read"> ' + (type) + '</span><span style="display:none;" class="edit">';
|
||||
html += '<select name="selectType" data-inline="true" data-mini="true">';
|
||||
html += generateTypes(type);
|
||||
html += '</select>';
|
||||
html += '</span>';
|
||||
|
@ -88,7 +90,7 @@
|
|||
html += '</span><span style="display:none;" class="edit">';
|
||||
html += '<button type="button" data-mini="true" data-inline="true" onclick="EditItemPeoplePage.hideEdit(this)">Cancel</button>';
|
||||
html += '<button type="button" data-icon="check" data-mini="true" data-inline="true" data-theme="b" onclick="EditItemPeoplePage.savePerson(this)">Save</button>';
|
||||
html += '<button type="button" data-icon="delete" data-mini="true" data-inline="true" data-iconpos="notext" onclick="EditItemPeoplePage.removePerson(this)">Delete</button>';
|
||||
html += '<button type="button" data-icon="delete" data-mini="true" data-inline="true" onclick="EditItemPeoplePage.removePerson(this)">Delete</button>';
|
||||
html += '</span>';
|
||||
html += '</p>';
|
||||
html += '</div>';
|
||||
|
@ -147,7 +149,7 @@
|
|||
}
|
||||
});
|
||||
};
|
||||
self.savePerson = function(source) {
|
||||
self.savePerson = function (source) {
|
||||
|
||||
var page = $.mobile.activePage;
|
||||
|
||||
|
@ -163,7 +165,7 @@
|
|||
currentItem.People[i].Name = item.find('input[name="txtName"]').val();
|
||||
currentItem.People[i].Role = item.find('input[name="txtRole"]').val();
|
||||
currentItem.People[i].Type = item.find('select[name="selectType"]').val();
|
||||
ApiClient.updateItem(currentItem).done(function() {
|
||||
ApiClient.updateItem(currentItem).done(function () {
|
||||
reload(page);
|
||||
});
|
||||
break;
|
||||
|
@ -171,7 +173,7 @@
|
|||
}
|
||||
};
|
||||
|
||||
self.addPerson = function() {
|
||||
self.addPerson = function () {
|
||||
var page = $.mobile.activePage;
|
||||
|
||||
var html = '<div data-role="popup" id="popupCreatePerson" class="ui-corner-all popup" style=" width: 270px;" >';
|
||||
|
@ -184,10 +186,10 @@
|
|||
html += '<form>';
|
||||
html += '<label for="txtPersonName">Name:</label>';
|
||||
html += '<input type="text" id="txtPersonName" name="txtPersonName" required="required"/>';
|
||||
|
||||
|
||||
html += '<label for="txtPersonRole">Role:</label>';
|
||||
html += '<input type="text" id="txtPersonRole" name="txtPersonRole" style="font-weight:bold;" />';
|
||||
|
||||
html += '<input type="text" id="txtPersonRole" name="txtPersonRole" />';
|
||||
|
||||
html += '<label for="selectPersonType">Type:</label>';
|
||||
html += '<select id="selectPersonType" name="selectPersonType">';
|
||||
html += generateTypes('');
|
||||
|
@ -203,20 +205,20 @@
|
|||
|
||||
$(page).append(html);
|
||||
|
||||
var popup = $('#popupCreatePerson').popup().trigger('create').on("popupafteropen", function() {
|
||||
var popup = $('#popupCreatePerson').popup().trigger('create').on("popupafteropen", function () {
|
||||
$('#popupCreatePerson input:first', this).focus();
|
||||
}).popup("open").on("popupafterclose", function() {
|
||||
}).popup("open").on("popupafterclose", function () {
|
||||
|
||||
$('form', this).off("submit");
|
||||
$(this).off("click").off("popupafterclose").remove();
|
||||
|
||||
});
|
||||
|
||||
|
||||
$('form', popup).on('submit', function () {
|
||||
|
||||
var form = $(this);
|
||||
|
||||
var name = $('#txtPersonName',form).val();
|
||||
var name = $('#txtPersonName', form).val();
|
||||
if (name != '') {
|
||||
var role = $('#txtPersonRole', form).val();
|
||||
var type = $('#selectPersonType', form).val();
|
||||
|
@ -237,6 +239,21 @@
|
|||
|
||||
var page = this;
|
||||
|
||||
$('.libraryTree', page).on('itemclicked', function (event, data) {
|
||||
|
||||
if (data.id != currentItem.Id) {
|
||||
MetadataEditor.currentItemId = data.id;
|
||||
MetadataEditor.currentItemName = data.itemName;
|
||||
MetadataEditor.currentItemType = data.itemType;
|
||||
//Dashboard.navigate('edititemmetadata.html?id=' + data.id);
|
||||
|
||||
$.mobile.urlHistory.ignoreNextHashChange = true;
|
||||
window.location.hash = 'editItemPeoplePage?id=' + data.id;
|
||||
|
||||
reload(page);
|
||||
}
|
||||
});
|
||||
|
||||
}).on('pageshow', "#editItemPeoplePage", function () {
|
||||
|
||||
var page = this;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue