diff --git a/data/interfaces/default/css/plexpy.css b/data/interfaces/default/css/plexpy.css index af290d1e..d9ecc338 100644 --- a/data/interfaces/default/css/plexpy.css +++ b/data/interfaces/default/css/plexpy.css @@ -973,11 +973,40 @@ a .dashboard-activity-metadata-user-thumb:hover { overflow: hidden; z-index: 1; } -a .summary-poster-face:hover, -a .summary-poster-face-episode:hover { +.summary-poster-face-overlay { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + background-image: -webkit-gradient(linear,left 0,left 100%,from(rgba(0,0,0,.7)),to(rgba(0,0,0,.9))); + background-image: -webkit-linear-gradient(top,rgba(0,0,0,.7),0,rgba(0,0,0,.9),100%); + background-image: -moz-linear-gradient(top,rgba(0,0,0,.7) 0,rgba(0,0,0,.9) 100%); + background-image: linear-gradient(to bottom,rgba(0,0,0,.7) 0,rgba(0,0,0,.9) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3000000', endColorstr='#e6000000', GradientType=0); webkit-box-shadow: inset 0 0 0 2px #e9a049; -moz-box-shadow: inset 0 0 0 2px #e9a049; box-shadow: inset 0 0 0 2px #e9a049; + opacity: 0; + transition: opacity .2s; +} +.summary-poster-face-overlay span { + display: block; + width: 100%; + height: 100%; + background-image: url(/interfaces/default/images/plex-logo-light.svg); + background-size: 100px; + background-repeat: no-repeat; + background-position: center; + opacity: 0; + transition: opacity .3s; +} +a:hover .summary-poster-face .summary-poster-face-overlay, +a:hover .summary-poster-face-episode .summary-poster-face-overlay, +a:hover .summary-poster-face .summary-poster-face-overlay span, +a:hover .summary-poster-face-episode .summary-poster-face-overlay span { + opacity: 1; } .summary-content-padding { float: left; diff --git a/data/interfaces/default/images/plex-logo-light.svg b/data/interfaces/default/images/plex-logo-light.svg new file mode 100644 index 00000000..46d1973f --- /dev/null +++ b/data/interfaces/default/images/plex-logo-light.svg @@ -0,0 +1,26 @@ + + + + plex-logo-light + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/interfaces/default/info.html b/data/interfaces/default/info.html index 9fe80327..2bb8f202 100644 --- a/data/interfaces/default/info.html +++ b/data/interfaces/default/info.html @@ -81,13 +81,21 @@ DOCUMENTATION :: END
% if data['type'] == 'movie' or data['type'] == 'show': @@ -263,6 +271,24 @@ DOCUMENTATION :: END
+
% endif
@@ -312,19 +338,43 @@ DOCUMENTATION :: END } } history_table = $('#history_table').DataTable(history_table_options); - var colvis = new $.fn.dataTable.ColVis(history_table, { buttonText: ' Select columns', buttonClass: 'btn btn-dark', exclude: [0, 10] }); $(colvis.button()).appendTo('div.colvis-button-bar'); clearSearchButton('history_table', history_table); - $('#row-edit-mode').click(function() { + $('#row-edit-mode').on('click', function() { + $('#row-edit-mode-alert').fadeIn(200); + if ($(this).hasClass('active')) { - $('.delete-control').each(function() { + if (history_to_delete.length > 0) { + $('#deleteCount').text(history_to_delete.length); + $('#confirm-modal').modal(); + $('#confirm-modal').one('click', '#confirm-delete', function () { + for (var i = 0; i < history_to_delete.length; i++) { + $.ajax({ + url: 'delete_history_rows', + data: { row_id: history_to_delete[i] }, + async: true, + success: function (data) { + var msg = "History deleted"; + showMsg(msg, false, true, 2000); + } + }); + } + history_table.draw(); + }); + } + + $('.delete-control').each(function () { $(this).addClass('hidden'); + $('#row-edit-mode-alert').fadeOut(200); }); + } else { + history_to_delete = []; $('.delete-control').each(function() { + $(this).find('button.btn-danger').toggleClass('btn-warning').toggleClass('btn-danger'); $(this).removeClass('hidden'); }); } @@ -386,6 +436,7 @@ DOCUMENTATION :: END } }); }); + $.ajax({ url: 'get_show_children', type: "GET", @@ -465,9 +516,7 @@ DOCUMENTATION :: END -% endif - +% endif diff --git a/data/interfaces/default/js/script.js b/data/interfaces/default/js/script.js index 1ad24f57..33de6f00 100644 --- a/data/interfaces/default/js/script.js +++ b/data/interfaces/default/js/script.js @@ -219,7 +219,11 @@ function getPlatformImagePath(platformName) { return 'interfaces/default/images/platforms/playstation.png'; } else if (platformName.indexOf("Mystery 5") > -1) { return 'interfaces/default/images/platforms/xbox.png'; - } else { + } else if (platformName.indexOf("Windows") > -1) { + return 'interfaces/default/images/platforms/win8.png'; + } else if (platformName.indexOf("Windows phone") > -1) { + return 'interfaces/default/images/platforms/wp.png'; + } else { return 'interfaces/default/images/platforms/default.png'; } } diff --git a/plexpy/webserve.py b/plexpy/webserve.py index 5d2ba311..be862de5 100644 --- a/plexpy/webserve.py +++ b/plexpy/webserve.py @@ -762,6 +762,11 @@ class WebInterface(object): def info(self, item_id=None, source=None, **kwargs): metadata = None + config = { + "pms_url": plexpy.CONFIG.PMS_URL, + "pms_identifier": plexpy.CONFIG.PMS_IDENTIFIER + } + if source == 'history': data_factory = datafactory.DataFactory() metadata = data_factory.get_metadata_details(row_id=item_id) @@ -772,7 +777,7 @@ class WebInterface(object): metadata = result['metadata'] if metadata: - return serve_template(templatename="info.html", data=metadata, title="Info") + return serve_template(templatename="info.html", data=metadata, title="Info", config=config) else: logger.warn('Unable to retrieve data.') return serve_template(templatename="info.html", data=None, title="Info")