[Groonga-commit] groonga/gcs [ember] Split "gcs.js" to "models", "controllers" and "views"

Back to archive index

YUKI Hiroshi null+****@clear*****
Mon Oct 1 17:38:19 JST 2012


YUKI Hiroshi	2012-10-01 17:38:19 +0900 (Mon, 01 Oct 2012)

  New Revision: 65ace2c2e6b8294e188463b7f27a9805732d9104
  https://github.com/groonga/gcs/commit/65ace2c2e6b8294e188463b7f27a9805732d9104

  Log:
    Split "gcs.js" to "models", "controllers" and "views"

  Added files:
    public/js/gcs/base.js
    public/js/gcs/controllers.js
    public/js/gcs/models.js
    public/js/gcs/views.js
  Removed files:
    public/js/gcs.js
  Modified files:
    views/index.jade

  Deleted: public/js/gcs.js (+0 -309) 100644
===================================================================
--- public/js/gcs.js    2012-10-01 17:24:54 +0900 (069a3a4)
+++ /dev/null
@@ -1,309 +0,0 @@
-var App = Ember.Application.create();
-
-App.Adapter = DS.Adapter.extend({
-  findAll: function(store, type) {
-    if (type === App.Domain) {
-      var self = this;
-      $.ajax({
-        type: 'GET',
-        url:  self.configurationEndpoint,
-        data: {
-          Version: '2011-02-01',
-          Action:  'DescribeDomains'
-        },
-        dataType: 'xml',
-        success: function(data) {
-          var domainStatusMembers = $(data).find('DomainStatusList > member');
-          domainStatusMembers.each(function(index) {
-            var domainElement = $(this);
-            var name = domainElement.find('DomainName').text();
-            var searchEndpoint = domainElement.find('SearchService > Endpoint').text();
-            var docEndpoint = domainElement.find('DocService > Endpoint').text();
-
-            var self = this;
-            $.ajax({
-              type: 'GET',
-              url:  self.configurationEndpoint,
-              data: {
-                Version:    '2011-02-01',
-                Action:     'DescribeIndexFields',
-                DomainName: name
-              },
-              dataType: 'xml',
-              success: function(data) {
-                var indexFields = [];
-                $(data).find('IndexFields > member').each(function(index) {
-                  var field = $(this);
-                  var name = field.find('IndexFieldName').text();
-                  indexFields.push({
-                    id: name,
-                    name: name
-                  });
-                });
-
-                var domain = {
-                  id: name,
-                  name: name,
-                  search_endpoint: searchEndpoint,
-                  doc_endpoint: docEndpoint,
-                  index_fields: indexFields,
-                  configuration_endpoint: self.configurationEndpoint
-                };
-                store.load(type, name, domain);
-              }
-            });
-          });
-        }
-      });
-    } else {
-      throw "Unspported model";
-    }
-  },
-  find: function(store, type, id) {
-    this.findAll(store, type); // Fetch all for the simplicity
-  }
-});
-
-App.configurationEndpoint = 'http://' + location.host + '/';
-
-App.store = DS.Store.create({
-  revision: 4,
-  adapter: App.Adapter.create({
-    configurationEndpoint: App.configurationEndpoint
-  })
-});
-
-App.IndexField = DS.Model.extend({
-  name: DS.attr('string')
-});
-
-App.Domain = DS.Model.extend({
-  name: DS.attr('string'),
-  searchEndpoint: DS.attr('string'),
-  docEndpoint: DS.attr('string'),
-  searchURL: function() {
-    return 'http://' + this.get('searchEndpoint') + '/2011-02-01/search';
-  }.property('endpoint'),
-  indexFields: DS.hasMany('App.IndexField', {embedded: true}),
-  configurationEndpoint: DS.attr('string')
-});
-
-App.ApplicationController = Ember.Controller.extend();
-
-App.ApplicationView = Ember.View.extend({
-  templateName: 'application'
-});
-
-App.IndexView = Ember.View.extend({
-  templateName: 'index'
-});
-
-App.DomainSearchController = Ember.ArrayController.extend({
-  query: null,
-  perPage: 5,
-  start: 0,
-  data: null,
-  numStart: function() {
-    return this.get('start') + 1;
-  }.property('start'),
-  numEnd: function() {
-    return this.get('start') + this.get('numReceived');
-  }.property('numReceived', 'start'),
-  searched: function() {
-    return !!this.data;
-  }.property('data'),
-  resultsAvailable: function() {
-    return this.data && this.data.hits.found > 0;
-  }.property('data'),
-  numHits: function() {
-    return this.data ? this.data.hits.found : 0;
-  }.property('data'),
-  numReceived: function() {
-    return this.data ? this.data.hits.hit.length : 0;
-  }.property('data'),
-  content: function() {
-    var data = this.get('data');
-    if (!data) {
-      return [];
-    }
-    var numStart = this.get('numStart');
-    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: numStart + index,
-        id: hit.id,
-        data: pairs
-      };
-    });
-    return content;
-  }.property('data'),
-  urlForRawRequest: function() {
-    var domain = this.get('domain');
-    if (!domain) {
-      return '';
-    }
-    var searchURL = domain.get('searchURL');
-    var params = this.get('paramsForRequest');
-    var urlForRawRequest = searchURL + '?' + jQuery.param(params);
-    return urlForRawRequest;
-  }.property('paramsForRequest', 'domain'),
-  paramsForRequest: function() {
-    var domain = this.get('domain');
-    if (!domain) {
-      return {};
-    }
-    var returnFields = domain.get('indexFields').map(function(field) {
-      return field.get('name');
-    }).join(',');
-    var params = {
-      q:     this.get('query'),
-      size:  this.get('perPage'),
-      start: this.get('start'),
-      'return-fields': returnFields
-    };
-    return params;
-  }.property('query', 'perPage', 'start', 'domain', 'domain.indexFields'),
-  reset: function() {
-    this.set('data', null);
-    this.set('start', 0);
-  },
-  executeSearch: function() {
-    var self = this;
-    var domain = this.get('domain');
-    $.ajax({
-      type: 'GET',
-      url: domain.get('searchURL'),
-      data: self.get('paramsForRequest'),
-      dataType: 'jsonp',
-      success: function(data) {
-        self.set('data', data);
-      }
-    });
-  },
-  nextPageAvailable: function() {
-    return this.get('start') + this.get('perPage') < this.get('numHits');
-  }.property('start', 'perPage', 'numHits'),
-  nextPage: function() {
-    var newStart = this.get('start') + this.get('perPage');
-    if (newStart < this.get('numHits')) {
-      this.set('start', newStart);
-      this.executeSearch();
-    }
-  },
-  previousPageAvailable: function() {
-    return this.get('start') > 0;
-  }.property('start'),
-  previousPage: function() {
-    var newStart = this.get('start') - this.get('perPage');
-    if (newStart < 0) {
-      newStart = 0;
-    }
-    this.set('start', newStart);
-    this.executeSearch();
-  }
-});
-
-App.DomainSearchView = Ember.View.extend({
-  templateName: 'domain-search'
-});
-
-App.SearchFormView = Ember.View.extend({
-  tagName: 'form',
-  classNames: ['form-search'],
-
-  submit: function(event) {
-    var query = this.get('controller.query');
-    var controller = this.get('controller');
-    controller.reset();
-    controller.executeSearch();
-
-    event.preventDefault();
-  }
-});
-
-App.domains = App.store.findAll(App.Domain);
-
-App.IndexController = Ember.ArrayController.extend({
-  contentBinding: 'App.domains'
-});
-
-App.IndexView = Ember.View.extend({
-  templateName: 'index'
-});
-
-App.DomainController = Ember.ObjectController.extend({
-});
-
-App.DomainView = Ember.View.extend({
-  templateName: 'domain'
-});
-
-App.DomainShowController = Ember.ObjectController.extend({
-});
-
-App.DomainShowView = Ember.View.extend({
-  templateName: 'domain-show'
-});
-
-App.Router = Ember.Router.extend({
-  root: Ember.Route.extend({
-    showIndex: Ember.State.transitionTo('root.index'),
-    showSearch: Ember.State.transitionTo('domains.search'),
-    showDomain: Ember.State.transitionTo('domains.show'),
-    index: Ember.Route.extend({
-      route: '/',
-      connectOutlets: function(router, context) {
-        router.get('applicationController').connectOutlet('index');
-      }
-    }),
-    domains: Ember.Route.extend({
-      route: 'domains/:domainName',
-      connectOutlets: function(router, context) {
-        router.get('applicationController').connectOutlet('domain', context);
-      },
-      serialize: function(router, context) {
-        return {
-          domainName: context.get('name')
-        };
-      },
-      deserialize: function(router, params) {
-        var domain = App.store.find(App.Domain, params.domainName);
-        var deferred = Ember.$.Deferred();
-        domain.addObserver('isLoaded', function() {
-          deferred.resolve(domain);
-        });
-        return deferred.promise(domain);
-      },
-      show: Ember.Route.extend({
-        route: '/',
-        connectOutlets: function(router) {
-          var domainController = router.get('domainController');
-          var domain = domainController.get('content');
-          domainController.connectOutlet('domainShow', domain);
-        }
-      }),
-      search: Ember.Route.extend({
-        route: '/search',
-        connectOutlets: function(router) {
-          var domainController = router.get('domainController');
-          var domain = domainController.get('content');
-          var domainSearchController = router.get('domainSearchController');
-          domainSearchController.set('domain', domain);
-          domainSearchController.set('query', null);
-          domainSearchController.reset();
-          domainController.connectOutlet('domainSearch');
-        },
-        nextPage: function(router) {
-          router.get('domainSearchController').nextPage();
-        },
-        previousPage: function(router) {
-          router.get('domainSearchController').previousPage();
-        }
-      })
-    }),
-    loading: Em.State.extend({})
-  })
-});

  Added: public/js/gcs/base.js (+1 -0) 100644
