Revert "Merge branch 'pr/711'" (...)

Temporary revert to the old debounce behavior. It's a bit bad and drives
up CPU usage, but mostly shows correct info in the GUI. This will be
improved shortly.

This reverts commit 5144330807, reversing
changes made to c34f3defe1.

Conflicts:
	auto/gui.files.go
This commit is contained in:
Jakob Borg committed 2014-09-24 22:01:30 +02:00
1 parent a502836002
commit b0b34236e3
2 files changed
+69 -62

No files matched your search

+1 -1
View File
@@ -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
+68 -61
View File
@@ -9,9 +9,6 @@
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';
@@ -252,19 +249,19 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
});
});
var nextCall = {};
var debouncedFuncs = {};
function refreshRepo(repo) {
var key = "refreshRepo" + repo;
if (nextCall[key] && nextCall[key] > Date.now()) {
return;
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);
}
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);
});
debouncedFuncs[key]();
}
function updateLocalConfig(config) {
@@ -295,13 +292,7 @@ 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);
@@ -314,40 +305,34 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
}
var key = "refreshCompletion" + node + repo;
if (nextCall[key] && nextCall[key] > Date.now()) {
return;
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);
}
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]);
});
debouncedFuncs[key]();
}
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;
@@ -371,13 +356,7 @@ 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);
});
@@ -394,14 +373,8 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
});
}
var refreshNodeStats = function () {
var key = "refreshNode";
if (nextCall[key] && nextCall[key] > Date.now()) {
return;
}
nextCall[key] = Date.now() + requestTimeout;
var refreshNodeStats = debounce(function () {
$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);
@@ -409,7 +382,7 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
}
console.log("refreshNodeStats", data);
});
}
}, 500);
$scope.init = function () {
refreshSystem();
@@ -1061,6 +1034,40 @@ 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));