summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-09-04 15:30:07 -0400
committerJules Laplace <jules@okfoc.us>2014-09-04 15:30:07 -0400
commit01eaa246c7aebcea616eccf7989c63ac6f54fdf0 (patch)
tree2f42a3e650f874ec7a54bc42eb5a953661c4571e
parentb2164f9f6001dcac952a3d2b301f1425fdb3cbe9 (diff)
project view
-rw-r--r--public/assets/javascripts/ui/site/ProjectList.js1
-rw-r--r--public/assets/javascripts/ui/site/StaffView.js14
-rw-r--r--public/assets/stylesheets/staff.css54
-rw-r--r--server/lib/views/staff.js12
-rw-r--r--views/staff/_footer.ejs6
-rw-r--r--views/staff/projects/show.ejs57
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 ]]