mirror of
				https://github.com/retspen/webvirtcloud
				synced 2025-07-31 12:41:08 +00:00 
			
		
		
		
	Add 'Adding, deleting and detaching disk volumes' to instances
This commit is contained in:
		
							parent
							
								
									8f5cc5755a
								
							
						
					
					
						commit
						ea5e9cfead
					
				
					 4 changed files with 123 additions and 92 deletions
				
			
		| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
{% load i18n %}
 | 
			
		||||
{% if request.user.is_superuser and status == 5 %}
 | 
			
		||||
{% if request.user.is_superuser %}
 | 
			
		||||
<a href="#addvol" type="button" class="btn btn-success pull-right" data-toggle="modal">
 | 
			
		||||
    <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
 | 
			
		||||
</a>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -342,11 +342,6 @@
 | 
			
		|||
                                                    {% trans "Resize Instance" %}
 | 
			
		||||
                                                </a>
 | 
			
		||||
                                            </li>
 | 
			
		||||
                                            <li role="presentation">
 | 
			
		||||
                                                <a href="#addvolume" aria-controls="addvolume" role="tab" data-toggle="tab">
 | 
			
		||||
                                                    {% trans "Add New Volume" %}
 | 
			
		||||
                                                </a>
 | 
			
		||||
                                            </li>
 | 
			
		||||
                                        </ul>
 | 
			
		||||
                                        <!-- Tab panes -->
 | 
			
		||||
                                        <div class="tab-content">
 | 
			
		||||
