1
0
mirror of https://github.com/jhillyerd/inbucket.git synced 2026-01-29 06:25:56 +00:00

New directory layout - DOES NOT COMPILE

This commit is contained in:
James Hillyerd
2012-10-20 16:40:25 -07:00
parent 2b3491fc87
commit 3dd0206b48
35 changed files with 16 additions and 18 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 379 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 565 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 B

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,314 @@
/*
Design by Free CSS Templates
http://www.freecsstemplates.org
Released for free under a Creative Commons Attribution 2.5 License
*/
/* Elements */
body {
margin: 20px 0;
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
font-size: 12px;
color: #808080;
}
h1 {
}
h2, h3, h4, h5, h6 {
color: #2582A4;
}
p, ol, ul {
text-align: justify;
}
strong {
font-weight: bold;
color: #808080;
}
a {
color: #87A019;
}
a:hover {
text-decoration: none;
color: #2582A4;
}
.box {
margin-bottom: 0;
padding-bottom: 0;
background: url(/public/images/img07.gif) repeat-x left bottom;
}
.bottom {
display: block;
margin-bottom: 0;
padding-bottom: 10px;
background: url(/public/images/img08.gif) no-repeat left bottom;
}
.image {
float: left;
margin: 3px 0 0 0;
padding: 0;
}
.indent {
margin-left: 125px;
}
/* Header */
#header {
width: 928px;
height: 37px;
margin: 0 auto;
background: #BECF74 url(/public/images/img01.gif) repeat-x;
border-bottom: 3px solid #FFFFFF;
}
/* Menu */
#menu {
float: left;
width: 600px;
height: 37px;
margin: 0;
padding: 0 0 0 10px;
list-style: none;
background: url(/public/images/img02.gif) no-repeat;
}
#menu li {
display: inline;
}
#menu a {
display: block;
float: left;
height: 27px;
padding: 10px 15px 0px 15px;
text-transform: lowercase;
text-decoration: none;
font-size: 12px;
font-weight: bold;
color: #FFFFFF;
}
#menu a:hover {
background: #A4B74C url(/public/images/img04.gif) repeat-x;
}
/* Search */
#search {
float: right;
height: 28px;
margin: 0;
padding: 9px 25px 0 0;
background: url(/public/images/img03.gif) no-repeat right top;
}
#search fieldset {
display: inline;
margin: 0;
padding: 0;
border: none;
}
#input1 {
width: 164px;
padding: 2px 5px;
background: #FFFFFF;
border: none;
}
#input2 {
height: 20px;
background: #87C4DB;
border: none;
text-transform: lowercase;
font-size: 10px;
font-weight: bold;
color: #FFFFFF;
}
/* Content */
#content {
width: 928px;
margin: 0 auto;
}
#colOne {
float: left;
width: 238px;
background: url(/public/images/img05.gif) repeat-x;
}
#colOne h3 {
padding: 0 20px;
}
#colOne ul {
margin-left: 0;
padding-left: 20px;
padding-right: 20px;
list-style: none;
}
#colOne li {
padding: 5px 0;
border-top: 1px solid #EFEFEF;
}
#colOne li.first {
border: none;
}
#colTwo {
float: right;
width: 617px;
padding: 30px 40px 0 30px;
background: url(/public/images/img09.gif) repeat-x;
}
#colTwo h2 {
margin-top: 0;
font-size: 26px;
}
#colTwo h3 {
margin-bottom: 0;
font-size: 18px;
}
#colTwo h4 {
margin-top: 0;
font-size: 11px;
font-weight: normal;
}
#colTwo .box {
margin: 0 -30px 30px -20px;
padding: 0 30px 0 20px;
}
#colTwo .bottom {
margin: 0 0 20px -20px;
padding: 0 0 20px 20px;
}
/* Logo */
#logo {
height: 150px;
background: url(/public/images/img06.gif) no-repeat;
}
#logo h1, #logo h2, #logo a {
margin: 0;
padding: 0;
text-decoration: none;
text-transform: lowercase;
text-align: center;
color: #FFFFFF;
}
#logo h1 {
padding-top: 25px;
font-size: 34px;
}
#logo h2 {
margin-top: -5px;
font-size: 12px;
}
/* Footer */
#footer {
clear: both;
width: 928px;
margin: 0 auto;
padding-top: 40px;
background: url(/public/images/img11.gif) repeat-x;
}
#footer p {
margin: 0;
text-align: center;
}
.listEntry {
color: #909090;
padding: 5px;
}
.listEntry > .subject {
color: #2582A4;
font-weight: bold;
}
.listEntrySelected {
background: #becf74;
color: #666;
}
.listEntryHover {
background: #8ac6dc;
color: #666;
}
#emailContent {
padding-bottom: 20px;
min-height: 300px;
}
#emailHeader {
border-collapse: collapse;
}
#emailHeader th, #emailHeader td {
text-align: left;
padding: 0 3px 3px 0;
}
#emailSubject {
border-bottom: 1px #606060 solid;
margin: 0;
width: 617px;
}
#emailBody {
color: #000000;
margin-top: 15px;
}
#emailActions {
padding: 5px 0;
margin: 0 0 10px 0;
}
#emailActions a {
background: #8ac6dc;
color: #fff;
text-decoration: none;
font-weight: bold;
padding: 5px;
}
#emailActions a:hover {
background: #becf74;
}
.errors {
background-color: #ffa0a0;
color: #333;
padding: 5px 10px;
}

