summaryrefslogtreecommitdiff
path: root/public
diff options
context:
space:
mode:
Diffstat (limited to 'public')
-rw-r--r--public/assets/javascripts/ui/editor/EditorSettings.js27
-rwxr-xr-xpublic/assets/stylesheets/app.css29
2 files changed, 45 insertions, 11 deletions
diff --git a/public/assets/javascripts/ui/editor/EditorSettings.js b/public/assets/javascripts/ui/editor/EditorSettings.js
index 89040e1..0c68de5 100644
--- a/public/assets/javascripts/ui/editor/EditorSettings.js
+++ b/public/assets/javascripts/ui/editor/EditorSettings.js
@@ -15,6 +15,10 @@ var EditorSettings = FormView.extend({
"click [data-role='clone-project']": 'clone',
"click [data-role='clear-project']": 'clear',
"click [data-role='destroy-project']": 'destroy',
+ "click #startText": "setStartPosition",
+ "click #moveText": "confirmStartPosition",
+ "click #confirmText": "setStartPosition",
+ "click #goText": "goToStartPosition",
},
initialize: function(opt){
@@ -26,6 +30,7 @@ var EditorSettings = FormView.extend({
this.$name = this.$("[name=name]")
this.$description = this.$("[name=description]")
this.$privacy = this.$("[name=privacy]")
+ this.$startPoint = this.$("#startpoint")
},
load: function(data){
@@ -33,7 +38,11 @@ var EditorSettings = FormView.extend({
this.parent.data = data
data.rooms && Rooms.deserialize(data.rooms, data.walls)
- data.startPosition && scene.camera.move(data.startPosition)
+ if (data.startPosition) {
+ scene.camera.move(data.startPosition)
+ this.startPosition = data.startPosition
+ this.$startPoint.addClass("confirmed")
+ }
if (data.colors && data.colors.wall) {
this.parent.lightControl.load(data.colors)
@@ -141,6 +150,19 @@ var EditorSettings = FormView.extend({
ErrorModal.alert($errors)
},
+ startPosition: null,
+ setStartPosition: function(){
+ this.$startPoint.addClass("active").removeClass("confirmed")
+ },
+ confirmStartPosition: function(){
+ this.$startPoint.removeClass("active").addClass("confirmed")
+ this.startPosition = app.position(scene.camera)
+ },
+ goToStartPosition: function(){
+ if (! this.startPosition) return
+ scene.camera.move(this.startPosition)
+ },
+
serialize: function(){
var fd = new FormData()
fd.append( "_csrf", this.$csrf.val() )
@@ -152,7 +174,8 @@ var EditorSettings = FormView.extend({
fd.append( "walls", JSON.stringify( Walls.serialize() ) )
fd.append( "colors", JSON.stringify( Walls.colors ) )
fd.append( "media", JSON.stringify( Scenery.serialize() ) )
- fd.append( "startPosition", JSON.stringify( app.position(scene.camera) ) )
+ fd.append( "startPosition", JSON.stringify( this.startPosition || false ) )
+ fd.append( "lastPosition", JSON.stringify( app.position(scene.camera) ) )
if (this.thumbnailIsStale()) {
var thumbnail = map.draw.render()
diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css
index 849c994..6d96f97 100755
--- a/public/assets/stylesheets/app.css
+++ b/public/assets/stylesheets/app.css
@@ -1722,7 +1722,7 @@ input[type="range"]::-webkit-slider-thumb {
.modalLink {
text-decoration: none;
}
-.modalLink:hover {
+.modalLink:hover span {
text-decoration: underline;
}
@@ -1736,30 +1736,41 @@ input[type="range"]::-webkit-slider-thumb {
opacity:0.6;
}
}
-#startpoint.active #moveText{
+
+#moveText,
+#confirmText {
+ display: none;
+}
+#startpoint.active #moveText {
+ display:inline-block;
-webkit-animation:fade 0.5s infinite;
animation:fade 0.5s infinite;
}
-#moveText{
- display:none;
+#startpoint #goText,
+#startpoint.active #startText,
+#startpoint.active #goText,
+#startpoint.confirmed #startText {
+ display: none;
}
-#moveText.show {
- display:inline-block;
+#startpoint.confirmed #confirmText {
+ display: inline-block;
}
-#startText.hide {
- display:none;
+#startpoint.confirmed #goText {
+ display: inline-block;
}
-#startpoint.active:after {
+#moveText .done {
content: "done";
background: black;
color: white;
padding: 2px;
font-weight: 900;
margin-left: 5px;
+ text-decoration: none !important;
}
#startpoint.active:hover {
text-decoration:none;
}
+
.settings input[type="text"] {
border: 1px solid #000;
font-size: 15px;