diff --git a/dashboard-ui/bower_components/iron-meta/.bower.json b/dashboard-ui/bower_components/iron-meta/.bower.json
index 9e650790be..8119ebcf41 100644
--- a/dashboard-ui/bower_components/iron-meta/.bower.json
+++ b/dashboard-ui/bower_components/iron-meta/.bower.json
@@ -25,14 +25,14 @@
"web-component-tester": "*",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
},
- "homepage": "https://github.com/PolymerElements/iron-meta",
+ "homepage": "https://github.com/polymerelements/iron-meta",
"_release": "1.0.3",
"_resolution": {
"type": "version",
"tag": "v1.0.3",
"commit": "91529259262b0d8f33fed44bc3fd47aedf35cb04"
},
- "_source": "git://github.com/PolymerElements/iron-meta.git",
+ "_source": "git://github.com/polymerelements/iron-meta.git",
"_target": "^1.0.0",
- "_originalSource": "PolymerElements/iron-meta"
+ "_originalSource": "polymerelements/iron-meta"
}
\ No newline at end of file
diff --git a/dashboard-ui/components/itemidentifier/itemidentifier.js b/dashboard-ui/components/itemidentifier/itemidentifier.js
new file mode 100644
index 0000000000..90cce5f14c
--- /dev/null
+++ b/dashboard-ui/components/itemidentifier/itemidentifier.js
@@ -0,0 +1,353 @@
+(function ($, window, document) {
+
+ var currentItem;
+ var currentDeferred;
+ var hasChanges = false;
+ var currentSearchResult;
+
+ function onIdentificationFormSubmitted() {
+
+ var page = $(this).parents('.editorContent');
+
+ searchForIdentificationResults(page);
+ return false;
+ }
+
+ function searchForIdentificationResults(page) {
+
+ var lookupInfo = {
+ ProviderIds: {}
+ };
+
+ $('.identifyField', page).each(function () {
+
+ var value = this.value;
+
+ if (value) {
+
+ if (this.type == 'number') {
+ value = parseInt(value);
+ }
+
+ lookupInfo[this.getAttribute('data-lookup')] = value;
+ }
+
+ });
+
+ var hasId = false;
+
+ $('.txtLookupId', page).each(function () {
+
+ var value = this.value;
+
+ if (value) {
+ hasId = true;
+ }
+ lookupInfo.ProviderIds[this.getAttribute('data-providerkey')] = value;
+
+ });
+
+ if (!hasId && !lookupInfo.Name) {
+ Dashboard.alert(Globalize.translate('MessagePleaseEnterNameOrId'));
+ return;
+ }
+
+ if (currentItem.GameSystem) {
+ lookupInfo.GameSystem = currentItem.GameSystem;
+ }
+
+ lookupInfo = {
+ SearchInfo: lookupInfo,
+ IncludeDisabledProviders: true
+ };
+
+ Dashboard.showLoadingMsg();
+
+ ApiClient.ajax({
+ type: "POST",
+ url: ApiClient.getUrl("Items/RemoteSearch/" + currentItem.Type),
+ data: JSON.stringify(lookupInfo),
+ contentType: "application/json"
+
+ }).done(function (results) {
+
+ Dashboard.hideLoadingMsg();
+ showIdentificationSearchResults(page, results);
+ });
+ }
+
+ function showIdentificationSearchResults(page, results) {
+
+ $('.popupIdentifyForm', page).hide();
+ $('.identificationSearchResults', page).show();
+ $('.identifyOptionsForm', page).hide();
+ $('.btnIdentifyBack', page).show();
+
+ var html = '';
+
+ for (var i = 0, length = results.length; i < length; i++) {
+
+ var result = results[i];
+
+ html += getSearchResultHtml(result, i);
+ }
+
+ var elem = $('.identificationSearchResultList', page).html(html).trigger('create');
+
+ $('.searchImage', elem).on('click', function () {
+
+ var index = parseInt(this.getAttribute('data-index'));
+
+ var currentResult = results[index];
+
+ showIdentifyOptions(page, currentResult);
+ });
+ }
+
+ function showIdentifyOptions(page, identifyResult) {
+
+ $('.popupIdentifyForm', page).hide();
+ $('.identificationSearchResults', page).hide();
+ $('.identifyOptionsForm', page).show();
+ $('.btnIdentifyBack', page).show();
+ $('#chkIdentifyReplaceImages', page).checked(true);
+
+ currentSearchResult = identifyResult;
+
+ var lines = [];
+ lines.push(identifyResult.Name);
+
+ if (identifyResult.ProductionYear) {
+ lines.push(identifyResult.ProductionYear);
+ }
+
+ if (identifyResult.GameSystem) {
+ lines.push(identifyResult.GameSystem);
+ }
+
+ var resultHtml = lines.join('
');
+
+ if (identifyResult.ImageUrl) {
+ var displayUrl = getSearchImageDisplayUrl(identifyResult.ImageUrl, identifyResult.SearchProviderName);
+
+ resultHtml = '
' + resultHtml;
+ }
+
+ $('.selectedSearchResult', page).html(resultHtml);
+ }
+
+ function getSearchResultHtml(result, index) {
+
+ var html = '';
+ var cssClass = "card";
+
+ if (currentItem.Type == "Episode") {
+ cssClass += " backdropCard";
+ }
+ else if (currentItem.Type == "MusicAlbum" || currentItem.Type == "MusicArtist") {
+ cssClass += " squareCard";
+ }
+ else {
+ cssClass += " portraitCard";
+ }
+
+ html += '