| 
						 | 
				
			
			@ -428,81 +423,7 @@
 | 
			
		|||
                                                {% endif %}
 | 
			
		||||
                                                <div class="clearfix"></div>
 | 
			
		||||
                                            </div>
 | 
			
		||||
                                            <div role="tabpanel" class="tab-pane tab-pane-bordered" id="addvolume">
 | 
			
		||||
                                                {% if request.user.is_superuser or userinstance.is_change %}
 | 
			
		||||
                                                    <form class="form-horizontal" method="post" role="form">{% csrf_token %}
 | 
			
		||||
                                                        <p style="font-weight:bold;">{% trans "Volume parameters" %}</p>
 | 
			
		||||
                                                        <div class="form-group">
 | 
			
		||||
                                                            <label class="col-sm-3 control-label" style="font-weight:normal;">{% trans "Storage" %}</label>
 | 
			
		||||
                                                            <div class="col-sm-4">
 | 
			
		||||
                                                                <select name="storage" class="form-control image-format">
 | 
			
		||||
                                                                {% for storage in storages %}
 | 
			
		||||
                                                                    <option value="{{ storage }}">{{ storage }}</option>
 | 
			
		||||
                                                                {% endfor %}
 | 
			
		||||
                                                                </select>
 | 
			
		||||
                                                            </div>
 | 
			
		||||
                                                        </div>
 | 
			
		||||
                                                        <div class="form-group">
 | 
			
		||||
                                                            <label class="col-sm-3 control-label" style="font-weight:normal;">{% trans "Name" %}</label>
 | 
			
		||||
                                                            <div class="col-sm-4">
 | 
			
		||||
                                                                <input type="text" class="form-control" name="name" placeholder="{% trans "Name" %}" required pattern="[a-zA-Z0-9\.\-_]+">
 | 
			
		||||
                                                            </div>
 | 
			
		||||
                                                        </div>
 | 
			
		||||
                                                        <div class="form-group">
 | 
			
		||||
                                                            <label class="col-sm-3 control-label" style="font-weight:normal;">{% trans "Format" %}</label>
 | 
			
		||||
                                                            <div class="col-sm-4">
 | 
			
		||||
                                                                <select name="format" class="form-control image-format">
 | 
			
		||||
                                                                {% for format in formats %}
 | 
			
		||||
                                                                    <option value="{{ format }}" {% if format == default_format %}selected{% endif %}>{% trans format %}</option>
 | 
			
		||||
                                                                {% endfor %}
 | 
			
		||||
                                                                </select>
 | 
			
		||||
                                                            </div>
 | 
			
		||||
                                                        </div>
 | 
			
		||||
                                                        <div class="form-group">
 | 
			
		||||
                                                            <label class="col-sm-3 control-label" style="font-weight:normal;">{% trans "Size" %}</label>
 | 
			
		||||
                                                            <div class="col-sm-4">
 | 
			
		||||
                                                                <input type="text" class="form-control" name="size" value="10" maxlength="3" required pattern="[0-9]+">
 | 
			
		||||
                                                            </div>
 | 
			
		||||
                                                            <label class="col-sm-1 control-label">{% trans "GB" %}</label>
 | 
			
		||||
                                                        </div>
 | 
			
		||||
                                                        <div class="form-group">
 | 
			
		||||
                                                            <label class="col-sm-3 control-label" style="font-weight:normal;">{% trans "Bus" %}</label>
 | 
			
		||||
                                                            <div class="col-sm-4">
 | 
			
		||||
                                                                <select name="bus" class="form-control image-format">
 | 
			
		||||
                                                                {% for bus in busses %}
 | 
			
		||||
                                                                    <option value="{{ bus }}" {% if bus == default_bus %}selected{% endif %}>{% trans bus %}</option>
 | 
			
		||||
                                                                {% endfor %}
 | 
			
		||||
                                                                </select>
 | 
			
		||||
                                                            </div>
 | 
			
		||||
                                                        </div>
 | 
			
		||||
                                                        <div class="form-group">
 | 
			
		||||
                                                            <label class="col-sm-3 control-label" style="font-weight:normal;">{% trans "Cache" %}</label>
 | 
			
		||||
                                                            <div class="col-sm-4">
 | 
			
		||||
                                                                <select name="cache" class="form-control image-format">
 | 
			
		||||
                                                                {% for mode, name in cache_modes %}
 | 
			
		||||
                                                                    <option value="{{ mode }}" {% if mode == default_cache %}selected{% endif %}>{% trans name %}</option>
 | 
			
		||||
                                                                {% endfor %}
 | 
			
		||||
                                                                </select>
 | 
			
		||||
                                                            </div>
 | 
			
		||||
                                                        </div>
 | 
			
		||||
                                                        <div class="form-group meta-prealloc">
 | 
			
		||||
                                                            <label class="col-sm-3 control-label" style="font-weight:normal;">{% trans "Metadata" %}</label>
 | 
			
		||||
                                                            <div class="col-sm-4">
 | 
			
		||||
                                                                <input type="checkbox" name="meta_prealloc" value="true">
 | 
			
		||||
                                                            </div>
 | 
			
		||||
                                                        </div>
 | 
			
		||||
                                                        {% ifequal status 5 %}
 | 
			
		||||
                                                            <button type="submit" class="btn btn-lg btn-success pull-right" name="addvolume">{% trans "Add volume" %}</button>
 | 
			
		||||
                                                        {% else %}
 | 
			
		||||
                                                            <button class="btn btn-lg btn-success pull-right disabled">{% trans "Add volume" %}</button>
 | 
			
		||||
                                                        {% endifequal %}
 | 
			
		||||
                                                    </form>
 | 
			
		||||
                                                {% else %}
 | 
			
		||||
                                                    {% trans "You don't have permission for resizing instance" %}
 | 
			
		||||
                                                    <button class="btn btn-lg btn-success pull-right disabled">{% trans "Add volume" %}</button>
 | 
			
		||||
                                                {% endif %}
 | 
			
		||||
                                                <div class="clearfix"></div>
 | 
			
		||||
                                            </div>
 | 
			
		||||
                                            
 | 
			
		||||
                                        </div>
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -607,6 +528,11 @@
 | 
			
		|||
                                                    {% trans "Media" %}
 | 
			
		||||
                                                </a>
 | 
			
		||||
                                            </li>
 | 
			
		||||
                                            <li role="presentation">
 | 
			
		||||
                                                <a href="#disks" aria-controls="disks" role="tab" data-toggle="tab">
 | 
			
		||||
                                                    {% trans "Disk" %}
 | 
			
		||||
                                                </a>
 | 
			
		||||
                                            </li>
 | 
			
		||||
                                            {% if request.user.is_superuser %}
 | 
			
		||||
                                                <li role="presentation">
 | 
			
		||||
                                                    <a href="#autostart" aria-controls="autostart" role="tab" data-toggle="tab">
 | 
			
		||||
