c + d works
This commit is contained in:
parent
eb712716a6
commit
7b408a9c87
20
Caddyfile
20
Caddyfile
|
|
@ -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
|
||||
}
|
||||
18
index.html
18
index.html
|
|
@ -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
10
main.go
|
|
@ -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()
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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"}}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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)
|
||||
}
|
||||
Loading…
Reference in New Issue