refactored some js to make sense of how we're going to attack the post show page with a js Page

This commit is contained in:
danielgrippi 2012-02-17 20:45:11 -08:00
parent 30de08b340
commit 7acbfe1b78
4 changed files with 65 additions and 19 deletions

View file

@ -6,7 +6,8 @@
= post_page_title @post
- content_for :head do
= javascript_include_tag 'vendor/bootstrap/bootstrap-transition', 'vendor/bootstrap/bootstrap-modal', 'posts-show'
= javascript_include_tag 'vendor/bootstrap/bootstrap-transition', 'vendor/bootstrap/bootstrap-modal'
.header
.header-container
#post-author.media

View file

@ -15,6 +15,7 @@ app.Router = Backbone.Router.extend({
"u/:name": "stream",
"followed_tags": "stream",
"tags/:name": "stream",
"posts/:id": "singlePost",
"p/:id": "singlePost"
},

View file

@ -1,11 +1,69 @@
app.views.SinglePost = app.views.Post.extend({
/* SINGLE POST SHOULD BE BROKEN OUT INTO A PAGE VIEW!!!! */
className : "loaded",
next_arrow: $('#forward'),
previous_arrow: $('#back'),
postRenderTemplate : function() {
$('#forward').attr('href', this.model.get('next_post'));
$('#back').attr('href', this.model.get('previous_post'));
}
/* nav should be a subview! and tested! (this is some prototyping stuff right here... */
this.setNav();
/* post author info should be a subview! and tested! */
this.setAuthor();
/* post author info should be a subview! and tested! */
this.setFeedback();
},
setNav : function() {
var mappings = {"#forward" : "next_post",
"#back" : "previous_post"};
_.each(mappings, function(attribute, selector){
this.setArrow($(selector), this.model.get(attribute))
}, this);
this.setMappings();
},
setArrow : function(arrow, loc) {
loc ? arrow.attr('href', loc) : arrow.remove()
},
setMappings : function() {
var nextPostLocation = this.model.get("next_post");
var previousPostLocation = this.model.get("previous_post");
var doc = $(document);
/* focus modal */
doc.keypress(function(event){
$('#text').focus();
$('#comment').modal();
});
/* navagation hooks */
doc.keydown(function(e){
if (e.keyCode == 37 && nextPostLocation) {
window.location = nextPostLocation
}else if(e.keyCode == 39 && previousPostLocation) {
window.location = previousPostLocation
}
})
},
setAuthor : function() {
// author avatar
// time of post
// reshared via... (if appliciable)
},
setFeedback : function() {
// go back to profile (app.user())
// liking
// following
// resharing
// commenting
}
});

View file

@ -1,14 +0,0 @@
$(function(){
$(document).keypress(function(event){
$('#text').focus();
$('#comment').modal();
});
$(document).keydown(function(e){
if (e.keyCode == 37) {
window.location = $('#back').attr('href');
}else if(e.keyCode == 39) {
window.location = $('#forward').attr('href');
}
});
});