Kouhei Sutou
null+****@clear*****
Sat Jan 3 17:15:14 JST 2015
Kouhei Sutou 2015-01-03 17:15:14 +0900 (Sat, 03 Jan 2015) New Revision: 3dbf03321f716a30bf2a2f08141a56a733023cab https://github.com/groonga/groonga-admin/commit/3dbf03321f716a30bf2a2f08141a56a733023cab Message: Support creating a new simple column Added files: app/scripts/controllers/column-new-controller.js app/views/columns/new.html Modified files: app/index.html app/scripts/app.js Modified: app/index.html (+1 -0) =================================================================== --- app/index.html 2015-01-03 17:14:43 +0900 (4f8e200) +++ app/index.html 2015-01-03 17:15:14 +0900 (c0eb7f4) @@ -91,6 +91,7 @@ <script src="scripts/controllers/table-new-controller.js"></script> <script src="scripts/controllers/table-search-controller.js"></script> <script src="scripts/controllers/column-show-controller.js"></script> + <script src="scripts/controllers/column-new-controller.js"></script> <!-- endbuild --> </body> </html> Modified: app/scripts/app.js (+4 -0) =================================================================== --- app/scripts/app.js 2015-01-03 17:14:43 +0900 (32c8864) +++ app/scripts/app.js 2015-01-03 17:15:14 +0900 (7895291) @@ -41,6 +41,10 @@ angular templateUrl: 'views/tables/search.html', controller: 'TableSearchController' }) + .when('/tables/:table/columns/_new', { + templateUrl: 'views/columns/new.html', + controller: 'ColumnNewController' + }) .when('/tables/:table/columns/:column', { templateUrl: 'views/columns/show.html', controller: 'ColumnShowController' Added: app/scripts/controllers/column-new-controller.js (+68 -0) 100644 =================================================================== --- /dev/null +++ app/scripts/controllers/column-new-controller.js 2015-01-03 17:15:14 +0900 (47736d6) @@ -0,0 +1,68 @@ +'use strict'; + +/** + * @ngdoc function + * @name groongaAdminApp.controller:ColumnNewController + * @description + * # ColumnNewController + * Controller of the groongaAdminApp + */ +angular.module('groongaAdminApp') + .controller('ColumnNewController', [ + '$scope', '$routeParams', '$location', '$http', 'schemaLoader', + function ($scope, $routeParams, $location, $http, schemaLoader) { + var schema; + var client = new GroongaClient($http); + + function initialize() { + $scope.table = { + name: $routeParams.table + }; + $scope.availableTypes = { + scalar: { + label: 'Scalar', + flag: 'COLUMN_SCALAR' + }, + vector: { + label: 'Vector', + flag: 'COLUMN_VECTOR' + }, + index: { + label: 'Index', + flag: 'COLUMN_INDEX' + } + }; + $scope.column = { + type: $scope.availableTypes.scalar, + sources: [] + }; + $scope.submit = submit; + } + + function submit() { + var parameters = { + table: $scope.table.name, + name: $scope.column.name, + flags: [$scope.column.type.flag].join('|'), + type: $scope.column.valueType, + source: $scope.column.sources.join(',') + }; + var request = client.execute('column_create', parameters); + request.success(function(response) { + if (response.isCreated()) { + schemaLoader().reload(); + $location.url('/tables/' + parameters.table + + '/columns/' + parameters.name); + } else { + var errorMessage = response.errorMessage(); + $scope.message = 'Failed to create the column: ' + errorMessage; + } + }); + } + + initialize(); + schemaLoader() + .then(function(_schema) { + schema = _schema; + }); + }]); Added: app/views/columns/new.html (+62 -0) 100644 =================================================================== --- /dev/null +++ app/views/columns/new.html 2015-01-03 17:15:14 +0900 (6b0928a) @@ -0,0 +1,62 @@ +<div class="container-fluid" ng-controller="ColumnNewController"> + <ol class="breadcrumb"> + <li><a href="#/">Top</a></li> + <li><a href="#/tables/">Tables</a></li> + <li><a href="#/tables/{{table.name}}">{{table.name}}</a></li> + </ol> + + <div class="content"> + <div class="alert alert-warning" ng-show="message.length > 0"> + <p>{{message}}</p> + </div> + + <h2>{{table.name}}: Create a new column</h2> + <form name="tableForm" class="table-form" ng-submit="submit()"> + <div class="form-group"> + <label for="table" class="control-label">Table</label> + <input id="table" + name="table" + type="text" + class="form-control" + ng-model="table.name" + disabled="true" + required> + </div> + <div class="form-group" + ng-class="{'has-error': tableForm.name.$invalid}"> + <label for="name" class="control-label">Name</label> + <input id="name" + name="name" + type="text" + class="form-control" + ng-model="column.name" + required> + </div> + <div class="form-group" + ng-class="{'has-error': tableForm.type.$invalid}"> + <label for="type" class="control-label">Type</label> + <select id="type" + name="type" + type="select" + class="form-control" + ng-model="column.type" + ng-options="type.label for (name, type) in availableTypes"> + </select> + </div> + <div class="form-group" + ng-class="{'has-error': tableForm.keyType.$invalid}"> + <label for="value-type" class="control-label">Value type</label> + <input id="value-type" + name="valueType" + type="text" + class="form-control" + ng-model="column.valueType"> + </div> + <div class="form-group"> + <div class="form-button"> + <button type="submit">Submit</button> + </div> + </div> + </form> + </div> +</div> -------------- next part -------------- HTML����������������������������...Download