Skip to content

Commit

Permalink
Merge 452ceb9 into 0e3ba17
Browse files Browse the repository at this point in the history
  • Loading branch information
martindale committed Sep 22, 2015
2 parents 0e3ba17 + 452ceb9 commit dce1755
Show file tree
Hide file tree
Showing 5 changed files with 96 additions and 20 deletions.
39 changes: 21 additions & 18 deletions controllers/pages.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,27 @@ module.exports = {
index: function(req, res, next) {
if (!req.roomObj) {
var sortedRooms = [];

Object.keys( req.app.locals.rooms ).forEach(function( roomName ) {
var room = req.app.locals.rooms[ roomName ];
room.listenerCount = Object.keys( room.listeners ).length;
sortedRooms.push( room );
});

sortedRooms = sortedRooms.sort(function(a, b) {
return b.listenerCount - a.listenerCount;
});

return async.map( sortedRooms , function( room , done ) {
Person.populate( room , {
path: '_owner'
}, done );
} , function(err, finalRooms) {
return res.render('rooms', {
rooms: finalRooms
return Room.find().exec(function(err, rooms) {
rooms.forEach(function( room ) {
var roomName = room.slug;
var cachedRoom = req.app.locals.rooms[ roomName ];
cachedRoom.description = room.description;
cachedRoom.listenerCount = Object.keys(cachedRoom.listeners).length;
sortedRooms.push(cachedRoom);
});

sortedRooms = sortedRooms.sort(function(a, b) {
return b.listenerCount - a.listenerCount;
});

return async.map( sortedRooms , function( room , done ) {
Person.populate( room , {
path: '_owner'
}, done );
} , function(err, finalRooms) {
return res.render('rooms', {
rooms: finalRooms
});
});
});
}
Expand Down
33 changes: 32 additions & 1 deletion public/js/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -1236,6 +1236,38 @@ $(window).load(function() {
return false;
});

$(document).on('click', '*[data-action=launch-room-editor]', function(e) {
e.preventDefault();
var self = this;
var $self = $(this);
var slug = $self.data('room-slug');
$.getJSON('/rooms/'+slug, function(room) {
$('#edit-room-modal').find('textarea[name=description]').val( room.description );
$('#edit-room-modal').find('input[name=roomSlug]').val( room.slug );
$('#edit-room-modal').modal();
});
return false;
});

$(document).on('submit', 'form[data-for=edit-room]', function(e) {
e.preventDefault();
var $self = $(this);
var slug = $self.find('input[name=roomSlug]').val();
$.ajax({
type: 'PATCH',
url: '/rooms/' + slug,
dataType: 'json',
data: {
description: $self.find('textarea[name=description]').val()
},
success: function() {
$self.modal('hide');
}
});

return false;
});

$(document).on('click', '*[data-action=launch-track-editor]', function(e) {
e.preventDefault();
var self = this;
Expand All @@ -1257,7 +1289,6 @@ $(window).load(function() {
});

$(document).on('click', '*[data-action=track-flag-live]', function(e) {

var self = this;
var trackID = $(self).data('track-id');

Expand Down
20 changes: 20 additions & 0 deletions soundtrack.js
Original file line number Diff line number Diff line change
Expand Up @@ -937,8 +937,28 @@ app.get('/tracks', tracks.list);
app.get('/pool', requireRoom , tracks.pool);
app.get('/chat', requireRoom , chat.view);
app.get('/chat/since.json', requireRoom , chat.since);

app.get('/rooms', rooms.list );
app.post('/rooms', requireLogin , soundtracker , rooms.create );
app.get('/rooms/:roomSlug', function(req, res, next) {
Room.findOne({ slug: req.param('roomSlug') }).exec(function(err, room) {
if (err || !room) return next();
res.send(room);
});
});
app.patch('/rooms/:roomSlug', requireLogin, function(req, res, next) {
Room.findOne({ slug: req.param('roomSlug') }).exec(function(err, room) {
if (err || !room) return next();
if (!room._owner) return next();
if (room._owner.toString() !== req.user._id.toString()) return next();

room.description = req.param('description');
room.save(function(err) {
res.send(room);
});
});
});

app.get('/sets', redirectToMainSite , playlists.list );
app.get('/stats', pages.stats );

Expand Down
17 changes: 17 additions & 0 deletions views/layout.jade
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,23 @@ html(lang="en-US", ng-app="soundtrack-io")
button.btn.btn(data-dismiss="modal") Cancel
button.btn.btn-primary.btn-large(type="submit") Save Changes »

form#edit-room-modal.modal.hide.fade(data-for="edit-room")
input(type="hidden", name="roomSlug")

.modal-header
button.close(data-dismiss="modal") ×
h3 Edit Room
.modal-body(style="min-height: 20em;")
//-label(for="name") Name
//-input.input-block-level(type="text", name="room")
label(for="description") Description
textarea.input-block-level(name="description", rows="10")

.modal-footer
button.btn.btn(data-dismiss="modal") Cancel
button.btn.btn-primary.btn-large(type="submit") Save Changes »

#playlist-modal.modal.hide.fade
.modal-header
button.close(data-dismiss="modal") ×
Expand Down
7 changes: 6 additions & 1 deletion views/rooms.jade
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,16 @@ block content
td
h3(style="line-height: 16px;")
a(href="//#{room.slug}.#{config.app.host}") #{room.name}
if (room._owner && room._owner._id && user && user._id)
if (room._owner._id.toString() === user._id.toString())
|
a.btn.btn-mini(data-action="launch-room-editor", data-room-slug="#{room.slug}") edit
if (room._owner)
br
small hosted by
a(href="/#{room._owner.slug}") #{room._owner.username}
p !{marked(room.description || '')}
//-p !{marked(room.description || '')}
p #{room.description}
td
if (room.track && room.track._artist)
h5
Expand Down

0 comments on commit dce1755

Please sign in to comment.