var Router = View.extend({ el: "body", events: { "click [data-role='show-signup-modal']": 'signup', "click [data-role='show-signin-modal']": 'signin', "click [data-role='new-project-modal']": 'newProject', "click [data-role='edit-project-modal']": 'editProject', "click [data-role='edit-profile-modal']": 'editProfile', }, routes: { "/login": 'signin', "/signup": 'signup', "/project/new": 'newProject', "/profile/edit": 'editProfile', "/app": 'launch', }, initialize: function(){ this.signUpModal = new SignUpModal() this.signInModal = new SignInModal() this.newProjectModal = new NewProjectModal() this.editProjectModal = new EditProjectModal() this.editProfileModal = new EditProfileModal() this.originalPath = window.location.pathname for (var route in this.routes) { if (window.location.pathname.indexOf(route) === 0) { this[this.routes[route]]() break; } } $("body").removeClass("loading") }, launch: function(){ app.launch() }, signup: function(e){ e && e.preventDefault() window.history.pushState(null, document.title, "/signup") this.signUpModal.load() }, signin: function(e){ e && e.preventDefault() window.history.pushState(null, document.title, "/login") this.signInModal.load() }, newProject: function(e){ e && e.preventDefault() window.history.pushState(null, document.title, "/project/new") this.newProjectModal.load() }, editProject: function(e){ e && e.preventDefault() window.history.pushState(null, document.title, "/project/edit") this.editProjectModal.load() }, editProfile: function(e){ e && e.preventDefault() window.history.pushState(null, document.title, "/profile/edit") this.editProfileModal.load() }, })