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
				
			
		|  | @ -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