diff --git a/cloud/urls.py b/cloud/urls.py index fb0a879..b45309a 100644 --- a/cloud/urls.py +++ b/cloud/urls.py @@ -37,7 +37,7 @@ urlpatterns = patterns('', url(r'^store/gui/$', 'store.views.gui', name='store_gui'), url(r'^store/top/$', 'store.views.toplist', name='store_top'), url(r'^ajax/templateWizard$', 'one.views.ajax_template_wizard', name='ajax_template_wizard'), - url(r'^ajax/share/(?P<id>\d+)$', 'one.views.ajax_share_wizard', name='ajax_share_wizard'), + url(r'^ajax/share/(?P<id>\d+)/$', 'one.views.ajax_share_wizard', name='ajax_share_wizard'), url(r'^ajax/share/(?P<id>\d+)/(?P<gid>\d+)$', 'one.views.ajax_share_wizard', name='ajax_share_wizard'), url(r'^ajax/template/delete/$', 'one.views.ajax_template_delete', name='ajax_template_delete'), url(r'^ajax/template_name_unique/(?P<name>.*)$', 'one.views.ajax_template_name_unique', name='ajax_template_name_unique'), diff --git a/one/static/cloud.js b/one/static/cloud.js index 32dc3fb..f367adc 100644 --- a/one/static/cloud.js +++ b/one/static/cloud.js @@ -95,7 +95,7 @@ $(function() { }) $('.template-share').click(function(e) { e.preventDefault(); e.stopPropagation(); - $.get('/ajax/share/'+$(this).data('id'), function(data) { + $.get('/ajax/share/'+$(this).data('id')+'/'+$(this).data('gid'), function(data) { $('#modal-container').html(data); }) $('#modal').show(); diff --git a/one/templates/box-templatelist.html b/one/templates/box-templatelist.html index 56301d8..91fb3cd 100644 --- a/one/templates/box-templatelist.html +++ b/one/templates/box-templatelist.html @@ -10,17 +10,19 @@ {% if t.myshares %} <ul> {% for i in t.myshares %} - <li>share {{i.name}} -> {{i.group}}</li> + <li>{{i.name}} -> {{i.group}} ({{i.get_running}}/{{i.instance_limit}} = {{i.get_instance_pc}}%) + <form style="display:inline" action="/vm/unshare/{{i.id}}/" method="post"><input type="submit" value="unshare"/></form> + </li> {% endfor %} {% endif %} </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> + <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> + <a href="#" class="template-share" data-id="{{t.id}}" data-gid="{{group.id}}" title="{% trans "Share" %}"><img src="/static/icons/user-share.png" alt="{% trans "Share" %}" /></a> </div> <div class="clear"></div> </div> @@ -69,8 +71,8 @@ {% if t.myshares %} <ul> {% for i in t.myshares %} - <li>share {{i.name}} -> {{i.group}} - <a href="/vm/unshare/{{i.id}}/">unshare</a> + <li>{{i.name}} -> {{i.group}} ({{i.get_running}}/{{i.instance_limit}} = {{i.get_instance_pc}}%) + <form style="display:inline" action="/vm/unshare/{{i.id}}/" method="post"><input type="submit" value="unshare"/></form> </li> {% endfor %} {% endif %} @@ -79,7 +81,7 @@ <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> + <a href="#" class="template-share" data-id="{{t.id}}" data-gid="{{group.id}}" title="{% trans "Share" %}"><img src="/static/icons/user-share.png" alt="{% trans "Share" %}" /></a> </div> <div class="clear"></div> </div> diff --git a/one/templates/new-share.html b/one/templates/new-share.html index a065612..cd3e1fb 100644 --- a/one/templates/new-share.html +++ b/one/templates/new-share.html @@ -3,6 +3,8 @@ <form action="/ajax/share/{{base.id}}" method="post" id="template-wizard">{% csrf_token %} <div id="new-share" class="wizard"> <h2>{% blocktrans with t=base.name%}Sharing template: {{t}}{% endblocktrans %}</h2> + {% if not group %} + <div class="hilight"> <p>{% trans "Choose a group" %}</p> {% if not groups %} <p class="hilight">{% trans "You have no groups." %}</p> @@ -10,14 +12,18 @@ <ul> <li> <label for="share-group">{% trans "Group" %}</label> - <select name="group"{% if not groups %} disabled=""{%endif%}> + <select id="share-group-select" name="group"{% if not groups %} disabled=""{%endif%}> <option value="" selected="" class="dummy">--</option> {%for i in groups%}<option value="{{i.id}}">{{i.name}} ({{i.members.count}})</option>{%endfor%} </select> <div class="clear"></div> </li> </ul> + </div> <div class="clear"></div> + {% else %} + <input type="hidden" name="group" value="{{group.id}}" /> + {% endif %} <p>{% trans "Change the parameters as needed." %}</p> <ul> <li> @@ -76,12 +82,12 @@ </nav> <script type="text/javascript"> $(function(){ - if ("" == $(":selected this").val()) + if (!$("select#share-group-select :selected").val()) $('#new-share input[type=submit]').attr("disabled", "") else $('#new-share input[type=submit]').removeAttr("disabled") - $('#new-share select').change(function(e) { - if ("" == $(":selected this").val()) + $('#new-share select#share-group-select').change(function(e) { + if (!$(":selected", this).val()) $('#new-share input[type=submit]').attr("disabled", "") else $('#new-share input[type=submit]').removeAttr("disabled") diff --git a/one/views.py b/one/views.py index df625fc..621cfab 100644 --- a/one/views.py +++ b/one/views.py @@ -173,7 +173,7 @@ class AjaxShareWizard(View): type=stype, instance_limit=il, per_user_limit=request.POST['per_user_limit'], group=group, template=base) messages.success(request, _('Successfully shared %s.') % base) - return redirect('/') + return redirect(group) ajax_share_wizard = login_required(AjaxShareWizard.as_view())