
First code for independent notifications (not linked to PlexWatch). New notifications panel in Settings (many types still untested). Standardise the parameters sent to current activity. Remove notifiers we cannot use. Styling fixes for sync tables.
153 lines
7.0 KiB
HTML
153 lines
7.0 KiB
HTML
<%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 ==
|
|
sessionKey Returns a unique session id for the active stream
|
|
ratingKey Returns the unique identifier for the media item.
|
|
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.
|
|
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.
|
|
friendly_name Returns the friendlly name 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.
|
|
player Returns the name of the platform used to play the stream.
|
|
audioDecision Returns the audio transcode decision. Either 'transcode', 'copy' or 'direct play'.
|
|
audioCodec Returns the name of the audio codec.
|
|
audioChannels Returns the number of audio channels.
|
|
grandparentTitle Returns the title of the item's grandparent.
|
|
parentTitle Returns the title of the item's parent.
|
|
|
|
== Only if 'type' is 'episode' or 'movie' ==
|
|
videoDecision Returns the video transcode decision. Either 'transcode', 'copy' or 'direct play'.
|
|
videoCodec Returns the name of the video codec.
|
|
height Returns the value of the video height.
|
|
width Returns the value of the video width.
|
|
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']:
|
|
<div class="instance" id="instance-${a['sessionKey']}">
|
|
<div class="poster">
|
|
% if a['type'] == 'movie' and not a['indexes']:
|
|
<div class="dashboard-activity-poster-face">
|
|
<img src="pms_image_proxy?img=${a['art']}&width=300&height=169"/>
|
|
</div>
|
|
% elif a['indexes']:
|
|
<div class="dashboard-activity-poster-face">
|
|
<img onload="fadeIn(this)" src="pms_image_proxy?img=${a['thumb']}&width=300&height=169" style="display: none;"/>
|
|
</div>
|
|
% else:
|
|
<div class="dashboard-activity-poster-face">
|
|
<img src="pms_image_proxy?img=${a['thumb']}&width=300&height=169"/>
|
|
</div>
|
|
% endif
|
|
<div class='dashboard-activity-metadata-wrapper'>
|
|
<div class='dashboard-activity-instance-overlay'>
|
|
<div class='dashboard-activity-metadata-progress-minutes'>
|
|
<div class='progress progress-warning'>
|
|
<div class="bar" style="width: ${a['progressPercent']}%">${a['progressPercent']}%</div>
|
|
</div>
|
|
</div>
|
|
<div class="dashboard-activity-metadata-platform" id="platform-${a['sessionKey']}">
|
|
</div>
|
|
<div class="dashboard-activity-metadata-user">
|
|
<a href="user?user=${a['user']}">${a['friendly_name']}</a> is ${a['state']}
|
|
</div>
|
|
<div class="dashboard-activity-metadata-title">
|
|
% if a['type'] == 'episode':
|
|
<a href="info?rating_key=${a['ratingKey']}">${a['grandparentTitle']} - ${a['title']}</a>
|
|
% elif a['type'] == 'movie':
|
|
<a href="info?rating_key=${a['ratingKey']}">${a['title']}</a>
|
|
% elif a['type'] == 'track':
|
|
${a['grandparentTitle']} - ${a['title']}
|
|
% else:
|
|
${a['grandparentTitle']} - ${a['title']}
|
|
% endif
|
|
</div>
|
|
</div>
|
|
<div id="stream-${a['sessionKey']}" class="collapse out">
|
|
<div class='dashboard-activity-info-details-overlay'>
|
|
<div class='dashboard-activity-info-details-content'>
|
|
% if a['type'] == 'track':
|
|
Artist: <strong>${a['grandparentTitle']}</strong>
|
|
<br>
|
|
Album: <strong>${a['parentTitle']}</strong>
|
|
<br>
|
|
% endif
|
|
% if a['state'] == 'playing':
|
|
State: <strong>Playing</strong>
|
|
% elif a['state'] == 'paused':
|
|
State: <strong>Paused</strong>
|
|
% elif a['state'] == 'buffering':
|
|
State: <strong>Buffering</strong>
|
|
% endif
|
|
<br>
|
|
% if a['type'] == 'track':
|
|
% if a['audioDecision'] == 'direct play':
|
|
Stream: <strong>Direct Play</strong>
|
|
% else:
|
|
Stream: <strong>Transcoding</strong>
|
|
% endif
|
|
<br/>
|
|
Audio: <strong>${a['audioCodec']} (${a['audioChannels']}ch)</strong>
|
|
% elif a['type'] == 'episode' or a['type'] == 'movie':
|
|
% if a['videoDecision'] == 'direct play':
|
|
Stream: <strong>Direct Play</strong>
|
|
% else:
|
|
Stream: <strong>Transcoding</strong>
|
|
% endif
|
|
<br/>
|
|
Video: <strong>${a['videoDecision']} (${a['videoCodec']})
|
|
(${a['width']}x${a['height']})</strong>
|
|
<br/>
|
|
Audio: <strong>${a['audioDecision']} (${a['audioCodec']}) (${a['audioChannels']}ch)</strong>
|
|
% endif
|
|
<br>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="dashboard-activity-button-info">
|
|
<button type="button" class="btn btn-warning" data-toggle="collapse" data-target="#stream-${a['sessionKey']}">
|
|
<i class='icon-info-sign icon-white'></i>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<script>
|
|
$("#platform-${a['sessionKey']}").html("<img src='" + getPlatformImagePath('${a['player']}') + "'>");
|
|
|
|
</script>
|
|
% endfor
|
|
<script>
|
|
function fadeIn(obj) {
|
|
$(obj).fadeIn(450);
|
|
}
|
|
</script>
|
|
% else:
|
|
<div class="muted">Nothing is currently being watched.</div><br>
|
|
% endif
|
|
% else:
|
|
<div class="muted">There was an error communicating with your Plex Server. Please check your <a
|
|
href="config">settings</a>.
|
|
</div><br>
|
|
% endif |