- ${next.body()}
+
-
+
% if _session['user_group'] == 'admin' and plexpy.CONFIG.BROWSER_ENABLED:
@@ -392,7 +306,7 @@ ${next.headerIncludes()}
}
$("#nav-shutdown").click(function() {
- $("#confirm-message").text("Are you sure you want to shutdown PlexPy?");
+ $("#confirm-message").text("Are you sure you want to shutdown Tautulli?");
$('#confirm-modal').modal();
$('#confirm-modal').one('click', '#confirm-button', function () {
window.location.href = "shutdown";
@@ -400,7 +314,7 @@ ${next.headerIncludes()}
});
$("#nav-restart").click(function() {
- $("#confirm-message").text("Are you sure you want to restart PlexPy?");
+ $("#confirm-message").text("Are you sure you want to restart Tautulli?");
$('#confirm-modal').modal();
$('#confirm-modal').one('click', '#confirm-button', function () {
window.location.href = "restart";
@@ -465,6 +379,18 @@ ${next.headerIncludes()}
}
});
}
+
+ // Allow stacked bootstrap modals
+ $(document).on('show.bs.modal', '.modal', function (event) {
+ var zIndex = 1040 + (10 * $('.modal:visible').length);
+ $(this).css('z-index', zIndex);
+ setTimeout(function() {
+ $('.modal-backdrop').not('.modal-stack').css('z-index', zIndex - 1).addClass('modal-stack');
+ }, 0);
+ });
+ $(document).on('hidden.bs.modal', '.modal', function () {
+ $('.modal:visible').length && $(document.body).addClass('modal-open');
+ });
});
% if _session['user_group'] != 'admin':
@@ -477,6 +403,7 @@ ${next.javascriptIncludes()}
+<%def name="modalIncludes()">%def>
<%def name="javascriptIncludes()">%def>
<%def name="headIncludes()">%def>
<%def name="headerIncludes()">%def>
diff --git a/data/interfaces/default/configuration_table.html b/data/interfaces/default/configuration_table.html
index 013ad141..8458a237 100644
--- a/data/interfaces/default/configuration_table.html
+++ b/data/interfaces/default/configuration_table.html
@@ -31,15 +31,15 @@ DOCUMENTATION :: END
% endif
Configuration File: |
- ${plexpy.CONFIG_FILE} |
+ ${plexpy.CONFIG_FILE} |
Database File: |
- ${plexpy.DB_FILE} |
+ ${plexpy.DB_FILE} |
Log File: |
- ${os.path.join(plexpy.CONFIG.LOG_DIR, logger.FILENAME)} |
+ ${os.path.join(plexpy.CONFIG.LOG_DIR, logger.FILENAME)} |
Backup Directory: |
@@ -77,78 +77,37 @@ DOCUMENTATION :: END
GitHub Source |
GitHub Issues |
FeatHub Feature Requests |
- PlexPy Wiki |
- PlexPy FAQ
+ Tautulli Wiki |
+ Tautulli FAQ
Support: |
- Plex Forums |
- PlexPy Gitter Chat |
- /r/Plex Discord Server |
- PlexPy Discord Server
+ Tautulli Discord Server |
+ Tautulli Subreddit |
+ Plex Forums
|
-
-
-
-
-
-
-
Please read the guidelines in the README document
before submitting a new !
-
- Your post may be removed for failure to follow the guidelines.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Please read the FAQ before asking for help!
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/data/interfaces/default/css/jquery.scrollbar.css b/data/interfaces/default/css/jquery.scrollbar.css
new file mode 100644
index 00000000..e0a7df51
--- /dev/null
+++ b/data/interfaces/default/css/jquery.scrollbar.css
@@ -0,0 +1,904 @@
+/*************** SCROLLBAR BASE CSS ***************/
+.scroll-wrapper {
+ overflow: hidden !important;
+ padding: 0 !important;
+ position: relative;
+}
+.scroll-wrapper > .scroll-content {
+ border: none !important;
+ box-sizing: content-box !important;
+ height: auto;
+ left: 0;
+ margin: 0;
+ max-height: none;
+ max-width: none !important;
+ overflow: scroll !important;
+ padding: 0;
+ position: relative !important;
+ top: 0;
+ width: auto !important;
+}
+.scroll-wrapper > .scroll-content::-webkit-scrollbar {
+ height: 0;
+ width: 0;
+}
+.scroll-wrapper.scroll--rtl {
+ direction: rtl;
+}
+
+.scroll-element {
+ box-sizing: content-box;
+ display: none;
+}
+.scroll-element div {
+ box-sizing: content-box;
+}
+.scroll-element .scroll-bar,
+.scroll-element .scroll-arrow {
+ cursor: default;
+}
+.scroll-element.scroll-x.scroll-scrollx_visible, .scroll-element.scroll-y.scroll-scrolly_visible {
+ display: block;
+}
+
+.scroll-textarea {
+ border: 1px solid #cccccc;
+ border-top-color: #999999;
+}
+.scroll-textarea > .scroll-content {
+ overflow: hidden !important;
+}
+.scroll-textarea > .scroll-content > textarea {
+ border: none !important;
+ box-sizing: border-box;
+ height: 100% !important;
+ margin: 0;
+ max-height: none !important;
+ max-width: none !important;
+ overflow: scroll !important;
+ outline: none;
+ padding: 2px;
+ position: relative !important;
+ top: 0;
+ width: 100% !important;
+}
+.scroll-textarea > .scroll-content > textarea::-webkit-scrollbar {
+ height: 0;
+ width: 0;
+}
+
+/*************** SIMPLE INNER SCROLLBAR ***************/
+.scrollbar-inner > .scroll-element,
+.scrollbar-inner > .scroll-element div {
+ border: none;
+ margin: 0;
+ padding: 0;
+ position: absolute;
+ z-index: 10;
+}
+
+.scrollbar-inner > .scroll-element div {
+ display: block;
+ height: 100%;
+ left: 0;
+ top: 0;
+ width: 100%;
+}
+
+.scrollbar-inner > .scroll-element.scroll-x {
+ bottom: 2px;
+ height: 8px;
+ left: 0;
+ width: 100%;
+}
+
+.scrollbar-inner > .scroll-element.scroll-y {
+ height: 100%;
+ right: 2px;
+ top: 0;
+ width: 8px;
+}
+
+.scrollbar-inner > .scroll-element .scroll-element_outer {
+ overflow: hidden;
+}
+
+.scrollbar-inner > .scroll-element .scroll-element_outer,
+.scrollbar-inner > .scroll-element .scroll-element_track,
+.scrollbar-inner > .scroll-element .scroll-bar {
+ -webkit-border-radius: 8px;
+ -moz-border-radius: 8px;
+ border-radius: 8px;
+}
+
+.scrollbar-inner > .scroll-element .scroll-element_track,
+.scrollbar-inner > .scroll-element .scroll-bar {
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
+ filter: alpha(opacity=40);
+ opacity: 0.4;
+}
+
+.scrollbar-inner > .scroll-element .scroll-element_track {
+ background-color: #e0e0e0;
+}
+
+.scrollbar-inner > .scroll-element .scroll-bar {
+ background-color: #c2c2c2;
+}
+
+.scrollbar-inner > .scroll-element:hover .scroll-bar {
+ background-color: #919191;
+}
+
+.scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar {
+ background-color: #919191;
+}
+
+/* update scrollbar offset if both scrolls are visible */
+.scrollbar-inner > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track {
+ left: -12px;
+}
+
+.scrollbar-inner > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track {
+ top: -12px;
+}
+
+.scrollbar-inner > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {
+ left: -12px;
+}
+
+.scrollbar-inner > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {
+ top: -12px;
+}
+
+/*************** SIMPLE OUTER SCROLLBAR ***************/
+.scrollbar-outer > .scroll-element,
+.scrollbar-outer > .scroll-element div {
+ border: none;
+ margin: 0;
+ padding: 0;
+ position: absolute;
+ z-index: 10;
+}
+
+.scrollbar-outer > .scroll-element {
+ background-color: #ffffff;
+}
+
+.scrollbar-outer > .scroll-element div {
+ display: block;
+ height: 100%;
+ left: 0;
+ top: 0;
+ width: 100%;
+}
+
+.scrollbar-outer > .scroll-element.scroll-x {
+ bottom: 0;
+ height: 12px;
+ left: 0;
+ width: 100%;
+}
+
+.scrollbar-outer > .scroll-element.scroll-y {
+ height: 100%;
+ right: 0;
+ top: 0;
+ width: 12px;
+}
+
+.scrollbar-outer > .scroll-element.scroll-x .scroll-element_outer {
+ height: 8px;
+ top: 2px;
+}
+
+.scrollbar-outer > .scroll-element.scroll-y .scroll-element_outer {
+ left: 2px;
+ width: 8px;
+}
+
+.scrollbar-outer > .scroll-element .scroll-element_outer {
+ overflow: hidden;
+}
+
+.scrollbar-outer > .scroll-element .scroll-element_track {
+ background-color: #eeeeee;
+}
+
+.scrollbar-outer > .scroll-element .scroll-element_outer,
+.scrollbar-outer > .scroll-element .scroll-element_track,
+.scrollbar-outer > .scroll-element .scroll-bar {
+ -webkit-border-radius: 8px;
+ -moz-border-radius: 8px;
+ border-radius: 8px;
+}
+
+.scrollbar-outer > .scroll-element .scroll-bar {
+ background-color: #d9d9d9;
+}
+
+.scrollbar-outer > .scroll-element .scroll-bar:hover {
+ background-color: #c2c2c2;
+}
+
+.scrollbar-outer > .scroll-element.scroll-draggable .scroll-bar {
+ background-color: #919191;
+}
+
+/* scrollbar height/width & offset from container borders */
+.scrollbar-outer > .scroll-content.scroll-scrolly_visible {
+ left: -12px;
+ margin-left: 12px;
+}
+
+.scrollbar-outer > .scroll-content.scroll-scrollx_visible {
+ top: -12px;
+ margin-top: 12px;
+}
+
+.scrollbar-outer > .scroll-element.scroll-x .scroll-bar {
+ min-width: 10px;
+}
+
+.scrollbar-outer > .scroll-element.scroll-y .scroll-bar {
+ min-height: 10px;
+}
+
+/* update scrollbar offset if both scrolls are visible */
+.scrollbar-outer > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track {
+ left: -14px;
+}
+
+.scrollbar-outer > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track {
+ top: -14px;
+}
+
+.scrollbar-outer > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {
+ left: -14px;
+}
+
+.scrollbar-outer > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {
+ top: -14px;
+}
+
+/*************** SCROLLBAR MAC OS X ***************/
+.scrollbar-macosx > .scroll-element,
+.scrollbar-macosx > .scroll-element div {
+ background: none;
+ border: none;
+ margin: 0;
+ padding: 0;
+ position: absolute;
+ z-index: 10;
+}
+
+.scrollbar-macosx > .scroll-element div {
+ display: block;
+ height: 100%;
+ left: 0;
+ top: 0;
+ width: 100%;
+}
+
+.scrollbar-macosx > .scroll-element .scroll-element_track {
+ display: none;
+}
+
+.scrollbar-macosx > .scroll-element .scroll-bar {
+ background-color: #6C6E71;
+ display: block;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
+ filter: alpha(opacity=0);
+ opacity: 0;
+ -webkit-border-radius: 7px;
+ -moz-border-radius: 7px;
+ border-radius: 7px;
+ -webkit-transition: opacity 0.2s linear;
+ -moz-transition: opacity 0.2s linear;
+ -o-transition: opacity 0.2s linear;
+ -ms-transition: opacity 0.2s linear;
+ transition: opacity 0.2s linear;
+}
+
+.scrollbar-macosx:hover > .scroll-element .scroll-bar,
+.scrollbar-macosx > .scroll-element.scroll-draggable .scroll-bar {
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
+ filter: alpha(opacity=70);
+ opacity: 0.7;
+}
+
+.scrollbar-macosx > .scroll-element.scroll-x {
+ bottom: 0px;
+ height: 0px;
+ left: 0;
+ min-width: 100%;
+ overflow: visible;
+ width: 100%;
+}
+
+.scrollbar-macosx > .scroll-element.scroll-y {
+ height: 100%;
+ min-height: 100%;
+ right: 0px;
+ top: 0;
+ width: 0px;
+}
+
+/* scrollbar height/width & offset from container borders */
+.scrollbar-macosx > .scroll-element.scroll-x .scroll-bar {
+ height: 7px;
+ min-width: 10px;
+ top: -9px;
+}
+
+.scrollbar-macosx > .scroll-element.scroll-y .scroll-bar {
+ left: -9px;
+ min-height: 10px;
+ width: 7px;
+}
+
+.scrollbar-macosx > .scroll-element.scroll-x .scroll-element_outer {
+ left: 2px;
+}
+
+.scrollbar-macosx > .scroll-element.scroll-x .scroll-element_size {
+ left: -4px;
+}
+
+.scrollbar-macosx > .scroll-element.scroll-y .scroll-element_outer {
+ top: 2px;
+}
+
+.scrollbar-macosx > .scroll-element.scroll-y .scroll-element_size {
+ top: -4px;
+}
+
+/* update scrollbar offset if both scrolls are visible */
+.scrollbar-macosx > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {
+ left: -11px;
+}
+
+.scrollbar-macosx > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {
+ top: -11px;
+}
+
+/*************** SCROLLBAR LIGHT ***************/
+.scrollbar-light > .scroll-element,
+.scrollbar-light > .scroll-element div {
+ border: none;
+ margin: 0;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ z-index: 10;
+}
+
+.scrollbar-light > .scroll-element {
+ background-color: #ffffff;
+}
+
+.scrollbar-light > .scroll-element div {
+ display: block;
+ height: 100%;
+ left: 0;
+ top: 0;
+ width: 100%;
+}
+
+.scrollbar-light > .scroll-element .scroll-element_outer {
+ -webkit-border-radius: 10px;
+ -moz-border-radius: 10px;
+ border-radius: 10px;
+}
+
+.scrollbar-light > .scroll-element .scroll-element_size {
+ background: #dbdbdb;
+ background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2RiZGJkYiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNlOGU4ZTgiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+");
+ background: -moz-linear-gradient(left, #dbdbdb 0%, #e8e8e8 100%);
+ background: -webkit-gradient(linear, left top, right top, color-stop(0%, #dbdbdb), color-stop(100%, #e8e8e8));
+ background: -webkit-linear-gradient(left, #dbdbdb 0%, #e8e8e8 100%);
+ background: -o-linear-gradient(left, #dbdbdb 0%, #e8e8e8 100%);
+ background: -ms-linear-gradient(left, #dbdbdb 0%, #e8e8e8 100%);
+ background: linear-gradient(to right, #dbdbdb 0%, #e8e8e8 100%);
+ -webkit-border-radius: 10px;
+ -moz-border-radius: 10px;
+ border-radius: 10px;
+}
+
+.scrollbar-light > .scroll-element.scroll-x {
+ bottom: 0;
+ height: 17px;
+ left: 0;
+ min-width: 100%;
+ width: 100%;
+}
+
+.scrollbar-light > .scroll-element.scroll-y {
+ height: 100%;
+ min-height: 100%;
+ right: 0;
+ top: 0;
+ width: 17px;
+}
+
+.scrollbar-light > .scroll-element .scroll-bar {
+ background: #fefefe;
+ background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZlZmVmZSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNWY1ZjUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+");
+ background: -moz-linear-gradient(left, #fefefe 0%, #f5f5f5 100%);
+ background: -webkit-gradient(linear, left top, right top, color-stop(0%, #fefefe), color-stop(100%, #f5f5f5));
+ background: -webkit-linear-gradient(left, #fefefe 0%, #f5f5f5 100%);
+ background: -o-linear-gradient(left, #fefefe 0%, #f5f5f5 100%);
+ background: -ms-linear-gradient(left, #fefefe 0%, #f5f5f5 100%);
+ background: linear-gradient(to right, #fefefe 0%, #f5f5f5 100%);
+ border: 1px solid #dbdbdb;
+ -webkit-border-radius: 10px;
+ -moz-border-radius: 10px;
+ border-radius: 10px;
+}
+
+/* scrollbar height/width & offset from container borders */
+.scrollbar-light > .scroll-content.scroll-scrolly_visible {
+ left: -17px;
+ margin-left: 17px;
+}
+
+.scrollbar-light > .scroll-content.scroll-scrollx_visible {
+ top: -17px;
+ margin-top: 17px;
+}
+
+.scrollbar-light > .scroll-element.scroll-x .scroll-bar {
+ height: 10px;
+ min-width: 10px;
+ top: 0px;
+}
+
+.scrollbar-light > .scroll-element.scroll-y .scroll-bar {
+ left: 0px;
+ min-height: 10px;
+ width: 10px;
+}
+
+.scrollbar-light > .scroll-element.scroll-x .scroll-element_outer {
+ height: 12px;
+ left: 2px;
+ top: 2px;
+}
+
+.scrollbar-light > .scroll-element.scroll-x .scroll-element_size {
+ left: -4px;
+}
+
+.scrollbar-light > .scroll-element.scroll-y .scroll-element_outer {
+ left: 2px;
+ top: 2px;
+ width: 12px;
+}
+
+.scrollbar-light > .scroll-element.scroll-y .scroll-element_size {
+ top: -4px;
+}
+
+/* update scrollbar offset if both scrolls are visible */
+.scrollbar-light > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {
+ left: -19px;
+}
+
+.scrollbar-light > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {
+ top: -19px;
+}
+
+.scrollbar-light > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track {
+ left: -19px;
+}
+
+.scrollbar-light > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track {
+ top: -19px;
+}
+
+/*************** SCROLLBAR RAIL ***************/
+.scrollbar-rail > .scroll-element,
+.scrollbar-rail > .scroll-element div {
+ border: none;
+ margin: 0;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ z-index: 10;
+}
+
+.scrollbar-rail > .scroll-element {
+ background-color: #ffffff;
+}
+
+.scrollbar-rail > .scroll-element div {
+ display: block;
+ height: 100%;
+ left: 0;
+ top: 0;
+ width: 100%;
+}
+
+.scrollbar-rail > .scroll-element .scroll-element_size {
+ background-color: #999;
+ background-color: rgba(0, 0, 0, 0.3);
+}
+
+.scrollbar-rail > .scroll-element .scroll-element_outer:hover .scroll-element_size {
+ background-color: #666;
+ background-color: rgba(0, 0, 0, 0.5);
+}
+
+.scrollbar-rail > .scroll-element.scroll-x {
+ bottom: 0;
+ height: 12px;
+ left: 0;
+ min-width: 100%;
+ padding: 3px 0 2px;
+ width: 100%;
+}
+
+.scrollbar-rail > .scroll-element.scroll-y {
+ height: 100%;
+ min-height: 100%;
+ padding: 0 2px 0 3px;
+ right: 0;
+ top: 0;
+ width: 12px;
+}
+
+.scrollbar-rail > .scroll-element .scroll-bar {
+ background-color: #d0b9a0;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ border-radius: 2px;
+ box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
+}
+
+.scrollbar-rail > .scroll-element .scroll-element_outer:hover .scroll-bar {
+ box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.6);
+}
+
+/* scrollbar height/width & offset from container borders */
+.scrollbar-rail > .scroll-content.scroll-scrolly_visible {
+ left: -17px;
+ margin-left: 17px;
+}
+
+.scrollbar-rail > .scroll-content.scroll-scrollx_visible {
+ margin-top: 17px;
+ top: -17px;
+}
+
+.scrollbar-rail > .scroll-element.scroll-x .scroll-bar {
+ height: 10px;
+ min-width: 10px;
+ top: 1px;
+}
+
+.scrollbar-rail > .scroll-element.scroll-y .scroll-bar {
+ left: 1px;
+ min-height: 10px;
+ width: 10px;
+}
+
+.scrollbar-rail > .scroll-element.scroll-x .scroll-element_outer {
+ height: 15px;
+ left: 5px;
+}
+
+.scrollbar-rail > .scroll-element.scroll-x .scroll-element_size {
+ height: 2px;
+ left: -10px;
+ top: 5px;
+}
+
+.scrollbar-rail > .scroll-element.scroll-y .scroll-element_outer {
+ top: 5px;
+ width: 15px;
+}
+
+.scrollbar-rail > .scroll-element.scroll-y .scroll-element_size {
+ left: 5px;
+ top: -10px;
+ width: 2px;
+}
+
+/* update scrollbar offset if both scrolls are visible */
+.scrollbar-rail > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {
+ left: -25px;
+}
+
+.scrollbar-rail > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {
+ top: -25px;
+}
+
+.scrollbar-rail > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track {
+ left: -25px;
+}
+
+.scrollbar-rail > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track {
+ top: -25px;
+}
+
+/*************** SCROLLBAR DYNAMIC ***************/
+.scrollbar-dynamic > .scroll-element,
+.scrollbar-dynamic > .scroll-element div {
+ background: none;
+ border: none;
+ margin: 0;
+ padding: 0;
+ position: absolute;
+ z-index: 10;
+}
+
+.scrollbar-dynamic > .scroll-element div {
+ display: block;
+ height: 100%;
+ left: 0;
+ top: 0;
+ width: 100%;
+}
+
+.scrollbar-dynamic > .scroll-element.scroll-x {
+ bottom: 2px;
+ height: 7px;
+ left: 0;
+ min-width: 100%;
+ width: 100%;
+}
+
+.scrollbar-dynamic > .scroll-element.scroll-y {
+ height: 100%;
+ min-height: 100%;
+ right: 2px;
+ top: 0;
+ width: 7px;
+}
+
+.scrollbar-dynamic > .scroll-element .scroll-element_outer {
+ opacity: 0.3;
+ -webkit-border-radius: 12px;
+ -moz-border-radius: 12px;
+ border-radius: 12px;
+}
+
+.scrollbar-dynamic > .scroll-element .scroll-element_size {
+ background-color: #cccccc;
+ opacity: 0;
+ -webkit-border-radius: 12px;
+ -moz-border-radius: 12px;
+ border-radius: 12px;
+ -webkit-transition: opacity 0.2s;
+ -moz-transition: opacity 0.2s;
+ -o-transition: opacity 0.2s;
+ -ms-transition: opacity 0.2s;
+ transition: opacity 0.2s;
+}
+
+.scrollbar-dynamic > .scroll-element .scroll-bar {
+ background-color: #6c6e71;
+ -webkit-border-radius: 7px;
+ -moz-border-radius: 7px;
+ border-radius: 7px;
+}
+
+/* scrollbar height/width & offset from container borders */
+.scrollbar-dynamic > .scroll-element.scroll-x .scroll-bar {
+ bottom: 0;
+ height: 7px;
+ min-width: 24px;
+ top: auto;
+}
+
+.scrollbar-dynamic > .scroll-element.scroll-y .scroll-bar {
+ left: auto;
+ min-height: 24px;
+ right: 0;
+ width: 7px;
+}
+
+.scrollbar-dynamic > .scroll-element.scroll-x .scroll-element_outer {
+ bottom: 0;
+ top: auto;
+ left: 2px;
+ -webkit-transition: height 0.2s;
+ -moz-transition: height 0.2s;
+ -o-transition: height 0.2s;
+ -ms-transition: height 0.2s;
+ transition: height 0.2s;
+}
+
+.scrollbar-dynamic > .scroll-element.scroll-y .scroll-element_outer {
+ left: auto;
+ right: 0;
+ top: 2px;
+ -webkit-transition: width 0.2s;
+ -moz-transition: width 0.2s;
+ -o-transition: width 0.2s;
+ -ms-transition: width 0.2s;
+ transition: width 0.2s;
+}
+
+.scrollbar-dynamic > .scroll-element.scroll-x .scroll-element_size {
+ left: -4px;
+}
+
+.scrollbar-dynamic > .scroll-element.scroll-y .scroll-element_size {
+ top: -4px;
+}
+
+/* update scrollbar offset if both scrolls are visible */
+.scrollbar-dynamic > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {
+ left: -11px;
+}
+
+.scrollbar-dynamic > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {
+ top: -11px;
+}
+
+/* hover & drag */
+.scrollbar-dynamic > .scroll-element:hover .scroll-element_outer,
+.scrollbar-dynamic > .scroll-element.scroll-draggable .scroll-element_outer {
+ overflow: hidden;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
+ filter: alpha(opacity=70);
+ opacity: 0.7;
+}
+
+.scrollbar-dynamic > .scroll-element:hover .scroll-element_outer .scroll-element_size,
+.scrollbar-dynamic > .scroll-element.scroll-draggable .scroll-element_outer .scroll-element_size {
+ opacity: 1;
+}
+
+.scrollbar-dynamic > .scroll-element:hover .scroll-element_outer .scroll-bar,
+.scrollbar-dynamic > .scroll-element.scroll-draggable .scroll-element_outer .scroll-bar {
+ height: 100%;
+ width: 100%;
+ -webkit-border-radius: 12px;
+ -moz-border-radius: 12px;
+ border-radius: 12px;
+}
+
+.scrollbar-dynamic > .scroll-element.scroll-x:hover .scroll-element_outer,
+.scrollbar-dynamic > .scroll-element.scroll-x.scroll-draggable .scroll-element_outer {
+ height: 20px;
+ min-height: 7px;
+}
+
+.scrollbar-dynamic > .scroll-element.scroll-y:hover .scroll-element_outer,
+.scrollbar-dynamic > .scroll-element.scroll-y.scroll-draggable .scroll-element_outer {
+ min-width: 7px;
+ width: 20px;
+}
+
+/*************** SCROLLBAR GOOGLE CHROME ***************/
+.scrollbar-chrome > .scroll-element,
+.scrollbar-chrome > .scroll-element div {
+ border: none;
+ margin: 0;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ z-index: 10;
+}
+
+.scrollbar-chrome > .scroll-element {
+ background-color: #ffffff;
+}
+
+.scrollbar-chrome > .scroll-element div {
+ display: block;
+ height: 100%;
+ left: 0;
+ top: 0;
+ width: 100%;
+}
+
+.scrollbar-chrome > .scroll-element .scroll-element_track {
+ background: #f1f1f1;
+ border: 1px solid #dbdbdb;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-x {
+ bottom: 0;
+ height: 16px;
+ left: 0;
+ min-width: 100%;
+ width: 100%;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-y {
+ height: 100%;
+ min-height: 100%;
+ right: 0;
+ top: 0;
+ width: 16px;
+}
+
+.scrollbar-chrome > .scroll-element .scroll-bar {
+ background-color: #d9d9d9;
+ border: 1px solid #bdbdbd;
+ cursor: default;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ border-radius: 2px;
+}
+
+.scrollbar-chrome > .scroll-element .scroll-bar:hover {
+ background-color: #c2c2c2;
+ border-color: #a9a9a9;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-draggable .scroll-bar {
+ background-color: #919191;
+ border-color: #7e7e7e;
+}
+
+/* scrollbar height/width & offset from container borders */
+.scrollbar-chrome > .scroll-content.scroll-scrolly_visible {
+ left: -16px;
+ margin-left: 16px;
+}
+
+.scrollbar-chrome > .scroll-content.scroll-scrollx_visible {
+ top: -16px;
+ margin-top: 16px;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-x .scroll-bar {
+ height: 8px;
+ min-width: 10px;
+ top: 3px;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-y .scroll-bar {
+ left: 3px;
+ min-height: 10px;
+ width: 8px;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-x .scroll-element_outer {
+ border-left: 1px solid #dbdbdb;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-x .scroll-element_track {
+ height: 14px;
+ left: -3px;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-x .scroll-element_size {
+ height: 14px;
+ left: -4px;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-y .scroll-element_outer {
+ border-top: 1px solid #dbdbdb;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-y .scroll-element_track {
+ top: -3px;
+ width: 14px;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-y .scroll-element_size {
+ top: -4px;
+ width: 14px;
+}
+
+/* update scrollbar offset if both scrolls are visible */
+.scrollbar-chrome > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {
+ left: -19px;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {
+ top: -19px;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track {
+ left: -19px;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track {
+ top: -19px;
+}
diff --git a/data/interfaces/default/css/plexpy-dataTables.css b/data/interfaces/default/css/plexpy-dataTables.css
index 3386c531..5ef66009 100644
--- a/data/interfaces/default/css/plexpy-dataTables.css
+++ b/data/interfaces/default/css/plexpy-dataTables.css
@@ -34,7 +34,7 @@ table.display {
margin: 0 auto;
clear: both;
width: 100%;
- font-size: 14px;
+ font-size: 12px;
line-height: 25px;
/* Note Firefox 3.5 and before have a bug with border-collapse
* ( https://bugzilla.mozilla.org/show%5Fbug.cgi?id=155955 )
@@ -332,4 +332,86 @@ div.box {
}
td.no-wrap, th.no-wrap {
white-space:nowrap;
-}
\ No newline at end of file
+}
+
+
+
+/*
+ * Custom styles
+ */
+
+table.display,
+table.display tr.shown + tr table[id^='history_child'],
+table.display tr.shown + tr table[id^='media_info_child'],
+table.display tr.shown + tr table[id^='media_info_child'] tr.shown + tr table[id^='media_info_child'] {
+ table-layout: auto;
+}
+table.display tr.shown + tr div.slider {
+ display: none;
+}
+table.display tr.shown + tr > td {
+ padding-top: 0;
+ padding-bottom: 0;
+ padding-left: 0;
+}
+table.display tr.shown + tr:hover {
+ background-color: rgba(255,255,255,0);
+}
+table.display tr.shown + tr:hover a,
+table.display tr.shown + tr td:hover a,
+table.display tr.shown + tr .pagination > .active > a,
+table.display tr.shown + tr .pagination > .active > a:hover {
+ color: #fff;
+}
+table.display tr.shown + tr table[id^='history_child'] td:hover a,
+table.display tr.shown + tr table[id^='media_info_child'] > tr > td:hover a,
+table.display tr.shown + tr table[id^='media_info_child'] tr.shown + tr table[id^='media_info_child'] td:hover a {
+ color: #cc7b19;
+}
+table.display tr.shown + tr .pagination > .disabled > a,
+table.display tr.shown + tr .pagination > .disabled > a:hover {
+ color: #444444;
+}
+table.display tr.shown + tr .pagination > li > a:hover {
+ color: #e9a049;
+}
+table.display tr.odd td,
+table.display tr.even td {
+ padding: 5px 10px !important;
+}
+table[id^='history_child'] {
+ margin-top: 0;
+ opacity: .6;
+}
+table[id^='media_info_child'] {
+ margin-top: 0;
+}
+div[id^='history_child'] thead th,
+div[id^='media_info_child'] thead th {
+ line-height: 0;
+ height: 0 !important;
+ overflow: hidden;
+}
+div[id^='history_child'] div.row,
+div[id^='media_info_child'] div.row {
+ margin: 0;
+}
+div[id^='history_child'] div.col-sm-12,
+div[id^='media_info_child'] div.col-sm-12 {
+ padding: 0;
+}
+div[id^='history_child'] div.dataTables_scrollBody,
+div[id^='media_info_child'] div.dataTables_scrollBody {
+ overflow: hidden !important;
+}
+div[id^='media_info_child'] div[id^='media_info_child'] div.dataTables_scrollHead thead th {
+ line-height: 25px;
+ height: 35px !important;
+ overflow: hidden;
+}
+.current-activity-row {
+ background-color: rgba(255,255,255,.1) !important;
+}
+.current-activity-row:hover {
+ background-color: rgba(255,255,255,0.125) !important;
+}
diff --git a/data/interfaces/default/css/plexpy.css b/data/interfaces/default/css/plexpy.css
index f7385355..ebbc48b9 100644
--- a/data/interfaces/default/css/plexpy.css
+++ b/data/interfaces/default/css/plexpy.css
@@ -13,7 +13,7 @@ a:focus {
text-decoration: none;
outline: none;
}
-select {
+select, .react-selectize.bootstrap3.root-node .react-selectize-control {
margin: 5px 0 5px 0;
border: 2px solid #444;
background: #333;
@@ -60,6 +60,47 @@ select[multiple] option {
-moz-border-radius: 2px;
border-radius: 2px;
}
+select.form-control {
+ margin: 5px 0 5px 0;
+ color: #fff;
+ border: 0px solid #444;
+ background: #555;
+ height: 32px;
+ padding: 6px 12px;
+ background-color: #555;
+ border-radius: 3px;
+ transition: background-color .3s;
+}
+.react-selectize.root-node .react-selectize-control {
+ color: #fff !important;
+ border: 0px solid #444 !important;
+ background: #555 !important;
+ padding: 1px 2px;
+}
+.react-selectize.root-node .react-selectize-control .react-selectize-placeholder {
+ color: #fff !important;
+}
+.react-selectize.root-node .react-selectize-control .react-selectize-toggle-button path {
+ fill: #fff !important;
+}
+.react-selectize.root-node .simple-value span {
+ padding-bottom: 2px !important;
+}
+.react-selectize.root-node .react-selectize-control .react-selectize-search-field-and-selected-values .resizable-input{
+ padding-top: 3px !important;
+ padding-bottom: 3px !important;
+}
+select.form-control:focus {
+ outline: 0;
+ outline: thin dotted \9;
+ color: #555;
+ background-color: #fff;
+ transition: background-color .3s;
+}
+select.form-control option {
+ color: #555;
+ background-color: #fff;
+}
img {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
@@ -212,6 +253,12 @@ fieldset[disabled] .btn-dark.active {
background-color: #333;
color: #aaa;
}
+.btn-dark.inactive:hover {
+ color: #d7d7d7;
+ background-color: #3B3B3B;
+ border-color: transparent;
+ cursor: default;
+}
.btn-dark .badge {
color: #e5e5e5;
background-color: #3B3B3B;
@@ -350,7 +397,8 @@ fieldset[disabled] .btn-bright.active {
.modal-body a:focus i.fa {
color: #f9aa03;
}
-.modal-body strong {
+.modal-body strong,
+.modal-body strong i.fa {
color: #F9AA03;
}
.modal-footer {
@@ -503,6 +551,12 @@ textarea.form-control:focus {
text-align: center;
pointer-events: none;
}
+.form-control[readonly] {
+ background-color: #555;
+}
+.form-control[readonly]:focus {
+ background-color: #fff;
+}
.poster {
position: relative;
height: 225px;
@@ -557,294 +611,276 @@ textarea.form-control:focus {
a .poster-face:hover,
a .cover-face:hover,
a .users-poster-face:hover {
- webkit-box-shadow: inset 0 0 0 2px #e9a049;
+ -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;
}
.users-name {
position: relative;
}
-.platform {
- padding-bottom: 0px;
- margin-bottom: 0px;
- margin-left: 5px;
- float: left;
-}
#dashboard-checking-activity,
#dashboard-no-activity {
margin-bottom: 20px;
}
-.dashboard-instance {
+.dashboard-activity-instance {
float: left;
position: relative;
- height: 260px;
- width: 350px;
+ height: 290px;
+ min-width: 350px;
+ max-width: 500px;
margin-right: 20px;
margin-bottom: 20px;
}
-.dashboard-instance.hover .dashboard-activity-poster {
- -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 2px #e9a049;
- -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 2px #e9a049;
- box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 2px #e9a049;
-}
-.dashboard-instance.hover .dashboard-activity-poster-info-bar {
- opacity: 1;
-}
-.dashboard-instance.hover .dashboard-activity-progress-bar {
- height: 14px;
- transform-origin: top;
- transition: all .2s ease;
- border-radius: 0px 0px 3px 3px;
-}
-.dashboard-instance.hover .bar {
- height: 14px;
- max-width: 100%;
- transform-origin: top;
- transition: all .2s ease;
- border-radius: 0px 0px 3px 3px;
- color: rgba(255, 255, 255, 1);
- background-image: -webkit-linear-gradient(left,rgba(0,0,0,0.25),0%,rgba(0,0,0,0),50px);
- background-image: -moz-linear-gradient(left,rgba(0,0,0,0.25) 0%,rgba(0,0,0,0) 50px);
- background-image: linear-gradient(to left,rgba(0,0,0,0.25) 0%,rgba(0,0,0,0) 50px);
-}
-.dashboard-instance.hover .bufferbar {
- height: 14px;
- max-width: 100%;
- transform-origin: top;
- transition: all .2s ease;
- border-radius: 0px 0px 3px 3px;
- color: rgba(255, 255, 255, 1);
- background-image: -webkit-linear-gradient(left,rgba(0,0,0,0.25),0%,rgba(0,0,0,0),50px);
- background-image: -moz-linear-gradient(left,rgba(0,0,0,0.25) 0%,rgba(0,0,0,0) 50px);
- background-image: linear-gradient(to left,rgba(0,0,0,0.25) 0%,rgba(0,0,0,0) 50px);
-}
-.dashboard-instance.hover .dashboard-activity-metadata-wrapper {
- margin-top: 11px;
- transform-origin: top;
- transition: all .2s ease;
-}
-.dashboard-activity-poster {
- height: 200px;
+.dashboard-activity-container {
+ height: 240px;
width: 100%;
position: relative;
+ margin-bottom: 5px;
+ padding: 0px;
+ -webkit-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
overflow: hidden;
}
-.dashboard-activity-poster-face {
+.dashboard-activity-background-overlay {
+ display: -webkit-flex;
+ display: flex;
+ -webkit-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ height: 235px;
+ width: 100%;
+ padding: 5px;
+ overflow: hidden;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+}
+.dashboard-activity-background {
+ background-color: #282828;
background-position: center;
background-size: cover;
- height: 100%;
+ height: 235px;
width: 100%;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
- -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
- -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
- box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
- z-index: -3;
-}
-.dashboard-activity-cover-face-bg {
- background-position: center;
- background-size: cover;
- background-repeat: no-repeat;
- height: 100%;
- width: 100%;
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
- -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
- box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
- -webkit-filter: blur(5px);
- -moz-filter: blur(5px);
- filter: blur(5px);
- opacity: 0.75;
- z-index: -3;
-}
-.dashboard-activity-cover-face {
- background-position: center;
- background-size: cover;
- background-repeat: no-repeat;
- height: 100%;
- width: 200px;
- -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
- -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
- box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
- position: absolute;
- top: 0;
- left: calc(50% - 100px);
- z-index: -3;
-}
-.dashboard-activity-clip-face-bg {
- background-position: center;
- background-size: cover;
- background-repeat: no-repeat;
- height: 100%;
- width: 100%;
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
- -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
- box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
- -webkit-filter: blur(5px);
- -moz-filter: blur(5px);
- filter: blur(5px);
- opacity: 0.75;
- z-index: -3;
-}
-.dashboard-activity-clip-face {
- background-position: center;
- background-size: cover;
- background-repeat: no-repeat;
- height: 100%;
- width: 130px;
- position: relative;
- -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
- -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
- box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
- position: absolute;
- top: 0;
- left: calc(50% - 65px);
- z-index: -3;
-}
-.dashboard-activity-info-details-overlay {
- text-align: left;
- background-image: -webkit-gradient(linear,left 0,left 100%,from(rgba(0,0,0,.75)),to(rgba(0,0,0,0)));
- background-image: -webkit-linear-gradient(top,rgba(0,0,0,.75),0,rgba(0,0,0,0),100%);
- background-image: -moz-linear-gradient(top,rgba(0,0,0,.75) 0,rgba(0,0,0,0) 100%);
- background-image: linear-gradient(to bottom,rgba(0,0,0,.75) 0,rgba(0,0,0,0) 100%);
- background-repeat: repeat-x;
- position: absolute;
- top: 0;
- width: 100%;
- height: 100%;
- display: none;
+ opacity: 0.40;
+ -webkit-filter: blur(3px);
+ -moz-filter: blur(3px);
+ filter: blur(3px);
+ -webkit-transition: background 1s linear;
+ transition: background 1s linear;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
z-index: -1;
}
-.dashboard-activity-button-info {
- width: 50px;
- height: 50px;
- position: absolute;
- top: 10px;
- right: 10px;
+.dashboard-activity-poster-container {
+ background-color: #282828;
+ height: 225px;
+ width: 150px;
+ margin-right: 5px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
z-index: 1;
}
-.btn-activity-info,
-.btn-activity-info:focus {
- color: #999;
- background-color: rgba(0,0,0,0.5);
-}
-.btn-activity-info:hover {
- color: #fff;
-}
-.dashboard-activity-info-details-content {
- height: 200px;
- width: 100%;
- line-height: 25px;
- text-overflow: ellipsis;
- overflow: hidden;
- white-space: nowrap;
- color: #aaa;
- padding: 10px;
-}
-.dashboard-activity-info-details-content strong {
- color: #fff;
- font-weight: normal;
-}
-.dashboard-activity-info-platform {
- width: 100%;
- height: 50px;
- margin-bottom: 10px;
-}
-.dashboard-activity-info-platform-box {
- float: left;
+.dashboard-activity-poster {
background-position: center;
background-size: cover;
+ height: 225px;
+ width: 150px;
+ -webkit-transition: background 1s linear;
+ transition: background 1s linear;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ z-index: 2;
+}
+.dashboard-activity-poster-blur {
+ background-color: #282828;
+ background-position: center;
+ background-size: cover;
+ height: 225px;
+ width: 150px;
+ -webkit-transition: background .2s ease-in-out;
+ transition: background .2s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ opacity: 0.60;
+ -webkit-filter: blur(3px);
+ -moz-filter: blur(3px);
+ filter: blur(3px);
+ z-index: 2;
+}
+.dashboard-activity-cover {
+ background-position: center;
+ background-size: cover;
+ height: 150px;
+ width: 150px;
+ margin-top: 37.5px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -webkit-transition: background 1s linear;
+ transition: background 1s linear;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ position: absolute;
+ top: 0;
+ z-index: 3;
+}
+.dashboard-activity-info-icon {
width: 50px;
height: 50px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
- margin-right: 10px;
+ position: absolute;
+ top: 10px;
+ right: 10px;
+ overflow: hidden;
+ z-index: 2;
}
-.dashboard-activity-poster-info-bar {
- position:absolute;
+.dashboard-activity-info-platform {
+ padding: 6px !important;
+ background-position: center;
+ background-size: cover;
+ width: 50px;
+ height: 50px;
+ opacity: 1;
+ -webkit-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
+}
+.dashboard-activity-info-platform-no-terminate {
+ background-position: center;
+ background-size: cover;
+ width: 50px;
+ height: 50px;
+ opacity: 1;
+ -webkit-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
+}
+.dashboard-activity-terminate-session {
width: 100%;
height: 100%;
- background-image: -webkit-gradient(linear,left 30%,left 100%,from(rgba(0,0,0,0)),to(rgba(0,0,0,0.75)));
- background-image: -webkit-linear-gradient(top,rgba(0,0,0,0),30%,rgba(0,0,0,0.75),100%);
- background-image: -moz-linear-gradient(top,rgba(0,0,0,0) 30%,rgba(0,0,0,0.75) 100%);
- background-image: linear-gradient(to bottom,rgba(0,0,0,0) 30%,rgba(0,0,0,0.75) 100%);
+ font-size: 31px;
+ color: #eee;
+ text-align: center;
opacity: 0;
- -webkit-transition: all .2s;
- transition: all .2s;
- z-index: -2;
-}
-.dashboard-activity-poster-info-text {
position: absolute;
- bottom: 0;
+ top: 0;
left: 0;
- float: left;
- text-align: left;
- padding: 5px 8px;
- font-size: 12px;
- color: #eee;
- text-overflow: ellipsis;
+ -webkit-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
+}
+.dashboard-activity-terminate-session:hover {
+ color: #e9a049;
+}
+.dashboard-activity-info-container {
+ display: -webkit-flex;
+ display: flex;
+ flex-direction: column;
+ height: 225px;
+ width: 385px;
overflow: hidden;
- white-space: nowrap;
- width: 150px;
}
-.dashboard-activity-poster-info-ip-address {
- position: absolute;
- bottom: 5px;
+.dashboard-activity-info-scroller {
+ height: 225px;
+ width: 100%;
+ -webkit-flex-grow: 1;
+ flex-grow: 1;
+ z-index: 1;
+}
+.dashboard-activity-info-scroller.scrollbar-macosx > .scroll-element.scroll-y {
left: 10px;
- text-align: left;
- font-size: 12px;
- color: #eee;
}
-.dashboard-activity-poster-info-time {
+.dashboard-activity-info-scroller.scrollbar-macosx > .scroll-element .scroll-bar {
+ background-color: #999;
+}
+.dashboard-activity-info {
+ width: 100%;
+ font-size: 12px;
+ padding: 5px 5px 5px 15px;
+ position: relative;
+}
+.dashboard-activity-info-list {
+ margin-bottom: 20px;
+ padding-right: 0;
+}
+.dashboard-activity-info-list:last-of-type {
+ margin-bottom: 0;
+}
+.dashboard-activity-info-item {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ align-items: baseline;
+ width: 100%;
+ margin-bottom: 5px;
+}
+.dashboard-activity-info-item:last-of-type {
+ margin-bottom: 0;
+}
+.dashboard-activity-info-item .sub-heading {
+ height: 100%;
+ width: 60px;
+ color: #aaa;
+ font-size: 10px;
+ text-align: right;
+ text-transform: uppercase;
+ line-height: 14px;
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+}
+.dashboard-activity-info-item .sub-value {
+ margin-left: 10px;
+ text-align: left;
+ line-height: 14px;
+ -webkit-flex-grow: 1;
+ flex-grow: 1;
+}
+.dashboard-activity-info-time {
position: absolute;
- bottom: 5px;
+ top: 200px;
right: 10px;
text-align: right;
- font-size: 12px;
- color: #eee;
+ font-size: 10px;
+ z-index: 2;
}
.dashboard-activity-progress {
width: 100%;
height: 5px;
- margin-bottom: 5px;
+ -webkit-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
+ transform-origin: top;
+ overflow: hidden;
}
.dashboard-activity-progress-bar {
- overflow: hidden;
- height: 5px;
background-color: #111;
+ height: 100%;
width: 100%;
- z-index: -1;
- -webkit-transition: all 0s;
- transition: all 0s;
+ position: relative;
+ overflow: hidden;
}
-.dashboard-activity-progress .bufferbar {
+.dashboard-activity-progress .buffer-bar {
padding-right: 3px;
font-size: x-small;
text-align: right;
+ line-height: 14px;
color: rgba(255, 255, 255, 0);
background-color: #444;
position: absolute;
- height: 6px;
+ height: 100%;
max-width: 100%;
overflow: hidden;
}
-.dashboard-activity-progress .bar {
+.dashboard-activity-progress .progress-bar {
padding-right: 3px;
font-size: x-small;
text-align: right;
+ line-height: 14px;
color: rgba(255, 255, 255, 0);
background-color: #faa732;
background-image: -moz-linear-gradient(top, #fbb450, #f89406);
@@ -855,49 +891,102 @@ a .users-poster-face:hover {
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
position: absolute;
- height: 6px;
+ height: 100%;
max-width: 100%;
overflow: hidden;
}
+.dashboard-activity-container:hover {
+ height: 249px;
+}
+.dashboard-activity-container:hover .dashboard-activity-progress {
+ height: 14px;
+}
+.dashboard-activity-container:hover .progress-bar {
+ color: rgba(255, 255, 255, 1);
+ background-image: -webkit-linear-gradient(left,rgba(0,0,0,0.25),0%,rgba(0,0,0,0),50px);
+ background-image: -moz-linear-gradient(left,rgba(0,0,0,0.25) 0%,rgba(0,0,0,0) 50px);
+ background-image: linear-gradient(to left,rgba(0,0,0,0.25) 0%,rgba(0,0,0,0) 50px);
+}
+.dashboard-activity-container:hover .buffer-bar {
+ color: rgba(255, 255, 255, 1);
+ background-image: -webkit-linear-gradient(left,rgba(0,0,0,0.25),0%,rgba(0,0,0,0),50px);
+ background-image: -moz-linear-gradient(left,rgba(0,0,0,0.25) 0%,rgba(0,0,0,0) 50px);
+ background-image: linear-gradient(to left,rgba(0,0,0,0.25) 0%,rgba(0,0,0,0) 50px);
+}
+a:hover .dashboard-activity-poster,
+a:hover .dashboard-activity-cover {
+ -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;
+}
+.dashboard-activity-container:hover .dashboard-activity-info-platform {
+ opacity: 0;
+}
+.dashboard-activity-container:hover .dashboard-activity-terminate-session {
+ background-color: rgba(0, 0, 0, 0.25);
+ opacity: 1;
+ cursor: pointer;
+}
.dashboard-activity-metadata-wrapper {
position: relative;
width: 100%;
height: 50px;
font-size: 13px;
- padding: 0 3px;
+ padding: 0px 3px 0 3px;
+}
+.dashboard-activity-metadata-title-container {
+ display: flex;
+ flex-direction: row;
+ font-size: 13px;
+ font-weight: bold;
+ line-height: 25px;
+ color: #fff;
+}
+.dashboard-activity-metadata-play_state-icon {
+ flex-basis: 25px;
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
}
.dashboard-activity-metadata-title {
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ width: 350px;
+ -webkit-flex-grow: 1;
+ flex-grow: 1;
+}
+.dashboard-activity-metadata-subtitle-container {
+ display: flex;
+ flex-direction: row;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
font-size: 13px;
font-weight: bold;
line-height: 25px;
- color: #fff;
- max-width: 300px;
+ color: #999;
+}
+.dashboard-activity-metadata-media_type-icon {
+ flex-basis: 25px;
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
}
.dashboard-activity-metadata-subtitle {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
- font-size: 13px;
- font-weight: bold;
- line-height: 25px;
- color: #999;
- max-width: 172px;
- float: left;
+ -webkit-flex-grow: 1;
+ flex-grow: 1;
}
.dashboard-activity-metadata-user {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
- font-size: 13px;
- font-weight: bold;
- line-height: 25px;
- color: #999;
text-align: right;
- max-width: 122px;
- float: right;
+ max-width: 124px;
+ flex-basis: 124px;
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
}
.dashboard-activity-metadata-user-thumb {
background-color: #282828;
@@ -931,11 +1020,329 @@ a .dashboard-activity-metadata-user-thumb:hover {
.dashboard-activity-metadata-title a:hover {
color: #e9a049;
}
-.dashboard-activity-metadata-progress-wrapper {
+.dashboard-stats-instance {
+ float: left;
+ position: relative;
+ height: 160px;
+ min-width: 350px;
+ max-width: 500px;
+ margin-right: 20px;
margin-bottom: 20px;
+}
+.dashboard-stats-container {
+ height: 160px;
+ width: 100%;
+ position: relative;
+ padding: 0px;
+ -webkit-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
+ overflow: hidden;
+}
+.dashboard-stats-background-overlay {
+ display: -webkit-flex;
+ display: flex;
+ -webkit-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ height: 160px;
+ width: 100%;
+ padding: 5px;
+ overflow: hidden;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+}
+.dashboard-stats-background {
+ background-color: #282828;
+ background-position: center;
+ background-size: cover;
+ height: 160px;
+ width: 100%;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ opacity: 0.40;
+ -webkit-filter: blur(3px);
+ -moz-filter: blur(3px);
+ filter: blur(3px);
+ -webkit-transition: background .2s ease-in-out;
+ transition: background .2s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ z-index: -1;
+}
+.dashboard-stats-background.flat {
+ opacity: 1;
+}
+.dashboard-stats-poster-container {
+ background-color: #282828;
+ height: 150px;
+ width: 100px;
+ margin-right: 5px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+ position: relative;
+ overflow: hidden;
+ z-index: 1;
+}
+.dashboard-stats-poster {
+ background-position: center;
+ background-size: cover;
+ height: 150px;
+ width: 100px;
+ -webkit-transition: background .2s ease-in-out;
+ transition: background .2s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ z-index: 2;
+}
+.dashboard-stats-poster-blur {
+ background-color: #282828;
+ background-position: center;
+ background-size: cover;
+ height: 150px;
+ width: 100px;
+ -webkit-transition: background .2s ease-in-out;
+ transition: background .2s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ opacity: 0.60;
+ -webkit-filter: blur(3px);
+ -moz-filter: blur(3px);
+ filter: blur(3px);
+ z-index: 2;
+}
+.dashboard-stats-cover {
+ background-position: center;
+ background-size: cover;
+ height: 100px;
+ width: 100px;
+ margin-top: 25px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -webkit-transition: background .2s ease-in-out;
+ transition: background .2s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ position: absolute;
+ top: 0;
+ z-index: 3;
+}
+.dashboard-stats-circle {
+ background-position: center;
+ background-size: cover;
+ height: 100px;
+ width: 100px;
+ margin-top: 25px;
+ margin-right: 5px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+ -webkit-transition: background .2s ease-in-out;
+ transition: background .2s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ z-index: 1;
+ -webkit-border-radius: 50%;
+ -moz-border-radius: 50%;
+ border-radius: 350%;
+ overflow: hidden;
+}
+.dashboard-stats-square {
+ background-position: center;
+ background-size: cover;
+ height: 100px;
+ width: 100px;
+ margin-top: 25px;
+ margin-right: 5px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+ -webkit-transition: background .2s ease-in-out;
+ transition: background .2s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ z-index: 1;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ overflow: hidden;
+}
+.dashboard-stats-flat {
+ background-position: center;
+ background-size: cover;
+ height: 100px;
+ width: 100px;
+ margin-top: 25px;
+ margin-right: 5px;
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+ -webkit-transition: background .2s ease-in-out;
+ transition: background .2s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ z-index: 1;
+ overflow: hidden;
+}
+.dashboard-stats-info-container {
+ display: -webkit-flex;
+ display: flex;
+ flex-direction: column;
+ height: 150px;
+ width: 385px;
+ overflow: hidden;
+}
+.dashboard-stats-info-title {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ align-items: baseline;
+ height: 30px;
+ width: 100%;
+ padding: 5px 5px 5px 10px;
+ line-height: 20px;
+ text-transform: uppercase;
+ border-bottom: 1px solid rgba(255,255,255,.1);
+ -webkit-flex-grow: 1;
+ flex-grow: 1;
+ z-index: 1;
+}
+.dashboard-stats-info-title h4 {
+ margin: 0;
+ font-size: 15px;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ -webkit-flex-grow: 1;
+ flex-grow: 1;
+}
+.dashboard-stats-info-title .dashboard-stats-stats-units {
+ color: #aaa;
font-size: 12px;
- font-weight: bold;
- color: #e9a049;
+ text-align: right;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+}
+.dashboard-stats-info-scroller {
+ height: 120px;
+ width: 100%;
+ -webkit-flex-grow: 1;
+ flex-grow: 1;
+ z-index: 1;
+}
+.dashboard-stats-info-scroller.scrollbar-macosx > .scroll-element.scroll-y {
+ left: 10px;
+}
+.dashboard-stats-info-scroller.scrollbar-macosx > .scroll-element .scroll-bar {
+ background-color: #999;
+}
+.dashboard-stats-info {
+ width: 100%;
+ font-size: 12px;
+ padding: 3px 0 5px 15px;
+ position: relative;
+}
+.dashboard-stats-info-list {
+ margin-bottom: 20px;
+ padding-right: 0;
+}
+.dashboard-stats-info-list:last-of-type {
+ margin-bottom: 0;
+}
+.dashboard-stats-info-item {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ align-items: baseline;
+ width: 100%;
+ padding: 2.5px 5px;
+ line-height: 14px;
+ border-bottom: 1px solid rgba(255,255,255,0.05);
+ cursor: default;
+}
+.dashboard-stats-info-item:last-of-type {
+ margin-bottom: 0;
+}
+.dashboard-stats-info-item .sub-list {
+ height: 100%;
+ width: 15px;
+ color: #aaa;
+ font-size: 10px;
+ text-align: left;
+ text-transform: uppercase;
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+}
+.dashboard-stats-info-item .sub-value {
+ height: 100%;
+ font-size: 12px;
+ text-align: left;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ -webkit-flex-grow: 1;
+ flex-grow: 1;
+}
+.dashboard-stats-info-item .sub-count {
+ height: 100%;
+ margin-left: 10px;
+ color: #f9be03;
+ font-size: 12px;
+ text-align: right;
+ white-space: nowrap;
+ overflow: hidden;
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+}
+.dashboard-stats-info-item .sub-divider {
+ height: 100%;
+ margin-left: 10px;
+ color: #aaa;
+ font-size: 12px;
+ text-align: left;
+ text-transform: uppercase;
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+}
+.dashboard-stats-info-item.expanded {
+ padding: 5px 5px;
+ line-height: 20px;
+}
+.dashboard-stats-info-item.expanded .sub-heading {
+ font-size: 13px;
+}
+.dashboard-stats-info-item.expanded .sub-value {
+ font-size: 16px;
+}
+.dashboard-stats-info-item.expanded .sub-count {
+ font-size: 16px;
+}
+.dashboard-stats-info-item.expanded .sub-divider {
+ font-size: 16px;
+}
+.dashboard-stats-info-item:hover {
+ background-color: rgba(255,255,255,0.05);
+}
+a:hover .dashboard-stats-poster,
+a:hover .dashboard-stats-cover,
+a:hover .dashboard-stats-circle,
+a:hover .dashboard-stats-square {
+ -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;
+}
+#dashboard-no-recently-added {
+ margin-bottom: 20px;
}
.dashboard-recent-media-row {
width: 100%;
@@ -1248,7 +1655,7 @@ a:hover .dashboard-recent-media-cover {
display: block;
width: 100%;
height: 100%;
- background-image: url(../images/plex-logo-light-small.png);
+ background-image: url(../images/plex-logo-light.svg);
background-size: 100px;
background-repeat: no-repeat;
background-position: center;
@@ -1814,27 +2221,86 @@ a .library-user-instance-box:hover {
-moz-box-shadow: inset 0 0 0 2px #e9a049;
box-shadow: inset 0 0 0 2px #e9a049;
}
+#watched-stats-days-selection label {
+ margin-bottom: 0;
+}
+#watched-stats-days {
+ margin: 0;
+ width: 75px;
+ height: 34px;
+}
+#watched-stats-count {
+ margin: 0;
+ width: 75px;
+ height: 34px;
+}
+#recently-added-count {
+ margin: 0;
+ width: 75px;
+ height: 34px;
+}
+.home-padded-header {
+ margin: 25px 0;
+ height: 34px;
+}
+.home-padded-header h3 {
+ margin-top: 9px;
+ width: 175px;
+}
.home-platforms {
}
-.home-platforms ul {
+.home-platforms ul,
+.library-platforms ul {
list-style: none;
margin: 0;
}
.home-platforms-instance {
- background-color: #282828;
position: relative;
float: left;
- width: 330px;
- padding: 10px;
+ width: 340px;
+ padding: 5px;
margin-right: 20px;
margin-bottom: 20px;
-webkit-box-sizing: content-box;
box-sizing: content-box;
- -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
- -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
- box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
white-space: nowrap;
}
+.home-platforms-instance-overlay {
+ height: 130px;
+ width: 100%;
+ padding: 5px;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ overflow: hidden;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ z-index: 0;
+}
+.home-platforms-instance-background {
+ background-color: #282828;
+ background-position: center;
+ background-size: cover;
+ height: 130px;
+ width: 100%;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ opacity: 0.15;
+ -webkit-filter: blur(3px);
+ -moz-filter: blur(3px);
+ filter: blur(3px);
+ -webkit-transition: background 1s linear;
+ transition: background 1s linear;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ z-index: -1;
+}
.home-platforms-instance li {
position: relative;
}
@@ -2158,8 +2624,8 @@ a .library-user-instance-box:hover {
}
.home-platforms-instance-list-chevron {
position: absolute;
- top: 105px;
- right: 0;
+ top: 100px;
+ right: 5px;
cursor: pointer;
}
.home-platforms-instance-list-chevron i {
@@ -2197,13 +2663,13 @@ a .home-platforms-list-cover-face:hover
width: calc(100% + 20px);
display: none;
position: absolute;
- top: 128px;
- left: -10px;
- -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ top: 124px;
+ left: -5px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
-moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
- box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
z-index: 1;
- clip: rect(1px, 354px, 1000px, -2px);
+ clip: rect(1px, 350px, 1000px, -2px);
}
.history-table-title {
text-overflow: ellipsis;
@@ -2309,8 +2775,8 @@ a .home-platforms-list-cover-face:hover
padding: 15px 15px 15px 15px;
color: #999;
-webkit-transition: all 0.3s ease;
- -o-transition: all 0.3s ease;
- transition: all 0.3s ease;
+ -o-transition: all 0.3s ease;
+ transition: all 0.3s ease;
}
.nav-settings > li > a:hover,
.nav-settings > li > a:focus {
@@ -2328,6 +2794,7 @@ a .home-platforms-list-cover-face:hover
margin: 0px 0px 20px 0px;
}
.stacked-configs > li {
+ margin: 0;
list-style: none;
background-color: #282828;
width: 100%;
@@ -2349,21 +2816,35 @@ a .home-platforms-list-cover-face:hover
color: #eee;
background-color: #2f2f2f;
}
-.stacked-configs > li > span > a.toggle-right {
+.stacked-configs > li > span > a.toggle-right,
+.stacked-configs > li > span > span.toggle-right {
float: right;
color: #999;
padding-left: 10px;
}
-.stacked-configs > li > span > a.toggle-left {
+.stacked-configs > li > span > a.toggle-left,
+.stacked-configs > li > span > span.toggle-left {
color: #444;
padding-right: 8px;
}
.stacked-configs > li > span > a:hover {
color: #eee;
}
-.stacked-configs > li > span > a.active {
+.stacked-configs > li > span > a.active,
+.stacked-configs > li > span > span.active {
color: #f9be03;
}
+.stacked-configs > li.new-notification-agent,
+.stacked-configs > li.notification-agent,
+.stacked-configs > li.add-notification-agent,
+.stacked-configs > li.mobile-device,
+.stacked-configs > li.add-mobile-device {
+ cursor: pointer;
+}
+.stacked-configs > li.mobile-device > span > a.toggle-left,
+.stacked-configs > li.mobile-device > span > span.toggle-left {
+ color: #999;
+}
.accordion {
width: 100%;
max-width: 900px;
@@ -2382,10 +2863,13 @@ a .home-platforms-list-cover-face:hover
-o-transition: all 0.3s ease;
transition: all 0.3s ease;
}
+.accordion li {
+ margin: 0;
+}
.accordion li:last-child .link {
border-bottom: 0;
}
-.accordion li i {
+.accordion li i.fa {
position: absolute;
top: 10px;
left: 10px;
@@ -2449,7 +2933,7 @@ a .home-platforms-list-cover-face:hover
text-align: center;
bottom: 10px;
min-height: 32px;
- width: 250px;
+ width: 400px;
z-index: 9999;
}
.ajaxMsg .msg {
@@ -2664,6 +3148,12 @@ div.dataTables_info {
border-radius: 8px;
background-clip: padding-box;
}
+pre::-webkit-scrollbar-track {
+ background-color: rgba(255,255,255,.2);
+}
+pre::-webkit-scrollbar-thumb {
+ background-color: rgba(0,0,0,.15);
+}
@media only screen
and (min-device-width: 300px)
@@ -2671,89 +3161,13 @@ div.dataTables_info {
.home-platforms-instance {
width: calc(100% - 20px);
}
- .dashboard-instance {
+ .dashboard-activity-instance {
+ width: 100%;
+ }
+ .dashboard-stats-instance {
width: 100%;
}
}
-table.display,
-table.display tr.shown + tr table[id^='history_child'],
-table.display tr.shown + tr table[id^='media_info_child'],
-table.display tr.shown + tr table[id^='media_info_child'] tr.shown + tr table[id^='media_info_child'] {
- table-layout: auto;
-}
-table.display tr.shown + tr div.slider {
- display: none;
-}
-table.display tr.shown + tr > td {
- padding-top: 0;
- padding-bottom: 0;
- padding-left: 0;
-}
-table.display tr.shown + tr:hover {
- background-color: rgba(255,255,255,0);
-}
-table.display tr.shown + tr:hover a,
-table.display tr.shown + tr td:hover a,
-table.display tr.shown + tr .pagination > .active > a,
-table.display tr.shown + tr .pagination > .active > a:hover {
- color: #fff;
-}
-table.display tr.shown + tr table[id^='history_child'] td:hover a,
-table.display tr.shown + tr table[id^='media_info_child'] > tr > td:hover a,
-table.display tr.shown + tr table[id^='media_info_child'] tr.shown + tr table[id^='media_info_child'] td:hover a {
- color: #cc7b19;
-}
-table.display tr.shown + tr .pagination > .disabled > a,
-table.display tr.shown + tr .pagination > .disabled > a:hover {
- color: #444444;
-}
-table.display tr.shown + tr .pagination > li > a:hover {
- color: #e9a049;
-}
-table.display tr.odd td,
-table.display tr.even td {
- padding: 5px 10px !important;
-}
-table[id^='history_child'] {
- margin-top: 0;
- opacity: .6;
-}
-table[id^='media_info_child'] {
- margin-top: 0;
-}
-div[id^='history_child'] thead th,
-div[id^='media_info_child'] thead th {
- line-height: 0;
- height: 0 !important;
- overflow: hidden;
-}
-div[id^='history_child'] div.row,
-div[id^='media_info_child'] div.row {
- margin: 0;
-}
-div[id^='history_child'] div.col-sm-12,
-div[id^='media_info_child'] div.col-sm-12 {
- padding: 0;
-}
-div[id^='history_child'] div.dataTables_scrollBody,
-div[id^='media_info_child'] div.dataTables_scrollBody {
- overflow: hidden !important;
-}
-div[id^='media_info_child'] div[id^='media_info_child'] div.dataTables_scrollHead thead th {
- line-height: 25px;
- height: 35px !important;
- overflow: hidden;
-}
-.dataTables_scrollBody {
- -webkit-overflow-scrolling: touch;
-}
-.current-activity-row {
- background-color: rgba(255,255,255,.1) !important;
-}
-.current-activity-row:hover {
- background-color: rgba(255,255,255,0.125) !important;
-}
-
#search_form {
width: 300px;
padding: 8px 15px;
@@ -2809,7 +3223,7 @@ div[id^='media_info_child'] div[id^='media_info_child'] div.dataTables_scrollHea
}
.notification-params td:first-child {
padding-left: 10px;
- width: 200px;
+ width: 250px;
}
.notification-params.time-options td:first-child {
padding-left: 10px;
@@ -2942,6 +3356,9 @@ a.no-highlight:hover {
.login-container {
max-width: 750px;
}
+ .modal.wide .modal-dialog {
+ width: 750px;
+ }
}
@media (min-width: 992px) {
.login-container {
@@ -3072,9 +3489,201 @@ a:hover .overlay-refresh-image:hover {
#plex-log-levels label {
margin-bottom: 0;
}
-#api_key.form-control[readonly] {
- background-color: #555;
+#plexpy-notifiers-table .friendly_name,
+#notifier-config-modal span.notifier_id,
+#plexpy-mobile-devices-table .friendly_name,
+#mobile-device-config-modal span.notifier_id {
+ color: #777;
}
-#api_key.form-control[readonly]:focus {
- background-color: #fff;
+#notifier-config-modal .nav-tabs {
+ margin-bottom: 10px;
+ padding-left: 15px;
+ border-bottom: 1px solid #444;
}
+#notifier-config-modal .nav-tabs > li {
+ margin: 0 0 -1px 0;
+}
+#notifier-config-modal .nav-tabs > li > a {
+ padding: 5px 10px;
+ color: #737373;
+}
+#notifier-config-modal .nav-tabs > li > a:hover {
+ border-color: #444;
+ background: #222;
+}
+#notifier-config-modal .nav-tabs > li.active > a,
+#notifier-config-modal .nav-tabs > li.active > a:hover,
+#notifier-config-modal .nav-tabs > li.active > a:focus {
+ color: #fff;
+ background: #222;
+}
+#notifier-config-modal .nav-tabs > li.active > a,
+#notifier-config-modal .nav-tabs > li.active > a:hover,
+#notifier-config-modal .nav-tabs > li.active > a:focus {
+ border: 1px solid #444;
+ border-bottom-color: transparent;
+}
+.git-group input.form-control {
+ width: 50%;
+}
+.git-group select.form-control {
+ width: 50%;
+}
+#changelog-modal .modal-body > h2 {
+ margin-bottom: 10px;
+ padding-bottom: 10px;
+ border-bottom: 1px solid #444;
+ font-size: 18px;
+}
+#changelog-modal .modal-body > ul {
+ padding-left: 25px;
+ margin-bottom: 30px;
+}
+#changelog-modal ul {
+ padding-left: 20px;
+}
+.google-play-badge {
+ display:inline-block;
+ height:45px;
+ margin-top: 10px;
+}
+.google-play-badge img {
+ border: 1px solid #3B3B3B;
+ border-radius: 6px;
+ box-sizing: border-box;
+ height: 45px;
+ vertical-align: middle;
+}
+
+.svg-icon {
+ padding: 10px;
+ background-origin: content-box !important;
+ background-size: contain !important;
+ background-repeat: no-repeat !important;
+ background-position: center !important;
+}
+.platform-android {
+ background-color: #a4ca39;
+ background-image: url(../images/platforms/android.svg);
+}
+.platform-atv {
+ background-color: #858487;
+ background-image: url(../images/platforms/atv.svg);
+}
+.platform-chrome {
+ background-color: #ed5e50;
+ background-image: url(../images/platforms/chrome.svg);
+}
+.platform-chromecast {
+ background-color: #10a4e8;
+ background-image: url(../images/platforms/chromecast.svg);
+}
+.platform-dlna {
+ background-color: #0cb14b;
+ background-image: url(../images/platforms/dlna.svg);
+}
+.platform-firefox {
+ background-color: #e67817;
+ background-image: url(../images/platforms/firefox.svg);
+}
+.platform-ie {
+ background-color: #00599e;
+ background-image: url(../images/platforms/ie.svg);
+}
+.platform-ios {
+ background-color: #858487;
+ background-image: url(../images/platforms/ios.svg);
+}
+.platform-kodi {
+ background-color: #31afe1;
+ background-image: url(../images/platforms/kodi.svg);
+}
+.platform-linux {
+ background-color: #1793d0;
+ background-image: url(../images/platforms/linux.svg);
+}
+.platform-msedge {
+ background-color: #0078d7;
+ background-image: url(../images/platforms/msedge.svg);
+}
+.platform-opera {
+ background-color: #ff1b2d;
+ background-image: url(../images/platforms/opera.svg);
+}
+.platform-playstation {
+ background-color: #034da2;
+ background-image: url(../images/platforms/playstation.svg);
+}
+.platform-plex {
+ background-color: #e5a00d;
+ background-image: url(../images/platforms/plex.svg);
+}
+.platform-plexamp {
+ background-color: #e5a00d;
+ background-image: url(../images/platforms/plexamp.svg);
+}
+.platform-plextogether {
+ background-color: #151924;
+ background-image: url(../images/platforms/plextogether.svg);
+}
+.platform-roku {
+ background-color: #6d3c97;
+ background-image: url(../images/platforms/roku.svg);
+}
+.platform-safari {
+ background-color: #00a9ec;
+ background-image: url(../images/platforms/safari.svg);
+}
+.platform-samsung {
+ background-color: #034ea2;
+ background-image: url(../images/platforms/samsung.svg);
+}
+.platform-windows {
+ background-color: #2fc0f5;
+ background-image: url(../images/platforms/windows.svg);
+}
+.platform-wp {
+ background-color: #68217a;
+ background-image: url(../images/platforms/windows.svg);
+}
+.platform-wiiu {
+ background-color: #03a9f4;
+ background-image: url(../images/platforms/wiiu.svg);
+}
+.platform-xbmc {
+ background-color: #3b4872;
+ background-image: url(../images/platforms/xbmc.svg);
+}
+.platform-xbox {
+ background-color: #107c10;
+ background-image: url(../images/platforms/xbox.svg);
+}
+.platform-default {
+ background-color: #e5a00d;
+ background-image: url(../images/platforms/default.svg);
+}
+.library-movie {
+ background-image: url(../images/libraries/movie.svg);
+}
+.library-show {
+ background-image: url(../images/libraries/show.svg);
+}
+.library-artist {
+ background-image: url(../images/libraries/artist.svg);
+}
+.library-photo {
+ background-image: url(../images/libraries/photo.svg);
+}
+.library-video {
+ background-image: url(../images/libraries/video.svg);
+}
+.stats-most_concurrent {
+ background-image: url(../images/icons/most-concurrent-streams.svg);
+}
+
+.transparent {
+ background-color: transparent !important;
+}
+.no-image {
+ background-image: none !important;
+}
\ No newline at end of file
diff --git a/data/interfaces/default/css/selectize.min.css b/data/interfaces/default/css/selectize.min.css
new file mode 100644
index 00000000..0b3ba701
--- /dev/null
+++ b/data/interfaces/default/css/selectize.min.css
@@ -0,0 +1 @@
+.react-selectize{color:#000}.react-selectize.root-node{position:relative;width:300px;}.react-selectize.root-node.disabled{pointer-events:none}.react-selectize.root-node .react-selectize-control{cursor:pointer;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:start;-moz-box-align:start;-o-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;position:relative;padding:2px;}.react-selectize.root-node .react-selectize-control .react-selectize-placeholder{display:block;line-height:30px;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap;position:absolute;max-width:calc(100% - 56px)}.react-selectize.root-node .react-selectize-control .react-selectize-search-field-and-selected-values{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;min-height:30px;-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;-ms-box-flex:1;box-flex:1;-webkit-flex-grow:1;flex-grow:1;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}.react-selectize.root-node .react-selectize-control .react-selectize-search-field-and-selected-values .resizable-input{background:none;border:none;outline:none;font-size:1em;margin:2px;padding:4px 0;vertical-align:middle;width:0}.react-selectize.root-node .react-selectize-control .react-selectize-search-field-and-selected-values .value-wrapper{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.react-selectize.root-node .react-selectize-control .react-selectize-reset-button-container,.react-selectize.root-node .react-selectize-control .react-selectize-toggle-button-container{-webkit-box-flex:0;-moz-box-flex:0;-o-box-flex:0;-ms-box-flex:0;box-flex:0;-webkit-flex-grow:0;flex-grow:0;-webkit-flex-shrink:0;flex-shrink:0;cursor:pointer;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;height:30px}.react-selectize.root-node .react-selectize-control .react-selectize-reset-button-container{width:16px}.react-selectize.root-node .react-selectize-control .react-selectize-toggle-button-container{width:32px}.react-selectize.root-node .react-selectize-control .react-selectize-reset-button-container:hover .react-selectize-reset-button path{stroke:#c0392b}.react-selectize.root-node .react-selectize-control .react-selectize-reset-button path{-webkit-transition:stroke 0.5s 0s ease;-moz-transition:stroke 0.5s 0s ease;-o-transition:stroke 0.5s 0s ease;-ms-transition:stroke 0.5s 0s ease;transition:stroke 0.5s 0s ease;stroke:#999;stroke-linecap:square;stroke-linejoin:mitter}.react-selectize.root-node .react-selectize-control .react-selectize-toggle-button path{fill:#999}.react-selectize.dropdown-menu-wrapper{position:absolute;}.react-selectize.dropdown-menu-wrapper.tethered{min-width:300px}.react-selectize.dropdown-menu-wrapper:not(.tethered){width:100%}.react-selectize.dropdown-menu{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;overflow:auto;position:absolute;max-height:200px;z-index:10;}.react-selectize.dropdown-menu.tethered{min-width:300px}.react-selectize.dropdown-menu:not(.tethered){width:100%}.react-selectize.dropdown-menu .groups.as-columns{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;}.react-selectize.dropdown-menu .groups.as-columns > div{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.react-selectize.dropdown-menu .option-wrapper{cursor:pointer;outline:none}.multi-select.react-selectize.root-node .simple-value{display:inline-block;margin:2px;vertical-align:middle;}.multi-select.react-selectize.root-node .simple-value span{display:inline-block;padding:2px 5px 4px;vertical-align:center}.simple-select.react-selectize.root-node .simple-value{margin:2px;}.simple-select.react-selectize.root-node .simple-value span{display:inline-block;vertical-align:center}.react-selectize.default{font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.react-selectize.default.root-node .react-selectize-control{background-color:#fff;border:1px solid;border-color:#d9d9d9 #ccc #b3b3b3;-webkit-border-radius:4px;border-radius:4px;font-size:1em;}.react-selectize.default.root-node .react-selectize-control .react-selectize-placeholder{color:#aaa;text-indent:8px}.react-selectize.default.root-node .react-selectize-control .react-selectize-search-field-and-selected-values{padding-left:5px}.react-selectize.default.root-node.open.flipped .react-selectize-control{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-top-left-radius:0;border-top-right-radius:0}.react-selectize.default.root-node.open:not(.flipped) .react-selectize-control{border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}.react-selectize.dropdown-menu-wrapper.default{overflow:hidden;}.react-selectize.dropdown-menu-wrapper.default .dropdown-menu.custom-enter-active,.react-selectize.dropdown-menu-wrapper.default .dropdown-menu.custom-leave-active{-webkit-transition:-webkit-transform 0.2s 0s ease;-moz-transition:-moz-transform 0.2s 0s ease;-o-transition:-o-transform 0.2s 0s ease;-ms-transition:-ms-transform 0.2s 0s ease;transition:transform 0.2s 0s ease}.react-selectize.dropdown-menu-wrapper.default .dropdown-menu.flipped.custom-enter{-webkit-transform:translateY(100%);-moz-transform:translateY(100%);-o-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.react-selectize.dropdown-menu-wrapper.default .dropdown-menu.flipped.custom-enter-active{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-o-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%)}.react-selectize.dropdown-menu-wrapper.default .dropdown-menu.flipped.custom-leave{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-o-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%)}.react-selectize.dropdown-menu-wrapper.default .dropdown-menu.flipped.custom-leave-active{-webkit-transform:translateY(100%);-moz-transform:translateY(100%);-o-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.react-selectize.dropdown-menu-wrapper.default .dropdown-menu:not(.flipped).custom-enter{-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-o-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.react-selectize.dropdown-menu-wrapper.default .dropdown-menu:not(.flipped).custom-enter-active{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-o-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%)}.react-selectize.dropdown-menu-wrapper.default .dropdown-menu:not(.flipped).custom-leave{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-o-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%)}.react-selectize.dropdown-menu-wrapper.default .dropdown-menu:not(.flipped).custom-leave-active{-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-o-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.react-selectize.dropdown-menu.default{background:#fff;border:1px solid #ccc;margin-top:-1px;}.react-selectize.dropdown-menu.default.flipped{border-top-left-radius:4px;border-top-right-radius:4px}.react-selectize.dropdown-menu.default:not(.flipped){border-color:#b3b3b3 #ccc #d9d9d9;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.react-selectize.dropdown-menu.default .no-results-found{color:#aaa !important;font-style:oblique;padding:8px 10px}.react-selectize.dropdown-menu.default .simple-group-title{background-color:#fafafa;padding:8px 8px}.react-selectize.dropdown-menu.default .option-wrapper.highlight{background:#f2f9fc;color:#333}.react-selectize.dropdown-menu.default .option-wrapper .simple-option{color:#666;cursor:pointer;padding:8px 10px;}.react-selectize.dropdown-menu.default .option-wrapper .simple-option.not-selectable{background-color:#f8f8f8;color:#999;cursor:default;font-style:oblique;text-shadow:0 1px 0 #fff}.multi-select.react-selectize.default.root-node .simple-value{background:#f2f9fc;border:1px solid #c9e6f2;-webkit-border-radius:2px;border-radius:2px;color:#08c}.simple-select.react-selectize.default.root-node.open .react-selectize-control{background-color:#fff}.simple-select.react-selectize.default.root-node:not(.open) .react-selectize-control{background-color:#f9f9f9;background-image:-webkit-linear-gradient(top, #fefefe, #f2f2f2);background-image:-moz-linear-gradient(top, #fefefe, #f2f2f2);background-image:-o-linear-gradient(top, #fefefe, #f2f2f2);background-image:-ms-linear-gradient(top, #fefefe, #f2f2f2);background-image:linear-gradient(to bottom, #fefefe, #f2f2f2)}.react-selectize.bootstrap3{font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.react-selectize.bootstrap3.root-node.open .react-selectize-control{background-color:#fff;border:1px solid #66afe9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.react-selectize.bootstrap3.root-node .react-selectize-control{border:1px solid;border-color:#d9d9d9 #ccc #b3b3b3;-webkit-border-radius:4px;border-radius:4px;font-size:1em;}.react-selectize.bootstrap3.root-node .react-selectize-control .react-selectize-placeholder{color:#aaa;text-indent:8px}.react-selectize.bootstrap3.root-node .react-selectize-control .react-selectize-search-field-and-selected-values{padding-left:5px}.react-selectize.bootstrap3.dropdown-menu-wrapper.flipped{margin-bottom:5px}.react-selectize.bootstrap3.dropdown-menu-wrapper:not(.flipped){margin-top:5px}.react-selectize.bootstrap3.dropdown-menu-wrapper .dropdown-menu.custom-enter-active,.react-selectize.bootstrap3.dropdown-menu-wrapper .dropdown-menu.custom-leave-active{-webkit-transition:opacity 0.2s 0s ease;-moz-transition:opacity 0.2s 0s ease;-o-transition:opacity 0.2s 0s ease;-ms-transition:opacity 0.2s 0s ease;transition:opacity 0.2s 0s ease}.react-selectize.bootstrap3.dropdown-menu-wrapper .dropdown-menu.custom-enter{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}.react-selectize.bootstrap3.dropdown-menu-wrapper .dropdown-menu.custom-enter-active{opacity:1;-ms-filter:none;filter:none}.react-selectize.bootstrap3.dropdown-menu-wrapper .dropdown-menu.custom-leave{opacity:1;-ms-filter:none;filter:none}.react-selectize.bootstrap3.dropdown-menu-wrapper .dropdown-menu.custom-leave-active{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}.react-selectize.bootstrap3.dropdown-menu{background:#fff;border:1px solid #ccc;-webkit-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);}.react-selectize.bootstrap3.dropdown-menu.flipped{margin-bottom:5px}.react-selectize.bootstrap3.dropdown-menu:not(.flipped){margin-top:5px}.react-selectize.bootstrap3.dropdown-menu .no-results-found{color:#aaa !important;font-style:oblique;padding:8px 10px}.react-selectize.bootstrap3.dropdown-menu .groups:not(.as-columns) > div:not(:first-child){border-top:1px solid #e5e5e5;margin:12px 0 0 0}.react-selectize.bootstrap3.dropdown-menu .simple-group-title{background-color:#fff;color:#999;padding:8px 8px;text-shadow:0 1px 0 rgba(0,0,0,0.05)}.react-selectize.bootstrap3.dropdown-menu .option-wrapper.highlight{background:#428bca;}.react-selectize.bootstrap3.dropdown-menu .option-wrapper.highlight .simple-option{color:#fff}.react-selectize.bootstrap3.dropdown-menu .option-wrapper .simple-option{color:#333;cursor:pointer;padding:8px 10px;}.react-selectize.bootstrap3.dropdown-menu .option-wrapper .simple-option.not-selectable{background-color:#f8f8f8;color:#999;cursor:default;font-style:oblique;text-shadow:0 1px 0 #fff}.multi-select.react-selectize.bootstrap3.root-node .simple-value{background:#efefef;-webkit-border-radius:4px;border-radius:4px;color:#333}.react-selectize.material{font-family:Roboto,sans-serif}.react-selectize.material.root-node.open .react-selectize-control:after{-webkit-transform:scaleX(1);-moz-transform:scaleX(1);-o-transform:scaleX(1);-ms-transform:scaleX(1);transform:scaleX(1)}.react-selectize.material.root-node .react-selectize-control{border-bottom:1px solid rgba(0,0,0,0.3);}.react-selectize.material.root-node .react-selectize-control:after{background-color:#00bcd4;content:"";-webkit-transform:scaleX(0);-moz-transform:scaleX(0);-o-transform:scaleX(0);-ms-transform:scaleX(0);transform:scaleX(0);-webkit-transition:-webkit-transform 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;-moz-transition:-moz-transform 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;-o-transition:-o-transform 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;-ms-transition:-ms-transform 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;transition:transform 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;position:absolute;left:0;bottom:-1px;width:100%;height:2px}.react-selectize.material.root-node .react-selectize-control .react-selectize-placeholder{color:rgba(0,0,0,0.3);text-indent:4px}.react-selectize.material.dropdown-menu-wrapper.flipped{margin-bottom:8px;}.react-selectize.material.dropdown-menu-wrapper.flipped .dropdown-menu{-webkit-transform-origin:100% 100%;-moz-transform-origin:100% 100%;-o-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.react-selectize.material.dropdown-menu-wrapper:not(.flipped){margin-top:8px;}.react-selectize.material.dropdown-menu-wrapper:not(.flipped) .dropdown-menu{-webkit-transform-origin:0% 0%;-moz-transform-origin:0% 0%;-o-transform-origin:0% 0%;-ms-transform-origin:0% 0%;transform-origin:0% 0%}.react-selectize.material.dropdown-menu-wrapper .dropdown-menu.custom-enter-active,.react-selectize.material.dropdown-menu-wrapper .dropdown-menu.custom-leave-active{-webkit-transition:-webkit-transform 250ms cubic-bezier(0.23, 1, 0.32, 1) 0ms, opacity 250ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;-moz-transition:-moz-transform 250ms cubic-bezier(0.23, 1, 0.32, 1) 0ms, opacity 250ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;-o-transition:-o-transform 250ms cubic-bezier(0.23, 1, 0.32, 1) 0ms, opacity 250ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;-ms-transition:-ms-transform 250ms cubic-bezier(0.23, 1, 0.32, 1) 0ms, opacity 250ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;transition:transform 250ms cubic-bezier(0.23, 1, 0.32, 1) 0ms, opacity 250ms cubic-bezier(0.23, 1, 0.32, 1) 0ms}.react-selectize.material.dropdown-menu-wrapper .dropdown-menu.custom-enter{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-webkit-transform:scale(0,0);-moz-transform:scale(0,0);-o-transform:scale(0,0);-ms-transform:scale(0,0);transform:scale(0,0)}.react-selectize.material.dropdown-menu-wrapper .dropdown-menu.custom-enter-active{opacity:1;-ms-filter:none;filter:none;-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-o-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1)}.react-selectize.material.dropdown-menu-wrapper .dropdown-menu.custom-leave{opacity:1;-ms-filter:none;filter:none;-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-o-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1)}.react-selectize.material.dropdown-menu-wrapper .dropdown-menu.custom-leave-active{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}.react-selectize.material.dropdown-menu{background-color:#fff;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:rgba(0,0,0,0.118) 0 1px 6px,rgba(0,0,0,0.118) 0 1px 4px;box-shadow:rgba(0,0,0,0.118) 0 1px 6px,rgba(0,0,0,0.118) 0 1px 4px;max-height:250px;padding:8px 0;}.react-selectize.material.dropdown-menu.flipped{margin-bottom:8px}.react-selectize.material.dropdown-menu:not(.flipped){margin-top:8px}.react-selectize.material.dropdown-menu .no-results-found{font-style:oblique;font-size:16px;height:32px;padding:0 16px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.react-selectize.material.dropdown-menu .groups:not(.as-columns) > div:not(:last-child){border-bottom:1px solid #e5e5e5}.react-selectize.material.dropdown-menu .simple-group-title{color:#8f8f8f;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;font-size:14px;height:48px;padding:0 10px}.react-selectize.material.dropdown-menu .option-wrapper.highlight{background-color:rgba(0,0,0,0.098)}.react-selectize.material.dropdown-menu .option-wrapper .simple-option{color:rgba(0,0,0,0.875);cursor:pointer;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-moz-box-align:start;-o-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;font-size:16px;height:48px;padding:0 16px;}.react-selectize.material.dropdown-menu .option-wrapper .simple-option.not-selectable{background-color:#f8f8f8;color:#999;cursor:default;font-style:oblique;text-shadow:0 1px 0 #fff}.multi-select.react-selectize.material.root-node .simple-value span{padding:0;}.multi-select.react-selectize.material.root-node .simple-value span:after{content:","}.simple-select.react-selectize.material.root-node .simple-value{margin:4px 3px 3px 2px}
\ No newline at end of file
diff --git a/data/interfaces/default/current_activity.html b/data/interfaces/default/current_activity.html
deleted file mode 100644
index 1e309645..00000000
--- a/data/interfaces/default/current_activity.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<%doc>
-USAGE DOCUMENTATION :: PLEASE LEAVE THIS AT THE TOP OF THIS FILE
-
-For Mako templating syntax documentation please visit: http://docs.makotemplates.org/en/latest/
-
-Filename: current_activity.html
-Version: 0.1
-Variable names: data [list]
-
-data :: Usable parameters
-
-data['stream_count'] Returns the current number of active streams
-data['sessions'] Returns an array containing session data
-
-data[sessions] :: Usable parameters
-
-== Global keys ==
-session_key Returns a unique session id for the active stream
-rating_key Returns the unique identifier for the media item.
-media_index Returns the index of the media item.
-parent_media_index Returns the index of the media item's parent.
-media_type Returns the type of session. Either 'track', 'episode' or 'movie'.
-thumb Returns the location of the item's thumbnail. Use with pms_image_proxy.
-bif_thumb Returns the location of the item's bif thumbnail. Use with pms_image_proxy.
-art Returns the location of the item's artwork
-progress_percent Returns the current progress of the item. 0 to 100.
-user Returns the name of the user owning the session.
-user_id Returns the Plex user id if available.
-machine_id Returns the machine id of the players being used.
-friendly_name Returns the friendlly name of the user owning the session.
-user_thumb Returns the profile picture of the user owning the session.
-state Returns the state of the current session. Either 'playing', 'paused' or 'buffering'.
-title Returns the name of the episode, movie or music track.
-year Returns the year of the episode, movie, or clip.
-ip_address Returns the ip address of the stream.
-player Returns the name of the platform used to play the stream.
-platform Returns the type of platform used to play the stream.
-throttled Returns true if the transcode session is throttled.
-transcode_progress Returns the current transcode progress of the item. 0 to 100.
-transcode_speed Returns the current transcode speed of the item.
-audio_decision Returns the audio transcode decision. Either 'transcode', 'copy' or 'direct play'.
-audio_codec Returns the name of the audio codec.
-audio_channels Returns the number of audio channels.
-grandparent_title Returns the title of the item's grandparent.
-parent_title Returns the title of the item's parent.
-video_decision Returns the video transcode decision. Either 'transcode', 'copy' or 'direct play'.
-video_codec Returns the name of the video codec.
-height Returns the value of the video height.
-width Returns the value of the video width.
-container Returns the value of the media container.
-bitrate Returns the value of the media bitrate.
-video_resolution Returns the value of the video resolution.
-video_framerate Returns the value of the video framerate.
-video_aspect_ratio Returns the value of the video aspect ratio.
-transcode_audio_channels Returns the amount of audio channels if there is a transcode session.
-transcode_audio_codec Returns the name of the audio codec if there is a transcode session.
-transcode_video_codec Returns the name of the video codec if there is a transcode session.
-transcode_width Returns the video width if there is a transcode session.
-transcode_height Returns the video height if there is a transcode session.
-transcode_container Returns the value of media container if there is a transcode session.
-transcode_protocol Returns the value of media protocol if there is a transcode session.
-indexes Returns true if the media has media indexes and are enabled
-
-DOCUMENTATION :: END
-%doc>
-
-% if data is not None:
-% if data['stream_count'] != '0':
-% for a in data['sessions']:
-
-
-% endfor
-
-% else:
-
Nothing is currently being watched.
-% endif
-% else:
-
There was an error communicating with your Plex Server. Please check your
settings.
-
-% endif
diff --git a/data/interfaces/default/current_activity_instance.html b/data/interfaces/default/current_activity_instance.html
index 22ae2ed1..aca120cf 100644
--- a/data/interfaces/default/current_activity_instance.html
+++ b/data/interfaces/default/current_activity_instance.html
@@ -30,7 +30,7 @@ year Returns the year of the episode, movie, or clip.
ip_address Returns the ip address of the stream.
player Returns the name of the platform used to play the stream.
platform Returns the type of platform used to play the stream.
-throttled Returns true if the transcode session is throttled.
+transcode_throttled Returns true if the transcode session is throttled.
transcode_progress Returns the current transcode progress of the item. 0 to 100.
transcode_speed Returns the current transcode speed of the item.
audio_decision Returns the audio transcode decision. Either 'transcode', 'copy' or 'direct play'.
@@ -59,169 +59,296 @@ indexes Returns true if the media has media indexes and are
DOCUMENTATION :: END
%doc>
-% if data is not None:
+% if session is not None:
<%
+ from collections import defaultdict
from urllib import quote
-
from plexpy import helpers
- data['indexes'] = helpers.cast_to_int(data['indexes'])
+ import plexpy
%>
-
Change the users profile picture in PlexPy. To reset to default, leave this field empty and save.
Change the users profile picture in Tautulli. To reset to default, leave this field empty and save.