[Groonga-commit] groonga/groonga-admin at 3dbf033 [master] Support creating a new simple column

Back to archive index

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 &gt; 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 



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