diff --git a/packages/components/src/DraftConfigurator/DraftSettings/index.js b/packages/components/src/DraftConfigurator/DraftSettings/index.js
index 17f722b0b32..765274a3ef0 100644
--- a/packages/components/src/DraftConfigurator/DraftSettings/index.js
+++ b/packages/components/src/DraftConfigurator/DraftSettings/index.js
@@ -19,6 +19,24 @@ const DraftSettings = props => {
else shown.splice(index, 1);
setExpanded(shown);
};
+ const getDefault = setting => {
+ if (props.recipe && typeof props.recipe.settings[setting] !== "undefined")
+ return props.recipe.settings[setting];
+ switch (setting) {
+ case "sa":
+ return 10;
+ case "only":
+ return "dflt";
+ case "complete":
+ return true;
+ case "margin":
+ return 2;
+ case "units":
+ return props.units;
+ default:
+ return false;
+ }
+ };
let noyes = [
,
@@ -49,7 +67,8 @@ const DraftSettings = props => {
key: setting,
name: setting,
labels: labels[setting],
- noDocs: props.noDocs
+ noDocs: props.noDocs,
+ dflt: getDefault(setting)
};
childProps.title = (
@@ -58,7 +77,6 @@ const DraftSettings = props => {
);
if (setting === "only") {
- childProps.dflt = "dflt";
childProps.customDflt = [];
childProps.parts = {};
if (props.config.draftOrder) {
@@ -80,17 +98,13 @@ const DraftSettings = props => {
let groups = {
preferences: [
,
- ,
-
+ ,
+
],
advanced: [
,
- ,
- ,
+ ,
+ ,
]
};
diff --git a/packages/components/src/DraftConfigurator/OptionGroup/index.js b/packages/components/src/DraftConfigurator/OptionGroup/index.js
index e74fc212927..073b41a3571 100644
--- a/packages/components/src/DraftConfigurator/OptionGroup/index.js
+++ b/packages/components/src/DraftConfigurator/OptionGroup/index.js
@@ -18,7 +18,7 @@ const OptionGroup = props => {
let stringKey = `options.${props.config.name}.${name}.`;
let extraProps = {
name,
- dflt: optionDefault(props.config.options[name], props.gist),
+ dflt: optionDefault(name, props.config.options[name], props.recipe),
units: props.units,
updateValue: props.updateValue,
raiseEvent: props.raiseEvent,
diff --git a/packages/components/src/DraftConfigurator/PatternOptions/index.js b/packages/components/src/DraftConfigurator/PatternOptions/index.js
index 91d12db049b..7685fedbc3c 100644
--- a/packages/components/src/DraftConfigurator/PatternOptions/index.js
+++ b/packages/components/src/DraftConfigurator/PatternOptions/index.js
@@ -28,6 +28,7 @@ const PatternOptions = props => {
units={props.units}
config={props.config}
gist={props.gist}
+ recipe={props.recipe}
options={props.config.optionGroups[group]}
updateValue={props.updateValue}
raiseEvent={props.raiseEvent}
diff --git a/packages/components/src/DraftConfigurator/index.js b/packages/components/src/DraftConfigurator/index.js
index 7d31e8fb811..66238eebda6 100644
--- a/packages/components/src/DraftConfigurator/index.js
+++ b/packages/components/src/DraftConfigurator/index.js
@@ -15,6 +15,7 @@ const DraftConfigurator = props => {
noDocs={props.noDocs}
config={props.config}
gist={props.gist}
+ recipe={props.recipe}
updateValue={(name, value) =>
props.updateGist(value, "settings", "options", name)
}
@@ -28,6 +29,7 @@ const DraftConfigurator = props => {
noDocs={props.noDocs}
config={props.config}
gist={props.gist}
+ recipe={props.recipe}
updateValue={(name, value) =>
props.updateGist(value, "settings", name)
}
diff --git a/packages/i18n/src/locales/en/app.yaml b/packages/i18n/src/locales/en/app.yaml
index f1deadfe2a7..b433edc68d6 100644
--- a/packages/i18n/src/locales/en/app.yaml
+++ b/packages/i18n/src/locales/en/app.yaml
@@ -120,6 +120,8 @@ name: Name
newDraftFromGist: New draft from gist
newDraft: New draft
newModel: New model
+newPattern: 'New {pattern}'
+newPatternForModel: 'New {pattern} for {model}'
noChanges: No changes
no: No
noPasswordPolicy: We don't enforce a password policy
diff --git a/packages/utils/src/optionDefault/index.js b/packages/utils/src/optionDefault/index.js
index d28268cfd86..28a07b70b43 100644
--- a/packages/utils/src/optionDefault/index.js
+++ b/packages/utils/src/optionDefault/index.js
@@ -1,7 +1,17 @@
import optionType from "../optionType";
-const optionDefault = option => {
+const optionDefault = (name, option, recipe) => {
let type = optionType(option);
+ let factor = type === "pct" ? 100 : 1;
+ // Default from recipe?
+ if (
+ recipe &&
+ typeof recipe.settings !== "undefined" &&
+ typeof recipe.settings.options !== "undefined" &&
+ typeof recipe.settings.options[name] !== "undefined"
+ )
+ return Math.round(10 * recipe.settings.options[name] * factor) / 10;
+
switch (type) {
case "constant":
return option;