diff --git a/src/sunstone/public/js/plugins/templates-tab.js b/src/sunstone/public/js/plugins/templates-tab.js
index e36bd436d3..70e188bef6 100644
--- a/src/sunstone/public/js/plugins/templates-tab.js
+++ b/src/sunstone/public/js/plugins/templates-tab.js
@@ -1455,29 +1455,6 @@ function update_datatable_template_files(datatable, fnDrawCallback) {
});
}
-function update_datatable_template_networks(datatable, fnDrawCallback) {
- if (fnDrawCallback) {
- datatable.unbind('draw');
- datatable.on('draw', fnDrawCallback);
- }
-
- OpenNebula.Network.list({
- timeout: true,
- success: function (request, networks_list){
- var network_list_array = [];
-
- $.each(networks_list,function(){
- network_list_array.push(vNetworkElementArray(this));
- });
-
- updateView(network_list_array, datatable);
- },
- error: onError
- });
-}
-
-
-
function setup_disk_tab_content(disk_section, str_disk_tab_id, str_datatable_id) {
// Select Image or Volatile disk. The div is hidden depending on the selection, and the
// vm_param class is included to be computed when the template is generated.
@@ -1651,47 +1628,9 @@ function setup_disk_tab_content(disk_section, str_disk_tab_id, str_datatable_id)
}
-function generate_nic_tab_content(str_nic_tab_id, str_datatable_id){
+function generate_nic_tab_content(str_nic_tab_id){
var html = '
'+
- '
' +
- '' +
- '
' +
- '
'+
- ''+
- '
'+
- '
'+
- ''+
- '
'+
- '
'+
- ''+
- ''+
- ' | '+
- ''+tr("ID")+' | '+
- ''+tr("Owner")+' | '+
- ''+tr("Group")+' | '+
- ''+tr("Name")+' | '+
- ''+tr("Reservation")+' | '+
- ''+tr("Cluster")+' | '+
- ''+tr("Bridge")+' | '+
- ''+tr("Leases")+' | '+
- ''+tr("VLAN ID")+' | '+
- '
'+
- ''+
- ''+
- ''+
- '
'+
- '
'+
- '
'+
- ''+
- '
'+
- '
'+tr("Please select a network from the list")+''+
- '
'+tr("You selected the following network:")+''+
- '
'+
- '
'+
- tr("The network you specified cannot be selected in the table") +
- '
'+
- '
'+
- '
'+
+ generateVNetTableSelect(str_nic_tab_id)+
'
'+
generateAdvancedSection({
title: tr("Advanced Options"),
@@ -1788,12 +1727,6 @@ function generate_nic_tab_content(str_nic_tab_id, str_datatable_id){
''+
''});
- $("#refresh_template_nic_table_button_class"+str_nic_tab_id).die();
-
- $("#refresh_template_nic_table_button_class"+str_nic_tab_id).live('click', function(){
- update_datatable_template_networks($('table[id='+str_datatable_id+']').dataTable());
- });
-
return html;
}
@@ -1850,62 +1783,23 @@ function fill_nic_tab_data(template_json, context){
}
}
-function setup_nic_tab_content(nic_section, str_nic_tab_id, str_datatable_id) {
- var dataTable_template_networks = $('#'+str_datatable_id, nic_section).dataTable({
- "bAutoWidth":false,
- "iDisplayLength": 4,
- "sDom" : '<"H">t<"F"p>',
- "bRetrieve": true,
- "bSortClasses" : false,
- "bDeferRender": true,
- "aoColumnDefs": [
- { "sWidth": "35px", "aTargets": [0,1] },
- { "bVisible": false, "aTargets": [0,7]}
- ],
- "fnDrawCallback": function(oSettings) {
- var datatable = this;
- var nodes = this.fnGetNodes();
- $.each(nodes, function(){
- var data = datatable.fnGetData(this);
- if (data[1] == $('#NETWORK_ID', nic_section).val() ||
- (data[4] == $('#NETWORK', nic_section).val() && data[2] == $('#NETWORK_UNAME', nic_section).val()) ) {
- $("td", this).addClass('markrow');
- $('input.check_item', this).attr('checked','checked');
- }
- })
- }
- });
+function setup_nic_tab_content(nic_section, str_nic_tab_id) {
- // Retrieve the networks to fill the datatable
- update_datatable_template_networks(dataTable_template_networks);
+ var opts = {
+ select_callback: function(aData, options){
+ // If the net is selected by Id, avoid overwriting it with name+uname
+ if( $('#NETWORK_ID', nic_section).val() != aData[options.id_index] ){
+ $('#NETWORK_ID', nic_section).val("");
+ $('#NETWORK', nic_section).val( aData[options.name_index] );
+ $('#NETWORK_UNAME', nic_section).val( aData[options.uname_index] );
+ $('#NETWORK_UID', nic_section).val("");
+ }
+ }
+ }
- $('#'+str_nic_tab_id+'_search', nic_section).keyup(function(){
- dataTable_template_networks.fnFilter( $(this).val() );
- })
+ setupVNetTableSelect(nic_section, str_nic_tab_id, opts);
- dataTable_template_networks.fnSort( [ [1,config['user_config']['table_order']] ] );
-
- $('#'+str_datatable_id + ' tbody', nic_section).delegate("tr", "click", function(e){
- dataTable_template_networks.unbind("draw");
- var aData = dataTable_template_networks.fnGetData(this);
-
- $("td.markrow", nic_section).removeClass('markrow');
- $('tbody input.check_item', dataTable_template_networks).removeAttr('checked');
-
- $('#image_selected', nic_section).show();
- $('#select_image', nic_section).hide();
- $('.alert-box', nic_section).hide();
-
- $("td", this).addClass('markrow');
- $('input.check_item', this).attr('checked','checked');
-
- $('#NETWORK_NAME', nic_section).text(aData[4]);
- $('#NETWORK_ID', nic_section).val("");
- $('#NETWORK', nic_section).val(aData[4]);
- $('#NETWORK_UNAME', nic_section).val(aData[2]);
- $('#NETWORK_UID', nic_section).val("");
- return true;
- });
+ refreshVNetTableSelect(nic_section, str_nic_tab_id);
setupTips(nic_section);
}
@@ -3159,10 +3053,9 @@ function setup_network_tab_content(network_section) {
function add_nic_tab(nic_id, dialog) {
var str_nic_tab_id = 'nic' + nic_id;
- var str_datatable_id = 'datatable_template_networks' + nic_id;
var html_tab_content = ''+
- generate_nic_tab_content(str_nic_tab_id, str_datatable_id) +
+ generate_nic_tab_content(str_nic_tab_id) +
'
'
// Append the new div containing the tab and add the tab to the list
@@ -3177,7 +3070,7 @@ function add_nic_tab(nic_id, dialog) {
$("a", a).trigger("click");
var nic_section = $('#' + str_nic_tab_id + 'Tab', dialog);
- setup_nic_tab_content(nic_section, str_nic_tab_id, str_datatable_id)
+ setup_nic_tab_content(nic_section, str_nic_tab_id);
}
/**************************************************************************
@@ -4370,33 +4263,26 @@ var fillTemplatePopUp = function(template, dialog){
var nic_network_id = nic.NETWORK_ID
var nic_network = nic.NETWORK
var nic_network_uname = nic.NETWORK_UNAME
- // TODO updateView should not be required. Currently the dataTable
- // is filled twice.
- update_datatable_template_networks(dataTable_template_networks, function(){
+ var nic_network_uid = nic.NETWORK_UID
- if (nic_network_id || (nic_network && nic_network_uname)) {
- var clicked = false
- var data = dataTable_template_networks.fnGetData();
- $.each(data, function(){
- if (this[1] == nic_network_id || (this[4] == nic_network && this[2] == nic_network_uname)) {
- clicked = true;
- $('.alert-box', nic_section).hide();
- $('#network_selected', nic_section).show();
- $('#select_network', nic_section).hide();
- $('#NETWORK_NAME', nic_section).text(this[4]);
- if (nic_network_id) $('#NETWORK_ID', nic_section).val(this[1]);
- if (nic_network) $('#NETWORK', nic_section).val(this[4]);
- if (nic_network_uname) $('#NETWORK_UNAME', nic_section).val(this[2]);
- }
- })
+ $('#NETWORK_ID', nic_section).val( nic_network_id );
+ $('#NETWORK', nic_section).val( nic_network );
+ $('#NETWORK_UNAME', nic_section).val( nic_network_uname );
+ $('#NETWORK_UID', nic_section).val( nic_network_uid );
- if (!clicked) {
- $('.alert-box', nic_section).show();
- }
- } else {
- $('.alert-box', nic_section).show();
+ if (nic_network_id != undefined){
+ var opts = {
+ ids : nic_network_id
}
- })
+
+ selectVNetTableSelect(nic_section, str_nic_tab_id, opts);
+ } else if (nic_network != undefined && nic_network_uname != undefined){
+ var opts = {
+ names : {name: nic_network, uname: nic_network_uname}
+ }
+
+ selectVNetTableSelect(nic_section, str_nic_tab_id, opts);
+ }
autoFillInputs(nic, nic_section);