diff options
| author | Jules Laplace <jules@okfoc.us> | 2014-09-04 15:30:07 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2014-09-04 15:30:07 -0400 |
| commit | 01eaa246c7aebcea616eccf7989c63ac6f54fdf0 (patch) | |
| tree | 2f42a3e650f874ec7a54bc42eb5a953661c4571e | |
| parent | b2164f9f6001dcac952a3d2b301f1425fdb3cbe9 (diff) | |
project view
| -rw-r--r-- | public/assets/javascripts/ui/site/ProjectList.js | 1 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/site/StaffView.js | 14 | ||||
| -rw-r--r-- | public/assets/stylesheets/staff.css | 54 | ||||
| -rw-r--r-- | server/lib/views/staff.js | 12 | ||||
| -rw-r--r-- | views/staff/_footer.ejs | 6 | ||||
| -rw-r--r-- | views/staff/projects/show.ejs | 57 |
6 files changed, 130 insertions, 14 deletions
diff --git a/public/assets/javascripts/ui/site/ProjectList.js b/public/assets/javascripts/ui/site/ProjectList.js index 959aa43..ee1b89f 100644 --- a/public/assets/javascripts/ui/site/ProjectList.js +++ b/public/assets/javascripts/ui/site/ProjectList.js @@ -24,4 +24,3 @@ var ProjectList = View.extend({ } }) - diff --git a/public/assets/javascripts/ui/site/StaffView.js b/public/assets/javascripts/ui/site/StaffView.js new file mode 100644 index 0000000..115d417 --- /dev/null +++ b/public/assets/javascripts/ui/site/StaffView.js @@ -0,0 +1,14 @@ +var StaffView = View.extend({ + + initialize: function() { + }, + + load: function() { + $(".json").each(function(){ + $(this).JSONView( this.innerText ) + }) + + this.projectList = new ProjectList () + } + +}) diff --git a/public/assets/stylesheets/staff.css b/public/assets/stylesheets/staff.css index 2d1f802..9b9226f 100644 --- a/public/assets/stylesheets/staff.css +++ b/public/assets/stylesheets/staff.css @@ -13,21 +13,24 @@ td, th { text-align: left; padding: 2px 5px; } -.staff .body { +.page { text-align: left; } -.staff h1 { +.footer { + text-align: center; +} +h1 { text-align: left; display: inline-block; } -.staff nav { +nav { display: inline-block; text-align: left; } -.staff nav a { +nav a { padding-left: 20px; } -.staff hr { +hr { border: 1px solid #bbb; margin: 5px auto 10px; } @@ -35,12 +38,53 @@ td, th { width: 80%; margin: 0 auto; } +.jsonview { + border: 1px solid #ddd; + background: rgba(238,238,238,0.5); + padding: 4px; + margin: 0 auto; + max-width: 100%; + overflow-x: auto; + margin-bottom: 20px; + max-height: 60vh; +} .jsonview * { font-family: monospace !important; + font-size: 12px; +} +.jsonview .collapser { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; } .staff { font-size: 15px; } .staff .editLinks a { color: #00f; +} +#iframe-embed, #iframe-embed tr, #iframe-embed td { + width: 79vw; +} +#iframe-embed td { + padding: 0; +} +h2 { + margin: 20px auto; +} +.avatar { + height: 40px; + width: 40px; + display: inline-block; + background-size: cover; +} +iframe.embed { + position: static; + width: 100%; + height: 44vw; + border: 1px solid black; +} +.page table.projectList, +.page table.projectList td.border { + border: 0; }
\ No newline at end of file diff --git a/server/lib/views/staff.js b/server/lib/views/staff.js index cf43081..ae414d7 100644 --- a/server/lib/views/staff.js +++ b/server/lib/views/staff.js @@ -14,7 +14,7 @@ var User = require('../schemas/User'), var staff = module.exports = { fields: { - user: "_id username displayName created_at updated_at last_seen created_ip last_ip", + user: "_id username displayName photo created_at updated_at last_seen created_ip last_ip", project: "_id name slug user_id privacy created_at updated_at", }, @@ -170,8 +170,8 @@ var staff = module.exports = { ensureProjectUser: function(req, res, next){ if (! res.locals.project) { return next() } - User.findOne({ user_id: res.locals.project.user_id }, staff.fields.user, function(err, user){ - res.locals.project.user = user || staff.defaults.user + User.findOne({ _id: res.locals.project.user_id }, staff.fields.user, function(err, user){ + res.locals.projectUser = staff.helpers.user(user) || staff.defaults.user next() }) }, @@ -247,7 +247,7 @@ var staff = module.exports = { staff.projects.index ); - app.get('/staff/projects/:name', + app.get('/staff/projects/:slug', middleware.ensureAuthenticated, middleware.ensureIsStaff, @@ -304,7 +304,9 @@ var staff = module.exports = { show: function(req, res){ if (res.locals.project) { res.render('staff/projects/show', { - projectJSON: util.escape( JSON.stringify( res.locals.profile ) ) + projectJSON: util.escape( JSON.stringify( res.locals.project ) ), + projectUserJSON: util.escape( JSON.stringify( res.locals.projectUser ) ), + collaboratorsJSON: util.escape( JSON.stringify( res.locals.collaborators ) ) }) } else { diff --git a/views/staff/_footer.ejs b/views/staff/_footer.ejs index c363beb..839db4a 100644 --- a/views/staff/_footer.ejs +++ b/views/staff/_footer.ejs @@ -6,9 +6,11 @@ </body> [[ include ../partials/scripts ]] <script type="text/javascript" src="/assets/javascripts/vendor/bower_components/jquery-jsonview/dist/jquery.jsonview.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/site/StaffView.js"></script> <script> -$(".json").each(function(){ - $(this).JSONView( this.innerText ) +$(function(){ + var staffView = new StaffView () + staffView.load() }) </script> </html> diff --git a/views/staff/projects/show.ejs b/views/staff/projects/show.ejs index e821614..23e96b2 100644 --- a/views/staff/projects/show.ejs +++ b/views/staff/projects/show.ejs @@ -1,6 +1,6 @@ [[ include ../_header ]] - <h1>Project</h1> + <h1>[[- project.name ]]</h1> <nav> <a href="/staff">home</a> @@ -10,8 +10,63 @@ <hr> + <table> + <tr> + <td> + <a href="/staff/projects/[[- project.slug ]]">[[- project.name ]]</a> + </td> + <td class="editLinks"> + <a href="/project/[[- project.slug ]]">[view]</a> + <a href="/project/[[- project.slug ]]/edit">[edit]</a> + </td> + <td> + [[- project.date ]] + </td> + <td> + [[- project.privacy ? "private" : "" ]] + </td> + </tr> + <tr> + <td> + [[ if (projectUser.photo) { ]] + <a href="/staff/users/[[- projectUser.username ]]"><div style="background-image:url([[- projectUser.photo ]])" class="avatar"></div></a> + [[ } ]] + <a href="/staff/users/[[- projectUser.username ]]">[[- projectUser.username ]]</a> + </td> + </tr> + <tr> + <td colspan="999" class="description"> + "[[- project.description ]]" + </td> + </tr> + </table> + + <br> + <br> + <table id="iframe-embed" class="projectList"> + <tr> + <td class="border"> + <iframe src="/project/fafafa/view?noui=1&mute=1" class="embed"></iframe> + </td> + </tr> + </table> + <br> + <br> + <div class="json"> [[- projectJSON ]] </div> + <h2>Author</h2> + + <div class="json"> + [[- projectUserJSON ]] + </div> + + <h2>Collaborators</h2> + + <div class="json"> + [[- collaborators.length ? collaboratorsJSON : '"no collaborators"' ]] + </div> + [[ include ../_footer ]] |
