Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion lib/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,14 @@ module.exports.initialize = function(config) {
app.use(expValidator());

app.set('views', __dirname + '/../views');
app.set('view engine', 'jade');

if (config.get("application").EJSViews){
app.set('view engine', 'ejs');
app.engine('ejs', require("ejs-mate"));
}
else {
app.set('view engine', 'jade');
}

app.use(function (req, res, next) {

Expand Down
1 change: 1 addition & 0 deletions lib/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ module.exports = (function() {
git: "git",
skipGitCheck: false,
loggingMode: 1,
EJSViews: false,
pedanticMarkdown: true,
staticWhitelist: "/\\.png$/i, /\\.jpg$/i, /\\.gif$/i"
},
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
"gravatar": "^1.1.0",
"iconv": "*",
"jade": "*",
"ejs-mate": "*",
"js-yaml": "^3.1.0",
"lodash": "^2.4.1",
"marked": "^0.3.2",
Expand Down
7 changes: 7 additions & 0 deletions views/404.ejs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<% layout('layout') -%>
<div id="content">
<div class="jumbotron">
<h1><%= title %></h1>
<p>The requested resource is not available</p>
</div>
</div>
8 changes: 8 additions & 0 deletions views/500.ejs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<% layout('layout') -%>
<div id="content">
<div class="jumbotron">
<h2><%= title %></h2>
<pre class="discrete"><%= error %></pre>
<p><%= message %></p>
</div>
</div>
25 changes: 25 additions & 0 deletions views/compare.ejs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<% layout('layout') -%>
<div id="content" class="compare">
<h2>Compare two revisions of:&nbsp;
<b class="page-param"><%= page.title %></b>
</h2>
<ul class="nav nav-pills">
<% if (revs[0]) { -%>
<li><a href="<%= page.urlForShow() %>/<%= revs[0] %>"><%= revs[0] %></a></li>
<% }; -%>
<li><a href="<%= page.urlForShow() %>/<%= revs[1] %>"><%= revs[1] %></a></li>
<li><a href="<%= page.urlForShow() %>">Current</a></li>
<li><a href="<%= page.urlForHistory() %>">History</a></li>
</ul>
<table class="compare table table-bordered table-hover table-condensed">
<%
lines.forEach(function(line){ -%>
<tr>
<td class="ln"><%= line.ldln %></td>
<td class="ln"><%= line.rdln %></td>
<td class="<%= line.className %>"><%= line.text %></td>
</tr>
<%
}); -%>
</table>
</div>
100 changes: 100 additions & 0 deletions views/create.ejs
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
<% layout('layout') -%>
<% var str = "";
if (hasFeature('markitup')){
str = str + '\
<link rel="stylesheet" href="/vendor/widearea/widearea.min.css"> \n\
<link rel="stylesheet" href="/vendor/markitup/skins/simple/style.css"> \n\
<link rel="stylesheet" href="/vendor/markitup/sets/markdown/style.css"> \n';
}
if (hasFeature('codemirror')){
str = str + '\
<link rel="stylesheet" href="/vendor/codemirror/codemirror.css"> \n\
<link rel="stylesheet" href="/vendor/codemirror/fullscreen.css"> \n';
}
block('styles').append(str) %>

<div id="content">
<%
var errors = locals.errors;
if ((typeof(errors) != 'undefined' && Object.keys(errors).length > 0)){ %>
<div class="alert bg-danger">
<ul>
<% errors.forEach(function(v){ -%>
<li><b><%= v.msg || v %></b></li>
<% }) -%>
</ul>
</div>
<%
} -%>
<h1>Create a new page</h1>
<form action='/pages' method='post' class='edit'>
<input type="hidden" name="pageName" value="<%= coalesce(pageName, '') %>">
<div class="form-group">
<input class="form-control" id="pageTitle" required type="text" placeholder='Enter the page title' name='pageTitle' value="<%= coalesce(formData.pageTitle, pageTitle) %>">
</div>
<div class="form-group">
<textarea class="form-control" id="editor" name="content" data-widearea="enable" rows='25'><%= coalesce(formData.content, '') %></textarea>
</div>
<div class="well">
<input class='btn btn-primary' type='submit' value='Save'>
&nbsp;
<a href="/" class="btn">Cancel</a>
</div>
</form>
</div>
<div id="preview" class="modal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button data-dismiss="modal" aria-hidden="true" class="close">&times;</button>
<h3>Page preview</h3>
</div>
<div class="modal-body"></div>
<div class="modal-footer"></div>
</div>
</div>
</div>
<div id="syntax-reference" class="modal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button data-dismiss="modal" aria-hidden="true" class="close">&times;</button>
<h3>Markdown cheatsheet</h3>
</div>
<div class="modal-body"></div>
<div class="modal-footer"></div>
</div>
</div>
</div>

<% var str = "";
if (hasFeature('markitup')){
str = str + '\
<script src="/vendor/jquery-migrate-1.1.0.min.js"></script> \n\
<script src="/vendor/markitup/jquery.markitup.js"></script> \n\
<script src="/vendor/markitup/sets/markdown/set.js"></script> \n\
<script src="/vendor/widearea/widearea.min.js"></script> \n\
<script> \n\
$("#editor").markItUp(markdownSettings); \n\
wideArea(); \n\
</script>'
}
if (hasFeature('codemirror')){
str = str + '\
<script src="/vendor/codemirror/codemirror.min.js"></script> \n\
<script> \n\
Jingo.cmInstance = CodeMirror.fromTextArea(document.getElementById("editor"), { \n\
lineNumbers: true, \n\
mode: "markdown", \n\
matchBrackets: true, \n\
lineWrapping: true, \n\
extraKeys: { \n\
"Ctrl-Enter": function(cm) { \n\
Jingo.toggleFullscreen(); \n\
} \n\
} \n\
}); \n\
Jingo.toolbar(); \n\
</script>'
}
block('scripts').append(str) %>
129 changes: 129 additions & 0 deletions views/edit.ejs
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
<% layout('layout') -%>
<% var style = "";
if (hasFeature('markitup')){
style = style + '\
<link rel="stylesheet" href="/vendor/widearea/widearea.min.css"> \n\
<link rel="stylesheet" href="/vendor/markitup/skins/simple/style.css"> \n\
<link rel="stylesheet" href="/vendor/markitup/sets/markdown/style.css"> \n';
}
if (hasFeature('codemirror')){
style = style + '\
<link rel="stylesheet" type="text/css" href="/vendor/codemirror/codemirror.css"/> \n\
<link rel="stylesheet" type="text/css" href="/vendor/codemirror/fullscreen.css"/> \n';
}
block('styles').append(style);

var tools = '\
<ul> \n';

if (page.wikiname != 'home'){
tools = tools + '\
<li> \n\
<form action="/pages/' + page.wikiname + '" method="post" style="display:inline"> \n\
<input type="hidden" name="_method" value="delete"/> \n\
<input type="submit" value="Delete this page" class="confirm-delete-page btn btn-default"/> \n\
</form> \n\
</li> \n';
}

tools = tools + '\
</ul> \n';

block('tools').append(tools) -%>
<div id="content" class="edit">
<%
var errors = locals.errors;
if (typeof(errors) != 'undefined' && Object.keys(errors).length > 0){ -%>
<div class="alert bg-danger">
<ul>
<% errors.forEach(function(v){ -%>
<li><b><%= v.msg || v %></b></li>
<% }) -%>
</ul>
</div>
<%
}

var warning = locals.warning;
if (typeof(warning) != 'undefined'){ -%>
<div class="alert alert-block alert-warning">
<%- warning %>
</div>
<%
} -%>
<h1>Edit page</h1>
<form action='<%= page.urlForEditPut() %>' method='post' class='edit'>
<div class="form-group">
<input class="form-control" id="pageTitle" required type="text" placeholder='Enter the page title' name='pageTitle' value="<%= coalesce(formData.pageTitle, '') %>">
<input type="hidden" name="_method" value="put">
</div>
<div class="form-group">
<textarea class="form-control" id="editor" name="content" data-widearea="enable" rows='25'><%= coalesce(formData.content, '') %></textarea>
</div>
<div class="form-group">
<input class="form-control span8" id="message" type="text" placeholder='Write a small message here explaining this change (optional)' name='message' >
</div>
<div class="well">
<input class='btn btn-primary' type='submit' value='Save'/>
&nbsp;
<a href="/" class="btn">Cancel</a>
</div>
</form>
</div>
<div id="preview" class="modal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button data-dismiss="modal" aria-hidden="true" class="close">&times;</button>
<h3>Page preview</h3>
</div>
<div class="modal-body"></div>
<div class="modal-footer"></div>
</div>
</div>
</div>
<div id="syntax-reference" class="modal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button data-dismiss="modal" aria-hidden="true" class="close">&times;</button>
<h3>Markdown cheatsheet</h3>
</div>
<div class="modal-body"></div>
<div class="modal-footer"></div>
</div>
</div>
</div>
<% var scripts = "";
if (hasFeature('markitup')){
scripts = scripts + '\
<script src="/vendor/jquery-migrate-1.1.0.min.js"></script> \n\
<script src="/vendor/markitup/jquery.markitup.js"></script> \n\
<script src="/vendor/markitup/sets/markdown/set.js"></script> \n\
<script src="/vendor/widearea/widearea.min.js"></script> \n\
<script> \n\
$("#editor").markItUp(markdownSettings); \n\
wideArea(); \n\
</script> \n';
}

if (hasFeature('codemirror')){
scripts = scripts + '\
<script src="/vendor/codemirror/codemirror.min.js"></script> \n\
<script> \n\
Jingo.cmInstance = CodeMirror.fromTextArea(document.getElementById("editor"), { \n\
lineNumbers: true, \n\
mode: "markdown", \n\
matchBrackets: true, \n\
lineWrapping: true, \n\
extraKeys: { \n\
"Ctrl-Enter": function(cm) { \n\
Jingo.toggleFullscreen(); \n\
} \n\
} \n\
}); \n\
Jingo.toolbar(); \n\
</script> \n';
}

block('scripts').append(scripts) -%>
40 changes: 40 additions & 0 deletions views/history.ejs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<% layout('layout');

var tools = '\
<ul> \n\
<li> \n\
<a href="/wiki" title="All pages" class="btn btn-sm btn-default"> \n\
<i class="icon ion-grid"></i> \n\
</a> \n\
</li> \n\
</ul> \n';

block('tools').append(tools); %>

<div id="content" class="show">
<h2>Revisions of:&nbsp;
<b class="page-param"><%= page.title %></b>
</h2>
<p>
<button id="rev-compare" data-pageName="<%= page.name %>" class="btn btn-primary">Compare revisions</button>
</p>
<table class="history table table-striped table-bordered table-hover table-condensed">
<%
items.forEach(function(item){ -%>
<tr>
<td><input type="checkbox" value="<%=item.hashRef %>"></td>
<td>
<% if (item.email) { -%>
<img src="<%= gravatar().url(item.email, {s:16}) %>">
&nbsp;
<% }; -%>
<%= item.author %>
</td>
<td><%= item.relDate %></td>
<td><%= item.subject %></td>
<td><a href="<%= page.urlForShow() %>/<%= item.hashRef || '' %>" id="<%= item.hashRef || 'CURRENT' %>"></td>
</tr>
<%
}); -%>
</table>
</div>
4 changes: 4 additions & 0 deletions views/index.ejs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<% layout('layout') -%>
<div id="content">
<p>Welcome to <%= title %></p>
</div>
Loading