Commit 0c894790 by tarokkk

webui: added try-template-button

parent 55d80b6c
......@@ -18,6 +18,7 @@ urlpatterns = patterns('',
url(r'^login/$', 'school.views.login', name='login'),
url(r'^logout/$', 'school.views.logout', name='logout'),
url(r'^vm/new/(?P<template>\d+)/$', 'one.views.vm_new', name='vm_new'),
url(r'^ajax/vm/new/(?P<template>\d+)/$', 'one.views.vm_new_ajax', name='vm_new_ajax'),
url(r'^vm/new/s(?P<share>\d+)/$', 'one.views.vm_new', name='vm_new'),
url(r'^vm/show/(?P<iid>\d+)/$', 'one.views.vm_show', name='vm_show'),
url(r'^vm/delete/(?P<iid>\d+)/$', 'one.views.vm_delete', name='vm_delete'),
......
......@@ -52,6 +52,10 @@ $(function() {
e.stopPropagation();
});
}
$('.try-template-button').click(function(e) {
e.preventDefault(); e.stopPropagation();
new_vm($(this).data('id') );
});
$('.stop-vm-button').click(function(e) {
e.preventDefault(); e.stopPropagation();
stop_vm($(this).data('id'), $(this).data('name'));
......@@ -203,7 +207,7 @@ $(function() {
type: 'POST',
url: '/vm/' + state + '/' + id + '/',
success: function(data, b, c) {
if ( state == "resume" ){
if ( state == "resume"){
window.location.href = '/vm/show/'+id+"/";
}
else {
......@@ -212,6 +216,19 @@ $(function() {
}
})
}
/**
* New VM
*/
function new_vm(template_id) {
$.ajax({
type: 'POST',
url: 'ajax/vm/new/' + template_id + '/',
success: function(data, b, xhrRequest) {
window.location.href = xhrRequest.getResponseHeader("Location");
//alert(xhrRequest.getResponseHeader("Location"));
}
})
}
/**
* Template delete
......
......@@ -9,6 +9,8 @@
<div class="name">{{t.name}}</div>
<div class="status">{{t.state}}</div>
<div class="actions">
<a href="#" class="try-template-button" data-id="{{t.id}}" title="{% trans "Try" %}">
<img src="static/icons/control.png" alt="{% trans "Start" %}"/></a>
<a href="#" title="{% trans "Edit" %}"><img src="/static/icons/pencil.png" alt="{% trans "Edit" %}" /></a>
<a href="#" class="delete-template-button" data-id="{{ t.id }}" data-name="{{ t.name }}" title="{% trans "Remove" %}"><img src="/static/icons/minus-circle.png" alt="{% trans "Remove" %}" /></a>
<a href="#" class="template-share" data-id="{{t.id}}" title="{% trans "Share" %}"><img src="static/icons/user-share.png" alt="{% trans "Share" %}" /></a>
......@@ -59,6 +61,8 @@
<div class="name">{{t.name}}</div>
<div class="status">{{t.state}}</div>
<div class="actions">
<a href="#" class="try-template-button" data-id="{{t.id}}" title="{% trans "Try" %}">
<img src="static/icons/control.png" alt="{% trans "Start" %}"/></a>
<a href="#" class="template-share" data-id="{{t.id}}" {%if group%}data-gid="{{group.id}}"{%endif%} title="{% trans "Share" %}"><img src="static/icons/user-share.png" alt="{% trans "Share" %}" /></a>
</div>
<div class="clear"></div>
......
......@@ -6,7 +6,7 @@ from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User
from django.contrib import messages
from django.core.exceptions import PermissionDenied
from django.core import signing
from django.core import signing, urlresolvers
from django.core.mail import mail_managers, send_mail
from django.db import transaction
from django.forms import ModelForm, Textarea
......@@ -115,7 +115,7 @@ def vm_credentials(request, iid):
vm = get_object_or_404(Instance, pk=iid, owner=request.user)
return render_to_response('vm-credentials.html', RequestContext(request, { 'i' : vm }))
except:
return HttpResponse(_("Could not get Virtual Machine credentials."), code=404)
return HttpResponse(_("Could not get Virtual Machine credentials."), status=404)
messages.error(request, _('Failed to power off virtual machine.'))
class AjaxTemplateWizard(View):
......@@ -189,10 +189,12 @@ def vm_saveas(request, vmid):
messages.success(request, _("Template is being saved..."))
return redirect(inst)
def vm_new_ajax(request, template ):
return vm_new(request, template, redir=False)
@require_POST
@login_required
def vm_new(request, template=None, share=None):
def vm_new(request, template=None, share=None, redir=True):
base = None
extra = None
if template:
......@@ -215,10 +217,15 @@ def vm_new(request, template=None, share=None):
#Gány quota
if share == None or (share != None and share.get_running() < share.instance_limit) or extra:
i = Instance.submit(base, request.user, extra=extra, share=share)
return redirect(i)
if redir:
return redirect(i)
else:
response = HttpResponse("Created", status=201)
response['Location'] = i.get_absolute_url()
return response
except Exception as e:
logger.error('Failed to create virtual machine.' + unicode(e))
messages.error(request, _('Failed to create virtual machine.'))
messages.error(request, _('Failed to create virtual machine.')+unicode(e))
return redirect('/')
class VmListView(ListView):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment