summaryrefslogtreecommitdiff
path: root/views
diff options
context:
space:
mode:
Diffstat (limited to 'views')
-rw-r--r--views/partials/footer.ejs3
-rw-r--r--views/projects/list-projects.ejs2
-rw-r--r--views/staff.ejs26
-rw-r--r--views/staff/_footer.ejs16
-rw-r--r--views/staff/_header.ejs15
-rw-r--r--views/staff/_media.ejs37
-rw-r--r--views/staff/_pagination.ejs17
-rw-r--r--views/staff/_projects.ejs24
-rw-r--r--views/staff/_stats.ejs17
-rw-r--r--views/staff/_users.ejs21
-rw-r--r--views/staff/_users_recent.ejs26
-rw-r--r--views/staff/index.ejs16
-rw-r--r--views/staff/media/index.ejs18
-rw-r--r--views/staff/media/show.ejs45
-rw-r--r--views/staff/media/show_404.ejs14
-rw-r--r--views/staff/projects/index.ejs18
-rw-r--r--views/staff/projects/show.ejs73
-rw-r--r--views/staff/projects/show_404.ejs14
-rw-r--r--views/staff/users/index.ejs18
-rw-r--r--views/staff/users/media.ejs18
-rw-r--r--views/staff/users/show.ejs103
-rw-r--r--views/staff/users/show_404.ejs13
22 files changed, 527 insertions, 27 deletions
diff --git a/views/partials/footer.ejs b/views/partials/footer.ejs
index 685aec1..3f816f0 100644
--- a/views/partials/footer.ejs
+++ b/views/partials/footer.ejs
@@ -13,6 +13,9 @@
<span>
you are signed in as &rarr;
<a href="/profile/[[- user.username ]]">[[- user.displayName ]]</a>
+ [[ if (user.isStaff) { ]]
+ <a href="/staff">Staff Area</a>
+ [[ } ]]
<a href="/logout" class="topLink">Sign Out?</a>
</span>
[[ } ]]
diff --git a/views/projects/list-projects.ejs b/views/projects/list-projects.ejs
index c78bf9f..c41ae07 100644
--- a/views/projects/list-projects.ejs
+++ b/views/projects/list-projects.ejs
@@ -1,6 +1,6 @@
[[ if (projects.length) { ]]
- <table id="projectList">
+ <table class="projectList">
<tr>
[[ projects.forEach(function(project, i) { ]]
diff --git a/views/staff.ejs b/views/staff.ejs
deleted file mode 100644
index 0db8ebc..0000000
--- a/views/staff.ejs
+++ /dev/null
@@ -1,26 +0,0 @@
-<!doctype html>
-<html>
-<head>
- <title>vvalls</title>
- [[ include partials/meta ]]
-</head>
-<body class="loading">
-<div class="rapper page">
- [[ include partials/header ]]
-
- <br clear="all">
- <h1>Staff Area</h1>
- <!--
- - recent users
- - rooms list
- - projects list
- -->
-
- [[ include partials/confirm-modal ]]
- [[ include partials/footer ]]
-</div>
-
-
-</body>
-[[ include partials/scripts ]]
-</html>
diff --git a/views/staff/_footer.ejs b/views/staff/_footer.ejs
new file mode 100644
index 0000000..839db4a
--- /dev/null
+++ b/views/staff/_footer.ejs
@@ -0,0 +1,16 @@
+ </div>
+ [[ include ../partials/confirm-modal ]]
+ [[ include ../partials/footer ]]
+</div>
+
+</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>
+$(function(){
+ var staffView = new StaffView ()
+ staffView.load()
+})
+</script>
+</html>
diff --git a/views/staff/_header.ejs b/views/staff/_header.ejs
new file mode 100644
index 0000000..3bbf4f1
--- /dev/null
+++ b/views/staff/_header.ejs
@@ -0,0 +1,15 @@
+<!doctype html>
+<html>
+<head>
+ <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>
+ <input type="hidden" id="_csrf" name="_csrf" value="[[- token ]]">
+</head>
+<body class="loading">
+<div class="rapper page staff">
+ [[ include ../partials/header ]]
+
+ <br clear="all">
+ <div class="body">
diff --git a/views/staff/_media.ejs b/views/staff/_media.ejs
new file mode 100644
index 0000000..19e9d0b
--- /dev/null
+++ b/views/staff/_media.ejs
@@ -0,0 +1,37 @@
+<table id="users">
+[[ media.forEach(function(media){ ]]
+ <tr>
+ <td class="editLinks">
+ <a href="/staff/media/[[- media._id ]]">[view]</a>
+ </td>
+ <td>
+ <a href="/staff/users/[[- media.user.username ]]">[[- media.user.username ]]</a>
+ </td>
+ <td>
+ [[- media.date ]]
+ </td>
+ <td>
+ [[- media.width ]]x[[- media.height ]]
+ </td>
+ <td>
+ [[- media.type ]]
+ </td>
+ <td>
+ [[- media.token ]]
+ </td>
+ <td>
+ <a class="medialink" href="[[- media.url ]]" target="_blank">[[- media.shortUrl ]]</a>
+ </td>
+ </tr>
+[[ }) ]]
+</table>
+
+<style>
+.medialink {
+ max-width: 30vw;
+ display: inline-block;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+</style> \ No newline at end of file
diff --git a/views/staff/_pagination.ejs b/views/staff/_pagination.ejs
new file mode 100644
index 0000000..6c3bfb1
--- /dev/null
+++ b/views/staff/_pagination.ejs
@@ -0,0 +1,17 @@
+[[ if (pagination.prev_page !== -1 && pagination.next_page !== -1) { ]]
+ <div id="pagination">
+
+ [[ if (pagination.prev_page !== -1) { ]]
+ <a href="?[[- pagination.query ]]&offset=[[- pagination.prev_page ]]">&larr;</a>
+ [[ } else { ]]
+ &larr;
+ [[ } ]]
+ |
+ [[ if (pagination.next_page !== -1) { ]]
+ <a href="?[[- pagination.query ]]&offset=[[- pagination.next_page ]]">Next page &rarr;</a>
+ [[ } else { ]]
+ &rarr;
+ [[ } ]]
+
+ </div>
+[[ } ]] \ No newline at end of file
diff --git a/views/staff/_projects.ejs b/views/staff/_projects.ejs
new file mode 100644
index 0000000..9e37a6c
--- /dev/null
+++ b/views/staff/_projects.ejs
@@ -0,0 +1,24 @@
+<table id="users">
+[[ projects.forEach(function(project){ ]]
+ <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>
+ [[ if (project.user) { ]]
+ <td>
+ <a href="/staff/users/[[- project.user.username ]]">[[- project.user.username ]]</a>
+ </td>
+ [[ } ]]
+ <td>
+ [[- project.date ]]
+ </td>
+ <td>
+ [[- project.privacy ? "private" : "" ]]
+ </td>
+ </tr>
+[[ }) ]]
+</table>
diff --git a/views/staff/_stats.ejs b/views/staff/_stats.ejs
new file mode 100644
index 0000000..d1ad96f
--- /dev/null
+++ b/views/staff/_stats.ejs
@@ -0,0 +1,17 @@
+<table>
+ <tr>
+ <th>stats</th>
+ </tr>
+ <tr>
+ <td><a href="/staff/users">users</a></td>
+ <td>[[- userCount ]]</td>
+ </tr>
+ <tr>
+ <td><a href="/staff/projects">projects</a></td>
+ <td>[[- projectCount ]]</td>
+ </tr>
+ <tr>
+ <td><a href="/staff/media">media</a></td>
+ <td>[[- mediaCount ]]</td>
+ </tr>
+</table>
diff --git a/views/staff/_users.ejs b/views/staff/_users.ejs
new file mode 100644
index 0000000..d46058f
--- /dev/null
+++ b/views/staff/_users.ejs
@@ -0,0 +1,21 @@
+<table id="users">
+[[ users.forEach(function(user){ ]]
+ <tr>
+ <td>
+ <a href="/staff/users/[[- user.username ]]"><div style="background-image:url([[- user.photo ]])" class="avatar"></div></a>
+ </td>
+ <td>
+ <a href="/staff/users/[[- user.username ]]">[[- user.username ]]</a>
+ </td>
+ <td>
+ [[- user.displayName ]]
+ </td>
+ <td class="editLinks">
+ <a href="/profile/[[- user.username ]]">[view profile]</a>
+ </td>
+ <td>
+ [[- user.last_seen ]]
+ </td>
+ </tr>
+[[ }) ]]
+</table>
diff --git a/views/staff/_users_recent.ejs b/views/staff/_users_recent.ejs
new file mode 100644
index 0000000..b452c08
--- /dev/null
+++ b/views/staff/_users_recent.ejs
@@ -0,0 +1,26 @@
+<table id="users">
+ <tr>
+ <th colspan="4">
+ recent users
+ </th>
+ </tr>
+[[ users.forEach(function(user){ ]]
+ <tr>
+ <td>
+ <a href="/staff/users/[[- user.username ]]"><div style="background-image:url([[- user.photo || '/assets/img/profile.png' ]])" class="avatar"></div></a>
+ </td>
+ <td>
+ <a href="/staff/users/[[- user.username ]]">[[- user.username ]]</a>
+ </td>
+ <td class="editLinks">
+ <a href="/profile/[[- user.username ]]">[view profile]</a>
+ </td>
+ <td>
+ [[- user.displayName ]]
+ </td>
+ <td>
+ [[- user.last_seen ]]
+ </td>
+ </tr>
+[[ }) ]]
+</table>
diff --git a/views/staff/index.ejs b/views/staff/index.ejs
new file mode 100644
index 0000000..5ca7269
--- /dev/null
+++ b/views/staff/index.ejs
@@ -0,0 +1,16 @@
+[[ include _header ]]
+
+ <h1>Staff Area</h1>
+
+ <nav>
+ <a href="/staff/users">users</a>
+ <a href="/staff/projects">projects</a>
+ <a href="/staff/media">media</a>
+ </nav>
+
+ <hr>
+
+ [[ include _users_recent ]]
+ [[ include _stats ]]
+
+[[ include _footer ]] \ No newline at end of file
diff --git a/views/staff/media/index.ejs b/views/staff/media/index.ejs
new file mode 100644
index 0000000..516af2d
--- /dev/null
+++ b/views/staff/media/index.ejs
@@ -0,0 +1,18 @@
+[[ include ../_header ]]
+
+ <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>
+
+ <hr>
+
+[[ include ../_pagination ]]
+[[ include ../_media ]]
+[[ include ../_pagination ]]
+
+[[ include ../_footer ]]
diff --git a/views/staff/media/show.ejs b/views/staff/media/show.ejs
new file mode 100644
index 0000000..76dcd32
--- /dev/null
+++ b/views/staff/media/show.ejs
@@ -0,0 +1,45 @@
+[[ include ../_header ]]
+
+ <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>
+
+ <hr>
+
+ <center>
+ <div id="media-embed" data-type="[[- media.type ]]" data-token="[[- media.token ]]" data-url="[[- media.url ]]" data-width="[[- media.width ]]" data-height="[[- media.height ]]" style="width: [[- media.width ]]px; height: [[- media.height ]]px">
+ </div>
+ </center>
+
+ <table>
+ <tr>
+ <td>
+ uploaded by
+ </td>
+ <td>
+ [[ if (media.user.photo) { ]]
+ <a href="/staff/users/[[- media.user.username ]]"><div style="background-image:url([[- media.user.photo ]])" class="avatar"></div></a>
+ [[ } ]]
+ </td>
+ <td>
+ <a href="/staff/users/[[- media.user.username ]]">[[- media.user.username ]]</a>
+ </td>
+ <td>
+ [[- media.user.displayName ]]
+ </td>
+ <td class="editLinks">
+ <a href="/profile/[[- media.user.username ]]">[view profile]</a>
+ </td>
+ </tr>
+ </table>
+
+ <div class="json">
+ [[- mediaJSON ]]
+ </div>
+
+[[ include ../_footer ]]
diff --git a/views/staff/media/show_404.ejs b/views/staff/media/show_404.ejs
new file mode 100644
index 0000000..f07cef2
--- /dev/null
+++ b/views/staff/media/show_404.ejs
@@ -0,0 +1,14 @@
+[[ include ../_header ]]
+
+ <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>
+
+ <hr>
+
+[[ include ../_footer ]]
diff --git a/views/staff/projects/index.ejs b/views/staff/projects/index.ejs
new file mode 100644
index 0000000..482ea25
--- /dev/null
+++ b/views/staff/projects/index.ejs
@@ -0,0 +1,18 @@
+[[ include ../_header ]]
+
+ <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>
+
+ <hr>
+
+[[ include ../_pagination ]]
+[[ include ../_projects ]]
+[[ include ../_pagination ]]
+
+[[ include ../_footer ]]
diff --git a/views/staff/projects/show.ejs b/views/staff/projects/show.ejs
new file mode 100644
index 0000000..0fdb00b
--- /dev/null
+++ b/views/staff/projects/show.ejs
@@ -0,0 +1,73 @@
+[[ include ../_header ]]
+
+ <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>
+
+ <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 ]]
diff --git a/views/staff/projects/show_404.ejs b/views/staff/projects/show_404.ejs
new file mode 100644
index 0000000..70320c0
--- /dev/null
+++ b/views/staff/projects/show_404.ejs
@@ -0,0 +1,14 @@
+[[ include ../_header ]]
+
+ <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>
+
+ <hr>
+
+[[ include ../_footer ]]
diff --git a/views/staff/users/index.ejs b/views/staff/users/index.ejs
new file mode 100644
index 0000000..f14d666
--- /dev/null
+++ b/views/staff/users/index.ejs
@@ -0,0 +1,18 @@
+[[ include ../_header ]]
+
+ <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>
+
+ <hr>
+
+[[ include ../_pagination ]]
+[[ include ../_users ]]
+[[ include ../_pagination ]]
+
+[[ include ../_footer ]]
diff --git a/views/staff/users/media.ejs b/views/staff/users/media.ejs
new file mode 100644
index 0000000..b13e5fb
--- /dev/null
+++ b/views/staff/users/media.ejs
@@ -0,0 +1,18 @@
+[[ include ../_header ]]
+
+ <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>
+
+ <hr>
+
+[[ include ../_pagination ]]
+[[ include ../_media ]]
+[[ include ../_pagination ]]
+
+[[ include ../_footer ]]
diff --git a/views/staff/users/show.ejs b/views/staff/users/show.ejs
new file mode 100644
index 0000000..8e9b447
--- /dev/null
+++ b/views/staff/users/show.ejs
@@ -0,0 +1,103 @@
+[[ 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>
+
+ <hr>
+
+ <table id="users">
+ <tr>
+ <td rowspan="999" valign="top">
+ <a href="/staff/users/[[- profile.username ]]"><div style="background-image:url([[- profile.photo ]])" class="avatar"></div></a>
+ </td>
+ <td>
+ <a href="/staff/users/[[- profile.username ]]">[[- profile.username ]]</a>
+ </td>
+ <td>
+ [[- profile.displayName ]]
+ </td>
+ <td class="editLinks">
+ <a href="/profile/[[- profile.username ]]">[view profile]</a>
+ <a href="/staff/users/[[- profile.username ]]/media">[view media]</a>
+ </td>
+ </tr>
+ </table>
+
+ <h2>Profile</h2>
+
+ <table>
+ <tr>
+ <th>
+ location
+ </th>
+ <td>
+ [[- profile.location ]]
+ </td>
+ </tr>
+ <tr>
+ <th>
+ last seen
+ </th>
+ <td>
+ [[- profile.last_seen ]]
+ </td>
+ </tr>
+ <tr>
+ <th>
+ projects
+ </th>
+ <td>
+ [[- profile.projectCount ]]
+ </td>
+ </tr>
+ <tr>
+ <th>
+ media
+ </th>
+ <td>
+ [[- profile.mediaCount ]] <a href="/staff/users/[[- profile.username ]]/media">[show]</a>
+ </td>
+ </tr>
+ <tr>
+ <th>
+ ip addresses
+ </th>
+ <td>
+ [[- profile.created_ip ]]
+ [[- profile.last_ip ]]
+ </td>
+ </tr>
+ <tr>
+ <th>
+ is admin?
+ </th>
+ <td id="is-staff">
+ [[- profile.isStaff ? "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>
+ [[ } ]]
+ </div>
+
+ <h2>Projects</h2>
+
+ [[- include ../_projects ]]
+
+ <br>
+ <br>
+
+ <div class="json">
+ [[- profileJSON ]]
+ </div>
+
+[[ include ../_footer ]]
diff --git a/views/staff/users/show_404.ejs b/views/staff/users/show_404.ejs
new file mode 100644
index 0000000..bcd0271
--- /dev/null
+++ b/views/staff/users/show_404.ejs
@@ -0,0 +1,13 @@
+[[ 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>
+
+[[ include ../_footer ]]