diff options
| author | Sean Fridman <fridman@mail.sfsu.edu> | 2015-04-16 23:38:16 -0400 |
|---|---|---|
| committer | Sean Fridman <fridman@mail.sfsu.edu> | 2015-04-20 23:39:34 -0400 |
| commit | 43063c3242ccaf95e39fff240d501de38131f7c5 (patch) | |
| tree | 3cc8fbf1abb85114de8b00e0fb6e316161c3ef80 | |
| parent | a27392f8903a90fc89a76f7903f8d76cc9ce7fcf (diff) | |
Add number type supportv0.1.1
| -rw-r--r-- | app/node_modules/okschema/index.js | 12 | ||||
| -rw-r--r-- | themes/okadmin/templates/partials/inputs.liquid | 4 |
2 files changed, 15 insertions, 1 deletions
diff --git a/app/node_modules/okschema/index.js b/app/node_modules/okschema/index.js index d53ed7b..c5a56c4 100644 --- a/app/node_modules/okschema/index.js +++ b/app/node_modules/okschema/index.js @@ -68,6 +68,9 @@ var types = { * OKSchema! * Meant as a thin wrapper around some existing schema validation * module, mostly to allow for the extension of types. + * + * NOTE: Currently just assumes spec is valid. If you give a bad spec + * strange things may or may not happen */ function OKSchema(spec) { if (!(this instanceof OKSchema)) return new OKSchema(spec); @@ -138,11 +141,18 @@ OKSchema.prototype.assertValid = function(data) { var type = spec[prop].type; if (types[type]) { types[type].assertValid(spec[prop], data[prop]); + // Also check if it's a number type and try to cast it + // otherwise pass and let mschema handle + } else if (type === 'number') { + try { + data[prop] = parseFloat(data[prop]); + } catch (err) {} } }); var result = mschema.validate(data, this.toMschema()); - if (!result.valid) + if (!result.valid) { throw result.errors; + } }; /** diff --git a/themes/okadmin/templates/partials/inputs.liquid b/themes/okadmin/templates/partials/inputs.liquid index c9a4d92..4d31413 100644 --- a/themes/okadmin/templates/partials/inputs.liquid +++ b/themes/okadmin/templates/partials/inputs.liquid @@ -12,6 +12,10 @@ {% elsif type == 'text' %} <textarea name="{{name}}">{{spec.value}}</textarea> + {% elsif type == 'number' %} + <input + type="number" + name="{{name}}" value="{{spec.value}}"> {% elsif type == 'enum' %} <select name="{{name}}"> |
