mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-14 01:02:59 -07:00
Only show graph series if the library type is present
This commit is contained in:
parent
3c1b849a5d
commit
068cf17d0a
14 changed files with 103 additions and 17 deletions
|
@ -305,6 +305,23 @@
|
|||
|
||||
setLocalStorage(chart_key, JSON.stringify(chart_visibility));
|
||||
}
|
||||
|
||||
function getGraphColors(data_series) {
|
||||
var colors = {
|
||||
'TV': '#E5A00D',
|
||||
'Movies': '#FFFFFF',
|
||||
'Music': '#F06464',
|
||||
'Live TV': '#19A0D7',
|
||||
'Direct Play': '#E5A00D',
|
||||
'Direct Stream': '#FFFFFF',
|
||||
'Transcode': '#F06464'
|
||||
};
|
||||
var series_colors = [];
|
||||
$.each(data_series, function(index, series) {
|
||||
series_colors.push(colors[series.name]);
|
||||
});
|
||||
return series_colors;
|
||||
}
|
||||
</script>
|
||||
<script src="${http_root}js/graphs/plays_by_day.js${cache_param}"></script>
|
||||
<script src="${http_root}js/graphs/plays_by_dayofweek.js${cache_param}"></script>
|
||||
|
@ -391,6 +408,7 @@
|
|||
hc_plays_by_day_options.yAxis.min = 0;
|
||||
hc_plays_by_day_options.xAxis.categories = dateArray;
|
||||
hc_plays_by_day_options.series = getGraphVisibility(hc_plays_by_day_options.chart.renderTo, data.series);
|
||||
hc_plays_by_day_options.colors = getGraphColors(data.series);
|
||||
var hc_plays_by_day = new Highcharts.Chart(hc_plays_by_day_options);
|
||||
}
|
||||
});
|
||||
|
@ -404,6 +422,7 @@
|
|||
if (yaxis === 'duration') { dataSecondsToHours(data); }
|
||||
hc_plays_by_dayofweek_options.xAxis.categories = data.categories;
|
||||
hc_plays_by_dayofweek_options.series = getGraphVisibility(hc_plays_by_dayofweek_options.chart.renderTo, data.series);
|
||||
hc_plays_by_dayofweek_options.colors = getGraphColors(data.series);
|
||||
var hc_plays_by_dayofweek = new Highcharts.Chart(hc_plays_by_dayofweek_options);
|
||||
}
|
||||
});
|
||||
|
@ -417,6 +436,7 @@
|
|||
if (yaxis === 'duration') { dataSecondsToHours(data); }
|
||||
hc_plays_by_hourofday_options.xAxis.categories = data.categories;
|
||||
hc_plays_by_hourofday_options.series = getGraphVisibility(hc_plays_by_hourofday_options.chart.renderTo, data.series);
|
||||
hc_plays_by_hourofday_options.colors = getGraphColors(data.series);
|
||||
var hc_plays_by_hourofday = new Highcharts.Chart(hc_plays_by_hourofday_options);
|
||||
}
|
||||
});
|
||||
|
@ -430,6 +450,7 @@
|
|||
if (yaxis === 'duration') { dataSecondsToHours(data); }
|
||||
hc_plays_by_platform_options.xAxis.categories = data.categories;
|
||||
hc_plays_by_platform_options.series = getGraphVisibility(hc_plays_by_platform_options.chart.renderTo, data.series);
|
||||
hc_plays_by_platform_options.colors = getGraphColors(data.series);
|
||||
var hc_plays_by_platform = new Highcharts.Chart(hc_plays_by_platform_options);
|
||||
}
|
||||
});
|
||||
|
@ -443,6 +464,7 @@
|
|||
if (yaxis === 'duration') { dataSecondsToHours(data); }
|
||||
hc_plays_by_user_options.xAxis.categories = data.categories;
|
||||
hc_plays_by_user_options.series = getGraphVisibility(hc_plays_by_user_options.chart.renderTo, data.series);
|
||||
hc_plays_by_user_options.colors = getGraphColors(data.series);
|
||||
var hc_plays_by_user = new Highcharts.Chart(hc_plays_by_user_options);
|
||||
}
|
||||
});
|
||||
|
@ -479,6 +501,7 @@
|
|||
hc_plays_by_stream_type_options.yAxis.min = 0;
|
||||
hc_plays_by_stream_type_options.xAxis.categories = dateArray;
|
||||
hc_plays_by_stream_type_options.series = getGraphVisibility(hc_plays_by_stream_type_options.chart.renderTo, data.series);
|
||||
hc_plays_by_stream_type_options.colors = getGraphColors(data.series);
|
||||
var hc_plays_by_stream_type = new Highcharts.Chart(hc_plays_by_stream_type_options);
|
||||
}
|
||||
});
|
||||
|
@ -492,6 +515,7 @@
|
|||
if (yaxis === 'duration') { dataSecondsToHours(data); }
|
||||
hc_plays_by_source_resolution_options.xAxis.categories = data.categories;
|
||||
hc_plays_by_source_resolution_options.series = getGraphVisibility(hc_plays_by_source_resolution_options.chart.renderTo, data.series);
|
||||
hc_plays_by_source_resolution_options.colors = getGraphColors(data.series);
|
||||
var hc_plays_by_source_resolution = new Highcharts.Chart(hc_plays_by_source_resolution_options);
|
||||
}
|
||||
});
|
||||
|
@ -505,6 +529,7 @@
|
|||
if (yaxis === 'duration') { dataSecondsToHours(data); }
|
||||
hc_plays_by_stream_resolution_options.xAxis.categories = data.categories;
|
||||
hc_plays_by_stream_resolution_options.series = getGraphVisibility(hc_plays_by_stream_resolution_options.chart.renderTo, data.series);
|
||||
hc_plays_by_stream_resolution_options.colors = getGraphColors(data.series);
|
||||
var hc_plays_by_stream_resolution = new Highcharts.Chart(hc_plays_by_stream_resolution_options);
|
||||
}
|
||||
});
|
||||
|
@ -518,6 +543,7 @@
|
|||
if (yaxis === 'duration') { dataSecondsToHours(data); }
|
||||
hc_plays_by_platform_by_stream_type_options.xAxis.categories = data.categories;
|
||||
hc_plays_by_platform_by_stream_type_options.series = getGraphVisibility(hc_plays_by_platform_by_stream_type_options.chart.renderTo, data.series);
|
||||
hc_plays_by_platform_by_stream_type_options.colors = getGraphColors(data.series);
|
||||
var hc_plays_by_platform_by_stream_type = new Highcharts.Chart(hc_plays_by_platform_by_stream_type_options);
|
||||
}
|
||||
});
|
||||
|
@ -531,6 +557,7 @@
|
|||
if (yaxis === 'duration') { dataSecondsToHours(data); }
|
||||
hc_plays_by_user_by_stream_type_options.xAxis.categories = data.categories;
|
||||
hc_plays_by_user_by_stream_type_options.series = getGraphVisibility(hc_plays_by_user_by_stream_type_options.chart.renderTo, data.series);
|
||||
hc_plays_by_user_by_stream_type_options.colors = getGraphColors(data.series);
|
||||
var hc_plays_by_user_by_stream_type = new Highcharts.Chart(hc_plays_by_user_by_stream_type_options);
|
||||
}
|
||||
});
|
||||
|
@ -554,6 +581,7 @@
|
|||
hc_plays_by_month_options.yAxis.min = 0;
|
||||
hc_plays_by_month_options.xAxis.categories = data.categories;
|
||||
hc_plays_by_month_options.series = getGraphVisibility(hc_plays_by_month_options.chart.renderTo, data.series);
|
||||
hc_plays_by_month_options.colors = getGraphColors(data.series);
|
||||
var hc_plays_by_month = new Highcharts.Chart(hc_plays_by_month_options);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -40,7 +40,6 @@ var hc_plays_by_day_options = {
|
|||
}
|
||||
}
|
||||
},
|
||||
colors: ['#E5A00D', '#FFFFFF', '#F06464', '#19A0D7'],
|
||||
xAxis: {
|
||||
type: 'datetime',
|
||||
labels: {
|
||||
|
|
|
@ -23,7 +23,6 @@ var hc_plays_by_dayofweek_options = {
|
|||
credits: {
|
||||
enabled: false
|
||||
},
|
||||
colors: ['#E5A00D', '#FFFFFF', '#F06464', '#19A0D7'],
|
||||
xAxis: {
|
||||
categories: [{}],
|
||||
labels: {
|
||||
|
|
|
@ -23,7 +23,6 @@ var hc_plays_by_hourofday_options = {
|
|||
credits: {
|
||||
enabled: false
|
||||
},
|
||||
colors: ['#E5A00D', '#FFFFFF', '#F06464', '#19A0D7'],
|
||||
xAxis: {
|
||||
categories: [{}],
|
||||
labels: {
|
||||
|
|
|
@ -23,7 +23,6 @@ var hc_plays_by_month_options = {
|
|||
credits: {
|
||||
enabled: false
|
||||
},
|
||||
colors: ['#E5A00D', '#FFFFFF', '#F06464', '#19A0D7'],
|
||||
xAxis: {
|
||||
labels: {
|
||||
style: {
|
||||
|
|
|
@ -23,7 +23,6 @@ var hc_plays_by_platform_options = {
|
|||
credits: {
|
||||
enabled: false
|
||||
},
|
||||
colors: ['#E5A00D', '#FFFFFF', '#F06464', '#19A0D7'],
|
||||
xAxis: {
|
||||
categories: [{}],
|
||||
labels: {
|
||||
|
|
|
@ -23,7 +23,6 @@ var hc_plays_by_platform_by_stream_type_options = {
|
|||
credits: {
|
||||
enabled: false
|
||||
},
|
||||
colors: ['#E5A00D', '#FFFFFF', '#F06464'],
|
||||
xAxis: {
|
||||
categories: [{}],
|
||||
labels: {
|
||||
|
|
|
@ -23,7 +23,6 @@ var hc_plays_by_source_resolution_options = {
|
|||
credits: {
|
||||
enabled: false
|
||||
},
|
||||
colors: ['#E5A00D', '#FFFFFF', '#F06464'],
|
||||
xAxis: {
|
||||
categories: [{}],
|
||||
labels: {
|
||||
|
|
|
@ -23,7 +23,6 @@ var hc_plays_by_stream_resolution_options = {
|
|||
credits: {
|
||||
enabled: false
|
||||
},
|
||||
colors: ['#E5A00D', '#FFFFFF', '#F06464'],
|
||||
xAxis: {
|
||||
categories: [{}],
|
||||
labels: {
|
||||
|
|
|
@ -40,7 +40,6 @@ var hc_plays_by_stream_type_options = {
|
|||
}
|
||||
}
|
||||
},
|
||||
colors: ['#E5A00D', '#FFFFFF', '#F06464'],
|
||||
xAxis: {
|
||||
type: 'datetime',
|
||||
labels: {
|
||||
|
|
|
@ -23,7 +23,6 @@ var hc_plays_by_user_options = {
|
|||
credits: {
|
||||
enabled: false
|
||||
},
|
||||
colors: ['#E5A00D', '#FFFFFF', '#F06464', '#19A0D7'],
|
||||
xAxis: {
|
||||
categories: [{}],
|
||||
labels: {
|
||||
|
|
|
@ -23,7 +23,6 @@ var hc_plays_by_user_by_stream_type_options = {
|
|||
credits: {
|
||||
enabled: false
|
||||
},
|
||||
colors: ['#E5A00D', '#FFFFFF', '#F06464'],
|
||||
xAxis: {
|
||||
categories: [{}],
|
||||
labels: {
|
||||
|
|
|
@ -18,6 +18,7 @@ import datetime
|
|||
import plexpy
|
||||
import common
|
||||
import database
|
||||
import libraries
|
||||
import logger
|
||||
import session
|
||||
|
||||
|
@ -127,8 +128,18 @@ class Graphs(object):
|
|||
series_4_output = {'name': 'Live TV',
|
||||
'data': series_4}
|
||||
|
||||
series_output = []
|
||||
if libraries.has_library_type('show'):
|
||||
series_output.append(series_1_output)
|
||||
if libraries.has_library_type('movie'):
|
||||
series_output.append(series_2_output)
|
||||
if libraries.has_library_type('artist'):
|
||||
series_output.append(series_3_output)
|
||||
if libraries.has_library_type('live'):
|
||||
series_output.append(series_4_output)
|
||||
|
||||
output = {'categories': categories,
|
||||
'series': [series_1_output, series_2_output, series_3_output, series_4_output]}
|
||||
'series': series_output}
|
||||
return output
|
||||
|
||||
def get_total_plays_per_dayofweek(self, time_range='30', y_axis='plays', user_id=None, grouping=None):
|
||||
|
@ -248,8 +259,18 @@ class Graphs(object):
|
|||
series_4_output = {'name': 'Live TV',
|
||||
'data': series_4}
|
||||
|
||||
series_output = []
|
||||
if libraries.has_library_type('show'):
|
||||
series_output.append(series_1_output)
|
||||
if libraries.has_library_type('movie'):
|
||||
series_output.append(series_2_output)
|
||||
if libraries.has_library_type('artist'):
|
||||
series_output.append(series_3_output)
|
||||
if libraries.has_library_type('live'):
|
||||
series_output.append(series_4_output)
|
||||
|
||||
output = {'categories': categories,
|
||||
'series': [series_1_output, series_2_output, series_3_output, series_4_output]}
|
||||
'series': series_output}
|
||||
return output
|
||||
|
||||
def get_total_plays_per_hourofday(self, time_range='30', y_axis='plays', user_id=None, grouping=None):
|
||||
|
@ -351,8 +372,18 @@ class Graphs(object):
|
|||
series_4_output = {'name': 'Live TV',
|
||||
'data': series_4}
|
||||
|
||||
series_output = []
|
||||
if libraries.has_library_type('show'):
|
||||
series_output.append(series_1_output)
|
||||
if libraries.has_library_type('movie'):
|
||||
series_output.append(series_2_output)
|
||||
if libraries.has_library_type('artist'):
|
||||
series_output.append(series_3_output)
|
||||
if libraries.has_library_type('live'):
|
||||
series_output.append(series_4_output)
|
||||
|
||||
output = {'categories': categories,
|
||||
'series': [series_1_output, series_2_output, series_3_output, series_4_output]}
|
||||
'series': series_output}
|
||||
return output
|
||||
|
||||
def get_total_plays_per_month(self, time_range='12', y_axis='plays', user_id=None, grouping=None):
|
||||
|
@ -462,8 +493,18 @@ class Graphs(object):
|
|||
series_4_output = {'name': 'Live TV',
|
||||
'data': series_4}
|
||||
|
||||
series_output = []
|
||||
if libraries.has_library_type('show'):
|
||||
series_output.append(series_1_output)
|
||||
if libraries.has_library_type('movie'):
|
||||
series_output.append(series_2_output)
|
||||
if libraries.has_library_type('artist'):
|
||||
series_output.append(series_3_output)
|
||||
if libraries.has_library_type('live'):
|
||||
series_output.append(series_4_output)
|
||||
|
||||
output = {'categories': categories,
|
||||
'series': [series_1_output, series_2_output, series_3_output, series_4_output]}
|
||||
'series': series_output}
|
||||
return output
|
||||
|
||||
def get_total_plays_by_top_10_platforms(self, time_range='30', y_axis='plays', user_id=None, grouping=None):
|
||||
|
@ -548,8 +589,18 @@ class Graphs(object):
|
|||
series_4_output = {'name': 'Live TV',
|
||||
'data': series_4}
|
||||
|
||||
series_output = []
|
||||
if libraries.has_library_type('show'):
|
||||
series_output.append(series_1_output)
|
||||
if libraries.has_library_type('movie'):
|
||||
series_output.append(series_2_output)
|
||||
if libraries.has_library_type('artist'):
|
||||
series_output.append(series_3_output)
|
||||
if libraries.has_library_type('live'):
|
||||
series_output.append(series_4_output)
|
||||
|
||||
output = {'categories': categories,
|
||||
'series': [series_1_output, series_2_output, series_3_output, series_4_output]}
|
||||
'series': series_output}
|
||||
return output
|
||||
|
||||
def get_total_plays_by_top_10_users(self, time_range='30', y_axis='plays', user_id=None, grouping=None):
|
||||
|
@ -647,8 +698,18 @@ class Graphs(object):
|
|||
series_4_output = {'name': 'Live TV',
|
||||
'data': series_4}
|
||||
|
||||
series_output = []
|
||||
if libraries.has_library_type('show'):
|
||||
series_output.append(series_1_output)
|
||||
if libraries.has_library_type('movie'):
|
||||
series_output.append(series_2_output)
|
||||
if libraries.has_library_type('artist'):
|
||||
series_output.append(series_3_output)
|
||||
if libraries.has_library_type('live'):
|
||||
series_output.append(series_4_output)
|
||||
|
||||
output = {'categories': categories,
|
||||
'series': [series_1_output, series_2_output, series_3_output, series_4_output]}
|
||||
'series': series_output}
|
||||
return output
|
||||
|
||||
def get_total_plays_per_stream_type(self, time_range='30', y_axis='plays', user_id=None, grouping=None):
|
||||
|
|
|
@ -111,6 +111,14 @@ def add_live_tv_library():
|
|||
plexpy.CONFIG.write()
|
||||
|
||||
|
||||
def has_library_type(section_type):
|
||||
monitor_db = database.MonitorDatabase()
|
||||
query = 'SELECT * FROM library_sections WHERE section_type = ? AND deleted_section = 0'
|
||||
args = [section_type]
|
||||
result = monitor_db.select_single(query=query, args=args)
|
||||
return bool(result)
|
||||
|
||||
|
||||
def update_section_ids():
|
||||
plexpy.CONFIG.UPDATE_SECTION_IDS = -1
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue