Kouhei Sutou
null+****@clear*****
Tue Nov 4 15:10:16 JST 2014
Kouhei Sutou 2014-11-04 15:10:16 +0900 (Tue, 04 Nov 2014) New Revision: dda8fb2934711134a778b95eb793913ebc2cc031 https://github.com/groonga/groonga-admin/commit/dda8fb2934711134a778b95eb793913ebc2cc031 Message: Split large function Modified files: app/scripts/controllers/table-search-controller.js app/scripts/groonga-client/response/table-list.js Modified: app/scripts/controllers/table-search-controller.js (+49 -36) =================================================================== --- app/scripts/controllers/table-search-controller.js 2014-11-04 15:10:02 +0900 (c223482) +++ app/scripts/controllers/table-search-controller.js 2014-11-04 15:10:16 +0900 (4999468) @@ -56,46 +56,59 @@ angular.module('groongaAdminApp') $location.search({}); } - function fillOptions() { - client.execute('table_list') + function extractTableInfo(table) { + if (table.name === $scope.table) { + $scope.outputColumns.push({name: '_id', inUse: true}); + if (table.hasKey) { + $scope.outputColumns.push({name: '_key', inUse: true}); + } + } + + client.execute('column_list', {table: table.name}) .success(function(response) { - response.tables().forEach(function(table) { - client.execute('column_list', {table: table.name}) - .success(function(response) { - response.columns().forEach(function(column) { - if (!column.isIndex) { - return; - } - if (column.range !== $scope.table) { - return; - } - var matchColumns = $scope.parameters.match_columns; - column.sources.forEach(function(source) { - var localName = source.split('.')[1]; - var inUse = true; - if (matchColumns) { - inUse = matchColumns.indexOf(localName) !== -1; - } - $scope.indexedColumns.push({name: localName, inUse: inUse}); - }); - }); - }); - }); + extractColumnsInfo(table, response.columns()); + }); + } + + function extractColumnsInfo(table, columns) { + if (table.name === $scope.table) { + var outputColumns = $scope.parameters.output_columns; + columns.forEach(function(column) { + if (column.isIndex) { + return; + } + var inUse = true; + if (outputColumns) { + inUse = outputColumns.indexOf(column.name) !== -1; + } + $scope.outputColumns.push({name: column.name, inUse: inUse}); + }); + } + + columns.forEach(function(column) { + if (!column.isIndex) { + return; + } + if (column.range !== $scope.table) { + return; + } + var matchColumns = $scope.parameters.match_columns; + column.sources.forEach(function(source) { + var localName = source.split('.')[1]; + var inUse = true; + if (matchColumns) { + inUse = matchColumns.indexOf(localName) !== -1; + } + $scope.indexedColumns.push({name: localName, inUse: inUse}); }); + }); + } - client.execute('column_list', {table: $scope.table}) + function fillOptions() { + client.execute('table_list') .success(function(response) { - var outputColumns = $scope.parameters.output_columns; - console.log(response.columns()); - response.columns().forEach(function(column) { - if (column.isIndex) { - return; - } - var inUse = true; - if (outputColumns) { - inUse = outputColumns.indexOf(column.name) !== -1; - } - $scope.outputColumns.push({name: column.name, inUse: inUse}); + response.tables().forEach(function(table) { + extractTableInfo(table); }); }); } Modified: app/scripts/groonga-client/response/table-list.js (+16 -1) =================================================================== --- app/scripts/groonga-client/response/table-list.js 2014-11-04 15:10:02 +0900 (e99d99c) +++ app/scripts/groonga-client/response/table-list.js 2014-11-04 15:10:16 +0900 (ea7cf7c) @@ -23,8 +23,23 @@ return this.body().slice(1).map(function(tableProperties) { var table = {}; parameters.forEach(function(parameter, index) { - table[parameter.name] = tableProperties[index]; + var name = parameter.name; + var value = tableProperties[index]; + switch (name) { + case 'flags': + value = value.split('|'); + break; + case 'source': + name = 'sources'; + break; + } + table[name] = value; }); + table.isArray = table.flags.indexOf('TABLE_NO_KEY') != -1; + table.isHashTable = table.flags.indexOf('TABLE_HASH_KEY') != -1; + table.isPatriciaTrie = table.flags.indexOf('TABLE_PAT_KEY') != -1; + table.isDoublArrayTrie = table.flags.indexOf('TABLE_DAT_KEY') != -1; + table.hasKey = !table.isArray; return table; }); }; -------------- next part -------------- HTML����������������������������...下載