From b9dacb35ff90c6f666121742cf03f30ea4d2129d Mon Sep 17 00:00:00 2001 From: Julie Lala Date: Sun, 22 Jun 2014 20:33:26 -0400 Subject: fix proj deletion --- server/lib/api/layouts.js | 1 - server/lib/api/projects.js | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) (limited to 'server/lib') diff --git a/server/lib/api/layouts.js b/server/lib/api/layouts.js index 1364426..641e9e2 100644 --- a/server/lib/api/layouts.js +++ b/server/lib/api/layouts.js @@ -93,7 +93,6 @@ var layouts = { destroy: function(req, res){ var _id = req.body._id - console.log(_id) if (! _id || ! _id.length) { res.json({ error: 404 }) return diff --git a/server/lib/api/projects.js b/server/lib/api/projects.js index 32be88c..fc54a5f 100644 --- a/server/lib/api/projects.js +++ b/server/lib/api/projects.js @@ -101,7 +101,7 @@ var projects = { destroy: function(req, res){ var _id = req.body._id - if (! id || ! id.length) { + if (! _id || ! _id.length) { res.json({ error: 404 }) return } -- cgit v1.2.3-70-g09d2 From b0ab3271996d542e718e8e3fc910053d60cf81f6 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 23 Jun 2014 15:27:02 -0400 Subject: standalone viewer --- public/assets/javascripts/rectangles/_env.js | 5 +- .../javascripts/rectangles/engine/map/_map.js | 11 +- .../javascripts/rectangles/engine/rooms/clipper.js | 2 +- .../javascripts/rectangles/engine/scenery/move.js | 4 + public/assets/javascripts/rectangles/util/mouse.js | 17 +- .../javascripts/rectangles/util/permissions.js | 15 ++ public/assets/javascripts/ui/SiteRouter.js | 169 -------------------- public/assets/javascripts/ui/_router.js | 175 +++++++++++++++++++++ .../assets/javascripts/ui/editor/EditorToolbar.js | 38 ++++- public/assets/javascripts/ui/reader/ReaderView.js | 28 ++++ public/assets/javascripts/util.js | 9 +- server/index.js | 4 +- server/lib/middleware.js | 25 ++- server/lib/views.js | 26 ++- views/controls/reader/about-room.ejs | 14 ++ views/partials/scripts.ejs | 4 +- views/reader.ejs | 25 +++ views/signed-out.ejs | 21 --- 18 files changed, 370 insertions(+), 222 deletions(-) delete mode 100644 public/assets/javascripts/ui/SiteRouter.js create mode 100644 public/assets/javascripts/ui/_router.js create mode 100644 public/assets/javascripts/ui/reader/ReaderView.js create mode 100644 views/controls/reader/about-room.ejs create mode 100644 views/reader.ejs delete mode 100755 views/signed-out.ejs (limited to 'server/lib') diff --git a/public/assets/javascripts/rectangles/_env.js b/public/assets/javascripts/rectangles/_env.js index 1e89696..3cfe969 100644 --- a/public/assets/javascripts/rectangles/_env.js +++ b/public/assets/javascripts/rectangles/_env.js @@ -17,9 +17,6 @@ environment.init = function(){ scene.camera.radius = 20 } - map.center.a = 0 - map.center.b = 0 - app.movements.gravity(true) Rooms.init() @@ -35,7 +32,7 @@ environment.init = function(){ el: document.querySelector("#minimap .el"), width: 130, height: 130, - zoom: -4.8 + zoom: -4.8 }) } } diff --git a/public/assets/javascripts/rectangles/engine/map/_map.js b/public/assets/javascripts/rectangles/engine/map/_map.js index d5a8442..99ede82 100644 --- a/public/assets/javascripts/rectangles/engine/map/_map.js +++ b/public/assets/javascripts/rectangles/engine/map/_map.js @@ -65,13 +65,14 @@ var Map = function(opt){ canvas.width = base.dimensions.a = window.innerWidth canvas.height = base.dimensions.b = window.innerHeight } - - base.update = function(){ - base.draw.animate() - } - + base.toggle = function(){ $(base.el).toggle() } } + +Map.prototype.update = function(){ + this.draw && this.draw.animate() +} + diff --git a/public/assets/javascripts/rectangles/engine/rooms/clipper.js b/public/assets/javascripts/rectangles/engine/rooms/clipper.js index 0854013..eb467cd 100644 --- a/public/assets/javascripts/rectangles/engine/rooms/clipper.js +++ b/public/assets/javascripts/rectangles/engine/rooms/clipper.js @@ -8,7 +8,7 @@ Rooms.clipper = new function(){ } base.bind = function(){ - map.ui.mouse.tube.on("up", function(){ base.update() }) + map.ui && map.ui.mouse.tube.on("up", function(){ base.update() }) } base.update = function(){ diff --git a/public/assets/javascripts/rectangles/engine/scenery/move.js b/public/assets/javascripts/rectangles/engine/scenery/move.js index f38a740..bad0a55 100644 --- a/public/assets/javascripts/rectangles/engine/scenery/move.js +++ b/public/assets/javascripts/rectangles/engine/scenery/move.js @@ -26,6 +26,10 @@ Scenery.move = function(base){ Scenery.remove(base.id) return } + if (! (editor.permissions.move || editor.permissions.resize) ) { + e.clickAccepted = false + return + } dragging = true x = base.mx.x y = base.mx.y diff --git a/public/assets/javascripts/rectangles/util/mouse.js b/public/assets/javascripts/rectangles/util/mouse.js index 2ec35e6..06958af 100644 --- a/public/assets/javascripts/rectangles/util/mouse.js +++ b/public/assets/javascripts/rectangles/util/mouse.js @@ -95,8 +95,6 @@ function mouse (opt) { } base.mousedown = function(e){ - e.stopPropagation() - if (opt.use_offset) { offset = this.getBoundingClientRect() } @@ -106,12 +104,18 @@ function mouse (opt) { var x = pos.a, y = pos.b base.cursor = new Rect (x,y, x,y) base.down = true - + e.clickAccepted = true + base.tube("down", e, base.cursor) + + if (e.clickAccepted) { + e.stopPropagation() + } + else { + base.down = false + } } base.mousemove = function(e){ - e.stopPropagation() - if (opt.use_offset && ! offset) return var pos = positionFromMouse(e) @@ -126,10 +130,11 @@ function mouse (opt) { base.cursor.x.b = x base.cursor.y.b = y base.tube("drag", e, base.cursor) + e.stopPropagation() } else { base.cursor.x.a = base.cursor.x.b = x - base.cursor.y.a = base.cursor.y.b = y + base.cursor.y.a = base.cursor.y.b = y base.tube("move", e, base.cursor) } } diff --git a/public/assets/javascripts/rectangles/util/permissions.js b/public/assets/javascripts/rectangles/util/permissions.js index 22a6079..adb2498 100644 --- a/public/assets/javascripts/rectangles/util/permissions.js +++ b/public/assets/javascripts/rectangles/util/permissions.js @@ -15,3 +15,18 @@ Permissions.prototype.toggle = function (key) { }) return state } + +Permissions.prototype.assign = function (key, state) { + var base = this + base.keys.forEach(function(op){ + base[op] = op == key ? state : false + }) + return state +} + +Permissions.prototype.clear = function () { + var base = this + base.keys.forEach(function(op){ + base[op] = false + }) +} diff --git a/public/assets/javascripts/ui/SiteRouter.js b/public/assets/javascripts/ui/SiteRouter.js deleted file mode 100644 index 3a6b589..0000000 --- a/public/assets/javascripts/ui/SiteRouter.js +++ /dev/null @@ -1,169 +0,0 @@ - -var SiteRouter = Router.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', - "click [data-role='new-document-modal']": 'newDocument', - "click [data-role='edit-document-modal']": 'editDocument', - "click [data-role='destroy-document-modal']": 'destroyDocument', - "click [data-role='show-layouts-modal']": 'layoutPicker', - "click [data-role='show-projects-modal']": 'projectPicker', - }, - - routes: { - "/login": 'signin', - "/signup": 'signup', - "/profile": 'profile', - "/profile/edit": 'editProfile', - "/about/:name/edit": 'editDocument', - "/about/new": 'newDocument', - - "/layout": 'layoutPicker', - "/layout/:name": 'layoutEditor', - - "/project": 'projectPicker', - "/project/new": 'newProject', - "/project/new/:layout": 'projectNewWithLayout', - "/project/:name": 'projectEditor', - }, - - initialize: function(){ - this.signUpModal = new SignUpModal() - this.signInModal = new SignInModal() - this.layoutsModal = new LayoutsModal() - this.projectsModal = new ProjectsModal() - this.newProjectModal = new NewProjectModal() - this.editProjectModal = new EditProjectModal() - this.editProfileModal = new EditProfileModal() - this.documentModal = new DocumentModal() - - this.route() - - $("body").removeClass("loading") - }, - - - layoutEditor: function(e, name){ - app.mode.builder = true - app.launch() - - this.builderView = new BuilderView() - this.builderView.load(name) - }, - - layoutPicker: function(e){ - e && e.preventDefault() - window.history.pushState(null, document.title, "/layout") - this.layoutsModal.load() - }, - - projectPicker: function(e){ - e && e.preventDefault() - window.history.pushState(null, document.title, "/project") - this.projectsModal.load() - }, - - newProject: function(e){ - e && e.preventDefault() - window.history.pushState(null, document.title, "/project/new") - this.newProjectModal.load() - }, - - projectNewWithLayout: function(e, layout){ - e && e.preventDefault() - - app.mode.editor = true - app.launch() - - layout = slugify(layout) - - window.history.pushState(null, document.title, "/project/new/" + layout) - this.editorView = new EditorView() - this.editorView.loadLayout(layout) - }, - - projectEditor: function(e, name){ - app.mode.editor = true - app.launch() - - this.editorView = new EditorView() - this.editorView.load(name) - }, - - -/* - editProject: function(e){ - e && e.preventDefault() - window.history.pushState(null, document.title, "/project/edit") - this.editProjectModal.load() - }, -*/ - - 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() - }, - - profile: function(e){ - var classes = ['one', 'two', 'three', 'four', - 'five', 'six', 'seven', 'eight', - 'nine', 'ten', 'eleven', 'twelve', - 'thirteen']; - $(".bio").addClass(choice(classes)); - }, - - editProfile: function(e){ - e && e.preventDefault() - window.history.pushState(null, document.title, "/profile/edit") - - this.editProfileModal.load() - }, - - - newDocument: function(e){ - e && e.preventDefault() - - var name = e ? $(e.currentTarget).data("name") : "new" - - window.history.pushState(null, document.title, "/about/new") - this.documentModal.load(name, true) - }, - - editDocument: function(e, name){ - e && e.preventDefault() - - var name = e ? $(e.currentTarget).data("name") : name - window.history.pushState(null, document.title, "/about/" + name + "/edit") - this.documentModal.load(name, false) - }, - - destroyDocument: function(e, name){ - e && e.preventDefault() - - var name = e ? $(e.currentTarget).data("name") : name - - confirmModal.confirm("Are you sure you want to delete " + name + "?", $.proxy(function(){ - this.documentModal.destroy(name, $.proxy(function(){ - AlertModal.alert("Document deleted!", $.proxy(function(){ - window.location.href = "/about" - }, this)) - }, this)) - }, this)) - - // this.documentModal.destroy(name) - }, - -}) - diff --git a/public/assets/javascripts/ui/_router.js b/public/assets/javascripts/ui/_router.js new file mode 100644 index 0000000..6d41d5b --- /dev/null +++ b/public/assets/javascripts/ui/_router.js @@ -0,0 +1,175 @@ + +var SiteRouter = Router.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', + "click [data-role='new-document-modal']": 'newDocument', + "click [data-role='edit-document-modal']": 'editDocument', + "click [data-role='destroy-document-modal']": 'destroyDocument', + "click [data-role='show-layouts-modal']": 'layoutPicker', + "click [data-role='show-projects-modal']": 'projectPicker', + }, + + routes: { + "/login": 'signin', + "/signup": 'signup', + "/profile": 'profile', + "/profile/edit": 'editProfile', + "/about/:name/edit": 'editDocument', + "/about/new": 'newDocument', + + "/layout": 'layoutPicker', + "/layout/:name": 'layoutEditor', + + "/project": 'projectPicker', + "/project/new": 'newProject', + "/project/new/:layout": 'projectNewWithLayout', + "/project/:name": 'projectEditor', + }, + + initialize: function(){ + this.signUpModal = new SignUpModal() + this.signInModal = new SignInModal() + this.layoutsModal = new LayoutsModal() + this.projectsModal = new ProjectsModal() + this.newProjectModal = new NewProjectModal() + this.editProjectModal = new EditProjectModal() + this.editProfileModal = new EditProfileModal() + this.documentModal = new DocumentModal() + + this.route() + + $("body").removeClass("loading") + }, + + + layoutEditor: function(e, name){ + app.mode.builder = true + app.launch() + + this.builderView = new BuilderView() + this.builderView.load(name) + }, + + layoutPicker: function(e){ + e && e.preventDefault() + window.history.pushState(null, document.title, "/layout") + this.layoutsModal.load() + }, + + projectPicker: function(e){ + e && e.preventDefault() + window.history.pushState(null, document.title, "/project") + this.projectsModal.load() + }, + + newProject: function(e){ + e && e.preventDefault() + window.history.pushState(null, document.title, "/project/new") + this.newProjectModal.load() + }, + + projectNewWithLayout: function(e, layout){ + e && e.preventDefault() + + app.mode.editor = true + app.launch() + + layout = slugify(layout) + + window.history.pushState(null, document.title, "/project/new/" + layout) + this.editorView = new EditorView() + this.editorView.loadLayout(layout) + }, + + projectEditor: function(e, name){ + app.mode.editor = true + app.launch() + + if ($(".aboutRoom").length) { + this.readerView = new ReaderView() + this.readerView.load(name) + } + else { + this.editorView = new EditorView() + this.editorView.load(name) + } + }, + + +/* + editProject: function(e){ + e && e.preventDefault() + window.history.pushState(null, document.title, "/project/edit") + this.editProjectModal.load() + }, +*/ + + 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() + }, + + profile: function(e){ + var classes = ['one', 'two', 'three', 'four', + 'five', 'six', 'seven', 'eight', + 'nine', 'ten', 'eleven', 'twelve', + 'thirteen']; + $(".bio").addClass(choice(classes)); + }, + + editProfile: function(e){ + e && e.preventDefault() + window.history.pushState(null, document.title, "/profile/edit") + + this.editProfileModal.load() + }, + + + newDocument: function(e){ + e && e.preventDefault() + + var name = e ? $(e.currentTarget).data("name") : "new" + + window.history.pushState(null, document.title, "/about/new") + this.documentModal.load(name, true) + }, + + editDocument: function(e, name){ + e && e.preventDefault() + + var name = e ? $(e.currentTarget).data("name") : name + window.history.pushState(null, document.title, "/about/" + name + "/edit") + this.documentModal.load(name, false) + }, + + destroyDocument: function(e, name){ + e && e.preventDefault() + + var name = e ? $(e.currentTarget).data("name") : name + + confirmModal.confirm("Are you sure you want to delete " + name + "?", $.proxy(function(){ + this.documentModal.destroy(name, $.proxy(function(){ + AlertModal.alert("Document deleted!", $.proxy(function(){ + window.location.href = "/about" + }, this)) + }, this)) + }, this)) + + // this.documentModal.destroy(name) + }, + +}) + diff --git a/public/assets/javascripts/ui/editor/EditorToolbar.js b/public/assets/javascripts/ui/editor/EditorToolbar.js index c3589db..210ef6c 100644 --- a/public/assets/javascripts/ui/editor/EditorToolbar.js +++ b/public/assets/javascripts/ui/editor/EditorToolbar.js @@ -29,21 +29,46 @@ var EditorToolbar = View.extend({ openMediaViewer: function(){ this.parent.mediaViewer.show() this.parent.mediaUpload.show() + this.resetMode() }, - resizeMedia: function(e){ - var state = editor.permissions.toggle("resize") + resetMode: function(){ + this.resizeMedia(false) + this.destroyMedia(false) + }, + + resetControls: function(){ + this.parent.wallpaperPicker.hide() + this.parent.lightControl.hide() + }, + + resizeMedia: function(e, state){ + if (! state && typeof e == "boolean") { + state = e + editor.permissions.assign("resize", state) + } + else { + state = editor.permissions.toggle("resize") + } + ! state && editor.permissions.assign("move", true) $(".inuse").removeClass("inuse") - $(e.currentTarget).toggleClass("inuse", state) + $("[data-role='resize-media']").toggleClass("inuse", state) if (state) { Scenery.resize.hide() } }, - destroyMedia: function(e){ - var state = editor.permissions.toggle("destroy") + destroyMedia: function(e, state){ + if (! state && typeof e == "boolean") { + state = e + editor.permissions.assign("destroy", state) + } + else { + state = editor.permissions.toggle("destroy") + } + ! state && editor.permissions.assign("move", true) $(".inuse").removeClass("inuse") - $(e.currentTarget).toggleClass("inuse", state) + $("[data-role='destroy-media']").toggleClass("inuse", state) $("body").toggleClass("destroyActive", state) }, @@ -62,6 +87,7 @@ var EditorToolbar = View.extend({ var editor = new function(){ this.permissions = new Permissions({ + 'move': true, 'resize': false, 'destroy': false, }) diff --git a/public/assets/javascripts/ui/reader/ReaderView.js b/public/assets/javascripts/ui/reader/ReaderView.js new file mode 100644 index 0000000..001d097 --- /dev/null +++ b/public/assets/javascripts/ui/reader/ReaderView.js @@ -0,0 +1,28 @@ + +var ReaderView = View.extend({ + el: "#readerView", + + projectAction: "/api/projects/", + + events: { + }, + + initialize: function(){ + }, + + load: function(name){ + name = sanitize(name) + $.get(this.projectAction + name, $.proxy(this.ready, this)) + }, + + ready: function(data){ + $("#map").hide() + + data.rooms && Rooms.deserialize(data.rooms) + data.media && Scenery.deserialize(data.media) + data.startPosition && scene.camera.move(data.startPosition) + + editor.permissions.clear() + } + +}) diff --git a/public/assets/javascripts/util.js b/public/assets/javascripts/util.js index ebb1919..b58da1f 100644 --- a/public/assets/javascripts/util.js +++ b/public/assets/javascripts/util.js @@ -1,13 +1,14 @@ if (window.$) { - $.fn.int = function(){ return parseInt($(this).val(),10) } - $.fn.float = function(){ return parseFloat($(this).val()) } - $.fn.string = function(){ return trim($(this).val()) } + $.fn.int = function() { return parseInt($(this).val(),10) } + $.fn.float = function() { return parseFloat($(this).val()) } + $.fn.string = function() { return trim($(this).val()) } $.fn.enable = function() { return $(this).attr("disabled",null) } $.fn.disable = function() { return $(this).attr("disabled","disabled") } + $.fn.htmlSafe = function(s) { return $(this).html(sanitize(s)) } } function trim(s){ return s.replace(/^\s+/,"").replace(/\s+$/,"") } -function sanitize (s){ return (s || "").replace(new RegExp("[<>&\"\']", 'g'), "") } +function sanitize (s){ return (s || "").replace(new RegExp("[<>&]", 'g'), "") } function capitalize (s){ return s.split(" ").map(capitalizeWord).join(" ") } function capitalizeWord (s){ return s.charAt(0).toUpperCase() + s.slice(1) } function slugify (s){ return (s || "").toLowerCase().replace(/\s/g,"-").replace(/[^-_a-zA-Z0-9]/g, '-').replace(/-+/g,"-") } diff --git a/server/index.js b/server/index.js index f76c40b..aed0ea1 100644 --- a/server/index.js +++ b/server/index.js @@ -111,7 +111,7 @@ site.route = function () { app.get('/project', middleware.ensureAuthenticated, views.modal) app.get('/project/new', middleware.ensureAuthenticated, views.modal) app.get('/project/new/:layout', middleware.ensureAuthenticated, views.editor) - app.get('/project/:name', middleware.ensureAuthenticated, views.editor) + app.get('/project/:slug', middleware.ensureProject, views.editor) app.get('/api/layouts', middleware.ensureAuthenticated, api.layouts.index) app.get('/api/layouts/:slug', middleware.ensureAuthenticated, api.layouts.show) @@ -120,7 +120,7 @@ site.route = function () { app.delete('/api/layouts/destroy', middleware.ensureAuthenticated, middleware.ensureIsStaff, api.layouts.destroy) app.get('/api/projects', middleware.ensureAuthenticated, api.projects.index) - app.get('/api/projects/:slug', middleware.ensureAuthenticated, api.projects.show) + app.get('/api/projects/:slug', api.projects.show) app.post('/api/projects/new', middleware.ensureAuthenticated, api.projects.create) app.post('/api/projects/edit', middleware.ensureAuthenticated, api.projects.update) app.delete('/api/projects/destroy', middleware.ensureAuthenticated, api.projects.destroy) diff --git a/server/lib/middleware.js b/server/lib/middleware.js index c74c496..0bc3f7a 100644 --- a/server/lib/middleware.js +++ b/server/lib/middleware.js @@ -4,7 +4,8 @@ var passport = require('passport'), _ = require('lodash'), config = require('../../config.json'), - User = require('./schemas/User'); + User = require('./schemas/User'), + Project = require('./schemas/Project'); var middleware = { @@ -41,6 +42,28 @@ var middleware = { next() }, + ensureProject: function (req, res, next) { + if (req.params.slug) { + Project.findOne({ slug: req.params.slug }, function(err, project){ + if (err) { + console.error(err) + req.project = null + } + else if (! project) { + req.project = null + } + else { + req.project = project + } + next() + }) + } + else { + req.project = null + next() + } + } + } module.exports = middleware diff --git a/server/lib/views.js b/server/lib/views.js index bcb0e90..000ff4d 100644 --- a/server/lib/views.js +++ b/server/lib/views.js @@ -6,7 +6,8 @@ var User = require('./schemas/User'), config = require('../../config'), marked = require('marked'), util = require('./util'), - _ = require('lodash'); + _ = require('lodash'), + moment = require('moment'); marked.setOptions({ renderer: new marked.Renderer(), @@ -19,7 +20,28 @@ marked.setOptions({ var views = {} views.editor = function (req, res) { - res.render('editor') + if (! req.user && ! req.project) { + res.redirect('/') + } + else if (! req.user || (req.project && String(req.user._id) !== String(req.project.user_id))) { + User.findOne({ _id: req.project.user_id }, function(err, user) { + if (err || ! user) { + console.error(err) + res.redirect('/') + return + } + res.render('reader', { + name: util.sanitize(req.project.name), + description: util.sanitize(req.project.description), + date: moment(req.project.updated_at).format("M/DD/YYYY"), + author: user.displayName, + authorlink: "/profile/" + user.username, + }) + }) + } + else { + res.render('editor') + } } views.builder = function (req, res) { diff --git a/views/controls/reader/about-room.ejs b/views/controls/reader/about-room.ejs new file mode 100644 index 0000000..f990da8 --- /dev/null +++ b/views/controls/reader/about-room.ejs @@ -0,0 +1,14 @@ +
+

+ [[- name ]],
+ [[- author ]] +

+

Last modified [[- date ]]

+ [[- description ]] +
+ + diff --git a/views/partials/scripts.ejs b/views/partials/scripts.ejs index fa75efa..39d27e2 100644 --- a/views/partials/scripts.ejs +++ b/views/partials/scripts.ejs @@ -77,6 +77,8 @@ - + + + diff --git a/views/reader.ejs b/views/reader.ejs new file mode 100644 index 0000000..c389431 --- /dev/null +++ b/views/reader.ejs @@ -0,0 +1,25 @@ + + + + vvalls + [[ include partials/meta ]] + + + +
+ +
+ [[ include partials/header ]] + +
+ [[ include controls/reader/about-room ]] +
+
+ + [[ include partials/confirm-modal ]] + [[ include projects/layouts-modal ]] + [[ include partials/sign-in ]] + + +[[ include partials/scripts ]] + diff --git a/views/signed-out.ejs b/views/signed-out.ejs deleted file mode 100755 index c68d960..0000000 --- a/views/signed-out.ejs +++ /dev/null @@ -1,21 +0,0 @@ - - - - vvalls - [[ include partials/meta ]] - - - -
- -
- - - [[ include controls/signed-out ]] -
- - [[ include partials/sign-in ]] - - -[[ include partials/scripts ]] - -- cgit v1.2.3-70-g09d2