diff options
24 files changed, 411 insertions, 83 deletions
diff --git a/public/assets/javascripts/rectangles/engine/scenery/_scenery.js b/public/assets/javascripts/rectangles/engine/scenery/_scenery.js index 24c2602..f6cc8e4 100644 --- a/public/assets/javascripts/rectangles/engine/scenery/_scenery.js +++ b/public/assets/javascripts/rectangles/engine/scenery/_scenery.js @@ -22,6 +22,7 @@ var Scenery = new function(){ case 'video': case 'youtube': case 'vimeo': + if (is_mobile) return scene_media = new Scenery.types.video (opt) break @@ -39,7 +40,10 @@ var Scenery = new function(){ var scene_media = base.add(opt) // test if scenery was placed here - if (! scene_media.bounds) { + if (! scene_media) { + return null + } + else if (! scene_media.bounds) { base.remove( scene_media.id ) return null } diff --git a/public/assets/javascripts/ui/editor/EditorSettings.js b/public/assets/javascripts/ui/editor/EditorSettings.js index 2b29961..026607a 100644 --- a/public/assets/javascripts/ui/editor/EditorSettings.js +++ b/public/assets/javascripts/ui/editor/EditorSettings.js @@ -110,7 +110,6 @@ var EditorSettings = FormView.extend({ clear: function(e){ e.preventDefault() - Scenery.removeAll() }, @@ -215,6 +214,7 @@ var EditorSettings = FormView.extend({ clickSave: function(){ this.toggle(false) this.save() + this.isVisible = true }, success: function(data){ @@ -226,7 +226,13 @@ var EditorSettings = FormView.extend({ Minotaur.hide() window.history.pushState(null, document.title, "/project/" + data.slug + "/edit") - + + this.parent.share.setLink( "http://vvalls.com/project/" + data.slug ) + if (this.isVisible) { + this.isVisible = false + this.parent.share.show() + } + this.parent.data = data }, diff --git a/public/assets/javascripts/ui/editor/EditorView.js b/public/assets/javascripts/ui/editor/EditorView.js index 2872ab9..3773366 100644 --- a/public/assets/javascripts/ui/editor/EditorView.js +++ b/public/assets/javascripts/ui/editor/EditorView.js @@ -21,6 +21,7 @@ var EditorView = View.extend({ this.textEditor = new TextEditor ({ parent: this }) this.collaborators = new Collaborators ({ parent: this }) this.presets = new Presets ({ parent: this }) + this.share = new ShareView ({ parent: this }) }, load: function(name){ @@ -41,6 +42,8 @@ var EditorView = View.extend({ ready: function(data){ $("#map").hide() + this.data = data + this.settings.load(data) this.info.load(data) }, @@ -70,6 +73,7 @@ var EditorView = View.extend({ hideExtras: function(){ this.mediaEditor.hide() this.textEditor.hide() + this.share.hide() Scenery.resize.hide() Scenery.hovering = false } diff --git a/public/assets/javascripts/ui/editor/MediaUpload.js b/public/assets/javascripts/ui/editor/MediaUpload.js index 65778dd..9ae90e3 100644 --- a/public/assets/javascripts/ui/editor/MediaUpload.js +++ b/public/assets/javascripts/ui/editor/MediaUpload.js @@ -63,7 +63,7 @@ var MediaUpload = UploadView.extend({ }, error: function(error){ - console.log(error) + console.log(error) alert(error.errors.media.message) }, diff --git a/public/assets/javascripts/ui/editor/MediaViewer.js b/public/assets/javascripts/ui/editor/MediaViewer.js index 8cae4a4..dd17613 100644 --- a/public/assets/javascripts/ui/editor/MediaViewer.js +++ b/public/assets/javascripts/ui/editor/MediaViewer.js @@ -154,9 +154,11 @@ var MediaViewer = ModalView.extend({ }, addUploadedMedia: function(media){ - this.parent.mediaViewer.$deleteMedia.show() - this.parent.mediaViewer.$noMedia.hide() + this.$deleteMedia.show() + this.$noMedia.hide() this.add(media, this.$myMedia, true) // prepend + this.userToggle() + this.$el.scrollTop(0) this.offset += 1 }, diff --git a/public/assets/javascripts/ui/reader/EmbedView.js b/public/assets/javascripts/ui/reader/EmbedView.js new file mode 100644 index 0000000..7a75e00 --- /dev/null +++ b/public/assets/javascripts/ui/reader/EmbedView.js @@ -0,0 +1,76 @@ +var EmbedView = ModalView.extend({ + el: ".embedView", + + events: { + "keydown": "stopPropagation", + "input [name=width]": "build", + "input [name=height]": "build", + "click [name=mute]": "build", + "click [name=interactive]": "build", + "click textarea": "selectAll", + "click #testEmbed": "test", + }, + + defaultWidth: 600, + defaultHeight: 450, + + initialize: function(opt){ + this.parent = opt.parent + this.$embedCode = this.$("#embedCode") + this.$width = this.$("[name=width]") + this.$height = this.$("[name=height]") + this.$mute = this.$("[name=mute]") + this.$interactive = this.$("[name=interactive]") + + this.$width.val(this.defaultWidth) + this.$height.val(this.defaultHeight) + }, + + show: function(){ + this.build() + this.__super__.show.call(this) + }, + + build: function(){ + var kode = this.getEmbedCode() + this.$embedCode.val( kode ) + }, + + getEmbedCode: function(){ + var mute = this.$mute.prop('checked') ? 1 : 0 + var interactive = this.$interactive.prop('checked') ? 1 : 0 + var width = clamp( this.$width.int(), 0, 2000) || this.defaultWidth + var height = clamp( this.$height.int(), 0, 2000) || this.defaultHeight + var link = this.parent.getLink() + var embed_link = link + embed_link += "?mute=" + mute + embed_link += "&embed=1" + if (interactive) { + embed_link += "&interactive=1" + } + + var kode = "<iframe src='" + encodeURI(embed_link) + "' width='" + width + "' height='" + height + "'" + kode += " seamless scrolling='no' style='border: 0'" + kode += " webkitallowfullscreen mozallowfullscreen allowfullscreen" + if (! interactive) { + kode += " style='pointer-events:none;'" + } + kode += "></iframe>" + + if (! interactive) { + kode = "<div style='position:relative'>" + kode + "<a href='" + encodeURI(link) + "' style='display:block;position:absolute;top:0;left:0;width:" + width + "px;height:" + height + "px;'></a></div>" + } + + return kode + }, + + test: function(){ + var kode = this.getEmbedCode() + window.open("data:text/html," + kode, "_blank") + }, + + selectAll: function(){ + this.$embedCode[0].select() + }, + +}) diff --git a/public/assets/javascripts/ui/reader/ReaderView.js b/public/assets/javascripts/ui/reader/ReaderView.js index c132609..aea681a 100644 --- a/public/assets/javascripts/ui/reader/ReaderView.js +++ b/public/assets/javascripts/ui/reader/ReaderView.js @@ -13,22 +13,64 @@ var ReaderView = View.extend({ }, load: function(name){ - if (window.location.search.indexOf("noui") !== -1) { - $(".logo,.topLinks,#editorView").hide() + var opt = this.getQS() + var mode = "default" + var name = sanitize(name) + + if (opt.noui) { + $(".logo, .topLinks, #editorView, #keyhint").hide() + mode = "noui" } - else { - this.tracker = new Tracker () + if (opt.embed) { + $(".topLinks, .share, #edit-room-link, #keyhint").hide() + mode = "embed" } - if (window.location.search.indexOf("mute") !== -1) { + if (opt.mute) { app.muted = true } - name = sanitize(name) - $.get(this.projectAction + name, this.ready.bind(this)) + + this.tracker = new Tracker ({ mode: mode }) + + $.get(this.projectAction + name, this.ready.bind(this)) + }, + + getQS: function(){ + var qs = {} + window.location.search.replace(/^\?/,"").split("&").forEach(function(s){ + var pair = s.split("=") + if (pair.length < 2) { + qs[pair[0]] = true + } + else { + qs[pair[0]] = pair[1] + } + }) + return qs }, ready: function(data){ $("#map").hide() + this.data = data + var is_landscape = window.innerWidth > window.innerHeight + if (is_desktop || (is_mobile && is_landscape)) { + this.build(data) + return + } + + // don't build anything until we're in landscape mode, otherwise ios might crash + var orientationFn = orientationchange.bind(this) + window.addEventListener('orientationchange', orientationFn) + function orientationchange (e) { + var is_landscape = window.innerWidth > window.innerHeight + if (is_landscape) { + window.removeEventListener('orientationchange', orientationFn) + this.build(data) + } + } + }, + + build: function(data){ data.rooms && Rooms.deserialize(data.rooms) data.walls && Walls.deserialize(data.walls) data.media && Scenery.deserialize(data.media) diff --git a/public/assets/javascripts/ui/reader/ShareView.js b/public/assets/javascripts/ui/reader/ShareView.js index 4e5f832..dbe6f64 100644 --- a/public/assets/javascripts/ui/reader/ShareView.js +++ b/public/assets/javascripts/ui/reader/ShareView.js @@ -2,31 +2,61 @@ var ShareView = View.extend({ el: ".share", events: { + "keydown": "stopPropagation", "click #share_facebook": "facebook", "click #share_twitter": "twitter", + "click #share_embed": "embed", }, initialize: function(opt){ this.parent = opt.parent + this.embedView = new EmbedView ({ parent: this }) + this.$link = this.$("#share_link") + }, + + toggle: function(state){ + if (typeof state == "boolean") { + this.$el.toggleClass("active", state) + } + else { + this.$el.toggleClass("active") + } + }, + show: function(){ + this.toggle(true) + }, + hide: function(){ + this.toggle(false) + }, + + setLink: function(url){ + this.$link.val( url ) + }, + getLink: function(){ + var link = window.location.origin + window.location.pathname + link = link.replace(/\/edit\/?$/, "") + return link }, facebook: function (e) { e.preventDefault() - var msg = $(".roomName").html() + " on VValls" - var url = "https://www.facebook.com/share.php?u=" + encodeURIComponent(window.location.origin + window.location.pathname) + "&t=" + encodeURIComponent(msg); + var link = this.getLink() + var msg = app.controller.data.name + " on VValls" + var url = "https://www.facebook.com/share.php?u=" + encodeURIComponent(link) + "&t=" + encodeURIComponent(msg) window.open(url, "_blank") }, twitter: function (e) { e.preventDefault() - var msg = $(".roomName").html() + " on VValls" - var url = "https://twitter.com/home?status=" + encodeURIComponent(window.location.origin + window.location.pathname + " " + msg); + var link = this.getLink() + var msg = app.controller.data.name + " on VValls" + var url = "https://twitter.com/home?status=" + encodeURIComponent(link + " " + msg) window.open(url, "_blank") }, embed: function (e) { e.preventDefault() - + this.embedView.show() }, }) diff --git a/public/assets/javascripts/ui/reader/Tracker.js b/public/assets/javascripts/ui/reader/Tracker.js index beef071..bad42a8 100644 --- a/public/assets/javascripts/ui/reader/Tracker.js +++ b/public/assets/javascripts/ui/reader/Tracker.js @@ -13,7 +13,7 @@ var Tracker = Fiber.extend(function(base){ this.events = [] this.bind() - this.trackPageview() + this.trackPageview(opt) }, bind: function () { @@ -29,7 +29,7 @@ var Tracker = Fiber.extend(function(base){ }, trackPageview: function(opt){ - this.pushEvent([ "view" ]) + this.pushEvent([ "view", opt.mode ]) }, // diff --git a/public/assets/javascripts/util.js b/public/assets/javascripts/util.js index 2fa994a..1749836 100644 --- a/public/assets/javascripts/util.js +++ b/public/assets/javascripts/util.js @@ -239,4 +239,17 @@ if (!Function.prototype.bind) { }()); +function selectElementContents(el) { + if (window.getSelection && document.createRange) { + var sel = window.getSelection(); + var range = document.createRange(); + range.selectNodeContents(el); + sel.removeAllRanges(); + sel.addRange(range); + } else if (document.selection && document.body.createTextRange) { + var textRange = document.body.createTextRange(); + textRange.moveToElementText(el); + textRange.select(); + } +} diff --git a/public/assets/javascripts/vendor/polyfill.js b/public/assets/javascripts/vendor/polyfill.js index 8e4b9dc..499cbc5 100644 --- a/public/assets/javascripts/vendor/polyfill.js +++ b/public/assets/javascripts/vendor/polyfill.js @@ -53,10 +53,12 @@ function has3d(){ })( navigator.userAgent ); // Naive useragent detection pattern -var is_iphone = (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)); -var is_ipad = (navigator.userAgent.match(/iPad/i)); +var is_iphone = (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) +var is_ipad = (navigator.userAgent.match(/iPad/i)) var is_android = (navigator.userAgent.match(/Android/i)) -var is_mobile = is_iphone || is_ipad || is_android; +var is_mobile = is_iphone || is_ipad || is_android +var is_desktop = ! is_mobile; + // rAF shim (function() { diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index 90454be..5d67f50 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -375,7 +375,7 @@ h5 { .projectList.about .item span h3{ font-weight: 500; - font-size: 30px; + font-size: 25px; margin-bottom: 8px; } @@ -803,6 +803,38 @@ iframe.embed { background-attachment: fixed; } + +.projectList.about.gopro { + padding:6% 0; +} +.about.gopro h3 { + font-weight:500; + text-align:center; + margin-bottom:20px; +} +.gopro span{ + font-size: 24px; + font-weight: 300; + width: 740px; + display: block; + margin: 0 auto; + line-height: 50px; +} +.gopro span a{ + width: 100%; + display: inline-block; + text-align: center; + margin-top: 40px; + background: limegreen; + color: white; + padding: 10px 0; + -webkit-transition:0.2s background; + -moz-transition:0.2s background; + transition:0.2s background; +} +.gopro span a:hover{ + background:black; +} .profilepage .about h2 .btn { float: none; border: 1px solid; @@ -2358,9 +2390,6 @@ form li textarea { z-index: 5; } -.loading .hero .circle { - opacity:0; -} .desktop .hero .circle:hover { background:black; @@ -2544,23 +2573,35 @@ a[data-role="forgot-password"] { text-decoration: none; font-size: 12px; font-weight: 600; + cursor: pointer; } -.share a:nth-child(3){ +.share a:nth-child(3), .share a:nth-child(4) { margin-left:4px; } .share a:hover{ text-decoration:underline; } +.vvbox.share { + width: 300px +} +.vvbox.share #share_link { + width: 100%; + margin-top: 4px; + padding: 3px; + font-weight: 300; + font-size: 11px; +} + /* COLLABORATORS */ -.collaborators .rap { +.mediaDrawer .rap { display: table; width: 100%; height: 100%; } -.collaborators .rap .holder .inner { +.mediaDrawer .rap .holder .inner { width: 480px; margin: 0 auto; text-align: left; @@ -2595,7 +2636,7 @@ a[data-role="forgot-password"] { background-color: black; border-color: black; } -.collaborators p { +.mediaDrawer .rap p { margin: 10px 0 20px; font-weight: 300; } @@ -2603,7 +2644,7 @@ a[data-role="forgot-password"] { font-size: 16px; width: 300px; } -.collaborators h2 { +.mediaDrawer .rap h2 { margin: 20px auto 0; } #collaborator-list { @@ -2639,6 +2680,62 @@ a[data-role="forgot-password"] { font-weight: 300; font-style: italic; } +#collaborator-url-rapper { + display: none; + background: #fff; + border: 1px solid; + box-shadow: -3px 3px 0; + padding: 10px; + font-weight: 300; + font-size: 14px; + margin: 10px 0; +} +#collaborator-url { + font-size: 16px; + width: 500px; + border: 1px solid; + font-size: 14px; + padding: 5px; + font-weight: 300; + margin-top: 5px; + display: block; +} + +/* EMBED CODE GENERATOR */ + +.embedView { + font-weight: 300; +} +.embedView textarea { + border: 1px solid black; + width: 100%; + height: 100px; + font-family: 'Menlo', 'Monaco', 'Lucida Sans Console', monospace; + padding: 5px; + line-height: 15px; +} +.embedView input[type=text] { + border: 1px solid black; + width: 40px; + padding: 2px; + font-size: 14px; + margin: 5px; +} +.embedView label { + font-size: 14px; + padding: 0 3px; +} +#testEmbed { + cursor: pointer; + float: right; + font-size: 11px; + margin-top: 11px; + font-weight: 100; + color: #888; +} +#testEmbed:hover { + text-decoration: underline; +} /* MARCHING ANTS ANIMATION */ @@ -2826,8 +2923,17 @@ a[data-role="forgot-password"] { padding:50px 0 120px 0; } .videoModal .ion-ios7-close-empty { - right: 10px; - top: 20px; + right: 10px; + top: 20px; + } + .gopro span { + font-size: 16px; + width: 93%; + line-height: 22px; + text-align: justify; + } + .gopro span a{ + margin-top: 20px; } } @@ -2850,6 +2956,7 @@ a[data-role="forgot-password"] { left: 10px; border: 1px solid; } + } @media screen and (orientation:landscape) { @@ -2860,4 +2967,13 @@ a[data-role="forgot-password"] { bottom: -3px; right: -3px; } -}
\ No newline at end of file + +} +@media screen and (orientation:landscape) and (max-width: 680px){ + .projectList.about .item span:nth-child(1) { + height: 180px; + } + .projectList .projectItem { + width: 55%; + } +} diff --git a/server/lib/views/index.js b/server/lib/views/index.js index 7ffadb9..e37a01d 100644 --- a/server/lib/views/index.js +++ b/server/lib/views/index.js @@ -36,7 +36,7 @@ var views = module.exports = { if (! req.project) { res.redirect('/') } - else if (req.isOwner || req.isCollaborator || req.isStaff) { + else if (req.user && (req.isOwner || req.isCollaborator || req.isStaff)) { res.locals.opt.editing = true res.render('editor', { ogUrl: "http://vvalls.com/project/" + req.project.slug + "/", diff --git a/views/controls/editor/collaborators.ejs b/views/controls/editor/collaborators.ejs index b658bf6..8ad8c00 100644 --- a/views/controls/editor/collaborators.ejs +++ b/views/controls/editor/collaborators.ejs @@ -4,29 +4,29 @@ <div class="rap"> <div class="holder"> <div class="inner vvbox"> - <h2>Collaborators</h2> + <h2>Collaborators</h2> - <p> - To invite others to contribute to this project, submit their email address below. They'll receive an email with instructions to join this blog and register if they're not a Vvalls user yet. - </p> + <p> + To invite others to contribute to this project, submit their email address below. They'll receive an email with instructions to join this project and register if they're not a Vvalls user yet. + </p> - <form> - <input type="text" id="collaborator-email" name="email"> - <input type="submit" id="collaborator-invite" value="Invite to this project"> - </form> + <form> + <input type="text" id="collaborator-email" name="email"> + <input type="submit" id="collaborator-invite" value="Invite to this project"> + </form> - <div id="collaborator-url-rapper"> - We've sent a link to join this project to <span id="collaborator-dummy-email"></span>. - You can also send this link yourself: - <input type="text" id="collaborator-url"> - </div> + <div id="collaborator-url-rapper"> + We've sent a link to join this project to <span id="collaborator-dummy-email"></span>. + You can also send this link yourself: + <input type="text" id="collaborator-url"> + </div> - <ul id="collaborator-list"> - </ul> - </div> + <ul id="collaborator-list"> + </ul> + </div> + </div> </div> </div> -</div> <script type="text/html" id="collaborator-template"> <li> @@ -38,26 +38,3 @@ <span class="role">owner</span> </li> </script> - -<style> -#collaborator-url-rapper { - display: none; - background: #fff; - border: 1px solid; - box-shadow: -3px 3px 0; - padding: 10px; - font-weight: 300; - font-size: 14px; - margin: 10px 0; -} -#collaborator-url { - font-size: 16px; - width: 500px; - border: 1px solid; - font-size: 14px; - padding: 5px; - font-weight: 300; - margin-top: 5px; - display: block; -} -</style> diff --git a/views/controls/editor/share.ejs b/views/controls/editor/share.ejs new file mode 100644 index 0000000..7e7ad3c --- /dev/null +++ b/views/controls/editor/share.ejs @@ -0,0 +1,16 @@ +<div class="vvbox settings share"> + <h4>Project Saved</h4> + + <div class="setting"> + <h2>Share on–</h2> + <a id="share_facebook">Facebook</a> + <a id="share_twitter">Twitter</a> + <a id="share_embed">Embed</a> + </div> + + <div class="setting"> + Send people this link: + <input type="text" id="share_link"> + </div> + +</div> diff --git a/views/controls/reader/about-room.ejs b/views/controls/reader/about-room.ejs index c9ad626..7e02e93 100644 --- a/views/controls/reader/about-room.ejs +++ b/views/controls/reader/about-room.ejs @@ -13,9 +13,10 @@ <h2>Share on–</h2> <a id="share_facebook">Facebook</a> <a id="share_twitter">Twitter</a> + <a id="share_embed">Embed</a> </div> [[ if (canEdit) { ]] - <a href="[[- editlink ]]" class="btn warn marg">Edit Room</a> + <a href="[[- editlink ]]" class="btn warn marg" id="edit-room-link">Edit Room</a> [[ } ]] </div> diff --git a/views/controls/reader/embed.ejs b/views/controls/reader/embed.ejs new file mode 100644 index 0000000..cc21c74 --- /dev/null +++ b/views/controls/reader/embed.ejs @@ -0,0 +1,26 @@ +<div class="embedView fixed mediaDrawer animate"> + <span class="close">X</span> + + <div class="rap"> + <div class="holder"> + <div class="inner vvbox"> + <h2>Embed Vvalls</h2> + + <p> + This code generates an iframe which will embed this room in your website or blog. + </p> + <textarea id="embedCode"></textarea> + + dimensions: <input type="text" name="width">x<input type="text" name="height"> + <input type="checkbox" name="mute" id="mute" checked><label for="mute">mute</label> + <input type="checkbox" name="interactive" id="interactive" checked><label for="interactive">interactive</label> +<!-- + <input type="checkbox" id=""> <label for=""></label> + <input type="checkbox" id=""> <label for=""></label> + <input type="checkbox" id=""> <label for=""></label> + --> + <span id="testEmbed">test</span> + </div> + </div> + </div> +</div> diff --git a/views/docs.ejs b/views/docs.ejs index 665190d..741cff7 100644 --- a/views/docs.ejs +++ b/views/docs.ejs @@ -5,7 +5,7 @@ [[ include partials/meta ]] </head> <body class="loading"> -<div class="rapper page docs"> +<div class="rapper page docs about"> [[ include partials/header ]] [[ if (! isNew) { ]] diff --git a/views/editor.ejs b/views/editor.ejs index 29db917..efc4b9d 100755 --- a/views/editor.ejs +++ b/views/editor.ejs @@ -20,6 +20,8 @@ [[ include controls/editor/color-control ]] [[ include controls/editor/text-editor ]] [[ include controls/editor/collaborators ]] + [[ include controls/editor/share ]] + [[ include controls/reader/embed ]] [[ include controls/editor/settings ]] [[ include controls/editor/presets ]] </div> diff --git a/views/home.ejs b/views/home.ejs index 0a55336..76fbf3f 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -64,7 +64,16 @@ <h1>Room Showcase</h1> [[ include projects/list-projects ]] - + + <div class="projectList about gopro"> + + <span> + <h3>Ready To Go Pro?</h3> + + We offer white-label licensing of the VValls platform that could be used within the context of your product offering. We can also customize the VValls platform to suit the various needs of your project. This could be include custom floor plans and numerous other features. Please inquire to start a conversation. + <a href="mailto:info@vvalls.com?subject=VValls platform">Contact</a> + </span> + </div> [[ include partials/confirm-modal ]] [[ include projects/layouts-modal ]] [[ include partials/sign-in ]] diff --git a/views/partials/footer.ejs b/views/partials/footer.ejs index f44b611..a94acb1 100644 --- a/views/partials/footer.ejs +++ b/views/partials/footer.ejs @@ -5,7 +5,7 @@ <a href="/about/terms">Terms</a> <a href="/about/privacy">Privacy</a> - <span>©2014 VVALLS Inc.</span> + <span>©2014 Dot Dash 3, Inc.</span> [[ if (logged_in) { ]] <br><br> diff --git a/views/partials/scripts.ejs b/views/partials/scripts.ejs index 3e61a5a..70c3b27 100644 --- a/views/partials/scripts.ejs +++ b/views/partials/scripts.ejs @@ -7,7 +7,7 @@ <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/wow.js"></script>--> +<!-- <script type="text/javascript" src="/assets/javascripts/vendor/wow.js"></script> --> <script type="text/javascript" src="/assets/javascripts/vendor/chardinjs.min.js"></script> <script type="text/javascript" src="/assets/javascripts/vendor/sha1.js"></script> <script type="text/javascript" src="/assets/javascripts/vendor/dataUriToBlob.js"></script> @@ -115,6 +115,7 @@ <script type="text/javascript" src="/assets/javascripts/ui/reader/ReaderView.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/reader/ShareView.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/reader/EmbedView.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/reader/MediaPlayer.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/reader/Tracker.js"></script> diff --git a/views/profile.ejs b/views/profile.ejs index 272deb7..5043df6 100644 --- a/views/profile.ejs +++ b/views/profile.ejs @@ -33,12 +33,12 @@ [[ } ]] [[ if (profile.website && profile.website.length) { ]] <span> - <a href="[[- profile.website ]]">[[- profile.website ]]</a> + <a href="[[- profile.website ]]" target="_blank">[[- profile.website ]]</a> </span> [[ } ]] [[ if (profile.twitterName && profile.twitterName.length) { ]] <span> - <a href="https://twitter.com/[[- profile.twitterName ]]">@[[- profile.twitterName ]]</a> + <a href="https://twitter.com/[[- profile.twitterName ]]" target="_blank">@[[- profile.twitterName ]]</a> </span> [[ } ]] </div> diff --git a/views/reader.ejs b/views/reader.ejs index e86bab1..b9b53d2 100644 --- a/views/reader.ejs +++ b/views/reader.ejs @@ -15,6 +15,7 @@ <div id="editorView"> [[ include controls/reader/about-room ]] [[ include controls/reader/media-player ]] + [[ include controls/reader/embed ]] </div> <!-- |
