diff --git a/public/ods/fixtures/fixtures.js b/public/ods/fixtures/fixtures.js index 93adc50..e9d350e 100644 --- a/public/ods/fixtures/fixtures.js +++ b/public/ods/fixtures/fixtures.js @@ -485,4 +485,21 @@ steal("jquery/dom/fixture", "jquery/lang/json", function(){ return res; }); + $.fixture('GET /api/adapters', function(original, settings, headers) { + console.log("original: ", original); + console.log("settings: ", settings); + + var res = { + "status": "OK", + "adapters": [{ + "id": 1, + "name": "Centos_openstack" + }, { + "id": 2, + "name": "Centos" + } + ] + }; + return res; + }); }) diff --git a/public/ods/models/cluster.js b/public/ods/models/cluster.js index d33ac11..d663c15 100644 --- a/public/ods/models/cluster.js +++ b/public/ods/models/cluster.js @@ -113,6 +113,14 @@ steal("jquery/model", "jquery/lang/json", success: success, error: error }); + }, + get: function(success, error) { + $.ajax({ + url: '/api/adapters', + type: 'get', + success: success, + error: error + }); } }, {}); diff --git a/public/ods/ods.js b/public/ods/ods.js index 6b272c7..7432eea 100644 --- a/public/ods/ods.js +++ b/public/ods/ods.js @@ -19,7 +19,8 @@ steal( machines: [], switches: [], snmp: true, - adapter_id: null + adapter_id: null, + adapters: [] }; var state = new $.Observe(odsState); diff --git a/public/ods/ui/servers/servers.js b/public/ods/ui/servers/servers.js index da40af8..dcd4a3a 100644 --- a/public/ods/ui/servers/servers.js +++ b/public/ods/ui/servers/servers.js @@ -36,6 +36,11 @@ steal( this.dataTable.fnClearTable(); this.dataTable.fnAddData(oldAllServersData); + for (var i = 0; i < this.options.odsState.adapters.length; i++) { + $("#adapter").append(""); + } + $('#adapter').val(String(this.options.odsState.adapter_id)); + var oldSelectedServersData = this.options.odsState.servers; for (var i = 0; i < oldSelectedServersData.length; i++) { @@ -47,6 +52,10 @@ steal( }); } this.countCheckedServers(); + } else { + // get adapters + this.adapters = []; + Ods.Adapter.get(this.proxy('onGetAdapters'), this.proxy('onGetAdaptersErr')); } @@ -79,7 +88,6 @@ steal( "serverControl": this }); } - }, dataTableIpAddrSort: function() { @@ -203,14 +211,14 @@ steal( this.options.odsState.machines = this.dataTable.fnGetData(); if (this.initServerStep) { + this.options.odsState.adapter_id = parseInt($("#adapter").val()); // create cluster Ods.Cluster.create({ "cluster": { "name": "", - "adapter_id": 1 + "adapter_id": this.options.odsState.adapter_id } }, this.proxy('onClusterCreated'), this.proxy('onClusterCreatedErr')); - this.options.odsState.adapter_id = 1; } else { // replace all hosts in current cluster var cluster_id = this.options.odsState.cluster_id; @@ -222,6 +230,30 @@ steal( } }, + /************************************/ + // get adapters success callback + /************************************/ + 'onGetAdapters': function(data, textStatus, xhr) { + if (xhr.status == 200) { + this.adapters = data.adapters; + this.options.odsState.adapters = data.adapters; + if (this.adapters.length > 0) { + for (var i = 0; i < this.adapters.length; i++) { + $("#adapter").append(""); + } + } else { + $("#adapter").append(""); + } + } + }, + + /************************************/ + // get adapters error callback + /************************************/ + 'onGetAdaptersErr': function(xhr, status, statusText) { + $("#adapter").append(""); + }, + /************************************/ // create cluster success callback /************************************/ diff --git a/public/ods/ui/servers/views/init.ejs b/public/ods/ui/servers/views/init.ejs index e75b483..2074d79 100644 --- a/public/ods/ui/servers/views/init.ejs +++ b/public/ods/ui/servers/views/init.ejs @@ -54,6 +54,9 @@
+
+ Adapter: +
0 items selected