[Fixed Position] Incorporate numberfield control

Change inputs from textfield to new numberfield input, remove internal type checking in favor of input validation
This commit is contained in:
Aaron Doubek-Kraft 2017-06-26 10:57:47 -07:00
commit 542b7a6f20
5 changed files with 78 additions and 0 deletions

View File

@ -152,65 +152,100 @@ define([
"text": "X",
"name": "X",
"cssClass": "l-input-sm",
<<<<<<< HEAD
"control": "numberfield",
"min": "0"
=======
"control": "textfield"
>>>>>>> 39fe2fd7b6f0fd79e7f75ae9d04ba20d74d8e2c5
},
{
"property": "editY",
"text": "Y",
"name": "Y",
"cssClass": "l-input-sm",
<<<<<<< HEAD
"control": "numberfield",
"min": "0"
=======
"control": "textfield"
>>>>>>> 39fe2fd7b6f0fd79e7f75ae9d04ba20d74d8e2c5
},
{
"property": "editX1",
"text": "X1",
"name": "X1",
"cssClass": "l-input-sm",
<<<<<<< HEAD
"control" : "numberfield",
"min": "0"
=======
"control" : "textfield"
>>>>>>> 39fe2fd7b6f0fd79e7f75ae9d04ba20d74d8e2c5
},
{
"property": "editY1",
"text": "Y1",
"name": "Y1",
"cssClass": "l-input-sm",
<<<<<<< HEAD
"control" : "numberfield",
"min": 0
=======
"control" : "textfield"
>>>>>>> 39fe2fd7b6f0fd79e7f75ae9d04ba20d74d8e2c5
},
{
"property": "editX2",
"text": "X2",
"name": "X2",
"cssClass": "l-input-sm",
<<<<<<< HEAD
"control" : "numberfield",
"min": "0"
=======
"control" : "textfield"
>>>>>>> 39fe2fd7b6f0fd79e7f75ae9d04ba20d74d8e2c5
},
{
"property": "editY2",
"text": "Y2",
"name": "Y2",
"cssClass": "l-input-sm",
<<<<<<< HEAD
"control" : "numberfield",
"min": "0"
=======
"control" : "textfield"
>>>>>>> 39fe2fd7b6f0fd79e7f75ae9d04ba20d74d8e2c5
},
{
"property": "editHeight",
"text": "H",
"name": "H",
<<<<<<< HEAD
"cssClass": "l-input-sm",
"control": "numberfield",
"description": "Resize change object height",
"min": "1"
=======
"cssClass": "l-input-sm numerical",
"control": "textfield",
"description": "Resize change object height"
>>>>>>> 39fe2fd7b6f0fd79e7f75ae9d04ba20d74d8e2c5
},
{
"property": "editWidth",
"text": "W",
"name": "W",
<<<<<<< HEAD
"cssClass": "l-input-sm",
"control": "numberfield",
"min": "1"
=======
"cssClass": "l-input-sm numerical",
"control": "textfield"
>>>>>>> 39fe2fd7b6f0fd79e7f75ae9d04ba20d74d8e2c5
}
]
},

View File

@ -53,10 +53,17 @@ define(
proxy.fill = new AccessorMutator(element, 'fill');
//Expose x,y, width and height for editing
<<<<<<< HEAD
proxy.editWidth = new AccessorMutator(element, 'width');
proxy.editHeight = new AccessorMutator(element, 'height');
proxy.editX = new AccessorMutator(element, 'x');
proxy.editY = new AccessorMutator(element, 'y');
=======
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);
>>>>>>> 39fe2fd7b6f0fd79e7f75ae9d04ba20d74d8e2c5
return proxy;
}

View File

@ -156,6 +156,28 @@ define(
return this.resizeHandles;
};
/**
* Ensure and input type is numeric: intended to be passed as the
* updater argument to an AccessorMutator object in order to restrict
* input to integer values only.
* @return Either the string '' (for no input), the new value passed in,
* or the current value of the new value is invalid.
*/
ElementProxy.prototype.checkNumeric = function (value, current) {
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
if (isNaN(intValue)) {
return current;
} else {
return intValue;
}
};
return ElementProxy;
}
);

View File

@ -50,10 +50,17 @@ define(
proxy.url = new AccessorMutator(element, 'url');
//Expose width and height properties for editing
<<<<<<< HEAD
proxy.editWidth = new AccessorMutator(element, 'width');
proxy.editHeight = new AccessorMutator(element, 'height');
proxy.editX = new AccessorMutator(element, 'x');
proxy.editY = new AccessorMutator(element, 'y');
=======
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);
>>>>>>> 39fe2fd7b6f0fd79e7f75ae9d04ba20d74d8e2c5
return proxy;
}

View File

@ -149,10 +149,17 @@ define(
};
// Expose endpoint coordinates for editing
<<<<<<< HEAD
proxy.editX1 = new AccessorMutator(element, 'x');
proxy.editY1 = new AccessorMutator(element, 'y');
proxy.editX2 = new AccessorMutator(element, 'x2');
proxy.editY2 = new AccessorMutator(element, 'y2');
=======
proxy.editX1 = new AccessorMutator(element, 'x', proxy.checkNumeric);
proxy.editY1 = new AccessorMutator(element, 'y', proxy.checkNumeric);
proxy.editX2 = new AccessorMutator(element, 'x2', proxy.checkNumeric);
proxy.editY2 = new AccessorMutator(element, 'y2', proxy.checkNumeric);
>>>>>>> 39fe2fd7b6f0fd79e7f75ae9d04ba20d74d8e2c5
return proxy;
}