mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-05-04 14:19:13 -04:00
patch allows nice pad urls server/padname and also the old form server/p/padname; first commit to my remote repository
This commit is contained in:
parent
bf0fe9377d
commit
2f0e45efe3
3 changed files with 41 additions and 38 deletions
|
@ -196,24 +196,27 @@ async.waterfall([
|
|||
res.send(html);
|
||||
});
|
||||
});
|
||||
|
||||
//serve pad.html under /p
|
||||
app.get('/p/:pad', function(req, res, next)
|
||||
|
||||
//serve pad.html under / and /p for compatibility
|
||||
app.get( "(/p)?/:pad", function(req, res, next)
|
||||
{
|
||||
//ensure the padname is valid and the url doesn't end with a /
|
||||
if(!padManager.isValidPadId(req.params.pad) || /\/$/.test(req.url))
|
||||
{
|
||||
res.send('Such a padname is forbidden', 404);
|
||||
// ensure the padname is valid and the url doesn't end with a /
|
||||
// and that reserved pathnames are served as files, not as pads
|
||||
if( !padManager.isValidPadId(req.params.pad) || /\/+$/.test(req.url)) {
|
||||
res.send('Such a padname is forbidden.', 404);
|
||||
return;
|
||||
} else if ( /(favicon\.ico|robots\.txt)/.test(req.url) )
|
||||
{
|
||||
next();
|
||||
return;
|
||||
}
|
||||
|
||||
res.header("Server", serverName);
|
||||
var filePath = path.normalize(__dirname + "/../static/pad.html");
|
||||
res.sendfile(filePath, { maxAge: exports.maxAge });
|
||||
});
|
||||
|
||||
//serve timeslider.html under /p/$padname/timeslider
|
||||
app.get('/p/:pad/timeslider', function(req, res, next)
|
||||
|
||||
//serve timeslider.html under /$padname/timeslider
|
||||
app.get('/:pad/timeslider', function(req, res, next)
|
||||
{
|
||||
//ensure the padname is valid and the url doesn't end with a /
|
||||
if(!padManager.isValidPadId(req.params.pad) || /\/$/.test(req.url))
|
||||
|
@ -226,9 +229,9 @@ async.waterfall([
|
|||
var filePath = path.normalize(__dirname + "/../static/timeslider.html");
|
||||
res.sendfile(filePath, { maxAge: exports.maxAge });
|
||||
});
|
||||
|
||||
//serve timeslider.html under /p/$padname/timeslider
|
||||
app.get('/p/:pad/export/:type', function(req, res, next)
|
||||
|
||||
//serve export files under /$padname/export
|
||||
app.get('/:pad/export/:type', function(req, res, next)
|
||||
{
|
||||
//ensure the padname is valid and the url doesn't end with a /
|
||||
if(!padManager.isValidPadId(req.params.pad) || /\/$/.test(req.url))
|
||||
|
@ -262,7 +265,7 @@ async.waterfall([
|
|||
});
|
||||
|
||||
//handle import requests
|
||||
app.post('/p/:pad/import', function(req, res, next)
|
||||
app.post('/:pad/import', function(req, res, next)
|
||||
{
|
||||
//ensure the padname is valid and the url doesn't end with a /
|
||||
if(!padManager.isValidPadId(req.params.pad) || /\/$/.test(req.url))
|
||||
|
@ -341,9 +344,9 @@ async.waterfall([
|
|||
var filePath = path.normalize(__dirname + "/../static/index.html");
|
||||
res.sendfile(filePath, { maxAge: exports.maxAge });
|
||||
});
|
||||
|
||||
|
||||
//serve robots.txt
|
||||
app.get('/robots.txt', function(req, res)
|
||||
app.get( /.*\/robots.txt/, function(req, res)
|
||||
{
|
||||
res.header("Server", serverName);
|
||||
var filePath = path.normalize(__dirname + "/../static/robots.txt");
|
||||
|
@ -351,7 +354,7 @@ async.waterfall([
|
|||
});
|
||||
|
||||
//serve favicon.ico
|
||||
app.get('/favicon.ico', function(req, res)
|
||||
app.get( /.*\/favicon\.ico/, function(req, res)
|
||||
{
|
||||
res.header("Server", serverName);
|
||||
var filePath = path.normalize(__dirname + "/../static/custom/favicon.ico");
|
||||
|
@ -365,7 +368,7 @@ async.waterfall([
|
|||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
//let the server listen
|
||||
app.listen(settings.port, settings.ip);
|
||||
console.log("Server is listening at " + settings.ip + ":" + settings.port);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<title>Etherpad Lite</title>
|
||||
<title>Etherpad</title>
|
||||
<style>
|
||||
*{ margin:0;padding:0; }
|
||||
body {
|
||||
|
@ -39,7 +39,7 @@
|
|||
text-shadow: 0 -1px 0 rgba(0,0,0,.8);
|
||||
height: 70px;
|
||||
line-height: 70px;
|
||||
width: 300px;
|
||||
width: 500px;
|
||||
background: #555;
|
||||
background: -webkit-linear-gradient(#5F5F5F,#565656 50%,#4C4C4C 51%,#373737);
|
||||
background: -moz-linear-gradient(#5F5F5F,#565656 50%,#4C4C4C 51%,#373737);
|
||||
|
@ -62,7 +62,7 @@
|
|||
#label {
|
||||
text-align: left;
|
||||
margin: 0 auto;
|
||||
width: 300px
|
||||
width: 500px
|
||||
}
|
||||
input {
|
||||
vertical-align: middle;
|
||||
|
@ -70,7 +70,7 @@
|
|||
font-size: 15px
|
||||
}
|
||||
input[type="text"] {
|
||||
width: 243px;
|
||||
width: 443px; /* 243px */
|
||||
padding: 10px 47px 10px 10px;
|
||||
background: #fff;
|
||||
border: 1px solid #bbb;
|
||||
|
@ -88,29 +88,22 @@
|
|||
</style>
|
||||
<link href="static/custom/index.css" rel="stylesheet">
|
||||
<script src="static/custom/index.js"></script>
|
||||
<div id="container">
|
||||
<div id="button" onclick="go2Random()">New Pad</div><br><div id="label">or create/open a Pad with the name</div>
|
||||
<form action="#" onsubmit="go2Name();return false;">
|
||||
<input type="text" id="padname" autofocus>
|
||||
<input type="submit" value="OK">
|
||||
</form>
|
||||
</div>
|
||||
<script>
|
||||
<script>
|
||||
function go2Name()
|
||||
{
|
||||
var padname = document.getElementById("padname").value;
|
||||
padname.length > 0 ? window.location = "p/" + padname : alert("Please enter a name")
|
||||
padname.length > 0 ? window.location = /** "p/" + **/ padname : alert("Please enter a name")
|
||||
}
|
||||
|
||||
function go2Random()
|
||||
{
|
||||
window.location = "p/" + randomPadName();
|
||||
window.location = /** "p/" + **/ randomPadName();
|
||||
}
|
||||
|
||||
function randomPadName()
|
||||
{
|
||||
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
|
||||
var string_length = 10;
|
||||
var chars = "23456789ABCDEFGHJKLMNPQRSTUWXYZabcdefghijkmnopqrstuwxyz";
|
||||
var string_length = 16;
|
||||
var randomstring = '';
|
||||
for (var i = 0; i < string_length; i++)
|
||||
{
|
||||
|
@ -123,4 +116,11 @@
|
|||
//start the costum js
|
||||
if(typeof costumStart == "function") costumStart();
|
||||
</script>
|
||||
<div id="container">
|
||||
<div id="button" onclick="go2Random()" title="open a new pad with a generated random name like 'B3GYd74mn2yBH6'">create new random pad</div><br><div id="label">open an existing pad or create a new pad with the name</div>
|
||||
<form action="#" onsubmit="go2Name();return false;">
|
||||
<input type="text" id="padname" autofocus>
|
||||
<input type="submit" value="OK">
|
||||
</form>
|
||||
</div>
|
||||
</html>
|
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue