summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/ui
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-10-07 19:22:42 -0400
committerJules Laplace <jules@okfoc.us>2014-10-07 19:22:42 -0400
commitd6d78ddf16e9cb6555e92089dfa77ba5648f686b (patch)
treed9e62fa1bdf07cf60fdccfec4cf599e42be9a001 /public/assets/javascripts/ui
parent009205d55b7f04d2a08064a844e5e2b731fff7d8 (diff)
parentc2e2334328256fa0409341692284f25f3167ab30 (diff)
merge
Diffstat (limited to 'public/assets/javascripts/ui')
-rw-r--r--public/assets/javascripts/ui/editor/EditorView.js5
-rw-r--r--public/assets/javascripts/ui/editor/LightControl.js34
-rw-r--r--public/assets/javascripts/ui/editor/TextEditor.js5
-rw-r--r--public/assets/javascripts/ui/editor/WallpaperPicker.js57
-rw-r--r--public/assets/javascripts/ui/reader/MediaPlayer.js4
-rw-r--r--public/assets/javascripts/ui/reader/ReaderView.js4
6 files changed, 105 insertions, 4 deletions
diff --git a/public/assets/javascripts/ui/editor/EditorView.js b/public/assets/javascripts/ui/editor/EditorView.js
index 67687fe..f60b149 100644
--- a/public/assets/javascripts/ui/editor/EditorView.js
+++ b/public/assets/javascripts/ui/editor/EditorView.js
@@ -52,6 +52,11 @@ var EditorView = View.extend({
}
},
+ pickWall: function(wall, pos){
+ this.hideExtras()
+ this.wallpaperPicker.pickWall(wall)
+ },
+
hideExtras: function(){
this.mediaEditor.hide()
this.textEditor.hide()
diff --git a/public/assets/javascripts/ui/editor/LightControl.js b/public/assets/javascripts/ui/editor/LightControl.js
index 3eb2861..51e6be7 100644
--- a/public/assets/javascripts/ui/editor/LightControl.js
+++ b/public/assets/javascripts/ui/editor/LightControl.js
@@ -10,6 +10,7 @@ var LightControl = View.extend({
"input #brightness-control": "updateBrightness",
"input #outline-hue": "updateShadow",
"input #wall-hue": "updateShadow",
+ "click .presets span": "selectPreset",
},
initialize: function(){
@@ -114,6 +115,39 @@ var LightControl = View.extend({
this.setMode(mode)
},
+ presets: {
+ wireframe: {
+ wall: [255,255,255],
+ outline: [0,0,0],
+ floor: [246,246,246],
+ ceiling: [255,255,255],
+ },
+ shaded: {
+ wall: [205,205,204],
+ outline: [0,0,0],
+ floor: [109,116,106],
+ ceiling: [159,163,157],
+ },
+ pfunk: {
+ wall: [255,63,78],
+ outline: [255,246,0],
+ floor: [255,255,0],
+ ceiling: [225,118,252],
+ },
+ inverse: {
+ wall: [0,0,0],
+ outline: [0,230,255],
+ floor: [0,0,0],
+ ceiling: [0,0,0],
+ },
+ },
+ selectPreset: function(e){
+ var preset = $(e.currentTarget).data('preset')
+ if (! this.presets[preset]) return
+ this.load(this.presets[preset])
+ $(e.currentTarget).addClass('active')
+ },
+
beginBrightness: function(){
this.begin()
$(window).one("mouseup", this.finalize.bind(this))
diff --git a/public/assets/javascripts/ui/editor/TextEditor.js b/public/assets/javascripts/ui/editor/TextEditor.js
index 1e35c12..0aa5aad 100644
--- a/public/assets/javascripts/ui/editor/TextEditor.js
+++ b/public/assets/javascripts/ui/editor/TextEditor.js
@@ -39,12 +39,15 @@ var TextEditor = FormView.extend({
scale: 0.5,
font: { family: 'Lato', size: 12, align: 'left' },
}
-
this.createMode(true)
}
+ else {
+ $("[data-role='toggle-text-editor']").removeClass("inuse")
+ }
},
hide: function(scenery){
+ Scenery.nextMedia = null
if (this.scenery) {
this.unbind()
}
diff --git a/public/assets/javascripts/ui/editor/WallpaperPicker.js b/public/assets/javascripts/ui/editor/WallpaperPicker.js
index 7f9b8f7..140076d 100644
--- a/public/assets/javascripts/ui/editor/WallpaperPicker.js
+++ b/public/assets/javascripts/ui/editor/WallpaperPicker.js
@@ -6,8 +6,11 @@ var WallpaperPicker = UploadView.extend({
uploadAction: "/api/media/upload",
events: {
+ "mousedown": 'stopPropagation',
"click .swatch": 'pick',
"click .wallpaperRemove": 'remove',
+ "input [data-role='wallpaper-scale']": 'updateScale',
+
},
initialize: function(){
@@ -15,6 +18,11 @@ var WallpaperPicker = UploadView.extend({
this.$swatches = this.$(".swatches")
this.$remove = this.$(".wallpaperRemove")
this.$remove.hide()
+
+ this.$position = this.$("[data-role='wallpaper-position']")
+ this.$scale = this.$("[data-role='wallpaper-scale']")
+
+ this.initializePositionCursor()
},
loaded: false,
@@ -122,5 +130,52 @@ var WallpaperPicker = UploadView.extend({
_followCursor(e);
})
},
-
+
+ wall: null,
+ pickWall: function(wall){
+ if (wall.background.src == "none") {
+ return;
+ }
+ this.wall = wall
+ this.$scale.val( this.wall.background.scale )
+ },
+
+ updateScale: function(){
+ if (! this.wall) return;
+ s = parseFloat(this.$scale.val())
+ this.wall.wallpaperPosition({ scale: s })
+ },
+
+ initializePositionCursor: function(){
+ var base = this
+ var dx = 0, dy = 0, dragging = false
+ var x = 0, y = 0, s = 1
+ var mymouse = new mouse({
+ el: this.$position[0],
+ down: function(e, cursor){
+ if (! base.wall) return
+ s = parseFloat( base.$scale.val() )
+ x = base.wall.background.x
+ y = base.wall.background.y
+ dragging = true
+ },
+ drag: function(e, cursor){
+ if (! dragging) return
+ delta = cursor.delta()
+ delta.a = - delta.a
+ dx = delta.a*s
+ dy = delta.b*s
+ base.wall.wallpaperPosition({
+ scale: s,
+ x: x+dx,
+ y: y+dy,
+ })
+ },
+ up: function(e, cursor, new_cursor){
+ delta.zero()
+ dragging = false
+ },
+ })
+ },
+
})
diff --git a/public/assets/javascripts/ui/reader/MediaPlayer.js b/public/assets/javascripts/ui/reader/MediaPlayer.js
index df2d075..6195ab6 100644
--- a/public/assets/javascripts/ui/reader/MediaPlayer.js
+++ b/public/assets/javascripts/ui/reader/MediaPlayer.js
@@ -53,8 +53,8 @@ var MediaPlayer = FormView.extend({
this.bind(scenery)
this.$el.addClass("active")
- this.$name.html(media.title)
- this.$description.html(media.description)
+ this.$name.html( sanitize(media.title) )
+ this.$description.html( marked(media.description) )
switch (media.type) {
case "image":
diff --git a/public/assets/javascripts/ui/reader/ReaderView.js b/public/assets/javascripts/ui/reader/ReaderView.js
index 82db048..5f2db0f 100644
--- a/public/assets/javascripts/ui/reader/ReaderView.js
+++ b/public/assets/javascripts/ui/reader/ReaderView.js
@@ -78,6 +78,10 @@ var ReaderView = View.extend({
app.tube("pick-scenery", { scenery: scenery })
},
+ pickWall: function(wall, pos){
+ this.hideExtras()
+ },
+
hideExtras: function(){
this.mediaPlayer.hide()
app.tube("close-scenery")