summaryrefslogtreecommitdiff
path: root/public/assets/js/lib
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/js/lib')
-rw-r--r--public/assets/js/lib/HeaderView.js2
-rw-r--r--public/assets/js/lib/NavView.js20
-rw-r--r--public/assets/js/lib/ProjectView.js24
-rw-r--r--public/assets/js/lib/SiteRouter.js31
4 files changed, 66 insertions, 11 deletions
diff --git a/public/assets/js/lib/HeaderView.js b/public/assets/js/lib/HeaderView.js
index b568ecb..bc64d85 100644
--- a/public/assets/js/lib/HeaderView.js
+++ b/public/assets/js/lib/HeaderView.js
@@ -25,7 +25,7 @@ var HeaderView = View.extend({
},
toggleNav: function(){
- $('body').toggleClass('navopen');
+ $('body').toggleClass('navopen')
},
})
diff --git a/public/assets/js/lib/NavView.js b/public/assets/js/lib/NavView.js
index 0ed1d4f..ae60bdf 100644
--- a/public/assets/js/lib/NavView.js
+++ b/public/assets/js/lib/NavView.js
@@ -11,29 +11,41 @@ var NavView = View.extend({
click: function(e){
var id = $(e.target).data("id")
+ this.pick(id)
+ },
+
+ pick: function(id){
var view = app.lookup[ id ]
- this.swap( view )
+ this.swap( view, "down" )
},
previous: function(){
var index = Math.max( app.view.page_number - 1, 0 )
var view = app.projects[ index ]
- this.swap( view )
+ this.swap( view, "up" )
},
next: function(){
var index = Math.min( app.view.page_number + 1, app.projects.length - 1 )
var view = app.projects[ index ]
- this.swap( view )
+ this.swap( view, "down" )
},
- swap: function(view) {
+ swap: function(view, direction) {
+ if (view && ! app.view) {
+ app.view = view
+ app.view.show()
+ return
+ }
if (! view || app.view == view || app.view.showing) {
return
}
console.log(view.page_number, view.project_id)
+ direction = direction || "down"
+ addClassForPeriod( document.body, direction, app.navigation_delay )
+
app.view.hide()
view.show()
app.view = view
diff --git a/public/assets/js/lib/ProjectView.js b/public/assets/js/lib/ProjectView.js
index 02d7d4e..3bef408 100644
--- a/public/assets/js/lib/ProjectView.js
+++ b/public/assets/js/lib/ProjectView.js
@@ -1,13 +1,13 @@
var ProjectView = View.extend({
events: {
- "click": "next",
+ "click": "nextOrCloseNav",
"click .page-up": "previous",
"click .page-down": "next",
},
initialize: function(opt){
- this.gallery = new GalleryView ()
+ // this.gallery = new GalleryView ()
this.project_id = this.$el.data("id")
this.page_number = opt.page_number
console.log("INIT", this.project_id)
@@ -21,15 +21,22 @@ var ProjectView = View.extend({
app.header.updateSlideCount( 1 )
$('body').removeClass('navopen')
this.$el.removeClass("hidden")
+
+ if (this.project_id == "cover") {
+ app.router.pushState("/")
+ }
+ else {
+ app.router.pushState("/project/" + this.project_id)
+ }
this.showing = true
- addClassForPeriod( this.el, "showing", 200, function(){
+ addClassForPeriod( this.el, "showing", app.navigation_delay, function(){
this.showing = false
}.bind(this) )
},
hide: function(){
- addClassForPeriod( this.el, "hiding", 200, function(){
+ addClassForPeriod( this.el, "hiding", app.navigation_delay, function(){
this.$el.addClass("hidden")
}.bind(this) )
},
@@ -39,9 +46,14 @@ var ProjectView = View.extend({
app.nav.previous()
},
- next: function(e){
+ nextOrCloseNav: function(e){
e.stopPropagation()
- app.nav.next()
+ if ($('body').hasClass('navopen')) {
+ $('body').removeClass('navopen')
+ }
+ else {
+ app.nav.next()
+ }
},
})
diff --git a/public/assets/js/lib/SiteRouter.js b/public/assets/js/lib/SiteRouter.js
new file mode 100644
index 0000000..7f1cec6
--- /dev/null
+++ b/public/assets/js/lib/SiteRouter.js
@@ -0,0 +1,31 @@
+var SiteRouter = Router.extend({
+
+ el: 'body',
+ routeByHash: false,
+
+ routes: {
+ '/': 'home',
+ '/page/:id': 'project',
+ '/project/:id': 'project',
+ },
+
+ initial_route: null,
+ launch: function(){
+ if (this.initial_route) {
+ this.parseRoute( this.initial_route )
+ }
+ else {
+ this.route()
+ }
+ this.initial_route = null
+ },
+
+ home: function(){
+ app.nav.pick("cover")
+ },
+
+ project: function(id){
+ app.nav.pick(id)
+ },
+
+}) \ No newline at end of file