diff --git a/data/interfaces/default/css/plexwatch.css b/data/interfaces/default/css/plexwatch.css index d5fba94c..db952922 100644 --- a/data/interfaces/default/css/plexwatch.css +++ b/data/interfaces/default/css/plexwatch.css @@ -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'] { + } \ No newline at end of file diff --git a/data/interfaces/default/notification_config.html b/data/interfaces/default/notification_config.html new file mode 100644 index 00000000..14b9a193 --- /dev/null +++ b/data/interfaces/default/notification_config.html @@ -0,0 +1,53 @@ +% if data: + + + +% endif + + diff --git a/data/interfaces/default/settings.html b/data/interfaces/default/settings.html index 2b089609..5b8130aa 100644 --- a/data/interfaces/default/settings.html +++ b/data/interfaces/default/settings.html @@ -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 @@
  • Web Interface
  • Access Control
  • -
  • Plex Server Settings
  • +
  • Plex Media Server
  • Plex.tv Account
  • -
  • Extra Setting
  • +
  • Extra Settings
  • Monitoring
  • Notifications
  • Notification Agents
  • @@ -187,8 +190,8 @@
    - -

    The interval (in hours) PlexPy will request an updated friends list from Plex.tv. 0 to disable.

    + +

    The interval (in hours) PlexPy will request an updated friends list from Plex.tv. 1 minimum, 24 maximum.

    Refresh user list on startup @@ -338,276 +341,24 @@
    -

    Growl

    -
    -
    - Enable Growl Notifications -
    -
    -
    - - -
    -
    - - -
    -
    -
    -
    -
    -

    Prowl

    -
    -
    - Enable Prowl Notifications -
    -
    -
    - - -
    -
    - - -
    -
    -
    - -
    -
    -

    XBMC

    -
    -
    - Enable XBMC Notifications -
    -
    -
    - - -

    e.g. http://localhost:8080. Separate hosts with commas.

    -
    -
    - - -
    -
    - - -
    -
    -
    -
    -
    -

    Plex Home Theatre

    -
    -
    - Enable Plex Notifications -
    -
    -
    - - -

    Host running Plex Client (eg. http://192.168.1.100:3000).

    -
    -
    - - -

    Username of your Plex client API (blank for none).

    -
    -
    - - -

    Password of your Plex client API (blank for none).

    -
    -
    -
    -
    -
    -

    NotifyMyAndroid

    -
    -
    - Enable NotifyMyAndroid -
    -
    -
    - - -

    Separate multiple api keys with commas.

    -
    -
    - - -
    -
    -
    - -
    -
    -

    Pushalot

    -
    -
    - Enable Pushalot -
    -
    -
    - - -

    Separate multiple api keys with commas.

    -
    -
    -
    - -
    -
    -

    Email

    -
    -
    - Enable Email Notifications -
    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - TLS -
    -
    -
    -
    -
    -

    Pushover

    -
    -
    - Enable Pushover Notifications -
    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    -
    - -
    -
    -

    Pushbullet

    -
    -
    - Enable PushBullet Notifications -
    -
    -
    - - -
    -
    - - -
    -
    -
    - - -
    -
    -

    OS X

    -
    -
    - Enable OS X Notifications -
    -
    -
    - - - -

    Enter the path/application name to be registered with the Notification Center, default is /Applications/PlexPy.

    -
    -
    -
    - -
    -
    -

    Boxcar2

    -
    -
    - Enable Boxcar2 Notifications -
    -
    -
    - - -
    +

    Notification Agents

    +

    + Check the desired notification option and configure it by selecting the settings icon to the right. +

    +
    +
      + % for agent in available_notification_agents: +
    • + + ${agent['name']} + % if agent['has_config']: + + % endif + +
    • + % endfor +
    @@ -777,6 +528,9 @@ +
    @@ -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")) diff --git a/data/interfaces/default/welcome.html b/data/interfaces/default/welcome.html index 9c292531..b5034940 100644 --- a/data/interfaces/default/welcome.html +++ b/data/interfaces/default/welcome.html @@ -134,7 +134,7 @@ from plexpy import version

    PlexWatch Import

    If you have an existing PlexWatch database, you can import the data into PlexPy.

    - 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.