add some git stuff and put ajax in plain js

pull/68/head
Henrique Dias 2016-03-06 12:39:36 +00:00
parent 7c1a1c4f23
commit 8043610590
5 changed files with 146 additions and 46 deletions

File diff suppressed because one or more lines are too long

View File

@ -24,25 +24,29 @@ $(document).on('page:browse', function() {
$('#content').on('submit', remove.selector, function(event) {
event.preventDefault();
$.ajax({
type: 'DELETE',
url: remove.button.data("file")
}).done(function(data) {
$(foreground).fadeOut(200);
remove.form.fadeOut(200);
remove.row.fadeOut(200);
notification({
text: remove.button.data("message"),
type: 'success',
timeout: 5000
});
}).fail(function(data) {
notification({
text: 'Something went wrong.',
type: 'error'
});
console.log(data);
});
var request = new XMLHttpRequest();
request.open("DELETE", remove.button.data("file"));
request.send();
request.onreadystatechange = function() {
if (request.readyState == 4) {
if (request.status == 200) {
$(foreground).fadeOut(200);
remove.form.fadeOut(200);
remove.row.fadeOut(200);
notification({
text: remove.button.data("message"),
type: 'success',
timeout: 5000
});
} else {
notification({
text: 'Something went wrong.',
type: 'error'
});
console.log(request.responseText);
}
}
}
return false;
});
@ -152,32 +156,38 @@ $(document).on('page:browse', function() {
return false;
}
var content = '{"filename": "' + filename + '", "archetype": "' + archetype + '"}';
var content = {
filename: filename,
archetype: archetype
}
$.ajax({
type: 'POST',
url: window.location.pathname,
data: content,
dataType: 'json',
encode: true,
}).done(function(data) {
notification({
text: "File created successfully.",
type: 'success',
timeout: 5000
});
var request = new XMLHttpRequest();
request.open("POST", window.location.pathname);
request.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
request.send(JSON.stringify(content));
request.onreadystatechange = function() {
if (request.readyState == 4) {
if (request.status == 200) {
var data = JSON.parse(request.responseText);
$.pjax({
url: data.Location,
container: '#content'
})
}).fail(function(data) {
notification({
text: 'Something went wrong.',
type: 'error'
});
console.log(data);
});
notification({
text: "File created successfully.",
type: 'success',
timeout: 5000
});
$.pjax({
url: data.Location,
container: '#content'
})
} else {
notification({
text: 'Something went wrong.',
type: 'error'
});
console.log(request.responseText);
}
}
}
return false;
});
@ -253,6 +263,78 @@ $(document).on('page:browse', function() {
return false;
});
/* GIT ACTIONS */
var git = new Object();
git.selector = 'form#git';
git.form = $(git.selector);
git.input = git.selector + ' input[type="text"]';
$('#content').on('click', 'button.git', function(event) {
event.preventDefault();
$(foreground).fadeIn(200);
git.form.fadeIn(200);
return false;
});
$('#content').on('keypress', git.input, function(event) {
if (event.keyCode == 13) {
event.preventDefault();
$(git.form).submit();
return false;
}
});
$('#content').on('submit', git.selector, function(event) {
event.preventDefault();
var value = git.form.find('input[type="text"]').val();
if (value == "") {
notification({
text: "You have to write something. If you want to close the box, click outside of the box.",
type: 'warning',
timeout: 5000
});
return false;
}
var request = new XMLHttpRequest();
request.open("POST", "/admin/git");
request.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
request.send(JSON.stringify({
command: value
}));
/*$.ajax({
type: 'POST',
url: window.location.pathname,
data: content,
dataType: 'json',
encode: true,
}).done(function(data) {
notification({
text: "File created successfully.",
type: 'success',
timeout: 5000
});
$.pjax({
url: data.Location,
container: '#content'
})
}).fail(function(data) {
notification({
text: 'Something went wrong.',
type: 'error'
});
console.log(data);
}); */
return false;
});
/* $(foreground) AND STUFF */
$('#content').on('click', '.close', function(event) {
@ -268,6 +350,7 @@ $(document).on('page:browse', function() {
create.form.fadeOut(200);
rename.form.fadeOut(200);
remove.form.fadeOut(200);
git.form.fadeOut(200);
return false;
});
});

View File

@ -1,6 +1,8 @@
package config
import (
"os"
"path/filepath"
"strings"
"github.com/hacdias/caddy-hugo/hugo"
@ -14,6 +16,7 @@ type Config struct {
Styles string // Admin styles path
Args []string // Hugo arguments
Hugo string // Hugo executable path
Git bool // Is this site a git repository
}
// ParseHugo parses the configuration file
@ -21,6 +24,7 @@ func ParseHugo(c *setup.Controller) (*Config, error) {
conf := &Config{
Public: strings.Replace(c.Root, "./", "", -1),
Path: "./",
Git: false,
}
conf.Hugo = hugo.GetPath()
@ -59,5 +63,9 @@ func ParseHugo(c *setup.Controller) (*Config, error) {
}
}
if _, err := os.Stat(filepath.Join(conf.Path, ".git")); err == nil {
conf.Git = true
}
return conf, nil
}

View File

@ -1,6 +1,6 @@
//go:generate go get github.com/jteeuwen/go-bindata
//go:generate go install github.com/jteeuwen/go-bindata/go-bindata
//go:generate go-bindata -pkg assets -o assets/assets.go templates/ assets/css/ assets/js/ assets/fonts/
//go:generate go-bindata -debug -pkg assets -o assets/assets.go templates/ assets/css/ assets/js/ assets/fonts/
// Package hugo makes the bridge between the static website generator Hugo
// and the webserver Caddy, also providing an administrative user interface.

View File

@ -7,9 +7,9 @@
<span id="site-title">Path: {{ $path }}</span>
<div class="go-right">
<input type="file" value="Upload" multiple>
<!-- <button class="darker"><i class="fa fa-refresh"></i></button> -->
<button id="upload">Upload <i class="fa fa-cloud-upload"></i></button>
<button class="default new">New <i class="fa fa-plus"></i></button>
{{ if .User.Git }}<button class="darker git"><i class="fa fa-git"></i></button>{{ end }}
</div>
</div>
</div>
@ -82,4 +82,13 @@
<input type="submit" value="Rename">
</p>
</form>
<form class="popup hidden" id="git">
<h3>Git</h3>
<p>Write down the <code>git</code> command you want to execute. You don't need to write <code>git</code>.</p>
<input type="text" placeholder="git push origin master">
<p class="right">
<input type="submit" value="Execute">
</p>
</form>
{{ end }}