import base html core + bootstrap from warren

This commit is contained in:
Dan Ballard 2015-04-28 08:10:40 -07:00
parent 0856527144
commit 9ead50ac3f
25 changed files with 213 additions and 1 deletions

7
css/bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

7
css/jquery-ui.min.css vendored Normal file

File diff suppressed because one or more lines are too long

40
css/signin.css Normal file
View File

@ -0,0 +1,40 @@
body {
padding-top: 40px;
padding-bottom: 40px;
background-color: #eee;
}
.form-signin {
max-width: 330px;
padding: 15px;
margin: 0 auto;
}
.form-signin .form-signin-heading,
.form-signin .checkbox {
margin-bottom: 10px;
}
.form-signin .checkbox {
font-weight: normal;
}
.form-signin .form-control {
position: relative;
height: auto;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 10px;
font-size: 16px;
}
.form-signin .form-control:focus {
z-index: 2;
}
.form-signin input[type="email"] {
margin-bottom: -1px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.form-signin input[type="password"] {
margin-bottom: 10px;
border-top-left-radius: 0;
border-top-right-radius: 0;
}

11
css/template.css Normal file
View File

@ -0,0 +1,11 @@
body {
padding-top: 50px;
}
.starter-template {
padding: 40px 15px;
text-align: center;
}
.col-form .row .col-xs-2 {
text-align: right;
}

6
js/bootstrap.min.js vendored Normal file

File diff suppressed because one or more lines are too long

3
js/funcs.js Normal file
View File

@ -0,0 +1,3 @@
$(document).ready( function () {
$( "#datepicker" ).datepicker();
});

13
js/jquery-ui.min.js vendored Normal file

File diff suppressed because one or more lines are too long

14
js/jquery.confirm.min.js vendored Normal file
View File

@ -0,0 +1,14 @@
/*!
* jquery.confirm
*
* @version 2.3.1
*
* @author My C-Labs
* @author Matthieu Napoli <matthieu@mnapoli.fr>
* @author Russel Vela
* @author Marcus Schwarz <msspamfang@gmx.de>
*
* @license MIT
* @url http://myclabs.github.io/jquery.confirm/
*/
(function($){$.fn.confirm=function(options){if(typeof options==="undefined"){options={}}this.click(function(e){e.preventDefault();var newOptions=$.extend({button:$(this)},options);$.confirm(newOptions,e)});return this};$.confirm=function(options,e){if($(".confirmation-modal").length>0)return;var dataOptions={};if(options.button){var dataOptionsMapping={title:"title",text:"text","confirm-button":"confirmButton","cancel-button":"cancelButton","confirm-button-class":"confirmButtonClass"};$.each(dataOptionsMapping,function(attributeName,optionName){var value=options.button.data(attributeName);if(value){dataOptions[optionName]=value}})}var settings=$.extend({},$.confirm.options,{confirm:function(){var url=e&&("string"===typeof e&&e||e.currentTarget&&e.currentTarget.attributes["href"].value);if(url){if(options.post){var form=$('<form method="post" class="hide" action="'+url+'"></form>');$("body").append(form);form.submit()}else{window.location=url}}},cancel:function(o){},button:null},dataOptions,options);var modalHeader="";if(settings.title!==""){modalHeader="<div class=modal-header>"+'<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>'+'<h4 class="modal-title">'+settings.title+"</h4>"+"</div>"}var modalHTML='<div class="confirmation-modal modal fade" tabindex="-1" role="dialog">'+'<div class="modal-dialog">'+'<div class="modal-content">'+modalHeader+'<div class="modal-body">'+settings.text+"</div>"+'<div class="modal-footer">'+'<button class="confirm btn '+settings.confirmButtonClass+'" type="button" data-dismiss="modal">'+settings.confirmButton+"</button>"+'<button class="cancel btn btn-default" type="button" data-dismiss="modal">'+settings.cancelButton+"</div>"+"</div>"+"</div>"+"</div>"+"</div>";var modal=$(modalHTML);modal.on("shown.bs.modal",function(){modal.find(".btn-primary:first").focus()});modal.on("hidden.bs.modal",function(){modal.remove()});modal.find(".confirm").click(function(){settings.confirm(settings.button)});modal.find(".cancel").click(function(){settings.cancel(settings.button)});$("body").append(modal);modal.modal("show")};$.confirm.options={text:"Are you sure?",title:"",confirmButton:"Yes",cancelButton:"Cancel",post:false,confirmButtonClass:"btn-primary"}})(jQuery);

4
js/jquery.min.js vendored Normal file

File diff suppressed because one or more lines are too long

36
main.go
View File

@ -4,6 +4,8 @@ import (
"encoding/json"
"fmt"
"os"
"database/sql"
_ "github.com/lib/pq"
)
const VERSION = "0.1"
@ -19,6 +21,7 @@ type Config struct {
var (
config Config
db *sql.DB
)
func loadConfig() {
@ -31,10 +34,41 @@ func loadConfig() {
decoder.Decode(&config)
}
func dbConnect() {
var err error
db, err = sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@%s/%s?sslmode=require", config.Sql.Username, config.Sql.Password, config.Sql.Host, config.Sql.Dbname))
if err != nil {
fmt.Println("DB ERROR: ", err)
}
err = db.Ping()
if err != nil {
fmt.Println("DB Error on Ping(): ", err)
os.Exit(-1)
}
}
func initTemplates() {
files, _ := filepath.Glob("templates/pages/*.html")
re := regexp.MustCompile("templates/pages/(.*).html")
fmt.Println("Loading Templates:")
for _, t := range files {
name := re.FindStringSubmatch(t)
fmt.Println(" ", name[1])
var err error
templates[name[1]], err = template.ParseFiles("templates/layout.html", t)
if err != nil {
fmt.Println("Template load error: ", err)
os.Exit(-1)
}
}
}
func main() {
fmt.Println("transmet ", VERSION)
fmt.Println("Loading...")
loadConfig()
db.Close()
}

73
templates/layout.html Normal file
View File

@ -0,0 +1,73 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>transmet</title>
<!-- Bootstrap -->
<link href="/css/bootstrap.min.css" rel="stylesheet">
<link href="/css/jquery-ui.min.css" rel="stylesheet">
<link href="/css/template.css" rel="stylesheet">
<link href="/css/signin.css" rel="stylesheet">
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">MasterTracker</a>
</div>
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<!--<li class="active"><a href="#">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li> -->
</ul>
<ul class="nav navbar-nav navbar-right">
{{if .user}}
<li><a href="/user/edit">{{.user.Displayname}}</a></li>
<li><a href="/logout">Logout</a></li>
{{else}}
<li><a href="/signup">Sign up</a></li>
<li><a href="/login">Log in</a></li>
{{end}}
</ul>
</div>
</div>
</div>
<div class="container">
{{template "body" .}}
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="/js/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="/js/bootstrap.min.js"></script>
<script src="/js/jquery.confirm.min.js"></script>
<script src="/js/jquery-ui.min.js"></script>
<script src="/js/funcs.js"></script>
</body>
</html>
{{define "flashes"}}
<div class="messages">
{{range .flashes.info}}
<div class="alert alert-success" role="alert">Info: {{.}}</div>
{{end}}
{{range .flashes.error}}
<div class="alert alert-danger" role="alert">Error: {{.}}</div>
{{end}}
</div>
{{end}}