diff --git a/dashboard-ui/scripts/Itemdetailpage.js b/dashboard-ui/scripts/Itemdetailpage.js
index 2a377b16ea..996581b2a2 100644
--- a/dashboard-ui/scripts/Itemdetailpage.js
+++ b/dashboard-ui/scripts/Itemdetailpage.js
@@ -15,7 +15,7 @@
renderHeader(page, item);
$('#itemImage', page).html(LibraryBrowser.getDetailImageHtml(item));
-
+
LibraryBrowser.renderTitle(item, $('#itemName', page), $('#parentName', page), $('#grandParentName', page));
var context = getContext(item);
@@ -28,6 +28,16 @@
$('#playButtonContainer', page).hide();
}
+ Dashboard.getCurrentUser().done(function (user) {
+
+ if (user.Configuration.IsAdministrator) {
+ $('#editButtonContainer', page).show();
+ } else {
+ $('#editButtonContainer', page).hide();
+ }
+
+ });
+
$(".autoNumeric").autoNumeric('init');
Dashboard.hideLoadingMsg();
@@ -367,57 +377,65 @@
html += '
';
diff --git a/dashboard-ui/scripts/edititemimages.js b/dashboard-ui/scripts/edititemimages.js
index e0df6a73c2..7773fac39d 100644
--- a/dashboard-ui/scripts/edititemimages.js
+++ b/dashboard-ui/scripts/edititemimages.js
@@ -13,12 +13,113 @@
currentItem = item;
- LibraryBrowser.renderTitle(item, $('#itemName', page), $('#parentName', page), $('#grandParentName', page));
+ LibraryBrowser.renderTitle(item, $('#itemName', page), $('#parentName', page), $('#grandParentName', page), true);
- Dashboard.hideLoadingMsg();
+ ApiClient.getItemImageInfos(currentItem.Id).done(function (imageInfos) {
+ renderStandardImages(page, item, imageInfos);
+ renderBackdrops(page, item, imageInfos);
+ renderScreenshots(page, item, imageInfos);
+ Dashboard.hideLoadingMsg();
+ });
});
}
+ function renderImages(page, item, images, elem) {
+
+ var html = '';
+
+ for (var i = 0, length = images.length; i < length; i++) {
+
+ var image = images[i];
+
+ html += '
';
+
+ html += '
';
+
+ html += '
';
+ html += '
' + image.ImageType + '
';
+
+ html += '
' + image.Width + ' * ' + image.Height + '
';
+
+ html += '
' + (parseInt(image.Size / 1024)) + ' KB
';
+
+ html += '
';
+
+ if (image.ImageType == "Backdrop" || image.ImageType == "Screenshot") {
+
+ if (i > 0) {
+ html += '';
+ } else {
+ html += '';
+ }
+
+ if (i < length - 1) {
+ html += '';
+ } else {
+ html += '';
+ }
+ }
+
+ html += '';
+
+ html += '
';
+
+ html += '
';
+
+ html += '
';
+ }
+
+ elem.html(html).trigger('create');
+ }
+
+ function renderStandardImages(page, item, imageInfos) {
+
+ var images = imageInfos.filter(function (i) {
+ return i.ImageType != "Screenshot" && i.ImageType != "Backdrop" && i.ImageType != "Chapter";
+ });
+
+ if (images.length) {
+ $('#imagesContainer', page).show();
+ renderImages(page, item, images, $('#images', page));
+ } else {
+ $('#imagesContainer', page).hide();
+ }
+ }
+
+ function renderBackdrops(page, item, imageInfos) {
+
+ var images = imageInfos.filter(function (i) {
+ return i.ImageType == "Backdrop";
+
+ }).sort(function (a, b) {
+ return a.ImageIndex - b.ImageIndex;
+ });
+
+ if (images.length) {
+ $('#backdropsContainer', page).show();
+ renderImages(page, item, images, $('#backdrops', page));
+ } else {
+ $('#backdropsContainer', page).hide();
+ }
+ }
+
+ function renderScreenshots(page, item, imageInfos) {
+
+ var images = imageInfos.filter(function (i) {
+ return i.ImageType == "Screenshot";
+
+ }).sort(function (a, b) {
+ return a.ImageIndex - b.ImageIndex;
+ });
+
+ if (images.length) {
+ $('#screenshotsContainer', page).show();
+ renderImages(page, item, images, $('#screenshots', page));
+ } else {
+ $('#screenshotsContainer', page).hide();
+ }
+ }
+
function onFileReaderError(evt) {
Dashboard.hideLoadingMsg();
@@ -79,9 +180,6 @@
function processImageChangeResult(page) {
- Dashboard.hideLoadingMsg();
-
- Dashboard.validateCurrentUser(page);
reload(page);
}
@@ -107,14 +205,48 @@
var imageType = $('#selectImageType', page).val();
- ApiClient.uploadImage(currentItem.Id, imageType, file).done(function () {
+ ApiClient.uploadItemImage(currentItem.Id, imageType, file).done(function () {
+ $('#uploadImage', page).val('').trigger('change');
+ $('#popupUpload', page).popup("close");
processImageChangeResult(page);
});
return false;
};
+
+ self.deleteImage = function (type, index) {
+
+ var page = $.mobile.activePage;
+
+ Dashboard.confirm("Are you sure you wish to delete this image?", "Delete " + type + " Image", function (result) {
+
+ if (result) {
+ ApiClient.deleteItemImage(currentItem.Id, type, index).done(function () {
+
+ processImageChangeResult(page);
+
+ });
+ }
+
+ });
+
+
+ };
+
+ self.moveImage = function (type, index, newIndex) {
+
+ var page = $.mobile.activePage;
+
+ ApiClient.updateItemImageIndex(currentItem.Id, type, index, newIndex).done(function () {
+
+ processImageChangeResult(page);
+
+ });
+
+
+ };
}
window.EditItemImagesPage = new editItemImages();
@@ -130,6 +262,10 @@
reload(page);
+ $('#uploadImage', page).on("change", function () {
+ setFiles(page, this.files);
+ });
+
$("#imageDropZone", page).on('dragover', function (e) {
e.preventDefault();
@@ -153,6 +289,8 @@
currentItem = null;
+ $('#uploadImage', page).off("change");
+
$("#imageDropZone", page).off('dragover').off('drop');
});
diff --git a/dashboard-ui/scripts/itemlistpage.js b/dashboard-ui/scripts/itemlistpage.js
index 5e0e38b13a..1a7b6537fc 100644
--- a/dashboard-ui/scripts/itemlistpage.js
+++ b/dashboard-ui/scripts/itemlistpage.js
@@ -78,6 +78,16 @@
$('#itemName', page).html(name);
Dashboard.setPageTitle(name);
});
+
+ Dashboard.getCurrentUser().done(function (user) {
+
+ if (user.Configuration.IsAdministrator) {
+ $('#editButtonContainer', page).show();
+ } else {
+ $('#editButtonContainer', page).hide();
+ }
+
+ });
}
$(document).on('pageinit', "#itemListPage", function () {
@@ -120,6 +130,11 @@
reloadItems(page);
});
+ $('#btnEdit', page).on('click', function () {
+
+ Dashboard.navigate("edititemimages.html?id=" + query.ParentId);
+ });
+
}).on('pageshow', "#itemListPage", function () {
query.ParentId = getParameterByName('parentId');
diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js
index 66b8f96c37..f051443fa9 100644
--- a/dashboard-ui/scripts/librarybrowser.js
+++ b/dashboard-ui/scripts/librarybrowser.js
@@ -616,10 +616,10 @@
getMetroColor: function (str) {
if (str) {
- var char = String(str.substr(0, 1).charCodeAt());
+ var character = String(str.substr(0, 1).charCodeAt());
var sum = 0;
- for (var i = 0; i < char.length; i++) {
- sum += parseInt(char.charAt(i));
+ for (var i = 0; i < character.length; i++) {
+ sum += parseInt(character.charAt(i));
}
var index = String(sum).substr(-1);
@@ -630,11 +630,11 @@
},
- renderTitle: function (item, nameElem, parentNameElem, grandParentNameElem) {
-
+ renderTitle: function (item, nameElem, parentNameElem, grandParentNameElem, linkToElement) {
+
var name = item.Name;
- if (item.IndexNumber != null) {
+ if (item.IndexNumber != null && item.Type !== "Season") {
name = item.IndexNumber + " - " + name;
}
if (item.ParentIndexNumber != null && item.Type != "Episode") {
@@ -643,7 +643,11 @@
Dashboard.setPageTitle(name);
- nameElem.html(name);
+ if (linkToElement) {
+ nameElem.html('
' + name + '').trigger('create');
+ } else {
+ nameElem.html(name);
+ }
if (item.AlbumArtist && item.Type == "Audio") {
grandParentNameElem.html('
' + item.AlbumArtist + '').show().trigger('create');
diff --git a/packages.config b/packages.config
index 23ebca2930..34667ce4cc 100644
--- a/packages.config
+++ b/packages.config
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file