diff options
| -rw-r--r-- | public/assets/javascripts/ui/MasterView.js | 63 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/ModalView.js | 11 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/NewProjectModal.js (renamed from public/assets/javascripts/ui/CreateProjectModal.js) | 2 | ||||
| -rw-r--r-- | server/index.js | 6 | ||||
| -rw-r--r-- | server/lib/views.js | 12 | ||||
| -rw-r--r-- | views/modal.ejs (renamed from views/login.ejs) | 13 | ||||
| -rw-r--r-- | views/partials/header.ejs | 2 | ||||
| -rw-r--r-- | views/partials/meta.ejs | 4 | ||||
| -rw-r--r-- | views/partials/scripts.ejs | 94 | ||||
| -rw-r--r-- | views/profile.ejs | 4 | ||||
| -rw-r--r-- | views/projects/new-project.ejs (renamed from views/projects/create-project.ejs) | 0 |
11 files changed, 123 insertions, 88 deletions
diff --git a/public/assets/javascripts/ui/MasterView.js b/public/assets/javascripts/ui/MasterView.js index e99777e..a39c6f0 100644 --- a/public/assets/javascripts/ui/MasterView.js +++ b/public/assets/javascripts/ui/MasterView.js @@ -3,47 +3,72 @@ var MasterView = View.extend({ el: "body", events: { - "click [data-role='show-signup-modal']": 'showSignUpModal', - "click [data-role='show-signin-modal']": 'showSignInModal', - "click [data-role='create-project-modal']": 'showCreateProjectModal', - "click [data-role='edit-project-modal']": 'showEditProjectModal', - "click [data-role='edit-profile-modal']": 'showEditProfileModal', + "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.createProjectModal = new CreateProjectModal() + this.newProjectModal = new NewProjectModal() this.editProjectModal = new EditProjectModal() this.editProfileModal = new EditProfileModal() + + for (var route in this.routes) { + if (window.location.pathname.indexOf(route) === 0) { + this[this.routes[route]]() + break; + } + } $("body").removeClass("loading") - // app.launch() - }, - showSignUpModal: function(e){ - e.preventDefault() + launch: function(){ + app.launch() + }, + + signup: function(e){ + e && e.preventDefault() + window.history.pushState(null, document.title, "/signup") this.signUpModal.load() }, - showSignInModal: function(e){ - e.preventDefault() + signin: function(e){ + e && e.preventDefault() + window.history.pushState(null, document.title, "/login") this.signInModal.load() }, - showCreateProjectModal: function(e){ - e.preventDefault() - this.createProjectModal.load() + newProject: function(e){ + e && e.preventDefault() + window.history.pushState(null, document.title, "/project/new") + + this.newProjectModal.load() }, - showEditProjectModal: function(e){ - e.preventDefault() + editProject: function(e){ + e && e.preventDefault() + window.history.pushState(null, document.title, "/project/edit") + this.editProjectModal.load() }, - showEditProfileModal: function(e){ - e.preventDefault() + editProfile: function(e){ + e && e.preventDefault() + window.history.pushState(null, document.title, "/profile/edit") + this.editProfileModal.load() }, diff --git a/public/assets/javascripts/ui/ModalView.js b/public/assets/javascripts/ui/ModalView.js index 5c8e832..a34520f 100644 --- a/public/assets/javascripts/ui/ModalView.js +++ b/public/assets/javascripts/ui/ModalView.js @@ -1,7 +1,7 @@ var ModalView = View.extend({ events: { - "click .close": 'hide', + "click .close": 'close', }, show: function(){ @@ -14,5 +14,14 @@ var ModalView = View.extend({ // $(".mediaDrawer, .room1").removeClass("active editing"); this.$el.removeClass("active"); $("body").removeClass("noOverflow"); + }, + + close: function(){ + if (window.isModalView) { + window.location.pathname = "/" + } + else { + this.hide() + } } }) diff --git a/public/assets/javascripts/ui/CreateProjectModal.js b/public/assets/javascripts/ui/NewProjectModal.js index 44c5a20..58dcb73 100644 --- a/public/assets/javascripts/ui/CreateProjectModal.js +++ b/public/assets/javascripts/ui/NewProjectModal.js @@ -1,6 +1,6 @@ -var CreateProjectModal = ModalView.extend({ +var NewProjectModal = ModalView.extend({ el: ".mediaDrawer.newProject", action: "/project/new", diff --git a/server/index.js b/server/index.js index 05d353d..fc77660 100644 --- a/server/index.js +++ b/server/index.js @@ -60,7 +60,8 @@ app.all('*', middleware.ensureLocals); // Initialize views app.get('/', views.home); -app.get('/login', views.login); +app.get('/login', views.modal); +app.get('/signup', views.modal); app.post('/auth/signin', auth.loggedIn('local')); app.post('/auth/signup', auth.signup); app.get('/logout', auth.logout); @@ -70,6 +71,9 @@ app.get('/auth/facebook', auth.login('facebook')); app.get('/auth/facebook/callback', auth.loggedIn('facebook')); app.get('/profile', views.profile) app.get('/profile/edit', views.profile) + +app.get('/project/new', views.modal); + app.get(/^\/([-_a-zA-Z0-9]+)\/?$/, views.profile) diff --git a/server/lib/views.js b/server/lib/views.js index a8723eb..4f2402b 100644 --- a/server/lib/views.js +++ b/server/lib/views.js @@ -5,17 +5,19 @@ var User = require('./schemas/User'), config = require('../../config'), _ = require('lodash'); -exports.login = function (req, res) { - res.render('login', { +var views = {} + +views.modal = function (req, res) { + res.render('modal', { }); }; -exports.home = function (req, res) { +views.home = function (req, res) { res.render('home', { }) } -exports.profile = function (req, res) { +views.profile = function (req, res) { var username = req.params[0] if (username) { User.findOne({ username: username }, function (err, user) { @@ -43,3 +45,5 @@ exports.profile = function (req, res) { }) } } + +module.exports = views diff --git a/views/login.ejs b/views/modal.ejs index b37d18d..b47f6aa 100644 --- a/views/login.ejs +++ b/views/modal.ejs @@ -3,11 +3,6 @@ <head> <title>vvalls</title> [[ include partials/meta ]] - <script> - window.addEventListener("load",function() { - window.scrollTo(0,0) - }, false); - </script> </head> <body class="loading"> <div class="rapper page" style="height: 100%;"> @@ -16,14 +11,12 @@ <div style="height: 70%; clear: both;"></div> [[ include partials/signin ]] + [[ include projects/new-project ]] + [[ include projects/edit-project ]] [[ include partials/footer ]] </div> </body> [[ include partials/scripts ]] -<script> -setTimeout(function(){ - $("[data-role='show-signin-modal']").trigger("click") -}) -</script> +<script>window.isModalView = true</script> </html> diff --git a/views/partials/header.ejs b/views/partials/header.ejs index d6c8fa9..c706aa1 100644 --- a/views/partials/header.ejs +++ b/views/partials/header.ejs @@ -1,4 +1,4 @@ -<a href="/" class="logo"><img src="assets/img/logo4.svg"></a> +<a href="/" class="logo"><img src="/assets/img/logo4.svg"></a> <span class="topLinks"> [[ if (logged_in) { ]] diff --git a/views/partials/meta.ejs b/views/partials/meta.ejs index 32a3318..d1397c6 100644 --- a/views/partials/meta.ejs +++ b/views/partials/meta.ejs @@ -13,8 +13,8 @@ <meta property="og:site_name" content="" /> <link rel="icon" href="favicon.ico" type="image/x-icon"> <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> - <link href='assets/stylesheets/ionicons.css' rel='stylesheet' type='text/css'> - <link href='assets/stylesheets/app.css' rel='stylesheet' type='text/css'> + <link href='/assets/stylesheets/ionicons.css' rel='stylesheet' type='text/css'> + <link href='/assets/stylesheets/app.css' rel='stylesheet' type='text/css'> <!--[if lt IE 9]> <style> diff --git a/views/partials/scripts.ejs b/views/partials/scripts.ejs index c8f65f6..e466f8b 100644 --- a/views/partials/scripts.ejs +++ b/views/partials/scripts.ejs @@ -1,54 +1,54 @@ -<script type="text/javascript" src="assets/javascripts/vendor/bower_components/jquery/dist/jquery.min.js"></script> -<script type="text/javascript" src="assets/javascripts/vendor/bower_components/lodash/dist/lodash.min.js"></script> -<script type="text/javascript" src="assets/javascripts/vendor/bower_components/momentjs/min/moment.min.js"></script> -<script type="text/javascript" src="assets/javascripts/vendor/tube.js"></script> -<script type="text/javascript" src="assets/javascripts/vendor/loader.js"></script> -<script type="text/javascript" src="assets/javascripts/vendor/polyfill.js"></script> -<script type="text/javascript" src="assets/javascripts/vendor/view.js"></script> -<script type="text/javascript" src="assets/javascripts/vendor/sha1.js"></script> -<script type="text/javascript" src="assets/javascripts/util.js"></script> +<script type="text/javascript" src="/assets/javascripts/vendor/bower_components/jquery/dist/jquery.min.js"></script> +<script type="text/javascript" src="/assets/javascripts/vendor/bower_components/lodash/dist/lodash.min.js"></script> +<script type="text/javascript" src="/assets/javascripts/vendor/bower_components/momentjs/min/moment.min.js"></script> +<script type="text/javascript" src="/assets/javascripts/vendor/tube.js"></script> +<script type="text/javascript" src="/assets/javascripts/vendor/loader.js"></script> +<script type="text/javascript" src="/assets/javascripts/vendor/polyfill.js"></script> +<script type="text/javascript" src="/assets/javascripts/vendor/view.js"></script> +<script type="text/javascript" src="/assets/javascripts/vendor/sha1.js"></script> +<script type="text/javascript" src="/assets/javascripts/util.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/_env.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/util/colors.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/util/constants.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/util/debug.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/util/sort.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/util/wheel.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/util/mouse.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/util/keys.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/models/room.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/models/wall.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/models/tree.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/models/rect.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/models/vec2.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/models/vec3.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/models/mat4.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/_env.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/util/colors.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/util/constants.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/util/debug.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/util/sort.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/util/wheel.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/util/mouse.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/util/keys.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/models/room.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/models/wall.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/models/tree.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/models/rect.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/models/vec2.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/models/vec3.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/models/mat4.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/engine/rooms/_rooms.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/engine/rooms/builder.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/engine/rooms/clipper.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/engine/rooms/mover.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/rooms/_rooms.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/rooms/builder.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/rooms/clipper.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/rooms/mover.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/engine/scenery/_scenery.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/engine/scenery/image/_image.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/engine/scenery/image/move.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/engine/scenery/image/resize.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/scenery/_scenery.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/scenery/image/_image.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/scenery/image/move.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/scenery/image/resize.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/engine/map/_map.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/engine/map/ui.js"></script> -<script type="text/javascript" src="assets/javascripts/rectangles/engine/map/draw.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/map/_map.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/map/ui.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/map/draw.js"></script> -<script type="text/javascript" src="assets/javascripts/mx/mx.js"></script> -<script type="text/javascript" src="assets/javascripts/mx/extensions/mx.scene.js"></script> -<script type="text/javascript" src="assets/javascripts/mx/extensions/mx.movements.js"></script> -<script type="text/javascript" src="assets/javascripts/mx/primitives/mx.image.js"></script> +<script type="text/javascript" src="/assets/javascripts/mx/mx.js"></script> +<script type="text/javascript" src="/assets/javascripts/mx/extensions/mx.scene.js"></script> +<script type="text/javascript" src="/assets/javascripts/mx/extensions/mx.movements.js"></script> +<script type="text/javascript" src="/assets/javascripts/mx/primitives/mx.image.js"></script> -<script type="text/javascript" src="assets/javascripts/ui/ModalView.js"></script> -<script type="text/javascript" src="assets/javascripts/ui/MasterView.js"></script> -<script type="text/javascript" src="assets/javascripts/ui/SignInModal.js"></script> -<script type="text/javascript" src="assets/javascripts/ui/SignUpModal.js"></script> -<script type="text/javascript" src="assets/javascripts/ui/CreateProjectModal.js"></script> -<script type="text/javascript" src="assets/javascripts/ui/EditProjectModal.js"></script> -<script type="text/javascript" src="assets/javascripts/ui/EditProfileModal.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/ModalView.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/MasterView.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/SignInModal.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/SignUpModal.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/NewProjectModal.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/EditProjectModal.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/EditProfileModal.js"></script> -<script type="text/javascript" src="assets/javascripts/app.js"></script> +<script type="text/javascript" src="/assets/javascripts/app.js"></script> diff --git a/views/profile.ejs b/views/profile.ejs index 26f1ee1..8540785 100644 --- a/views/profile.ejs +++ b/views/profile.ejs @@ -41,10 +41,10 @@ [[ include projects/list-projects ]] - <a href="#" data-role="create-project-modal" class="viewMore" id="createProject">create project</a> + <a href="#" data-role="new-project-modal" class="viewMore" id="createProject">create project</a> [[ include partials/edit-profile ]] - [[ include projects/create-project ]] + [[ include projects/new-project ]] [[ include projects/edit-project ]] [[ include partials/footer ]] diff --git a/views/projects/create-project.ejs b/views/projects/new-project.ejs index e151f3a..e151f3a 100644 --- a/views/projects/create-project.ejs +++ b/views/projects/new-project.ejs |
