[Groonga-commit] groonga/groonga-admin at c42c8af [master] Support nested index

Back to archive index

Kouhei Sutou null+****@clear*****
Mon Nov 17 12:00:12 JST 2014


Kouhei Sutou	2014-11-17 12:00:12 +0900 (Mon, 17 Nov 2014)

  New Revision: c42c8af382620d102efa2538669c33181c99ff8f
  https://github.com/groonga/groonga-admin/commit/c42c8af382620d102efa2538669c33181c99ff8f

  Message:
    Support nested index

  Modified files:
    app/scripts/controllers/table-search-controller.js
    app/views/tables/search.html

  Modified: app/scripts/controllers/table-search-controller.js (+40 -16)
===================================================================
--- app/scripts/controllers/table-search-controller.js    2014-11-10 19:54:32 +0900 (c20ed22)
+++ app/scripts/controllers/table-search-controller.js    2014-11-17 12:00:12 +0900 (10d09d2)
@@ -129,16 +129,19 @@ angular.module('groongaAdminApp')
         search();
       }
 
+      function isTableType(type) {
+        return $scope.allTables.some(function(table) {
+          return table.name === type;
+        });
+      }
+
       function selectDrilldown(key, value) {
         var queryKey = key;
         var column = $scope.allColumns.find(function(column) {
           return column.name === key;
         });
         if (column) {
-          var isTableType = $scope.allTables.some(function(table) {
-            return table.name === column.type;
-          });
-          if (isTableType) {
+          if (isTableType(column.type)) {
             queryKey += '._key';
           }
         }
@@ -210,12 +213,23 @@ angular.module('groongaAdminApp')
             } else {
               localName = source.split('.')[1];
             }
+
+            var indexName = localName;
+            var sourceColumn = $scope.allColumns.find(function(column) {
+              return column.name === localName;
+            });
+            if (sourceColumn && isTableType(sourceColumn.type)) {
+              indexName += '._key';
+            }
+
             var inUse = true;
             if (matchColumns) {
-              inUse = matchColumns.indexOf(localName) !== -1;
+              inUse = matchColumns.indexOf(indexName) !== -1;
             }
+
             $scope.indexedColumns.push({
-              name: localName,
+              name: indexName,
+              label: localName,
               inUse: inUse
             });
           });
@@ -223,14 +237,6 @@ angular.module('groongaAdminApp')
       }
 
       function extractTableInfo(table) {
-        if (table.name === $scope.table) {
-          var idColumn = {
-            name: '_id',
-            range: 'UInt32'
-          };
-          $scope.allColumns.push(createColumnInfo(idColumn));
-        }
-
         client.execute('column_list', {table: table.name})
           .success(function(response) {
             extractColumnsInfo(table, response.columns());
@@ -241,9 +247,27 @@ angular.module('groongaAdminApp')
         client.execute('table_list')
           .success(function(response) {
             $scope.allTables = response.tables();
-            $scope.allTables.forEach(function(table) {
-              extractTableInfo(table);
+
+            var currentTable = $scope.allTables.find(function(table) {
+              return table.name === $scope.table;
             });
+            var idColumn = {
+              name: '_id',
+              range: 'UInt32'
+            };
+            $scope.allColumns.push(createColumnInfo(idColumn));
+
+            client.execute('column_list', {table: currentTable.name})
+              .success(function(response) {
+                extractColumnsInfo(currentTable, response.columns());
+
+                $scope.allTables.forEach(function(table) {
+                  if (table.name === currentTable.name) {
+                    return;
+                  }
+                  extractTableInfo(table);
+                });
+              });
           });
       }
 

  Modified: app/views/tables/search.html (+1 -1)
===================================================================
--- app/views/tables/search.html    2014-11-10 19:54:32 +0900 (9172a76)
+++ app/views/tables/search.html    2014-11-17 12:00:12 +0900 (3410b41)
@@ -73,7 +73,7 @@
             <label>
               <input type="checkbox"
                      ng-model="indexedColumn.inUse">
-              {{indexedColumn.name}}
+              {{indexedColumn.label}}
             </label>
           </span>
         </div>
-------------- next part --------------
HTML����������������������������...
Download 



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