Archived
Merge branch 'pr/711'
* pr/711: Asset update Move function-specific constants to the top and rename debouncedFcts Improve debounce functionality of REST requests
This commit is contained in:
commit
5144330807
2 files changed
+62
-69
No files matched your search
+1
-1
@@ -27,7 +27,7 @@ func Assets() map[string][]byte {
|
||||
bs, _ = ioutil.ReadAll(gr)
|
||||
assets["angular/angular.min.js"] = bs
|
||||
|
||||
bs, _ = base64.StdEncoding.DecodeString("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 truncated
|
||||
bs, _ = base64.StdEncoding.DecodeString("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 truncated
|
||||
gr, _ = gzip.NewReader(bytes.NewBuffer(bs))
|
||||
bs, _ = ioutil.ReadAll(gr)
|
||||
assets["app.js"] = bs
|
||||
|
||||
+61
-68
@@ -9,6 +9,9 @@
|
||||
|
||||
var syncthing = angular.module('syncthing', ['pascalprecht.translate']);
|
||||
var urlbase = 'rest';
|
||||
var requestTimeout = 300000; // Retry the REST request after 5 minutes without reply
|
||||
var refreshTimeout = 5000; // Do not refresh the generic status faster than 5 seconds
|
||||
var refreshQuickTimeout = 500; // Do not refresh the quick stats faster than 500 milliseconds
|
||||
|
||||
syncthing.config(function ($httpProvider, $translateProvider) {
|
||||
$httpProvider.defaults.xsrfHeaderName = 'X-CSRF-Token';
|
||||
@@ -249,19 +252,19 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
|
||||
});
|
||||
});
|
||||
|
||||
var debouncedFuncs = {};
|
||||
var nextCall = {};
|
||||
|
||||
function refreshRepo(repo) {
|
||||
var key = "refreshRepo" + repo;
|
||||
if (!debouncedFuncs[key]) {
|
||||
debouncedFuncs[key] = debounce(function () {
|
||||
$http.get(urlbase + '/model?repo=' + encodeURIComponent(repo)).success(function (data) {
|
||||
$scope.model[repo] = data;
|
||||
console.log("refreshRepo", repo, data);
|
||||
});
|
||||
}, 1000, true);
|
||||
if (nextCall[key] && nextCall[key] > Date.now()) {
|
||||
return;
|
||||
}
|
||||
debouncedFuncs[key]();
|
||||
nextCall[key] = Date.now() + requestTimeout;
|
||||
$http.get(urlbase + '/model?repo=' + encodeURIComponent(repo)).success(function (data) {
|
||||
nextCall[key] = Date.now() + refreshTimeout;
|
||||
$scope.model[repo] = data;
|
||||
console.log("refreshRepo", repo, data);
|
||||
});
|
||||
}
|
||||
|
||||
function updateLocalConfig(config) {
|
||||
@@ -292,7 +295,13 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
|
||||
}
|
||||
|
||||
function refreshSystem() {
|
||||
var key = "refreshSystem"
|
||||
if (nextCall[key] && nextCall[key] > Date.now()) {
|
||||
return;
|
||||
}
|
||||
nextCall[key] = Date.now() + requestTimeout;
|
||||
$http.get(urlbase + '/system').success(function (data) {
|
||||
nextCall[key] = Date.now() + refreshQuickTimeout;
|
||||
$scope.myID = data.myID;
|
||||
$scope.system = data;
|
||||
console.log("refreshSystem", data);
|
||||
@@ -305,34 +314,40 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
|
||||
}
|
||||
|
||||
var key = "refreshCompletion" + node + repo;
|
||||
if (!debouncedFuncs[key]) {
|
||||
debouncedFuncs[key] = debounce(function () {
|
||||
$http.get(urlbase + '/completion?node=' + node + '&repo=' + encodeURIComponent(repo)).success(function (data) {
|
||||
if (!$scope.completion[node]) {
|
||||
$scope.completion[node] = {};
|
||||
}
|
||||
$scope.completion[node][repo] = data.completion;
|
||||
|
||||
var tot = 0,
|
||||
cnt = 0;
|
||||
for (var cmp in $scope.completion[node]) {
|
||||
if (cmp === "_total") {
|
||||
continue;
|
||||
}
|
||||
tot += $scope.completion[node][cmp];
|
||||
cnt += 1;
|
||||
}
|
||||
$scope.completion[node]._total = tot / cnt;
|
||||
|
||||
console.log("refreshCompletion", node, repo, $scope.completion[node]);
|
||||
});
|
||||
}, 1000, true);
|
||||
if (nextCall[key] && nextCall[key] > Date.now()) {
|
||||
return;
|
||||
}
|
||||
debouncedFuncs[key]();
|
||||
nextCall[key] = Date.now() + requestTimeout;
|
||||
$http.get(urlbase + '/completion?node=' + node + '&repo=' + encodeURIComponent(repo)).success(function (data) {
|
||||
nextCall[key] = Date.now() + refreshTimeout;
|
||||
if (!$scope.completion[node]) {
|
||||
$scope.completion[node] = {};
|
||||
}
|
||||
$scope.completion[node][repo] = data.completion;
|
||||
|
||||
var tot = 0,
|
||||
cnt = 0;
|
||||
for (var cmp in $scope.completion[node]) {
|
||||
if (cmp === "_total") {
|
||||
continue;
|
||||
}
|
||||
tot += $scope.completion[node][cmp];
|
||||
cnt += 1;
|
||||
}
|
||||
$scope.completion[node]._total = tot / cnt;
|
||||
|
||||
console.log("refreshCompletion", node, repo, $scope.completion[node]);
|
||||
});
|
||||
}
|
||||
|
||||
function refreshConnectionStats() {
|
||||
var key = "refreshConnectionStats"
|
||||
if (nextCall[key] && nextCall[key] > Date.now()) {
|
||||
return;
|
||||
}
|
||||
nextCall[key] = Date.now() + requestTimeout;
|
||||
$http.get(urlbase + '/connections').success(function (data) {
|
||||
nextCall[key] = Date.now() + refreshQuickTimeout;
|
||||
var now = Date.now(),
|
||||
td = (now - prevDate) / 1000,
|
||||
id;
|
||||
@@ -356,7 +371,13 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
|
||||
}
|
||||
|
||||
function refreshErrors() {
|
||||
var key = "refreshErrors"
|
||||
if (nextCall[key] && nextCall[key] > Date.now()) {
|
||||
return;
|
||||
}
|
||||
nextCall[key] = Date.now() + requestTimeout;
|
||||
$http.get(urlbase + '/errors').success(function (data) {
|
||||
nextCall[key] = Date.now() + refreshQuickTimeout;
|
||||
$scope.errors = data.errors;
|
||||
console.log("refreshErrors", data);
|
||||
});
|
||||
@@ -373,8 +394,14 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
|
||||
});
|
||||
}
|
||||
|
||||
var refreshNodeStats = debounce(function () {
|
||||
var refreshNodeStats = function () {
|
||||
var key = "refreshNode";
|
||||
if (nextCall[key] && nextCall[key] > Date.now()) {
|
||||
return;
|
||||
}
|
||||
nextCall[key] = Date.now() + requestTimeout;
|
||||
$http.get(urlbase + "/stats/node").success(function (data) {
|
||||
nextCall[key] = Date.now() + refreshTimeout;
|
||||
$scope.stats = data;
|
||||
for (var node in $scope.stats) {
|
||||
$scope.stats[node].LastSeen = new Date($scope.stats[node].LastSeen);
|
||||
@@ -382,7 +409,7 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
|
||||
}
|
||||
console.log("refreshNodeStats", data);
|
||||
});
|
||||
}, 500);
|
||||
}
|
||||
|
||||
$scope.init = function () {
|
||||
refreshSystem();
|
||||
@@ -995,40 +1022,6 @@ function isEmptyObject(obj) {
|
||||
return true;
|
||||
}
|
||||
|
||||
function debounce(func, wait) {
|
||||
var timeout, args, context, timestamp, result, again;
|
||||
|
||||
var later = function () {
|
||||
var last = Date.now() - timestamp;
|
||||
if (last < wait) {
|
||||
timeout = setTimeout(later, wait - last);
|
||||
} else {
|
||||
timeout = null;
|
||||
if (again) {
|
||||
again = false;
|
||||
result = func.apply(context, args);
|
||||
context = args = null;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
return function () {
|
||||
context = this;
|
||||
args = arguments;
|
||||
timestamp = Date.now();
|
||||
var callNow = !timeout;
|
||||
if (!timeout) {
|
||||
timeout = setTimeout(later, wait);
|
||||
result = func.apply(context, args);
|
||||
context = args = null;
|
||||
} else {
|
||||
again = true;
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
}
|
||||
|
||||
syncthing.filter('natural', function () {
|
||||
return function (input, valid) {
|
||||
return input.toFixed(decimals(input, valid));
|
||||
|
||||
Reference in new issue
Block a user