diff options
| author | Jules Laplace <jules@okfoc.us> | 2016-10-28 18:06:46 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2016-10-28 18:06:46 -0400 |
| commit | 9e7bacd46c1e5d0e1c24433690d421ab3f3a11f2 (patch) | |
| tree | 4d0cefa2780dfa4382f1ed2ea481b6aafbdbb15e /views | |
| parent | 50da9e3e677f121f15e501bf062da6c45db255ad (diff) | |
| parent | cce1dea756717f1308c6b72f762b5ea5f5b43958 (diff) | |
merge
Diffstat (limited to 'views')
84 files changed, 2143 insertions, 432 deletions
diff --git a/views/about/_blank.ejs b/views/about/_blank.ejs new file mode 100644 index 0000000..732ea3f --- /dev/null +++ b/views/about/_blank.ejs @@ -0,0 +1,24 @@ +<!doctype html> +<html> +<head> + <title>VValls</title> + [[ include ../partials/meta ]] +</head> +<body class="loading"> + <div class="rapper page home"> + [[ include ../partials/header ]] + + <h1 class="leader">Hallo</h1> + <!-- put stuff here --> + + + + [[ include ../partials/confirm-modal ]] + [[ include ../projects/layouts-modal ]] + [[ include ../partials/sign-in ]] + [[ include ../partials/footer ]] + + </div> +</body> +[[ include ../partials/scripts ]] +</html> diff --git a/views/about/_old_plans.ejs b/views/about/_old_plans.ejs new file mode 100644 index 0000000..e4b07be --- /dev/null +++ b/views/about/_old_plans.ejs @@ -0,0 +1,63 @@ + <div class="about_plan planbox free_plan_info"> + <h3>[[- plans.free.name ]]</h3> + <ul> + <li> [[- plans.free.stock_project_limit ]] exhibition with pre-designed template floor plan + </ul> + </div> + + <div class="about_plan planbox"> + <h3>[[- plans.basic.name ]]</h3> + <ul> + <li> $[[- plans.basic.monthly_price ]]/mo or $[[- plans.basic.yearly_price ]]/year + <li> Comes with [[- plans.basic.basic_layout_limit ]] basic floor plan and [[- plans.basic.basic_project_limit ]] exhibitions + <li> Each new basic floor plan costs $[[- plans.basic.basic_layout_monthly_price ]]/mo + or $[[- plans.basic.basic_layout_yearly_price ]]/year, minimum 3 months + <li> Each new floor plan can have up to [[- plans.basic.basic_project_limit ]] exhibitions + <li> VValls logo appears when embedding an exhibition on a web page + <li> + [[ if (! logged_in) { ]] + <button data-role="show-signup-modal">Sign Up</button> + [[ } else if (! user.plan_level) { ]] + <a href="https://vvalls.recurly.com/subscribe/basic-monthly/[[- user._id ]]/[[- user.username ]]"><button>Buy Now</button></a> + [[ } else if (user.plan_level == plans.basic.level) { ]] + Current Level + [[ } ]] + </ul> + </div> + + <div class="about_plan planbox"> + <h3>[[- plans.pro.name ]]</h3> + <ul> + <li> $[[- plans.pro.monthly_price ]]/mo or $[[- plans.pro.yearly_price ]]/year + <li> Comes with [[- plans.pro.pro_layout_limit ]] pro floor plan and [[- plans.pro.pro_project_limit ]] exhibitions + <li> Each new pro floor plan costs $[[- plans.pro.pro_layout_monthly_price ]]/mo + or $[[- plans.pro.pro_layout_yearly_price ]]/year, minimum 3 months + <li> Each new pro floor plan can have up to [[- plans.pro.pro_project_limit ]] exhibitions + <li> Includes planning for 3D objects in the room + <li> No VValls logo on embed + <li> + [[ if (! logged_in) { ]] + <button data-role="show-signup-modal">Sign Up</button> + [[ } else if (! user.plan_level) { ]] + <a href="https://vvalls.recurly.com/subscribe/pro-monthly/[[- user._id ]]/[[- user.username ]]"><button>Buy Now</button></a> + [[ } else if (user.plan_level == plans.pro.level) { ]] + Current Level + [[ } else if (user.plan_level < plans.pro.level) { ]] + <a href="/profile/billing"><button>Upgrade Now</button></a> + [[ } ]] + </ul> + </div> + + <div class="about_custom planbox miscbox"> + <ul> + <li> Buying any extra floor plan unlocks collaboration.<br>Invite an artist or curator to work on the exhibition with you. + <li> Basic Floor plan: Rectangle-based design of any dimension. + <li> Pro Floor plan: Trace an arbitrary floor plan from image. + </ul> + </div> + + <div class="about_custom custombox planbox"> + <h3>Want Something Custom?</h3> + <li> We offer customized white-label options for business and educational uses. + <li> <a href="mailto:hello@vvalls.com">Contact us</a> for more information. + </div> diff --git a/views/about/_plans.ejs b/views/about/_plans.ejs new file mode 100644 index 0000000..95b8d2f --- /dev/null +++ b/views/about/_plans.ejs @@ -0,0 +1,121 @@ +<ul id="plans"> + <li class="most-popular"> + <div class="top"> + <h2>[[- plans.pro.name ]]</h2> + <h3><span class="dollar">$</span><span class="price large">[[- plans.pro.monthly_price ]]</span> <span class="month large">/ mo </span></h3> + <h4>Ideal for large galleries<br>and small businesses.</h4> + </div> + <ul> + <li> + [[- plans.pro.pro_layout_limit ]] Pro Floor Plans and [[- plans.pro.pro_project_limit ]] Exhibitions + </li> + <li> + Trace a Floor Plan from a Drawing + </li> + <li> + Image Hosting For Artworks + </li> + <li> + Planning for 3D Objects + </li> + <li> + Everything the Medium Plan Contains + </li> + <li> + No Branding! + </li> + </ul> + <div class="signup"> + [[ if (! logged_in) { ]] + <a class="button" href="#" data-role="show-signup-modal">Sign Up for [[- plans.pro.name ]]</a> + [[ } else if (! user.plan_level || user.plan_level < plans.pro.level) { ]] + <a class="button" href="https://vvalls.recurly.com/subscribe/pro-monthly/[[- user._id ]]/[[- user.username ]]">Sign Up for [[- plans.pro.name ]]</a> + [[ } else if (user.plan_level == plans.pro.level) { ]] + <div class="current">Current Level</div> + [[ } ]] + </div> + </li> + <li> + <div class="top"> + <h2>[[- plans.basic.name ]]</h2> + <h3><span class="dollar">$</span><span class="price medium">[[- plans.basic.monthly_price ]]</span> <span class="month medium">/ mo </span></h3> + <h4>Great for small galleries<br>and art projects.</h4> + </div> + <ul> + <li> + [[- plans.basic.basic_layout_limit ]] Basic Floor Plan and [[- plans.basic.basic_project_limit ]] Exhibitions + </li> + <li> + Add More Basic Floor Plans for $[[- plans.basic.basic_layout_monthly_price ]]/mo + </li> + <li> + Invite Artists to Collaborate + </li> + <li> + Prepay a Year and Get Two Months Free + </li> + <li> + Everything the Small Plan Contains + </li> + <li> + VValls Branding + </li> + </ul> + <div class="signup"> + [[ if (! logged_in) { ]] + <a class="button" href="#" data-role="show-signup-modal">Sign Up for [[- plans.basic.name ]]</a> + [[ } else if (! user.plan_level || user.plan_level < plans.basic.level) { ]] + <a class="button" href="https://vvalls.recurly.com/subscribe/basic-monthly/[[- user._id ]]/[[- user.username ]]">Sign Up for [[- plans.basic.name ]]</a> + [[ } else if (user.plan_level == plans.basic.level) { ]] + <div class="current">Current Level</div> + [[ } else { ]] + <div class="current"> </div> + [[ } ]] + </div> + </li> + <li> + <div class="top"> + <h2>[[- plans.free.name ]]</h2> + <h3><span class="dollar">$</span><span class="price small">0</span> <span class="month small">/ mo </span></h3> + <h4>Free forever.</h4> + </div> + <ul> + <li> + [[- plans.free.stock_project_limit ]] Basic Exhibition + </li> + <li> + Use Any of our Built-In Floor Plans + </li> + <li> + Embed Images and Videos in your Room + </li> + <li> + Custom Color and Wallpaper + </li> + <li> + Embed Room on Your Website + </li> + <li> + VValls Branding + </li> + </ul> + + <div class="signup"> + [[ if (! logged_in) { ]] + <a class="button" href="#" data-role="show-signup-modal">Sign Up for Small</a> + [[ } else if (! user.plan_level || user.plan_level == plans.free.level) { ]] + <div class="current">Current Level</div> + [[ } else { ]] + <div class="current"> </div> + [[ } ]] + </div> + </li> +</ul> + +<br> +<div class="about_custom custombox planbox"> + <h3>Want Something Custom?</h3> + <li> We offer customized white-label options for business and educational uses. + <br> + <a href="mailto:hello@vvalls.com">Contact us</a> for more information. +</div> diff --git a/views/about/about.ejs b/views/about/about.ejs new file mode 100644 index 0000000..6d5f011 --- /dev/null +++ b/views/about/about.ejs @@ -0,0 +1,52 @@ +<!doctype html> +<html> +<head> + <title>About VValls</title> + [[ include ../partials/meta ]] +</head> +<body class="loading"> + <div class="rapper page"> + [[ include ../partials/header ]] + + <h1 class="leader">About VValls</h1> + + <div class="projectList about aboutintro"> + <div class="inner"> + VValls is a platform for creating and sharing immersive web based 3D exhibitions. With VValls users can draw floor plans, and then apply media to the surfaces of the virtual space. VValls is the ideal solution for anyone creating immersive presentations of content, curators looking to plan shows, and artists looking to visualize their work in 3D space. VValls is completely HTML5 based – mobile and desktop compatible. + <br><br> + Contact us with inquiries at <a href="mailto:hello@vvalls.com">hello@vvalls.com</a>.<br> + We are based in New York City. + </div> + + <div class="item"> + <div class="rap"> + <span style="background-image:url(http://vvalls.s3.amazonaws.com/static/larisa.jpg)"> + </span> + <span> + <h3>Dot Dash 3</h3> + <words>VValls was conceived and prototyped by Larisa Leventon, Ph.D., MBA, founder of Dot Dash 3 and an M.I.T. + Brown University-trained visualization algorithm specialist.</words> + </span> + </div> + </div> + + <div class="item"> + <div class="rap"> + <span style="background-image:url(http://vvalls.s3.amazonaws.com/static/okf.jpg)"> + </span> + <span> + <h3>OKFocus</h3> + <words>VValls was developed and designed by OKFocus, a forward thinking NYC based creative agency. The technology was spearheaded by Jules LaPlace, CTO, and the design by Ryder Ripps, ECD.</words> + </span> + </div> + </div> + </div> + + [[ include ../partials/confirm-modal ]] + [[ include ../projects/layouts-modal ]] + [[ include ../partials/sign-in ]] + [[ include ../partials/footer ]] + + </div> +</body> +[[ include ../partials/scripts ]] +</html> diff --git a/views/about/brochure.ejs b/views/about/brochure.ejs new file mode 100644 index 0000000..e34d3d3 --- /dev/null +++ b/views/about/brochure.ejs @@ -0,0 +1,25 @@ +<!doctype html> +<html> +<head> + <title>VValls Subscriptions</title> + [[ include ../partials/meta ]] +</head> +<body class="loading"> + <div class="rapper page"> + [[ include ../partials/header ]] + + <h1 class="leader">Subscriptions</h1> + + <div class="projectList about aboutintro"> + [[ include _plans ]] + </div> + + [[ include ../partials/confirm-modal ]] + [[ include ../projects/layouts-modal ]] + [[ include ../partials/sign-in ]] + [[ include ../partials/footer ]] + + </div> +</body> +[[ include ../partials/scripts ]] +</html> diff --git a/views/about/howto.ejs b/views/about/howto.ejs new file mode 100644 index 0000000..914c3b3 --- /dev/null +++ b/views/about/howto.ejs @@ -0,0 +1,128 @@ +<!doctype html> +<html> +<head> + <title>How to Use VValls</title> + [[ include ../partials/meta ]] +</head> +<body class="loading"> + <div class="rapper page"> + [[ include ../partials/header ]] + + <div class="hero" style="background-image:url(http://okfocus.s3.amazonaws.com/images/vvalls/construction.jpg);"> + <div class="holder"> + </div> + </div> + <h1>How To Use VValls</h1> + + <div class="projectList about howto"> + <div class="item"> + <div class="rap"> + <span style="background-image:url(http://okfocus.s3.amazonaws.com/images/vvalls/newproject.jpg)"> + </span> + <span> + <h3>1. Define Your Space.</h3> + <words>Choose from one of our existing floor plan templates or create your own.</words> + </span> + </div> + </div> + + + <div class="item"> + <div class="rap"> + <span style="background-image:url(http://okfocus.s3.amazonaws.com/images/vvalls/addmedia.gif)"> + </span> + <span> + <h3>2. Add Your Media Files.</h3> + <words>Upload media files or choose media from our pre-loaded image/video stream. Position media on the walls.</words> + </span> + </div> + </div> + + + <div class="item"> + <div class="rap"> + <span style="background-image:url(http://okfocus.s3.amazonaws.com/images/vvalls/wallpaper3.gif)"> + </span> + <span> + <h3>3. Customize.</h3> + <words>Use color or wallpaper features to customize the look of your space.</words> + </span> + </div> + </div> + + <div class="item"> + <div class="rap"> + <span style="background-image:url(http://okfocus.s3.amazonaws.com/images/vvalls/colab.png)"> + </span> + <span> + <h3>4. Collaborate.</h3> + <words>You can invite others to collaborate on your project.</words> + </span> + </div> + </div> + + <div class="item"> + <div class="rap"> + <span style="background-image:url(http://okfocus.s3.amazonaws.com/images/vvalls/thumbsup.gif)"> + </span> + <span> + <h3>5. Publish + Share.</h3> + <words>Share a link to your creation on social media or embed your 3D space directly into your own web page. When on the go, make sure to show off your project on your phone.</words> + </span> + </div> + </div> + + <h1 style="text-align:center; background: white; border-bottom: 1px solid black; margin: 60px 0 40px;">Keyboard Shortcuts</h1> + + <div class="item"> + <div class="rap"> + <span style="background-image:url(http://okfocus.s3.amazonaws.com/random/keyboard.gif); background-position: 15%;"></span> + <span style="padding: 0 50px;margin-bottom: 60px;"> + <words> + <h3>Getting around VValls is easier with the keyboard.</h3> + + If you play video games, you should be familiar with using WASD to move -- left hand on the keyboard, right hand on the mouse. + We have added a few keys for pivoting and looking up and down. + </words> + </span> + <br clear="both"> + + <table border="0" class="keyboard first-keyboard"> + <tr><td>W</td><td>Move forward</td></tr> + <tr><td>A</td><td>Strafe left</td></tr> + <tr><td>S</td><td>Move backward</td></tr> + <tr><td>D</td><td>Strafe right</td></tr> + <tr><td> </td></tr> + <tr><td>Q</td><td>Turn left</td></tr> + <tr><td>E</td><td>Turn right</td></tr> + <tr><td> </td></tr> + <tr><td>R</td><td>Look up</td></tr> + <tr><td>F</td><td>Look down</td></tr> + </table> + <table border="0" class="keyboard"> + <tr><td>Cmd-Z</td><td>Undo</td></tr> + <tr><td>Shift-Cmd-Z</td><td>Redo</td></tr> + <tr><td>Cmd-\</td><td>Noclip mode</td></tr> + <tr><td>Esc</td><td>Cancel</td></tr> + <tr><td>Backspace</td><td>Delete currently selected media</td></tr> + <tr><td> </td></tr> + <tr><td>Mousewheel</td><td>Move forward/back</td></tr> + <tr><td>Shift-Mousewheel</td><td>Turn left/right</td></tr> + <tr><td> </td></tr> + <tr><td>Spacebar</td><td>Jump</td></tr> + </table> + </span> + </div> + </div> +</div> + + + [[ include ../partials/confirm-modal ]] + [[ include ../projects/layouts-modal ]] + [[ include ../partials/sign-in ]] + [[ include ../partials/footer ]] + + </div> +</body> +[[ include ../partials/scripts ]] +</html> diff --git a/views/blueprint.ejs b/views/blueprint.ejs new file mode 100644 index 0000000..13e8182 --- /dev/null +++ b/views/blueprint.ejs @@ -0,0 +1,30 @@ +<!doctype html> +<html> +<head> + <title>VValls</title> + [[ include partials/meta ]] +</head> +<body class="editing loading"> + + <div id="scene"></div> + + <div class="rapper"> + [[ include partials/header ]] + + <div id="builderView"> + [[ include controls/blueprint/info ]] + [[ include controls/blueprint/toolbar ]] + [[ include controls/blueprint/settings ]] + [[ include controls/blueprint/editor ]] + [[ include controls/blueprint/scaler ]] + [[ include controls/blueprint/notice ]] + </div> + </div> + + [[ include partials/confirm-modal ]] + [[ include projects/layouts-modal ]] + [[ include partials/sign-in ]] + +</body> +[[ include partials/scripts ]] +</html> diff --git a/views/builder.ejs b/views/builder.ejs index afb8c66..6a31e22 100644 --- a/views/builder.ejs +++ b/views/builder.ejs @@ -1,7 +1,7 @@ <!doctype html> <html> <head> - <title>vvalls</title> + <title>VValls</title> [[ include partials/meta ]] </head> <body class="editing loading"> @@ -17,22 +17,6 @@ [[ include controls/builder/settings ]] </div> - <!-- - <div id="minimap" class="vvbox"> - <span class="el"></span> - </div> - - <select id="palette"> - <option>colors</option> - <option>redblue</option> - <option>gray</option> - <option selected>bone</option> - <option>alpha</option> - <option>white</option> - <option>black</option> - </select> - --> - <div id="hud"> <div id="map" style="display: block"> </div> diff --git a/views/controls/blueprint/editor.ejs b/views/controls/blueprint/editor.ejs new file mode 100644 index 0000000..0dbac8e --- /dev/null +++ b/views/controls/blueprint/editor.ejs @@ -0,0 +1,36 @@ +<style type="text/css"> +#perspective, +#perspective .mx-scene { + position: absolute; + left:0%; + top:0px; + -webkit-transform: translateZ(0); + transform: translateZ(0); +} +#orthographic { + position: absolute; + left:50%; + top:0px +} +.blueprintInfo { + bottom: 14px; + left: 10px; + width: 270px; + font-size: 13px; + font-weight: 300; + padding: 10px; +} +.blueprintInfo .setting { + margin-bottom: 20px; +} +.blueprintInfo .setting.number input[type=text] { + width: 100px; + font-size: 16px; +} +</style> + +<div id="blueprintView"> + <div id="perspective"></div> + <div id="orthographic"></div> +</div> + diff --git a/views/controls/blueprint/info.ejs b/views/controls/blueprint/info.ejs new file mode 100644 index 0000000..a86481b --- /dev/null +++ b/views/controls/blueprint/info.ejs @@ -0,0 +1,30 @@ +<div class="vvbox settings info" id="blueprintInfo"> + <h4>Blueprint Editor</h4> + + <div class="setting number twoline"> + <label for="room-height">ceiling height</label> + <input type="text" class="units" name="height" id="room-height"> + </div> + + <div class="setting number twoline"> + <label for="viewHeight">camera height</label> + <input type="text" class="units" name="viewHeight" id="viewHeight"> + </div> + + <div class="setting number twoline"> + <label for="builder-units">units</label> + <select id="builder-units" name="units"> + <option value="px">pixels</option> + <option value="ft">feet</option> + <option value="m">meters</option> + </select> + </div> + + <div class="setting number scale"> + <label>scale</label> + <span id="blueprintScaleDisplay"></span> + px/<span class="units"></span> + <span class="openScaler">[edit scale]</span> + </div> + +</div> diff --git a/views/controls/blueprint/notice.ejs b/views/controls/blueprint/notice.ejs new file mode 100644 index 0000000..bf1a310 --- /dev/null +++ b/views/controls/blueprint/notice.ejs @@ -0,0 +1,4 @@ +<div class="vvbox settings" id="blueprintNotice"> + <div class="notice"></div> + <span class="next">Next</span> +</div> diff --git a/views/controls/blueprint/scaler.ejs b/views/controls/blueprint/scaler.ejs new file mode 100644 index 0000000..82fd2b2 --- /dev/null +++ b/views/controls/blueprint/scaler.ejs @@ -0,0 +1,48 @@ +<div class="mediaDrawer fixed animate active blueprintScaler"> + <div class="box"> + + <div class="blueprintUploader"> + <h2>Upload your Blueprint</h2> + <p> + Upload an image which you will trace to make a floor plan. + Images should be at least 1000x1000. + </p> + <input type="hidden" name="_csrf" value="[[- token ]]"> + <input type="text" class="url" placeholder="Enter an image URL or..."> + <div class="wallpaperUpload toolButton"> + <form> + <span class="ion-ios-upload-outline upload-icon"></span> + <label>Upload a File</label> + <input type="file" accept="image/*" multiple> + </form> + </div> + <div class="blueprints"> + <h5>Your uploaded blueprints</h5> + </div> + </div> + + <div class="blueprintInfo vvbox"> + Please tell us the scale of your blueprint. + Click two corners of a wall, and then enter how long the wall is. + <br><br> + You can also <span class="uploadNewBlueprint">upload another blueprint</span>. + <br><br> + + <form> + <div class="setting number"> + <label for="blueprint-dimensions">length</label> + <input type="text" class="units" name="blueprint-dimensions" id="blueprint-dimensions"> + <select id="blueprint-units" name="blueprint-units"> + <option value="ft">feet</option> + <option value="m">meters</option> + </select> + </div> + <button id="saveBlueprint">Save</button> + </form> + </div> + + <div id="blueprintMap"> + </div> + + </div> +</div>
\ No newline at end of file diff --git a/views/controls/blueprint/settings.ejs b/views/controls/blueprint/settings.ejs new file mode 100644 index 0000000..9c615ea --- /dev/null +++ b/views/controls/blueprint/settings.ejs @@ -0,0 +1,18 @@ +<div class="vvbox settings active" id="blueprintSettings"> + <input type="hidden" name="_csrf" value="[[- token ]]"> + <input type="hidden" name="_id" value="new"> + + <div class="setting"> + <input type="text" name="name" placeholder="Blueprint name"> + </div> + + <div class="setting"> + <button data-role="save-layout">Save</button> + </div> + + <div class="setting subButtons"> + <a href="#" data-role="clear-layout">Clear</a> + <a href="#" data-role="destroy-layout">Delete</a> + </div> + +</div> diff --git a/views/controls/blueprint/toolbar.ejs b/views/controls/blueprint/toolbar.ejs new file mode 100644 index 0000000..ba795e3 --- /dev/null +++ b/views/controls/blueprint/toolbar.ejs @@ -0,0 +1,42 @@ +<div class="edit menu vvbox" id="blueprintToolbar"> + + <span + data-role='upload-floorplan' + data-info="upload a new floorplan" + class="ion-ios-upload-outline"></span> + + <span + data-role='toggle-orbit-mode' + data-info="toggle 3D mode" + class="ion-ios-photos-outline"></span> + + <span + data-role="arrow-mode" + data-info="move endpoints" + class="ion-navigate mode"></span> +<!-- + <span + data-role="polyline-mode" + data-info="draw walls" + class="ion-ios-pulse mode"></span> +--> + <span + data-role="ortho-polyline-mode" + data-info="draw right-angled walls" + class="ion-ios-grid-view-outline mode"></span> + + <span + data-role="eraser-mode" + data-info="remove walls" + class="ion-scissors mode"></span> + + <span + data-role="start-position-mode" + data-info="set starting position" + class="ion-ios-home-outline mode"></span> + + <span + data-role='toggle-layout-settings' + data-info="save blueprint" + class="ion-ios-compose-outline"></span> +</div> diff --git a/views/controls/builder/info.ejs b/views/controls/builder/info.ejs index d92d34c..11e995a 100644 --- a/views/controls/builder/info.ejs +++ b/views/controls/builder/info.ejs @@ -1,4 +1,14 @@ -<div class="vvbox active settings info active" id="builderInfo"> +<div class="vvbox settings info" id="builderInfo"> + <h4>Map Editor</h4> + + <div class="no-selection"> + Click and drag to make a new room. + Click a room to select, move or resize it. + <br><br> + Press ESC to toggle the map. + </div> + + <div class="setting number"> <label for="room-width">width</label> <input type="text" class="units" name="width" id="room-width"> @@ -10,6 +20,8 @@ <div class="setting number twoline"> <label for="room-height">ceiling height</label> <input type="text" class="units" name="height" id="room-height"> + <label for="room-height-global" id="room-height-global-label">global?</label> + <input type="checkbox" name="heightGlobal" id="room-height-global"> </div> <div class="setting number halflines"> <label for="room-x">x</label> @@ -22,8 +34,8 @@ <label for="builder-units">units</label> <select id="builder-units" name="units"> <option value="px">pixels</option> - <option value="ft">foot</option> - <option value="m">meter</option> + <option value="ft">feet</option> + <option value="m">meters</option> </select> </div> @@ -32,4 +44,8 @@ <input type="text" class="units" name="viewHeight" id="viewHeight"> </div> + <div class="setting"> + <a href="#" class="warn btn" data-role="destroy-room">remove this room</a> + </div> + </div> diff --git a/views/controls/builder/settings.ejs b/views/controls/builder/settings.ejs index dd2496b..f7642ae 100644 --- a/views/controls/builder/settings.ejs +++ b/views/controls/builder/settings.ejs @@ -4,7 +4,7 @@ <div class="setting"> <a href="#" id="startpoint"> - <span class="icon-ios7-navigate-outline"></span> + <span class="ion-ios-navigate-outline"></span> <span id="startText">Select Startpoint</span> <span id="moveText">Move to Desired Point</span></a> </div> diff --git a/views/controls/builder/toolbar.ejs b/views/controls/builder/toolbar.ejs index a00249c..ad51f0e 100644 --- a/views/controls/builder/toolbar.ejs +++ b/views/controls/builder/toolbar.ejs @@ -2,33 +2,33 @@ <span data-role='toggle-map-view' data-info="toggle map view" - class="icon-ios7-photos-outline"></span> + class="ion-ios-photos-outline"></span> <!-- <span data-role='create-mode' data-info="draw" - class="icon-plus"></span> + class="ion-plus"></span> <span data-role='move-mode' data-info="move" - class="icon-arrow-move"></span> + class="ion-arrow-move"></span> <span data-role='resize-mode' data-info="resize" - class="icon-arrow-resize"></span> + class="ion-arrow-resize"></span> --> <span data-role='destroy-mode' data-info="delete" - class="icon-ios7-trash-outline"></span> + class="ion-ios-trash-outline"></span> <!-- <span data-role='undo' data-info="undo" - class="icon-reply"></span> + class="ion-reply"></span> --> <span data-role='toggle-layout-settings' data-info="save layout" - class="icon-ios7-compose-outline"></span> + class="ion-ios-compose-outline"></span> </div> diff --git a/views/controls/editor/collaborators.ejs b/views/controls/editor/collaborators.ejs index 69e5b64..5de7d25 100644 --- a/views/controls/editor/collaborators.ejs +++ b/views/controls/editor/collaborators.ejs @@ -1,29 +1,31 @@ <div class="collaborators fixed mediaDrawer animate"> <span class="close">X</span> - - <div> - <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> + <div class="rap"> + <div class="holder"> + <div class="inner vvbox"> + <h2>Collaborators</h2> - <form> - <input type="text" id="collaborator-email" name="email"> - <input type="submit" id="collaborator-invite" value="Invite to this project"> - </form> + <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> - <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> + <form> + <input type="text" id="collaborator-email" name="email"> + <input type="submit" id="collaborator-invite" value="Invite to this project"> + </form> - <ul id="collaborator-list"> - </ul> + <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> + </div> </div> - </div> <script type="text/html" id="collaborator-template"> @@ -36,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/color-control.ejs b/views/controls/editor/color-control.ejs new file mode 100644 index 0000000..c035e24 --- /dev/null +++ b/views/controls/editor/color-control.ejs @@ -0,0 +1,27 @@ +<div class="vvbox colorcontrol"> + <h4>Edit Room Colors</h4> + + <div class="colors"> + </div> + + <div class="color-picker"> + </div> + + <div class="slider"> + </div> + + <div class="color-swatches"> + <span> + <div class="swatch" id="wall-color" data-mode="wall"></div><label>wall</label> + </span> + <span class="active"> + <div class="swatch" id="floor-color" data-mode="floor"></div><label>floor</label> + </span> + <span> + <div class="swatch" id="ceiling-color" data-mode="ceiling"></div><label>ceiling</label> + </span> + <span> + <div class="swatch" id="outline-color" data-mode="outline"></div><label>outlines</label> + </span> + </div> +</div> diff --git a/views/controls/editor/light-control.ejs b/views/controls/editor/light-control.ejs deleted file mode 100644 index 8b133a5..0000000 --- a/views/controls/editor/light-control.ejs +++ /dev/null @@ -1,40 +0,0 @@ -<div class="vvbox lightcontrol"> - <div id="color-picker"> - </div> - - <div class="slider"> - <h4>Brightness Control</h4> - <input type="range" min="0" max="110" value="0" id="brightness-control" /> - </div> - - <div class="color-swatches"> - <span> - <div class="swatch" id="wall-color" data-mode="wall"></div><label>wall</label> - </span> - <span class="active"> - <div class="swatch" id="floor-color" data-mode="floor"></div><label>floor</label> - </span> - <span> - <div class="swatch" id="ceiling-color" data-mode="ceiling"></div><label>ceiling</label> - </span> - <span> - <div class="swatch" id="outline-color" data-mode="outline"></div><label>outlines</label> - </span> - <span> - </div> - -<!-- - <div class="slider"> - <input type="range" min="0" max="100" value="100" id="wall-hue" /> - <h4>Wall Hue</h4> - </div> - <div class="slider"> - <input type="range" min="0" max="100" value="0" id="brightness-control" /> - <h4>Brightness</h4> - </div> - <div class="slider"> - <input type="range" min="0" max="100" value="0" id="shadow-control" /> - <h4>Shadow</h4> - </div> ---> -</div> diff --git a/views/controls/editor/media-drawer.ejs b/views/controls/editor/media-drawer.ejs index d73a3ef..8070941 100644 --- a/views/controls/editor/media-drawer.ejs +++ b/views/controls/editor/media-drawer.ejs @@ -1,62 +1,54 @@ -<span class="fileUpload"> - <input type="hidden" name="_csrf" value="[[- token ]]"> - <form> - <span class="icon-ios7-upload-outline upload-icon"></span><br> - Upload File - <input type="file" accept="image/*" class="file" multiple> - </form> - <small>~ or ~</small><br> - <input type="text" placeholder="Enter Vimeo or YouTube Link" class="url"> -</span> - <div class="ants"> <div class="leftborder"></div> <img class="floatingImg"> </div> <div class="mediaDrawer fixed animate mediaViewer"> - <span class="close">X</span> - <h2><a href="#" class="userToggle active">Your Media</a> – <a href="#" class="foundToggle">Found Media</a></h2><br> - <h3 class="editBtn warn" id="deleteMedia">delete media?</h3> + <h2> + <a href="#" class="userToggle active">Your Media</a> + – <a href="#" class="foundToggle">Found Media</a> +<!-- + – <a href="#" class="wallpaperToggle">Wallpaper</a> + --> + </h2><br> + <h3 class="editBtn warn" id="deleteMedia"></h3> + <h3 class="editBtn" id="randomize">Click here<br>to automatically place<br>images on walls!</h3> + <div class="myMedia"> + <div class="noMedia">You have no media yet. Upload some!</div> + <span class="container"></span> + <a href="#" class="viewMore btn">view more</a> </div> - + <div class="foundMedia"> - <span class="mediaContainer"> - <img src="https://d1ycxz9plii3tb.cloudfront.net/post_images/52ec0e20c9dc24f1d8000067/large.jpg"> - </span> - <span class="mediaContainer"> - <img src="https://d1ycxz9plii3tb.cloudfront.net/additional_images/4e6bf67bc23f490001004579/1/tall.jpg"> - </span> - <span class="mediaContainer"> - <img src="https://d1ycxz9plii3tb.cloudfront.net/additional_images/52dcca28139b2135030002a8/tall.jpg"> - </span> - <span class="mediaContainer"> - <img src="https://d1ycxz9plii3tb.cloudfront.net/additional_images/52927bb2b202a3669d000704/larger.jpg"> - </span> - <span class="mediaContainer"> - <img src="https://d1ycxz9plii3tb.cloudfront.net/additional_images/4f9f3a3ce262e60001000fb3/large.jpg"> - </span> - <span class="mediaContainer"> - <img src="http://2.bp.blogspot.com/-GD6IxUvsdOo/UdrcMFLVYNI/AAAAAAAAF2E/kbRfxMxiUlQ/s1600/okeeffe.jpg"> - </span> - <span class="mediaContainer"> - <img src="http://www.bobkessel.com/wordpress/wp-content/uploads/2009/10/moma-bob-kessel-410.jpg"> - </span> - <span class="mediaContainer"> - <img src="http://static1.artsy.net/partner_show_images/52f28f348b3b81f2fc000364/large.jpg"> - </span> - <span class="mediaContainer"> - <img src="http://static3.artsy.net/partner_show_images/52e83674c9dc24397f0000d8/large.jpg"> - </span> - <span class="mediaContainer"> - <img src="http://static0.artsy.net/partner_show_images/52d96d484b84801ef0000273/large.jpg"> - </span> - <span class="mediaContainer"> - <img src="http://static1.artsy.net/partner_show_images/52778616275b24f95c00011d/1/large.jpg"> - </span> - <span class="mediaContainer"> - <img src="http://static1.artsy.net/partner_show_images/52dc65311a1e86be6b000205/large.jpg"> - </span> - </div> -</div>
\ No newline at end of file + <span class="container"></span> + </div> + + <div class="wallpaperMedia"> + <span class="container"></span> + </div> + +</div> + +<span class="fileUpload" id="fileUpload"> + <input type="hidden" name="_csrf" value="[[- token ]]"> + <form> + <span class="ion-ios-upload-outline upload-icon"></span><br> + Upload File + <input type="file" accept="image/*" multiple> + </form> + <small>~ or ~</small><br> + <input type="text" placeholder="Enter Vimeo or YouTube or image link" class="url"> +</span> + +<span class="fileUpload" id="tumblrUpload"> + <input type="hidden" name="_csrf" value="[[- token ]]"> + <input type="text" class="url" placeholder="Enter a Tumblr URL to add images from it!"> + <br> + <span class="exampleTumblrs"> + or try one of these: + <a href="#" class="exampleTumblr">risingtensions</a> + <a href="#" class="exampleTumblr">fixoid</a> + <a href="#" class="exampleTumblr">nopattern</a> + </span> +</span> diff --git a/views/controls/editor/media-editor.ejs b/views/controls/editor/media-editor.ejs index 000e8db..225bdc8 100644 --- a/views/controls/editor/media-editor.ejs +++ b/views/controls/editor/media-editor.ejs @@ -1,4 +1,5 @@ <div class="vvbox settings" id="mediaEditor"> + <h4>Media Settings</h4> <input type="hidden" name="_csrf" value="[[- token ]]"> <input type="hidden" name="_id" value="new"> @@ -10,25 +11,27 @@ <textarea name="description" placeholder="short description"></textarea> </div> - <div class="video setting"> + <div class="video audio setting"> <span class="playButton" data-role="play-media"> - <span class="on icon-play"></span> - <span class="off icon-pause"></span> + <span class="on ion-ios-play-outline"></span> + <span class="off ion-ios-pause-outline"></span> </span> <!-- ion-volume-high ion-volume-mute --> </div> - <div class="video setting"> + <div class="video audio setting"> <input type="checkbox" name="autoplay" value="1" id="video_autoplay"> <label for="video_autoplay">Autoplay</label> <input type="checkbox" name="loop" value="1" id="video_loop"> <label for="video_loop">Loop</label> + <span class="video"> <input type="checkbox" name="mute" value="1" id="video_mute"> <label for="video_mute">Mute</label> + </span> </div> - <div class="video setting"> + <div class="video audio setting"> <label for="video-keyframe">Initial Still</label> <br> <input type="range" min="0" max="1" value="0" step="0.01" name="keyframe" id="video-keyframe"> @@ -42,15 +45,16 @@ <label for="scenery-height">height</label> <input type="text" class="units" name="height" id="scenery-height"> </div> + <!-- <div class="setting number"> <select id="builder-units" name="units"> <option value="px">pixels</option> - <option value="ft">foot</option> - <option value="m">meter</option> + <option value="ft">feet</option> + <option value="m">meters</option> </select> </div> - + --> <div class="setting"> - <a href="#" class="warn btn" data-role="destroy-media">delete this media</a> + <a href="#" class="warn btn" data-role="destroy-media">remove from wall</a> </div> </div> diff --git a/views/controls/editor/presets.ejs b/views/controls/editor/presets.ejs new file mode 100644 index 0000000..04b1cf1 --- /dev/null +++ b/views/controls/editor/presets.ejs @@ -0,0 +1,5 @@ +<div class="vvbox" id="presets"> + <h4>Preset Styles</h4> + <div class="presets"> + </div> +</div> diff --git a/views/controls/editor/sculpture.ejs b/views/controls/editor/sculpture.ejs new file mode 100644 index 0000000..dfe917f --- /dev/null +++ b/views/controls/editor/sculpture.ejs @@ -0,0 +1,42 @@ +<div class="vvbox settings" id="sculptureEditor"> + <h4>3D Object</h4> + + <input type="hidden" name="_csrf" value="[[- token ]]"> + <input type="hidden" name="_id" value="new"> + + <div class="setting"> + <input type="text" name="name" placeholder="media title"> + </div> + + <div class="setting"> + <textarea name="description" placeholder="short description"></textarea> + </div> + + <div class="setting"> + <input type="checkbox" name="outline" value="1" id="sculpture-outline"> + <label for="sculpture-outline">Show outline?</label> + <input type="color" name="outlineColor" value="#000000"> + </div> + + <div class="setting"> + <input type="checkbox" name="billboard" value="1" id="sculpture-billboard"> + <label for="sculpture-billboard">Billboard?</label> + </div> + + <div class="setting number"> + <label for="sculpture-width">width</label> + <input type="text" class="units" name="width" id="sculpture-width"> + </div> + <div class="setting number"> + <label for="sculpture-height">height</label> + <input type="text" class="units" name="height" id="sculpture-height"> + </div> + <div class="setting number"> + <label for="sculpture-height">depth</label> + <input type="text" class="units" name="depth" id="sculpture-depth"> + </div> + <div class="setting"> + <a href="#" class="warn btn" data-role="destroy-sculpture">remove object</a> + </div> + +</div> diff --git a/views/controls/editor/settings.ejs b/views/controls/editor/settings.ejs index ed587fa..0ee00de 100644 --- a/views/controls/editor/settings.ejs +++ b/views/controls/editor/settings.ejs @@ -1,20 +1,40 @@ +<span id="helpCursor"></span> + <div class="vvbox settings" id="editorSettings"> + <h4>Room Settings</h4> <input type="hidden" name="_csrf" value="[[- token ]]"> <input type="hidden" name="_id" value="new"> - <div class="setting"> - <a href="#" class="modalLink" id="startpoint"> - <span class="icon-ios7-navigate-outline"></span> - <span id="startText">Select Startpoint</span> - <span id="moveText">Move to Desired Point</span></a> + <div class="setting" id="startpoint"> + <a href="#" class="modalLink"> + <span class="ion-ios-navigate-outline"></span> + <span id="startText">Set Startpoint</span> + <span id="moveText">Move to Desired Point <span class="done">done</span></span> + <span id="confirmText">Set Startpoint</span> + </a> + <a href="#" class="modalLink" id="goText"><span><u>view current</u></span></span> </div> + <div class="setting"> <a href="#" class="modalLink" data-role='show-collaborators'> - <span class="icon-ios7-plus-outline"></span> + <span class="ion-ios-plus-outline"></span> Add Collaborators </a> </div> + + <div class="setting"> + <a href="#" class="modalLink" data-role='toggle-map'> + <span class="ion-map"></span> + Edit map + </a> + + <a href="#" class="modalLink" data-role='view-project' style="margin-left: 40px;"> + <span class="ion-ios-search-strong"></span> + View project + </a> + </div> + <div class="setting"> <input type="text" name="name" placeholder="room name"> </div> 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/editor/signed-out.ejs b/views/controls/editor/signed-out.ejs index 20e3715..118fb7c 100644 --- a/views/controls/editor/signed-out.ejs +++ b/views/controls/editor/signed-out.ejs @@ -8,7 +8,7 @@ </div> <div class="share"> - <h2>Share this on–</h2> + <h2>Share on–</h2> <a href="#">Facebook</a> <a href="#">Twitter</a> </div> diff --git a/views/controls/editor/text-editor.ejs b/views/controls/editor/text-editor.ejs new file mode 100644 index 0000000..baf9239 --- /dev/null +++ b/views/controls/editor/text-editor.ejs @@ -0,0 +1,76 @@ +<div class="vvbox settings" id="textEditor"> + <h4>Edit Text</h4> + + <div class="no-text"> + Click a wall to add text. + </div> + + <div class="setting text-setting"> + <select name="font-family"> + <option>Baskerville</option> + <option>Brush Script</option> + <option>Chicago</option> + <option>Comic Sans</option> + <option>Cooper</option> + <option>Courier New</option> + <option>Didot</option> + <option>Futura</option> + <option>Georgia</option> + <option>Gill Sans</option> + <option>Helvetica</option> + <option>Lato</option> + <option>Lucida Grande</option> + <option>Menlo</option> + <option>Palatino</option> + <option>Papyrus</option> + <option>Tahoma</option> + <option>Times New Roman</option> + <option>Zapfino</option> + </select> + <select name="font-size"> + <option value="6">6pt</option> + <option value="8">8pt</option> + <option value="9">9pt</option> + <option value="10">10pt</option> + <option value="12">12pt</option> + <option value="16">16pt</option> + <option value="24">24pt</option> + <option value="36">36pt</option> + <option value="48">48pt</option> + <option value="72">72pt</option> + <option value="96">96pt</option> + </select> + <select name="text-align"> + <option value="left">Left</option> + <option value="center">Center</option> + <option value="right">Right</option> + <option value="justify">Justify</option> + </select> + <div class="swatch"></div> + </div> + + <div class="setting text-setting"> + <textarea name="text-body"></textarea> + </div> + + <div class="setting text-setting"> + <a href="#" class="btn left" data-role="hide-text-editor">done</a> + <a href="#" class="warn btn right" data-role="destroy-text">remove from wall</a> + </div> + + <div class="setting color-setting"> + <a href="#" class="btn" data-role="hide-color-picker">done</a><br><br> + + <div class="colors"> + </div> + + <div class="color-picker"> + </div> + + <div class="slider"> + </div> + </div> +</div> + +<style> +</style>
\ No newline at end of file diff --git a/views/controls/editor/toolbar.ejs b/views/controls/editor/toolbar.ejs index 4abf780..1a3e2d7 100644 --- a/views/controls/editor/toolbar.ejs +++ b/views/controls/editor/toolbar.ejs @@ -1,30 +1,49 @@ -<div class="edit menu vvbox" id="editorToolbar"> + +<div class="edit menu vvbox" id="editorToolbar" data-intro="This is the main toolbar. Add and select media, Apply wallpaper, change room name etc." data-position="left"> +<!-- + <span + data-role='undo' + data-info="undo" + class="ion-reply"></span> + --> <span data-role='open-media-viewer' data-info="add media" - class="icon-ios7-photos-outline"></span> + class="ion-ios-photos-outline"></span> + <span + data-role='toggle-presets' + data-info="preset styles" + class="ion-ios-briefcase-outline"></span> +<!-- <span data-role='resize-media' data-info="resize media" - class="icon-arrow-resize"></span> + class="ion-arrow-resize"></span> <span data-role='destroy-media' data-info="delete media" - class="icon-ios7-trash-outline"></span> + class="ion-ios-trash-outline"></span> + --> <span data-role='toggle-wallpaper-panel' data-info="add wallpaper" - class="icon-ios7-keypad-outline"></span> + class="ion-ios-keypad-outline"></span> <span - data-role='toggle-light-control' + data-role='toggle-color-control' data-info="edit room colors" - class="icon-ios7-sunny-outline"></span> + class="ion-ios-sunny-outline"></span> + <span + data-role='toggle-text-editor' + data-info="add text to wall" + class="ion-ios-compose-outline"></span> +<!-- <span - data-role='edit-wall-text' - data-info="edit wall text" - class="icon-ios7-compose-outline"></span> + data-role='toggle-map-view' + data-info="toggle map view" + class="ion-ios-world-outline"></span> + --> <span data-role='toggle-project-settings' data-info="room settings" - class="icon-key"></span> + class="ion-key"></span> </div> diff --git a/views/controls/editor/wallpaper.ejs b/views/controls/editor/wallpaper.ejs index 208dfff..a53f462 100644 --- a/views/controls/editor/wallpaper.ejs +++ b/views/controls/editor/wallpaper.ejs @@ -1,25 +1,39 @@ <div class="vvbox wallpaper"> - + <h4>Add Wallpaper</h4> <!-- IF NO WALL PAPER --> - <span class="txt">Add custom wallpaper to walls. Begin by uploading a pattern. Or try this one -> </span> + <span class="txt" style="margin-bottom:7px">Add custom wallpaper to walls. Begin by uploading a pattern. Or try one of these -> </span> - <div class="swatches"></div> + <span class="swatches"> + <span class="swatch" style="background-image:url(/assets/img/offbeatrepeat.jpg)"></span> + <span class="swatch" style="background-image:url(/assets/img/plainpattern3.png)"></span> + <span class="swatch" style="background-image:url(/assets/img/plainpattern.png)"></span> + <span class="swatch" style="background-image:url(/assets/img/plainpattern2.png)"></span> + </span> + + <input type="text" class="url" placeholder="Enter image URL"> - <div class="wallpaperUpload"> - <form> + <div class="wallpaperRemove toolButton"> + <span class="ion-scissors"></span> + <label>Remove</label> + </div> - <span class="icon-ios7-upload-outline upload-icon"></span> - <label>Upload wallpaper</label> - <input type="file" accept="image/*" class="file" multiple> + <div class="wallpaperUpload toolButton"> + <form> + <span class="ion-ios-upload-outline upload-icon"></span> + <label>Upload</label> + <input type="file" accept="image/*" multiple> </form> -<!-- - <input type="text" placeholder="Enter Image URL" class="url"> - --> </div> - <div class="wallpaperRemove"> - <img src="/assets/img/scissors.png"> - <label>Remove Wallpaper</label> + + <div class="wallpaperResizeControls"> + <span data-role="wallpaper-position" class="ion-arrow-expand"></span> + <input data-role="wallpaper-scale" type="range" min="-4" max="4" step="0.01" value="0.0"> + </div> + + <div class="floodMessage"> + Hit Enter to Flood the room! </div> + </div> <div class="floatingSwatch"></div> diff --git a/views/controls/reader/about-room.ejs b/views/controls/reader/about-room.ejs index e13f363..a9ef738 100644 --- a/views/controls/reader/about-room.ejs +++ b/views/controls/reader/about-room.ejs @@ -1,21 +1,28 @@ <div class="aboutRoom vvbox"> <h1> - [[- name ]], - <a href="[[- authorlink ]]">[[- author ]]</a> + <span class="roomName">[[- name ]]</span> + <br> + [[ if (authorpic) { ]] + <a href="[[- authorlink ]]" class="authorName"><div class="profilePic" style="background-image:url([[- authorpic ]])"></div></a> + [[ } else { ]] + <a href="[[- authorlink ]]" class="authorName"><span class="ion-ios-person-outline"></span></a> + [[ } ]] + <a href="[[- authorlink ]]" class="authorName">[[- author ]]</a> </h1> [[ if (description) { ]] - <span class="txt">[[- description ]]</span> + <span class="txt description">[[- description ]]</span> [[ } ]] - <h2> - Last modified [[- date ]] + + <span class="txt">Last modified [[- date ]]</span> + + <div class="share"> + <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> [[ } ]] - </h2> -</div> - -<div class="share"> - <h2>Share this on–</h2> - <a href="#">Facebook</a> - <a href="#">Twitter</a> </div> diff --git a/views/controls/reader/embed.ejs b/views/controls/reader/embed.ejs new file mode 100644 index 0000000..814644d --- /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/controls/reader/media-player.ejs b/views/controls/reader/media-player.ejs index ca03ec8..cac9992 100644 --- a/views/controls/reader/media-player.ejs +++ b/views/controls/reader/media-player.ejs @@ -1,19 +1,19 @@ <div class="vvbox settings" id="mediaPlayer"> - <span class="playButton video" data-role="play-media"> - <span class="on icon-play"></span> - <span class="off icon-pause"></span> + <span class="playButton video audio" data-role="play-media"> + <span class="on ion-play"></span> + <span class="off ion-pause"></span> </span> <span class="muteButton video" data-role="mute-media"> - <span class="on icon-volume-high"></span> - <span class="off icon-volume-mute"></span> + <span class="on ion-volume-high"></span> + <span class="off ion-volume-mute"></span> </span> <span class="name"></span> <div class="author"></div> - <div class="description"></div> + <div class="txt description"></div> <div class="dimensions"></div> </div> diff --git a/views/docs.ejs b/views/docs.ejs index 5662133..a1f081f 100644 --- a/views/docs.ejs +++ b/views/docs.ejs @@ -1,19 +1,17 @@ <!doctype html> <html> <head> - <title>vvalls</title> + <title>VValls</title> [[ include partials/meta ]] </head> <body class="loading"> -<div class="rapper page docs"> +<div class="rapper page docs about"> [[ include partials/header ]] - <br clear="all"> - [[ if (! isNew) { ]] <h1>[[- doc.displayName ]]</h1> - <div class="content"> + <div class="content doc-[[- doc.name]]"> [[- content ]] </div> diff --git a/views/editor.ejs b/views/editor.ejs index 9950878..08959a0 100755 --- a/views/editor.ejs +++ b/views/editor.ejs @@ -1,7 +1,7 @@ <!doctype html> <html> <head> - <title>vvalls</title> + <title>VValls</title> [[ include partials/meta ]] </head> <body class="editing loading"> @@ -13,15 +13,21 @@ <div id="editorView"> [[ include controls/editor/toolbar ]] + [[ include controls/builder/info ]] [[ include controls/editor/media-drawer ]] [[ include controls/editor/media-editor ]] + [[ include controls/editor/sculpture ]] [[ include controls/editor/wallpaper ]] - [[ include controls/editor/light-control ]] + [[ 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> - <div id="minimap" class="vvbox"> + <div id="minimap" class="vvbox" data-intro="Mini-map shows your position and orientation in a room. Navigate with WASD keys or drag here." data-position="top"> <span class="el"></span> </div> @@ -29,6 +35,9 @@ <div id="map" style="display: block"> </div> </div> + + + <img src="/assets/img/keys.png" id="keyhint"> </div> diff --git a/views/home.ejs b/views/home.ejs index e49dc4a..e3303ed 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -1,40 +1,84 @@ <!doctype html> <html> <head> - <title>vvalls</title> + <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"> + <div class="rapper page home"> [[ include partials/header ]] - <div class="hero" style="background-image:url(https://s3.amazonaws.com/luckyplop/6450f5b88c5c043a4551eff8902b1728f813bd66.jpg)"> + <div class="hero" style="background-image:url(http://okfocus.s3.amazonaws.com/images/vvalls-video-still2.jpg)"> <div class="holder"> <span class="circle"> <span class="videoTitle">Create 3D Rooms</span><br> - <span class="icon-ios7-play"></span><br> + <span class="ion-ios-play"></span><br> <span class="videoTitle">Watch video.</span> </span> </div> </div> + + <h1>What's VValls For?</h1> - <h1>Room Showcase</h1> + <div class="projectList about"> + <div class="item"> + <div class="rap"> + <span style="background-image:url(http://okfocus.s3.amazonaws.com/images/hangart1.gif)"> + </span> + <span> + <h3>Plan Your Art Show</h3> + <words>Whether you're an artist or curator, VValls makes visualizing art within a physical space much easier. With VValls you can build 3D rooms and add art to the walls. Map out how your next gallery show will look without having to nail into sheetrock.</words> + </span> + </div> + </div> + + <div class="item"> + <div class="rap"> + <span style="background-image:url(http://dump.fm/images/20100904/1283618382861-dumpfm-timb-paperrad.paranoia.gif)"> + </span> + <span> + <h3>Defy The Status Quo</h3> + <words>There is no platform on the Internet quite like VValls. VValls opens up the possibilities of expression online. Go crazy, make otherworldly rooms.</words> + </span> + </div> + </div> + + <div class="item"> + <div class="rap"> + <span style="background-image:url(http://33.media.tumblr.com/tumblr_m0an31XPpF1qbhp9xo1_1280.jpg)"> + </span> + <span> + <h3>Make Cutting Edge Presentations</h3> + <words>There's no cooler way than VValls for displaying your images online. Take your pix out of that drab Tumblr theme and present them in the freshest way online!</words> + </span> + </div> + </div> + + <a href="/about/howto" class="greenbtn learn">Read Tutorial</a> +</div> + <h1>Room Showcase</h1> + [[ include projects/list-projects ]] - - <a href="#loadmore" class="viewMore btn">View More</a> + [[ if (! logged_in) { ]] + <div class="projectList about makeAccountSingleton"> + <a href="/about/howto" class="greenbtn learn">Make an Account</a> + </div> + [[ } ]] + [[ include partials/confirm-modal ]] [[ include projects/layouts-modal ]] [[ include partials/sign-in ]] [[ include partials/footer ]] </div> +<div class="videoModal"> +<span class="ion-ios-close-empty"></span> +<div class="holder"> +<div class="video" style="width: 960px; margin: 0 auto; height: 540px; overflow: hidden; position: relative;"><iframe frameborder="0" scrolling="no" seamless="seamless" webkitallowfullscreen="webkitAllowFullScreen" mozallowfullscreen="mozallowfullscreen" allowfullscreen="allowfullscreen" id="okplayer" src="http://player.vimeo.com/video/109947131?api=1&player_id=okplayer" width="960" height="540" style="width: 960px; height: 800px; margin-top: -130px;"></iframe></div> +</div> +</div> </body> [[ include partials/scripts ]] </html> diff --git a/views/mail/collaborator.html.ejs b/views/mail/collaborator.html.ejs index 2a08a1c..c4832d1 100644 --- a/views/mail/collaborator.html.ejs +++ b/views/mail/collaborator.html.ejs @@ -7,7 +7,7 @@ <p> <a href="http://vvalls.com/profile/[[- username ]]">[[- username ]]</a> has invited you to join the project - <a href="http://vvalls.com/project/[[- projectSlug ]]">[[- projectName ]]</a> on Vvalls. + <a href="http://vvalls.com/project/[[- projectSlug ]]">[[- projectName ]]</a> on VValls. </p> <p> diff --git a/views/mail/collaborator.text.ejs b/views/mail/collaborator.text.ejs index 52d39b6..2de78ad 100644 --- a/views/mail/collaborator.text.ejs +++ b/views/mail/collaborator.text.ejs @@ -1,5 +1,5 @@ -[[- username ]] has invited you to join the project [[- projectName ]] on Vvalls. +[[- username ]] has invited you to join the project [[- projectName ]] on VValls. Accept the invitation below: diff --git a/views/mail/welcome.html.ejs b/views/mail/welcome.html.ejs index b2c329f..1d45faf 100644 --- a/views/mail/welcome.html.ejs +++ b/views/mail/welcome.html.ejs @@ -6,7 +6,7 @@ </p> <p> - Welcome to Vvalls, [[- username ]] + Welcome to VValls, [[- username ]] </p> <p> diff --git a/views/mail/welcome.text.ejs b/views/mail/welcome.text.ejs index 02b449b..5c0b51d 100644 --- a/views/mail/welcome.text.ejs +++ b/views/mail/welcome.text.ejs @@ -1,4 +1,4 @@ -Welcome to Vvalls, [[- username ]] +Welcome to VValls, [[- username ]] http://www.vvalls.com diff --git a/views/modal.ejs b/views/modal.ejs index 7ca869c..dfc5573 100644 --- a/views/modal.ejs +++ b/views/modal.ejs @@ -1,7 +1,7 @@ <!doctype html> <html> <head> - <title>vvalls</title> + <title>VValls</title> [[ include partials/meta ]] </head> <body class="loading"> @@ -10,7 +10,7 @@ <div style="height: 70%; clear: both;" id="content"></div> - [[ include partials/confirm-modal ]] + [[ include partials/confirm-modal ]] [[ include partials/sign-in ]] [[ include projects/layouts-modal ]] [[ include projects/edit-project ]] diff --git a/views/partials/confirm-modal.ejs b/views/partials/confirm-modal.ejs index 60fbd31..5b2ff46 100644 --- a/views/partials/confirm-modal.ejs +++ b/views/partials/confirm-modal.ejs @@ -1,5 +1,4 @@ <div class="mediaDrawer fixed animate alert"> - <span class="close">X</span> <div class="box"> <form> <span class="message"></span> diff --git a/views/partials/edit-profile.ejs b/views/partials/edit-profile.ejs index a39f856..5720bc8 100644 --- a/views/partials/edit-profile.ejs +++ b/views/partials/edit-profile.ejs @@ -59,11 +59,10 @@ <br> <br><img id="load_avatar"> </li> - <li class="section_break"> - <h3 class="link">Change Password</h3> + <h3 class="link" data-role="changePasswordToggle">Change Password</h3> </li> - <div class="hidden"> + <div class="hidden" data-role="changePasswordFields"> <li> <label class="description" for="profile_old_password">Old Password:</label> <div> @@ -84,7 +83,7 @@ </li> </div> <li class="buttons"> - <input id="saveForm" class="button_text" type="submit" value="Submit" /> + <input id="saveForm" class="button_text" type="submit" value="Save Changes"> </li> <div class="errors"> <div>There was a problem with your submission:</div> diff --git a/views/partials/edit-subscription.ejs b/views/partials/edit-subscription.ejs new file mode 100644 index 0000000..f3c3589 --- /dev/null +++ b/views/partials/edit-subscription.ejs @@ -0,0 +1,78 @@ +<div class="mediaDrawer fixed animate editSubscription"> + <span class="close">X</span> + <div id="form_container"> + <form> + <input type="hidden" name="_csrf" value="[[- token ]]"> + <ul> + <li class="section_break"> + <h3>Edit Subscription</h3> + </li> + <li class="freePlan"> + You are currently using the free version of VValls. For access to all of VValls features, + consider upgrading to a paid plan. + <br><br> + <div class="planList"></div> + <br><br><br> + </li> + <li class="paidPlan"> + <div class="currentPlanLevel"> + Your current plan level is <span data-role="planName"></span> + </div> + <div class="planMenu"> + <h3>Select desired plan:</h3> + <div> + <input type="radio" id="chooseBasicPlan" data-role="basicPlanInput" name="planRadio" value="basic"> + <label for="chooseBasicPlan" data-role="basicPlanName"></label> + $<span data-role="basicPlanCost"></span>/<span data-role="billingInterval"></span> + </div> + <div> + <input type="radio" id="chooseProPlan" data-role="proPlanInput" name="planRadio" value="pro"> + <label for="chooseProPlan" data-role="proPlanName"></label> + $<span data-role="proPlanCost"></span>/<span data-role="billingInterval"></span> + </div> + </div> + <table class="planInfo"> + <tr class="planRow"> + <th><span data-role="planName"></span></th> + <td></td> + <td></td> + <td>$<span data-role="planCost"></span>/<span data-role="billingInterval"></span></td> + </tr> + <tr class="basicLayoutRow"> + <th>Basic layouts</th> + <td><input type="number" min="0" max="100" step="1" data-role="basicLayoutInput"><span data-role="basicLayoutQuantity"></span></td> + <td>each $<span data-role="basicLayoutCost"></span>/<span data-role="billingInterval"></span></td> + <td>$<span data-role="basicLayoutTotal"></span>/<span data-role="billingInterval"></span></td> + </tr> + <tr class="proLayoutRow"> + <th>Pro layouts</th> + <td><input type="number" min="0" max="100" data-role="proLayoutInput"><span data-role="proLayoutQuantity"></span></td> + <td>each $<span data-role="proLayoutCost"></span>/<span data-role="billingInterval"></span></td> + <td>$<span data-role="proLayoutTotal"></span>/<span data-role="billingInterval"></span></td> + </tr> + <tr class="totalRow"> + <td></td> + <td></td> + <th>Total</th> + <td>$<span data-role="planTotal"></span>/<span data-role="billingInterval"></span></td> + </tr> + </table> + <div class="billingMenu"> + <button data-role="showEditMenu">Edit Your Plan</button><br> + <button data-role="cancelSubscription">Cancel your subscription</button> + </div> + <div class="editMenu"> + <div class="fineprint"> + Your credit card will be charged the difference of XXXX for this month. + Your subscription will renew at XXXX at the start of your next billing cycle. + We thank you for your support! + </div> + <button data-role="saveChanges">Save Subscription</button> + <button data-role="closeMenu">Cancel</button> + </div> + </li> + <div class="gear"><span class="ion-gear-a"></span></div> + </ul> + </form> + </div> +</div> diff --git a/views/partials/footer.ejs b/views/partials/footer.ejs index 3f816f0..2d9fb59 100644 --- a/views/partials/footer.ejs +++ b/views/partials/footer.ejs @@ -1,18 +1,9 @@ <div class="footer"> - <a href="/about">About</a> - <a href="/about/faq">FAQ</a> - <a href="/about/terms">Terms</a> - <a href="/about/privacy">Privacy</a> - - <span>©2014 VVALLS Inc.</span> - [[ if (logged_in) { ]] - <br><br> - <span> - you are signed in as → - <a href="/profile/[[- user.username ]]">[[- user.displayName ]]</a> + signed in as + <a href="/profile/[[- user.username ]]"><b>[[- user.displayName ]]</b></a> [[ if (user.isStaff) { ]] <a href="/staff">Staff Area</a> [[ } ]] @@ -20,4 +11,21 @@ </span> [[ } ]] + <br><br> + + <a href="/about">About</a> + <a href="/about/howto">How To</a> + + [[ if (logged_in && user.plan_level > 0) { ]] + <a href="/profile/billing">Billing</a> + [[ } else { ]] + <a href="/about/brochure">Subscribe</a> + [[ } ]] + <a href="/about/terms">Terms</a> + <a href="/about/privacy">Privacy</a> + <a href="mailto:hello@vvalls.com">Contact</a> + <br><br> + <span>© 2016 Dot Dash 3, Inc.</span> + <a href="http://okfoc.us/">Site by OKFocus</a> + </div> diff --git a/views/partials/header.ejs b/views/partials/header.ejs index a48c5e1..ce9ffae 100644 --- a/views/partials/header.ejs +++ b/views/partials/header.ejs @@ -1,4 +1,51 @@ -<a href="/" class="logo"><img src="/assets/img/logo4.svg"></a> +<div id="header"> +<a href="/" class="logo"> + <svg version="1.1" + xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/" + x="0px" y="0px" width="117px" height="44px" viewBox="-0.896 -0.441 117 44" + overflow="visible" enable-background="new -0.896 -0.441 117 44" xml:space="preserve"> + <defs> + </defs> + <path d="M0.54,38.759c0-1.44,0.66-3.72,1.56-6.18c1.38-3.84,3.42-8.22,4.5-11.16c0.48-1.32,0.78-2.34,0.78-2.88 + c0-0.72-0.24-1.02-0.72-1.02c-1.38,0-4.74,5.16-5.4,6.24c-0.36,0.6-0.48,0.78-0.78,0.78c-0.3,0-0.48-0.06-0.48-0.36 + c0-0.18,0.18-0.84,0.66-1.62c0.9-1.44,2.22-3.6,3.9-5.28c1.44-1.5,3.12-2.64,4.74-2.64c1.38,0,1.92,1.32,1.92,2.7 + c0,1.02-0.42,2.58-1.02,4.32c-1.26,3.72-3.359,8.521-4.68,12.18c-0.66,1.92-1.14,3.54-1.14,4.62c0,1.38,0.48,2.459,1.979,2.459 + c6.48,0,13.56-14.639,13.56-17.759c0-1.2-0.3-1.92-0.6-2.58c-0.42-0.9-0.9-1.62-0.9-3.18c0-1.86,0.84-2.76,1.8-2.76 + c0.9,0,1.98,1.08,1.98,3.66c0,9.179-9.6,24.66-17.58,24.66c-2.82,0-4.08-1.561-4.08-4.141V38.759z"/> + <path d="M23.879,38.759c0-1.44,0.66-3.72,1.56-6.18c1.38-3.84,3.42-8.22,4.5-11.16c0.48-1.32,0.78-2.34,0.78-2.88 + c0-0.72-0.24-1.02-0.72-1.02c-1.38,0-4.74,5.16-5.4,6.24c-0.36,0.6-0.48,0.78-0.78,0.78c-0.3,0-0.48-0.06-0.48-0.36 + c0-0.18,0.18-0.84,0.66-1.62c0.9-1.44,2.22-3.6,3.9-5.28c1.44-1.5,3.12-2.64,4.74-2.64c1.38,0,1.92,1.32,1.92,2.7 + c0,1.02-0.42,2.58-1.02,4.32c-1.26,3.72-3.36,8.521-4.68,12.18c-0.66,1.92-1.14,3.54-1.14,4.62c0,1.38,0.48,2.459,1.98,2.459 + c6.479,0,13.559-14.639,13.559-17.759c0-1.2-0.3-1.92-0.6-2.58c-0.42-0.9-0.9-1.62-0.9-3.18c0-1.86,0.84-2.76,1.8-2.76 + c0.9,0,1.979,1.08,1.979,3.66c0,9.179-9.6,24.66-17.579,24.66c-2.82,0-4.08-1.561-4.08-4.141V38.759z"/> + <path d="M44.339,37.799c0-5.22,2.76-10.92,6.36-15.299c3.66-4.44,8.159-7.5,11.759-7.5c2.7,0,3.78,1.44,3.9,1.44 + s0.48-0.96,0.66-1.44c0.18-0.48,0.3-0.6,1.02-0.6h1.74c0.359,0,0.6,0.06,0.6,0.42c0,0.18-0.119,0.6-0.24,0.9 + c-1.919,5.82-3.839,11.64-5.819,17.519c-1.14,3.48-1.26,4.381-1.26,5.041c0,0.659,0.3,0.84,0.66,0.84c0.54,0,1.68-1.141,3.72-4.26 + c1.5-2.28,1.26-2.94,1.86-2.94c0.3,0,0.42,0.181,0.42,0.479c0,0.84-1.38,3.541-3.24,6c-1.8,2.52-4.14,4.8-6.12,4.8 + c-1.38,0-1.62-0.96-1.62-2.159c0-0.961,0.24-2.101,0.72-3.66c0.54-1.98,1.5-4.62,2.82-8.52l-0.12-0.12 + c-2.16,3.3-9.36,14.459-14.1,14.459c-2.76,0-3.72-2.159-3.72-5.339V37.799z M65.338,18.839c0-1.8-1.08-2.76-2.76-2.76 + c-3,0-6.6,3.72-9.48,8.22c-2.82,4.5-4.919,9.839-4.919,13.019c0,1.561,0.54,2.641,1.86,2.641c2.22,0,6.06-4.26,9.3-9 + c3.3-4.74,6-10.02,6-12.06V18.839z"/> + <path d="M72.178,39.839c0-1.08,0.479-3.479,1.2-6.479c1.74-7.02,4.979-17.52,6.6-23.64c0.66-2.46,1.08-4.2,1.08-4.8 + c0-0.78-0.24-1.32-1.62-1.44c-1.14-0.12-1.38-0.3-1.38-0.78c0.061-0.42,0.779-0.66,1.8-0.66c2.58,0,4.2-0.78,5.16-1.38 + c0.6-0.36,0.96-0.66,1.14-0.66c0.3,0,0.42,0.12,0.42,0.48c0,0.3-0.6,1.56-1.14,3.479c-5.04,17.759-7.38,25.799-8.46,29.698 + c-0.84,3.061-0.96,3.84-0.96,4.681c0,0.6,0.3,1.02,0.78,1.02c0.84,0,1.619-0.659,3.479-3.72c1.08-1.74,1.92-4.199,2.46-4.199 + c0.301,0,0.42,0.239,0.42,0.539c0,0.42-0.84,2.521-2.16,4.74c-1.739,3-4.319,6.24-6.719,6.24c-1.681,0-2.101-1.32-2.101-3.061 + V39.839z"/> + <path d="M85.497,39.839c0-1.08,0.48-3.479,1.2-6.479c1.739-7.02,4.979-17.52,6.6-23.64c0.66-2.46,1.08-4.2,1.08-4.8 + c0-0.78-0.24-1.32-1.62-1.44c-1.14-0.12-1.38-0.3-1.38-0.78c0.06-0.42,0.78-0.66,1.8-0.66c2.58,0,4.2-0.78,5.16-1.38 + c0.6-0.36,0.96-0.66,1.14-0.66c0.3,0,0.42,0.12,0.42,0.48c0,0.3-0.6,1.56-1.14,3.479c-5.04,17.759-7.38,25.799-8.46,29.698 + c-0.84,3.061-0.96,3.84-0.96,4.681c0,0.6,0.301,1.02,0.78,1.02c0.84,0,1.62-0.659,3.479-3.72c1.08-1.74,1.92-4.199,2.46-4.199 + c0.3,0,0.42,0.239,0.42,0.539c0,0.42-0.84,2.521-2.159,4.74c-1.74,3-4.32,6.24-6.721,6.24c-1.68,0-2.1-1.32-2.1-3.061V39.839z"/> + <path d="M111.416,34.619c0,2.34-0.96,4.439-2.46,5.939c-1.68,1.68-4.02,2.64-6.479,2.64c-1.86,0-3.84-0.78-5.04-1.56 + c-0.6-0.42-1.02-0.84-1.02-1.2c0-0.96,0.359-3.12,0.959-5.819c0.42-1.98,0.48-2.34,1.08-2.34c0.541,0,0.601,0.359,0.601,2.16 + c0,3.84,1.2,7.319,4.92,7.319c2.34,0,4.2-2.46,4.2-4.74c0-2.819-1.561-4.979-3.24-6.96c-1.68-1.979-3.24-4.08-3.24-6.899 + c0-4.38,3.24-8.76,7.859-8.76c3,0,5.82,1.38,5.82,2.1c0,1.14-0.301,2.4-0.66,3.9c-0.72,2.76-0.779,3.06-1.38,3.06 + c-0.899,0-0.78-1.92-1.08-3.84c-0.3-1.86-1.08-3.78-3.6-3.78c-2.34,0-4.08,2.04-4.08,4.439s1.62,4.44,3.24,6.6 + c1.8,2.34,3.6,4.68,3.6,7.68V34.619z"/> + </svg> + +</a> <div id="minotaur"> <span class="label"></span> @@ -6,21 +53,33 @@ <span class="topLinks"> [[ if (logged_in) { ]] - [[ if (user.isStaff) { ]] <a href="/layout" data-role="show-layouts-modal" class="topLink">Layouts</a> [[ } ]] - <a href="/project" data-role="show-projects-modal" class="topLink">Projects</a> + <!--<a href="/project" data-role="show-projects-modal" class="topLink">Projects</a>--> + + <a href="#" data-role="new-project-modal">New Project</a> + [[ if (profile && String(user._id) == String(profile._id)) { ]] <a href="/profile" data-role="edit-profile-modal" class="topLink editProfile">Settings</a> +<!-- + <a href="/profile" data-role="edit-subscription-modal" class="topLink editSubscription">Subscription</a> + --> [[ } else if (! profile) { ]] - <a href="/profile" class="topLink">Profile</a> + <a href="/profile" class="topLink profileLink">Profile</a> [[ } ]] - + + [[ if (opt.editing) { ]] + <a href="#" class="ion-help-circled" id="help-button"></a> + [[ } ]] + [[ } else { ]] <a href="/signup" data-role="show-signup-modal" class="signUp topLink">Sign Up</a> - <a href="/login" data-role="show-signin-modal" class="signIn topLink">Sign In</a> + <a href="/signin" data-role="show-signin-modal" class="signIn topLink">Sign In</a> [[ } ]] </span> +</div> + +<span class="close" id="fixed_close">X</span>
\ No newline at end of file diff --git a/views/partials/meta.ejs b/views/partials/meta.ejs index 9916b34..673ab64 100644 --- a/views/partials/meta.ejs +++ b/views/partials/meta.ejs @@ -17,19 +17,19 @@ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/> - <meta name="viewport" content="width=device-width, initial-scale=1.0"/> - <meta name="keywords" content=""/> - <meta name="description" content="" /> - <meta name="author" content="" /> - <link rel="shortcut icon" href="/favicon.ico"/> - <meta property="og:title" content=""/> - <meta property="og:type" content="website"/> - <meta property="og:image" content="" /> - <link rel="image_src" href=""/> - <meta property="og:url" content=""/> - <meta property="og:site_name" content="" /> + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable = no"> + <meta name="apple-mobile-web-app-capable" content="yes"> + <meta name="description" content="[[- ogDescription ]]" /> + <meta name="author" content="[[- ogAuthor ]]" /> + <link rel="shortcut icon" href="/favicon.ico" /> + <meta property="og:title" content="[[- ogTitle ]]" /> + <meta property="og:type" content="website" /> + <meta property="og:image" content="[[- ogImage ]]" /> + <meta property="og:url" content="[[- ogUrl ]]" /> + <meta property="og:site_name" content="vvalls" /> <link rel="icon" href="/favicon.ico" type="image/x-icon"> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"> + <link href='http://fonts.googleapis.com/css?family=Lato:100,300,400,700,900,100italic,300italic,400italic,700italic,900italic' 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]> diff --git a/views/partials/scripts.ejs b/views/partials/scripts.ejs index 7d56b2e..da3f0ba 100644 --- a/views/partials/scripts.ejs +++ b/views/partials/scripts.ejs @@ -1,44 +1,64 @@ +[[ if (config.env.production) { ]] +<script type="text/javascript" src="/assets/javascripts/app.min.js"></script> +[[ } else { ]] <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/lodash/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/bower_components/fiber/src/fiber.min.js"></script> +<script type="text/javascript" src="/assets/javascripts/vendor/bower_components/hidpi-canvas/dist/hidpi-canvas.js"></script> +<!-- <script type="text/javascript" src="/assets/javascripts/vendor/bower_components/prefixfree/prefixfree.min.js"></script> --> +<script type="text/javascript" src="/assets/javascripts/vendor/bower_components/marked/lib/marked.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/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> +<script type="text/javascript" src="/assets/javascripts/vendor/froogaloop.js"></script> <script type="text/javascript" src="/assets/javascripts/util.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/extensions/mx.movementsMobile.js"></script> +<script type="text/javascript" src="/assets/javascripts/mx/extensions/mx.orbitCamera.js"></script> + <script type="text/javascript" src="/assets/javascripts/mx/primitives/mx.image.js"></script> +<script type="text/javascript" src="/assets/javascripts/mx/primitives/mx.text.js"></script> <script type="text/javascript" src="/assets/javascripts/mx/primitives/mx.video.js"></script> <script type="text/javascript" src="/assets/javascripts/mx/primitives/mx.youtube.js"></script> <script type="text/javascript" src="/assets/javascripts/mx/primitives/mx.vimeo.js"></script> +<script type="text/javascript" src="/assets/javascripts/mx/primitives/mx.soundcloud.js"></script> +<script type="text/javascript" src="/assets/javascripts/mx/primitives/mx.grid.js"></script> +<script type="text/javascript" src="/assets/javascripts/mx/primitives/mx.point.js"></script> +<script type="text/javascript" src="/assets/javascripts/mx/primitives/mx.polyline.js"></script> <script type="text/javascript" src="/assets/javascripts/rectangles/_env.js"></script> + <script type="text/javascript" src="/assets/javascripts/rectangles/util/constants.js"></script> <script type="text/javascript" src="/assets/javascripts/rectangles/util/colors.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/util/coords.js"></script> <script type="text/javascript" src="/assets/javascripts/rectangles/util/debug.js"></script> -<script type="text/javascript" src="/assets/javascripts/rectangles/util/permissions.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/util/keys.js"></script> <script type="text/javascript" src="/assets/javascripts/rectangles/util/measurement.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/util/minotaur.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/util/mouse.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/util/permissions.js"></script> <script type="text/javascript" src="/assets/javascripts/rectangles/util/sort.js"></script> <script type="text/javascript" src="/assets/javascripts/rectangles/util/uid.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/util/undostack.js"></script> -<script type="text/javascript" src="/assets/javascripts/rectangles/util/minotaur.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/util/wheel.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/models/rect.js"></script> <script type="text/javascript" src="/assets/javascripts/rectangles/models/surface.js"></script> <script type="text/javascript" src="/assets/javascripts/rectangles/models/tree.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/floor.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/_walls.js"></script> @@ -50,34 +70,64 @@ <script type="text/javascript" src="/assets/javascripts/rectangles/engine/scenery/_scenery.js"></script> <script type="text/javascript" src="/assets/javascripts/rectangles/engine/scenery/move.js"></script> <script type="text/javascript" src="/assets/javascripts/rectangles/engine/scenery/resize.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/scenery/randomize.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/scenery/sound.js"></script> <script type="text/javascript" src="/assets/javascripts/rectangles/engine/scenery/undo.js"></script> <script type="text/javascript" src="/assets/javascripts/rectangles/engine/scenery/types/_object.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/scenery/types/audio.js"></script> <script type="text/javascript" src="/assets/javascripts/rectangles/engine/scenery/types/image.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/scenery/types/text.js"></script> <script type="text/javascript" src="/assets/javascripts/rectangles/engine/scenery/types/video.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/sculpture/_sculpture.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/sculpture/move.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/sculpture/resize.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/sculpture/types/_object.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/sculpture/types/image.js"></script> + +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/shapes/polyline.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/shapes/ortho.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/shapes/shapelist.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/shapes/regionlist.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_editor.js"></script> -<script type="text/javascript" src="/assets/javascripts/rectangles/engine/map/ui_minimap.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/ui/editor.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/map/ui/minimap.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/map/ui/ortho.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/map/tools/_base.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/map/tools/arrow.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/map/tools/line.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/map/tools/eraser.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/map/tools/ortho.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/map/tools/polyline.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/map/tools/position.js"></script> +<script type="text/javascript" src="/assets/javascripts/rectangles/engine/map/tools/start.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/lib/View.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/lib/Router.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/lib/ModalView.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/lib/FormView.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/lib/UploadView.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/lib/AnimatedView.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/lib/ToggleableView.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/lib/AlertModal.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/lib/ConfirmModal.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/lib/ErrorModal.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/lib/Parser.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/lib/LabColorPicker.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/site/SignInModal.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/site/SignUpModal.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/site/UsernameTaken.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/site/PasswordForgot.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/site/PasswordReset.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/site/LayoutsIndex.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/site/LayoutsModal.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/site/NewProjectModal.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/site/EditProjectModal.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/site/EditProfileModal.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/site/EditSubscriptionModal.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/site/DocumentModal.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/site/HomeView.js"></script> @@ -89,24 +139,41 @@ <script type="text/javascript" src="/assets/javascripts/ui/builder/BuilderToolbar.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/builder/BuilderInfo.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/blueprint/BlueprintView.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/blueprint/BlueprintInfo.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/blueprint/BlueprintSettings.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/blueprint/BlueprintEditor.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/blueprint/BlueprintScaler.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/blueprint/BlueprintToolbar.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/blueprint/BlueprintUploader.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/blueprint/BlueprintNotice.js"></script> + <script type="text/javascript" src="/assets/javascripts/ui/editor/EditorView.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/editor/EditorSettings.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/editor/EditorToolbar.js"></script> -<script type="text/javascript" src="/assets/javascripts/ui/editor/LightControl.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/editor/HelpCursor.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/editor/ColorControl.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/editor/Collaborators.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/editor/MediaEditor.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/editor/MediaTumblr.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/editor/MediaUpload.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/editor/MediaViewer.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/editor/Presets.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/editor/SculptureEditor.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/editor/TextEditor.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/editor/WallpaperPicker.js"></script> <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> <script type="text/javascript" src="/assets/javascripts/ui/_router.js"></script> <script type="text/javascript" src="/assets/javascripts/app.js"></script> <script type="text/javascript" src="/assets/javascripts/defaults.js"></script> +[[ } ]] -<!-- external dependencies --> -<script src="http://www.youtube.com/player_api"></script> -<script src="http://a.vimeocdn.com/js/froogaloop2.min.js"></script> +<script type="text/javascript" src="http://www.youtube.com/player_api"></script> +<script type="text/javascript" src="https://w.soundcloud.com/player/api.js"></script> diff --git a/views/partials/sign-in.ejs b/views/partials/sign-in.ejs index 98f0acc..0d36a1d 100644 --- a/views/partials/sign-in.ejs +++ b/views/partials/sign-in.ejs @@ -3,9 +3,12 @@ <div class="mediaDrawer fixed animate signin"> <span class="close">X</span> <div class="box"> + <form id="signIn" method="post"> + <h2>Sign in</h2> + <input type="hidden" name="_csrf" value="[[- token ]]"> - <a href="/auth/facebook" class="facebook"><b class="icon-social-facebook"></b><span>Sign in with Facebook</span></a> + <a href="/auth/facebook" class="facebook"><b class="ion-social-facebook"></b><span>Sign in with Facebook</span></a> <b class="signin-tagline">– or with your email –</b> <li> <label class="description" for="usernameInput">Username:</label> @@ -37,8 +40,10 @@ <span class="close">X</span> <div class="box"> <form id="signUp" method="post"> + <h2>Sign up</h2> + <input type="hidden" name="_csrf" value="[[- token ]]"> - <a href="/auth/facebook" class="facebook"><b class="icon-social-facebook"></b><span>Sign up with Facebook</span></a> + <a href="/auth/facebook" class="facebook"><b class="ion-social-facebook"></b><span>Sign up with Facebook</span></a> <b class="signin-tagline">– or with your email –</b> <li> <label class="description" for="usernameInput">Username:</label> diff --git a/views/profile.ejs b/views/profile.ejs index ada3d52..d3ae10e 100644 --- a/views/profile.ejs +++ b/views/profile.ejs @@ -1,52 +1,86 @@ <!doctype html> <html> <head> - <title>vvalls</title> + <title>VValls | [[- profile.displayName ]]</title> [[ include partials/meta ]] </head> <body class="loading"> <div class="rapper page"> [[- include partials/header ]] - <table class="profilepage"> - <tr> - [[ if (profile.photo && profile.photo.length) { ]] - <td class="border profilePic" style="background-image:url([[- profile.photo ]])"> - </td> - [[ } else { ]] - <td class="border profilePic"> - <span class="icon-ios7-person-outline"></span> - </td> + <div class="profilepage"> + [[ if (profile.photo && profile.photo.length) { ]] + <div class="profilePic" style="background-image:url([[- profile.photo ]])"> + </div> + [[ } else { ]] + <div class="profilePic noPic"> + <span class="holder"> + <span class="ion-ios-person-outline"></span> + [[ if (isOwnProfile) { ]] + <div>click to add profile pic</div> + <input id="profile_avatar" name="avatar" class="element file" type="file"> + [[ } ]] + </span> + </div> + [[ } ]] + <div class="bio"> + <div class="holder"> + <h2>[[- profile.displayName ]]</h2> + [[ if (profile.location) { ]] + <span> + [[- profile.location ]] + </span> + [[ } ]] + [[ if (profile.website && profile.website.length) { ]] + <span> + <a href="[[- profile.website ]]" target="_blank">[[- profile.website ]]</a> + </span> + [[ } ]] + [[ if (profile.twitterName && profile.twitterName.length) { ]] + <span> + <a href="https://twitter.com/[[- profile.twitterName ]]" target="_blank">@[[- profile.twitterName ]]</a> + </span> [[ } ]] - <td class="bio"> - <h2>[[- profile.displayName ]]</h2> - [[ if (profile.location) { ]] - <span> - [[- profile.location ]] - </span> - [[ } ]] - [[ if (profile.website && profile.website.length) { ]] - <span> - <a href="[[- profile.website ]]">[[- profile.website ]]</a> - </span> - [[ } ]] - [[ if (profile.twitterName && profile.twitterName.length) { ]] - <span> - <a href="https://twitter.com/[[- profile.twitterName ]]">@[[- profile.twitterName ]]</a> - </span> - [[ } ]] - </td> - </tr> - </table> + [[ if (profile.plan_level == 1) { ]] + <span class="plan_level premium">PREMIUM</span> + [[ } else if (profile.plan_level == 2) { ]] + <span class="plan_level pro">PRO</span> + [[ } ]] + </div> + </div> [[ if (projects.length) { ]] - <h1>[[- profile.username ]] has [[- projects.length ]] project[[- projects.length != 1 ? "s" : "" ]]</h1> + + <h1>[[- profile.username ]] has [[- projectCount ]] project[[- projectCount != 1 ? "s" : "" ]]</h1> + [[ include projects/list-projects ]] + + [[ } else { ]] + + <h1>Welcome to VVALLS</h1> + <div class="projectList about"> + <h2> + VValls lets you create awesome 3D rooms. + </h2> + + [[ if (isOwnProfile) { ]] + <h2> + You don't have any projects yet. + </h2> + <h2> + <a href="#"class="btn" data-role="new-project-modal">Create a New Project</a> + </h2> + [[ } else { ]] + <h2><a href="/" class="homeLink">Learn more about VValls</a></h2> + <h3>This person has no projects.</h3> + [[ } ]] + </div> + [[ } ]] - - [[ include projects/list-projects ]] - <a href="#" data-role="new-project-modal" class="viewMore btn">create project</a> - + </div> +<!-- + [[ include partials/edit-subscription ]] + --> [[ include partials/edit-profile ]] [[ include projects/layouts-modal ]] [[ include projects/edit-project ]] diff --git a/views/projects/layouts-modal.ejs b/views/projects/layouts-modal.ejs index 34dc9af..0d648cd 100644 --- a/views/projects/layouts-modal.ejs +++ b/views/projects/layouts-modal.ejs @@ -3,14 +3,18 @@ <div class="box"> <div class="templates"> - <h1>Edit Room Layouts</h1> + <h2>Edit Room Layouts</h2> + <div class="templates-list"> + </div> + <form> + <input data-role="create-new-blueprint" class="button_text" type="submit" value="Trace a Blueprint"> + <input data-role="create-new-layout" class="button_text" type="submit" value="Make a Standard Layout"> + </form> </div> <div class="no-templates"> There are no room layouts available. Please <a href="/layout/new">create a new one.</a> </div> - <form> - <input data-role="create-new-layout" class="button_text" type="submit" value="New Layout"> - </form> + </div> </div> @@ -19,7 +23,9 @@ <div class="box"> <div class="templates"> - <h1>Your Projects</h1> + <h2>Your Projects</h2> + <div class="templates-list"> + </div> </div> <div class="no-templates"> </div> @@ -33,8 +39,16 @@ <span class="close">X</span> <div class="box"> - <h1>Choose Room Template</h1> <div class="templates"> + <h2>Select a Room Template</h2> + + <div class="templates-list"> + </div> + + <form> + <input data-role="create-new-blueprint" class="button_text" type="submit" value="trace a blueprint"> + <input data-role="create-new-layout" class="button_text" type="submit" value="or make your own template"> + </form> </div> <div class="no-templates"> There are no room layouts available. Please <a href="/layout/new">create a new one.</a> diff --git a/views/projects/list-projects.ejs b/views/projects/list-projects.ejs index 537d409..2749b0e 100644 --- a/views/projects/list-projects.ejs +++ b/views/projects/list-projects.ejs @@ -1,23 +1,39 @@ [[ if (projects.length) { ]] - + <div class="projectList"> [[ projects.forEach(function(project, i) { ]] - - <span class="room"> - <iframe src="/project/[[- project.slug ]]/view?noui=1&mute=1" class="embed"></iframe> - [[ if (String(user._id) == String(project.user_id)) { ]] - <a href="/project/[[- project.slug ]]/edit"><div class="editBtn">edit</div></a> - [[ } ]] - <div class="holder"> - <a href="/project/[[- project.slug ]]" class="roomName"> - [[- project.name ]]<br> - [[- project.date ]] - </a> - </div> + [[ if (i > 5) { return } ]] + [[ if (String(user._id) == String(project.user_id)) { ]] + <a href="/project/[[- project.slug ]]/edit" class="projectItem" data-userid="[[- project.user_id ]]"> + [[ } else { ]] + <a href="/project/[[- project.slug ]]" class="projectItem" data-userid="[[- project.user_id ]]"> + [[ } ]] + <span class="room" style="background-color: rgb([[- project.color ]]);"> + <span class="mask" style="background-image: url([[- project.photo ]]);"> + </span> + <span class="images" data-mediaCount="[[- Math.min(project.media.length, 4) ]]"> + [[ mediaCount = 0 ]] + [[ project.media.some(function(media){ ]] + [[ if (media.media.type != "image") { return false } ]] + [[ if (++mediaCount > 4) { return true } ]] + <div style="background-image:url([[- media.media.url ]])"></div> + [[ }) ]] + </span> </span> + <label> + [[- project.name ]]<br> + Created – [[- project.date ]] + </label> + + </a> [[ }) ]] + + [[ if (projects.length > 6) { ]] + <a href="#" class="viewMore btn">view more</a> + [[ } ]] + </div> [[ } ]] diff --git a/views/reader.ejs b/views/reader.ejs index ed5df1f..7035356 100644 --- a/views/reader.ejs +++ b/views/reader.ejs @@ -1,10 +1,10 @@ <!doctype html> <html> <head> - <title>vvalls</title> + <title>VValls</title> [[ include partials/meta ]] </head> -<body class="loading"> +<body class="loading reader"> <div id="scene"></div> @@ -15,6 +15,11 @@ <div id="editorView"> [[ include controls/reader/about-room ]] [[ include controls/reader/media-player ]] + [[ include controls/reader/embed ]] + </div> + + <div id="minimap" class="vvbox" data-intro="Mini-map shows your position and orientation in a room. Navigate with WASD keys or drag here." data-position="top"> + <span class="el"></span> </div> </div> [[ } ]] @@ -23,6 +28,8 @@ [[ include projects/layouts-modal ]] [[ include partials/sign-in ]] + <img src="/assets/img/keys.png" id="keyhint"> + <img src="/assets/img/360.png" id="threesixty"> </body> [[ include partials/scripts ]] </html> diff --git a/views/staff/_blueprints.ejs b/views/staff/_blueprints.ejs new file mode 100644 index 0000000..58fe2a3 --- /dev/null +++ b/views/staff/_blueprints.ejs @@ -0,0 +1,21 @@ +<table id="users"> +[[ blueprints.forEach(function(blueprint){ ]] + <tr> + <td> + <a href="/staff/blueprints/[[- blueprint.slug ]]">[[- blueprint.name ]]</a> + </td> + <td class="editLinks"> + <a href="/blueprint/[[- blueprint.slug ]]">[view]</a> +<!-- + <a href="/api/rooms/[[- blueprint.slug ]]">[api]</a> + --> + </td> + <td> + <a href="/staff/users/[[- blueprint.user.username ]]">[[- blueprint.user.username ]]</a> + </td> + <td> + [[- blueprint.date ]] + </td> + </tr> +[[ }) ]] +</table> diff --git a/views/staff/_gallery.ejs b/views/staff/_gallery.ejs new file mode 100644 index 0000000..d5948e3 --- /dev/null +++ b/views/staff/_gallery.ejs @@ -0,0 +1,38 @@ +[[ media.forEach(function(media){ ]] + <div class="media"> + [[ if (media.type == "image") { ]] + <a class="medialink" href="[[- media.url ]]" target="_blank"><img src="[[- media.url ]]"></a> + [[ } else { ]] + <a class="medialink" href="[[- media.url ]]" target="_blank">[[- media.shortUrl ]]</a> + [[ } ]] + <br> + <a href="/staff/media/[[- media._id ]]">[view]</a> + <a href="/staff/users/[[- media.user.username ]]">[[- media.user.username ]]</a> + [[- media.date ]] + </div> +[[ }) ]] +</table> + +<style> +.media { + height: 28vw; + width: 24vw; + margin: 1vw; + display: inline-block; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.staff .body a.medialink { + width: 24vw; + height: 24vw; + display: block; + overflow: hidden; + color: #00f; + border: 0; + text-decoration: underline; +} +.staff .body a.medialink img { + max-width: 100%; +} +</style>
\ No newline at end of file diff --git a/views/staff/_header.ejs b/views/staff/_header.ejs index 3bbf4f1..a73c12e 100644 --- a/views/staff/_header.ejs +++ b/views/staff/_header.ejs @@ -1,7 +1,7 @@ <!doctype html> <html> <head> - <title>vvalls | staff</title> + <title>VValls | staff</title> [[ include ../partials/meta ]] <link rel="stylesheet" href="/assets/javascripts/vendor/bower_components/jquery-jsonview/dist/jquery.jsonview.css"></script> <link rel="stylesheet" href="/assets/stylesheets/staff.css"></script> diff --git a/views/staff/_layouts.ejs b/views/staff/_layouts.ejs new file mode 100644 index 0000000..d97883b --- /dev/null +++ b/views/staff/_layouts.ejs @@ -0,0 +1,22 @@ +<table id="users"> +[[ layouts.forEach(function(layout){ ]] + <tr> + <td> + <a href="/staff/layouts/[[- layout.slug ]]">[[- layout.name ]]</a> + </td> + <td class="editLinks"> + <a href="/layout/[[- layout.slug ]]">[view]</a> + <a href="/layout/[[- layout.slug ]]/edit">[edit]</a> +<!-- + <a href="/api/rooms/[[- layout.slug ]]">[api]</a> + --> + </td> + <td> + <a href="/staff/users/[[- layout.user.username ]]">[[- layout.user.username ]]</a> + </td> + <td> + [[- layout.date ]] + </td> + </tr> +[[ }) ]] +</table> diff --git a/views/staff/_nav.ejs b/views/staff/_nav.ejs new file mode 100644 index 0000000..702a374 --- /dev/null +++ b/views/staff/_nav.ejs @@ -0,0 +1,10 @@ +<nav> + <a href="/staff">home</a> + <a href="/staff/users">users</a> + <a href="/staff/projects">projects</a> + <a href="/staff/layouts">layouts</a> + <a href="/staff/blueprints">blueprints</a> + <a href="/staff/media">media</a> + <a href="/staff/plans">plans</a> +<!-- <a href="/staff/subscriptions">subscriptions</a> --> +</nav>
\ No newline at end of file diff --git a/views/staff/_pagination.ejs b/views/staff/_pagination.ejs index 6c3bfb1..7d85c71 100644 --- a/views/staff/_pagination.ejs +++ b/views/staff/_pagination.ejs @@ -10,7 +10,7 @@ [[ if (pagination.next_page !== -1) { ]] <a href="?[[- pagination.query ]]&offset=[[- pagination.next_page ]]">Next page →</a> [[ } else { ]] - → + -> [[ } ]] </div> diff --git a/views/staff/_projects.ejs b/views/staff/_projects.ejs index 0fdfcf5..2c3eb9f 100644 --- a/views/staff/_projects.ejs +++ b/views/staff/_projects.ejs @@ -7,11 +7,10 @@ <td class="editLinks"> <a href="/project/[[- project.slug ]]">[view]</a> <a href="/project/[[- project.slug ]]/edit">[edit]</a> + <a href="/api/rooms/[[- project.slug ]]">[api]</a> </td> <td> - [[ if (project.user) { ]] <a href="/staff/users/[[- project.user.username ]]">[[- project.user.username ]]</a> - [[ } ]] </td> <td> [[- project.date ]] diff --git a/views/staff/_users.ejs b/views/staff/_users.ejs index d46058f..ee988ab 100644 --- a/views/staff/_users.ejs +++ b/views/staff/_users.ejs @@ -1,3 +1,18 @@ +<nav class="subnav"> + sort by <a href="?sort=date">join date</a> ... <a href="?sort=last_seen">recent</a> ... <a href="?sort=name">name</a> ... jump to a letter: + <span class="alphabet"> + [[ "abcdefghijklmnopqrstuvwxyz?".split("").forEach(function(letter){ ]] + <a href="?sort=name&initial=[[- letter ]]">[[- letter.toUpperCase() ]]</a> + [[ }) ]] + </span> +</nav> + +[[ if (! users.length || opt.error) { ]] +<div class="error"> + [[- opt.error ]] +</div> +[[ } ]] + <table id="users"> [[ users.forEach(function(user){ ]] <tr> @@ -5,6 +20,10 @@ <a href="/staff/users/[[- user.username ]]"><div style="background-image:url([[- user.photo ]])" class="avatar"></div></a> </td> <td> + [[- user.plan_type ]] + [[- user.last_charged ]] + </td> + <td> <a href="/staff/users/[[- user.username ]]">[[- user.username ]]</a> </td> <td> @@ -12,6 +31,8 @@ </td> <td class="editLinks"> <a href="/profile/[[- user.username ]]">[view profile]</a> + <a href="/staff/users/[[- user.username ]]/media">[view media]</a> + <a href="https://vvalls.recurly.com/accounts/[[- user._id ]]">[recurly]</a> </td> <td> [[- user.last_seen ]] diff --git a/views/staff/blueprints/index.ejs b/views/staff/blueprints/index.ejs new file mode 100644 index 0000000..2206a1c --- /dev/null +++ b/views/staff/blueprints/index.ejs @@ -0,0 +1,13 @@ +[[ include ../_header ]] + + <h1>Blueprints</h1> + +[[ include ../_nav ]] + + <hr> + +[[ include ../_pagination ]] +[[ include ../_blueprints ]] +[[ include ../_pagination ]] + +[[ include ../_footer ]] diff --git a/views/staff/blueprints/show.ejs b/views/staff/blueprints/show.ejs new file mode 100644 index 0000000..5fd9db6 --- /dev/null +++ b/views/staff/blueprints/show.ejs @@ -0,0 +1,59 @@ +[[ include ../_header ]] + + <h1>[[- blueprint.name ]]</h1> + +[[ include ../_nav ]] + + <hr> + + <table> + <tr> + <td> + <a href="/staff/blueprints/[[- blueprint.slug ]]">[[- blueprint.name ]]</a> + </td> + <td class="editLinks"> + <a href="/blueprint/[[- blueprint.slug ]]">[view]</a> + <a href="/blueprint/[[- blueprint.slug ]]/edit">[edit]</a> +<!-- + <a href="/api/rooms/[[- blueprint.slug ]]">[api]</a> + --> + </td> + <td> + [[- blueprint.date ]] + </td> + </tr> + <tr> + <td> + [[ if (blueprintUser.photo) { ]] + <a href="/staff/users/[[- blueprintUser.username ]]"><div style="background-image:url([[- blueprintUser.photo ]])" class="avatar"></div></a> + [[ } ]] + <a href="/staff/users/[[- blueprintUser.username ]]">[[- blueprintUser.username ]]</a> + </td> + </tr> + <tr> + <td colspan="999"> + <img src="[[- blueprint.url ]]" style="max-width: 400px"> + </td> + </tr> + <tr> + <td>Width</td> + <td>[[- blueprint.width ]]</td> + </tr> + <tr> + <td>Height</td> + <td>[[- blueprint.height ]]</td> + </tr> + <tr> + <td>Scale</td> + <td>[[- blueprint.scale ]]</td> + </tr> + </table> + + <br><br> + <div id="actions"> + </div> + + <br> + <br> + +[[ include ../_footer ]] diff --git a/views/staff/blueprints/show_404.ejs b/views/staff/blueprints/show_404.ejs new file mode 100644 index 0000000..0ffca86 --- /dev/null +++ b/views/staff/blueprints/show_404.ejs @@ -0,0 +1,9 @@ +[[ include ../_header ]] + + <h1>Blueprint not found</h1> + +[[ include ../_nav ]] + + <hr> + +[[ include ../_footer ]] diff --git a/views/staff/index.ejs b/views/staff/index.ejs index 5ca7269..1b73641 100644 --- a/views/staff/index.ejs +++ b/views/staff/index.ejs @@ -2,11 +2,7 @@ <h1>Staff Area</h1> - <nav> - <a href="/staff/users">users</a> - <a href="/staff/projects">projects</a> - <a href="/staff/media">media</a> - </nav> + [[ include _nav ]] <hr> diff --git a/views/staff/layouts/index.ejs b/views/staff/layouts/index.ejs new file mode 100644 index 0000000..71f5dc7 --- /dev/null +++ b/views/staff/layouts/index.ejs @@ -0,0 +1,13 @@ +[[ include ../_header ]] + + <h1>Layouts</h1> + +[[ include ../_nav ]] + + <hr> + +[[ include ../_pagination ]] +[[ include ../_layouts ]] +[[ include ../_pagination ]] + +[[ include ../_footer ]] diff --git a/views/staff/layouts/show.ejs b/views/staff/layouts/show.ejs new file mode 100644 index 0000000..2742c1f --- /dev/null +++ b/views/staff/layouts/show.ejs @@ -0,0 +1,61 @@ +[[ include ../_header ]] + + <h1>[[- layout.name ]]</h1> + +[[ include ../_nav ]] + + <hr> + + <table> + <tr> + <td> + <a href="/staff/layouts/[[- layout.slug ]]">[[- layout.name ]]</a> + </td> + <td class="editLinks"> + <a href="/layout/[[- layout.slug ]]">[view]</a> + <a href="/layout/[[- layout.slug ]]/edit">[edit]</a> +<!-- + <a href="/api/rooms/[[- layout.slug ]]">[api]</a> + --> + </td> + <td> + [[- layout.date ]] + </td> +<!-- + <td> + [[- layout.privacy ? "private" : "" ]] + </td> + --> + </tr> + <tr> + <td> + [[ if (layoutUser.photo) { ]] + <a href="/staff/users/[[- layoutUser.username ]]"><div style="background-image:url([[- layoutUser.photo ]])" class="avatar"></div></a> + [[ } ]] + <a href="/staff/users/[[- layoutUser.username ]]">[[- layoutUser.username ]]</a> + </td> + </tr> + <tr> + <td colspan="999" class="description"> + "[[- layout.description ]]" + </td> + </tr> + <tr> + <th> + stock layout? + </th> + <td id="isStockLayout"> + [[- layout.is_stock ? "yes" : "no" ]] + </td> + </tr> + </table> + + <br><br> + <div id="actions"> + <button id="toggle-stock" data-stock="[[- !! (layout.is_stock) ]]">Make this layout Stock</button> + </div> + + <br> + <br> + +[[ include ../_footer ]] diff --git a/views/staff/layouts/show_404.ejs b/views/staff/layouts/show_404.ejs new file mode 100644 index 0000000..5d24aa8 --- /dev/null +++ b/views/staff/layouts/show_404.ejs @@ -0,0 +1,9 @@ +[[ include ../_header ]] + + <h1>Layout not found</h1> + +[[ include ../_nav ]] + + <hr> + +[[ include ../_footer ]] diff --git a/views/staff/media/index.ejs b/views/staff/media/index.ejs index 516af2d..3805c8e 100644 --- a/views/staff/media/index.ejs +++ b/views/staff/media/index.ejs @@ -2,12 +2,7 @@ <h1>Media</h1> - <nav> - <a href="/staff">home</a> - <a href="/staff/users">users</a> - <a href="/staff/projects">projects</a> - <a href="/staff/media">media</a> - </nav> +[[ include ../_nav ]] <hr> diff --git a/views/staff/media/show.ejs b/views/staff/media/show.ejs index 76dcd32..9d05cb9 100644 --- a/views/staff/media/show.ejs +++ b/views/staff/media/show.ejs @@ -2,12 +2,7 @@ <h1>Media: [[- media.type ]]</h1> - <nav> - <a href="/staff">home</a> - <a href="/staff/users">users</a> - <a href="/staff/projects">projects</a> - <a href="/staff/media">media</a> - </nav> +[[ include ../_nav ]] <hr> diff --git a/views/staff/media/show_404.ejs b/views/staff/media/show_404.ejs index f07cef2..c6bac6f 100644 --- a/views/staff/media/show_404.ejs +++ b/views/staff/media/show_404.ejs @@ -2,13 +2,8 @@ <h1>Media not found</h1> - <nav> - <a href="/staff">home</a> - <a href="/staff/users">users</a> - <a href="/staff/projects">projects</a> - <a href="/staff/media">media</a> - </nav> - +[[ include ../_nav ]] + <hr> [[ include ../_footer ]] diff --git a/views/staff/plans/_form.ejs b/views/staff/plans/_form.ejs new file mode 100644 index 0000000..85375fa --- /dev/null +++ b/views/staff/plans/_form.ejs @@ -0,0 +1,154 @@ +<input type="hidden" id="_csrf" name="_csrf" value="[[- token ]]"> + +<ul> + +<li class="section_break"> + <h3>New Plan</h3> +</li> + +<li> + <label for="plan_name">Name</label> + <div><input id="plan_name" name="name" type="text" value="[[- plan.name ]]"></div> +</li> + +<li> + <label for="plan_slug">Slug</label> + <div><input id="plan_slug" name="slug" type="text" value="[[- plan.slug ]]"></div> +</li> + +<li> + <label for="plan_level">Level</label> + <div><input id="plan_level" name="level" type="number" min="0" value="[[- plan.level ]]"></div> +</li> + +<!-- - - - - --> + +<li class="section_break"> + <h3>Plan Pricing</h3> +</li> + +<li> + <label for="plan_monthly_price">Monthly Price</label> + <div><input id="plan_monthly_price" name="monthly_price" type="number" min="0" value="[[- plan.monthly_price ]]"></div> +</li> + +<li> + <label for="plan_yearly_price">Yearly Price</label> + <div><input id="plan_yearly_price" name="yearly_price" type="number" min="0" value="[[- plan.yearly_price ]]"></div> +</li> + +<p> + <i>Note:</i> Pricing should be in cents, i.e. a price of $10.00 should be entered as 1000. +</p> + +<!-- - - - - --> + +<li class="section_break"> + <h3>Additional Template Pricing</h3> +</li> + +<li> + <label for="plan_basic_layout_monthly_price">Basic Template Price (Monthly)</label> + <div><input id="plan_basic_layout_monthly_price" name="basic_layout_monthly_price" type="number" min="0" value="[[- plan.basic_layout_monthly_price ]]"></div> +</li> + +<li> + <label for="plan_basic_layout_yearly_price">Basic Template Price (Yearly)</label> + <div><input id="plan_basic_layout_yearly_price" name="basic_layout_yearly_price" type="number" min="0" value="[[- plan.basic_layout_yearly_price ]]"></div> +</li> + +<li> + <label for="plan_pro_layout_monthly_price">Pro Template Price (Monthly)</label> + <div><input id="plan_pro_layout_monthly_price" name="pro_layout_monthly_price" type="number" min="0" value="[[- plan.pro_layout_monthly_price ]]"></div> +</li> + +<li> + <label for="plan_pro_layout_yearly_price">Pro Template Price (Yearly)</label> + <div><input id="plan_pro_layout_yearly_price" name="pro_layout_yearly_price" type="number" min="0" value="[[- plan.pro_layout_yearly_price ]]"></div> +</li> + +<!-- - - - - --> + +<li class="section_break"> + <h3>Per-Plan Template Limits</h3> +</li> + +<li> + <label for="plan_basic_layout_limit">Basic Template Limit</label> + <div><input id="plan_basic_layout_limit" name="basic_layout_limit" type="number" min="0" value="[[- plan.basic_layout_limit ]]"></div> +</li> + +<li> + <label for="plan_pro_layout_limit">Pro Template Limit</label> + <div><input id="plan_pro_layout_limit" name="pro_layout_limit" type="number" min="0" value="[[- plan.pro_layout_limit ]]"></div> +</li> + +<!-- - - - - --> + +<li class="section_break"> + <h3>Per-Plan Project Limits</h3> +</li> + +<li> + <label for="plan_stock_project_limit">Stock Project Limit</label> + <div><input id="plan_stock_project_limit" name="stock_project_limit" type="number" min="0" value="[[- plan.stock_project_limit ]]"></div> +</li> + +<li> + <label for="plan_basic_project_limit">Basic Project Limit</label> + <div><input id="plan_basic_project_limit" name="basic_project_limit" type="number" min="0" value="[[- plan.basic_project_limit ]]"></div> +</li> + +<li> + <label for="plan_pro_project_limit">Pro Project Limit</label> + <div><input id="plan_pro_project_limit" name="pro_project_limit" type="number" min="0" value="[[- plan.pro_project_limit ]]"></div> +</li> + +<!-- - - - - --> + +<li class="section_break"> + <h3>Permissions</h3> +</li> + +<div> +<li> + <input name="permissions_basic_editor" type="hidden" value="0"> + <input id="plan_permissions_basic_editor" name="permissions_basic_editor" type="checkbox" value="1" [[ if (plan.permissions.basic_editor) { ]]checked[[ } ]]> + <label for="plan_permissions_basic_editor">Basic Editor</label> +</li> + +<li> + <input name="permissions_pro_editor" type="hidden" value="0"> + <input id="plan_permissions_pro_editor" name="permissions_pro_editor" type="checkbox" value="1" [[ if (plan.permissions.pro_editor) { ]]checked[[ } ]]> + <label for="plan_permissions_pro_editor">Pro Editor</label> +</li> + +<li> + <input name="permissions_sculpture" type="hidden" value="0"> + <input id="plan_permissions_sculpture" name="permissions_sculpture" type="checkbox" value="1" [[ if (plan.permissions.sculpture) { ]]checked[[ } ]]> + <label for="plan_permissions_sculpture">3D Objects</label> +</li> + +<li> + <input name="permissions_collaborators" type="hidden" value="0"> + <input id="plan_permissions_collaborators" name="permissions_collaborators" type="checkbox" value="1" [[ if (plan.permissions.collaborators) { ]]checked[[ } ]]> + <label for="plan_permissions_collaborators">Collaborators</label> +</li> + +<li> + <input name="permissions_no_logo" type="hidden" value="0"> + <input id="plan_permissions_no_logo" name="permissions_no_logo" type="checkbox" value="1" [[ if (plan.permissions.no_logo) { ]]checked[[ } ]]> + <label for="plan_permissions_no_logo">No Logo</label> +</li> + +<p> + These permissions should harmonize with the restrictions on layouts set above. +</p> + +</div> + +<li> + <input type="submit" value="Save Changes"> +</li> + +</ul> diff --git a/views/staff/plans/edit.ejs b/views/staff/plans/edit.ejs new file mode 100644 index 0000000..9848873 --- /dev/null +++ b/views/staff/plans/edit.ejs @@ -0,0 +1,13 @@ +[[ include ../_header ]] + + <h1>Edit Plan</h1> + +[[ include ../_nav ]] + + <hr> + +<form action="" method="post"> +[[- include _form ]] +</form> + +[[ include ../_footer ]] diff --git a/views/staff/plans/index.ejs b/views/staff/plans/index.ejs new file mode 100644 index 0000000..16fcf14 --- /dev/null +++ b/views/staff/plans/index.ejs @@ -0,0 +1,65 @@ +[[ include ../_header ]] + + <h1>Plans</h1> + +[[ include ../_nav ]] + + <hr> + +<table> + <tr> + <td> + </td> + [[ plans.forEach(function(plan){ ]] + <td style="text-align:right; min-width: 100px;"> + <b style="text-transform:uppercase">[[- plan.name ]]</b> + </td> + [[ }) ]] + </tr> + + <tr class="editLinks"> + <td> + <a href="/staff/plans/new">New Plan</a> + </td> + [[ plans.forEach(function(plan){ ]] + <td style="text-align:right"> + [<a href="/staff/plans/[[- plan.slug ]]">edit</a>] + </td> + [[ }) ]] + </tr> + + [[ fields.forEach(function(field){ ]] + <tr> + <td style="text-transform:capitalize">[[- field.replace(/_/g," ") ]]</td> + [[ plans.forEach(function(plan){ ]] + <td style="text-align:right"> + [[ if (field.indexOf("_price") != -1) { ]] + [[- plan[field] == 0 ? "" : "$" + (plan[field]/100).toFixed(2) ]] + [[ } else { ]] + [[- plan[field] ]] + [[ } ]] + </td> + [[ }) ]] + </tr> + [[ }) ]] + + <tr> + <td style="border-bottom: 1px dotted #888;" colspan='10'></td> + </tr> + + [[ permissions.forEach(function(permission){ ]] + <tr> + <td style="text-transform:capitalize">[[- permission.replace(/_/g," ") ]]</td> + [[ plans.forEach(function(plan){ ]] + <td style="text-align:right"> + [[- plan.permissions[permission] ? "<b>x</b>" : " " ]] + </td> + [[ }) ]] + </tr> + [[ }) ]] +</table> +<br clear="all"> + + <hr> + +[[ include ../_footer ]] diff --git a/views/staff/plans/new.ejs b/views/staff/plans/new.ejs new file mode 100644 index 0000000..297d3d6 --- /dev/null +++ b/views/staff/plans/new.ejs @@ -0,0 +1,13 @@ +[[ include ../_header ]] + + <h1>New Plan</h1> + +[[ include ../_nav ]] + + <hr> + +<form action="" method="post"> +[[- include _form ]] +</form> + +[[ include ../_footer ]] diff --git a/views/staff/projects/index.ejs b/views/staff/projects/index.ejs index 482ea25..e4ba469 100644 --- a/views/staff/projects/index.ejs +++ b/views/staff/projects/index.ejs @@ -2,12 +2,7 @@ <h1>Projects</h1> - <nav> - <a href="/staff">home</a> - <a href="/staff/users">users</a> - <a href="/staff/projects">projects</a> - <a href="/staff/media">media</a> - </nav> +[[ include ../_nav ]] <hr> diff --git a/views/staff/projects/show.ejs b/views/staff/projects/show.ejs index 687f0c2..b090a41 100644 --- a/views/staff/projects/show.ejs +++ b/views/staff/projects/show.ejs @@ -2,13 +2,8 @@ <h1>[[- project.name ]]</h1> - <nav> - <a href="/staff">home</a> - <a href="/staff/users">users</a> - <a href="/staff/projects">projects</a> - <a href="/staff/media">media</a> - </nav> - +[[ include ../_nav ]] + <hr> <table> @@ -41,8 +36,21 @@ "[[- project.description ]]" </td> </tr> + <tr> + <th> + featured? + </th> + <td id="isFeaturedProject"> + [[- project.featured ? "yes" : "no" ]] + </td> + </tr> </table> + <br><br> + <div id="actions"> + <button id="toggle-featured" data-featured="[[- !! project.featured ]]">Feature this Project</button> + </div> + <br> <br> <table id="iframe-embed" class="projectList"> diff --git a/views/staff/projects/show_404.ejs b/views/staff/projects/show_404.ejs index 70320c0..f5e1658 100644 --- a/views/staff/projects/show_404.ejs +++ b/views/staff/projects/show_404.ejs @@ -2,12 +2,7 @@ <h1>Project not found</h1> - <nav> - <a href="/staff">home</a> - <a href="/staff/users">users</a> - <a href="/staff/projects">projects</a> - <a href="/staff/media">media</a> - </nav> +[[ include ../_nav ]] <hr> diff --git a/views/staff/subscriptions/index.ejs b/views/staff/subscriptions/index.ejs new file mode 100644 index 0000000..adf148c --- /dev/null +++ b/views/staff/subscriptions/index.ejs @@ -0,0 +1,39 @@ +[[ include ../_header ]] + + <h1>Subscriptions</h1> + +[[ include ../_nav ]] + + <hr> + +[[ include ../_pagination ]] + +<table id="users"> +[[ subscriptions.forEach(function(subscription){ ]] + <tr> + <td> + <a href="/staff/subscriptions/[[- subscription._id ]]"><div style="background-image:url([[- subscription.user.photo ]])" class="avatar"></div></a> + </td> + <td> + <a href="/staff/subscriptions/[[- subscription._id ]]">[[- subscription.user.username ]]</a> + </td> + <td> + [[- subscription.user.displayName ]] + </td> + <td class="editLinks"> + <a href="/profile/[[- user.username ]]">[view profile]</a> + </td> + <td> + [[- subscription.user.last_seen ]] + </td> + <td> + [[- subscription.plan_code ]] + </td> + </tr> +[[ }) ]] +</table> + + +[[ include ../_pagination ]] + +[[ include ../_footer ]] diff --git a/views/staff/subscriptions/show.ejs b/views/staff/subscriptions/show.ejs new file mode 100644 index 0000000..e2839a6 --- /dev/null +++ b/views/staff/subscriptions/show.ejs @@ -0,0 +1,12 @@ +[[ include ../_header ]] + <h1>User: [[- subscription.user.username ]]</h1> + +[[ include ../_nav ]] + + <hr> + +<pre> +info to show.. +- link to recurly profile +- link to vvalls profile +- subscription tier + add-ons diff --git a/views/staff/users/index.ejs b/views/staff/users/index.ejs index f14d666..1795dde 100644 --- a/views/staff/users/index.ejs +++ b/views/staff/users/index.ejs @@ -2,12 +2,7 @@ <h1>Users</h1> - <nav> - <a href="/staff">home</a> - <a href="/staff/users">users</a> - <a href="/staff/projects">projects</a> - <a href="/staff/media">media</a> - </nav> +[[ include ../_nav ]] <hr> diff --git a/views/staff/users/media.ejs b/views/staff/users/media.ejs index b13e5fb..8927c00 100644 --- a/views/staff/users/media.ejs +++ b/views/staff/users/media.ejs @@ -1,18 +1,13 @@ [[ include ../_header ]] - <h1>Users</h1> +<h1>User Media: [[- profile.username ]]</h1> - <nav> - <a href="/staff">home</a> - <a href="/staff/users">users</a> - <a href="/staff/projects">projects</a> - <a href="/staff/media">media</a> - </nav> - - <hr> +[[ include ../_nav ]] + +<hr> [[ include ../_pagination ]] -[[ include ../_media ]] +[[ include ../_gallery ]] [[ include ../_pagination ]] [[ include ../_footer ]] diff --git a/views/staff/users/show.ejs b/views/staff/users/show.ejs index 8e9b447..a434b57 100644 --- a/views/staff/users/show.ejs +++ b/views/staff/users/show.ejs @@ -1,12 +1,7 @@ [[ include ../_header ]] <h1>User: [[- profile.username ]]</h1> - <nav> - <a href="/staff">home</a> - <a href="/staff/users">users</a> - <a href="/staff/projects">projects</a> - <a href="/staff/media">media</a> - </nav> +[[ include ../_nav ]] <hr> @@ -22,12 +17,38 @@ [[- profile.displayName ]] </td> <td class="editLinks"> - <a href="/profile/[[- profile.username ]]">[view profile]</a> - <a href="/staff/users/[[- profile.username ]]/media">[view media]</a> + <a href="/profile/[[- profile.username ]]">[profile]</a> + <a href="/staff/users/[[- profile.username ]]/media">[media]</a> + [[ if (profile.subscription) { ]] + <a href="https://vvalls.recurly.com/accounts/[[- profile._id ]]">[recurly]</a> + [[ } ]] </td> </tr> </table> + + [[ if (profile.subscription) { ]] + <h2>Subscription</h2> + <table> + <tr> + <th> + plan + </th> + <td> + [[- profile.plan_code ]] + </td> + </tr> + <tr> + <th> + last charged + </th> + <td> + [[- profile.last_charged ]] + </td> + </tr> + </table> + [[ } ]] + <h2>Profile</h2> <table> @@ -80,12 +101,21 @@ [[- profile.isStaff ? "yes" : "no" ]] </td> </tr> + <tr> + <th> + is artist? + </th> + <td id="is-artist"> + [[- profile.isArtist ? "yes" : "no" ]] + </td> + </tr> </table> <br><br> <div id="actions"> [[ if (String(user._id) != String(profile._id)) { ]] <button id="toggle-staff" data-isStaff="[[- !! profile.isStaff ]]">Make Staff</button> + <button id="toggle-artist" data-isArtist="[[- !! profile.isArtist ]]">Make Artist</button> [[ } ]] </div> diff --git a/views/staff/users/show_404.ejs b/views/staff/users/show_404.ejs index bcd0271..11663fa 100644 --- a/views/staff/users/show_404.ejs +++ b/views/staff/users/show_404.ejs @@ -1,13 +1,9 @@ [[ include ../_header ]] - <h1>User not found</h1> - <nav> - <a href="/staff">home</a> - <a href="/staff/users">users</a> - <a href="/staff/projects">projects</a> - <a href="/staff/media">media</a> - </nav> - - <hr> +<h1>User not found</h1> + +[[ include ../_nav ]] + +<hr> [[ include ../_footer ]] |
