diff options
| -rw-r--r-- | server/lib/schemas/Plan.js | 6 | ||||
| -rw-r--r-- | server/lib/views/staff.js | 22 | ||||
| -rw-r--r-- | views/about/brochure.ejs | 4 | ||||
| -rw-r--r-- | views/staff/_nav.ejs | 6 | ||||
| -rw-r--r-- | views/staff/media/index.ejs | 7 | ||||
| -rw-r--r-- | views/staff/media/show.ejs | 7 | ||||
| -rw-r--r-- | views/staff/media/show_404.ejs | 9 | ||||
| -rw-r--r-- | views/staff/plans/_form.ejs | 109 | ||||
| -rw-r--r-- | views/staff/plans/edit.ejs | 13 | ||||
| -rw-r--r-- | views/staff/plans/index.ejs | 54 | ||||
| -rw-r--r-- | views/staff/plans/new.ejs | 15 | ||||
| -rw-r--r-- | views/staff/projects/index.ejs | 7 | ||||
| -rw-r--r-- | views/staff/projects/show.ejs | 9 | ||||
| -rw-r--r-- | views/staff/projects/show_404.ejs | 7 | ||||
| -rw-r--r-- | views/staff/users/index.ejs | 7 | ||||
| -rw-r--r-- | views/staff/users/media.ejs | 13 | ||||
| -rw-r--r-- | views/staff/users/show.ejs | 7 | ||||
| -rw-r--r-- | views/staff/users/show_404.ejs | 14 |
18 files changed, 243 insertions, 73 deletions
diff --git a/server/lib/schemas/Plan.js b/server/lib/schemas/Plan.js index 1057bb2..1208672 100644 --- a/server/lib/schemas/Plan.js +++ b/server/lib/schemas/Plan.js @@ -22,9 +22,9 @@ var PlanSchema = new mongoose.Schema({ basic_layout_limit: { type: Number }, pro_layout_limit: { type: Number }, - stock_layout_project_limit: { type: Number }, - basic_layout_project_limit: { type: Number }, - pro_layout_project_limit: { type: Number }, + stock_project_limit: { type: Number }, + basic_project_limit: { type: Number }, + pro_project_limit: { type: Number }, permissions: { basic_editor: { type: Boolean, default: false }, diff --git a/server/lib/views/staff.js b/server/lib/views/staff.js index 49f492b..c3739e9 100644 --- a/server/lib/views/staff.js +++ b/server/lib/views/staff.js @@ -4,6 +4,8 @@ var User = require('../schemas/User'), Project = require('../schemas/Project'), Media = require('../schemas/Media'), Collaborator = require('../schemas/Collaborator'), + Plan = require('../schemas/Plan'), + Subscription = require('../schemas/Subscription'), config = require('../../../config'), middleware = require('../middleware'), util = require('../util'), @@ -540,6 +542,26 @@ var staff = module.exports = { res.render('staff/media/show_404') } }, + }, + + plans: { + index: function(req, res){ + res.locals.fields = ( + "monthly_price yearly_price basic_layout_monthly_price basic_layout_yearly_price " + + "pro_layout_monthly_price pro_layout_yearly_price " + + "basic_layout_limit pro_layout_limit stock_project_limit basic_project_limit pro_project_limit" + ).split(" ") + + res.locals.permissions = "basic_editor pro_editor solids collaborators no_logo".split(" ") + + res.render('staff/plans/index') + }, + new: function(req, res){ + res.render('staff/plans/new') + }, + edit: function(req, res){ + res.render('staff/plans/edit') + }, } } diff --git a/views/about/brochure.ejs b/views/about/brochure.ejs index 00083cf..d816dc4 100644 --- a/views/about/brochure.ejs +++ b/views/about/brochure.ejs @@ -35,7 +35,7 @@ </ul> </div> - <div> +<div> <h3>[[- plans.pro.name ]]</h3> <ul> <li> $[[- plans.pro.monthly_price ]]/mo or $[[- plans.pro.yearly_price ]]/year @@ -57,7 +57,7 @@ </div> <div> - Pro Floor plan: Trace an arbitrary floorplan. + Pro Floor plan: Trace an arbitrary floor plan. </div> diff --git a/views/staff/_nav.ejs b/views/staff/_nav.ejs new file mode 100644 index 0000000..2115e9f --- /dev/null +++ b/views/staff/_nav.ejs @@ -0,0 +1,6 @@ +<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>
\ No newline at end of file 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..b97716f --- /dev/null +++ b/views/staff/plans/_form.ejs @@ -0,0 +1,109 @@ + +<div> + <label for="plan_name">Name</label> + <input id="plan_name" name="name" type="text" value="[[- plan.name ]]"> +</div> + +<div> + <label for="plan_slug">Slug</label> + <input id="plan_slug" name="slug" type="text" value="[[- plan.slug ]]"> +</div> + +<!-- - - - - --> + +<div> + <label for="plan_monthly_price">Monthly Price</label> + <input id="plan_monthly_price" name="monthly_price" type="number" value="[[- plan.monthly_price ]]"> +</div> + +<div> + <label for="plan_yearly_price">Yearly Price</label> + <input id="plan_yearly_price" name="yearly_price" type="number" value="[[- plan.yearly_price ]]"> +</div> + +<!-- - - - - --> + +<div> + <label for="plan_basic_layout_monthly_price">Basic Layout Price (Monthly)</label> + <input id="plan_basic_layout_monthly_price" name="basic_layout_monthly_price" type="number" value="[[- plan.basic_layout_monthly_price ]]"> +</div> + +<div> + <label for="plan_basic_layout_yearly_price">Basic Layout Price (Yearly)</label> + <input id="plan_basic_layout_yearly_price" name="basic_layout_yearly_price" type="number" value="[[- plan.basic_layout_yearly_price ]]"> +</div> + +<div> + <label for="plan_pro_layout_monthly_price">Pro Layout Price (Monthly)</label> + <input id="plan_pro_layout_monthly_price" name="pro_layout_monthly_price" type="number" value="[[- plan.pro_layout_monthly_price ]]"> +</div> + +<div> + <label for="plan_pro_layout_yearly_price">Pro Layout Price (Yearly)</label> + <input id="plan_pro_layout_yearly_price" name="pro_layout_yearly_price" type="number" value="[[- plan.pro_layout_yearly_price ]]"> +</div> + +<!-- - - - - --> + +<div> + <label for="plan_basic_layout_limit">Basic Layout Limit</label> + <input id="plan_basic_layout_limit" name="basic_layout_limit" type="number" value="[[- plan.basic_layout_limit ]]"> +</div> + +<div> + <label for="plan_pro_layout_limit">Pro Layout Limit</label> + <input id="plan_pro_layout_limit" name="pro_layout_limit" type="number" value="[[- plan.pro_layout_limit ]]"> +</div> + +<!-- - - - - --> + +<div> + <label for="plan_stock_project_limit">Stock Project Limit</label> + <input id="plan_stock_project_limit" name="stock_project_limit" type="number" value="[[- plan.stock_project_limit ]]"> +</div> + +<div> + <label for="plan_basic_project_limit">Basic Project Limit</label> + <input id="plan_basic_project_limit" name="basic_project_limit" type="number" value="[[- plan.basic_project_limit ]]"> +</div> + +<div> + <label for="plan_pro_project_limit">Pro Layout Limit</label> + <input id="plan_pro_project_limit" name="pro_project_limit" type="number" value="[[- plan.pro_project_limit ]]"> +</div> + +<!-- - - - - --> + +<div> + <label for="plan_permissions_basic_editor">Basic Editor</label> + <input id="plan_permissions_basic_editor" 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[[ } ]]> +</div> + +<div> + <label for="plan_permissions_pro_editor">Pro Editor</label> + <input id="plan_permissions_pro_editor" 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[[ } ]]> +</div> + +<div> + <label for="plan_permissions_solids">3D Objects</label> + <input id="plan_permissions_solids" name="permissions_solids" type="hidden" value="0"> + <input id="plan_permissions_solids" name="permissions_solids" type="checkbox" value="1" [[ if (plan.permissions.solids) { ]]checked[[ } ]]> +</div> + +<div> + <label for="plan_permissions_collaborators">Collaborators</label> + <input id="plan_permissions_collaborators" name="permissions_collaborators" type="hidden" value="0"> + <input id="plan_permissions_collaborators" name="permissions_collaborators" type="checkbox" value="1" [[ if (plan.permissions.collaborators) { ]]checked[[ } ]]> +</div> + +<div> + <label for="plan_permissions_no_logo">No Logo</label> + <input id="plan_permissions_no_logo" 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[[ } ]]> +</div> + + +<input type="submit" value="Save Changes"> + diff --git a/views/staff/plans/edit.ejs b/views/staff/plans/edit.ejs new file mode 100644 index 0000000..503c97d --- /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..aa6c35a --- /dev/null +++ b/views/staff/plans/index.ejs @@ -0,0 +1,54 @@ +[[ include ../_header ]] + + <h1>Plans</h1> + +[[ include ../_nav ]] + + <hr> + +<table> + <tr> + <td></td> + [[ plans.forEach(function(plan){ ]] + <td> + [[- plan.name ]] + </td> + [[ }) ]] + </tr> + + <tr> + <td></td> + [[ plans.forEach(function(plan){ ]] + <td> + <a href="/staff/plans/[[- plan.slug ]]">edit</a> + </td> + [[ }) ]] + </tr> + + [[ fields.forEach(function(field){ ]] + <tr> + <td>[[- field.replace(/_/," ") ]]</td> + [[ plans.forEach(function(plan){ ]] + <td> + [[- plan[field] ]] + </td> + [[ }) ]] + </tr> + [[ }) ]] + + [[ permissions.forEach(function(permission){ ]] + <tr> + <td>[[- permission.replace(/_/," ") ]]</td> + [[ plans.forEach(function(plan){ ]] + <td> + [[- plan.permissions[permission] ? "x" : " " ]] + </td> + [[ }) ]] + </tr> + [[ }) ]] + +</table> + + <hr> + +[[ include ../_footer ]] diff --git a/views/staff/plans/new.ejs b/views/staff/plans/new.ejs new file mode 100644 index 0000000..d56a1c3 --- /dev/null +++ b/views/staff/plans/new.ejs @@ -0,0 +1,15 @@ +[[ 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/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..4ce1d9a 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> 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 ]] |
