diff --git a/dashboard-ui/bower_components/emby-webcomponents/metadataeditor/metadataeditor.js b/dashboard-ui/bower_components/emby-webcomponents/metadataeditor/metadataeditor.js index cb7c6030e..2428b6668 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/metadataeditor/metadataeditor.js +++ b/dashboard-ui/bower_components/emby-webcomponents/metadataeditor/metadataeditor.js @@ -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 metadataEditorInfo; @@ -220,19 +220,6 @@ 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) { return Array.prototype.map.call(list.querySelectorAll('.textValue'), function (el) { return el.textContent; }); } @@ -243,7 +230,7 @@ prompt({ label: 'Value:' }).then(function (text) { - var list = parentWithClass(source, 'editableListviewContainer').querySelector('.paperList'); + var list = dom.parentWithClass(source, 'editableListviewContainer').querySelector('.paperList'); var items = editableListViewValues(list); items.push(text); populateListView(list, items, sortCallback); @@ -252,7 +239,7 @@ } function removeElementFromListview(source) { - var el = parentWithClass(source, 'listItem'); + var el = dom.parentWithClass(source, 'listItem'); el.parentNode.removeChild(el); } @@ -324,13 +311,13 @@ function onEditorClick(e) { - var btnRemoveFromEditorList = parentWithClass(e.target, 'btnRemoveFromEditorList'); + var btnRemoveFromEditorList = dom.parentWithClass(e.target, 'btnRemoveFromEditorList'); if (btnRemoveFromEditorList) { removeElementFromListview(btnRemoveFromEditorList); return; } - var btnAddTextItem = parentWithClass(e.target, 'btnAddTextItem'); + var btnAddTextItem = dom.parentWithClass(e.target, 'btnAddTextItem'); if (btnAddTextItem) { addElementToEditableListview(btnAddTextItem); } @@ -381,6 +368,22 @@ 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 if (isDialog()) { bindItemChanged(context, apiClient); @@ -990,7 +993,7 @@ for (var i = 0; i < items.length; i++) { html += '