diff --git a/dashboard-ui/components/itemidentifier/itemidentifier.js b/dashboard-ui/components/itemidentifier/itemidentifier.js
index 8117ae9c49..28c15d2cde 100644
--- a/dashboard-ui/components/itemidentifier/itemidentifier.js
+++ b/dashboard-ui/components/itemidentifier/itemidentifier.js
@@ -1,18 +1,11 @@
define(['paperdialoghelper', 'paper-dialog', 'paper-fab', 'paper-input', 'paper-checkbox'], function (paperDialogHelper) {
var currentItem;
+ var currentItemType;
var currentDeferred;
var hasChanges = false;
var currentSearchResult;
- function onIdentificationFormSubmitted() {
-
- var page = $(this).parents('paper-dialog');
-
- searchForIdentificationResults(page);
- return false;
- }
-
function searchForIdentificationResults(page) {
var lookupInfo = {
@@ -54,7 +47,7 @@
return;
}
- if (currentItem.GameSystem) {
+ if (currentItem && currentItem.GameSystem) {
lookupInfo.GameSystem = currentItem.GameSystem;
}
@@ -67,7 +60,7 @@
ApiClient.ajax({
type: "POST",
- url: ApiClient.getUrl("Items/RemoteSearch/" + currentItem.Type),
+ url: ApiClient.getUrl("Items/RemoteSearch/" + currentItemType),
data: JSON.stringify(lookupInfo),
contentType: "application/json",
dataType: 'json'
@@ -102,10 +95,24 @@
var currentResult = results[index];
- showIdentifyOptions(page, currentResult);
+ if (currentItem != null) {
+
+ showIdentifyOptions(page, currentResult);
+ } else {
+
+ finishFindNewDialog(page, currentResult);
+ }
});
}
+ function finishFindNewDialog(dlg, identifyResult) {
+ currentSearchResult = identifyResult;
+ hasChanges = true;
+ Dashboard.hideLoadingMsg();
+
+ paperDialogHelper.close(dlg);
+ }
+
function showIdentifyOptions(page, identifyResult) {
$('.popupIdentifyForm', page).hide();
@@ -143,10 +150,10 @@
var html = '';
var cssClass = "card";
- if (currentItem.Type == "Episode") {
+ if (currentItemType == "Episode") {
cssClass += " backdropCard";
}
- else if (currentItem.Type == "MusicAlbum" || currentItem.Type == "MusicArtist") {
+ else if (currentItemType == "MusicAlbum" || currentItemType == "MusicArtist") {
cssClass += " squareCard";
}
else {
@@ -193,14 +200,6 @@
return ApiClient.getUrl("Items/RemoteSearch/Image", { imageUrl: url, ProviderName: provider });
}
- function onIdentificationOptionsSubmit() {
-
- var page = $(this).parents('paper-dialog');
-
- submitIdentficationResult(page);
- return false;
- }
-
function submitIdentficationResult(page) {
Dashboard.showLoadingMsg();
@@ -220,22 +219,16 @@
hasChanges = true;
Dashboard.hideLoadingMsg();
- paperDialogHelper.close(document.querySelector('.identifyDialog'));
+ paperDialogHelper.close(page);
}, function () {
Dashboard.hideLoadingMsg();
- paperDialogHelper.close(document.querySelector('.identifyDialog'));
+ paperDialogHelper.close(page);
});
}
- function initEditor(page) {
-
- $('.popupIdentifyForm', page).off('submit', onIdentificationFormSubmitted).on('submit', onIdentificationFormSubmitted);
- $('.identifyOptionsForm', page).off('submit', onIdentificationOptionsSubmit).on('submit', onIdentificationOptionsSubmit);
- }
-
function showIdentificationForm(page, item) {
ApiClient.getJSON(ApiClient.getUrl("Items/" + item.Id + "/ExternalIdInfos")).then(function (idList) {
@@ -292,6 +285,7 @@
ApiClient.getItem(Dashboard.getCurrentUserId(), itemId).then(function (item) {
currentItem = item;
+ currentItemType = currentItem.Type;
var dlg = paperDialogHelper.createDialog({
size: 'medium'
@@ -311,7 +305,19 @@
paperDialogHelper.open(dlg);
- initEditor(dlg);
+ dlg.querySelector('.popupIdentifyForm').addEventListener('submit', function (e) {
+
+ e.preventDefault();
+ searchForIdentificationResults(dlg);
+ return false;
+ });
+
+ dlg.querySelector('.identifyOptionsForm').addEventListener('submit', function (e) {
+
+ e.preventDefault();
+ submitIdentficationResult(dlg);
+ return false;
+ });
$('.btnCancel', dlg).on('click', function () {
@@ -335,6 +341,79 @@
currentDeferred.resolveWith(null, [hasChanges]);
}
+ function showEditorFindNew(itemName, itemYear, itemType, resolveFunc) {
+
+ currentItem = null;
+ currentItemType = itemType;
+
+ var xhr = new XMLHttpRequest();
+ xhr.open('GET', 'components/itemidentifier/itemidentifier.template.html', true);
+
+ xhr.onload = function (e) {
+
+ var template = this.response;
+
+ var dlg = paperDialogHelper.createDialog({
+ size: 'medium'
+ });
+
+ dlg.classList.add('ui-body-a');
+ dlg.classList.add('background-theme-a');
+
+ var html = '';
+ html += Globalize.translateDocument(template);
+
+ dlg.innerHTML = html;
+ document.body.appendChild(dlg);
+
+ paperDialogHelper.open(dlg);
+
+ dlg.querySelector('.btnCancel').addEventListener('click', function (e) {
+
+ paperDialogHelper.close(dlg);
+ });
+
+ dlg.querySelector('.popupIdentifyForm').addEventListener('submit', function (e) {
+
+ e.preventDefault();
+ searchForIdentificationResults(dlg);
+ return false;
+ });
+
+ dlg.addEventListener('iron-overlay-closed', function () {
+
+ Dashboard.hideLoadingMsg();
+ var foundItem = hasChanges ? currentSearchResult : null;
+
+ resolveFunc(foundItem);
+ });
+
+ dlg.classList.add('identifyDialog');
+
+ showIdentificationFormFindNew(dlg, itemName, itemYear, itemType);
+ }
+
+ xhr.send();
+ }
+
+ function showIdentificationFormFindNew(dlg, itemName, itemYear, itemType) {
+
+ dlg.querySelector('#txtLookupName').value = itemName;
+
+ if (itemType == "Person" || itemType == "BoxSet") {
+
+ dlg.querySelector('.fldLookupYear').classList.add('hide');
+ dlg.querySelector('#txtLookupYear').value = '';
+
+ } else {
+
+ dlg.querySelector('.fldLookupYear').classList.remove('hide');
+ dlg.querySelector('#txtLookupYear').value = itemYear;
+ }
+
+ dlg.querySelector('.dialogHeaderTitle').innerHTML = Globalize.translate('HeaderSearch');
+ }
+
return {
show: function (itemId) {
@@ -345,6 +424,14 @@
showEditor(itemId);
return deferred.promise();
+ },
+
+ showFindNew: function (itemName, itemYear, itemType) {
+ return new Promise(function (resolve, reject) {
+
+ hasChanges = false;
+ showEditorFindNew(itemName, itemYear, itemType, resolve);
+ });
}
};
});
\ No newline at end of file