View File

@@ -0,0 +1,15 @@
{{set "title" "Inbucket" .}}
{{template "header.html" .}}
{{template "menu.html" .}}
<div id="colTwo">
{{template "errors.html" .}}
<p>Inbucket is an email testing service; it will accept email for any email
address and make it available to view without a password.</p>
<p>To view email for a particular address, enter the username portion
of the address into the box on the upper right and click <em>go</em>.</p>
</div>
{{template "footer.html" .}}

View File

@@ -0,0 +1 @@
{{.body}}

View File

@@ -0,0 +1,82 @@
{{$title := printf "Inbucket for %v" .name}}
{{set "title" $title .}}
{{template "header.html" .}}
{{$name := .name}}
<script>
function listLoaded() {
$('.listEntry').hover(
function() {
$(this).addClass("listEntryHover")
},
function() {
$(this).removeClass("listEntryHover")
}
).click(
function() {
$('.listEntry').removeClass("listEntrySelected")
$(this).addClass("listEntrySelected")
$('#emailContent').load('/mailbox/show/{{$name}}/' + this.id)
}
)
$("#messageList").slideDown()
}
function loadList() {
$('#messageList').load("/mailbox/list/{{$name}}", listLoaded)
}
function reloadList() {
$('#messageList').hide()
loadList()
}
function listInit() {
$("#messageList").hide()
loadList()
}
function deleteMessage(id) {
$('#emailContent').empty()
$.ajax({
type: 'POST',
url: '/mailbox/delete/{{$name}}/' + id,
success: reloadList
})
}
function htmlView(id) {
window.open('/mailbox/html/{{$name}}/' + id, '_blank',
'width=800,height=600,' +
'menubar=yes,resizable=yes,scrollbars=yes,status=yes,toolbar=yes')
}
function messageSource(id) {
window.open('/mailbox/source/{{$name}}/' + id, '_blank',
'width=800,height=600,' +
'menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no')
}
$(document).ready(listInit)
</script>
<div id="colOne">
<div id="logo">
<h1><a href="#">inbucket</a></h1>
<h2>mail for {{.name}}</h2>
</div>
<div class="box" style="text-align:center; padding-bottom:10px;">
<a href="javascript:reloadList()">Refresh List</a>
</div>
<div id="messageList"></div>
</div>
<div id="colTwo">
{{template "errors.html" .}}
<div id="emailContent">
<p>Select a message at left, or enter a different username into the box on upper right.</p>
</div>
</div>
{{template "footer.html" .}}

