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

View File

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

View File

@ -156,6 +156,28 @@ define(
return this.resizeHandles; 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; return ElementProxy;
} }
); );

View File

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

View File

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