You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by vo...@apache.org on 2018/11/26 16:03:56 UTC
[drill] 02/15: DRILL-6668: In Web UI,
highlight options that are not default values
This is an automated email from the ASF dual-hosted git repository.
volodymyr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/drill.git
commit 5a8e6d782ace8fe8f3a772b2d05ea5380d7756d3
Author: Kunal Khatua <kk...@maprtech.com>
AuthorDate: Wed Nov 14 22:28:48 2018 -0800
DRILL-6668: In Web UI, highlight options that are not default values
This commit introduces a new button on the options page that allows a user to reset an option to its system default value.
To simplify things, a tooltip is shown when the mouse hovers over the button. If the option value is already default, the button is disabled.
Currently, the Update button redirects to /option/optionName . This change reuses what we already are using to set the default (using AJAX) and auto-refreshing
Switch [Default] label to [Reset]
Patch To Pass StatusResourcesTest
closes #1543
---
.../org/apache/drill/exec/server/rest/StatusResources.java | 11 +++++++++--
exec/java-exec/src/main/resources/rest/options.ftl | 8 ++++++++
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/StatusResources.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/StatusResources.java
index e6b116c..1ebef31 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/StatusResources.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/StatusResources.java
@@ -90,7 +90,7 @@ public class StatusResources {
OptionList optionList = internal ? optionManager.getInternalOptionList(): optionManager.getPublicOptionList();
for (OptionValue option : optionList) {
- options.add(new OptionWrapper(option.name, option.getValue(), option.accessibleScopes, option.kind, option.scope));
+ options.add(new OptionWrapper(option.name, option.getValue(), optionManager.getDefault(option.name).getValue().toString(), option.accessibleScopes, option.kind, option.scope));
}
Collections.sort(options, new Comparator<OptionWrapper>() {
@@ -171,6 +171,7 @@ public class StatusResources {
private String name;
private Object value;
+ private String defaultValue;
private OptionValue.AccessibleScopes accessibleScopes;
private String kind;
private String optionScope;
@@ -178,11 +179,13 @@ public class StatusResources {
@JsonCreator
public OptionWrapper(@JsonProperty("name") String name,
@JsonProperty("value") Object value,
+ @JsonProperty("defaultValue") String defaultValue,
@JsonProperty("accessibleScopes") OptionValue.AccessibleScopes type,
@JsonProperty("kind") Kind kind,
@JsonProperty("optionScope") OptionValue.OptionScope scope) {
this.name = name;
this.value = value;
+ this.defaultValue = defaultValue;
this.accessibleScopes = type;
this.kind = kind.name();
this.optionScope = scope.name();
@@ -201,6 +204,10 @@ public class StatusResources {
return value;
}
+ public String getDefaultValue() {
+ return defaultValue;
+ }
+
public OptionValue.AccessibleScopes getAccessibleScopes() {
return accessibleScopes;
}
@@ -215,7 +222,7 @@ public class StatusResources {
@Override
public String toString() {
- return "OptionWrapper{" + "name='" + name + '\'' + ", value=" + value + ", accessibleScopes=" + accessibleScopes + ", kind='" + kind + '\'' + ", scope='" + optionScope + '\'' +'}';
+ return "OptionWrapper{" + "name='" + name + '\'' + ", value=" + value + ", default=" + defaultValue + ", accessibleScopes=" + accessibleScopes + ", kind='" + kind + '\'' + ", scope='" + optionScope + '\'' +'}';
}
}
}
diff --git a/exec/java-exec/src/main/resources/rest/options.ftl b/exec/java-exec/src/main/resources/rest/options.ftl
index 085fb45..7ac8a2e 100644
--- a/exec/java-exec/src/main/resources/rest/options.ftl
+++ b/exec/java-exec/src/main/resources/rest/options.ftl
@@ -21,6 +21,11 @@
<#macro page_head>
<script type="text/javascript" language="javascript" src="/static/js/jquery.dataTables-1.10.16.min.js"> </script>
<script type="text/javascript" language="javascript" src="/static/js/dataTables.colVis-1.1.0.min.js"></script>
+ <script>
+ function resetToDefault(optionName, optionValue, optionKind) {
+ $.post("/option/"+optionName, {kind: optionKind, name: optionName, value: optionValue}, function (status) { location.reload(true); } );
+ }
+ </script>
<!-- List of Option Descriptions -->
<script src="/dynamic/options.describe.js"></script>
<link href="/static/css/dataTables.colVis-1.1.0.min.css" rel="stylesheet">
@@ -85,6 +90,9 @@ table.sortable thead .sorting_desc { background-image: url("/static/img/black-de
</#if>
<div class="input-group-btn">
<button class="btn btn-default" type="submit">Update</button>
+ <button class="btn btn-default" onClick="resetToDefault('${option.getName()}','${option.getDefaultValue()}', '${option.getKind()}')" type="button"
+ <#if option.getDefaultValue() == option.getValueAsString()>disabled="true" style="pointer-events:none" <#else>
+ title="Reset to ${option.getDefaultValue()}"</#if>>Reset</button>
</div>
</div>
</div>