| 
						 | 
				
			
			@ -614,6 +540,7 @@
 | 
			
		|||
                                                    </a>
 | 
			
		||||
                                                </li>
 | 
			
		||||
                                            {% endif %}
 | 
			
		||||
 | 
			
		||||
                                            {% if request.user.is_superuser or userinstance.is_vnc %}
 | 
			
		||||
                                                <li role="presentation">
 | 
			
		||||
                                                    <a href="#vncsettings" aria-controls="vncsettings" role="tab" data-toggle="tab">
 | 
			
		||||
| 
						 | 
				
			
			@ -702,6 +629,64 @@
 | 
			
		|||
                                                {% endfor %}
 | 
			
		||||
                                                <div class="clearfix"></div>
 | 
			
		||||
                                            </div>
 | 
			
		||||
                                            <div role="tabpanel" class="tab-pane tab-pane-bordered" id="disks">
 | 
			
		||||
                                                 <p style="font-weight:bold;">
 | 
			
		||||
                                                        {% trans "Instance Volumes" %}
 | 
			
		||||
                                                        {% include 'add_instance_volume.html' %}
 | 
			
		||||
                                                 </p>
 | 
			
		||||
 | 
			
		||||
                                                 <div class="col-xs-12 col-sm-12">
 | 
			
		||||
                                                    <table class="table table-hover">
 | 
			
		||||
                                                        <thead>
 | 
			
		||||
                                                            <th>{% trans "Device" %}</th>
 | 
			
		||||
                                                            <th>{% trans "Format" %}</th>
 | 
			
		||||
                                                            <th>{% trans "Used" %}</th>
 | 
			
		||||
                                                            <th>{% trans "Capacity" %}</th>
 | 
			
		||||
                                                            <th>{% trans "Bus" %}</th>
 | 
			
		||||
                                                            <th>{% trans "Storage" %}</th>
 | 
			
		||||
                                                            <th>{% trans "Source" %}</th>
 | 
			
		||||
                                                            <th style="width:100px;">{% trans "Action" %}</th>
 | 
			
		||||
                                                        </thead>
 | 
			
		||||
                                                        <tbody>
 | 
			
		||||
                                                            {% for disk in disks %}
 | 
			
		||||
                                                                <tr>
 | 
			
		||||
                                                                    <td>{{ disk.dev }}<br>{{ disk.target }}</td>
 | 
			
		||||
                                                                    <td>{{ disk.format }}</td>
 | 
			
		||||
                                                                    <td>{{ disk.used | filesizeformat}}</td>
 | 
			
		||||
                                                                    <td>{{ disk.size | filesizeformat }}</td>
 | 
			
		||||
                                                                    <td>{{ disk.bus }}</td>
 | 
			
		||||
                                                                    <td>{{ disk.storage }}</td>
 | 
			
		||||
                                                                    <td>{{ disk.path }}</td>
 | 
			
		||||
                                                                    <td style="width:30px;">
 | 
			
		||||
                                                                        <form action="" method="post" style="height:10px" role="form">{% csrf_token %}
 | 
			
		||||
                                                                            <input type="hidden" name="path" value="{{ disk.path }}">
 | 
			
		||||
                                                                            <input type="hidden" name="dev" value="{{ disk.dev }}">
 | 
			
		||||
                                                                            {% ifequal status 5 %}
 | 
			
		||||
                                                                                <button type="submit" class="btn btn-sm btn-default" name="detachvolume" title="{% trans "Detach" %}" onclick="return confirm('{% trans "Are you sure?" %}')">
 | 
			
		||||
                                                                                    <i class="fa fa-eject"></i>
 | 
			
		||||
                                                                                </button>
 | 
			
		||||
                                                                                <button type="submit" class="btn btn-sm btn-default" name="delvolume" title="{% trans "Delete" %}" onclick="return confirm('{% trans "Are you sure?" %}')">
 | 
			
		||||
                                                                                    <i class="fa fa-trash"></i>
 | 
			
		||||
                                                                                </button>
 | 
			
		||||
                                                                            {% else %}
 | 
			
		||||
                                                                                <button class="btn btn-sm btn-default disabled" name="detachvolume" title="{% trans "Detach" %}">
 | 
			
		||||
                                                                                    <i class="fa fa-eject"></i>
 | 
			
		||||
                                                                                </button>
 | 
			
		||||
                                                                                <button class="btn btn-sm btn-default disabled" name="delvolume" title="{% trans "Delete" %}" onclick="return confirm('{% trans "Are you sure?" %}')">
 | 
			
		||||
                                                                                    <i class="fa fa-trash"></i>
 | 
			
		||||
                                                                                </button>
 | 
			
		||||
                                                                            {% endifequal %}
 | 
			
		||||
                                                                        </form>
 | 
			
		||||
                                                                    </td>
 | 
			
		||||
                                                                </tr>
 | 
			
		||||
                                                            {% endfor %}
 | 
			
		||||
                                                         </tbody>
 | 
			
		||||
                                                    </table>
 | 
			
		||||
                                                </div>
 | 
			
		||||
                                                <div class="clearfix"></div>
 | 
			
		||||
                                            </div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                                            {% if request.user.is_superuser %}
 | 
			
		||||
                                                <div role="tabpanel" class="tab-pane tab-pane-bordered" id="autostart">
 | 
			
		||||
                                                    <p>{% trans "Autostart your instance when host server is power on" %}</p>
 | 
			
		||||
