(function ($, document, window) { var query = { StartIndex: 0, Limit: 50 }; var currentResult; function showStatusMessage(id) { var item = currentResult.Items.filter(function (i) { return i.Id == id; })[0]; Dashboard.alert({ title: getStatusText(item, false), message: item.StatusMessage }); } function deleteOriginalFile(page, id) { var item = currentResult.Items.filter(function (i) { return i.Id == id; })[0]; var message = Globalize.translate('MessageFileWillBeDeleted') + '
' + item.OriginalPath + '
' + Globalize.translate('MessageSureYouWishToProceed') + '
'; Dashboard.confirm(message, Globalize.translate('HeaderDeleteFile'), function (confirmResult) { if (confirmResult) { Dashboard.showLoadingMsg(); ApiClient.deleteOriginalFileFromOrganizationResult(id).then(function () { Dashboard.hideLoadingMsg(); reloadItems(page); }, onApiFailure); } }); } function organizeEpsiodeWithCorrections(page, item) { Dashboard.showLoadingMsg(); var seriesItems; ApiClient.getItems(null, { recursive: true, includeItemTypes: 'Series', sortBy: 'SortName' }).then(function (result) { seriesItems = result.Items; ApiClient.getVirtualFolders().then(function (result) { Dashboard.hideLoadingMsg(); var movieLocations = []; var seriesLocations = []; for (var n = 0; n < result.length; n++) { var virtualFolder = result[n]; for (var i = 0, length = virtualFolder.Locations.length; i < length; i++) { var location = { value: virtualFolder.Locations[i], display: virtualFolder.Name + ': ' + virtualFolder.Locations[i] }; if (virtualFolder.CollectionType == 'movies') { movieLocations.push(location); } if (virtualFolder.CollectionType == 'tvshows') { seriesLocations.push(location); } } } showEpisodeCorrectionPopup(page, item, seriesItems, movieLocations, seriesLocations); }, onApiFailure); }, onApiFailure); } function showEpisodeCorrectionPopup(page, item) { require(['components/fileorganizer/fileorganizer'], function (fileorganizer) { fileorganizer.show(item).then(function () { reloadItems(page); }); }); } function organizeFile(page, id) { var item = currentResult.Items.filter(function (i) { return i.Id == id; })[0]; if (!item.TargetPath) { if (item.Type == "Episode") { organizeEpsiodeWithCorrections(page, item); } return; } var message = Globalize.translate('MessageFollowingFileWillBeMovedFrom') + '' + item.OriginalPath + '
' + Globalize.translate('MessageDestinationTo') + '
' + item.TargetPath + '
'; if (item.DuplicatePaths.length) { message += '' + Globalize.translate('MessageDuplicatesWillBeDeleted') + '
'; message += '' + item.DuplicatePaths.join('
') + '
' + Globalize.translate('MessageSureYouWishToProceed') + '
'; Dashboard.confirm(message, Globalize.translate('HeaderOrganizeFile'), function (confirmResult) { if (confirmResult) { Dashboard.showLoadingMsg(); ApiClient.performOrganization(id).then(function () { Dashboard.hideLoadingMsg(); reloadItems(page); }, onApiFailure); } }); } function reloadItems(page) { Dashboard.showLoadingMsg(); ApiClient.getFileOrganizationResults(query).then(function (result) { currentResult = result; renderResults(page, result); Dashboard.hideLoadingMsg(); }, onApiFailure); } function getStatusText(item, enhance) { var status = item.Status; var color = null; if (status == 'SkippedExisting') { status = Globalize.translate('StatusSkipped'); } else if (status == 'Failure') { color = '#cc0000'; status = Globalize.translate('StatusFailed'); } if (status == 'Success') { color = 'green'; status = Globalize.translate('StatusSuccess'); } if (enhance) { if (item.StatusMessage) { return '' + status + ''; } else { return '' + status + ''; } } return status; } function renderResults(page, result) { var rows = result.Items.map(function (item) { var html = ''; html += '