update metadata editor
This commit is contained in:
parent
b453142fdb
commit
1345d04326
2 changed files with 30 additions and 63 deletions
|
@ -1,4 +1,4 @@
|
||||||
define(['itemHelper', 'layoutManager', 'dialogHelper', 'datetime', 'loading', 'focusManager', 'connectionManager', 'globalize', 'require', 'emby-checkbox', 'emby-input', 'emby-select', 'listViewStyle', 'emby-textarea', 'emby-button', 'paper-icon-button-light', 'css!./../formdialog'], function (itemHelper, layoutManager, dialogHelper, datetime, loading, focusManager, connectionManager, globalize, require) {
|
define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loading', 'focusManager', 'connectionManager', 'globalize', 'require', 'emby-checkbox', 'emby-input', 'emby-select', 'listViewStyle', 'emby-textarea', 'emby-button', 'paper-icon-button-light', 'css!./../formdialog'], function (itemHelper, dom, layoutManager, dialogHelper, datetime, loading, focusManager, connectionManager, globalize, require) {
|
||||||
|
|
||||||
var currentContext;
|
var currentContext;
|
||||||
var metadataEditorInfo;
|
var metadataEditorInfo;
|
||||||
|
@ -220,19 +220,6 @@
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function parentWithClass(elem, className) {
|
|
||||||
|
|
||||||
while (!elem.classList || !elem.classList.contains(className)) {
|
|
||||||
elem = elem.parentNode;
|
|
||||||
|
|
||||||
if (!elem) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return elem;
|
|
||||||
}
|
|
||||||
|
|
||||||
function editableListViewValues(list) {
|
function editableListViewValues(list) {
|
||||||
return Array.prototype.map.call(list.querySelectorAll('.textValue'), function (el) { return el.textContent; });
|
return Array.prototype.map.call(list.querySelectorAll('.textValue'), function (el) { return el.textContent; });
|
||||||
}
|
}
|
||||||
|
@ -243,7 +230,7 @@
|
||||||
prompt({
|
prompt({
|
||||||
label: 'Value:'
|
label: 'Value:'
|
||||||
}).then(function (text) {
|
}).then(function (text) {
|
||||||
var list = parentWithClass(source, 'editableListviewContainer').querySelector('.paperList');
|
var list = dom.parentWithClass(source, 'editableListviewContainer').querySelector('.paperList');
|
||||||
var items = editableListViewValues(list);
|
var items = editableListViewValues(list);
|
||||||
items.push(text);
|
items.push(text);
|
||||||
populateListView(list, items, sortCallback);
|
populateListView(list, items, sortCallback);
|
||||||
|
@ -252,7 +239,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeElementFromListview(source) {
|
function removeElementFromListview(source) {
|
||||||
var el = parentWithClass(source, 'listItem');
|
var el = dom.parentWithClass(source, 'listItem');
|
||||||
el.parentNode.removeChild(el);
|
el.parentNode.removeChild(el);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -324,13 +311,13 @@
|
||||||
|
|
||||||
function onEditorClick(e) {
|
function onEditorClick(e) {
|
||||||
|
|
||||||
var btnRemoveFromEditorList = parentWithClass(e.target, 'btnRemoveFromEditorList');
|
var btnRemoveFromEditorList = dom.parentWithClass(e.target, 'btnRemoveFromEditorList');
|
||||||
if (btnRemoveFromEditorList) {
|
if (btnRemoveFromEditorList) {
|
||||||
removeElementFromListview(btnRemoveFromEditorList);
|
removeElementFromListview(btnRemoveFromEditorList);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var btnAddTextItem = parentWithClass(e.target, 'btnAddTextItem');
|
var btnAddTextItem = dom.parentWithClass(e.target, 'btnAddTextItem');
|
||||||
if (btnAddTextItem) {
|
if (btnAddTextItem) {
|
||||||
addElementToEditableListview(btnAddTextItem);
|
addElementToEditableListview(btnAddTextItem);
|
||||||
}
|
}
|
||||||
|
@ -381,6 +368,22 @@
|
||||||
editPerson(context, {}, -1);
|
editPerson(context, {}, -1);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
context.querySelector('#peopleList').addEventListener('click', function(e) {
|
||||||
|
|
||||||
|
var btnDeletePerson = dom.parentWithClass(e.target, 'btnDeletePerson');
|
||||||
|
if (btnDeletePerson) {
|
||||||
|
var index = parseInt(btnDeletePerson.getAttribute('data-index'));
|
||||||
|
currentItem.People.splice(index, 1);
|
||||||
|
populatePeople(context, currentItem.People);
|
||||||
|
}
|
||||||
|
|
||||||
|
var btnEditPerson = dom.parentWithClass(e.target, 'btnEditPerson');
|
||||||
|
if (btnEditPerson) {
|
||||||
|
var index = parseInt(btnEditPerson.getAttribute('data-index'));
|
||||||
|
editPerson(context, currentItem.People[index], index);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// For now this is only supported in dialog mode because we have a way of knowing when it closes
|
// For now this is only supported in dialog mode because we have a way of knowing when it closes
|
||||||
if (isDialog()) {
|
if (isDialog()) {
|
||||||
bindItemChanged(context, apiClient);
|
bindItemChanged(context, apiClient);
|
||||||
|
@ -990,7 +993,7 @@
|
||||||
for (var i = 0; i < items.length; i++) {
|
for (var i = 0; i < items.length; i++) {
|
||||||
html += '<div class="listItem">';
|
html += '<div class="listItem">';
|
||||||
|
|
||||||
html += '<button type="button" is="emby-button" data-index="' + i + '" class="fab autoSize mini"><i class="md-icon">live_tv</i></button>';
|
html += '<i class="md-icon listItemIcon" style="background-color:#333;">live_tv</i>';
|
||||||
|
|
||||||
html += '<div class="listItemBody">';
|
html += '<div class="listItemBody">';
|
||||||
|
|
||||||
|
@ -1021,7 +1024,7 @@
|
||||||
|
|
||||||
html += '<div class="listItem">';
|
html += '<div class="listItem">';
|
||||||
|
|
||||||
html += '<button type="button" is="emby-button" data-index="' + i + '" class="btnEditPerson fab autoSize mini"><i class="md-icon">person</i></button>';
|
html += '<i class="md-icon listItemIcon" style="background-color:#333;">person</i>';
|
||||||
|
|
||||||
html += '<div class="listItemBody">';
|
html += '<div class="listItemBody">';
|
||||||
html += '<a class="btnEditPerson clearLink" href="#" data-index="' + i + '">';
|
html += '<a class="btnEditPerson clearLink" href="#" data-index="' + i + '">';
|
||||||
|
@ -1043,27 +1046,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
elem.innerHTML = html;
|
elem.innerHTML = html;
|
||||||
|
|
||||||
var deleteButton = elem.querySelector('.btnDeletePerson')
|
|
||||||
if (deleteButton) {
|
|
||||||
deleteButton.addEventListener('click', function () {
|
|
||||||
|
|
||||||
var index = parseInt(this.getAttribute('data-index'));
|
|
||||||
currentItem.People.splice(index, 1);
|
|
||||||
|
|
||||||
populatePeople(context, currentItem.People);
|
|
||||||
}.bind(deleteButton));
|
|
||||||
}
|
|
||||||
|
|
||||||
var editButton = elem.querySelector('.btnEditPerson')
|
|
||||||
if (editButton) {
|
|
||||||
editButton.addEventListener('click', function () {
|
|
||||||
|
|
||||||
var index = parseInt(this.getAttribute('data-index'));
|
|
||||||
|
|
||||||
editPerson(context, currentItem.People[index], index);
|
|
||||||
}.bind(editButton));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function generateSliders(fields, currentFields) {
|
function generateSliders(fields, currentFields) {
|
||||||
|
@ -1163,27 +1145,6 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function registerDictionary() {
|
|
||||||
|
|
||||||
var baseUrl = require.toUrl('.').split('?')[0] + '/strings/';
|
|
||||||
|
|
||||||
var languages = ['en-US'];
|
|
||||||
|
|
||||||
var strings = languages.map(function (i) {
|
|
||||||
return {
|
|
||||||
lang: i,
|
|
||||||
path: baseUrl + i + '.json'
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
globalize.loadStrings({
|
|
||||||
name: 'metadataeditor',
|
|
||||||
strings: strings
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
registerDictionary();
|
|
||||||
|
|
||||||
function centerFocus(elem, horiz, on) {
|
function centerFocus(elem, horiz, on) {
|
||||||
require(['scrollHelper'], function (scrollHelper) {
|
require(['scrollHelper'], function (scrollHelper) {
|
||||||
var fn = on ? 'on' : 'off';
|
var fn = on ? 'on' : 'off';
|
||||||
|
@ -1258,7 +1219,7 @@
|
||||||
|
|
||||||
require(['text!./metadataeditor.template.html'], function (template) {
|
require(['text!./metadataeditor.template.html'], function (template) {
|
||||||
|
|
||||||
elem.innerHTML = globalize.translateDocument(template, 'metadataeditor');
|
elem.innerHTML = globalize.translateDocument(template, 'sharedcomponents');
|
||||||
|
|
||||||
elem.querySelector('.btnCancel').classList.add('hide');
|
elem.querySelector('.btnCancel').classList.add('hide');
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,10 @@
|
||||||
<div id="editItemMetadataPage" data-role="page" class="page libraryPage metadataEditorPage noSecondaryNavPage" data-contextname="${HeaderMetadataManager}" data-require="scripts/editorsidebar,scripts/edititemmetadata">
|
<div id="editItemMetadataPage" data-role="page" class="page libraryPage metadataEditorPage noSecondaryNavPage" data-contextname="${HeaderMetadataManager}" data-require="scripts/editorsidebar,scripts/edititemmetadata">
|
||||||
|
|
||||||
|
<style>
|
||||||
|
#editItemMetadataPage .editMetadataForm {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
<div class="editPageSidebar" style="overflow:auto;">
|
<div class="editPageSidebar" style="overflow:auto;">
|
||||||
<div class="libraryTree">
|
<div class="libraryTree">
|
||||||
<ul></ul>
|
<ul></ul>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue