summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--public/assets/javascripts/ui/MasterView.js63
-rw-r--r--public/assets/javascripts/ui/ModalView.js11
-rw-r--r--public/assets/javascripts/ui/NewProjectModal.js (renamed from public/assets/javascripts/ui/CreateProjectModal.js)2
-rw-r--r--server/index.js6
-rw-r--r--server/lib/views.js12
-rw-r--r--views/modal.ejs (renamed from views/login.ejs)13
-rw-r--r--views/partials/header.ejs2
-rw-r--r--views/partials/meta.ejs4
-rw-r--r--views/partials/scripts.ejs94
-rw-r--r--views/profile.ejs4
-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