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 @@
+
+
\ 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'] == 'episode':
-
- % elif data['type'] == 'season':
-
- % else:
-
- % endif
+
+ % if data['type'] == 'episode':
+
+ % else:
+
+ % endif
+
% if data['type'] == 'movie' or data['type'] == 'show':
@@ -263,6 +271,24 @@ DOCUMENTATION :: END
+
+
+
+
+
+
Are you REALLY sure you want to delete history item(s)?
+
This is permanent and cannot be undone!
+
+
+
+
+
% 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
%def>
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")