Skip to content

Commit

Permalink
Add support for multipleOf when using range input. Fixes jdorn#17
Browse files Browse the repository at this point in the history
  • Loading branch information
jdorn committed Dec 11, 2013
1 parent d81479b commit 1c0f157
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 5 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
/node_modules/
/.idea/
14 changes: 12 additions & 2 deletions dist/jquery.jsoneditor.js
Original file line number Diff line number Diff line change
Expand Up @@ -289,8 +289,18 @@

// Set the min/max for format="range"
if(this.input_type === 'range') {
this.input.attr('min',(this.schema.minimum || 0));
this.input.attr('max',(this.schema.maximum || 100));
var min = this.schema.minimum || 0;
var max = this.schema.maximum || 100;

// If multipleOf is set, make sure minimum and maximum are multiples of multipleOf
if(this.schema.multipleOf) {
if(min%this.schema.multipleOf) min = Math.ceil(min/this.schema.multipleOf)*this.schema.multipleOf;
if(max%this.schema.multipleOf) max = Math.floor(max/this.schema.multipleOf)*this.schema.multipleOf;
this.input.attr('step',this.schema.multipleOf);
}

this.input.attr('min',min);
this.input.attr('max',max);
this.input.css({
marginBottom: '10px'
});
Expand Down
2 changes: 1 addition & 1 deletion dist/jquery.jsoneditor.min.js

Large diffs are not rendered by default.

14 changes: 12 additions & 2 deletions src/editors/string.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,18 @@

// Set the min/max for format="range"
if(this.input_type === 'range') {
this.input.attr('min',(this.schema.minimum || 0));
this.input.attr('max',(this.schema.maximum || 100));
var min = this.schema.minimum || 0;
var max = this.schema.maximum || 100;

// If multipleOf is set, make sure minimum and maximum are multiples of multipleOf
if(this.schema.multipleOf) {
if(min%this.schema.multipleOf) min = Math.ceil(min/this.schema.multipleOf)*this.schema.multipleOf;
if(max%this.schema.multipleOf) max = Math.floor(max/this.schema.multipleOf)*this.schema.multipleOf;
this.input.attr('step',this.schema.multipleOf);
}

this.input.attr('min',min);
this.input.attr('max',max);
this.input.css({
marginBottom: '10px'
});
Expand Down

0 comments on commit 1c0f157

Please sign in to comment.