[Groonga-commit] groonga/gcs [master] Detect search endpoints automatically

Zurück zum Archiv-Index

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 



More information about the Groonga-commit mailing list
Zurück zum Archiv-Index