[Groonga-commit] groonga/gcs [ember] Now search works on ember

Back to archive index

Yoji SHIDARA null+****@clear*****
Tue Sep 25 13:29:05 JST 2012


Yoji SHIDARA	2012-09-25 13:29:05 +0900 (Tue, 25 Sep 2012)

  New Revision: f4077230bdfd08007836735bd50788c8970b27ea
  https://github.com/groonga/gcs/commit/f4077230bdfd08007836735bd50788c8970b27ea

  Log:
    Now search works on ember

  Modified files:
    public/js/gcs.js
    views/index.jade

  Modified: public/js/gcs.js (+14 -73)
===================================================================
--- public/js/gcs.js    2012-09-25 12:28:48 +0900 (602c2cd)
+++ public/js/gcs.js    2012-09-25 13:29:05 +0900 (c4f3306)
@@ -18,8 +18,8 @@ App.DomainSelectorView = Ember.View.extend({
   contentBinding: "App.DomainsController.content"
 });
 
-App.SearchController = Ember.ObjectController.extend({
-  content: null,
+App.SearchController = Ember.ArrayController.extend({
+  content: [],
   query: null,
   perPage: 5,
   start: 0,
@@ -67,8 +67,18 @@ App.SearchController = Ember.ObjectController.extend({
         self.set('resultsAvailable', data.hits.found > 0);
         self.set('numHits', data.hits.found);
         self.set('numEnd', start + data.hits.found);
-        renderResults(data, perPage);
-        $('#results').show();
+        var content = data.hits.hit.map(function(hit, index) {
+          var pairs = [];
+          jQuery.each(hit.data, function(columnName, value) {
+            pairs.push({columnName: columnName, value: value});
+          });
+          return {
+            index: start + index + 1,
+            id: hit.id,
+            data: pairs
+          };
+        });
+        self.set('content', content);
       }
     });
   }
@@ -118,75 +128,6 @@ function getHostAndPort() {
   return hostAndPort.join(':');
 }
 
-function renderResults(data, perPage) {
-  var rendered = JST['results'](data);
-  var found = data.hits.found;
-  var start = data.hits.start;
-  var returned = data.hits.hit.length;
-  var nextStart = start + perPage;
-  var previousStart = data.hits.start - perPage;
-  $('#results').html(rendered);
-
-  if (previousStart < 0) {
-    $('#pager .previous').addClass('disabled');
-    $('#pager .previous a').click(function() { return false; });
-  } else {
-    $('#pager .previous a').click(function() {
-      $('form#search input[name="start"]').val(previousStart);
-      searchExecute();
-    });
-  }
-
-  if (nextStart >= data.hits.found) {
-    $('#pager .next').addClass('disabled');
-    $('#pager .previous a').click(function() { return false; });
-  } else {
-    $('#pager .next a').click(function() {
-      $('form#search input[name="start"]').val(nextStart);
-      searchExecute();
-    });
-  }
-
-  var from = start + 1;
-  var to = start + returned;
-}
-
-function renderRequestInformation(data) {
-  var rendered = JST['request_information'](data);
-  $('#request-information').html(rendered);
-}
-
-function searchExecute() {
-  var query = $('form#search input[name="query"]').val();
-  var domains = $('#domain-and-id');
-  var domain = domains.find('option[value="' + domains.val() + '"]');
-  var searchEndpoint = 'http://' + domain.attr('value') + '/2011-02-01/search';
-  var fields = domain.attr('data-field-names');
-  var perPage = 5;
-  var start = parseInt($('form#search input[name="start"]').val() || '0', 10);
-  var params = {
-        q:     query,
-        size:  perPage,
-        start: start,
-        'return-fields': fields
-      };
-  var urlForRawRequest = searchEndpoint + '?' + jQuery.param(params);
-  renderRequestInformation({urlForRawRequest: urlForRawRequest});
-
-  $('#results').empty();
-  $.ajax({
-    type: 'GET',
-    url: searchEndpoint,
-    data: params,
-    dataType: 'jsonp',
-    success: function(data) {
-      renderResults(data, perPage);
-      $('#results').show();
-    }
-  });
-  return false;
-}
-
 $(document).ready(function($) {
   $.ajax({
     type: 'GET',

  Modified: views/index.jade (+17 -0)
===================================================================
--- views/index.jade    2012-09-25 12:28:48 +0900 (a9b0752)
+++ views/index.jade    2012-09-25 13:29:05 +0900 (0157eda)
@@ -50,5 +50,22 @@ html
       {{/if}}
       {{/if}}
 
+      {{#if resultsAvailable}}
+      //- DOM structure of this table seems to be broken. The issue https://github.com/wycats/handlebars.js/issues/184 may be related with this.
+      table.table.table-bordered
+        tbody
+          {{#each controller}}
+          tr.id-row
+            td {{index}}
+            td.id-cell(colspan=2) {{id}}
+          {{#each data}}
+          tr
+            td
+            td {{columnName}}
+            td {{value}}
+          {{/each}}
+          {{/each}}
+      {{/if}}
+
       #results
   body
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index