summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-11-10 12:48:53 -0500
committerJules Laplace <jules@okfoc.us>2014-11-10 12:48:53 -0500
commita1860ea42334447f49649a3491bad605237a23d5 (patch)
treedff87c6b7232172d5cfc380c7bbf89ebbbe2e249
parent57ec98db0520b0cc6fe563b983959bf6cb33d1fd (diff)
randomize button on media drawer (unstyled)
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/randomize.js16
-rw-r--r--public/assets/javascripts/ui/editor/MediaViewer.js10
-rw-r--r--views/controls/editor/media-drawer.ejs1
3 files changed, 18 insertions, 9 deletions
diff --git a/public/assets/javascripts/rectangles/engine/scenery/randomize.js b/public/assets/javascripts/rectangles/engine/scenery/randomize.js
index e6d662a..1c2eb56 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/randomize.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/randomize.js
@@ -3,8 +3,7 @@
var media_objs = $(".mediaContainer").toArray().map(function(el){
return $(el).data("media")
})
- var walls = []
- Scenery.randomize.add( media_objs, walls )
+ Scenery.randomize.add( media_objs )
*/
Scenery.randomize = {};
@@ -34,8 +33,9 @@ Scenery.randomize.get_dimensions = function (media_objs){
// Returns a lookup of walls to use, keyed by wall ID.
Scenery.randomize.get_empty_walls = function(wall_list){
// get a list of all walls
- var walls = {}
- (wall_list || Walls).forEach(function(wall){
+ var walls = {};
+
+ (wall_list || Walls.list).forEach(function(wall){
walls[wall.id] = wall
})
@@ -57,6 +57,7 @@ Scenery.randomize.get_empty_walls = function(wall_list){
// Randomly place a set of media objects on empty walls.
// Only one object per wall will be added.
+// Optionally takes a list of walls to use.
Scenery.randomize.add = function (media_objs, wall_list) {
var media_list = Scenery.randomize.get_dimensions(media_objs)
var walls = Scenery.randomize.get_empty_walls(wall_list)
@@ -66,11 +67,12 @@ Scenery.randomize.add = function (media_objs, wall_list) {
// randomize walls
shuffle(wall_ids)
+ shuffle(media_list)
// assign each of the media to the walls, until we run out of either
- media_list.all(function(media){
+ media_list.some(function(media){
// bail if we're out of walls
- if (wall_ids.length == 0) { return false }
+ if (wall_ids.length == 0) { return true }
var i, fits = -1
@@ -96,6 +98,6 @@ Scenery.randomize.add = function (media_objs, wall_list) {
// artwork won't fit anywhere??
}
- return true
+ return false
})
} \ No newline at end of file
diff --git a/public/assets/javascripts/ui/editor/MediaViewer.js b/public/assets/javascripts/ui/editor/MediaViewer.js
index dd17613..9593ab7 100644
--- a/public/assets/javascripts/ui/editor/MediaViewer.js
+++ b/public/assets/javascripts/ui/editor/MediaViewer.js
@@ -13,6 +13,7 @@ var MediaViewer = ModalView.extend({
'click .foundToggle': "foundToggle",
'click .userToggle': "userToggle",
'click #deleteMedia': "deleteArmed",
+ 'click #randomize': "randomize",
'click .mediaContainer': "pick",
'click .viewMore': "load",
},
@@ -119,10 +120,15 @@ var MediaViewer = ModalView.extend({
},
randomize: function(){
- var media_data = $(".mediaContainer").toArray().map(function(el){
+ var $divs = this.$myMediaContainer.find(".mediaContainer").toArray()
+ if ($divs.length < 3) {
+ $divs = $divs.concat( this.$foundMediaContainer.find(".mediaContainer").toArray() )
+ }
+ var media_objs = $divs.map(function(el){
return $(el).data("media")
})
- Scenery.randomize( media_data )
+ Scenery.randomize.add( media_objs )
+ this.hide()
},
populate: function(data){
diff --git a/views/controls/editor/media-drawer.ejs b/views/controls/editor/media-drawer.ejs
index 3e64cc3..5846bf4 100644
--- a/views/controls/editor/media-drawer.ejs
+++ b/views/controls/editor/media-drawer.ejs
@@ -14,6 +14,7 @@
-->
</h2><br>
<h3 class="editBtn warn" id="deleteMedia"></h3>
+ <h3 class="editBtn" id="randomize">Randomize</h3>
<div class="myMedia">
<div class="noMedia">You have no media yet. Upload some!</div>