[Layout] Consistent input behavior

Inputs now handle invalid input consistently for all fields
This commit is contained in:
Doubek-Kraft 2017-06-23 11:42:52 -07:00 committed by Aaron Doubek-Kraft
parent f992fcebe1
commit 2e6fcec1c3
4 changed files with 12 additions and 8 deletions

View File

@ -148,21 +148,21 @@ define([
{
"items": [
{
"property": "x",
"property": "editX",
"text": "X",
"name": "X",
"cssClass": "l-input-sm",
"control": "textfield"
},
{
"property":"y",
"property":"editY",
"text": "Y",
"name": "Y",
"cssClass": "l-input-sm",
"control": "textfield"
},
{
"property": "x1",
"method": "editX1",
"text": "X1",
"name": "X1",
"cssClass": "l-input-sm",

View File

@ -52,9 +52,11 @@ define(
*/
proxy.fill = new AccessorMutator(element, 'fill');
//Expose width and height for editing
//Expose x,y, width and height for editing
proxy.editWidth = new AccessorMutator(element,'width', proxy.checkNumeric);
proxy.editHeight = new AccessorMutator(element,'height', proxy.checkNumeric);
proxy.editX = new AccessorMutator(element,'x',proxy.checkNumeric);
proxy.editY = new AccessorMutator(element,'y', proxy.checkNumeric);
return proxy;
}

View File

@ -164,17 +164,17 @@ define(
* or the current value of the new value is invalid.
*/
ElementProxy.prototype.checkNumeric = function(value, current) {
// Allow field to be empty
var intValue = parseInt(value);
// Handle case of empty field by swapping in 0
if (value === ''){
return 0;
}
// Else, check if the input is integral, and not, return current value
// of the field
value = parseInt(value);
if ( isNaN(value) ){
if ( isNaN(intValue) ){
return current;
} else {
return value;
return intValue;
}
};

View File

@ -52,6 +52,8 @@ define(
//Expose width and height properties for editing
proxy.editWidth = new AccessorMutator(element, 'width', proxy.checkNumeric);
proxy.editHeight = new AccessorMutator(element, 'height', proxy.checkNumeric);
proxy.editX = new AccessorMutator(element,'x',proxy.checkNumeric);
proxy.editY = new AccessorMutator(element,'y', proxy.checkNumeric);
return proxy;
}