mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 04:52:12 +00:00
Compare commits
6 Commits
aac651fa39
...
1.5.1
Author | SHA1 | Date | |
---|---|---|---|
|
bd01b1e2e4 | ||
|
58a7f6085f | ||
|
3367593b52 | ||
|
1a92ec5d86 | ||
|
7a8d685a71 | ||
|
3c3a8747c3 |
@@ -39,7 +39,8 @@ from typing import Any, Dict, List, Tuple, Optional, Sequence, Callable, Type, \
|
|||||||
@zulip_login_required
|
@zulip_login_required
|
||||||
def stats(request):
|
def stats(request):
|
||||||
# type: (HttpRequest) -> HttpResponse
|
# type: (HttpRequest) -> HttpResponse
|
||||||
return render_to_response('analytics/stats.html')
|
return render_to_response('analytics/stats.html',
|
||||||
|
context=dict(realm_name = request.user.realm.name))
|
||||||
|
|
||||||
@has_request_variables
|
@has_request_variables
|
||||||
def get_chart_data(request, user_profile, chart_name=REQ(),
|
def get_chart_data(request, user_profile, chart_name=REQ(),
|
||||||
|
@@ -4,6 +4,11 @@ All notable changes to the Zulip server are documented in this file.
|
|||||||
|
|
||||||
### Unreleased
|
### Unreleased
|
||||||
|
|
||||||
|
### 1.5.1 -- 2017-02-07
|
||||||
|
|
||||||
|
- Fix exception trying to copy node_modules during upgrade process.
|
||||||
|
- Improved styling of /stats page to remove useless login/register links.
|
||||||
|
|
||||||
### 1.5.0 -- 2017-02-06
|
### 1.5.0 -- 2017-02-06
|
||||||
|
|
||||||
Highlights:
|
Highlights:
|
||||||
|
@@ -79,8 +79,6 @@ else:
|
|||||||
logging.info("Installing static assets...")
|
logging.info("Installing static assets...")
|
||||||
subprocess.check_call(["cp", "-rT", os.path.join(deploy_path, 'prod-static/serve'),
|
subprocess.check_call(["cp", "-rT", os.path.join(deploy_path, 'prod-static/serve'),
|
||||||
'/home/zulip/prod-static'], preexec_fn=su_to_zulip)
|
'/home/zulip/prod-static'], preexec_fn=su_to_zulip)
|
||||||
# Sets up npm cache
|
|
||||||
setup_node_modules(npm_args=['--production'], copy_modules=True)
|
|
||||||
|
|
||||||
# Our next optimization is to check whether any migrations are needed
|
# Our next optimization is to check whether any migrations are needed
|
||||||
# before we start the critical section of the restart. This saves
|
# before we start the critical section of the restart. This saves
|
||||||
|
@@ -161,10 +161,10 @@ function hover(id) {
|
|||||||
$('#hover_bots_value').hide();
|
$('#hover_bots_value').hide();
|
||||||
}
|
}
|
||||||
// var human_colors = data.points[0].data.x.map(function () {
|
// var human_colors = data.points[0].data.x.map(function () {
|
||||||
// return '#1f77b4';
|
// return '#5f6ea0';
|
||||||
// });
|
// });
|
||||||
// var bot_colors = data.points[0].data.x.map(function () {
|
// var bot_colors = data.points[0].data.x.map(function () {
|
||||||
// return '#ff7f00';
|
// return '#b7b867';
|
||||||
// });
|
// });
|
||||||
// human_colors[data.points[0].pointNumber] = '#185a88';
|
// human_colors[data.points[0].pointNumber] = '#185a88';
|
||||||
// bot_colors[data.points[0].pointNumber] = '#cc6600';
|
// bot_colors[data.points[0].pointNumber] = '#cc6600';
|
||||||
@@ -173,12 +173,12 @@ function hover(id) {
|
|||||||
// Plotly.restyle(id, update_human, 0);
|
// Plotly.restyle(id, update_human, 0);
|
||||||
// Plotly.restyle(id, update_bot, 1);
|
// Plotly.restyle(id, update_bot, 1);
|
||||||
// var legendBoxes = document.getElementById(id).getElementsByClassName("legendbar");
|
// var legendBoxes = document.getElementById(id).getElementsByClassName("legendbar");
|
||||||
// Plotly.d3.select(legendBoxes[0]).style("fill", "#1f77b4");
|
// Plotly.d3.select(legendBoxes[0]).style("fill", "#5f6ea0");
|
||||||
// Plotly.d3.select(legendBoxes[1]).style("fill", "#ff7f00");
|
// Plotly.d3.select(legendBoxes[1]).style("fill", "#b7b867");
|
||||||
});
|
});
|
||||||
// myPlot.on('plotly_unhover', function () {
|
// myPlot.on('plotly_unhover', function () {
|
||||||
// var update_human = {marker:{color: '#1f77b4'}};
|
// var update_human = {marker:{color: '#5f6ea0'}};
|
||||||
// var update_bot = {marker:{color: '#ff7f00'}};
|
// var update_bot = {marker:{color: '#b7b867'}};
|
||||||
// Plotly.restyle(id, update_human, 0);
|
// Plotly.restyle(id, update_human, 0);
|
||||||
// Plotly.restyle(id, update_bot, 1);
|
// Plotly.restyle(id, update_bot, 1);
|
||||||
// });
|
// });
|
||||||
@@ -186,8 +186,8 @@ function hover(id) {
|
|||||||
|
|
||||||
function fix_legend_colors() {
|
function fix_legend_colors() {
|
||||||
var legendBoxes = document.getElementById('id_messages_sent_over_time').getElementsByClassName("legendbar");
|
var legendBoxes = document.getElementById('id_messages_sent_over_time').getElementsByClassName("legendbar");
|
||||||
Plotly.d3.select(legendBoxes[0]).style("fill", "#1f77b4");
|
Plotly.d3.select(legendBoxes[0]).style("fill", "#5f6ea0");
|
||||||
Plotly.d3.select(legendBoxes[1]).style("fill", "#ff7f00");
|
Plotly.d3.select(legendBoxes[1]).style("fill", "#b7b867");
|
||||||
}
|
}
|
||||||
|
|
||||||
function populate_messages_sent_over_time(data) {
|
function populate_messages_sent_over_time(data) {
|
||||||
@@ -242,13 +242,13 @@ function populate_messages_sent_over_time(data) {
|
|||||||
var date_formatter = function (date) {
|
var date_formatter = function (date) {
|
||||||
return format_date(date, true);
|
return format_date(date, true);
|
||||||
};
|
};
|
||||||
var hourly_traces = messages_sent_over_time_traces(start_dates, data.realm, 'bar', date_formatter, '#1f77b4', '#ff7f00');
|
var hourly_traces = messages_sent_over_time_traces(start_dates, data.realm, 'bar', date_formatter, '#5f6ea0', '#b7b867');
|
||||||
|
|
||||||
var info = aggregate_data('day');
|
var info = aggregate_data('day');
|
||||||
date_formatter = function (date) {
|
date_formatter = function (date) {
|
||||||
return format_date(date, false);
|
return format_date(date, false);
|
||||||
};
|
};
|
||||||
var daily_traces = messages_sent_over_time_traces(info.dates, info.values, 'bar', date_formatter, '#1f77b4', '#ff7f00');
|
var daily_traces = messages_sent_over_time_traces(info.dates, info.values, 'bar', date_formatter, '#5f6ea0', '#b7b867');
|
||||||
|
|
||||||
info = aggregate_data('week');
|
info = aggregate_data('week');
|
||||||
date_formatter = function (date) {
|
date_formatter = function (date) {
|
||||||
@@ -256,14 +256,14 @@ function populate_messages_sent_over_time(data) {
|
|||||||
return "Week of " + format_date(date, false);
|
return "Week of " + format_date(date, false);
|
||||||
};
|
};
|
||||||
var human_colors = info.dates.map(function () {
|
var human_colors = info.dates.map(function () {
|
||||||
return '#1f77b4';
|
return '#5f6ea0';
|
||||||
});
|
});
|
||||||
var bot_colors = info.dates.map(function () {
|
var bot_colors = info.dates.map(function () {
|
||||||
return '#ff7f00';
|
return '#b7b867';
|
||||||
});
|
});
|
||||||
|
|
||||||
human_colors[info.dates.length-1] = '#66b0e5';
|
human_colors[info.dates.length-1] = '#afb7d0';
|
||||||
bot_colors[info.dates.length-1] = '#ffa64d';
|
bot_colors[info.dates.length-1] = '#dbdcb3';
|
||||||
|
|
||||||
var weekly_traces = messages_sent_over_time_traces(info.dates, info.values, 'bar', date_formatter, human_colors, bot_colors);
|
var weekly_traces = messages_sent_over_time_traces(info.dates, info.values, 'bar', date_formatter, human_colors, bot_colors);
|
||||||
var dates = data.end_times.map(function (timestamp) {
|
var dates = data.end_times.map(function (timestamp) {
|
||||||
@@ -273,7 +273,7 @@ function populate_messages_sent_over_time(data) {
|
|||||||
date_formatter = function (date) {
|
date_formatter = function (date) {
|
||||||
return format_date(date, true);
|
return format_date(date, true);
|
||||||
};
|
};
|
||||||
var cumulative_traces = messages_sent_over_time_traces(dates, values, 'scatter', date_formatter, '#1f77b4', '#ff7f00');
|
var cumulative_traces = messages_sent_over_time_traces(dates, values, 'scatter', date_formatter, '#5f6ea0', '#b7b867');
|
||||||
|
|
||||||
// Generate plot
|
// Generate plot
|
||||||
var layout = messages_sent_over_time_layout();
|
var layout = messages_sent_over_time_layout();
|
||||||
|
@@ -55,7 +55,6 @@ svg {
|
|||||||
|
|
||||||
.page-content {
|
.page-content {
|
||||||
width: calc(100% - 300px - 8px);
|
width: calc(100% - 300px - 8px);
|
||||||
height: calc(100vh - 94px);
|
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
|
@@ -1,11 +1,15 @@
|
|||||||
{% extends "zerver/portico.html" %}
|
{% extends "zerver/base.html" %}
|
||||||
{% block portico_content %}
|
|
||||||
|
{% block customhead %}
|
||||||
|
{% stylesheet 'portico' %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="app portico-page">
|
||||||
|
|
||||||
{{ minified_js('stats')|safe }}
|
{{ minified_js('stats')|safe }}
|
||||||
{% stylesheet 'stats' %}
|
{% stylesheet 'stats' %}
|
||||||
|
|
||||||
<html>
|
|
||||||
<body>
|
|
||||||
<div class="sidebar">
|
<div class="sidebar">
|
||||||
<nav class="nav">
|
<nav class="nav">
|
||||||
<p class="nav-subtitle">Messages Sent</p>
|
<p class="nav-subtitle">Messages Sent</p>
|
||||||
@@ -18,7 +22,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="page-content">
|
<div class="page-content">
|
||||||
<div id="id_stats_errors" class="alert alert-error"></div>
|
<div id="id_stats_errors" class="alert alert-error"></div>
|
||||||
<h1 class="analytics-page-header">Analytics</h1>
|
<h1 class="analytics-page-header">Zulip Analytics for {{ realm_name }}</h1>
|
||||||
<div class="center-container">
|
<div class="center-container">
|
||||||
<div class="center-block">
|
<div class="center-block">
|
||||||
<p class="graph-title" id="messages_timescale_anchor">Messages Sent Over Time</p>
|
<p class="graph-title" id="messages_timescale_anchor">Messages Sent Over Time</p>
|
||||||
@@ -79,7 +83,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
||||||
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@@ -1,2 +1,2 @@
|
|||||||
ZULIP_VERSION = "1.5.0"
|
ZULIP_VERSION = "1.5.1"
|
||||||
PROVISION_VERSION = '4.4'
|
PROVISION_VERSION = '4.4'
|
||||||
|
Reference in New Issue
Block a user