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;