diff --git a/data/interfaces/default/base.html b/data/interfaces/default/base.html
index 333598cc..1a4522e3 100644
--- a/data/interfaces/default/base.html
+++ b/data/interfaces/default/base.html
@@ -134,7 +134,7 @@
View Logs
FAQ
- Support
+ Support
Donate
diff --git a/data/interfaces/default/css/tautulli.css b/data/interfaces/default/css/tautulli.css
index d09ba7b9..e07f1e9b 100644
--- a/data/interfaces/default/css/tautulli.css
+++ b/data/interfaces/default/css/tautulli.css
@@ -4096,3 +4096,59 @@ a[data-tab-destination] {
.pointer {
cursor: pointer;
}
+
+.iframe-container {
+ width: 100%;
+ height: calc(100vh - 200px);
+ position: relative;
+}
+.iframe-overlay {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ background: url(../images/discord-overlay.png) no-repeat;
+ background-size: cover;
+ border: 1px solid #36393e;
+}
+.iframe-button-container {
+ margin: 0;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+}
+.iframe-button {
+ color: #fff;
+ border-radius: 20px;
+ text-align: center;
+ cursor: pointer;
+ font-size: 15px;
+ height: 28px;
+ line-height: 28px;
+ min-width: 210px;
+ transition: box-shadow 0.3s ease;
+ padding: 0 15px;
+ background: rgba(114, 137, 218, 0.4);
+ text-transform: uppercase;
+ text-decoration: none;
+ display: block;
+}
+.iframe-button:hover,
+.iframe-button:focus {
+ color: #fff;
+ box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 0px 99999px inset, rgba(0, 0, 0, 0.2) 0px 1px 5px 0px, rgba(0, 0, 0, 0.14) 0px 2px 2px 0px, rgba(0, 0, 0, 0.12) 0px 3px 1px -2px;
+}
+.iframe-button:active {
+ box-shadow: rgba(255, 255, 255, 0.1) 0px 0px 0px 99999px inset, rgba(0, 0, 0, 0.2) 0px 5px 5px -3px, rgba(0, 0, 0, 0.14) 0px 8px 10px 1px, rgba(0, 0, 0, 0.12) 0px 3px 14px 2px;
+}
+.iframe {
+ width: 100%;
+ height: 100%;
+ position: inherit;
+ display: block;
+ border: 0;
+}
\ No newline at end of file
diff --git a/data/interfaces/default/images/discord-overlay.png b/data/interfaces/default/images/discord-overlay.png
new file mode 100644
index 00000000..0ee330a0
Binary files /dev/null and b/data/interfaces/default/images/discord-overlay.png differ
diff --git a/data/interfaces/default/settings.html b/data/interfaces/default/settings.html
index d9d2cb53..f09187f3 100644
--- a/data/interfaces/default/settings.html
+++ b/data/interfaces/default/settings.html
@@ -1763,9 +1763,6 @@
} else if ("${kwargs.get('reinstall_geoip')}" == 'true') {
$('#reinstall_geoip_db').removeClass('no-highlight').css('color','#e9a049');
}
- if ("${kwargs.get('support')}" == 'true') {
- $('.support-modal-link').removeClass('no-highlight').css('color','#e9a049');
- }
}
});
}
diff --git a/data/interfaces/default/support.html b/data/interfaces/default/support.html
new file mode 100644
index 00000000..259a926f
--- /dev/null
+++ b/data/interfaces/default/support.html
@@ -0,0 +1,60 @@
+<%inherit file="base.html"/>
+
+<%def name="headIncludes()">
+%def>
+
+<%def name="headerIncludes()">
+%def>
+
+<%def name="body()">
+
+%def>
+
+<%def name="modalIncludes()">
+%def>
+
+<%def name="javascriptIncludes()">
+
+%def>
diff --git a/plexpy/webserve.py b/plexpy/webserve.py
index 024f732c..a2faa6c7 100644
--- a/plexpy/webserve.py
+++ b/plexpy/webserve.py
@@ -5845,3 +5845,8 @@ class WebInterface(object):
logger.error(u"Failed to retrieve newsletter: Missing newsletter_id parameter.")
return "Failed to retrieve newsletter: missing newsletter_id parameter"
+
+ @cherrypy.expose
+ @requireAuth()
+ def support(self, query='', **kwargs):
+ return serve_template(templatename="support.html", title="Support")