View File

@@ -0,0 +1,12 @@
{{$name := .name}}
{{range .messages}}
<div class="box listEntry" id="{{.Id}}">
<div class="subject">{{.Subject}}</div>
<div class="from">{{.From}}</div>
<div class="date">{{friendlyTime .Date}}</div>
</div>
{{else}}
<div class="box">
<p style="height: 30px; padding-left: 10px;">No messages!</p>
</div>
{{end}}

View File

@@ -0,0 +1,21 @@
<div id="emailActions">
<a href="javascript:deleteMessage('{{.message.Id}}');">Delete</a>
<a href="javascript:messageSource('{{.message.Id}}');">Source</a>
{{if .htmlAvailable}}
<a href="javascript:htmlView('{{.message.Id}}');">HTML</a>
{{end}}
</div>
<table id="emailHeader">
<tr>
<th>From:</th>
<td>{{.message.From}}</td>
</tr>
<tr>
<th>Date:</th>
<td>{{.message.Date}}</td>
</tr>
<table>
<div id="emailSubject"><h3>{{.message.Subject}}</h3></div>
<div id="emailBody">{{.body}}</div>

View File

@@ -0,0 +1,10 @@
{{if .errors}}
<div class="errors">
<p>Please fix the following errors and resubmit:<p>
<ul>
{{range .errors}}
<li>{{.Message}}</li>
{{end}}
</ul>
</div>
{{end}}

View File

@@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Not found</title>
</head>
<body>
{{if eq .RunMode "dev"}}
{{template "errors/404-dev.html" .}}
{{else}}
{{with .Error}}
<h1>
{{.Title}}
</h1>
<p>
{{.Description}}
</p>
{{end}}
{{end}}
</body>
</html>

View File

@@ -0,0 +1,16 @@
<!DOCTYPE html>
<html>
<head>
<title>Application error</title>
</head>
<body>
{{if eq .RunMode "dev"}}
{{template "errors/500-dev.html" .}}
{{else}}
<h1>Oops, an error occured</h1>
<p>
This exception has been logged.
</p>
{{end}}
</body>
</html>

View File

@@ -0,0 +1,8 @@
</div>
<div id="footer">
<p>Inbucket is an open source project hosted at
<a href="http://github.com/jhillyerd/inbucket/">github</a>.
Design by <a href="http://www.freecsstemplates.org/">FCT</a>.</p>
</div>
</body>
</html>

View File

@@ -0,0 +1,34 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
Design by Free CSS Templates
http://www.freecsstemplates.org
Released for free under a Creative Commons Attribution 2.5 License
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>{{.title}}</title>
<link href="/public/stylesheets/main.css" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" type="image/png" href="/public/images/favicon.png">
<script src="/public/js/jquery-1.5.2.min.js" type="text/javascript" charset="utf-8"></script>
{{range .moreStyles}}
<link rel="stylesheet" type="text/css" href="/public/{{.}}">
{{end}}
{{range .moreScripts}}
<script src="/public/{{.}}" type="text/javascript" charset="utf-8"></script>
{{end}}
</head>
<body>
<div id="header">
<ul id="menu">
<li><a href="/" accesskey="1" title="">Home</a></li>
<li><a href="/" accesskey="2" title="">About</a></li>
</ul>
<form id="search" action="/mailbox" method="GET">
<fieldset>
<input name="name" type="text" id="input1" />
<input name="submit" type="submit" id="input2" value="Go" />
</fieldset>
</form>
</div>
<div id="content">

View File

@@ -0,0 +1,6 @@
<div id="colOne">
<div id="logo">
<h1><a href="#">inbucket</a></h1>
<h2>email testing service</h2>
</div>
</div>