Browse Source

Show 'this node' in GUI

Jakob Borg 12 years ago
parent
commit
f0b18685a5
3 changed files with 19 additions and 9 deletions
  1. 1 0
      gui.go
  2. 16 8
      gui/index.html
  3. 2 1
      main.go

+ 1 - 0
gui.go

@@ -75,6 +75,7 @@ func restGetConnections(m *model.Model, w http.ResponseWriter) {
 
 func restGetConfig(w http.ResponseWriter) {
 	var res = make(map[string]interface{})
+	res["myID"] = myID
 	res["repository"] = config.OptionMap("repository")
 	res["nodes"] = config.OptionMap("nodes")
 	w.Header().Set("Content-Type", "application/json")

+ 16 - 8
gui/index.html

@@ -54,7 +54,7 @@ html, body {
                             <div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100"
                                 ng-class="{'progress-bar-success': model.needBytes === 0, 'progress-bar-info': model.needBytes !== 0}"
                                 style="width: {{100 * model.inSyncBytes / model.globalBytes | number:2}}%;">
-                                 {{100 * model.inSyncBytes / model.globalBytes | alwaysNumber | number:0}}%
+                                {{100 * model.inSyncBytes / model.globalBytes | alwaysNumber | number:0}}%
                             </div>
                         </div>
                         <p ng-show="model.needBytes > 0">Need {{model.needFiles | alwaysNumber}} files, {{model.needBytes | binary}}B</p>
@@ -99,25 +99,33 @@ html, body {
                     <div class="panel-heading"><h3 class="panel-title">Cluster</h3></div>
                     <table class="table table-condensed">
                         <tbody>
-                        <tr ng-repeat="(node, address) in config.nodes" ng-class="{'text-primary': !!connections[node]}">
+                        <tr ng-repeat="(node, address) in config.nodes" ng-class="{'text-primary': !!connections[node], 'text-muted': node == config.myID}">
                             <td><abbr class="text-monospace" title="{{node}}">{{node | short}}</abbr></td>
                             <td>
-                                <span ng-show="!!connections[node]">
+                                <span ng-show="node == config.myID">
+                                    <span class="glyphicon glyphicon-ok"></span>
+                                    (this node)
+                                </span>
+                                <span ng-show="node != config.myID && !!connections[node]">
                                     <span class="glyphicon glyphicon-link"></span>
                                     {{connections[node].Address}}
                                 </span>
-                                <span ng-hide="!!connections[node]">
+                                <span ng-show="node != config.myID && !connections[node]">
                                     <span class="glyphicon glyphicon-cog"></span>
                                     {{address}}
                                 </span>
                             </td>
                             <td class="text-right">
-                                <abbr title="{{connections[node].InBytesTotal | binary}}B">{{connections[node].inbps | metric}}b/s</abbr>
-                                <span class="text-muted glyphicon glyphicon-cloud-download"></span>
+                                <span ng-show="node != config.myID">
+                                    <abbr title="{{connections[node].InBytesTotal | binary}}B">{{connections[node].inbps | metric}}b/s</abbr>
+                                    <span class="text-muted glyphicon glyphicon-cloud-download"></span>
+                                </span>
                             </td>
                             <td class="text-right">
-                                <abbr title="{{connections[node].OutBytesTotal | binary}}B">{{connections[node].outbps | metric}}b/s</abbr>
-                                <span class="text-muted glyphicon glyphicon-cloud-upload"></span>
+                                <span ng-show="node != config.myID">
+                                    <abbr title="{{connections[node].OutBytesTotal | binary}}B">{{connections[node].outbps | metric}}b/s</abbr>
+                                    <span class="text-muted glyphicon glyphicon-cloud-upload"></span>
+                                </span>
                             </td>
                         </tr>
                         </tbody>

+ 2 - 1
main.go

@@ -68,6 +68,7 @@ const (
 )
 
 var (
+	myID      string
 	config    ini.Config
 	nodeAddrs = make(map[string][]string)
 )
@@ -113,7 +114,7 @@ func main() {
 		fatalErr(err)
 	}
 
-	myID := string(certId(cert.Certificate[0]))
+	myID = string(certId(cert.Certificate[0]))
 	infoln("My ID:", myID)
 
 	if opts.Debug.Profiler != "" {