diff options
Diffstat (limited to 'views')
67 files changed, 1333 insertions, 242 deletions
diff --git a/views/about/_blank.ejs b/views/about/_blank.ejs index 0e9ea7e..732ea3f 100644 --- a/views/about/_blank.ejs +++ b/views/about/_blank.ejs @@ -1,14 +1,14 @@ <!doctype html> <html> <head> - <title>vvalls</title> + <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 --> 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 index dd536be..a1d04a1 100644 --- a/views/about/about.ejs +++ b/views/about/about.ejs @@ -1,46 +1,21 @@ <!doctype html> <html> <head> - <title>vvalls</title> + <title>About VValls</title> [[ include ../partials/meta ]] </head> <body class="loading"> <div class="rapper page"> [[ include ../partials/header ]] - <h1>About VValls</h1> + <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 ]] @@ -50,17 +25,3 @@ </body> [[ include ../partials/scripts ]] </html> -<style> -.aboutintro { - text-align: center; - line-height: 43px; - font-size: 24px; - padding: 5% 0; - font-weight: 300; -} -.aboutintro .inner { - max-width: 800px; - margin: 0 auto; - text-align: center; -} -</style>
\ No newline at end of file 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 index 5278a40..7d9c594 100644 --- a/views/about/howto.ejs +++ b/views/about/howto.ejs @@ -1,14 +1,14 @@ <!doctype html> <html> <head> - <title>vvalls</title> + <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="hero" style=""> <div class="holder"> </div> </div> diff --git a/views/about/privacy.ejs b/views/about/privacy.ejs new file mode 100644 index 0000000..3b748bf --- /dev/null +++ b/views/about/privacy.ejs @@ -0,0 +1,27 @@ +<!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">Privacy Policy</h1> + + <div class="projectList about aboutintro"> + <div class="inner"> + When you log into VValls we store cookies to make sure we know you're logged in. If you sign up, we store your email address, but you can always sign up with a fictitious email address. We will never sell your data. We are not responsible for third party privacy policies, e.g. embedding a Youtube video, but we encourage you to run an ad blocker. + </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/terms.ejs b/views/about/terms.ejs new file mode 100644 index 0000000..46a7c69 --- /dev/null +++ b/views/about/terms.ejs @@ -0,0 +1,27 @@ +<!doctype html> +<html> +<head> + <title>Terms</title> + [[ include ../partials/meta ]] +</head> +<body class="loading"> + <div class="rapper page"> + [[ include ../partials/header ]] + + <h1 class="leader">Terms</h1> + + <div class="projectList about aboutintro"> + <div class="inner"> + This website is ALPHA software! Use at your own risk. We are not responsible for how VValls is used. Have fun! + </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..c499262 --- /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 8a0e0d5..11e995a 100644 --- a/views/controls/builder/info.ejs +++ b/views/controls/builder/info.ejs @@ -34,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> diff --git a/views/controls/builder/settings.ejs b/views/controls/builder/settings.ejs index aae67d0..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="ion-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 8b2e9b8..ad51f0e 100644 --- a/views/controls/builder/toolbar.ejs +++ b/views/controls/builder/toolbar.ejs @@ -2,7 +2,7 @@ <span data-role='toggle-map-view' data-info="toggle map view" - class="ion-ios7-photos-outline"></span> + class="ion-ios-photos-outline"></span> <!-- <span data-role='create-mode' @@ -20,7 +20,7 @@ <span data-role='destroy-mode' data-info="delete" - class="ion-ios7-trash-outline"></span> + class="ion-ios-trash-outline"></span> <!-- <span data-role='undo' @@ -30,5 +30,5 @@ <span data-role='toggle-layout-settings' data-info="save layout" - class="ion-ios7-compose-outline"></span> + class="ion-ios-compose-outline"></span> </div> diff --git a/views/controls/editor/media-drawer.ejs b/views/controls/editor/media-drawer.ejs index f9bce61..8070941 100644 --- a/views/controls/editor/media-drawer.ejs +++ b/views/controls/editor/media-drawer.ejs @@ -3,8 +3,6 @@ <img class="floatingImg"> </div> -<span class="close" id="fixed_close">X</span> - <div class="mediaDrawer fixed animate mediaViewer"> <h2> <a href="#" class="userToggle active">Your Media</a> @@ -35,7 +33,7 @@ <span class="fileUpload" id="fileUpload"> <input type="hidden" name="_csrf" value="[[- token ]]"> <form> - <span class="ion-ios7-upload-outline upload-icon"></span><br> + <span class="ion-ios-upload-outline upload-icon"></span><br> Upload File <input type="file" accept="image/*" multiple> </form> diff --git a/views/controls/editor/media-editor.ejs b/views/controls/editor/media-editor.ejs index 99746e8..225bdc8 100644 --- a/views/controls/editor/media-editor.ejs +++ b/views/controls/editor/media-editor.ejs @@ -13,8 +13,8 @@ <div class="video audio setting"> <span class="playButton" data-role="play-media"> - <span class="on ion-ios7-play-outline"></span> - <span class="off ion-ios7-pause-outline"></span> + <span class="on ion-ios-play-outline"></span> + <span class="off ion-ios-pause-outline"></span> </span> <!-- ion-volume-high @@ -49,8 +49,8 @@ <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> --> 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 cd915c5..0ee00de 100644 --- a/views/controls/editor/settings.ejs +++ b/views/controls/editor/settings.ejs @@ -7,7 +7,7 @@ <div class="setting" id="startpoint"> <a href="#" class="modalLink"> - <span class="ion-ios7-navigate-outline"></span> + <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> @@ -17,7 +17,7 @@ <div class="setting"> <a href="#" class="modalLink" data-role='show-collaborators'> - <span class="ion-ios7-plus-outline"></span> + <span class="ion-ios-plus-outline"></span> Add Collaborators </a> </div> @@ -29,7 +29,7 @@ </a> <a href="#" class="modalLink" data-role='view-project' style="margin-left: 40px;"> - <span class="ion-ios7-search-strong"></span> + <span class="ion-ios-search-strong"></span> View project </a> diff --git a/views/controls/editor/toolbar.ejs b/views/controls/editor/toolbar.ejs index 6960cbc..1a3e2d7 100644 --- a/views/controls/editor/toolbar.ejs +++ b/views/controls/editor/toolbar.ejs @@ -9,11 +9,11 @@ <span data-role='open-media-viewer' data-info="add media" - class="ion-ios7-photos-outline"></span> + class="ion-ios-photos-outline"></span> <span data-role='toggle-presets' data-info="preset styles" - class="ion-ios7-briefcase-outline"></span> + class="ion-ios-briefcase-outline"></span> <!-- <span data-role='resize-media' @@ -22,25 +22,25 @@ <span data-role='destroy-media' data-info="delete media" - class="ion-ios7-trash-outline"></span> + class="ion-ios-trash-outline"></span> --> <span data-role='toggle-wallpaper-panel' data-info="add wallpaper" - class="ion-ios7-keypad-outline"></span> + class="ion-ios-keypad-outline"></span> <span data-role='toggle-color-control' data-info="edit room colors" - class="ion-ios7-sunny-outline"></span> + class="ion-ios-sunny-outline"></span> <span data-role='toggle-text-editor' data-info="add text to wall" - class="ion-ios7-compose-outline"></span> + class="ion-ios-compose-outline"></span> <!-- <span data-role='toggle-map-view' data-info="toggle map view" - class="ion-ios7-world-outline"></span> + class="ion-ios-world-outline"></span> --> <span data-role='toggle-project-settings' diff --git a/views/controls/editor/wallpaper.ejs b/views/controls/editor/wallpaper.ejs index 3168f1c..a53f462 100644 --- a/views/controls/editor/wallpaper.ejs +++ b/views/controls/editor/wallpaper.ejs @@ -19,7 +19,7 @@ <div class="wallpaperUpload toolButton"> <form> - <span class="ion-ios7-upload-outline upload-icon"></span> + <span class="ion-ios-upload-outline upload-icon"></span> <label>Upload</label> <input type="file" accept="image/*" multiple> </form> diff --git a/views/controls/reader/about-room.ejs b/views/controls/reader/about-room.ejs index 974fe0f..a9ef738 100644 --- a/views/controls/reader/about-room.ejs +++ b/views/controls/reader/about-room.ejs @@ -5,7 +5,7 @@ [[ 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-ios7-person-outline"></span></a> + <a href="[[- authorlink ]]" class="authorName"><span class="ion-ios-person-outline"></span></a> [[ } ]] <a href="[[- authorlink ]]" class="authorName">[[- author ]]</a> </h1> diff --git a/views/docs.ejs b/views/docs.ejs index b3ead82..a1f081f 100644 --- a/views/docs.ejs +++ b/views/docs.ejs @@ -1,7 +1,7 @@ <!doctype html> <html> <head> - <title>vvalls</title> + <title>VValls</title> [[ include partials/meta ]] </head> <body class="loading"> diff --git a/views/editor.ejs b/views/editor.ejs index 656615c..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"> @@ -16,6 +16,7 @@ [[ 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/color-control ]] [[ include controls/editor/text-editor ]] diff --git a/views/home.ejs b/views/home.ejs index 36fc2fc..7edac4c 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -1,24 +1,12 @@ <!doctype html> <html> <head> - <title>vvalls</title> + <title>VValls</title> [[ include partials/meta ]] </head> <body class="loading"> <div class="rapper page home"> [[ include partials/header ]] - - <div class="hero" style="background-image:url(http://okfocus.s3.amazonaws.com/images/vvalls-video-still1.jpg)"> - <div class="holder"> - <span class="circle"> - <span class="videoTitle">Create 3D Rooms</span><br> - <span class="ion-ios7-play"></span><br> - <span class="videoTitle">Watch video.</span> - </span> - </div> - </div> - - <h1>What's VValls For?</h1> <div class="projectList about"> <div class="item"> @@ -57,20 +45,15 @@ <a href="/about/howto" class="greenbtn learn">Read Tutorial</a> </div> + <h1>Sign Up</h1> + + <div class="projectList about aboutintro"> + </div> + <h1>Room Showcase</h1> [[ include projects/list-projects ]] - - <div class="projectList about gopro"> - - <span> - <h3>Ready To Go Pro?</h3> - Use VValls as part of your product, service, or marketing campaign. - We offer many types of customizations, including automation of layouts, more elaborate floor plans, enhanced video, interactivity, and other features. - <a href="mailto:info@vvalls.com?subject=VValls platform" class="greenbtn">Contact</a> - </span> - </div> [[ include partials/confirm-modal ]] [[ include projects/layouts-modal ]] [[ include partials/sign-in ]] @@ -78,7 +61,7 @@ </div> <div class="videoModal"> -<span class="ion-ios7-close-empty"></span> +<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> 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/edit-profile.ejs b/views/partials/edit-profile.ejs index 5775ca5..5720bc8 100644 --- a/views/partials/edit-profile.ejs +++ b/views/partials/edit-profile.ejs @@ -83,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 e3c572f..c62f31e 100644 --- a/views/partials/footer.ejs +++ b/views/partials/footer.ejs @@ -2,7 +2,7 @@ [[ if (logged_in) { ]] <span> - signed in as → + signed in as <a href="/profile/[[- user.username ]]"><b>[[- user.displayName ]]</b></a> [[ if (user.isStaff) { ]] <a href="/staff">Staff Area</a> @@ -17,9 +17,5 @@ <a href="/about/howto">How To</a> <a href="/about/terms">Terms</a> <a href="/about/privacy">Privacy</a> - <a href="mailto:hello@vvalls.com">Contact</a> - <br><br> - <span>©2014 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 ce5bab9..ce9ffae 100644 --- a/views/partials/header.ejs +++ b/views/partials/header.ejs @@ -64,6 +64,9 @@ [[ 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 profileLink">Profile</a> [[ } ]] @@ -77,4 +80,6 @@ <a href="/signin" data-role="show-signin-modal" class="signIn topLink">Sign In</a> [[ } ]] </span> -</div>
\ No newline at end of file +</div> + +<span class="close" id="fixed_close">X</span>
\ No newline at end of file diff --git a/views/partials/scripts.ejs b/views/partials/scripts.ejs index fc94992..479fb0c 100644 --- a/views/partials/scripts.ejs +++ b/views/partials/scripts.ejs @@ -5,6 +5,7 @@ <script type="text/javascript" src="/assets/javascripts/vendor/bower_components/lodash/dist/lodash.min.js"></script> <script type="text/javascript" src="/assets/javascripts/vendor/bower_components/momentjs/min/moment.min.js"></script> <script type="text/javascript" src="/assets/javascripts/vendor/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> @@ -18,15 +19,21 @@ <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> @@ -64,6 +71,7 @@ <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> @@ -71,16 +79,38 @@ <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> @@ -92,9 +122,12 @@ <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> @@ -106,6 +139,15 @@ <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> @@ -117,6 +159,7 @@ <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> diff --git a/views/profile.ejs b/views/profile.ejs index a62652c..d3ae10e 100644 --- a/views/profile.ejs +++ b/views/profile.ejs @@ -1,7 +1,7 @@ <!doctype html> <html> <head> - <title>vvalls</title> + <title>VValls | [[- profile.displayName ]]</title> [[ include partials/meta ]] </head> <body class="loading"> @@ -9,48 +9,53 @@ [[- include partials/header ]] <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-ios7-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> + [[ 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"> [[ } ]] - <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> - [[ } ]] - </div> - </div> - + </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> + [[ } ]] + [[ 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 [[- projectCount ]] project[[- projectCount != 1 ? "s" : "" ]]</h1> - [[ include projects/list-projects ]] + [[ } else { ]] - + <h1>Welcome to VVALLS</h1> <div class="projectList about"> <h2> @@ -69,8 +74,13 @@ <h3>This person has no projects.</h3> [[ } ]] </div> + [[ } ]] - </div> + + </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 6f60d81..0d648cd 100644 --- a/views/projects/layouts-modal.ejs +++ b/views/projects/layouts-modal.ejs @@ -7,7 +7,8 @@ <div class="templates-list"> </div> <form> - <input data-role="create-new-layout" class="button_text" type="submit" value="New Layout"> + <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"> @@ -43,7 +44,9 @@ <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> diff --git a/views/reader.ejs b/views/reader.ejs index 6c9856a..7035356 100644 --- a/views/reader.ejs +++ b/views/reader.ejs @@ -1,7 +1,7 @@ <!doctype html> <html> <head> - <title>vvalls</title> + <title>VValls</title> [[ include partials/meta ]] </head> <body class="loading reader"> 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/_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/_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 1034b31..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> 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 c1097dd..8927c00 100644 --- a/views/staff/users/media.ejs +++ b/views/staff/users/media.ejs @@ -1,15 +1,10 @@ [[ include ../_header ]] - <h1>User Media: [[- profile.username ]]</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 ../_gallery ]] 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 ]] |