===================================================================
--- /dev/null
+++ public/js/gcs/base.js    2012-10-01 17:38:19 +0900 (e3580c6)
@@ -0,0 +1 @@
+var App = Ember.Application.create();

  Added: public/js/gcs/controllers.js (+179 -0) 100644
===================================================================
--- /dev/null
+++ public/js/gcs/controllers.js    2012-10-01 17:38:19 +0900 (3290570)
@@ -0,0 +1,179 @@
+App.ApplicationController = Ember.Controller.extend();
+
+App.DomainSearchController = Ember.ArrayController.extend({
+  query: null,
+  perPage: 5,
+  start: 0,
+  data: null,
+  numStart: function() {
+    return this.get('start') + 1;
+  }.property('start'),
+  numEnd: function() {
+    return this.get('start') + this.get('numReceived');
+  }.property('numReceived', 'start'),
+  searched: function() {
+    return !!this.data;
+  }.property('data'),
+  resultsAvailable: function() {
+    return this.data && this.data.hits.found > 0;
+  }.property('data'),
+  numHits: function() {
+    return this.data ? this.data.hits.found : 0;
+  }.property('data'),
+  numReceived: function() {
+    return this.data ? this.data.hits.hit.length : 0;
+  }.property('data'),
+  content: function() {
+    var data = this.get('data');
+    if (!data) {
+      return [];
+    }
+    var numStart = this.get('numStart');
+    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: numStart + index,
+        id: hit.id,
+        data: pairs
+      };
+    });
+    return content;
+  }.property('data'),
+  urlForRawRequest: function() {
+    var domain = this.get('domain');
+    if (!domain) {
+      return '';
+    }
+    var searchURL = domain.get('searchURL');
+    var params = this.get('paramsForRequest');
+    var urlForRawRequest = searchURL + '?' + jQuery.param(params);
+    return urlForRawRequest;
+  }.property('paramsForRequest', 'domain'),
+  paramsForRequest: function() {
+    var domain = this.get('domain');
+    if (!domain) {
+      return {};
+    }
+    var returnFields = domain.get('indexFields').map(function(field) {
+      return field.get('name');
+    }).join(',');
+    var params = {
+      q:     this.get('query'),
+      size:  this.get('perPage'),
+      start: this.get('start'),
+      'return-fields': returnFields
+    };
+    return params;
+  }.property('query', 'perPage', 'start', 'domain', 'domain.indexFields'),
+  reset: function() {
+    this.set('data', null);
+    this.set('start', 0);
+  },
+  executeSearch: function() {
+    var self = this;
+    var domain = this.get('domain');
+    $.ajax({
+      type: 'GET',
+      url: domain.get('searchURL'),
+      data: self.get('paramsForRequest'),
+      dataType: 'jsonp',
+      success: function(data) {
+        self.set('data', data);
+      }
+    });
+  },
+  nextPageAvailable: function() {
+    return this.get('start') + this.get('perPage') < this.get('numHits');
+  }.property('start', 'perPage', 'numHits'),
+  nextPage: function() {
+    var newStart = this.get('start') + this.get('perPage');
+    if (newStart < this.get('numHits')) {
+      this.set('start', newStart);
+      this.executeSearch();
+    }
+  },
+  previousPageAvailable: function() {
+    return this.get('start') > 0;
+  }.property('start'),
+  previousPage: function() {
+    var newStart = this.get('start') - this.get('perPage');
+    if (newStart < 0) {
+      newStart = 0;
+    }
+    this.set('start', newStart);
+    this.executeSearch();
+  }
+});
+
+App.IndexController = Ember.ArrayController.extend({
+  contentBinding: 'App.domains'
+});
+
+App.DomainController = Ember.ObjectController.extend({
+});
+
+App.DomainShowController = Ember.ObjectController.extend({
+});
+
+App.Router = Ember.Router.extend({
+  root: Ember.Route.extend({
+    showIndex: Ember.State.transitionTo('root.index'),
+    showSearch: Ember.State.transitionTo('domains.search'),
+    showDomain: Ember.State.transitionTo('domains.show'),
+    index: Ember.Route.extend({
+      route: '/',
+      connectOutlets: function(router, context) {
+        router.get('applicationController').connectOutlet('index');
+      }
+    }),
+    domains: Ember.Route.extend({
+      route: 'domains/:domainName',
+      connectOutlets: function(router, context) {
+        router.get('applicationController').connectOutlet('domain', context);
+      },
+      serialize: function(router, context) {
+        return {
+          domainName: context.get('name')
+        };
+      },
+      deserialize: function(router, params) {
+        var domain = App.store.find(App.Domain, params.domainName);
+        var deferred = Ember.$.Deferred();
+        domain.addObserver('isLoaded', function() {
+          deferred.resolve(domain);
+        });
+        return deferred.promise(domain);
+      },
+      show: Ember.Route.extend({
+        route: '/',
+        connectOutlets: function(router) {
+          var domainController = router.get('domainController');
+          var domain = domainController.get('content');
+          domainController.connectOutlet('domainShow', domain);
+        }
+      }),
+      search: Ember.Route.extend({
+        route: '/search',
+        connectOutlets: function(router) {
+          var domainController = router.get('domainController');
+          var domain = domainController.get('content');
+          var domainSearchController = router.get('domainSearchController');
+          domainSearchController.set('domain', domain);
+          domainSearchController.set('query', null);
+          domainSearchController.reset();
+          domainController.connectOutlet('domainSearch');
+        },
+        nextPage: function(router) {
+          router.get('domainSearchController').nextPage();
+        },
+        previousPage: function(router) {
+          router.get('domainSearchController').previousPage();
+        }
+      })
+    }),
+    loading: Em.State.extend({})
+  })
+});

  Added: public/js/gcs/models.js (+91 -0) 100644
