mirror of
https://github.com/octoleo/syncthing.git
synced 2025-04-10 19:41:50 +00:00
Merge remote-tracking branch 'origin/pr/647'
* origin/pr/647: Listen for ConfigSaved event in the UI (fixes #244) Emit ConfigSaved event Save config after updating node name
This commit is contained in:
commit
ac384e8a9c
File diff suppressed because one or more lines are too long
@ -14,6 +14,7 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"code.google.com/p/go.crypto/bcrypt"
|
"code.google.com/p/go.crypto/bcrypt"
|
||||||
|
"github.com/syncthing/syncthing/events"
|
||||||
"github.com/syncthing/syncthing/logger"
|
"github.com/syncthing/syncthing/logger"
|
||||||
"github.com/syncthing/syncthing/osutil"
|
"github.com/syncthing/syncthing/osutil"
|
||||||
"github.com/syncthing/syncthing/protocol"
|
"github.com/syncthing/syncthing/protocol"
|
||||||
@ -260,6 +261,7 @@ func (cfg *Configuration) Save() error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
l.Warnln("Saving config:", err)
|
l.Warnln("Saving config:", err)
|
||||||
}
|
}
|
||||||
|
events.Default.Log(events.ConfigSaved, cfg)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@ const (
|
|||||||
ItemStarted
|
ItemStarted
|
||||||
StateChanged
|
StateChanged
|
||||||
RepoRejected
|
RepoRejected
|
||||||
|
ConfigSaved
|
||||||
|
|
||||||
AllEvents = ^EventType(0)
|
AllEvents = ^EventType(0)
|
||||||
)
|
)
|
||||||
@ -56,6 +57,8 @@ func (t EventType) String() string {
|
|||||||
return "StateChanged"
|
return "StateChanged"
|
||||||
case RepoRejected:
|
case RepoRejected:
|
||||||
return "RepoRejected"
|
return "RepoRejected"
|
||||||
|
case ConfigSaved:
|
||||||
|
return "ConfigSaved"
|
||||||
default:
|
default:
|
||||||
return "Unknown"
|
return "Unknown"
|
||||||
}
|
}
|
||||||
|
61
gui/app.js
61
gui/app.js
@ -237,6 +237,14 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
$scope.$on('ConfigSaved', function (event, arg) {
|
||||||
|
updateLocalConfig(arg.data);
|
||||||
|
|
||||||
|
$http.get(urlbase + '/config/sync').success(function (data) {
|
||||||
|
$scope.configInSync = data.configInSync;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
var debouncedFuncs = {};
|
var debouncedFuncs = {};
|
||||||
|
|
||||||
function refreshRepo(repo) {
|
function refreshRepo(repo) {
|
||||||
@ -252,6 +260,33 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
|
|||||||
debouncedFuncs[key]();
|
debouncedFuncs[key]();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateLocalConfig(config) {
|
||||||
|
var hasConfig = !isEmptyObject($scope.config);
|
||||||
|
|
||||||
|
$scope.config = config;
|
||||||
|
$scope.config.Options.ListenStr = $scope.config.Options.ListenAddress.join(', ');
|
||||||
|
|
||||||
|
$scope.nodes = $scope.config.Nodes;
|
||||||
|
$scope.nodes.forEach(function (nodeCfg) {
|
||||||
|
$scope.completion[nodeCfg.NodeID] = {
|
||||||
|
_total: 100,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
$scope.nodes.sort(nodeCompare);
|
||||||
|
|
||||||
|
$scope.repos = repoMap($scope.config.Repositories);
|
||||||
|
Object.keys($scope.repos).forEach(function (repo) {
|
||||||
|
refreshRepo(repo);
|
||||||
|
$scope.repos[repo].Nodes.forEach(function (nodeCfg) {
|
||||||
|
refreshCompletion(nodeCfg.NodeID, repo);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!hasConfig) {
|
||||||
|
$scope.$emit('ConfigLoaded');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function refreshSystem() {
|
function refreshSystem() {
|
||||||
$http.get(urlbase + '/system').success(function (data) {
|
$http.get(urlbase + '/system').success(function (data) {
|
||||||
$scope.myID = data.myID;
|
$scope.myID = data.myID;
|
||||||
@ -324,31 +359,7 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
|
|||||||
|
|
||||||
function refreshConfig() {
|
function refreshConfig() {
|
||||||
$http.get(urlbase + '/config').success(function (data) {
|
$http.get(urlbase + '/config').success(function (data) {
|
||||||
var hasConfig = !isEmptyObject($scope.config);
|
updateLocalConfig(data);
|
||||||
|
|
||||||
$scope.config = data;
|
|
||||||
$scope.config.Options.ListenStr = $scope.config.Options.ListenAddress.join(', ');
|
|
||||||
|
|
||||||
$scope.nodes = $scope.config.Nodes;
|
|
||||||
$scope.nodes.forEach(function (nodeCfg) {
|
|
||||||
$scope.completion[nodeCfg.NodeID] = {
|
|
||||||
_total: 100,
|
|
||||||
};
|
|
||||||
});
|
|
||||||
$scope.nodes.sort(nodeCompare);
|
|
||||||
|
|
||||||
$scope.repos = repoMap($scope.config.Repositories);
|
|
||||||
Object.keys($scope.repos).forEach(function (repo) {
|
|
||||||
refreshRepo(repo);
|
|
||||||
$scope.repos[repo].Nodes.forEach(function (nodeCfg) {
|
|
||||||
refreshCompletion(nodeCfg.NodeID, repo);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!hasConfig) {
|
|
||||||
$scope.$emit('ConfigLoaded');
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("refreshConfig", data);
|
console.log("refreshConfig", data);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -451,6 +451,7 @@ func (m *Model) ClusterConfig(nodeID protocol.NodeID, config protocol.ClusterCon
|
|||||||
node := m.cfg.GetNodeConfiguration(nodeID)
|
node := m.cfg.GetNodeConfiguration(nodeID)
|
||||||
if node != nil && node.Name == "" {
|
if node != nil && node.Name == "" {
|
||||||
node.Name = name
|
node.Name = name
|
||||||
|
m.cfg.Save()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user