mirror of
https://github.com/apache/zeppelin
synced 2026-05-24 09:38:26 +00:00
ZEPPELIN-2189. The order of dynamic forms should be the order that you create them
This commit is contained in:
parent
f76ac8807e
commit
369900ec9f
6 changed files with 25 additions and 39 deletions
|
|
@ -19,11 +19,7 @@ package org.apache.zeppelin.display;
|
|||
|
||||
import java.io.Serializable;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
import java.util.*;
|
||||
|
||||
import org.apache.zeppelin.display.Input.ParamOption;
|
||||
|
||||
|
|
@ -33,7 +29,7 @@ import org.apache.zeppelin.display.Input.ParamOption;
|
|||
public class GUI implements Serializable {
|
||||
|
||||
Map<String, Object> params = new HashMap<>(); // form parameters from client
|
||||
Map<String, Input> forms = new TreeMap<>(); // form configuration
|
||||
LinkedHashMap<String, Input> forms = new LinkedHashMap<>(); // form configuration
|
||||
|
||||
public GUI() {
|
||||
|
||||
|
|
@ -47,11 +43,11 @@ public class GUI implements Serializable {
|
|||
return params;
|
||||
}
|
||||
|
||||
public Map<String, Input> getForms() {
|
||||
public LinkedHashMap<String, Input> getForms() {
|
||||
return forms;
|
||||
}
|
||||
|
||||
public void setForms(Map<String, Input> forms) {
|
||||
public void setForms(LinkedHashMap<String, Input> forms) {
|
||||
this.forms = forms;
|
||||
}
|
||||
|
||||
|
|
@ -105,6 +101,6 @@ public class GUI implements Serializable {
|
|||
}
|
||||
|
||||
public void clear() {
|
||||
this.forms = new TreeMap<>();
|
||||
this.forms = new LinkedHashMap<>();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,13 +20,7 @@ package org.apache.zeppelin.display;
|
|||
import org.apache.commons.lang.StringUtils;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
|
|
@ -291,21 +285,21 @@ public class Input implements Serializable {
|
|||
return new Input(varName, displayName, type, arg, defaultValue, paramOptions, hidden);
|
||||
}
|
||||
|
||||
public static Map<String, Input> extractSimpleQueryParam(String script) {
|
||||
Map<String, Input> params = new HashMap<>();
|
||||
public static LinkedHashMap<String, Input> extractSimpleQueryForm(String script) {
|
||||
LinkedHashMap<String, Input> forms = new LinkedHashMap<>();
|
||||
if (script == null) {
|
||||
return params;
|
||||
return forms;
|
||||
}
|
||||
String replaced = script;
|
||||
|
||||
Matcher match = VAR_PTN.matcher(replaced);
|
||||
while (match.find()) {
|
||||
Input param = getInputForm(match);
|
||||
params.put(param.name, param);
|
||||
Input form = getInputForm(match);
|
||||
forms.put(form.name, form);
|
||||
}
|
||||
|
||||
params.remove("pql");
|
||||
return params;
|
||||
forms.remove("pql");
|
||||
return forms;
|
||||
}
|
||||
|
||||
private static final String DEFAULT_DELIMITER = ",";
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ public class InputTest {
|
|||
public void testFormExtraction() {
|
||||
// input form
|
||||
String script = "${input_form=}";
|
||||
Map<String, Input> forms = Input.extractSimpleQueryParam(script);
|
||||
Map<String, Input> forms = Input.extractSimpleQueryForm(script);
|
||||
assertEquals(1, forms.size());
|
||||
Input form = forms.get("input_form");
|
||||
assertEquals("input_form", form.name);
|
||||
|
|
@ -54,13 +54,13 @@ public class InputTest {
|
|||
|
||||
// input form with display name & default value
|
||||
script = "${input_form(Input Form)=xxx}";
|
||||
forms = Input.extractSimpleQueryParam(script);
|
||||
forms = Input.extractSimpleQueryForm(script);
|
||||
form = forms.get("input_form");
|
||||
assertEquals("xxx", form.defaultValue);
|
||||
|
||||
// selection form
|
||||
script = "${select_form(Selection Form)=op1,op1|op2(Option 2)|op3}";
|
||||
form = Input.extractSimpleQueryParam(script).get("select_form");
|
||||
form = Input.extractSimpleQueryForm(script).get("select_form");
|
||||
assertEquals("select_form", form.name);
|
||||
assertEquals("op1", form.defaultValue);
|
||||
assertArrayEquals(new ParamOption[]{new ParamOption("op1", null),
|
||||
|
|
@ -68,7 +68,7 @@ public class InputTest {
|
|||
|
||||
// checkbox form
|
||||
script = "${checkbox:checkbox_form=op1,op1|op2|op3}";
|
||||
form = Input.extractSimpleQueryParam(script).get("checkbox_form");
|
||||
form = Input.extractSimpleQueryForm(script).get("checkbox_form");
|
||||
assertEquals("checkbox_form", form.name);
|
||||
assertEquals("checkbox", form.type);
|
||||
assertArrayEquals(new Object[]{"op1"}, (Object[]) form.defaultValue);
|
||||
|
|
@ -77,7 +77,7 @@ public class InputTest {
|
|||
|
||||
// checkbox form with multiple default checks
|
||||
script = "${checkbox:checkbox_form(Checkbox Form)=op1|op3,op1(Option 1)|op2|op3}";
|
||||
form = Input.extractSimpleQueryParam(script).get("checkbox_form");
|
||||
form = Input.extractSimpleQueryForm(script).get("checkbox_form");
|
||||
assertEquals("checkbox_form", form.name);
|
||||
assertEquals("Checkbox Form", form.displayName);
|
||||
assertEquals("checkbox", form.type);
|
||||
|
|
@ -87,7 +87,7 @@ public class InputTest {
|
|||
|
||||
// checkbox form with no default check
|
||||
script = "${checkbox:checkbox_form(Checkbox Form)=,op1(Option 1)|op2(Option 2)|op3(Option 3)}";
|
||||
form = Input.extractSimpleQueryParam(script).get("checkbox_form");
|
||||
form = Input.extractSimpleQueryForm(script).get("checkbox_form");
|
||||
assertEquals("checkbox_form", form.name);
|
||||
assertEquals("Checkbox Form", form.displayName);
|
||||
assertEquals("checkbox", form.type);
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ limitations under the License.
|
|||
ng-show="!paragraph.config.tableHide"
|
||||
class=" paragraphForm form-horizontal row">
|
||||
<div class="form-group col-sm-6 col-md-6 col-lg-4"
|
||||
ng-repeat="formulaire in paragraph.settings.forms | toArray | orderBy:'name.toString()'"
|
||||
ng-repeat="formulaire in paragraph.settings.forms | toArray"
|
||||
ng-init="loadForm(formulaire, paragraph.settings.params)">
|
||||
<label class="control-label input-sm" ng-class="{'disable': paragraph.status == 'RUNNING' || paragraph.status == 'PENDING' }">{{formulaire.name}}</label>
|
||||
<div>
|
||||
|
|
|
|||
|
|
@ -21,11 +21,7 @@ import static java.lang.String.format;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.concurrent.ScheduledThreadPoolExecutor;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
|
@ -320,8 +316,8 @@ public class Note implements Serializable, ParagraphJobListener {
|
|||
interpreterSettingManager);
|
||||
|
||||
Map<String, Object> config = new HashMap<>(srcParagraph.getConfig());
|
||||
Map<String, Object> param = new HashMap<>(srcParagraph.settings.getParams());
|
||||
Map<String, Input> form = new HashMap<>(srcParagraph.settings.getForms());
|
||||
Map<String, Object> param = srcParagraph.settings.getParams();
|
||||
LinkedHashMap<String, Input> form = srcParagraph.settings.getForms();
|
||||
|
||||
newParagraph.setConfig(config);
|
||||
newParagraph.settings.setParams(param);
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@ public class Paragraph extends Job implements Serializable, Cloneable {
|
|||
public Paragraph cloneParagraphForUser(String user) {
|
||||
Paragraph p = new Paragraph();
|
||||
p.settings.setParams(Maps.newHashMap(settings.getParams()));
|
||||
p.settings.setForms(Maps.newHashMap(settings.getForms()));
|
||||
p.settings.setForms(Maps.newLinkedHashMap(settings.getForms()));
|
||||
p.setConfig(Maps.newHashMap(config));
|
||||
p.setTitle(getTitle());
|
||||
p.setText(getText());
|
||||
|
|
@ -389,7 +389,7 @@ public class Paragraph extends Job implements Serializable, Cloneable {
|
|||
settings.clear();
|
||||
} else if (repl.getFormType() == FormType.SIMPLE) {
|
||||
String scriptBody = getScriptBody();
|
||||
Map<String, Input> inputs = Input.extractSimpleQueryParam(scriptBody); // inputs will be built
|
||||
LinkedHashMap<String, Input> inputs = Input.extractSimpleQueryForm(scriptBody); // inputs will be built
|
||||
// from script body
|
||||
|
||||
final AngularObjectRegistry angularRegistry =
|
||||
|
|
|
|||
Loading…
Reference in a new issue