===================================================================
--- /dev/null
+++ public/js/gcs/models.js    2012-10-01 17:38:19 +0900 (31bd71f)
@@ -0,0 +1,91 @@
+var App = Ember.Application.create();
+
+App.Adapter = DS.Adapter.extend({
+  findAll: function(store, type) {
+    if (type === App.Domain) {
+      var self = this;
+      $.ajax({
+        type: 'GET',
+        url:  self.configurationEndpoint,
+        data: {
+          Version: '2011-02-01',
+          Action:  'DescribeDomains'
+        },
+        dataType: 'xml',
+        success: function(data) {
+          var domainStatusMembers = $(data).find('DomainStatusList > member');
+          domainStatusMembers.each(function(index) {
+            var domainElement = $(this);
+            var name = domainElement.find('DomainName').text();
+            var searchEndpoint = domainElement.find('SearchService > Endpoint').text();
+            var docEndpoint = domainElement.find('DocService > Endpoint').text();
+
+            var self = this;
+            $.ajax({
+              type: 'GET',
+              url:  self.configurationEndpoint,
+              data: {
+                Version:    '2011-02-01',
+                Action:     'DescribeIndexFields',
+                DomainName: name
+              },
+              dataType: 'xml',
+              success: function(data) {
+                var indexFields = [];
+                $(data).find('IndexFields > member').each(function(index) {
+                  var field = $(this);
+                  var name = field.find('IndexFieldName').text();
+                  indexFields.push({
+                    id: name,
+                    name: name
+                  });
+                });
+
+                var domain = {
+                  id: name,
+                  name: name,
+                  search_endpoint: searchEndpoint,
+                  doc_endpoint: docEndpoint,
+                  index_fields: indexFields,
+                  configuration_endpoint: self.configurationEndpoint
+                };
+                store.load(type, name, domain);
+              }
+            });
+          });
+        }
+      });
+    } else {
+      throw "Unspported model";
+    }
+  },
+  find: function(store, type, id) {
+    this.findAll(store, type); // Fetch all for the simplicity
+  }
+});
+
+App.configurationEndpoint = 'http://' + location.host + '/';
+
+App.store = DS.Store.create({
+  revision: 4,
+  adapter: App.Adapter.create({
+    configurationEndpoint: App.configurationEndpoint
+  })
+});
+
+App.IndexField = DS.Model.extend({
+  name: DS.attr('string')
+});
+
+App.Domain = DS.Model.extend({
+  name: DS.attr('string'),
+  searchEndpoint: DS.attr('string'),
+  docEndpoint: DS.attr('string'),
+  searchURL: function() {
+    return 'http://' + this.get('searchEndpoint') + '/2011-02-01/search';
+  }.property('endpoint'),
+  indexFields: DS.hasMany('App.IndexField', {embedded: true}),
+  configurationEndpoint: DS.attr('string')
+});
+
+App.domains = App.store.findAll(App.Domain);

  Added: public/js/gcs/views.js (+37 -0) 100644
