diff options
| author | Jules Laplace <jules@okfoc.us> | 2016-10-28 18:07:56 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2016-10-28 18:07:56 -0400 |
| commit | a9c9d6adf470d0966e6c6bef0803e298fd2d4117 (patch) | |
| tree | 6ccec2a448992a5f43226532051a6df09afbc203 /views | |
| parent | 343b0b3dc5bb7dbe762182a486e63a4aff6ef8fc (diff) | |
| parent | 9e7bacd46c1e5d0e1c24433690d421ab3f3a11f2 (diff) | |
merge
Diffstat (limited to 'views')
65 files changed, 1289 insertions, 204 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..6d5f011 100644 --- a/views/about/about.ejs +++ b/views/about/about.ejs @@ -1,14 +1,14 @@ <!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"> @@ -50,17 +50,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..914c3b3 100644 --- a/views/about/howto.ejs +++ b/views/about/howto.ejs @@ -1,7 +1,7 @@ <!doctype html> <html> <head> - <title>vvalls</title> + <title>How to Use VValls</title> [[ include ../partials/meta ]] </head> <body class="loading"> 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 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..e3303ed 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -1,18 +1,18 @@ <!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="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="ion-ios7-play"></span><br> + <span class="ion-ios-play"></span><br> <span class="videoTitle">Watch video.</span> </span> </div> @@ -38,7 +38,7 @@ </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> + <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> @@ -60,17 +60,13 @@ <h1>Room Showcase</h1> [[ include projects/list-projects ]] + + [[ if (! logged_in) { ]] + <div class="projectList about makeAccountSingleton"> + <a href="/about/howto" class="greenbtn learn">Make an Account</a> + </div> + [[ } ]] - - <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 +74,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..2d9fb59 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> @@ -15,11 +15,17 @@ <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>©2014 Dot Dash 3, Inc.</span> + <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 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..da3f0ba 100644 --- a/views/partials/scripts.ejs +++ b/views/partials/scripts.ejs @@ -2,9 +2,10 @@ <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> @@ -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 ]] |
