deleting services feature

This commit is contained in:
Serghei Mihai 2014-05-07 17:17:20 +02:00
parent 6b0e582efd
commit 5d25557bb3
6 changed files with 57 additions and 2 deletions

View File

@ -31,6 +31,7 @@
<div data-service-id="{{ service.Extra.service_id }}"
data-slug="{{ service.slug }}"
{% if service.wants_frequent_checks %}data-wants-check="true"{% endif %}>
<a href="{{ service|delete_url }}" class="delete-service" title="{% trans 'Delete service' %}"></a>
<h3>{{ service.title }}</h3>
{% if not service.is_operational %}
{% if service.wants_frequent_checks %}
@ -44,7 +45,7 @@
{% endif %}
{% endif %}
<p>
<form class="small" method="post" action="{{ service|save_url }}" >
<form class="small" method="post" action=" {{ service|save_url }}" >
{% csrf_token %}
{{ service|as_update_form }}
<button class="enable-on-change" disabled="disabled">{% trans 'Save' %}</button>
@ -85,6 +86,16 @@ $(function() {
$(form).dialog({modal: true, title: title, width: 'auto'});
});
});
$('a.delete-service').click(function() {
var url = $(this).attr('href');
$.get($(this).attr('href'), function(data) {
var form = $(data).find('form');
$(form).dialog({modal: true, title: '{% trans "Service deletion" %}', width: 'auto'});f
});
event.preventDefault();
});
$("div[data-wants-check='true']").each(function(index, element) {
$(element).operational_check();
});

View File

@ -0,0 +1,15 @@
{% extends "hobo/base.html" %}
{% load i18n service %}
{% block content %}
<form action="{{ object|delete_url }}" method="post">
{% csrf_token %}
{% blocktrans with title=object.title %}
Are you sure you want to delete "{{ title }}"?
{% endblocktrans %}
<div>
<input type="submit" value="{% trans 'Yes' %}" >
</div>
</form>
{% endblock %}

View File

@ -14,3 +14,9 @@ def save_url(object):
return reverse_lazy('save-service', kwargs={
'service': object.Extra.service_id,
'slug': object.slug})
@register.filter(name='delete_url')
def delete_url(object):
return reverse_lazy('delete-service', kwargs={
'service': object.Extra.service_id,
'slug': object.slug})

View File

@ -8,6 +8,7 @@ urlpatterns = patterns('',
operational_check_view, name='operational-check'),
url(r'^new-(?P<service>\w+)$', ServiceCreateView.as_view()),
url(r'^save-(?P<service>\w+)/(?P<slug>[\w-]+)$', ServiceUpdateView.as_view(), name='save-service'),
url(r'^delete-(?P<service>\w+)/(?P<slug>[\w-]+)$', ServiceDeleteView.as_view(), name='delete-service'),
url(r'^installed_services.json$', installed_services_json_view),
url(r'^operational_services.json$', operational_services_json_view),
)

View File

@ -5,7 +5,7 @@ from django.conf import settings
from django.core.urlresolvers import reverse_lazy
from django.http import HttpResponse
from django.views.generic.base import TemplateView
from django.views.generic.edit import CreateView, UpdateView
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from .models import Authentic, Wcs, AVAILABLE_SERVICES
from . import forms, utils
@ -92,6 +92,18 @@ class ServiceUpdateView(UpdateView):
return form_class
return None
class ServiceDeleteView(DeleteView):
success_url = reverse_lazy('environment-home')
template_name = 'environment/service_delete_confirm.html'
context_object_name = 'object'
def get_object(self):
service_id = self.kwargs.pop('service')
service_slug = self.kwargs.pop('slug')
for service in AVAILABLE_SERVICES:
if service.Extra.service_id == service_id:
return service.objects.get(slug=service_slug)
return None
def operational_check_view(request, service, slug, **kwargs):
if service == 'wcs':

View File

@ -14,3 +14,13 @@ p.being-deployed {
background: url(indicator.gif) no-repeat;
padding-left: 2em;
}
a.delete-service {
float: right;
text-decoration: none;
}
a.delete-service:after {
font: normal 1.5em FontAwesome;
content:"\f057";
}