===================================================================
--- /dev/null
+++ public/js/gcs/views.js    2012-10-01 17:38:19 +0900 (dcb1b6e)
@@ -0,0 +1,37 @@
+App.ApplicationView = Ember.View.extend({
+  templateName: 'application'
+});
+
+App.IndexView = Ember.View.extend({
+  templateName: 'index'
+});
+
+App.DomainSearchView = Ember.View.extend({
+  templateName: 'domain-search'
+});
+
+App.SearchFormView = Ember.View.extend({
+  tagName: 'form',
+  classNames: ['form-search'],
+
+  submit: function(event) {
+    var query = this.get('controller.query');
+    var controller = this.get('controller');
+    controller.reset();
+    controller.executeSearch();
+
+    event.preventDefault();
+  }
+});
+
+App.IndexView = Ember.View.extend({
+  templateName: 'index'
+});
+
+App.DomainView = Ember.View.extend({
+  templateName: 'domain'
+});
+
+App.DomainShowView = Ember.View.extend({
+  templateName: 'domain-show'
+});

  Modified: views/index.jade (+4 -1)
===================================================================
--- views/index.jade    2012-10-01 17:24:54 +0900 (946f63e)
+++ views/index.jade    2012-10-01 17:38:19 +0900 (9ab8949)
@@ -7,7 +7,10 @@ html
     script(src="/js/lib/handlebars-1.0.rc.1.js", type="text/javascript")
     script(src="/js/lib/ember-latest.js", type="text/javascript")
     script(src="/js/lib/ember-data-latest.js", type="text/javascript")
-    script(src="/js/gcs.js", type="text/javascript")
+    script(src="/js/gcs/base.js", type="text/javascript")
+    script(src="/js/gcs/models.js", type="text/javascript")
+    script(src="/js/gcs/controllers.js", type="text/javascript")
+    script(src="/js/gcs/views.js", type="text/javascript")
     link(href="/css/bootstrap.min.css", rel="stylesheet")
     link(href="/css/gcs.css", rel="stylesheet")
 
-------------- next part --------------
HTML����������������������������...
Download 



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