Better version change detection (fixes #808, fixes #810)

This commit is contained in:
Audrius Butkevicius committed 2014-10-08 21:20:54 +01:00
1 parent d3a9b126a6
commit e50469d84e
2 files changed
+22 -12

No files matched your search

+21 -11
View File
@@ -20,10 +20,24 @@
var syncthing = angular.module('syncthing', ['pascalprecht.translate']);
var urlbase = 'rest';
var guiVersion = null;
syncthing.config(function ($httpProvider, $translateProvider) {
$httpProvider.defaults.xsrfHeaderName = 'X-CSRF-Token';
$httpProvider.defaults.xsrfCookieName = 'CSRF-Token';
$httpProvider.interceptors.push(function() {
return {
response: function(response) {
var responseVersion = response.headers()['x-syncthing-version'];
if (!guiVersion) {
guiVersion = responseVersion;
} else if (guiVersion != responseVersion) {
document.location.reload(true);
}
return response;
}
};
});
$translateProvider.useStaticFilesLoader({
prefix: 'lang/lang-',
@@ -164,17 +178,13 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
return;
}
if (restarting) {
document.location.reload(true);
} else {
console.log('UIOnline');
$scope.init();
online = true;
restarting = false;
$('#networkError').modal('hide');
$('#restarting').modal('hide');
$('#shutdown').modal('hide');
}
console.log('UIOnline');
$scope.init();
online = true;
restarting = false;
$('#networkError').modal('hide');
$('#restarting').modal('hide');
$('#shutdown').modal('hide');
});
$scope.$on('UIOffline', function (event, arg) {
+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("H4sIAAAJbogA/+w9a3fbtpLf/SsQbbaSEoWyk96cu3GcruvErW/TJMePdntc3z2UCFmsKVLlw45u4/++M3iQeFJU7GZ79qxOG0sEMBgMBvPCAByPyUG2XOXx5bwkg4Mhebq98zX5R3iVTci3WX5JwjSCGmmZx5OqzPKCDApKSTmn5OD9u9Pjo2/PTt8fn5BZnNBhsDUew3/kdB4XZJlnl3m4IPB1lkOTIpuVN2FOX5BVVpFpmJKcRnHBAVMSl9jVOMvJIovi2QoeIKgqjWjOuitpvihINmM/vnt3Rr6jKc3DhHyoJkk8JW/jKU0LSkLoGp8UcxqRyYpVPwQEENqJwIEcZgA4LOMsHREaQ5WcXNO8gN/kmexDABwRwGkQloh2TrIlNhoisDBdkSQsm6a+4TejjEicMtjzbIlEBKgw7ps4SciEkqqgsyoZEahJfj46/f792SmC23/3C/l5//h4/93pL7tQuZxnUIFeUw4qXiyTGCDDuPIwLVeI/o9vjg++h/r73x69PTr9BUaAgA6PTt+9OTkhh++PyT75sH98enRw9nb/mHw4O/7w/uRNQE7E1LaQd8ZhLTKgYkTLME4KOe5fYF4LQC6JyDy8pjC/UxpfA2ohmQKPdZm7JEsvERSOEio3dAzI0YykWTkiyH4v52W5fDEe39zcBJdpFQCjjhMOoxi/Cra2xo9+K5I4Lckkz24Kmr8gZV7BVE6Bk+O0ovL3MqkK/J//Jo9gHI8uk2wCqD18QWZhgvMfppdVEub1bwBSZAmtf1+HSRy9hVqFeIRwtvownQQnflr2d7e2rsOcFKt0CoNKL8meBBoAt1cJHfTrsv6InPeXYTENkyVQcF4GJcxrgZzWvxjuMkBVnkxCAL9H+jktGPy6fQDozeLLwayCB8jQg4dIrQ95dh3DWhqRhzU8+WxI/tgi8NEqBhGdhVVSFsHHIp99T0N49i5csE7/68nByfHhk9PsiqbQ+Zq2B1l2FVPZVmvJm1oIBUC7kxLW5/QQ5ErxNsPOBxxJ/ABhZvHHF6SfABnH+M+T/qguLaoZLw1+K7K0z57fAuXwf51OZZ4lCUDuv4HVVB6UeQLUVwhXAN/CBLOx1URiD4MkLErWCsaUVknCqYCTgyVHr+Hxthgfm/pqOqVFcZjC86YDEEGhhIsf4Pyf57CuT2pGwekN87IgN3OgBFs/uEbIEhDHchhESjk0WCxxqoJiSwc6Za3EQiBQschgJpZAb1jLIFJzWlZ5WsAqfbq9DeI9TqesIxXUnE1/Aeu6AEkFGM5g0aCAFQuVCiiAT0QRznDEi9KM4CADFRiTj8C/MbB4siILCrPPhSECUkZU9wajoOWI6SJWBdqpAG+gHsgGEk7LioEEasO4QZg2/cYzMnhg0hs/NM+z/DDlc7GrFfExNc9ut+qvggse0kVcDvpnR+9TmA7aH+5uaT0KXnhFts1uGVVgAt6E07myVlGsl2Zd/AihEyTZ5aDHavVGTAmUQRzJb+UK2ZV/d4zHQtxqZTS4HbYNXl0C2Ns5G1NC00uY+Cdk56JpXK8Jsykgr5AMZvk0XlDQbwpJTGqw1Rhc0nIgxeBj0h8z9ItvGPfu9eER73JoESAQS3FQL0lHHcYUA8EaKhFG5G/A3PzBrbK+RdXW1W3xzGxmMc3dKZDEAH5vp3//I9/Ztoa+ISZtGFg9t4jrWj62i2xV18H3JJsyk0+SE+cNNMn1ayjm4lo+hQG9/wEeoVHQPE3D6/gSIKSX+zfhCqcalX1TnjEZYD8XMpzrfVGmqpJpBiYcZfjvkT9ud/UyVOa+50cpUkJDtCkXUrSwGzMa4/PzC+052CI0sasvVmzp9vva04heg8XlgAJqp8ymWXIwB70MKkKjh6iT02WWl0D40O6Ol32AiYnpjbP1LEuYNrKagm2YvsHB2ehWSzAjI3qUzjJNY8uWYG1IgF7O7jFTozes2bjhOywoDFV+GAt9NYvzoiRYpQovqfQBwEUpUUejxVN7KmD45P1CamsVGvcWUE1z6wfN6bABekO50R1eg0keTkBTgJ5lLUakR9OeCqpAmS06lHYBc0IWYTmds+ro9MDfJ2cnoGa47dH71/zJ6c89VlOFxhsB86/qKqioUSHj74N3vaCRb9xASi9HvBmsiUbEzNDRwgoxW43w5yWrWwidAk8ePzZlIVaA6qzeeXyh6y+ugkF4CKX0kjz16FbmFRjKT/sl0YW+Gns/ALcXHECFD5ZZUcRAfSx2dcXMH8rRFfZFM/ljlBRjXoY2Tu0ZAsck2Y3CDwq4KfBmQH5Gw2mxRN+2zISZCA2wsPZshf8lWcYJDM23mpXA6qSJYkPJjzpIoIf6Myizt9jxAXQ8cJgfOCNafTEzr4gyTy7C4UfYmFp7WGP04/sZm+Yh2dur5bg2lYSiW9YKNVGh6dPog+q1leRIJdPUo9wjO67BNWoKPZ+62fn2hYOEplWqo3KrSSBgokk4vUJkYD0y/mXAabTl6RsXv1Ty0jB5OLgBwmQ3w2ACfwf9CYWlSqs0Ab9M077q2Cxt2eioBrCwiLJ00KvVM9cbJ1zE9nzgpSBBm1K2BPkf5mBODwMs2TUscXtBGkNnVXYNSpq4ppRG+41irWv380UfXM7XNFE8UXgYxbl4DgZhnA/VUjRusBCVuPq8zKrpHAvOlhG6/SNpcxl4HE09WOR0kV1TJyJ2kcQCJljMqAMTMKZpHhdXDS7mBDZOkDplzBQEzy3XiI8TIqylr74iDxoDyZyhFg8MYfgbRtm0WqB/UfNGTnFwA+RCdZJdkkH1tTTfTq0khh6nYMwbRbUh2LB8MyDbFtSgDvr/ltLyJsuvmCHTH6JVFiaD/hzMBAsHqN1AXF+3mFclTrO/ppvp5fwKh6XbBBsC4NMn8oATZoNJNmei8ZgsWhvEZP6+nz+8dO5GCwxOUWHgdiAHCquIG7tQwlxzHVPVAD8XoQG0cS8svH0VmQVLhScOWrjTMN7C4kiOUOdxSXPnsYBlCjSfHzKcBgp+qo8Liol3RxTPB9GvCmYDouUjvQtm9YJBUsyZaYORIw6QhZcC07cWnoFOmdccliPawns5mDnkDhvHQY1fU1WAO3o9Ivr4anpb6lOh+DGI35J+KZK3DAfr8TG5xuHEnQ/8dVwI57IT7sCnFGbadkvP5VCCOLqwUOV94TIrButxOtgAISYY1qDjWXW+6poKrvtJJ8viBdkeWSVZVfqKjtJvVyUtTrMyTJwV3lflmhr7UYRB3xc1qwQhPNHr3TpVWbMa14/uv0uOwM72thd0i+A5YOELFtd3zJk5XVrMI3jPtuCK4Ox4H0zEJe6qMQPdnDQQM0czcKjRO+YxBdS6dUw5Fft+oQSSguiJ6BTVSTQyIYEIugnBawbnKiyualcdfy/CK4pbXPMMODEg31ZMYEVZ2i9ZGxMUNJlUlwhiQaIqR6TQiIjDBKN/1XJEioyJPFqynTPcPGHSzgKEu6LxgkrHjocZruMiLgO+j8Ckp4DA9tIouv4mHBlWZ7CgGtvbg6YpiNoqJ3P4pyDhZTZCrMToTRi/V6Bq2R6oVoKSi6H1E2KF2knaZRwrDPYk4ZQOxoNvXsB///wUPNr9tXg0bBrBr1/34J/B+T93Lx4Ng0cPh5/+Cf+OR6T3cKfn8LoeNI1dzpaBAiDVaxrs9chjggHBIM1uwOF4THq7i/DjE2AiVvRsmzwiT7+Gf5493zZ8Qq+XiUg9VsjwUu3hCZHQ4A8LsXr8VDRZKqehUiPQ6hO2LMQTcPe7yM6KqSxmNfCGAykoVP3uDgrz1Ttm3oYrgubam3EHO5lgUp+16F6mOukkg25odAj/akG+unddiQpVaGjgK4pebE+riizBaxuWp97nObS1lIqjCg5OPG0J//tpzMzCbzhCbBOEphjROTs+QtWfpTCncnBdp8CYCm54CstKzIXNiPjRNqx0oo0Ezbjl4WJkcx+Kbz6MiOm9bbUQs7YbjLm2mZjzkjnfoCkOZPT9QVy8WSzL1fvJb2AA6ApJY30jas+/7LrLa032NgbvOj0p82aDzFlDqPbgtyyGpTsifUfXTVhehySMYAuVaHPj2DYXbOP4DlbD0ItjATpcosWDnQ4CNJsD/NuP4dIwIDgXFko/fFoD4JpioIMZOghjiwf8OEWI086STsod/BOlwzU+ihORW8Nd0WVXzfieiRcbmJoNZ7vNbgl7sgJGXmgizS3KClZxU00htqqYhsDvTvpz0E7h5RJaHOWeJaxuPfLFNy/1XBjWLS9lNqwyig2CJLZyavpGBSU6+EtpqkZ4fMPRY+qqxrT/1Z+ixHTfzxBf1rAdrGM3UjYhzc9tmyK1IRlaVamxu+WEhPMOAhU3y2w3UH6mLD3DsXuBn3rHbbpY4ibTZ5EGiYrtkYF7XML32uozrJw7burHTTz84JAf77XQEZC58ANGgkDznXuZs4CPF0O9gNUYgXsmyyVZlGU6IrqQGLXMxRe2l2pkZfBDRGXWinAlXNJZjrM8iwy3/RsXyWbuErMKBljvSZ3BMQTys0Hb7ldkzImS9AEwdNKxJRGzRF2fJKlTyQLQlO9v0g85TFRerqDZ0Mf4foa3Oa7MVx4oLMsqji4CFlwC9H8My3kA/ukA5vrv4D8O6hpqJAmo5IhgmbWQgGXk4C6tZx68au1ai1H5+9aqeTu/JVOWXzCwtg28RPEIO3sI6/d010QBO9sQzeIpNjYk2P5El/XG03o2NZnqZCDG0fzX+gFxpD7DKGIOVyfZARU7j8X26RyepWdioLZ7HH+pgEYTzrAj5OuNMXc2E0t6GnO14sxqahmCTJiy+b82KoQ119gVrI3TRlTKa9X6NizKE4zUgpSmN0wfDFor+rNd3fVfh6uC6REJfdgIK08PQsfAn78//9qK/63lNmXOWpaOzDFVg3UYIdaSS1UyGr6VY9+HrzpXga7T1+3DrFkSItNo0+UgE5TEShA/N1qMPMC/aLine truncated
bs, _ = base64.StdEncoding.DecodeString("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 truncated
gr, _ = gzip.NewReader(bytes.NewBuffer(bs))
bs, _ = ioutil.ReadAll(gr)
assets["app.js"] = bs