| 
						 | 
				
			
			@ -884,9 +869,6 @@
 | 
			
		|||
                                                            </div>
 | 
			
		||||
                                                        {% endfor %}
 | 
			
		||||
                                                    </form>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                                                </div>
 | 
			
		||||
                                                    <div class="clearfix"></div>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -950,7 +932,7 @@
 | 
			
		|||
                                                                        <input id="disk_name-{{ disk.dev }}" type="text" class="form-control" name="disk-{{ disk.dev }}" value="{{ disk.image }}"/>
 | 
			
		||||
                                                                    </div>
 | 
			
		||||
                                                                    {% ifequal disk.format 'qcow2' %}
 | 
			
		||||
                                                                        <label class="col-sm-2 control-label" style="font-weight:normal;margin-left:-35px;">Metadata</label>
 | 
			
		||||
                                                                        <label class="col-sm-2 control-label" style="font-weight:normal;margin-left:-35px;">{% trans 'Metadata' %}</label>
 | 
			
		||||
                                                                        <div class="col-sm-1">
 | 
			
		||||
                                                                            <input type="checkbox" name="meta-{{ disk.dev }}" value="true" style="margin-top: 10px;">
 | 
			
		||||
                                                                        </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -1561,7 +1543,7 @@
 | 
			
		|||
            }
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
    if (~$.inArray(hash, ['#media', '#network', '#clone', '#autostart', '#xmledit', '#vncsettings', '#migrate', '#options', '#users'])) {
 | 
			
		||||
    if (~$.inArray(hash, ['#media', "#disks", '#network', '#clone', '#autostart', '#xmledit', '#vncsettings', '#migrate', '#options', '#users'])) {
 | 
			
		||||
        var btnsect = $('#navbtn>li>a');
 | 
			
		||||
        $(btnsect).each(function () {
 | 
			
		||||
            if ($(this).attr('href') === '#settings') {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue