YUKI Hiroshi
null+****@clear*****
Wed Aug 22 19:04:56 JST 2012
YUKI Hiroshi 2012-08-22 19:04:56 +0900 (Wed, 22 Aug 2012) New Revision: f6b7a76e049129cbc18fda8ef758e7364a20461c https://github.com/groonga/gcs/commit/f6b7a76e049129cbc18fda8ef758e7364a20461c Log: Detect search endpoints automatically Modified files: public/javascripts/gcs.js views/layout.jade Modified: public/javascripts/gcs.js (+32 -8) =================================================================== --- public/javascripts/gcs.js 2012-08-22 19:04:20 +0900 (da803fc) +++ public/javascripts/gcs.js 2012-08-22 19:04:56 +0900 (5599a0b) @@ -1,3 +1,15 @@ +var configurationEndpoint = 'http://' + location.host + '/'; +var hostAndPort = getHostAndPort(); + +function getHostAndPort() { + var hostAndPort = location.host.split(':'); + if (hostAndPort[0] == 'localhost') + hostAndPort[0] = '127.0.0.1'; + if (hostAndPort[0].match(/^\d+\.\d+\.\d+\.\d+$/)) + hostAndPort[0] += '.xip.io'; + return hostAndPort.join(':'); +} + function renderResults(data, perPage) { var rendered = JST['results'](data); var found = data.hits.found; @@ -39,14 +51,8 @@ function renderRequestInformation(data) { function searchExecute() { var query = $('form#search input[name="query"]').val(); - var domain = $('form#domain input[name="domain-name"]').val(); - var hostAndPort = location.host.split(':'); - if (hostAndPort[0] == 'localhost') - hostAndPort[0] = '127.0.0.1'; - if (hostAndPort[0].match(/^\d+\.\d+\.\d+\.\d+$/)) - hostAndPort[0] += '.xip.io'; - hostAndPort = hostAndPort.join(':'); - var searchEndpoint = 'http://search-' + domain + '-00000000000000000000000000.' + hostAndPort + '/2011-02-01/search'; + var searchEndpoint = $('form#domain select[name="domain-and-id"]').attr('value'); + searchEndpoint = 'http://' + searchEndpoint + '/2011-02-01/search'; var perPage = 5; var start = parseInt($('form#search input[name="start"]').val() || '0', 10); var params = {q: query, size: perPage, start: start}; @@ -68,6 +74,24 @@ function searchExecute() { } $(document).ready(function($) { + $.ajax({ + type: 'GET', + url: configurationEndpoint, + data: { + Version: '2011-02-01', + Action: 'DescribeDomains' + }, + dataType: 'xml', + success: function(data) { + $(data).find('DomainStatusList > member') + .each(function(index) { + var name = $(this).find('DomainName').text(); + var endpoint = $(this).find('SearchService > Endpoint').text(); + $('#domain-and-id').append('<option value="' + endpoint + '">'+name+'</option>'); + }); + } + }); + $('form#domain').submit(searchExecute); $('form#search').submit(searchExecute); }); Modified: views/layout.jade (+1 -1) =================================================================== --- views/layout.jade 2012-08-22 19:04:20 +0900 (b7c3efe) +++ views/layout.jade 2012-08-22 19:04:56 +0900 (3166004) @@ -15,7 +15,7 @@ html .container a.brand(href="/") Groonga CloudSearch form.navbar-form.pull-right#domain - input(type="text", value="example", name="domain-name") + select(id="domain-and-id", name="domain-and-id") p.navbar-text.pull-right Domain: .container .row -------------- next part -------------- HTML����������������������������... Download