Archived
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 commit5144330807, reversing changes made toc34f3defe1. Conflicts: auto/gui.files.go
This commit is contained in:
1 parent
a502836002
commit
b0b34236e3
2 files changed
+69
-62
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("H4sIAAAJbogA/+w9f3fbNpL/+1MgulwlJQrtJG3eXlynlzrJnrdpkrOT7r3nuvdoCZJYU6RKUna0jb/7zQwAEj8pyk6z2/dOr40lAhgMBoP5hQG4u8sO8+W6SGbzig0Oh+zR3sOv2d/ii/ycfZ8XMxZnE6iRVUVyvqryomSDknNWzTk7fPvm/fHR9x/evz0+YdMk5cNoB8A9T1NG4EpW8JIXl3wSsQ8lZ/kUmiUlK/NVMeZsnE84g5+z/JIXGZ+w8zV0xn48ev+grNYpR1hpMuZZid3FFRtD6Tln03wFKCUZ4fD66PDlm5OX1H20s7N779cyTbKKnRf5FfT9lFXFio+gr6xKshVXv5fpqsT/xW92bxdaztL8PE7Z3adsGqclVIqz2SqNi/o3ACnzlNe/L+M0mbyGWqV8hHB2+iv4UgK5xlV/f2fnMi5Yuc7GMPJsxg4U0GiRT1YpH/Trsv6InfaXcTmO02XBx/Mqqoo4K9O44v2z4T4BWhXpeQzgD1gfSIvw8WnBf1vBr/fJguerCgof7+FnnwEBj3lVrIlSxy9P3quqLJ5WvGDfsAUQpeIlu0qqObYt+DJdS6BT6GLeAP1GgXyRsyyvVAWCPeMZhwHDsONqVQIxSgQPk5ZBHyUHwk1KHep/r5LxhQE6BPk3rElwLbB7e4B8miYK+k5NyAgeTJPZYLqCB0mescHdeVUt3xX5ZTLhxYjdrQmrng3Z7zsMPkbFaMKn8SqtyuhjWUz/i8fw7E28IOr/z4PDk+NXD97nFzyDWdjQ9jDPLxKu2hotRVMHoQiY6AQGnYxfAWOXr3PsfCCQxA9wyDT5+JT1U+CnXfznQX9Ul5arqSiNfi3zrE/Pr4GF8H+TTlWRpylA7r+85Fl1WBUpsKFGuHKcL4HTaWw1kehhlMJsUCsYU7ZKU0EFnGQsOXoBj/fk+GgNrMZjXpavMnjedDCJq1jBxQ8wwd/nPGMn9YpBPo8LmP2rOVCCeCLN4fkSEMdyGETGBTSQJUmmg1oW+Qzal9RKSgQGFcscZmIJ9J7mxQKlVLUqspLFIPv2QLwl2Zg60kHNafpLNo9LkEGA4RSkxxyEFq4cgi+gCKkGcIYjUZTlDAcZ6cDeoxSEhZzAWk/XbMFh9oWIQ0DaiOreUJBWI5LFVAXa6QCvoB6unHhcrQgkUBvGPV2lTb/JlA3u2PTGDy+KvHiVibnYN4rEmJpn1zv1V8kFd/kiqQb9D0dvM5gO3h/u7xg9Sl54xvbsbokqMAEv4/FcW6scWcquix8pfaM0nw16VKs3YvQ3SibqW7VGdhXfPeNxEHdaWQ2uh22D15cA9nZKY0p5NoOJf8AenjWN6zVhNwXkNZLBLEuxqJHEpgatxmjGq4HSB/dZf5fQL78j7j3owyPR5dAhQCSX4qBekp46xBQDyRo6EUYoeuWDa219y6qtq9vhmenUYZrbUyBNAPzBw/7nH/nDPWfoW2LShoHTc4u4ruVju8jWdR18T/NxjLUUOXHeQJNcvoBiIa7VUxjQ2x/gEVpHzdMsvkxmACGbPb+K1zjVaPU05TnJAPe5lOHCAJJluioZ54tlygn/A/b79b5Zhso89PwoQ0oYiDblUoqWbmOiMT4/PTOeg1HGU7f6Yk1Lt983nmZQ2QMDlE6Vj/P0EMyUGSgIgxqyDphZeVEB2WO3M1H2DqYl4VfB1p5BgVmevcSBuaiulrMC9NdRNs097ci4Eo+DPN0jI6M3rBm44TgsKC0l/iqRmmqaFGBuYpVVPOPKagezrULtjLYO2f34EEyeol8qPa1DI9WYoIIWdg96EnED9IqDorzkLL6MkzQ+Bx0BGpZajFiPZz0dVInSWnaoLIIrsCPZIq7Gc6rOgILw98GHE1Awwuro/WP+4P3fe1RThyYaAduv6yqoolEV4+/DN72okWzCNMpmI9EMVkMjXEAPsgFWSGgdwp9vqW4ptQk8uX/floJYAapTvdPkzNRcQvmC2JDq6Fv2KKBVyTGy1J7xS6ELfTUuTwQeF1jjGh8AU5YJUB+LfV2R4cMFutKyaCZ/F2XErihD60ZMyjlxTJpfafyggRsDb0bs72gyLZZxAUZbLg1EaICFDDzLEpEj15PXLOMFhoZbzUpgb/JUs57URx8k0EP/GVX5a+z4EDoeeAwPnBGjvpyZZ0ybJx/h8COtS6M9rDH+8e2UpnnIDg5qCW5MJePombZCTXVo5jSGoAatJDVSxTT1KA/YQ9/gGgWFPk/d7HTvzENC2x41Ubk2JBAw0XkMviMgA+uR+JeA88lOoG9c/Eq9K5Pk7uAKCJNfDaNz+Dvon3NYqnyVpeCRGXpXH5ujJxvt1ACWtlCeDXq1YhY640SI2F4IvBIkaE2qliD94wIM6WGEJfuWDe4uSGvoVGXfoqSNa8b55HmjUuva/WLRB2fzBU81HxQeTpJCPgdTMCmGeimaNViI6lt/XuWr8RwLPiwnGPkYKWvLwuNoHMCi4Iv8knsRcYsUFjDBckY9mFDUISkvGlzsCWzcH33KyAgEn60wiI8TIu2kr75idxrTyJ6hFt8LYYQbTvLxaoGeRc0bBcfBDZAL9Un2SQbdyzK8Or2SHHqSgRlvFdUmYMPyzYBcK9CAOuj/W8arq7y4IDOmP0R7LE4H/TmYCQ4OULuBuLluOV9VOM3hmn6mV/MrXZVuE2wJgE+f2B1BmC0m2Z6JxldyaG0Rkzz9MH8E6dyNFhiW4tK47UAOFFYTYehCCTnlJqa66S0caLRvzxys/dXIeuXS/wYN3GkIr2FhpEeo74SUufU4ZMTyGDAa1LjpXi0oJNEV03wdFS0F2w8tHuFPkK0LZkg5J4MGI0UIjIJJke1JkyegU+MNwvBEVRD24dQjYwjvwxonVZEAHb0YMX00NWUdJanR9hiEbMW/BHHDg6BaOBIXfy/OONgXSSldxk4YAxdymE3X2TxVA4iSyZmDJPaEC6gcbMLncAtkaMFvQCWwnkLVDdVa95OdL8unbG/klOSrKlR0lH2/rnj5Pq/i1Fvh7araUOP5ZIJh3Kc1c0QxPDHrXXtVVLPaNo/ufyuBwMO9vSDoFqFySAEJitR75syeLiOKEb1d0gxEH46fg+m3rDBsgIa3PWkgRo6m4Cij1yviBKhN6yhxxkFIgEMbKyAZiJYJH6OamIxsSCBkrmLwhsFpisuL2gXH34v4AnwgNp7nyRg8rO9XJJImedavqI0NCpqcr2YIYsEmqwKRQuMgiVOM562WI1bmJNR4hWBpO4QkmgMIkKiSBVcOmwgfXCZlUkViZ0DsBAoIIBuXGBl3EVKBcoIF1RY5CdM4w93Dgs3hn5LFs3yEWMnR2zBopwzNpx2jBGUVofUTYoWaR9lbAiuUNmk85oPdwXdP4b9fPkX39n8u7w2bRvDr5wP4Z3D6y/7ZvWF07+7w0y/w7+6I9e4+7Hm8qTtNY58TZaEASPWaBgc9dp9hiA9E4hU4EvdZb38Rf3wATERFj/fYPfboa/jn8ZM9y9cLeo+I1H2NDN/qPTxgChr8oaBpwP9EU2TlNUBqBFp9vZaFeAJufBfZuSIlRRaBaDhQgkLX3/4wr1i9u+RF+CJjvt0Wf/iSBJP+rEXbUiSWf6wO0WjQwnZ1v7rCJNVnadoLjj5pT6uGbIA1TctMdXIKDc7QWzEfPNOmfLNdq76ZMA5MxjR3svc3kJ9swe8Qb9rv4BmGcD4cH6ElkGcw2WL0XWdmA2b6drhX1wjTlOwwOaP7QdfKIP6IaC9sFZ+ZZU2vy7GCcexpBrVwqILnd5Ly5WJZrd+e/wra3tQ+Bp9bQXfxZd9fXqut1wm4yNlJVTT7W94aUo9Hv+YJrNMR63u6VlF1Ew7ZtQ4a2XbWrmsTmNbuLcyCYQC3ElS0QEdEKD0DVtF8/PtjvLQsA2QQkK95kfBS60TMYwScWg50OEMPNWwRgB9HRHg5WrgXN/IstE5avAtP19fWCjCN3JqnA3MrtxYNW8x1a/3y8mQNPLpwIm2mtBSVen8qOVkSzp01VBc5qCfw+IWh2DIjvYbfvZUEYp2FpaR9Z0Hp5z/JdXbEBqP/aHNr+G8RrHEZpekVlSuB/zPq2EZYfodjIEUrB9P/6p+vek3P15DrjserMZ5dVdsUdanZ0s7Q9lrpvusygBbBrT3XuR1T+ohld9f7gePFErfAthgikgRbITP3hPLqhexv/+6fO3z84ADuHwQpAV2euWBwcNDo4Q1oGwncMZQMPe8iKIusPhmhLbsRa5b7KEjBLcSIipTIAE6rnrBq/7kUhhYU+kJag3ya/Mpo5y6VCrMpBljvQZ23MgTWQBfTrW0kVuFHS3UBGJ4Fl1BasW90auYogS4CK+TtVfauAIYqqjU0c6ZJfbZaYMU6AIVyy5LJWUQBOED/x7iaR+DDD/ZG7C/gYw/qGnq0DajkifLZtZCA1cTjehs9iwBfa9dGHC/ct1Et2Pk1G1NuxcDZMgkSxbNN7R/C5v3sgMeuJRR1s1gaKVBubbbQ3swmMSMq/bmki0i++rLmaJ3wRetX/No8fZK62xuc5JUbmY8t8aPOlHAdf0+Ka4ANobZ/HP9SIa4mwGXvlxh5pe1rAtv0/kxWdm+XUvB20SDxZtj9EdEqlfXnCrLa9iQ7vzE+qUWLUU3l0nZ7HZfVCW5JgKrlV4TcoKVaOE3bV/tFvC7JEFCQh4228UKXJgL8+cuTr50Q98blUzPhRkmgJUYEGdaKNnj2MYX08BWYBmj77uKGhS0z47Zd1CqhTq5n+XMrkSI2rrbt2EiZNZm2Q58yAXbbTs28WbtXmbDdkqbeln1rsI+5jaEOQN2ChTZwijIuAt0v8xORm6Bj4Aub4MmJfOqNgIP72V9lEz7Fzce+X6xijYsMs3K8URUnPUSEIpOM0lDZHewiCLms8uUSevZCVpUweOHpgZJKgrQ5TOPyC5AmAX75A+gywcydwg+YDmrJhJoOtFG4yCbQJpmkPLine 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
@@ -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));
|
||||
|
||||
Reference in new issue
Block a user