mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-16 02:02:58 -07:00
Filter history modal on graphs based on clicked series
This commit is contained in:
parent
e8a65df7f0
commit
efdc050a28
5 changed files with 38 additions and 15 deletions
|
@ -249,7 +249,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Modal popup dialog
|
// Modal popup dialog
|
||||||
function selectHandler(selectedDate) {
|
function selectHandler(selectedDate, selectedSeries) {
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -259,10 +259,25 @@
|
||||||
var y = dateValue.getFullYear();
|
var y = dateValue.getFullYear();
|
||||||
var dateString = '' + y + '-' + (m<=9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d);
|
var dateString = '' + y + '-' + (m<=9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d);
|
||||||
|
|
||||||
|
var media_type = 'all';
|
||||||
|
var transcode_decision = null;
|
||||||
|
switch(selectedSeries) {
|
||||||
|
case "TV": media_type = 'episode'; break;
|
||||||
|
case "Movies": media_type = 'movie'; break;
|
||||||
|
case "Music": media_type = 'track'; break;
|
||||||
|
case "Direct Play": transcode_decision = 'direct play'; break;
|
||||||
|
case "Direct Stream": transcode_decision = 'copy'; break;
|
||||||
|
case "Transcode": transcode_decision = 'transcode'; break;
|
||||||
|
}
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
"url": "history_table_modal",
|
url: "history_table_modal",
|
||||||
type: 'post',
|
type: 'post',
|
||||||
data: { 'start_date': dateString },
|
data: {
|
||||||
|
start_date: dateString,
|
||||||
|
media_type: media_type,
|
||||||
|
transcode_decision: transcode_decision
|
||||||
|
},
|
||||||
complete: function(xhr, status) {
|
complete: function(xhr, status) {
|
||||||
$('#history-modal').modal('show');
|
$('#history-modal').modal('show');
|
||||||
$("#history-modal").html(xhr.responseText);
|
$("#history-modal").html(xhr.responseText);
|
||||||
|
@ -271,7 +286,7 @@
|
||||||
}
|
}
|
||||||
catch(err)
|
catch(err)
|
||||||
{
|
{
|
||||||
console.log("Failed to retrieve data");
|
console.log("Failed to retrieve history modal data.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="fa fa-remove"></i></button>
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="fa fa-remove"></i></button>
|
||||||
<h4 class="modal-title" id="myModalLabel">
|
<h4 class="modal-title" id="myModalLabel">
|
||||||
<strong><span id="modal_header_ip_address">
|
<strong><span id="modal_header_ip_address">
|
||||||
<i class="fa fa-history"></i> History for <span id="date-header">${data}</span>
|
<i class="fa fa-history"></i> History for <span id="date-header">${data['start_date']}</span>
|
||||||
</span></strong>
|
</span></strong>
|
||||||
</h4>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
<script src="interfaces/default/js/tables/history_table_modal.js"></script>
|
<script src="interfaces/default/js/tables/history_table_modal.js"></script>
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$('#date-header').html(moment('${data}','YYYY-MM-DD').format('ddd MMM Do YYYY'));
|
$('#date-header').html(moment('${data["start_date"]}','YYYY-MM-DD').format('ddd MMM Do YYYY'));
|
||||||
history_table_modal_options.ajax = {
|
history_table_modal_options.ajax = {
|
||||||
url: 'get_history',
|
url: 'get_history',
|
||||||
type: 'post',
|
type: 'post',
|
||||||
|
@ -40,8 +40,10 @@
|
||||||
return {
|
return {
|
||||||
json_data: JSON.stringify(d),
|
json_data: JSON.stringify(d),
|
||||||
grouping: false,
|
grouping: false,
|
||||||
start_date: '${data}'
|
start_date: "${data['start_date']}",
|
||||||
};
|
media_type: "${data.get('media_type')}",
|
||||||
|
transcode_decision: "${data.get('transcode_decision')}"
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,8 +28,8 @@ var hc_plays_by_day_options = {
|
||||||
cursor: 'pointer',
|
cursor: 'pointer',
|
||||||
point: {
|
point: {
|
||||||
events: {
|
events: {
|
||||||
click: function() {
|
click: function () {
|
||||||
selectHandler(this.category);
|
selectHandler(this.category, this.series.name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -60,7 +60,8 @@ var hc_plays_by_day_options = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
tooltip: {
|
tooltip: {
|
||||||
shared: true
|
shared: true,
|
||||||
|
crosshairs: true
|
||||||
},
|
},
|
||||||
series: [{}]
|
series: [{}]
|
||||||
};
|
};
|
|
@ -29,7 +29,7 @@ var hc_plays_by_stream_type_options = {
|
||||||
point: {
|
point: {
|
||||||
events: {
|
events: {
|
||||||
click: function() {
|
click: function() {
|
||||||
selectHandler(this.category);
|
selectHandler(this.category, this.series.name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -60,7 +60,8 @@ var hc_plays_by_stream_type_options = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
tooltip: {
|
tooltip: {
|
||||||
shared: true
|
shared: true,
|
||||||
|
crosshairs: true
|
||||||
},
|
},
|
||||||
series: [{}]
|
series: [{}]
|
||||||
};
|
};
|
|
@ -777,6 +777,10 @@ class WebInterface(object):
|
||||||
media_type = kwargs.get('media_type', "")
|
media_type = kwargs.get('media_type', "")
|
||||||
if media_type != 'all':
|
if media_type != 'all':
|
||||||
custom_where.append(['session_history.media_type', media_type])
|
custom_where.append(['session_history.media_type', media_type])
|
||||||
|
if 'transcode_decision' in kwargs:
|
||||||
|
transcode_decision = kwargs.get('transcode_decision', "")
|
||||||
|
if transcode_decision:
|
||||||
|
custom_where.append(['session_history_media_info.transcode_decision', transcode_decision])
|
||||||
|
|
||||||
data_factory = datafactory.DataFactory()
|
data_factory = datafactory.DataFactory()
|
||||||
history = data_factory.get_datatables_history(kwargs=kwargs, custom_where=custom_where, grouping=grouping, watched_percent=watched_percent)
|
history = data_factory.get_datatables_history(kwargs=kwargs, custom_where=custom_where, grouping=grouping, watched_percent=watched_percent)
|
||||||
|
@ -990,9 +994,9 @@ class WebInterface(object):
|
||||||
logger.warn(u"Unable to retrieve data for get_stream_type_by_top_10_platforms.")
|
logger.warn(u"Unable to retrieve data for get_stream_type_by_top_10_platforms.")
|
||||||
|
|
||||||
@cherrypy.expose
|
@cherrypy.expose
|
||||||
def history_table_modal(self, start_date=None, **kwargs):
|
def history_table_modal(self, **kwargs):
|
||||||
|
|
||||||
return serve_template(templatename="history_table_modal.html", title="History Data", data=start_date)
|
return serve_template(templatename="history_table_modal.html", title="History Data", data=kwargs)
|
||||||
|
|
||||||
|
|
||||||
##### Sync #####
|
##### Sync #####
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue