Skip to content
This repository has been archived by the owner on Nov 2, 2020. It is now read-only.

Commit

Permalink
add support for number type
Browse files Browse the repository at this point in the history
add support for number type
  • Loading branch information
solos committed Feb 17, 2016
1 parent b2d3022 commit ac0c792
Showing 1 changed file with 23 additions and 3 deletions.
26 changes: 23 additions & 3 deletions js/directives.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,9 @@ angular.module('JSONedit', ['ui.sortable'])
var arrayName = "Array";
var refName = "Reference";
var boolName = "Boolean"
var numberName = "Number"

scope.valueTypes = [stringName, objectName, arrayName, refName, boolName];
scope.valueTypes = [stringName, objectName, arrayName, refName, boolName, numberName];
scope.sortableOptions = {
axis: 'y'
};
Expand Down Expand Up @@ -62,6 +63,8 @@ angular.module('JSONedit', ['ui.sortable'])
return "Array";
} else if(type === "[object Boolean]"){
return "Boolean";
} else if(type === "[object Number]"){
return "Number";
} else {
return "Literal";
}
Expand Down Expand Up @@ -117,10 +120,16 @@ angular.module('JSONedit', ['ui.sortable'])
return;
}
}
if (scope.valueType == numberName && !isNumber(scope.valueName)){
alert("Please fill in a number");
return;
}
// add item to object
switch(scope.valueType) {
case stringName: obj[scope.keyName] = scope.valueName ? scope.possibleNumber(scope.valueName) : "";
case stringName: obj[scope.keyName] = scope.valueName ? scope.valueName : "";
break;
case numberName: obj[scope.keyName] = scope.possibleNumber(scope.valueName);
break;
case objectName: obj[scope.keyName] = {};
break;
case arrayName: obj[scope.keyName] = [];
Expand All @@ -136,10 +145,16 @@ angular.module('JSONedit', ['ui.sortable'])
scope.showAddKey = false;
}
} else if (getType(obj) == "Array") {
if (scope.valueType == numberName && !isNumber(scope.valueName)){
alert("Please fill in a number");
return;
}
// add item to array
switch(scope.valueType) {
case stringName: obj.push(scope.valueName ? scope.valueName : "");
break;
case numberName: obj.push(scope.possibleNumber(scope.valueName));
break;
case objectName: obj.push({});
break;
case arrayName: obj.push([]);
Expand Down Expand Up @@ -175,8 +190,11 @@ angular.module('JSONedit', ['ui.sortable'])
+ '<span ng-switch-when="Boolean" type="boolean">'
+ '<input type="checkbox" ng-model="val" ng-model-onblur ng-change="child[key] = val">'
+ '</span>'
+ '<span ng-switch-when="Number" type="number"><input type="text" ng-model="val" '
+ 'placeholder="0" ng-model-onblur ng-change="child[key] = possibleNumber(val)"/>'
+ '</span>'
+ '<span ng-switch-default class="jsonLiteral"><input type="text" ng-model="val" '
+ 'placeholder="Empty" ng-model-onblur ng-change="child[key] = possibleNumber(val)"/>'
+ 'placeholder="Empty" ng-model-onblur ng-change="child[key] = val"/>'
+ '</span>'
+ '</span>';

Expand All @@ -196,6 +214,8 @@ angular.module('JSONedit', ['ui.sortable'])
// input value
+ '<span ng-show="$parent.valueType == \''+stringName+'\'"> : <input type="text" placeholder="Value" '
+ 'class="form-control input-sm addItemValueInput" ng-model="$parent.valueName" ui-keyup="{\'enter\':\'addItem(child)\'}"/></span> '
+ '<span ng-show="$parent.valueType == \''+numberName+'\'"> : <input type="text" placeholder="Value" '
+ 'class="form-control input-sm addItemValueInput" ng-model="$parent.valueName" ui-keyup="{\'enter\':\'addItem(child)\'}"/></span> '
// Add button
+ '<button class="btn btn-primary btn-sm" ng-click="addItem(child)">Add</button> '
+ '<button class="btn btn-default btn-sm" ng-click="$parent.showAddKey=false">Cancel</button>'
Expand Down

0 comments on commit ac0c792

Please sign in to comment.