diff --git a/ApiClient.js b/ApiClient.js index 3254b84f36..151e62462f 100644 --- a/ApiClient.js +++ b/ApiClient.js @@ -3569,6 +3569,16 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi url: url }); }; + + self.createPackageReview = function(review) { + + var url = self.getUrl("PackageReviews/" + review.id, review); + + return self.ajax({ + type: "POST", + url: url, + }); + }; } }(jQuery, navigator, window.JSON, window.WebSocket, setTimeout, window); diff --git a/dashboard-ui/css/librarybrowser.css b/dashboard-ui/css/librarybrowser.css index b1e09245d2..921422d9a7 100644 --- a/dashboard-ui/css/librarybrowser.css +++ b/dashboard-ui/css/librarybrowser.css @@ -174,6 +174,18 @@ max-width: 300px; } +.storeStarRating { + background-image: url(data:image/png;base64,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); + background-position: left center; + background-repeat: no-repeat; + width: 19px; + height: 16px; + display: inline-block; + background-size: cover; + vertical-align: central; + cursor: pointer; +} + .starRating { background-image: url(data:image/png;base64,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); background-position: left center; diff --git a/dashboard-ui/css/posteritem.css b/dashboard-ui/css/posteritem.css index 6c531e4898..d136e18dbe 100644 --- a/dashboard-ui/css/posteritem.css +++ b/dashboard-ui/css/posteritem.css @@ -36,6 +36,18 @@ border: 0; } +.posterItemStoreText { + font-family: 'Open Sans', sans-serif; + font-weight: normal; + font-size: 16px; + text-overflow: ellipsis; + overflow: hidden; + text-wrap: none; + white-space: nowrap; + text-shadow: none; +} + + .posterItemText { text-overflow: ellipsis; overflow: hidden; @@ -71,6 +83,20 @@ height: 150px; } +.storeItem { + width: 270px; + display: inline-block; + margin: 10px; +} + +.storePosterItem { + width: 270px; +} + .storePosterItem .posterItemImage { + height: 150px; + } + + .backdropPosterItem { width: 160px; } diff --git a/dashboard-ui/plugincatalog.html b/dashboard-ui/plugincatalog.html index 93ba24ecb5..03e9612bbb 100644 --- a/dashboard-ui/plugincatalog.html +++ b/dashboard-ui/plugincatalog.html @@ -2,6 +2,7 @@ Plugins +
diff --git a/dashboard-ui/scripts/plugincatalogpage.js b/dashboard-ui/scripts/plugincatalogpage.js index 78362aa57a..368a5f390c 100644 --- a/dashboard-ui/scripts/plugincatalogpage.js +++ b/dashboard-ui/scripts/plugincatalogpage.js @@ -47,6 +47,28 @@ Dashboard.hideLoadingMsg(); } + function getRatingHtml(rating, id, name) { + + var html = "
"; + if (!rating) rating = 0; + + for (var i = 1; i <= 5; i++) { + html += ""; + if (rating < i - 1 || rating == 0) { + html += "
"; + } else if (rating < i) { + html += "
"; + } else { + html += "
"; + } + html += "
"; + } + + html += "
"; + + return html; + } + function populateList(page, availablePlugins, installedPlugins) { Dashboard.showLoadingMsg(); @@ -79,7 +101,7 @@ var href = plugin.externalUrl ? plugin.externalUrl : "addPlugin.html?name=" + encodeURIComponent(plugin.name) + "&guid=" + plugin.guid; var target = plugin.externalUrl ? ' target="_blank"' : ''; - html += ""; + html += "
"; if (plugin.thumbImage) { html += '
'; @@ -95,9 +117,9 @@ } } - var color = plugin.tileColor || LibraryBrowser.getMetroColor(plugin.name); + html += "
"; - html += "
"; + html += "
"; var installedPlugin = plugin.isApp ? null : installedPlugins.filter(function (ip) { return ip.Name == plugin.name; @@ -108,10 +130,20 @@ } else { html += plugin.name; } - + html += "
"; - html += ""; + html += "
"; + html += plugin.price > 0 ? "$" + plugin.price.toFixed(2) : "Free"; + html += getRatingHtml(plugin.avgRating, plugin.id, plugin.name); + html += " " + plugin.totalRatings + " Reviews"; + + if (plugin.isPremium && plugin.isRegistered) { + html += " ®"; + } + + html += "
"; + html += "
"; pluginhtml += html; @@ -126,7 +158,6 @@ Dashboard.hideLoadingMsg(); } - $(document).on('pageinit', "#pluginCatalogPage", function () { var page = this; diff --git a/dashboard-ui/scripts/ratingdialog.js b/dashboard-ui/scripts/ratingdialog.js new file mode 100644 index 0000000000..5235e76f39 --- /dev/null +++ b/dashboard-ui/scripts/ratingdialog.js @@ -0,0 +1,98 @@ +(function (window, document, $) { + + window.RatingDialog = function (page) { + + var self = this; + + self.show = function (options) { + + options = options || {}; + + options.header = options.header || "Rate and Review"; + + var html = ''; + + $(page).append(html); + + var popup = $('#popupRatingDialog').popup().trigger('create').on("popupafteropen", function() { + + $('#txtRatingDialogTitle', this).focus(); + + }).popup("open").on("popupafterclose", function() { + + $('form', this).off("submit"); + + $(this).off("popupafterclose").remove(); + + }); + + $('form', popup).on('submit', function () { + + if (options.callback) { + var review = { + id: options.id, + rating: $('#txtRatingDialogRating', this).val(), + title: $('#txtRatingDialogTitle', this).val(), + recommend: $('#txtRatingDialogRecommend', this).checked(), + review: $('#txtRatingDialogReview', this).val(), + }; + + if (review.rating < 3) { + if (!review.title) { + $('#errorMsg', this).html("Please give reason for low rating").show(); + $('#txtRatingDialogTitle', this).focus(); + return false; + } + } + + if (!review.recommend) { + if (!review.title) { + $('#errorMsg', this).html("Please give reason for not recommending").show(); + $('#txtRatingDialogTitle', this).focus(); + return false; + } + } + + options.callback(review); + } else console.log("No callback function provided"); + + return false; + }); + + }; + + self.close = function () { + $('#popupRatingDialog', page).popup("close"); + }; + }; + +})(window, document, jQuery); \ No newline at end of file diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index 840100d8f1..59303fb950 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -1120,7 +1120,25 @@ var Dashboard = { parts.push(seconds); return parts.join(':'); - } + }, + + ratePackage: function(link) { + var id = link.getAttribute('data-id'); + var name = link.getAttribute('data-name'); + var rating = link.getAttribute('data-rating'); + + var dialog = new RatingDialog($.mobile.activePage); + dialog.show({ header: "Rate and review " + name, id: id, rating: rating, callback: function(review) { + console.log(review); + dialog.close(); + + ApiClient.createPackageReview(review).done(function() { + Dashboard.alert("Thank you for your review"); + }); + } }); + +} + }; if (!window.WebSocket) {