diff options
| author | Chris Lu <chrislusf@users.noreply.github.com> | 2021-07-06 00:28:07 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-06 00:28:07 -0700 |
| commit | a6d73e0a6639c87a298ee1c0a58743ca84f76379 (patch) | |
| tree | bb929a2cae1ecfa69f164f2e53a4839b2420c173 | |
| parent | 44b50b2fdfc00f8a2990a84a4808827d11124728 (diff) | |
| parent | ed57a55eaec2318bf21693582105660d7612118b (diff) | |
| download | seaweedfs-a6d73e0a6639c87a298ee1c0a58743ca84f76379.tar.xz seaweedfs-a6d73e0a6639c87a298ee1c0a58743ca84f76379.zip | |
Merge pull request #2185 from bingoohuang/master
show RemoteVolumes/EcVolumes only if it is not empty
| -rw-r--r-- | weed/server/volume_server_ui/templates.go | 1 | ||||
| -rw-r--r-- | weed/server/volume_server_ui/volume.html | 5 | ||||
| -rw-r--r-- | weed/util/reflect.go | 40 |
3 files changed, 45 insertions, 1 deletions
diff --git a/weed/server/volume_server_ui/templates.go b/weed/server/volume_server_ui/templates.go index 8034d8218..d85eb247a 100644 --- a/weed/server/volume_server_ui/templates.go +++ b/weed/server/volume_server_ui/templates.go @@ -25,6 +25,7 @@ var funcMap = template.FuncMap{ "join": join, "bytesToHumanReadable": util.BytesToHumanReadable, "percentFrom": percentFrom, + "isNotEmpty": util.IsNotEmpty, } //go:embed volume.html diff --git a/weed/server/volume_server_ui/volume.html b/weed/server/volume_server_ui/volume.html index 973b0bfbe..91809beb0 100644 --- a/weed/server/volume_server_ui/volume.html +++ b/weed/server/volume_server_ui/volume.html @@ -133,6 +133,7 @@ </table> </div> + {{ if isNotEmpty .RemoteVolumes }} <div class="row"> <h2>Remote Volumes</h2> <table class="table table-striped"> @@ -162,7 +163,9 @@ </tbody> </table> </div> + {{ end }} + {{ if isNotEmpty .EcVolumes }} <div class="row"> <h2>Erasure Coding Shards</h2> <table class="table table-striped"> @@ -188,7 +191,7 @@ </tbody> </table> </div> - + {{ end }} </div> </body> </html> diff --git a/weed/util/reflect.go b/weed/util/reflect.go new file mode 100644 index 000000000..77186f67e --- /dev/null +++ b/weed/util/reflect.go @@ -0,0 +1,40 @@ +package util + +import "reflect" + +// IsNotEmpty returns true if the given value is not zero or empty. +func IsNotEmpty(given interface{}) bool { + return !IsEmpty(given) +} + +// IsEmpty returns true if the given value has the zero value for its type. +func IsEmpty(given interface{}) bool { + g := reflect.ValueOf(given) + if !g.IsValid() { + return true + } + + if g.Kind() == reflect.Ptr { + g = g.Elem() + } + + // Basically adapted from text/template.isTrue + switch g.Kind() { + case reflect.Array, reflect.Slice, reflect.Map, reflect.String: + return g.Len() == 0 + case reflect.Bool: + return !g.Bool() + case reflect.Complex64, reflect.Complex128: + return g.Complex() == 0 + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return g.Int() == 0 + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return g.Uint() == 0 + case reflect.Float32, reflect.Float64: + return g.Float() == 0 + case reflect.Struct: + return g.IsZero() + default: + return g.IsNil() + } +} |
