diff --git a/borgweb/borg/static/js/index.js b/borgweb/borg/static/js/index.js
index a4cc890..b12ece7 100644
--- a/borgweb/borg/static/js/index.js
+++ b/borgweb/borg/static/js/index.js
@@ -1,26 +1,22 @@
window.addEventListener("DOMContentLoaded", function () {
$.getJSON( "repo_daily.json", function( json ) {
- set_daily_graph(json);
+ draw_time_graph("daily_backup_size", json.repos, json.dates, json.units);
});
}, false);
-function set_daily_graph(repoDict) {
- const labels = repoDict.date_labels;
- const y_units = repoDict.units
-
+function draw_time_graph(chartID, repos, dateLabels, sizeUnits) {
var datasets = []
- repoDict.repos.forEach(function (repo) {
+ repos.forEach(function (repo) {
datasets.push({
label: repo.label,
data: repo.daily_size,
fill: false,
- tension: 0.1,
borderColor: 'rgb(75, 192, 192)'
});
})
const data = {
- labels: labels,
+ labels: dateLabels,
datasets: datasets
};
@@ -32,8 +28,9 @@ function set_daily_graph(repoDict) {
tooltip: {
callbacks: {
label: function (context) {
- if (context.parsed.y !== null) {
- return `${context.parsed.y} ${y_units}`
+ const yValue = context.parsed.y
+ if (yValue !== null) {
+ return `${yValue} ${sizeUnits}`
} else {
return ""
}
@@ -53,7 +50,7 @@ function set_daily_graph(repoDict) {
},
ticks: {
callback: function (value, index, values) {
- return `${value} ${y_units}`
+ return `${value} ${sizeUnits}`
}
}
}
@@ -62,11 +59,7 @@ function set_daily_graph(repoDict) {
}
var myChart = new Chart(
- document.getElementById('backup_csize_hourly'),
+ document.getElementById(chartID),
config
);
}
-
-function getBaseLog(x, y) {
- return Math.log(y) / Math.log(x);
-}
\ No newline at end of file
diff --git a/borgweb/borg/templates/borg/index.html b/borgweb/borg/templates/borg/index.html
index 43898db..0829ff0 100644
--- a/borgweb/borg/templates/borg/index.html
+++ b/borgweb/borg/templates/borg/index.html
@@ -55,7 +55,7 @@
{% endfor %}
-
+
{% else %}
diff --git a/borgweb/borg/views/__init__.py b/borgweb/borg/views/__init__.py
index 5c0e411..3bd35ca 100644
--- a/borgweb/borg/views/__init__.py
+++ b/borgweb/borg/views/__init__.py
@@ -1,3 +1,3 @@
-from .views import index, repo, axes, repo_daily_dict
+from .views import index, repo, axes
from .post import post_repo, post_archive, post_error, post_location
from .json import repo_daily_json
diff --git a/borgweb/borg/views/json.py b/borgweb/borg/views/json.py
index efeb1c5..c56f759 100644
--- a/borgweb/borg/views/json.py
+++ b/borgweb/borg/views/json.py
@@ -1,8 +1,22 @@
+from datetime import datetime, timedelta
from django.http import JsonResponse
from ..models import Repo
-from . import repo_daily_dict
+from ..utility import data
+def repo_daily_dict(repo_list, n_days=14):
+ date_labels = list(reversed([(datetime.utcnow() - timedelta(days=day)).strftime("%d %b") for day in range(n_days)]))
+ max_repo_size = max(repo.latest_archive().cache.unique_csize for repo in repo_list)
+ _, max_unit = data.convert_bytes(max_repo_size)
+
+ repo_dicts = [repo.daily_dict(max_unit, n_days) for repo in repo_list]
+
+ return {
+ "dates": date_labels,
+ "repos": repo_dicts,
+ "units": max_unit
+ }
+
def repo_daily_json(request):
repo_list = Repo.objects.all()
return JsonResponse(repo_daily_dict(repo_list, 31))
diff --git a/borgweb/borg/views/views.py b/borgweb/borg/views/views.py
index bb0f028..31b4de5 100644
--- a/borgweb/borg/views/views.py
+++ b/borgweb/borg/views/views.py
@@ -1,7 +1,5 @@
from django.shortcuts import render, get_object_or_404
-from datetime import datetime, timedelta
from ..models import Repo, Location
-from ..utility import data
def index(request):
@@ -15,20 +13,6 @@ def index(request):
return render(request, 'borg/index.html', context)
-def repo_daily_dict(repo_list, n_days=14):
- date_labels = list(reversed([(datetime.utcnow() - timedelta(days=day)).strftime("%d %b") for day in range(n_days)]))
- max_repo_size = max(repo.latest_archive().cache.unique_csize for repo in repo_list)
- _, max_unit = data.convert_bytes(max_repo_size)
-
- repo_dicts = [repo.daily_dict(max_unit, n_days) for repo in repo_list]
-
- return {
- "date_labels": date_labels,
- "repos": repo_dicts,
- "units": max_unit
- }
-
-
def repo(request, repo_label: str):
s_repo = get_object_or_404(Repo, label__label=repo_label)
return render(request, 'borg/repo.html', {'repo': s_repo})