c + d works

This commit is contained in:
Askill 2019-11-01 20:39:23 +01:00
parent eb712716a6
commit 7b408a9c87
6 changed files with 55 additions and 28 deletions

View File

@ -1,16 +1,4 @@
ares-mon.jopa.dev {
proxy / link1:80
tls ofj@gmail.com
}
{
proxy
tls
}
{
proxy
tls
}
www.jpmatz.de {
proxy / link1:80
tls ofj@gmail.com
@ -18,4 +6,12 @@
ares.jopa.dev {
proxy /site link1:80
tls ofj@gmail.com
}
www.jpmatz.de {
proxy link1:80 link/1
tls dfasfasfsafdsafsd
}
ares-mon.jopa.dev {
proxy / link1:80
tls ofj@gmail.com
}

View File

@ -9,7 +9,7 @@
<link rel="manifest" href="static/site.webmanifest">
<link rel="apple-touch-icon" href="static/icon.png">
<link rel="stylesheet" href="static/css/normalize.css">
<link rel="stylesheet" href="static/css/main.css">
<meta name="theme-color" content="#fafafa">
@ -18,30 +18,30 @@
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootswatch/4.3.1/solar/bootstrap.min.css" crossorigin="anonymous">
<script src="static/js/vendor/modernizr-3.7.1.min.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="static/css/main.css">
</head>
<body onload="loadSites();">
<div class="container " id="main" style="margin-top: 300px">
<div class="container" id="main" style="margin-top: 300px">
<div id="input" class="card float-sm-left border-success lg-3 md-4 sm-2" >
<div class="card-header"><input type="text" class="form-control" id="domain" placeholder="Domain"></div>
<div class="card-header"><input type="text" class="form-control" id="domain" value="www.Domain.com" placeholder="Domain"></div>
<div class="card-body">
<h5 class="card-title">
<input type="text" class="form-control" id="title" placeholder="Title">
<input type="text" class="form-control" id="title" value="Title" placeholder="Title">
</h4>
<h6 class="card-text">
<input type="text" class="form-control" id="target" placeholder="/test">
<input type="text" class="form-control" id="source" placeholder="to:8080">
<input type="text" class="form-control" id="target" value="origin" placeholder="/test">
<input type="text" class="form-control" id="source" value="destination" placeholder="to:8080">
</h6>
<h6 class="card-text">tls:
<input type="text" class="form-control" id="email" value="email@example.com">
<input type="text" class="form-control" id="email" value="self_signed" value="email@example.com">
</h6>
<p class="card-text">
<input type="text" class="form-control" id="description" placeholder="description">
<input type="text" class="form-control" id="description" value="description" placeholder="description">
</p>
<button class="btn btn-primary" onClick="newSite()" id="send">Submit</button>
</div>

10
main.go
View File

@ -57,6 +57,7 @@ func save() {
jsonString, _ := json.Marshal(sites)
ioutil.WriteFile(saveFile, jsonString, 0777)
saveCaddy()
restartCaddy()
}
func saveCaddy() {
@ -71,8 +72,6 @@ func saveCaddy() {
tmpl.Execute(buf, value)
}
fmt.Println("String: ", buf.String())
f, err := os.OpenFile(saveCaddyFile, os.O_CREATE|os.O_WRONLY, 0777)
if err != nil {
log.Fatal(err)
@ -127,9 +126,10 @@ func updateSite(w http.ResponseWriter, r *http.Request) {
delete(sites, id)
var site Site
_ = json.NewDecoder(r.Body).Decode(&site)
fmt.Print(site)
sites[id] = site
json.NewEncoder(w).Encode(site)
fmt.Println("Changed Site:")
fmt.Println(site)
save()
}
@ -141,6 +141,8 @@ func createSite(w http.ResponseWriter, r *http.Request) {
site.Id = newID
sites[newID] = site
json.NewEncoder(w).Encode(site)
fmt.Println("New Site:")
fmt.Println(site)
save()
}
@ -150,6 +152,8 @@ func deleteSite(w http.ResponseWriter, r *http.Request) {
id, _ := strconv.Atoi(params["id"])
delete(sites, id)
json.NewEncoder(w).Encode(true)
fmt.Print("deleted site: ")
fmt.Println(id)
save()
}

View File

@ -1 +1 @@
{"1":{"id":1,"title":"title 1","description":"desc 1","domain":"www.jpmatz.de","source":"/","target":"link1:80","email":"ofj@gmail.com"},"2":{"id":2,"title":"title 2","description":"desc 2","domain":"ares.jopa.dev","source":"/site","target":"link1:80","email":"ofj@gmail.com"},"4":{"id":3,"title":"title 3","description":"desc 3","domain":"ares-mon.jopa.dev","source":"/","target":"link1:80","email":"ofj@gmail.com"},"5":{"id":5,"title":"","description":"","domain":"","source":"","target":"","email":""},"6":{"id":6,"title":"","description":"","domain":"","source":"","target":"","email":""}}
{"1":{"id":1,"title":"title 1","description":"desc 1","domain":"www.jpmatz.de","source":"/","target":"link1:80","email":"ofj@gmail.com"},"2":{"id":2,"title":"title 2","description":"desc 2","domain":"ares.jopa.dev","source":"/site","target":"link1:80","email":"ofj@gmail.com"},"29":{"id":29,"title":"title 2","description":"desc 3452345235345","domain":"www.jpmatz.de","source":"link1:80","target":"link/1","email":"dfasfasfsafdsafsd"},"4":{"id":3,"title":"title 3","description":"desc 3","domain":"ares-mon.jopa.dev","source":"/","target":"link1:80","email":"ofj@gmail.com"}}

View File

@ -1,5 +1,6 @@
.container{
overflow: contain;
width: 80% !important;
}
.card{
@ -8,4 +9,9 @@
float: left;
margin: 20px;
width: 25% !important;
min-width: 200px !important;
}
.btn{
margin:3px !important;
}

View File

@ -27,6 +27,21 @@ var postJSON = function(url, data, callback) {
};
xhr.send(data);
};
var deleteJSON = function(url, data, callback) {
var xhr = new XMLHttpRequest();
xhr.open('DELETE', url + "/" + data, true);
xhr.responseType = 'json';
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onload = function() {
var status = xhr.status;
if (status === 200) {
callback(null, xhr.response);
} else {
callback(status, xhr.response);
}
};
xhr.send();
};
function loadSites(){
getJSON('http://localhost:8000/api/Sites',
@ -46,8 +61,8 @@ function loadSites(){
function renderSite(site){
siteString = `
<div class="card float-sm-left border-success lg-3 md-4 sm-2 rendered" >
<div class="card-header"><a href="https://${site.domain}">${site.domain}</a></div>
<div class="card float-sm-left border-success lg-3 md-4 sm-2 rendered" id="${site.id}" >
<div class="card-header"><a href="https://${site.domain}">${site.domain}</a> </div>
<div class="card-body">
<h4 class="card-title">${site.title}</h4>
@ -55,6 +70,7 @@ function renderSite(site){
<h6 class="card-text">tls: ${site.email}</p>
<p class="card-text">${site.description}</p>
</div>
<button type="button" class="btn btn-outline-warning float-right" onclick="deleteSite('${site.id}')">Delete</button>
</div>
`
document.getElementById("main").innerHTML += siteString;
@ -68,5 +84,10 @@ function newSite(){
json["source"] = document.getElementById('source').value;
json["target"] = document.getElementById('target').value;
json["email"] = document.getElementById('email').value;
postJSON("http://localhost:8000/api/Sites", json, loadSites);
console.log(json);
postJSON("http://localhost:8000/api/Sites", JSON.stringify(json), loadSites);
}
function deleteSite(id){
deleteJSON("http://localhost:8000/api/Sites", id, loadSites)
}