placebo
This commit is contained in:
parent
e9e46e1f59
commit
7c6bb5c40d
338
contrib/static/krane.css
Normal file
338
contrib/static/krane.css
Normal file
@ -0,0 +1,338 @@
|
||||
body {
|
||||
margin: 0px;
|
||||
background: #101010;
|
||||
font-family: arial,sans-serif,helvetica;
|
||||
color:#ffffff;
|
||||
font-size: 10pt;
|
||||
}
|
||||
/*table {
|
||||
font-size: 10pt;
|
||||
}*/
|
||||
a {
|
||||
color: #f7acb1;
|
||||
}
|
||||
hr {
|
||||
color: #363636;
|
||||
width: 98%;
|
||||
height: 0px;
|
||||
border-top: 1px solid;
|
||||
border-bottom: none;
|
||||
}
|
||||
.sitetitle {
|
||||
text-align: center;
|
||||
color: #ABABAB;
|
||||
margin: 10px 20px 20px 20px;
|
||||
}
|
||||
.sitetitle h2 {
|
||||
margin: 0px;
|
||||
}
|
||||
.sitetitle a {
|
||||
color: #ABABAB;
|
||||
text-decoration: none;
|
||||
}
|
||||
.filedescription {
|
||||
font-style: italic;
|
||||
}
|
||||
.messageroot .highlightroot{
|
||||
margin-bottom: 1px;
|
||||
border: none;
|
||||
background: #101010;
|
||||
padding: 9px 9px 1em;
|
||||
}
|
||||
.message, .highlight {
|
||||
margin-left: 25px;
|
||||
margin-bottom: 1px;
|
||||
border: 1px solid #363636;
|
||||
background: #1c1c1c;
|
||||
border-radius: 0px;
|
||||
padding: 9px 9px 1.5em;
|
||||
}
|
||||
.highlight .highlightroot {
|
||||
background: #EEDACB;
|
||||
padding: 10px;
|
||||
color: #333333;
|
||||
border: 2px dashed #EE6600;
|
||||
}
|
||||
.image_link {
|
||||
float: left;
|
||||
padding-right: 5px;
|
||||
position: relative;
|
||||
}
|
||||
.image_root {
|
||||
border-radius: 0px;
|
||||
border: 1px solid #363636;
|
||||
}
|
||||
.image {
|
||||
border-radius: 0px;
|
||||
border: 1px solid #363636;
|
||||
}
|
||||
.thread {
|
||||
padding-top: 5px;
|
||||
padding-left: 10px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
.message_span {
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
.topicline b{
|
||||
color:#ff1493;
|
||||
}
|
||||
.postform th {
|
||||
background: #1c1c1c;
|
||||
border: 1px solid #363636;
|
||||
text-align: left;
|
||||
padding-left: 4px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
.posttext {
|
||||
width: 400px;
|
||||
height: 20px;
|
||||
border: 1px solid #363636;
|
||||
background: #ffffff;
|
||||
}
|
||||
.postbutton {
|
||||
width: 100px;
|
||||
border: 1px solid #363636;
|
||||
background: #ffffff;
|
||||
}
|
||||
#newthread {
|
||||
background: #F7ACB1;
|
||||
}
|
||||
.postarea {
|
||||
width: 400px;
|
||||
height: 48px;
|
||||
border: 1px solid #363636;
|
||||
background: #ffffff;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
.postfile {
|
||||
}
|
||||
.boards {
|
||||
padding: 0px 2.5em 0px 10px;
|
||||
}
|
||||
.boards a,
|
||||
.pagelist a{
|
||||
text-decoration: none;
|
||||
}
|
||||
.evilstuff {
|
||||
background-color: #333333;
|
||||
border: 1px solid #666666;
|
||||
border-radius: 30px;
|
||||
padding: 10px;
|
||||
margin-right: 10px;
|
||||
position: fixed;
|
||||
right: 0px;
|
||||
top: 20px;
|
||||
display: none;
|
||||
}
|
||||
.stillevil {
|
||||
display: none;
|
||||
}
|
||||
.evilmod {
|
||||
position: fixed;
|
||||
right: 20px;
|
||||
top: 0px;
|
||||
}
|
||||
.evilmod:checked ~ form .evilstuff {
|
||||
display: block;
|
||||
}
|
||||
.evilmod:checked ~ form .stillevil {
|
||||
display: inline;
|
||||
}
|
||||
.stillevil input {
|
||||
margin: 0px;
|
||||
}
|
||||
.warning {
|
||||
color: #FF0000;
|
||||
display: none;
|
||||
}
|
||||
.purge_root:checked ~ .warning {
|
||||
display: inline;
|
||||
}
|
||||
.sig_label {
|
||||
color: #00FF00;
|
||||
cursor: pointer;
|
||||
font-weight: bold;
|
||||
}
|
||||
.sig_chk {
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
z-index: -1;
|
||||
}
|
||||
.sig_key {
|
||||
padding-left: 5px;
|
||||
display: none;
|
||||
}
|
||||
.sig_chk:checked ~ .sig_key {
|
||||
display: inline;
|
||||
}
|
||||
.lblhelp {
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
right: 10px;
|
||||
cursor: pointer;
|
||||
font-weight: bold;
|
||||
}
|
||||
a.lblhelp, a.lblhelp:hover {
|
||||
color: #C5C8C6;
|
||||
padding: 0px;
|
||||
text-decoration: none;
|
||||
}
|
||||
.quote {
|
||||
color: #00AA00;
|
||||
}
|
||||
.code {
|
||||
background-color: #303030;
|
||||
border: 1px solid #404040;
|
||||
clear: right;
|
||||
font-family: monospace;
|
||||
font-size: 9pt;
|
||||
overflow: auto;
|
||||
width: 80%;
|
||||
display: block;
|
||||
margin: 0;
|
||||
}
|
||||
.datatable {
|
||||
background: #141414;
|
||||
border: 1px solid #3B3B3B;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
.datatable th {
|
||||
background: #1C1C1C;
|
||||
}
|
||||
.datatable td, .datatable th {
|
||||
border: 1px dotted #3B3B3B;
|
||||
padding: 1px 4px;
|
||||
vertical-align: top;
|
||||
}
|
||||
.mod {
|
||||
font-family: monospace;
|
||||
font-size: 9pt;
|
||||
margin: 20px 10px 10px;
|
||||
}
|
||||
.mod tr:hover {
|
||||
background-color: #282828 !important;
|
||||
}
|
||||
.mod table {
|
||||
border-collapse: collapse;
|
||||
font-size: 9pt; /* damn you chromium */
|
||||
}
|
||||
.dontwrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
.right {
|
||||
text-align: right;
|
||||
}
|
||||
.spoiler, .spoiler a:link, .spoiler a:visited {
|
||||
color: black;
|
||||
background: black;
|
||||
}
|
||||
|
||||
.spoiler:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.spoiler:hover a:link {
|
||||
color: #FF6600;
|
||||
}
|
||||
|
||||
.spoiler:hover a:visited {
|
||||
color: #FF6600;
|
||||
}
|
||||
|
||||
.spoiler:hover a:hover {
|
||||
color: #0066FF;
|
||||
}
|
||||
.zoi {
|
||||
color: purple;
|
||||
}
|
||||
.op-kyn {
|
||||
color: skyblue;
|
||||
}
|
||||
.menu-footer {
|
||||
font-size: 0.7em;
|
||||
text-align: center;
|
||||
margin: 0.3em;
|
||||
bottom: 5em;
|
||||
position: fixed
|
||||
}
|
||||
.published {
|
||||
font-size: 0.85em;
|
||||
color: #898E93;
|
||||
}
|
||||
.menu-left {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
.board_description {
|
||||
width: 400px;
|
||||
padding: 10px;
|
||||
font-size: 0.75em;
|
||||
font-family: sans-serif;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
/*
|
||||
.play_button {
|
||||
background-image: url("/static/playbutton.png");
|
||||
height: 53px;
|
||||
width: 70px;
|
||||
position: absolute;
|
||||
top: calc(50% - 26px);
|
||||
left: calc(50% - 35px);
|
||||
}
|
||||
*/
|
||||
.news {
|
||||
border: 1px solid #3b3b3b;
|
||||
background: #141414;
|
||||
margin: 10px 20px 10px 20px;
|
||||
}
|
||||
.news .header {
|
||||
background: #1c1c1c;
|
||||
font-style: italic;
|
||||
padding: 3px 5px 0px 5px;
|
||||
text-align: right;
|
||||
border-bottom: 1px dotted #3b3b3b;
|
||||
}
|
||||
.news .author {
|
||||
font-style: italic;
|
||||
font-weight: bold;
|
||||
}
|
||||
.news .header .topicline .subject {
|
||||
font-style: normal;
|
||||
float: left;
|
||||
}
|
||||
.news .message_span {
|
||||
padding: 10px 5px 0px 5px;
|
||||
}
|
||||
.news .footer {
|
||||
text-align: right;
|
||||
font-style: italic;
|
||||
padding: 0px 5px 5px;
|
||||
}
|
||||
.activity {
|
||||
padding: 10px 20px;
|
||||
}
|
||||
.activity td, .activity th {
|
||||
vertical-align: top;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.post_td {
|
||||
width: 100%;
|
||||
padding: 0px 10px;
|
||||
}
|
||||
.post_td td {
|
||||
text-align: right;
|
||||
}
|
||||
.post_td .subject {
|
||||
text-align: left;
|
||||
white-space: normal;
|
||||
padding-left: 10px;
|
||||
}
|
||||
.aa {
|
||||
font-family: "IPAMonaPGothic","Monapo","Mona","MS PGothic";
|
||||
overflow: auto;
|
||||
display: block;
|
||||
margin: 0;
|
||||
}
|
25
contrib/templates/placebo/404.mustache
Normal file
25
contrib/templates/placebo/404.mustache
Normal file
@ -0,0 +1,25 @@
|
||||
{{!
|
||||
404.mustache -- 404 page
|
||||
template parameters:
|
||||
- prefix (the site prefix)
|
||||
}}
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title> 404 </title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="{{prefix}}static/site.css" />
|
||||
<link id="current_theme" rel="stylesheet" href="{{prefix}}static/user.css" />
|
||||
<script type="text/javascript" src="{{prefix}}static/nntpchan.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div class="not_found">
|
||||
<img src="{{prefix}}static/404.png"></img>
|
||||
<div class="not_found_message">
|
||||
{{#i18n.Translations}}{{resource_not_found}}{{/i18n.Translations}}
|
||||
</div>
|
||||
</div>
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
46
contrib/templates/placebo/board.mustache
Normal file
46
contrib/templates/placebo/board.mustache
Normal file
@ -0,0 +1,46 @@
|
||||
{{!
|
||||
board.mustache, displays the contents of page N of the board
|
||||
|
||||
template parameters:
|
||||
- board ( the model of the current page )
|
||||
- page ( the page number of the current page )
|
||||
|
||||
board has the properties:
|
||||
- Prefix ( absolute path like //site.tld/ or /path/ )
|
||||
- Board ( the name of the board )
|
||||
- Navbar ( a function that renders the navbar, should not be escaped )
|
||||
- Threads ( a list of Thread Models with the last few replies )
|
||||
}}
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
||||
"http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>{{board.Board}}</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<link rel="stylesheet" href="/static/krane.css" />
|
||||
</head>
|
||||
<body>
|
||||
{{{ board.Navbar }}}
|
||||
<hr />
|
||||
<div class="sitetitle">
|
||||
<h2><a href="{{Prefix}}">OVERCHAN</a></h2>
|
||||
<b>decentralized and distributed</b>
|
||||
</div>
|
||||
<center><b>{{Board.Name}}</b></center>
|
||||
{{{Postform}}}
|
||||
{{#Threads}}
|
||||
<div class="thread">
|
||||
{{{OP.RenderPost}}}
|
||||
{{#Replies}}
|
||||
{{{RenderPost}}}
|
||||
{{/Replies}}
|
||||
</div>
|
||||
<hr style="clear: both;">
|
||||
{{/Threads}}
|
||||
<hr />
|
||||
<footer>
|
||||
<p class="legal">All posts on this site are the responsibility of the individual poster and not the administration, pursuant to 47 U.S.C. § 230.</p>
|
||||
<p class="legal">To make a DMCA request or report illegal content, please contact the administration</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
51
contrib/templates/placebo/boardlist.mustache
Normal file
51
contrib/templates/placebo/boardlist.mustache
Normal file
@ -0,0 +1,51 @@
|
||||
{{!
|
||||
boardlist.mustache -- full list of every board
|
||||
template parameters:
|
||||
- graph ( a list of 4 string tuples: (board, posts_per_hour, posts_per_day, total_posts) )
|
||||
- frontend ( the name of the frontend )
|
||||
- prefix ( the site's prefix )
|
||||
}}
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="{{prefix}}static/site.css"></link>
|
||||
<link id="current_theme" rel="stylesheet" href="{{prefix}}static/user.css"></link>
|
||||
<title> {{frontend}} {{#i18n.Translations}}{{board_list_title}}{{/i18n.Translations}} </title>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<div class="index-outer">
|
||||
<div class="index-inner">
|
||||
<table id="board_graph">
|
||||
<thead>
|
||||
<tr>
|
||||
<th> {{#i18n.Translations}}{{board_label}}{{/i18n.Translations}} </th>
|
||||
<th> {{#i18n.Translations}}{{pph_label}}{{/i18n.Translations}} </th>
|
||||
<th> {{#i18n.Translations}}{{ppd_label}}{{/i18n.Translations}} </th>
|
||||
<th> {{#i18n.Translations}}{{total}}{{/i18n.Translations}} </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{# graph}}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{prefix}}b/{{Board}}/">{{Board}}</a>
|
||||
</td>
|
||||
<td>
|
||||
{{Hour}}
|
||||
</td>
|
||||
<td>
|
||||
{{Day}}
|
||||
</td>
|
||||
<td>
|
||||
{{All}}
|
||||
</td>
|
||||
</tr>
|
||||
{{/ graph}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
47
contrib/templates/placebo/catalog.mustache
Normal file
47
contrib/templates/placebo/catalog.mustache
Normal file
@ -0,0 +1,47 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="initial-scale=1" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/site.css" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/user.css" />
|
||||
<link id="current_theme" rel="stylesheet" href="{{board.Prefix}}static/user.css" />
|
||||
<script type="text/javascript" src="{{board.Prefix}}static/nntpchan.js"></script>
|
||||
<title>{{#i18n.Translations}}{{catalog_title}}{{/i18n.Translations}} {{board.Name}}</title>
|
||||
</head>
|
||||
<body>
|
||||
<!-- begin navbar -->
|
||||
{{{board.Navbar}}}
|
||||
<!-- end navbar -->
|
||||
<center>
|
||||
<div id="nntpchan_banner">
|
||||
</div>
|
||||
</center>
|
||||
<div class="board_header">{{#i18n.Translations}}{{catalog_title}}{{/i18n.Translations}} {{board.Name}}</div>
|
||||
<!-- postform -->
|
||||
<hr />
|
||||
<div id="catalog_container">
|
||||
{{#board.Threads}}
|
||||
<div class="catalog_thread">
|
||||
<a class="linkThumb" href="{{OP.PostURL}}"><img src="{{OP.RepresentativeThumb}}"></a>
|
||||
<div class="catalog_header">{{#i18n.Translations}}{{replies_short_label}}{{/i18n.Translations}}: {{ReplyCount}} / {{#i18n.Translations}}{{pictures_short_label}}{{/i18n.Translations}}: {{Page}}</div>
|
||||
<div class="catalog_subject">{{OP.Subject}}</div>
|
||||
<div class="catalog_body">
|
||||
{{{OP.RenderBody}}}
|
||||
</div>
|
||||
</div>
|
||||
{{/board.Threads}}
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
|
||||
var e = document.getElementById("nntpchan_banner");
|
||||
nntpchan_inject_banners(e, "{{board.Prefix}}");
|
||||
|
||||
</script>
|
||||
<hr/>
|
||||
<footer>
|
||||
<p class="legal">All posts on this site are the responsibility of the individual poster and not the administration, pursuant to 47 U.S.C. § 230.</p>
|
||||
<p class="legal">To make a DMCA request or report illegal content, please contact the administration</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
25
contrib/templates/placebo/frontpage.mustache
Normal file
25
contrib/templates/placebo/frontpage.mustache
Normal file
@ -0,0 +1,25 @@
|
||||
{{!
|
||||
frontpage.mustache -- template for index.html
|
||||
template parameters:
|
||||
- boardgraph ( markup of boardPageRows instance, see srnd/model.go )
|
||||
- postgraph ( markup of postsGraph instance , see srnd/model.go )
|
||||
- overview ( markup of overviewModel instance , see srnd/model.go )
|
||||
- totalposts ( the number of total posts we have ever seen )
|
||||
- frontend ( the name of the frontend )
|
||||
- prefix ( the site's prefix )
|
||||
}}
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="{{prefix}}static/krane.css" />
|
||||
<title> OVERCHAN </title>
|
||||
</head>
|
||||
<body>
|
||||
<a href="{{prefix}}o/">enter</a>
|
||||
<hr/>
|
||||
<footer>
|
||||
<p class="legal">All posts on this site are the responsibility of the individual poster and not the administration, pursuant to 47 U.S.C. § 230.</p>
|
||||
<p class="legal">To make a DMCA request or report illegal content, please contact the administration</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
37
contrib/templates/placebo/graph_history.mustache
Normal file
37
contrib/templates/placebo/graph_history.mustache
Normal file
@ -0,0 +1,37 @@
|
||||
{{!
|
||||
graph_history.mustache
|
||||
template parameters:
|
||||
- history ( a list of PostEntry instances, see srnd/model.go )
|
||||
|
||||
}}
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"></meta>
|
||||
<link rel="stylesheet" href="{{prefix}}static/site.css" />
|
||||
<link rel="stylesheet" href="{{prefix}}static/user.css" />
|
||||
<title>{{#i18n.Translations}}{{post_history_title}}{{/i18n.Translations}}</title>
|
||||
</head>
|
||||
<body>
|
||||
<td>
|
||||
<table id="history_graph">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{#i18n.Translations}}{{month}}{{/i18n.Translations}}</th>
|
||||
<th>{{#i18n.Translations}}{{posts}}{{/i18n.Translations}}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#history.Scale}}
|
||||
<tr>
|
||||
<td>{{Date}}</td>
|
||||
<td class="history_num">{{Num}}</td>
|
||||
<td>{{OvercockGraph}}</td>
|
||||
</tr>
|
||||
{{/history.Scale}}
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</body>
|
||||
</html>
|
64
contrib/templates/placebo/inst_api.mustache
Normal file
64
contrib/templates/placebo/inst_api.mustache
Normal file
@ -0,0 +1,64 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="initial-scale=1" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/site.css" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/user.css" />
|
||||
<script type="text/javascript" src="{{board.Prefix}}static/nntpchan.js"></script>
|
||||
<title>{{#i18n.Translations}}{{api_install_title}}{{/i18n.Translations}}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="installer_header">{{#i18n.Translations}}{{api_install_title}}{{/i18n.Translations}}</div>
|
||||
{{#dialog.HasError}}
|
||||
<p class="installer_error">{{dialog.Error}}</p>
|
||||
{{/dialog.HasError}}
|
||||
<form action="" method="post" autocomplete="off">
|
||||
<div id="install-outer">
|
||||
<div id="installer-inner">
|
||||
<table class="installer-tab">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{api_username}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="user" value="{{dialog.User}}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{api_password_name}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="password" name="pass" value="">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{api_secret_name}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="secret" value="{{dialog.Secret}}">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{{#dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{next_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
{{^dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{finish_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
</div>
|
||||
</form>
|
||||
{{#dialog.HasPrevious}}
|
||||
<div class="back_button">
|
||||
<form action="" method="post">
|
||||
<input type="hidden" name="back" value="true" />
|
||||
<input type="submit" value="{{#i18n.Translations}}{{previous_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
</form>
|
||||
</div>
|
||||
{{/dialog.HasPrevious}}
|
||||
</body>
|
||||
</html>
|
64
contrib/templates/placebo/inst_bins.mustache
Normal file
64
contrib/templates/placebo/inst_bins.mustache
Normal file
@ -0,0 +1,64 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="initial-scale=1" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/site.css" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/user.css" />
|
||||
<script type="text/javascript" src="{{board.Prefix}}static/nntpchan.js"></script>
|
||||
<title>{{#i18n.Translations}}{{binary_install_title}}{{/i18n.Translations}}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="installer_header">{{#i18n.Translations}}{{binary_install_title}}{{/i18n.Translations}}</div>
|
||||
{{#dialog.HasError}}
|
||||
<p class="installer_error">{{dialog.Error}}</p>
|
||||
{{/dialog.HasError}}
|
||||
<form action="" method="post" autocomplete="off">
|
||||
<div id="install-outer">
|
||||
<div id="installer-inner">
|
||||
<table class="installer-tab">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{convert_prompt}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="convert" value="{{dialog.Convert}}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{ffmpeg_prompt}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="ffmpeg" value="{{dialog.FFmpeg}}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{sox_prompt}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="sox" value="{{dialog.Sox}}">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{{#dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{next_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
{{^dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{finish_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
</div>
|
||||
</form>
|
||||
{{#dialog.HasPrevious}}
|
||||
<div class="back_button">
|
||||
<form action="" method="post">
|
||||
<input type="hidden" name="back" value="true" />
|
||||
<input type="submit" value="{{#i18n.Translations}}{{previous_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
</form>
|
||||
</div>
|
||||
{{/dialog.HasPrevious}}
|
||||
</body>
|
||||
</html>
|
66
contrib/templates/placebo/inst_cache.mustache
Normal file
66
contrib/templates/placebo/inst_cache.mustache
Normal file
@ -0,0 +1,66 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="initial-scale=1" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/site.css" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/user.css" />
|
||||
<script type="text/javascript" src="{{board.Prefix}}static/nntpchan.js"></script>
|
||||
<title>{{#i18n.Translations}}{{cache_install_title}}{{/i18n.Translations}}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="installer_header">{{#i18n.Translations}}{{cache_install_title}}{{/i18n.Translations}}</div>
|
||||
{{#dialog.HasError}}
|
||||
<p class="installer_error">{{dialog.Error}}</p>
|
||||
{{/dialog.HasError}}
|
||||
<form action="" method="post">
|
||||
<div id="install-outer">
|
||||
<div id="installer-inner">
|
||||
<table class="installer-tab">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>
|
||||
|
||||
</th>
|
||||
<td>
|
||||
<input type="radio" name="cache" value="file"> {{#i18n.Translations}}{{file_cache_name}}{{/i18n.Translations}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
|
||||
</th>
|
||||
<td>
|
||||
<input type="radio" name="cache" value="null" checked> {{#i18n.Translations}}{{null_cache_name}}{{/i18n.Translations}}
|
||||
</td>
|
||||
</tr>
|
||||
<!--
|
||||
<tr>
|
||||
<th>
|
||||
|
||||
</th>
|
||||
<td>
|
||||
<input type="radio" name="cache" value="redis"> {{#i18n.Translations}}{{redis_cache_name}}{{/i18n.Translations}}
|
||||
</td>
|
||||
</tr>
|
||||
-->
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{{#dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{next_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
{{^dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{finish_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
</div>
|
||||
</form>
|
||||
{{#dialog.HasPrevious}}
|
||||
<div class="back_button">
|
||||
<form action="" method="post">
|
||||
<input type="hidden" name="back" value="true" />
|
||||
<input type="submit" value="{{#i18n.Translations}}{{previous_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
</form>
|
||||
</div>
|
||||
{{/dialog.HasPrevious}}
|
||||
</body>
|
||||
</html>
|
56
contrib/templates/placebo/inst_crypto.mustache
Normal file
56
contrib/templates/placebo/inst_crypto.mustache
Normal file
@ -0,0 +1,56 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="initial-scale=1" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/site.css" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/user.css" />
|
||||
<script type="text/javascript" src="{{board.Prefix}}static/nntpchan.js"></script>
|
||||
<title>{{#i18n.Translations}}{{crypto_install_title}}{{/i18n.Translations}}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="installer_header">{{#i18n.Translations}}{{crypto_install_title}}{{/i18n.Translations}}</div>
|
||||
{{#dialog.HasError}}
|
||||
<p class="installer_error">{{dialog.Error}}</p>
|
||||
{{/dialog.HasError}}
|
||||
<form action="" method="post" autocomplete="off">
|
||||
<div id="install-outer">
|
||||
<div id="installer-inner">
|
||||
<table class="installer-tab">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{host_name}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="host" value="{{dialog.Host}}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{key_name}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="key" value="{{dialog.Key}}">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{{#dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{next_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
{{^dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{finish_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
</div>
|
||||
</form>
|
||||
{{#dialog.HasPrevious}}
|
||||
<div class="back_button">
|
||||
<form action="" method="post">
|
||||
<input type="hidden" name="back" value="true" />
|
||||
<input type="submit" value="{{#i18n.Translations}}{{previous_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
</form>
|
||||
</div>
|
||||
{{/dialog.HasPrevious}}
|
||||
</body>
|
||||
</html>
|
56
contrib/templates/placebo/inst_db.mustache
Normal file
56
contrib/templates/placebo/inst_db.mustache
Normal file
@ -0,0 +1,56 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="initial-scale=1" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/site.css" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/user.css" />
|
||||
<script type="text/javascript" src="{{board.Prefix}}static/nntpchan.js"></script>
|
||||
<title>{{#i18n.Translations}}{{db_install_title}}{{/i18n.Translations}}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="installer_header">{{#i18n.Translations}}{{db_install_title}}{{/i18n.Translations}}</div>
|
||||
{{#dialog.HasError}}
|
||||
<p class="installer_error">{{dialog.Error}}</p>
|
||||
{{/dialog.HasError}}
|
||||
<form action="" method="post">
|
||||
<div id="install-outer">
|
||||
<div id="installer-inner">
|
||||
<table class="installer-tab">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>
|
||||
|
||||
</th>
|
||||
<td>
|
||||
<input type="radio" name="db" value="postgres" checked> {{#i18n.Translations}}{{postgres_name}}{{/i18n.Translations}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
|
||||
</th>
|
||||
<td>
|
||||
<input type="radio" name="db" value="redis" > {{#i18n.Translations}}{{redis_name}}{{/i18n.Translations}}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{{#dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{next_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
{{^dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{finish_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
</div>
|
||||
</form>
|
||||
{{#dialog.HasPrevious}}
|
||||
<div class="back_button">
|
||||
<form action="" method="post">
|
||||
<input type="hidden" name="back" value="true" />
|
||||
<input type="submit" value="{{#i18n.Translations}}{{previous_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
</form>
|
||||
</div>
|
||||
{{/dialog.HasPrevious}}
|
||||
</body>
|
||||
</html>
|
72
contrib/templates/placebo/inst_frontend.mustache
Normal file
72
contrib/templates/placebo/inst_frontend.mustache
Normal file
@ -0,0 +1,72 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="initial-scale=1" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/site.css" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/user.css" />
|
||||
<script type="text/javascript" src="{{board.Prefix}}static/nntpchan.js"></script>
|
||||
<title>{{#i18n.Translations}}{{frontend_install_title}}{{/i18n.Translations}}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="installer_header">{{#i18n.Translations}}{{frontend_install_title}}{{/i18n.Translations}}</div>
|
||||
{{#dialog.HasError}}
|
||||
<p class="installer_error">{{dialog.Error}}</p>
|
||||
{{/dialog.HasError}}
|
||||
<form action="" method="post" autocomplete="off">
|
||||
<div id="install-outer">
|
||||
<div id="installer-inner">
|
||||
<table class="installer-tab">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{frontend_name}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="name" value="{{dialog.Name}}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{locale_name}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="locale" value="{{dialog.Locale}}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{allow_files_prompt}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="checkbox" name="allow_files" value="1" checked>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{enable_json_prompt}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="checkbox" name="json" value="1">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{{#dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{next_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
{{^dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{finish_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
</div>
|
||||
</form>
|
||||
{{#dialog.HasPrevious}}
|
||||
<div class="back_button">
|
||||
<form action="" method="post">
|
||||
<input type="hidden" name="back" value="true" />
|
||||
<input type="submit" value="{{#i18n.Translations}}{{previous_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
</form>
|
||||
</div>
|
||||
{{/dialog.HasPrevious}}
|
||||
</body>
|
||||
</html>
|
56
contrib/templates/placebo/inst_key.mustache
Normal file
56
contrib/templates/placebo/inst_key.mustache
Normal file
@ -0,0 +1,56 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="initial-scale=1" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/site.css" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/user.css" />
|
||||
<script type="text/javascript" src="{{board.Prefix}}static/nntpchan.js"></script>
|
||||
<title>{{#i18n.Translations}}{{key_install_title}}{{/i18n.Translations}}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="installer_header">{{#i18n.Translations}}{{key_install_title}}{{/i18n.Translations}}</div>
|
||||
{{#dialog.HasError}}
|
||||
<p class="installer_error">{{dialog.Error}}</p>
|
||||
{{/dialog.HasError}}
|
||||
<form action="" method="post" autocomplete="off">
|
||||
<div id="install-outer">
|
||||
<div id="installer-inner">
|
||||
<table class="installer-tab">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{pubkey_name}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="public" value="{{dialog.Public}}" size="65" readonly>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{secretkey_name}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="secret" value="{{dialog.Secret}}" size="65" readonly>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{{#dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{next_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
{{^dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{finish_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
</div>
|
||||
</form>
|
||||
{{#dialog.HasPrevious}}
|
||||
<div class="back_button">
|
||||
<form action="" method="post">
|
||||
<input type="hidden" name="back" value="true" />
|
||||
<input type="submit" value="{{#i18n.Translations}}{{previous_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
</form>
|
||||
</div>
|
||||
{{/dialog.HasPrevious}}
|
||||
</body>
|
||||
</html>
|
80
contrib/templates/placebo/inst_nntp.mustache
Normal file
80
contrib/templates/placebo/inst_nntp.mustache
Normal file
@ -0,0 +1,80 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="initial-scale=1" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/site.css" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/user.css" />
|
||||
<script type="text/javascript" src="{{board.Prefix}}static/nntpchan.js"></script>
|
||||
<title>{{#i18n.Translations}}{{nntp_install_title}}{{/i18n.Translations}}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="installer_header">{{#i18n.Translations}}{{nntp_install_title}}{{/i18n.Translations}}</div>
|
||||
{{#dialog.HasError}}
|
||||
<p class="installer_error">{{dialog.Error}}</p>
|
||||
{{/dialog.HasError}}
|
||||
<form action="" method="post" autocomplete="off">
|
||||
<div id="install-outer">
|
||||
<div id="installer-inner">
|
||||
<table class="installer-tab">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{nntp_name}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="nntp_name" value="{{dialog.Name}}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{allow_attachments_prompt}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="checkbox" name="allow_attachments" value="1" checked>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{allow_anon_prompt}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="checkbox" name="allow_anon" value="1" checked>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{allow_anon_attachments_prompt}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="checkbox" name="allow_anon_attachments" value="1">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{require_tls_prompt}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="checkbox" name="require_tls" value="1" checked>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{{#dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{next_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
{{^dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{finish_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
</div>
|
||||
</form>
|
||||
{{#dialog.HasPrevious}}
|
||||
<div class="back_button">
|
||||
<form action="" method="post">
|
||||
<input type="hidden" name="back" value="true" />
|
||||
<input type="submit" value="{{#i18n.Translations}}{{previous_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
</form>
|
||||
</div>
|
||||
{{/dialog.HasPrevious}}
|
||||
</body>
|
||||
</html>
|
72
contrib/templates/placebo/inst_postgres_db.mustache
Normal file
72
contrib/templates/placebo/inst_postgres_db.mustache
Normal file
@ -0,0 +1,72 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="initial-scale=1" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/site.css" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/user.css" />
|
||||
<script type="text/javascript" src="{{board.Prefix}}static/nntpchan.js"></script>
|
||||
<title>{{#i18n.Translations}}{{postgres_db_install_title}}{{/i18n.Translations}}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="installer_header">{{#i18n.Translations}}{{postgres_db_install_title}}{{/i18n.Translations}}</div>
|
||||
{{#dialog.HasError}}
|
||||
<p class="installer_error">{{dialog.Error}}</p>
|
||||
{{/dialog.HasError}}
|
||||
<form action="" method="post" autocomplete="off">
|
||||
<div id="install-outer">
|
||||
<div id="installer-inner">
|
||||
<table class="installer-tab">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{host_name}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="host" value="{{dialog.Host}}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{port_name}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="port" value="{{dialog.Port}}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{username_name}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="user" value="{{dialog.Username}}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{password_name}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="password" name="password" value="">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{{#dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{next_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
{{^dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{finish_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
</div>
|
||||
</form>
|
||||
{{#dialog.HasPrevious}}
|
||||
<div class="back_button">
|
||||
<form action="" method="post">
|
||||
<input type="hidden" name="back" value="true" />
|
||||
<input type="submit" value="{{#i18n.Translations}}{{previous_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
</form>
|
||||
</div>
|
||||
{{/dialog.HasPrevious}}
|
||||
</body>
|
||||
</html>
|
64
contrib/templates/placebo/inst_redis_cache.mustache
Normal file
64
contrib/templates/placebo/inst_redis_cache.mustache
Normal file
@ -0,0 +1,64 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="initial-scale=1" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/site.css" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/user.css" />
|
||||
<script type="text/javascript" src="{{board.Prefix}}static/nntpchan.js"></script>
|
||||
<title>{{#i18n.Translations}}{{redis_db_install_title}}{{/i18n.Translations}}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="installer_header">{{#i18n.Translations}}{{redis_db_install_title}}{{/i18n.Translations}}</div>
|
||||
{{#dialog.HasError}}
|
||||
<p class="installer_error">{{dialog.Error}}</p>
|
||||
{{/dialog.HasError}}
|
||||
<form action="" method="post" autocomplete="off">
|
||||
<div id="install-outer">
|
||||
<div id="installer-inner">
|
||||
<table class="installer-tab">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{host_name}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="host" value="{{dialog.Host}}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{port_name}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="port" value="{{dialog.Port}}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{password_name}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="password" name="password" value="">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{{#dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{next_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
{{^dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{finish_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
</div>
|
||||
</form>
|
||||
{{#dialog.HasPrevious}}
|
||||
<div class="back_button">
|
||||
<form action="" method="post">
|
||||
<input type="hidden" name="back" value="true" />
|
||||
<input type="submit" value="{{#i18n.Translations}}{{previous_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
</form>
|
||||
</div>
|
||||
{{/dialog.HasPrevious}}
|
||||
</body>
|
||||
</html>
|
64
contrib/templates/placebo/inst_redis_db.mustache
Normal file
64
contrib/templates/placebo/inst_redis_db.mustache
Normal file
@ -0,0 +1,64 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="initial-scale=1" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/site.css" />
|
||||
<link rel="stylesheet" href="{{board.Prefix}}static/user.css" />
|
||||
<script type="text/javascript" src="{{board.Prefix}}static/nntpchan.js"></script>
|
||||
<title>{{#i18n.Translations}}{{redis_db_install_title}}{{/i18n.Translations}}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="installer_header">{{#i18n.Translations}}{{redis_db_install_title}}{{/i18n.Translations}}</div>
|
||||
{{#dialog.HasError}}
|
||||
<p class="installer_error">{{dialog.Error}}</p>
|
||||
{{/dialog.HasError}}
|
||||
<form action="" method="post" autocomplete="off">
|
||||
<div id="install-outer">
|
||||
<div id="installer-inner">
|
||||
<table class="installer-tab">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{host_name}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="host" value="{{dialog.Host}}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{port_name}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="port" value="{{dialog.Port}}">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{password_name}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="password" name="password" value="">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{{#dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{next_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
{{^dialog.HasNext}}
|
||||
<input type="submit" value="{{#i18n.Translations}}{{finish_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
{{/dialog.HasNext}}
|
||||
</div>
|
||||
</form>
|
||||
{{#dialog.HasPrevious}}
|
||||
<div class="back_button">
|
||||
<form action="" method="post">
|
||||
<input type="hidden" name="back" value="true" />
|
||||
<input type="submit" value="{{#i18n.Translations}}{{previous_prompt}}{{/i18n.Translations}}" class="button" />
|
||||
</form>
|
||||
</div>
|
||||
{{/dialog.HasPrevious}}
|
||||
</body>
|
||||
</html>
|
23
contrib/templates/placebo/keygen.mustache
Normal file
23
contrib/templates/placebo/keygen.mustache
Normal file
@ -0,0 +1,23 @@
|
||||
{{!
|
||||
keygen.mustache -- page containing a newly generated tripcode
|
||||
template parameters:
|
||||
- prefix ( the site prefix )
|
||||
- public ( the public key in hex )
|
||||
- secret ( the secret key in hex )
|
||||
- tripcode ( html version of the public key )
|
||||
}}
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"></meta>
|
||||
<link rel="stylesheet" href="{{prefix}}static/site.css" />
|
||||
<link id="current_theme" rel="stylesheet" href="{{prefix}}static/user.css" />
|
||||
<script type="text/javascript" src="{{prefix}}static/nntpchan.js"></script>
|
||||
<title>{{#i18n.Translations}}{{new_tripcode_title}}{{/i18n.Translations}}</title>
|
||||
</head>
|
||||
<body>
|
||||
<pre>{{#i18n.Translations}}{{new_tripcode_label}}{{/i18n.Translations}}:
|
||||
<div id="secret_key">{{#i18n.Translations}}{{secret_key}}{{/i18n.Translations}}: {{secret}}</div><div id="public_key">{{#i18n.Translations}}{{public_key}}{{/i18n.Translations}}: {{public}}</div><div>{{#i18n.Translations}}{{tripcode}}{{/i18n.Translations}}: <span class="tripcode" id="capcode_key">{{{tripcode}}}</span></div>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
32
contrib/templates/placebo/live.mustache
Normal file
32
contrib/templates/placebo/live.mustache
Normal file
@ -0,0 +1,32 @@
|
||||
{{!
|
||||
live.mustache -- live ui
|
||||
template parameters:
|
||||
- prefix ( site prefix )
|
||||
}}
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title> {{#i18n.Translations}}{{overboard_title}}{{/i18n.Translations}} </title>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="initial-scale = 1.0,maximum-scale = 1.0" />
|
||||
<link rel="stylesheet" href="{{prefix}}static/livechan.css" />
|
||||
<link id="current_theme" rel="stylesheet" href="{{prefix}}static/user.css" />
|
||||
<style type="text/css" id="convo_filter">
|
||||
</style>
|
||||
<script type="text/javascript" src="{{prefix}}static/nntpchan.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>you need js for livechan mode</noscript>
|
||||
<script type="text/javascript" >
|
||||
var e = document.createElement("div");
|
||||
e.setAttribute("id", "chat");
|
||||
e.setAttribute("style", "position:fixed;left:0;right:0;top:0;bottom:0;width:100%;height:100%;");
|
||||
document.body.appendChild(e);
|
||||
var board = "";
|
||||
if (location.hash != "" ) {
|
||||
board = location.hash.substr(1);
|
||||
}
|
||||
new Chat(e, board, { prefix : "{{prefix}}" });
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
49
contrib/templates/placebo/modfeed.mustache
Normal file
49
contrib/templates/placebo/modfeed.mustache
Normal file
@ -0,0 +1,49 @@
|
||||
{{!
|
||||
modpage.mustache -- the moderator panel when logged in
|
||||
template parameters:
|
||||
- prefix ( the site's prefix )
|
||||
|
||||
}}
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="{{prefix}}static/site.css" />
|
||||
<link id="current_theme" rel="stylesheet" href="{{prefix}}static/user.css" />
|
||||
<!-- yes it uses js -->
|
||||
<script type="text/javascript" src="{{prefix}}static/nntpchan.js"></script>
|
||||
<script type="text/javascript" src="{{prefix}}static/mod.js"></script>
|
||||
<script type="text/javascript" src="{{prefix}}static/feed.js"></script>
|
||||
<title> {{#i18n.Translations}}{{modpage_title}}{{/i18n.Translations}} </title>
|
||||
</head>
|
||||
<body onload="main()">
|
||||
<div id="nntpchan_mod_result"></div>
|
||||
<div class="nntpchan_feed_pane">
|
||||
<pre> Add Feed </pre>
|
||||
<label for="add_feed_host">Host</label>
|
||||
<input id="add_feed_host" />
|
||||
<label for="add_feed_host">Port</label>
|
||||
<input id="add_feed_port" />
|
||||
<label for="add_feed_name">Name</label>
|
||||
<input id="add_feed_name" />
|
||||
<button onclick="nntp_feed_add()">Add</button>
|
||||
</div>
|
||||
<div class="nntpchan_feed_pane">
|
||||
<pre> Remove Feed </pre>
|
||||
<label for="del_feed_name">Name</label>
|
||||
<input id="del_feed_name" />
|
||||
<button onclick="nntp_feed_del()">Remove</button>
|
||||
</div>
|
||||
<div class="nntpchan_feed_pane">
|
||||
<pre> Sync Feeds </pre>
|
||||
<button onclick="nntpchan_admin('feed.sync')">Sync All</button>
|
||||
</div>
|
||||
<div id="nntpchan_feed_result"></div>
|
||||
<div id="nntpchan_feeds"></div>
|
||||
<script>
|
||||
nntp_feed_update();
|
||||
</script>
|
||||
<noscript>
|
||||
<b>{{#i18n.Translations}}{{nojs_info}}{{/i18n.Translations}}</b>
|
||||
</noscript>
|
||||
</body>
|
||||
</html>
|
16
contrib/templates/placebo/modlogin.mustache
Normal file
16
contrib/templates/placebo/modlogin.mustache
Normal file
@ -0,0 +1,16 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="{{prefix}}static/site.css" />
|
||||
<link id="current_theme" rel="stylesheet" href="{{prefix}}static/user.css" />
|
||||
<title>{{#i18n.Translations}}{{login}}{{/i18n.Translations}}</title>
|
||||
</head>
|
||||
<body>
|
||||
<form action="login" method="POST" name="modlogin">
|
||||
<label for="mod_key">{{#i18n.Translations}}{{secret_key}}{{/i18n.Translations}}</label>
|
||||
<input type="password" id="mod_key" name="privkey" />
|
||||
<input type="submit" value="{{#i18n.Translations}}{{login}}{{/i18n.Translations}}" />
|
||||
{{{csrfField}}}
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
20
contrib/templates/placebo/modlogin_result.mustache
Normal file
20
contrib/templates/placebo/modlogin_result.mustache
Normal file
@ -0,0 +1,20 @@
|
||||
{{!
|
||||
modlogin_result.mustache -- shows the result of a login attempt
|
||||
template parameters:
|
||||
- prefix ( the site prefix )
|
||||
- mod_prefix ( the prefix to the mod panel, could be something like https://mod.site.tld/ or /mod/ )
|
||||
- message ( the message returned from the login attempt )
|
||||
- fail ( present if the login failed ) // not yet added
|
||||
}}
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="{{prefix}}static/site.css" />
|
||||
<link rel="stylesheet" href="{{prefix}}static/user.css" />
|
||||
<meta http-equiv="refresh" content="1; {{mod_prefix}}"></meta>
|
||||
<title>{{#i18n.Translations}}{{login}}{{/i18n.Translations}}</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>{{message}}</p>
|
||||
</body>
|
||||
</html>
|
109
contrib/templates/placebo/modpage.mustache
Normal file
109
contrib/templates/placebo/modpage.mustache
Normal file
@ -0,0 +1,109 @@
|
||||
{{!
|
||||
modpage.mustache -- the moderator panel when logged in
|
||||
template parameters:
|
||||
- prefix ( the site's prefix )
|
||||
|
||||
}}
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="{{prefix}}static/site.css" />
|
||||
<link id="current_theme" rel="stylesheet" href="{{prefix}}static/user.css" />
|
||||
<!-- yes it uses js -->
|
||||
<script type="text/javascript" src="{{prefix}}static/nntpchan.js"></script>
|
||||
<script type="text/javascript" src="{{prefix}}static/mod.js"></script>
|
||||
<title> {{#i18n.Translations}}{{modpage_title}}{{/i18n.Translations}} </title>
|
||||
</head>
|
||||
<body onload="main()">
|
||||
<div>
|
||||
<div> {{#i18n.Translations}}{{post_actions_label}}{{/i18n.Translations}} </div>
|
||||
<hr />
|
||||
<div>
|
||||
<label for="nntpchan_mod_target">{{#i18n.Translations}}{{target_label}}{{/i18n.Translations}}</label>
|
||||
<input id="nntpchan_mod_target" type="text" />
|
||||
</div>
|
||||
<div>
|
||||
<button onclick="nntpchan_ban()">{{#i18n.Translations}}{{ban_url_prompt}}{{/i18n.Translations}}</button>
|
||||
<button onclick="nntpchan_delete()">{{#i18n.Translations}}{{delete_url_prompt}}{{/i18n.Translations}}</button>
|
||||
<button onclick="nntpchan_unban()">{{#i18n.Translations}}{{unban_ip_prompt}}{{/i18n.Translations}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<div> {{#i18n.Translations}}{{key_actions_label}}{{/i18n.Translations}} </div>
|
||||
<div>
|
||||
<label for="nntpchan_board_target">{{#i18n.Translations}}{{pubkey_label}}{{/i18n.Translations}}:</label>
|
||||
<input type="text" id="nntpchan_key_target" />
|
||||
</div>
|
||||
<div>
|
||||
<button onclick="nntpchan_key_add()">{{#i18n.Translations}}{{add_key_prompt}}{{/i18n.Translations}}</button>
|
||||
<button onclick="nntpchan_key_del()">{{#i18n.Translations}}{{remove_key_prompt}}{{/i18n.Translations}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<div> {{#i18n.Translations}}{{nntp_login_label}}{{/i18n.Translations}} </div>
|
||||
<div>
|
||||
<label for="nntpchan_nntp_username">{{#i18n.Translations}}{{username}}{{/i18n.Translations}}:</label>
|
||||
<input id="nntpchan_nntp_username" />
|
||||
</div>
|
||||
<div>
|
||||
<label for="nntpchan_nntp_passwd">{{#i18n.Translations}}{{password}}{{/i18n.Translations}}:</label>
|
||||
<input type="password" id="nntpchan_nntp_passwd" />
|
||||
</div>
|
||||
<div>
|
||||
<button onclick="nntpchan_admin_nntp('nntp.login.add')">{{#i18n.Translations}}{{add_user_prompt}}{{/i18n.Translations}}</button>
|
||||
</div>
|
||||
<div>
|
||||
<button onclick="nntpchan_admin_nntp('nntp.login.del')">{{#i18n.Translations}}{{remove_user_prompt}}{{/i18n.Translations}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<div> {{#i18n.Translations}}{{board_actions_label}}{{/i18n.Translations}} </div>
|
||||
<div>
|
||||
<label for="nntpchan_board_target">{{#i18n.Translations}}{{board_name_title}}{{/i18n.Translations}}:</label>
|
||||
<input id="nntpchan_board_target" />
|
||||
</div>
|
||||
<div>
|
||||
<button onclick="nntpchan_admin_board('frontend.add')">{{#i18n.Translations}}{{add_board_prompt}}{{/i18n.Translations}}</button>
|
||||
</div>
|
||||
<div>
|
||||
<button onclick="nntpchan_admin_board('frontend.regen')">{{#i18n.Translations}}{{regenerate_prompt}}{{/i18n.Translations}}</button>
|
||||
</div>
|
||||
<div>
|
||||
<button onclick="nntpchan_admin_board('frontend.ban')">{{#i18n.Translations}}{{ban_prompt}}{{/i18n.Translations}}</button>
|
||||
<button onclick="nntpchan_admin_board('frontend.unban')">{{#i18n.Translations}}{{unban_prompt}}{{/i18n.Translations}}</button>
|
||||
</div>
|
||||
<div>
|
||||
<button onclick="nntpchan_admin_board('frontend.nuke')">{{#i18n.Translations}}{{nuke_prompt}}{{/i18n.Translations}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<div>
|
||||
{{#i18n.Translations}}{{light_actions_label}}{{/i18n.Translations}}
|
||||
</div>
|
||||
<div>
|
||||
<button onclick="nntpchan_admin('template.reload')">{{#i18n.Translations}}{{reload_templates_prompt}}{{/i18n.Translations}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<label>{{#i18n.Translations}}{{heavy_actions_label}}{{/i18n.Translations}}</label>
|
||||
<div>
|
||||
<button onclick="nntpchan_admin('frontend.regen')">{{#i18n.Translations}}{{regenerate_markup_prompt}}{{/i18n.Translations}}</button>
|
||||
<button onclick="nntpchan_admin('thumbnail.regen')">{{#i18n.Translations}}{{regenerate_thumbs_prompt}}{{/i18n.Translations}}</button>
|
||||
<button onclick="nntpchan_admin('feed.sync')">{{#i18n.Translations}}{{feed_sync_prompt}}{{/i18n.Translations}}</button>
|
||||
<button onclick="nntpchan_admin('store.expire')">{{#i18n.Translations}}{{expire_old_prompt}}{{/i18n.Translations}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="{{prefix}}mod/feeds">nntp feed management</a>
|
||||
</div>
|
||||
<div id="nntpchan_mod_result"></div>
|
||||
<noscript>
|
||||
<b>{{#i18n.Translations}}{{nojs_info}}{{/i18n.Translations}}</b>
|
||||
</noscript>
|
||||
</body>
|
||||
</html>
|
56
contrib/templates/placebo/navbar.mustache
Normal file
56
contrib/templates/placebo/navbar.mustache
Normal file
@ -0,0 +1,56 @@
|
||||
{{!
|
||||
navbar.mustache -- element on the top of each nod-mod page
|
||||
|
||||
TODO: make this not suck, have a board list, have board page list
|
||||
|
||||
template parameters:
|
||||
- name ( the name of whatever resource we are on, board/thread )
|
||||
- frontend ( the name of the frontend we are on )
|
||||
- links ( a list of Link Models to display )
|
||||
- prefix ( site prefix )
|
||||
}}
|
||||
<div class="navbar">
|
||||
<span class="navbar-name">
|
||||
<span class="board_title">{{name}}</span>
|
||||
{{#i18n.Translations}}{{navbar_on}}{{/i18n.Translations}}
|
||||
<span class="frontend_title">{{frontend}}</span>
|
||||
</span>
|
||||
<span class="navbar-sep">
|
||||
|
|
||||
</span>
|
||||
<span class="navbar-links">
|
||||
|
||||
<span class="navbar-links-title">
|
||||
Pages:
|
||||
</span>
|
||||
<span class="navbar-link"><a href="{{prefix}}static/search.html">Search</a></span>
|
||||
{{# links }}
|
||||
<span class="navbar-link"><a href="{{LinkURL}}">{{Text}}</a></span>
|
||||
{{/ links }}
|
||||
</span>
|
||||
<span class="navbar-sep">
|
||||
|
|
||||
</span>
|
||||
<span class="navbar-links">
|
||||
<span class="navbar-link"><a href="{{prefix}}">{{#i18n.Translations}}{{front_page_title}}{{/i18n.Translations}}</a></span>
|
||||
</span>
|
||||
<span class="navbar-sep">
|
||||
|
|
||||
</span>
|
||||
<span class="navbar-links">
|
||||
<span class="navbar-link"><a href="{{prefix}}o/">{{#i18n.Translations}}{{overboard_title}}{{/i18n.Translations}}</a></span>
|
||||
</span>
|
||||
<span class="navbar-sep">
|
||||
|
|
||||
</span>
|
||||
<span class="navbar-links">
|
||||
<span class="navbar-link"><label onclick="enable_theme('{{prefix}}','bloodgod')">bloodgod</a></span>
|
||||
<span class="navbar-link"><label onclick="enable_theme('{{prefix}}','dayman')">dayman</a></span>
|
||||
<span class="navbar-link"><label onclick="enable_theme('{{prefix}}','tomorrow')">tomorrow</a></span>
|
||||
<span class="navbar-link"><label onclick="enable_theme('{{prefix}}','site')">yotsuba</a></span>
|
||||
</span>
|
||||
<span class="navbar-sep">
|
||||
|
|
||||
</span>
|
||||
</div>
|
||||
<hr />
|
56
contrib/templates/placebo/newboard.mustache
Normal file
56
contrib/templates/placebo/newboard.mustache
Normal file
@ -0,0 +1,56 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>{{#i18n.Translations}}{{new_board_title}}{{/i18n.Translations}}</title>
|
||||
<link rel="stylesheet" href="{{prefix}}static/site.css" />
|
||||
<link rel="stylesheet" href="{{prefix}}static/user.css" />
|
||||
<script type="text/javascript" src="{{prefix}}static/newboard.js">
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p>{{#i18n.Translations}}{{first_post_label}}{{/i18n.Translations}}</p>
|
||||
<hr />
|
||||
<form action="{{prefix}}post/" enctype="multipart/form-data" name="post" method="post" id="postform" >
|
||||
<div id="postform-outer">
|
||||
<div id="postform-inner">
|
||||
<table class="postform">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{board_name_title}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="name" value="" id="boardname" />
|
||||
<button onclick="createBoard()">Create Board</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{comment}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<textarea id="postform_message" name="message" cols=40 rows=5></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{captcha}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<img id="captcha_img" src="{{prefix}}captcha/img" alt="captcha" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{solution}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="captcha" />
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
25
contrib/templates/placebo/overview.mustache
Normal file
25
contrib/templates/placebo/overview.mustache
Normal file
@ -0,0 +1,25 @@
|
||||
{{! overview.mustache
|
||||
paramters:
|
||||
|
||||
- overview (list of PostModels in order of last posted)
|
||||
|
||||
}}
|
||||
|
||||
<table id="overview_graph">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{#i18n.Translations}}{{newsgroup}}{{/i18n.Translations}}</th>
|
||||
<th>{{#i18n.Translations}}{{posted}}{{/i18n.Translations}}</th>
|
||||
<th>{{#i18n.Translations}}{{subject}}{{/i18n.Translations}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#overview}}
|
||||
<tr>
|
||||
<td><a href="{{Prefix}}b/{{Board}}/">{{Board}}</td>
|
||||
<td>{{Date}}</td>
|
||||
<td><a href="{{PostURL}}">{{Truncate.Subject}}</a></td>
|
||||
</tr>
|
||||
{{/overview}}
|
||||
</tbody>
|
||||
</table>
|
37
contrib/templates/placebo/post.mustache
Normal file
37
contrib/templates/placebo/post.mustache
Normal file
@ -0,0 +1,37 @@
|
||||
<div id="{{post.PostHash}}"
|
||||
{{#OP}}
|
||||
class="messageroot"
|
||||
{{/OP}}
|
||||
{{^OP}}
|
||||
class="message"
|
||||
{{/OP}}
|
||||
data-frontend="{{post.Frontend}}"
|
||||
data-newsgroup="{{post.Board}}"
|
||||
data-msgid="{{post.MessageID}}"
|
||||
data-msgidhash="{{post.PostHash}}"
|
||||
data-rootmsgid="{{post.Reference}}"
|
||||
data-rootmsgidhash="{{post.ReferenceHash}}"
|
||||
{{#post.Sage}}
|
||||
data-sage="1"
|
||||
{{/post.Sage}}
|
||||
{{#post.IsI2P}}
|
||||
data-origin="i2p"
|
||||
{{/post.IsI2P}}
|
||||
{{#post.IsTor}}
|
||||
data-origin="tor"
|
||||
{{/post.IsTor}}
|
||||
{{#post.IsClearnet}}
|
||||
data-origin="clearnet"
|
||||
{{/post.IsClearnet}}
|
||||
data-posturl="{{post.PostURL}}">
|
||||
{{#post.Attachments}}
|
||||
<a href="{{Source}}" class="image_link" target="_blank" title="{{Filename}}"><img src="{{Thumbnail}}" class="image" /></a>
|
||||
{{/post.Attachments}}
|
||||
<a name="{{post.PostHash}}"></a><span class="topicline"><b>{{post.subject}}</b> {{post.Name}} <span class="published">{{post.Posted}}</span> <a href="{{post.PostURL}}" onclick="return '>>{{post.ShortHash}}';">№</a>
|
||||
<a href="{{post.PostURL}}" onclick="return quickreply('${articlehash}', '${articlehash_full}');">№ {{post.ShortHash}}</a>
|
||||
</span>
|
||||
<span class="frontend"> {{post.MessageID}} </span>
|
||||
<br /><br />
|
||||
<span class="message_span">{{post.RenderBodyPre}}</span>
|
||||
<br style="clear: both;" />
|
||||
</div>
|
11
contrib/templates/placebo/post_fail.mustache
Normal file
11
contrib/templates/placebo/post_fail.mustache
Normal file
@ -0,0 +1,11 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="{{prefix}}static/site.css" />
|
||||
<link id="current_theme" rel="stylesheet" href="{{prefix}}static/user.css" />
|
||||
<script type="text/javascript" src="{{prefix}}static/nntpchan.js"></script>
|
||||
<meta http-equiv="refresh" content="5; {{redirect_url}}" />
|
||||
<body>
|
||||
<pre>{{#i18n.Translations}}{{post_failed_label}}{{/i18n.Translations}}: {{reason}}</pre>
|
||||
</body>
|
||||
</html>
|
49
contrib/templates/placebo/post_retry.mustache
Normal file
49
contrib/templates/placebo/post_retry.mustache
Normal file
@ -0,0 +1,49 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title> try again </title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="{{prefix}}static/site.css" />
|
||||
<link rel="stylesheet" href="{{prefix}}static/user.css" />
|
||||
</head>
|
||||
<body>
|
||||
<form enctype="multipart/form-data" name="post" method="post">
|
||||
{{#attachment}}
|
||||
<input type="hidden" name="attachment_data" value="{{attachment}}" />
|
||||
<input type="hidden" name="attachment_filename" value="{{attachment_filename}}" />
|
||||
<input type="hidden" name="attachment_mime" value="{{attachment_type}}" />
|
||||
{{/attachment}}
|
||||
<input type="hidden" name="reference" value="{{reference}}" />
|
||||
<input type="hidden" name="name" value="{{name}}" />
|
||||
<input type="hidden" name="subject" value="{{subject}}" />
|
||||
<input type="hidden" name="captcha_id" value="{{captcha_id}}" />
|
||||
<input type="hidden" name="message" value="{{message}}" />
|
||||
<div id="postform-outer">
|
||||
<div id="postform-inner">
|
||||
<div>{{fail_message}}</div>
|
||||
<table class="postform">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{captcha}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<img id="captcha_img" src="{{prefix}}captcha/{{captcha_id}}.png" alt="captcha" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{solution}}{{/i18n.Translations}}
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="captcha" />
|
||||
<input type="submit" value="Post" class="button" />
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
17
contrib/templates/placebo/post_success.mustache
Normal file
17
contrib/templates/placebo/post_success.mustache
Normal file
@ -0,0 +1,17 @@
|
||||
{{!
|
||||
post_success.mustache -- shown when we do a successful post
|
||||
template parameters:
|
||||
- redirect_url ( the url of the next page we should redirect to )
|
||||
- message_id ( the value of the Message-ID header in the post we made, the truncated sha1 of this is the >>posthash )
|
||||
}}
|
||||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="{{prefix}}static/site.css" />
|
||||
<link id="current_theme" rel="stylesheet" href="{{prefix}}static/user.css" />
|
||||
<script type="text/javascript" src="{{prefix}}static/nntpchan.js"></script>
|
||||
<meta http-equiv="refresh" content="4; {{redirect_url}}" />
|
||||
<body>
|
||||
<pre>{{#i18n.Translations}}{{posted_as_label}}{{/i18n.Translations}} {{message_id}}</pre>
|
||||
</body>
|
||||
</html>
|
42
contrib/templates/placebo/postform.mustache
Normal file
42
contrib/templates/placebo/postform.mustache
Normal file
@ -0,0 +1,42 @@
|
||||
{{!
|
||||
postform.mustache -- the form for posting
|
||||
|
||||
template parameters:
|
||||
- post_url ( the url of the post form )
|
||||
- reference ( the post we are replying to, or empty string if it's an op )
|
||||
- button ( the text for the reply button )
|
||||
- files ( bool, do we allow attachments ? )
|
||||
- csrf ( csrf token )
|
||||
}}
|
||||
<div class="postform" align="center">
|
||||
<form method="POST" action="{{post_url}}" enctype="multipart/form-data">
|
||||
<input type="hidden" name="reference" value="{{reference}}" id="postform_reference"/>
|
||||
<table cellspacing="1" cellpadding="0">
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<td><input type="text" name="name" class="posttext" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Subject</th>
|
||||
<td><input type="text" name="subject" class="posttext" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Comment</th>
|
||||
<td><textarea name="message" class="postarea"></textarea></td>
|
||||
</tr>
|
||||
{{#files}}
|
||||
<tr>
|
||||
<th>File</th>
|
||||
<td>
|
||||
<table cellspacing="0" cellpadding="0" width="100%">
|
||||
<tr>
|
||||
<td><input type="file" name="file" class="postfile" multiple /></td>
|
||||
<td align="right"><input type="submit" value="{{button}}" class="postbutton"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
{{/files}}
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
25
contrib/templates/placebo/posts_graph.mustache
Normal file
25
contrib/templates/placebo/posts_graph.mustache
Normal file
@ -0,0 +1,25 @@
|
||||
{{!
|
||||
posts graph.mustache -- post frequence graph
|
||||
parameters:
|
||||
|
||||
* graph - a postsGraph instance (see srnd/model.go)
|
||||
}}
|
||||
|
||||
<table id="posts_graph">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{#i18n.Translations}}{{day}}{{/i18n.Translations}}</th>
|
||||
<th>{{#i18n.Translations}}{{posts}}{{/i18n.Translations}}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#graph.Scale}}
|
||||
<tr>
|
||||
<td>{{Day}}</td>
|
||||
<td>{{Num}}</td>
|
||||
<td>{{OvercockGraph}}</td>
|
||||
</tr>
|
||||
{{/graph.Scale}}
|
||||
</tbody>
|
||||
</table>
|
44
contrib/templates/placebo/thread.mustache
Normal file
44
contrib/templates/placebo/thread.mustache
Normal file
@ -0,0 +1,44 @@
|
||||
{{!
|
||||
thread.mustache -- renders to a thread-*.html page, shows the entire thread
|
||||
template parameters:
|
||||
- board ( the Board Model of the board this thread was posted in )
|
||||
- thread ( the Thread Model of the current thread being rendered )
|
||||
|
||||
Thread Model attributes:
|
||||
- OP , the Post Model of the original poster
|
||||
- Replies , a list of all the replies or empty if none
|
||||
- Board , the name of the Board this thread is on
|
||||
- BoardURL , the url that points to the board index page
|
||||
}}
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
||||
"http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>{{board.Board}}</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<link rel="stylesheet" href="/static/krane.css" />
|
||||
</head>
|
||||
<body>
|
||||
{{{ board.Navbar }}}
|
||||
<hr />
|
||||
<div class="sitetitle">
|
||||
<h2><a href="{{thread.Prefix}}">OVERCHAN</a></h2>
|
||||
<b>decentralized and distributed</b>
|
||||
</div>
|
||||
<center><b>{{Board.Name}}</b></center>
|
||||
{{{Postform}}}
|
||||
|
||||
<div class="thread">
|
||||
{{{OP.RenderPost}}}
|
||||
{{#Replies}}
|
||||
{{{RenderPost}}}
|
||||
{{/Replies}}
|
||||
</div>
|
||||
<hr style="clear: both;">
|
||||
<hr />
|
||||
<footer>
|
||||
<p class="legal">All posts on this site are the responsibility of the individual poster and not the administration, pursuant to 47 U.S.C. § 230.</p>
|
||||
<p class="legal">To make a DMCA request or report illegal content, please contact the administration</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
34
contrib/templates/placebo/ukko.mustache
Normal file
34
contrib/templates/placebo/ukko.mustache
Normal file
@ -0,0 +1,34 @@
|
||||
{{!
|
||||
ukko.mustache -- overboard, contains the last threads posted regardless of newsgroup
|
||||
template parameters:
|
||||
- prefix ( site prefix )
|
||||
- threads ( a list of Thread Models that represent the latest threads )
|
||||
}}
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
||||
"http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>overboard</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<link rel="stylesheet" href="{{prefix}}static/krane.css" />
|
||||
</head>
|
||||
<body>
|
||||
<hr />
|
||||
<center><b>OVERCHAN</b></center>
|
||||
{{#threads}}
|
||||
<div class="thread">
|
||||
{{{OP.RenderPost}}}
|
||||
{{#Replies}}
|
||||
{{{RenderPost}}}
|
||||
{{/Replies}}
|
||||
</div>
|
||||
<hr style="clear: both;">
|
||||
{{/threads}}
|
||||
<hr />
|
||||
<footer>
|
||||
<p class="legal">All posts on this site are the responsibility of the individual poster and not the administration, pursuant to 47 U.S.C. § 230.</p>
|
||||
<p class="legal">To make a DMCA request or report illegal content, please contact the administration</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user