mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-14 01:02:59 -07:00
Stage one of notification rewrite. Page cache refresh required.
Each notification has it's own modal config now, PlexWeb-style. Few minor text changes.
This commit is contained in:
parent
bb3139727e
commit
e309d6ba92
6 changed files with 503 additions and 516 deletions
|
@ -8367,6 +8367,7 @@ ol.test >li {
|
|||
width: 100%;
|
||||
max-width: 320px;
|
||||
min-width: 200px;
|
||||
border-top: 1px solid #2d2d2d;
|
||||
}
|
||||
|
||||
.nav-settings > li > a {
|
||||
|
@ -8386,4 +8387,44 @@ ol.test >li {
|
|||
.nav-settings > .active > a:focus {
|
||||
color: #eb8600;
|
||||
background-color: #2f2f2f;
|
||||
}
|
||||
|
||||
.stacked-configs,
|
||||
.stacked-configs ul {
|
||||
margin: 0px 0px 20px 0px;
|
||||
}
|
||||
|
||||
.stacked-configs > li {
|
||||
list-style: none;
|
||||
background-color: #282828;
|
||||
width: 100%;
|
||||
min-width: 320px;
|
||||
max-width: 768px;
|
||||
}
|
||||
|
||||
.stacked-configs > li > span {
|
||||
display: block;
|
||||
padding: 8px 20px 8px 15px;
|
||||
color: #eee;
|
||||
border-left: 2px solid #444;
|
||||
border-top: 1px solid #2d2d2d;
|
||||
}
|
||||
|
||||
.stacked-configs > li > span:hover,
|
||||
.stacked-configs > li > span:focus {
|
||||
color: #eee;
|
||||
background-color: #2f2f2f;
|
||||
}
|
||||
|
||||
.stacked-configs > li > span > a {
|
||||
float: right;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.stacked-configs > li > span > a:hover {
|
||||
color: #eee;
|
||||
}
|
||||
|
||||
.stacked-configs > li > span > input[type='checkbox'] {
|
||||
|
||||
}
|
53
data/interfaces/default/notification_config.html
Normal file
53
data/interfaces/default/notification_config.html
Normal file
|
@ -0,0 +1,53 @@
|
|||
% if data:
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i
|
||||
class="fa fa-remove"></i></button>
|
||||
<h3 id="notification-config-modal-header">Set Config</h3>
|
||||
</div>
|
||||
<div class="modal-body" id="">
|
||||
<div class="container-fluid">
|
||||
<div class="row-fluid">
|
||||
<form action="set_notification_config" method="post" class="form" id="set_notification_config" data-parsley-validate>
|
||||
<div class="span6">
|
||||
% for item in data:
|
||||
% if item['input_type'] != 'checkbox':
|
||||
<div class="form-group">
|
||||
<label for="${item['name']}">${item['label']}</label>
|
||||
<input type="${item['input_type']}" id="${item['name']}" name="${item['name']}" value="${item['value']}" size="30">
|
||||
% if item['name'] == 'osx_notify_app':
|
||||
<input type="button" class="btn btn-link" value="Register" id="osxnotifyregister">
|
||||
% endif
|
||||
<p class="help-block">${item['description']}</p>
|
||||
</div>
|
||||
% elif item['input_type'] == 'checkbox':
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" id="${item['name']}" name="${item['name']}" value="1" ${item['value']}> ${item['label']}
|
||||
<p class="help-block">${item['description']}</p>
|
||||
</div>
|
||||
% endif
|
||||
% endfor
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<div class="">
|
||||
<input type="button" id="save-notification-item" class="rounded rounded-primary" value="Save">
|
||||
</div>
|
||||
</div>
|
||||
% endif
|
||||
|
||||
<script>
|
||||
$('#osxnotifyregister').click(function () {
|
||||
var osx_notify_app = $("#osx_notify_app").val();
|
||||
$.get("/osxnotifyregister", {'app': osx_notify_app}, function (data) { $('#ajaxMsg').html("<div class='msg'><span class='ui-icon ui-icon-check'></span>"+data+"</div>"); });
|
||||
$('#ajaxMsg').addClass('success').fadeIn().delay(3000).fadeOut()
|
||||
})
|
||||
|
||||
var notificationConfig = $("#set_notification_config");
|
||||
$('#save-notification-item').click(function() {
|
||||
doAjaxCall('set_notification_config',$(this),'tabs',true);
|
||||
return false;
|
||||
});
|
||||
</script>
|
|
@ -1,6 +1,9 @@
|
|||
<%inherit file="base.html"/>
|
||||
<%!
|
||||
import plexpy
|
||||
from plexpy import notifiers
|
||||
|
||||
available_notification_agents = notifiers.available_notification_agents()
|
||||
%>
|
||||
|
||||
<%def name="headerIncludes()">
|
||||
|
@ -31,9 +34,9 @@
|
|||
<li role="presentation" class="active"><a href="#tabs-1" aria-controls="tabs-1" role="tab" data-toggle="tab">General</a></li>
|
||||
<li role="presentation"><a href="#tabs-2" aria-controls="tabs-2" role="tab" data-toggle="tab">Web Interface</a></li>
|
||||
<li role="presentation"><a href="#tabs-3" aria-controls="tabs-3" role="tab" data-toggle="tab">Access Control</a></li>
|
||||
<li role="presentation"><a href="#tabs-4" aria-controls="tabs-4" role="tab" data-toggle="tab">Plex Server Settings</a></li>
|
||||
<li role="presentation"><a href="#tabs-4" aria-controls="tabs-4" role="tab" data-toggle="tab">Plex Media Server</a></li>
|
||||
<li role="presentation"><a href="#tabs-5" aria-controls="tabs-5" role="tab" data-toggle="tab">Plex.tv Account</a></li>
|
||||
<li role="presentation"><a href="#tabs-6" aria-controls="tabs-6" role="tab" data-toggle="tab">Extra Setting</a></li>
|
||||
<li role="presentation"><a href="#tabs-6" aria-controls="tabs-6" role="tab" data-toggle="tab">Extra Settings</a></li>
|
||||
<li role="presentation"><a href="#tabs-7" aria-controls="tabs-7" role="tab" data-toggle="tab">Monitoring</a></li>
|
||||
<li role="presentation"><a href="#tabs-8" aria-controls="tabs-8" role="tab" data-toggle="tab">Notifications</a></li>
|
||||
<li role="presentation"><a href="#tabs-9" aria-controls="tabs-9" role="tab" data-toggle="tab">Notification Agents</a></li>
|
||||
|
@ -187,8 +190,8 @@
|
|||
</div>
|
||||
<div class="form-group">
|
||||
<label for="refresh_users_interval">User list Refresh Interval</label>
|
||||
<input type="text" data-parsley-type="integer" id="refresh_users_interval" name="refresh_users_interval" value="${config['refresh_users_interval']}" size="5" data-parsley-min="0" data-parsley-trigger="change" required>
|
||||
<p class="help-block">The interval (in hours) PlexPy will request an updated friends list from Plex.tv. 0 to disable.</p>
|
||||
<input type="text" data-parsley-type="integer" id="refresh_users_interval" name="refresh_users_interval" value="${config['refresh_users_interval']}" size="5" data-parsley-range="[1,24]" data-parsley-trigger="change" required>
|
||||
<p class="help-block">The interval (in hours) PlexPy will request an updated friends list from Plex.tv. 1 minimum, 24 maximum.</p>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" id="refresh_users_on_startup" name="refresh_users_on_startup" value="1" ${config['refresh_users_on_startup']}> Refresh user list on startup
|
||||
|
@ -338,276 +341,24 @@
|
|||
<div role="tabpanel" class="tab-pane" id="tabs-9">
|
||||
<fieldset>
|
||||
<div class="wellheader">
|
||||
<h3>Growl</h3>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="growl_enabled" id="growl" value="1" ${config['growl_enabled']}> Enable Growl Notifications
|
||||
</div>
|
||||
<div id="growloptions">
|
||||
<div class="form-group">
|
||||
<label for="growl_host">Growl Host:Port</label>
|
||||
<input type="text" id="growl_host" name="growl_host" value="${config['growl_host']}" size="30">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="growl_password">Growl Password</label>
|
||||
<input type="password" id="growl_password" name="growl_password" value="${config['growl_password']}" size="30">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<div class="wellheader">
|
||||
<h3>Prowl</h3>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="prowl_enabled" id="prowl" value="1" ${config['prowl_enabled']}> Enable Prowl Notifications
|
||||
</div>
|
||||
<div id="prowloptions">
|
||||
<div class="form-group">
|
||||
<label for="prowl_keys">API Key</label>
|
||||
<input type="text" id="prowl_keys" name="prowl_keys" value="${config['prowl_keys']}" size="50">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="prowl_priority">Priority (-2,-1,0,1 or 2)</label>
|
||||
<input type="text" id="prowl_priority" name="prowl_priority" value="${config['prowl_priority']}" size="2">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<div class="wellheader">
|
||||
<h3>XBMC</h3>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="xbmc_enabled" id="xbmc" value="1" ${config['xbmc_enabled']}> Enable XBMC Notifications
|
||||
</div>
|
||||
<div id="xbmcoptions">
|
||||
<div class="form-group">
|
||||
<label for="xbmc_host">XBMC Host:Port</label>
|
||||
<input type="text" id="xbmc_host" name="xbmc_host" value="${config['xbmc_host']}" size="30">
|
||||
<p class="help-block">e.g. http://localhost:8080. Separate hosts with commas.</p>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="xbmc_username">XBMC Username</label>
|
||||
<input type="text" id="xbmc_username" name="xbmc_username" value="${config['xbmc_username']}" size="30">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="xbmc_password">XBMC Password</label>
|
||||
<input type="password" id="xbmc_password" name="xbmc_password" value="${config['xbmc_password']}" size="30">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<div class="wellheader">
|
||||
<h3>Plex Home Theatre</h3>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="plex_enabled" id="plex" value="1" ${config['plex_enabled']}> Enable Plex Notifications
|
||||
</div>
|
||||
<div id="plexoptions">
|
||||
<div class="form-group">
|
||||
<label for="plex_client_host">Plex Client Host:Port</label>
|
||||
<input type="text" id="plex_client_host" name="plex_client_host" value="${config['plex_client_host']}" size="30">
|
||||
<p class="help-block">Host running Plex Client (eg. http://192.168.1.100:3000).</p>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="plex_username">Plex Username</label>
|
||||
<input type="text" id="plex_username"name="plex_username" value="${config['plex_username']}" size="30">
|
||||
<p class="help-block">Username of your Plex client API (blank for none).</p>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="plex_password">Plex Password</label>
|
||||
<input type="password" id="plex_password" name="plex_password" value="${config['plex_password']}" size="30">
|
||||
<p class="help-block">Password of your Plex client API (blank for none).</p>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<div class="wellheader">
|
||||
<h3>NotifyMyAndroid</h3>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="nma_enabled" id="nma" value="1" ${config['nma_enabled']}> Enable NotifyMyAndroid
|
||||
</div>
|
||||
<div id="nmaoptions">
|
||||
<div class="form-group">
|
||||
<label for="nma_apikey">NotifyMyAndroid API Key</label>
|
||||
<input type="text" id="nma_apikey" name="nma_apikey" value="${config['nma_apikey']}" size="30">
|
||||
<p class="help-block">Separate multiple api keys with commas.</p>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="nma_priority">Priority</label>
|
||||
<select id="nma_priority" name="nma_priority">
|
||||
%for x in [-2,-1,0,1,2]:
|
||||
<%
|
||||
if config['nma_priority'] == x:
|
||||
nma_priority_selected = 'selected'
|
||||
else:
|
||||
nma_priority_selected = ''
|
||||
if x == -2:
|
||||
nma_priority_value = 'Very Low'
|
||||
elif x == -1:
|
||||
nma_priority_value = 'Moderate'
|
||||
elif x == 0:
|
||||
nma_priority_value = 'Normal'
|
||||
elif x == 1:
|
||||
nma_priority_value = 'High'
|
||||
else:
|
||||
nma_priority_value = 'Emergency'
|
||||
%>
|
||||
<option value=${x} ${nma_priority_selected}>${nma_priority_value}</option>
|
||||
%endfor
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<div class="wellheader">
|
||||
<h3>Pushalot</h3>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="pushalot_enabled" id="pushalot" value="1" ${config['pushalot_enabled']}> Enable Pushalot
|
||||
</div>
|
||||
<div id="pushalotoptions">
|
||||
<div class="form-group">
|
||||
<label for="pushalot_apikey">Pushalot API Key</label>
|
||||
<input type="text" id="pushalot_apikey" name="pushalot_apikey" value="${config['pushalot_apikey']}" size="30">
|
||||
<p class="help-block">Separate multiple api keys with commas.</p>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<div class="wellheader">
|
||||
<h3>Email</h3>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="email_enabled" id="email" value="1" ${config['email_enabled']}> Enable Email Notifications
|
||||
</div>
|
||||
<div id="email_options">
|
||||
<div class="form-group">
|
||||
<label for="email_from">From</label>
|
||||
<input type="text" id="email_from" name="email_from" value="${config['email_from']}" size="254">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="email_to">To</label>
|
||||
<input type="text" id="email_to" name="email_to" value="${config['email_to']}" size="254">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="email_smtp_server">SMTP Server</label>
|
||||
<input type="text" id="email_smtp_server" name="email_smtp_server" value="${config['email_smtp_server']}" size="254">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="email_smtp_user">SMTP User</label>
|
||||
<input type="text" id="email_smtp_user" name="email_smtp_user" value="${config['email_smtp_user']}" size="254">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="email_smtp_password">SMTP Password</label>
|
||||
<input type="password" id="email_smtp_password" name="email_smtp_password" value="${config['email_smtp_password']}" size="50">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="email_smtp_port">SMTP Port</label>
|
||||
<input type="text" id="email_smtp_port" name="email_smtp_port" value="${config['email_smtp_port']}" size="4">
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="email_tls" value="1" ${config['email_tls']}> TLS
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<div class="wellheader">
|
||||
<h3>Pushover</h3>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="pushover_enabled" id="pushover" value="1" ${config['pushover_enabled']}> Enable Pushover Notifications
|
||||
</div>
|
||||
<div id="pushoveroptions">
|
||||
<div class="form-group">
|
||||
<label for="pushover_keys">User key</label>
|
||||
<input type="text" id="pushover_keys" name="pushover_keys" value="${config['pushover_keys']}" size="50">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="pushover_priority">Priority (-1,0, or 1)</label>
|
||||
<input type="text" id="pushover_priority" name="pushover_priority" value="${config['pushover_priority']}" size="2">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="pushover_apitoken">API Token (leave blank to use PlexPy default)</label>
|
||||
<input type="text" id="pushover_apitoken" name="pushover_apitoken" value="${config['pushover_apitoken']}" size="50">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<div class="wellheader">
|
||||
<h3>Pushbullet</h3>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="pushbullet_enabled" id="pushbullet" value="1" ${config['pushbullet_enabled']}> Enable PushBullet Notifications
|
||||
</div>
|
||||
<div id="pushbulletoptions">
|
||||
<div class="form-group">
|
||||
<label for="pushbullet_apikey">API Key</label>
|
||||
<input type="text" id="pushbullet_apikey" name="pushbullet_apikey" value="${config['pushbullet_apikey']}" size="50">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="pushbullet_deviceid">Device ID</label>
|
||||
<input type="text" id="pushbullet_deviceid" name="pushbullet_deviceid" value="${config['pushbullet_deviceid']}" size="50">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<!-- We need to test Twitter first
|
||||
<fieldset>
|
||||
<div class="wellheader">
|
||||
<h3>Twitter</h3>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="twitter_enabled" id="twitter" value="1" ${config['twitter_enabled']}> Enable Twitter Notifications
|
||||
</div>
|
||||
<div id="twitteroptions">
|
||||
<div class="form-group">
|
||||
<input type="button" class="btn btn-small" value="Request Authorization" id="twitterStep1" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input type="text" id="twitter_key" value="" size="35" placeholder="Input Authorization Key" />
|
||||
<input type="button" class="btn btn-link" value="Verify Key" id="twitterStep2" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input type="button" class="btn btn-small" value="Test Twitter" id="testTwitter" />
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
-->
|
||||
<fieldset>
|
||||
<div class="wellheader">
|
||||
<h3>OS X</h3>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="osx_notify_enabled" id="osx_notify" value="1" ${config['osx_notify_enabled']}> Enable OS X Notifications
|
||||
</div>
|
||||
<div id="osx_notify_options">
|
||||
<div class="form-group">
|
||||
<label for="osx_notify_reg">Register Notify App</label>
|
||||
<input type="text" id="osx_notify_reg" name="osx_notify_app" value="${config['osx_notify_app']}" size="50">
|
||||
<input type="button" class="btn btn-link" value="Register" id="osxnotifyregister">
|
||||
<p class="help-block">Enter the path/application name to be registered with the Notification Center, default is /Applications/PlexPy.</p>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<div class="wellheader">
|
||||
<h3>Boxcar2</h3>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="boxcar_enabled" id="boxcar" value="1" ${config['boxcar_enabled']}> Enable Boxcar2 Notifications
|
||||
</div>
|
||||
<div id="boxcar_options">
|
||||
<div class="form-group">
|
||||
<label for="boxcar_token">Access Token</label>
|
||||
<input type="text" id="boxcar_token" name="boxcar_token" value="${config['boxcar_token']}" size="35">
|
||||
</div>
|
||||
<h3>Notification Agents</h3>
|
||||
</div>
|
||||
<p class="help-block">
|
||||
Check the desired notification option and configure it by selecting the settings icon to the right.
|
||||
</p>
|
||||
<br/>
|
||||
<ul class="stacked-configs">
|
||||
% for agent in available_notification_agents:
|
||||
<li>
|
||||
<span>
|
||||
<input type="checkbox" name="${agent['config_name']}" id="${agent['config_name']}" value="1" ${agent['state']}> ${agent['name']}
|
||||
% if agent['has_config']:
|
||||
<a href="#notification-config-modal" data-id="${agent['id']}" class="toggle-notification-config-modal" data-toggle="modal"><i class="fa fa-lg fa-cog"></i></a>
|
||||
% endif
|
||||
</span>
|
||||
</li>
|
||||
% endfor
|
||||
</ul>
|
||||
</fieldset>
|
||||
<input type="button" class="rounded rounded-primary save-button" value="Save" data-success="Changes saved successfully">
|
||||
</div>
|
||||
|
@ -777,6 +528,9 @@
|
|||
<div id="plexwatch-import-modal" class="modal hide fade" tabindex="-1" role="dialog"
|
||||
aria-labelledby="plexwatch-import-modal" aria-hidden="true">
|
||||
</div>
|
||||
<div id="notification-config-modal" class="modal hide fade" tabindex="-1" role="dialog"
|
||||
aria-labelledby="notification-setting-modal" aria-hidden="true">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -939,245 +693,18 @@
|
|||
});
|
||||
});
|
||||
|
||||
// Legacy stuff we need to remove
|
||||
if ($("#growl").is(":checked"))
|
||||
{
|
||||
$("#growloptions").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#growloptions").hide();
|
||||
}
|
||||
|
||||
$("#growl").click(function(){
|
||||
if ($("#growl").is(":checked"))
|
||||
{
|
||||
$("#growloptions").slideDown();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#growloptions").slideUp();
|
||||
}
|
||||
});
|
||||
|
||||
if ($("#prowl").is(":checked"))
|
||||
{
|
||||
$("#prowloptions").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#prowloptions").hide();
|
||||
}
|
||||
|
||||
$("#prowl").click(function(){
|
||||
if ($("#prowl").is(":checked"))
|
||||
{
|
||||
$("#prowloptions").slideDown();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#prowloptions").slideUp();
|
||||
}
|
||||
});
|
||||
|
||||
if ($("#xbmc").is(":checked"))
|
||||
{
|
||||
$("#xbmcoptions").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#xbmcoptions").hide();
|
||||
}
|
||||
|
||||
$("#xbmc").click(function(){
|
||||
if ($("#xbmc").is(":checked"))
|
||||
{
|
||||
$("#xbmcoptions").slideDown();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#xbmcoptions").slideUp();
|
||||
}
|
||||
});
|
||||
|
||||
if ($("#plex").is(":checked"))
|
||||
{
|
||||
$("#plexoptions").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#plexoptions").hide();
|
||||
}
|
||||
|
||||
$("#plex").click(function(){
|
||||
if ($("#plex").is(":checked"))
|
||||
{
|
||||
$("#plexoptions").slideDown();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#plexoptions").slideUp();
|
||||
}
|
||||
});
|
||||
|
||||
if ($("#nma").is(":checked"))
|
||||
{
|
||||
$("#nmaoptions").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#nmaoptions").hide();
|
||||
}
|
||||
|
||||
$("#nma").click(function(){
|
||||
if ($("#nma").is(":checked"))
|
||||
{
|
||||
$("#nmaoptions").slideDown();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#nmaoptions").slideUp();
|
||||
}
|
||||
});
|
||||
|
||||
if ($("#pushalot").is(":checked"))
|
||||
{
|
||||
$("#pushalotoptions").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#pushalotoptions").hide();
|
||||
}
|
||||
|
||||
$("#pushalot").click(function(){
|
||||
if ($("#pushalot").is(":checked"))
|
||||
{
|
||||
$("#pushalotoptions").slideDown();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#pushalotoptions").slideUp();
|
||||
}
|
||||
});
|
||||
|
||||
if ($("#pushover").is(":checked"))
|
||||
{
|
||||
$("#pushoveroptions").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#pushoveroptions").hide();
|
||||
}
|
||||
|
||||
$("#pushover").click(function(){
|
||||
if ($("#pushover").is(":checked"))
|
||||
{
|
||||
$("#pushoveroptions").slideDown();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#pushoveroptions").slideUp();
|
||||
}
|
||||
});
|
||||
|
||||
if ($("#pushbullet").is(":checked"))
|
||||
{
|
||||
$("#pushbulletoptions").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#pushbulletoptions").hide();
|
||||
}
|
||||
|
||||
|
||||
$("#pushbullet").click(function(){
|
||||
if ($("#pushbullet").is(":checked"))
|
||||
{
|
||||
$("#pushbulletoptions").slideDown();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#pushbulletoptions").slideUp();
|
||||
}
|
||||
});
|
||||
if ($("#twitter").is(":checked"))
|
||||
{
|
||||
$("#twitteroptions").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#twitteroptions").hide();
|
||||
}
|
||||
|
||||
$("#twitter").click(function(){
|
||||
if ($("#twitter").is(":checked"))
|
||||
{
|
||||
$("#twitteroptions").slideDown();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#twitteroptions").slideUp();
|
||||
}
|
||||
});
|
||||
|
||||
if ($("#osx_notify").is(":checked"))
|
||||
{
|
||||
$("#osx_notify_options").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#osx_notify_options").hide();
|
||||
}
|
||||
|
||||
$("#osx_notify").click(function(){
|
||||
if ($("#osx_notify").is(":checked"))
|
||||
{
|
||||
$("#osx_notify_options").slideDown();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#osx_notify_options").slideUp();
|
||||
}
|
||||
});
|
||||
|
||||
if ($("#boxcar").is(":checked"))
|
||||
{
|
||||
$("#boxcar_options").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#boxcar_options").hide();
|
||||
}
|
||||
|
||||
$("#boxcar").click(function(){
|
||||
if ($("#boxcar").is(":checked"))
|
||||
{
|
||||
$("#boxcar_options").slideDown();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#boxcar_options").slideUp();
|
||||
}
|
||||
});
|
||||
|
||||
if ($("#email").is(":checked"))
|
||||
{
|
||||
$("#email_options").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#email_options").hide();
|
||||
}
|
||||
|
||||
$("#email").click(function(){
|
||||
if ($("#email").is(":checked"))
|
||||
{
|
||||
$("#email_options").slideDown();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#email_options").slideUp();
|
||||
// Load PlexWatch import modal
|
||||
$(".toggle-notification-config-modal").click(function() {
|
||||
var configId = $(this).data('id');
|
||||
$.ajax({
|
||||
url: 'get_notification_agent_config',
|
||||
data: { config_id: configId },
|
||||
cache: false,
|
||||
async: true,
|
||||
complete: function(xhr, status) {
|
||||
$("#notification-config-modal").html(xhr.responseText);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
if ($("#tv_notify_enable").is(":checked"))
|
||||
|
|
|
@ -134,7 +134,7 @@ from plexpy import version
|
|||
<h3>PlexWatch Import</h3>
|
||||
<p class="help-block">If you have an existing PlexWatch database, you can import the data into PlexPy.</p>
|
||||
<p class="help-block">
|
||||
When you complete this wizard navigate to the settings menu and to the Monitoring tab. You will find an import tool there
|
||||
When you complete this wizard navigate to the settings menu and to the Extra Settings tab. You will find an import tool there
|
||||
which will convert your plexWatch database into a format that PlexPy can read.
|
||||
</p>
|
||||
<!-- Figure out best way to get friends list refreshed before adding this back
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue