summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/ui/builder/BuilderInfo.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-07-21 10:34:19 -0400
committerJules Laplace <jules@okfoc.us>2014-07-21 10:34:19 -0400
commit5016ec70f139a69c67de623cecc5f88173e4f3b6 (patch)
treebf8c3901b779da9e0dbc843fcc9de869cf369a9a /public/assets/javascripts/ui/builder/BuilderInfo.js
parentb1e172be9e8268532610b3e7fe2a4e339eccd1a2 (diff)
editing units on bulider updates layout
Diffstat (limited to 'public/assets/javascripts/ui/builder/BuilderInfo.js')
-rw-r--r--public/assets/javascripts/ui/builder/BuilderInfo.js48
1 files changed, 37 insertions, 11 deletions
diff --git a/public/assets/javascripts/ui/builder/BuilderInfo.js b/public/assets/javascripts/ui/builder/BuilderInfo.js
index ee6c81a..2a7c8d9 100644
--- a/public/assets/javascripts/ui/builder/BuilderInfo.js
+++ b/public/assets/javascripts/ui/builder/BuilderInfo.js
@@ -4,11 +4,11 @@ var BuilderInfo = View.extend({
events: {
"keydown": 'stopPropagation',
- "change [name=x]": 'changePosition',
- "change [name=y]": 'changePosition',
- "change [name=width]": 'changeDimensions',
- "change [name=depth]": 'changeDimensions',
- "change [name=height]": 'changeDimensions',
+ "change [name=x]": 'changeX',
+ "change [name=y]": 'changeY',
+ "change [name=width]": 'changeWidth',
+ "change [name=depth]": 'changeDepth',
+ "change [name=height]": 'changeHeight',
"change [name=units]": 'changeUnits',
"change [name=resolution]": 'changeResolution',
"change [name=viewHeight]": 'changeViewHeight',
@@ -63,11 +63,31 @@ var BuilderInfo = View.extend({
this.room = null
this.hide()
},
-
- changeDimensions: function(){
-// this.$width.unitVal( room.rect.x.length() )
-// this.$depth.unitVal( room.rect.y.length() )
-// this.$height.unitVal( room.height )
+
+ changeWidth: function(e){
+ e.stopPropagation()
+ this.room.rect.x.setLength( this.$width.unitVal() )
+ Rooms.clipper.update()
+ },
+ changeDepth: function(e){
+ e.stopPropagation()
+ this.room.rect.y.setLength( this.$depth.unitVal() )
+ Rooms.clipper.update()
+ },
+ changeHeight: function(e){
+ e.stopPropagation()
+ this.room.height = this.$height.unitVal()
+ Rooms.clipper.update()
+ },
+ changeX: function(e){
+ e.stopPropagation()
+ this.room.rect.x.setPosition( this.$x.unitVal() )
+ Rooms.clipper.update()
+ },
+ changeY: function(e){
+ e.stopPropagation()
+ this.room.rect.y.setPosition( this.$y.unitVal() )
+ Rooms.clipper.update()
},
changeUnits: function(){
@@ -93,6 +113,9 @@ $.fn.unitVal = function(n){
if (typeof n === "undefined") {
s = $(this).val()
n = stringToMeasurement( s )
+ if (! n || isNaN(n)) {
+ n = $(this).data("px")
+ }
}
s = measurementToString( n )
$(this).val( s ).data("px", n)
@@ -122,6 +145,9 @@ function measurementToString( n ) {
}
function stringToMeasurement( s ) {
var ft, inch, ft_in, type
+ if (! s.match(/[0-9]/)) {
+ return NaN
+ }
if (s.indexOf("'") !== -1 || s.indexOf('"') !== -1 || s.indexOf('ft') !== -1) {
ft_in = s.match(/[0-9.]+/g)
if (ft_in.length >= 2) {
@@ -143,7 +169,7 @@ function stringToMeasurement( s ) {
}
n = ft * 36 + inch * 3
}
- else if (type === "m") {
+ else if (s.indexOf("m") !== -1) {
n = parseFloat(s.match(/[0-9.]+/)) * 36 / 0.3048
}
else if (s.indexOf("px") !== -1) {