Added git push option, Issue #16
This commit is contained in:
parent
562875eadf
commit
34342f09e6
4 changed files with 106 additions and 1 deletions
|
@ -627,10 +627,12 @@ INDEX = Template(r"""<!DOCTYPE html>
|
|||
<ul id="dropdown_gitmenu" class="dropdown-content z-depth-4">
|
||||
<li><a class="modal-trigger" href="#modal_init" class="nowrap waves-effect">git init</a></li>
|
||||
<li><a class="modal-trigger" href="#modal_commit" class="nowrap waves-effect">git commit</a></li>
|
||||
<li><a class="modal-trigger" href="#modal_push" class="nowrap waves-effect">git push</a></li>
|
||||
</ul>
|
||||
<ul id="dropdown_gitmenu_mobile" class="dropdown-content z-depth-4">
|
||||
<li><a class="modal-trigger" href="#modal_init" class="nowrap waves-effect">git init</a></li>
|
||||
<li><a class="modal-trigger" href="#modal_commit" class="nowrap waves-effect">git commit</a></li>
|
||||
<li><a class="modal-trigger" href="#modal_push" class="nowrap waves-effect">git push</a></li>
|
||||
</ul>
|
||||
<div id="modal_components" class="modal bottom-sheet modal-fixed-footer">
|
||||
<div class="modal-content_nopad">
|
||||
|
@ -1214,6 +1216,16 @@ INDEX = Template(r"""<!DOCTYPE html>
|
|||
<a onclick="commit(document.getElementById('commitmessage').value)" class=" modal-action modal-close waves-effect waves-green btn-flat light-blue-text">OK</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="modal_push" class="modal">
|
||||
<div class="modal-content">
|
||||
<h4 class="grey-text text-darken-3">git push<i class="mdi mdi-git right grey-text text-darken-3" style="font-size: 2.48rem;"></i></h4>
|
||||
<p>Are you sure you want to push your commited changes to the configured remote / origin?</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a class=" modal-action modal-close waves-effect waves-red btn-flat light-blue-text">Cancel</a>
|
||||
<a onclick="gitpush()" class=" modal-action modal-close waves-effect waves-green btn-flat light-blue-text">OK</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="modal_close" class="modal">
|
||||
<div class="modal-content">
|
||||
<h4 class="grey-text text-darken-3">Close File<i class="grey-text text-darken-3 material-icons right" style="font-size: 2.28rem;">close</i></h4>
|
||||
|
@ -2473,6 +2485,25 @@ INDEX = Template(r"""<!DOCTYPE html>
|
|||
}
|
||||
}
|
||||
|
||||
function gitpush() {
|
||||
var path = document.getElementById("fbheader").innerHTML;
|
||||
if (path.length > 0) {
|
||||
data = new Object();
|
||||
data.path = path;
|
||||
$.post("api/push", data).done(function(resp) {
|
||||
if (resp.error) {
|
||||
var $toastContent = $("<div><pre>" + resp.message + "\n" + resp.path + "</pre></div>");
|
||||
Materialize.toast($toastContent, 5000);
|
||||
}
|
||||
else {
|
||||
var $toastContent = $("<div><pre>" + resp.message + "</pre></div>");
|
||||
Materialize.toast($toastContent, 2000);
|
||||
listdir(document.getElementById('fbheader').innerHTML);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function checkout(branch) {
|
||||
var path = document.getElementById("fbheader").innerHTML;
|
||||
if (path.length > 0) {
|
||||
|
@ -3357,6 +3388,46 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
LOG.warning("Exception (no repo): %s" % str(err))
|
||||
else:
|
||||
response['message'] = "Missing path or branch"
|
||||
elif req.path == '/api/push':
|
||||
try:
|
||||
postvars = parse_qs(self.rfile.read(length).decode('utf-8'), keep_blank_values=1)
|
||||
except Exception as err:
|
||||
LOG.warning(err)
|
||||
response['message'] = "%s" % (str(err))
|
||||
postvars = {}
|
||||
if 'path' in postvars.keys():
|
||||
if postvars['path']:
|
||||
try:
|
||||
repopath = unquote(postvars['path'][0])
|
||||
response['path'] = repopath
|
||||
try:
|
||||
repo = REPO(repopath)
|
||||
urls = []
|
||||
if repo.remotes:
|
||||
for url in repo.remotes.origin.urls:
|
||||
urls.append(url)
|
||||
if not urls:
|
||||
response['error'] = True
|
||||
response['message'] = "No remotes configured for %s" % repopath
|
||||
else:
|
||||
repo.remotes.origin.push()
|
||||
response['error'] = False
|
||||
response['message'] = "Pushed to %s" % urls[0]
|
||||
self.send_response(200)
|
||||
self.send_header('Content-type', 'text/json')
|
||||
self.end_headers()
|
||||
self.wfile.write(bytes(json.dumps(response), "utf8"))
|
||||
return
|
||||
except Exception as err:
|
||||
response['error'] = True
|
||||
response['message'] = str(err)
|
||||
LOG.warning(response)
|
||||
|
||||
except Exception as err:
|
||||
response['message'] = "Not a git repository: %s" % (str(err))
|
||||
LOG.warning("Exception (no repo): %s" % str(err))
|
||||
else:
|
||||
response['message'] = "Missing path or branch"
|
||||
elif req.path == '/api/newfolder':
|
||||
try:
|
||||
postvars = parse_qs(self.rfile.read(length).decode('utf-8'), keep_blank_values=1)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue