You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by se...@apache.org on 2015/07/16 22:47:45 UTC
[5/9] incubator-ignite git commit: IGNITE-843: Deleted old
persistence code.
IGNITE-843: Deleted old persistence code.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/949e37c6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/949e37c6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/949e37c6
Branch: refs/heads/ignite-1121
Commit: 949e37c6df74c5c8f617b46d698cd010bcc3e195
Parents: 5483c51
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 16 22:47:43 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 16 22:47:43 2015 +0700
----------------------------------------------------------------------
modules/web-control-center/nodejs/app.js | 2 -
.../nodejs/controllers/models/persistence.json | 66 ----
.../controllers/persistence-controller.js | 213 ------------
.../nodejs/routes/persistence.js | 320 -------------------
.../nodejs/tests/routes/persistence.js | 32 --
.../nodejs/views/configuration/persistence.jade | 114 -------
6 files changed, 747 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/949e37c6/modules/web-control-center/nodejs/app.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/app.js b/modules/web-control-center/nodejs/app.js
index c9b79ab..8c347db 100644
--- a/modules/web-control-center/nodejs/app.js
+++ b/modules/web-control-center/nodejs/app.js
@@ -29,7 +29,6 @@ var publicRoutes = require('./routes/public');
var clustersRouter = require('./routes/clusters');
var cachesRouter = require('./routes/caches');
var metadataRouter = require('./routes/metadata');
-var persistenceRouter = require('./routes/persistence');
var summary = require('./routes/summary');
var adminRouter = require('./routes/admin');
var profileRouter = require('./routes/profile');
@@ -120,7 +119,6 @@ app.use('/profile', mustAuthenticated, profileRouter);
app.use('/configuration/clusters', clustersRouter);
app.use('/configuration/caches', cachesRouter);
app.use('/configuration/metadata', metadataRouter);
-app.use('/configuration/persistence', persistenceRouter);
app.use('/configuration/summary', summary);
app.use('/sql', sqlRouter);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/949e37c6/modules/web-control-center/nodejs/controllers/models/persistence.json
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/controllers/models/persistence.json b/modules/web-control-center/nodejs/controllers/models/persistence.json
deleted file mode 100644
index edf5344..0000000
--- a/modules/web-control-center/nodejs/controllers/models/persistence.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "connection": [
- {
- "label": "Name",
- "type": "text",
- "model": "name",
- "required": true
- },
- {
- "label": "Database type",
- "type": "dropdown",
- "model": "dbType",
- "placeholder": "Choose database",
- "items": "databases",
- "tip": [
- "Select database type to connect for loading tables metadata."
- ]
- },
- {
- "label": "Database name",
- "type": "text",
- "model": "dbName",
- "tip": [
- "Database name to connect for loading tables metadata."
- ]
- },
- {
- "label": "Host",
- "type": "text",
- "model": "host",
- "placeholder": "IP address or host",
- "tip": [
- "IP address or host name where database server deployed."
- ]
- },
- {
- "label": "Port",
- "type": "number",
- "model": "port",
- "max": 65535,
- "placeholder": "",
- "tip": [
- "Port number for connecting to database."
- ]
- },
- {
- "label": "User",
- "type": "text",
- "model": "user",
- "placeholder": "",
- "tip": [
- "User name for connecting to database."
- ]
- },
- {
- "label": "Password",
- "type": "password",
- "model": "password",
- "placeholder": "",
- "tip": [
- "Password for connecting to database.",
- "Note, password would not be saved."
- ]
- }
- ]
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/949e37c6/modules/web-control-center/nodejs/controllers/persistence-controller.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/controllers/persistence-controller.js b/modules/web-control-center/nodejs/controllers/persistence-controller.js
deleted file mode 100644
index a77c445..0000000
--- a/modules/web-control-center/nodejs/controllers/persistence-controller.js
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-controlCenterModule.controller('persistenceController', ['$scope', '$http', 'commonFunctions', function ($scope, $http, commonFunctions) {
- $scope.joinTip = commonFunctions.joinTip;
- $scope.getModel = commonFunctions.getModel;
-
- $scope.databases = [
- {value: 'oracle', label: 'Oracle database'},
- {value: 'db2', label: 'IBM DB2'},
- {value: 'mssql', label: 'MS SQL Server'},
- {value: 'postgre', label: 'PostgreSQL'},
- {value: 'mysql', label: 'MySQL'},
- {value: 'h2', label: 'H2 database'}
- ];
-
- $scope.connection = [];
-
- $http.get('/models/persistence.json')
- .success(function (data) {
- $scope.connection = data.connection;
- })
- .error(function (errMsg) {
- commonFunctions.showError(errMsg);
- });
-
- $scope.persistences = [];
-
- // When landing on the page, get persistences and show them.
- $http.post('persistence/list')
- .success(function (data) {
- $scope.spaces = data.spaces;
- $scope.persistences = data.persistences;
-
- var restoredItem = angular.fromJson(sessionStorage.persistenceBackupItem);
-
- if (restoredItem && restoredItem._id) {
- var idx = _.findIndex($scope.persistences, function (persistence) {
- return persistence._id == restoredItem._id;
- });
-
- if (idx >= 0) {
- $scope.selectedItem = $scope.persistences[idx];
-
- $scope.backupItem = restoredItem;
- }
- else
- sessionStorage.removeItem('persistenceBackupItem');
- }
- else
- $scope.backupItem = restoredItem;
-
- $scope.$watch('backupItem', function (val) {
- if (val)
- sessionStorage.persistenceBackupItem = angular.toJson(val);
- }, true);
- })
- .error(function (errMsg) {
- commonFunctions.showError(errMsg);
- });
-
- $scope.selectItem = function (item) {
- $scope.selectedItem = item;
- $scope.backupItem = angular.copy(item);
- };
-
- // Add new persistence.
- $scope.createItem = function () {
- $scope.backupItem = {database: 'oracle'};
- $scope.backupItem.space = $scope.spaces[0]._id;
- };
-
- // Save persistence in db.
- $scope.saveItem = function () {
- var item = $scope.backupItem;
-
- $http.post('save', item)
- .success(function (_id) {
- var i = _.findIndex($scope.persistences, function (persistence) {
- return persistence._id == _id;
- });
-
- if (i >= 0)
- angular.extend($scope.persistences[i], item);
- else {
- item._id = _id;
-
- $scope.persistences.push(item);
- }
-
- $scope.selectItem(item);
- })
- .error(function (errMsg) {
- commonFunctions.showError(errMsg);
- });
- };
-
- $scope.removeItem = function () {
- var _id = $scope.selectedItem._id;
-
- $http.post('remove', {_id: _id})
- .success(function () {
- var i = _.findIndex($scope.persistences, function (persistence) {
- return persistence._id == _id;
- });
-
- if (i >= 0) {
- $scope.persistences.splice(i, 1);
-
- $scope.selectedItem = undefined;
- $scope.backupItem = undefined;
- }
- })
- .error(function (errMsg) {
- commonFunctions.showError(errMsg);
- });
- };
-
- $scope.data = {
- curTableIdx: -1,
- curFieldIdx: -1,
- curKeyClass: '',
- curValueClass: '',
- curJavaName: '',
- curJavaType: '',
- tables: [
- {schemaName: 'Schema1', use: true},
- {schemaName: 'Schema1', use: true, tableName: 'Table1', keyClass: 'KeyClass1', valueClass: 'ValueClass1',
- fields: [
- {use: true, key: true, ak: true, dbName: 'name1', dbType: 'dbType1', javaName: 'javaName1', javaType: 'javaType1'},
- {use: true, key: false, ak: false, dbName: 'name2', dbType: 'dbType2', javaName: 'javaName2', javaType: 'javaType2'},
- {use: false, key: false, ak: false, dbName: 'name3', dbType: 'dbType3', javaName: 'javaName3', javaType: 'javaType3'}
- ]
- },
- {schemaName: 'Schema2 with very long name', use: false},
- {schemaName: 'Schema2', use: false, tableName: 'Table2', keyClass: 'KeyClass2', valueClass: 'ValueClass2',
- fields: [
- {use: true, key: true, ak: true, dbName: 'name4', dbType: 'dbType4', javaName: 'javaName4', javaType: 'javaType4'},
- {use: true, key: false, ak: false, dbName: 'name5', dbType: 'dbType5', javaName: 'javaName5', javaType: 'javaType5'},
- {use: false, key: false, ak: false, dbName: 'name6', dbType: 'dbType6', javaName: 'javaName6', javaType: 'javaType6'}
- ]},
- {schemaName: 'Schema2', use: false, tableName: 'Table3', keyClass: 'KeyClass3', valueClass: 'ValueClass3',
- fields: [
- {use: true, key: true, ak: true, dbName: 'name7', dbType: 'dbType7', javaName: 'javaName7', javaType: 'javaType7'},
- {use: true, key: false, ak: false, dbName: 'name8', dbType: 'dbType8', javaName: 'javaName8', javaType: 'javaType8'},
- {use: false, key: false, ak: false, dbName: 'name9', dbType: 'dbType9', javaName: 'javaName9', javaType: 'javaType9'},
- {use: false, key: false, ak: false, dbName: 'name10', dbType: 'dbType10', javaName: 'javaName10', javaType: 'javaType10'},
- {use: false, key: false, ak: false, dbName: 'name11', dbType: 'dbType11', javaName: 'javaName11', javaType: 'javaType11'},
- {use: false, key: false, ak: false, dbName: 'name12', dbType: 'dbType12', javaName: 'javaName12', javaType: 'javaType12'}
- ]}]
- };
-
- $scope.selectSchema = function (idx) {
- var data = $scope.data;
- var tables = data.tables;
- var schemaName = tables[idx].schemaName;
- var use = tables[idx].use;
-
- for (var i = idx + 1; i < tables.length; i++) {
- var item = tables[i];
-
- if (item.schemaName == schemaName && item.tableName)
- item.use = use;
- else
- break;
- }
-
- data.curTableIdx = -1;
- data.curFieldIdx = -1;
- };
-
- $scope.selectTable = function (idx) {
- var data = $scope.data;
-
- data.curTableIdx = idx;
- data.curFieldIdx = -1;
-
- if (idx >= 0) {
- var tbl = data.tables[idx];
-
- data.curKeyClass = tbl.keyClass;
- data.curValueClass = tbl.valueClass;
- }
- };
-
- $scope.selectField = function (idx) {
- var data = $scope.data;
-
- data.curFieldIdx = idx;
-
- if (idx >= 0) {
- var fld = data.tables[data.curTableIdx].fields[idx];
-
- data.curJavaName = fld.javaName;
- data.curJavaType = fld.javaType;
- }
- };
- }]
-);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/949e37c6/modules/web-control-center/nodejs/routes/persistence.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/routes/persistence.js b/modules/web-control-center/nodejs/routes/persistence.js
deleted file mode 100644
index 44d8b69..0000000
--- a/modules/web-control-center/nodejs/routes/persistence.js
+++ /dev/null
@@ -1,320 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var router = require('express').Router();
-var db = require('../db');
-var ds = require('../helpers/data-structures.js'), jdbcTypes = ds.jdbcTypes, javaTypes = ds.javaTypes;
-
-/* GET persistence page. */
-router.get('/', function (req, res) {
- res.render('configuration/persistence');
-});
-
-/**
- * Get spaces and persistences accessed for user account.
- *
- * @param req Request.
- * @param res Response.
- */
-router.post('/list', function (req, res) {
- var user_id = req.currentUserId();
-
- // Get owned space and all accessed space.
- db.Space.find({$or: [{owner: user_id}, {usedBy: {$elemMatch: {account: user_id}}}]}, function (err, spaces) {
- if (err)
- return res.status(500).send(err.message);
-
- var space_ids = spaces.map(function (value) {
- return value._id;
- });
-
- // Get all persistences for spaces.
- db.Persistence.find({space: {$in: space_ids}}).sort('name').exec(function (err, persistences) {
- if (err)
- return res.status(500).send(err.message);
-
- res.json({spaces: spaces, persistences: persistences});
- });
- });
-});
-
-/**
- * Save persistence.
- */
-router.post('/save', function (req, res) {
- if (req.body._id)
- db.Persistence.update({_id: req.body._id}, req.body, {upsert: true}, function (err) {
- if (err)
- return res.status(500).send(err.message);
-
- res.send(req.body._id);
- });
- else {
- db.CacheTypeMetadata.findOne({name: req.body.name}, function (err, persistence) {
- if (err)
- return res.status(500).send(err.message);
-
- if (persistence)
- return res.status(500).send('Persistence with name: "' + persistence.name + '" already exist.');
-
- (new db.Persistence(req.body)).save(function (err, persistence) {
- if (err)
- return res.status(500).send(err.message);
-
- res.send(persistence._id);
- });
- });
- }
-});
-
-/**
- * Remove persistence by ._id.
- */
-router.post('/remove', function (req, res) {
- db.Persistence.remove(req.body, function (err) {
- if (err)
- return res.status(500).send(err.message);
-
- res.sendStatus(200);
- })
-});
-
-// simple countdown latch
-function CDL(countdown, completion) {
- this.countDown = function () {
- if (--countdown < 1) completion();
- };
-}
-
-/**
- * @param name Source name.
- * @return String converted to java class name notation.
- */
-function toJavaClassName(name) {
- var len = name.length;
-
- var buf = [];
-
- var capitalizeNext = true;
-
- for (var i = 0; i < len; i++) {
- var ch = name.charAt(i);
-
- if (' ' == ch || '_' == ch)
- capitalizeNext = true;
- else if (capitalizeNext) {
- buf.push(ch.toUpperCase());
-
- capitalizeNext = false;
- }
- else
- buf.push(ch.toLowerCase());
- }
-
- return buf.join("");
-}
-
-/**
- * @param name Source name.
- * @return String converted to java field name notation.
- */
-function toJavaFieldName(name) {
- var javaName = toJavaClassName(name);
-
- return javaName.charAt(0).toLowerCase() + javaName.substring(1);
-}
-
-
-//
-router.post('/pg', function (req, res) {
- var pg = require('pg');
- var util = require('util');
-
- var host = req.body.host;
- var port = req.body.port;
-
- var username = req.body.username;
- var password = req.body.password;
-
- var dbName = req.body.dbName;
-
- var connectionString = util.format('postgres://%s:%s@%s:%d/%s', username, password, host, port, dbName);
-
- pg.connect(connectionString, function (err, client, done) {
- var sendError = function (err) {
- done();
-
- res.status(500).send(err.message);
- };
-
- if (err)
- return sendError(err);
-
- var sendResponse = function () {
- done();
-
- console.log(JSON.stringify(tables));
-
- res.status(200).send(tables);
- }, jdbcType = function (dataType) {
- switch (dataType) {
- case 'smallint':
- case 'int2':
- return jdbcTypes.SMALLINT;
- case 'integer':
- case 'int':
- case 'int4':
- return jdbcTypes.INTEGER;
- case 'oid':
- case 'bigint':
- case 'int8':
- return jdbcTypes.BIGINT;
- case 'money':
- return jdbcTypes.DOUBLE;
- case 'decimal':
- case 'numeric':
- return jdbcTypes.NUMERIC;
- case 'float4':
- return jdbcTypes.REAL;
- case 'float':
- case 'float8':
- return jdbcTypes.DOUBLE;
- case 'char':
- case 'bpchar':
- return jdbcTypes.CHAR;
- case 'varchar':
- case 'text':
- case 'name':
- return jdbcTypes.VARCHAR;
- case 'bytea':
- return jdbcTypes.BINARY;
- case 'boolean':
- case 'bool':
- case 'bit':
- return jdbcTypes.BIT;
- case 'date':
- return jdbcTypes.DATE;
- case 'time':
- case 'timetz':
- return jdbcTypes.TIME;
- case 'timestamp':
- case 'timestamptz':
- return jdbcTypes.TIMESTAMP;
- }
- }, javaType = function (dataType) {
- switch (dataType) {
- case jdbcTypes.SMALLINT:
- case jdbcTypes.INTEGER:
- return javaTypes.INTEGER;
- case jdbcTypes.BIGINT:
- return javaTypes.LONG;
- case jdbcTypes.DOUBLE:
- return javaTypes.DOUBLE;
- case jdbcTypes.NUMERIC:
- return javaTypes.BIGDECIMAL;
- case jdbcTypes.REAL:
- return javaTypes.FLOAT;
- case jdbcTypes.CHAR:
- case jdbcTypes.VARCHAR:
- return javaTypes.STRING;
- case jdbcTypes.BINARY:
- return javaTypes.BYTE_ARRAY;
- case jdbcTypes.BIT:
- return javaTypes.BOOLEAN;
- case jdbcTypes.DATE:
- return javaTypes.DATE;
- case jdbcTypes.TIME:
- return javaTypes.TIME;
- case jdbcTypes.TIMESTAMP:
- return javaTypes.TIMESTAMP;
- }
- };
-
- var tables = [];
-
- client.query(
- 'SELECT table_schema, table_name ' +
- 'FROM information_schema.tables ' +
- 'WHERE table_schema = ANY (current_schemas(false)) ' +
- 'ORDER BY table_schema, table_name', function (err, result) {
-
- if (err)
- return sendError(err);
-
- if (result.rows.length > 0) {
- // usage
- var latch = new CDL(result.rows.length, sendResponse);
-
- result.rows.forEach(function (table) {
-
- var indisprimary = client.query(
- "SELECT a.attname " +
- "FROM pg_index i " +
- "JOIN pg_attribute a " +
- " ON a.attrelid = i.indrelid AND a.attnum = ANY(i.indkey) " +
- "WHERE i.indrelid = $1::regclass AND i.indisprimary", [table.table_schema + '.' + table.table_name],
- function (err, result) {
- if (err)
- return sendError(err);
-
- var pks = result.rows.map(function (row) {
- return row.attname;
- });
-
- client.query(
- 'SELECT column_name, udt_name, is_nullable ' +
- 'FROM information_schema.columns ' +
- 'WHERE table_schema = $1 AND table_name = $2', [table.table_schema, table.table_name],
- function (err, result) {
- if (err)
- return sendError(err);
-
- var cols = [];
-
- result.rows.forEach(function (column) {
- var dataType = jdbcType(column.udt_name);
-
- cols.push({
- pk: pks.indexOf(column.column_name) >= 0,
- use: true,
- notNull: column.is_nullable == 'NO',
- dbName: column.column_name,
- dbType: dataType,
- javaName: toJavaFieldName(column.column_name),
- javaType: javaType(dataType)
- });
- });
-
- var valClsName = toJavaClassName(table.table_name);
-
- tables.push({
- use: pks.length > 0,
- schemaName: table.table_schema, tableName: table.table_name,
- keyClass: valClsName + 'Key', valueClass: valClsName,
- columns: cols
- });
-
- latch.countDown();
- })
- });
- });
- }
- });
- });
-});
-
-module.exports = router;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/949e37c6/modules/web-control-center/nodejs/tests/routes/persistence.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/tests/routes/persistence.js b/modules/web-control-center/nodejs/tests/routes/persistence.js
deleted file mode 100644
index 4d25950..0000000
--- a/modules/web-control-center/nodejs/tests/routes/persistence.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var request = require('supertest'),
- should = require('should'),
- express = require('express'),
- persistenceRouter = require('../../routes/persistence');
-
-var app = express();
-
-app.use(require('body-parser').json());
-
-app.use('/rest/persistence', persistenceRouter);
-
-describe('request.persistence', function(){
- var agent = request.agent(app);
-
- it('should return 200', function(done){
- agent
- .post('/rest/persistence/pg')
- .send({
- username: 'nva',
- password: 'nva.141',
- host: 'localhost',
- port: '5432',
- dbName: 'ggmonitor'
- })
- .end(function(err, res) {
- if (err)
- throw err;
-
- done();
- });
- });
-});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/949e37c6/modules/web-control-center/nodejs/views/configuration/persistence.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/configuration/persistence.jade b/modules/web-control-center/nodejs/views/configuration/persistence.jade
deleted file mode 100644
index b8973d7..0000000
--- a/modules/web-control-center/nodejs/views/configuration/persistence.jade
+++ /dev/null
@@ -1,114 +0,0 @@
-//-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-extends sidebar
-
-append scripts
- script(src='/persistence-controller.js')
-
-include ../includes/controls
-
-mixin dbcheck(chk)
- input(type='checkbox' style='margin-left: 5px' ng-checked=chk)
-
-block content
- .docs-header
- h1 Create and configure Ignite persistence
- hr
- .docs-body(ng-controller='persistenceController')
- .links(ng-hide='persistences.length == 0')
- table(st-table='persistences')
- tbody
- tr(ng-repeat='row in persistences track by row._id')
- td.col-sm-6(ng-class='{active: row._id == selectedItem._id}')
- a(ng-click='selectItem(row)') {{$index + 1}}) {{row.name}}, {{row.database | displayValue:databases:'Database not set'}}
- button.btn.btn-primary(ng-click='createItem()') Add
- hr
- form.form-horizontal(name='inputForm' ng-if='backupItem' novalidate)
- div(bs-collapse data-start-collapsed='false')
- .panel.panel-default
- .panel-heading
- h3
- a(bs-collapse-toggle) Connection
- .panel-collapse(bs-collapse-target)
- .panel-body
- .settings-row(ng-repeat='field in connection')
- +form-row
- div(bs-collapse data-start-collapsed='true' ng-hide='data.tables.length == 0')
- .panel.panel-default
- .panel-heading
- h3
- a(bs-collapse-toggle) Metadata
- .panel-collapse(bs-collapse-target)
- .panel-body
- div(ng-hide='data.tables.length == 0')
- table.table-bordered.table-condensed.links-edit-small-padding.col-sm-12(st-table='data.tables')
- thead
- tr
- th.col-sm-3 Schema/Table
- th Key class
- th Value class
- tbody
- tr(ng-repeat='row in data.tables')
- td(colspan='{{row.tableName ? 1 : 3}}')
- div.checkbox(ng-if='!row.tableName')
- label(ng-click='selectSchema($index)')
- input(type='checkbox' ng-checked='row.use')
- | {{row.schemaName}}
- div.checkbox(ng-if='row.tableName')
- label(style='padding-left: 30px' ng-click='selectTable($index)')
- input(type='checkbox' ng-checked = 'row.use')
- | {{row.tableName}}
- td(ng-if='row.tableName')
- a(ng-show='data.curTableIdx != $index' ng-click='selectTable($index)') {{row.keyClass}}
- input.form-control(type='text' ng-show='data.curTableIdx == $index' ng-model='data.curKeyClass' placeholder='Key class full name')
- td(ng-if='row.tableName')
- a(ng-show='data.curTableIdx != $index' ng-click='selectTable($index)') {{row.valueClass}}
- input.form-control(type='text' ng-show='data.curTableIdx == $index' ng-model='data.curValueClass' placeholder='Value class full name')
- div(ng-hide='data.curTableIdx < 0')
- table.table-bordered.table-condensed.links-edit-small-padding.col-sm-12(st-table='data.tables[data.curTableIdx].fields')
- thead
- tr
- th(style='width:45px') Use
- th(style='width:45px') Key
- th(style='width:45px') Ak
- th DB Name
- th DB Type
- th Java Name
- th Java Type
- tbody
- tr(ng-repeat='row in data.tables[data.curTableIdx].fields')
- td
- +dbcheck('row.use')
- td
- +dbcheck('row.key')
- td
- +dbcheck('row.ak')
- td
- label {{row.dbName}}
- td
- label {{row.dbType}}
- td
- a(ng-show='data.curFieldIdx != $index' ng-click='selectField($index)') {{row.javaName}}
- input.form-control(type='text' ng-show='data.curFieldIdx == $index' ng-model='data.curJavaName' placeholder='Field Java name')
- td
- a(ng-show='data.curFieldIdx != $index' ng-click='selectField($index)') {{row.javaType}}
- input.form-control(type='text' ng-show='data.curFieldIdx == $index' ng-model='data.curJavaType' placeholder='Field Java type')
- button.btn.btn-primary(ng-disabled='inputForm.$invalid' ng-click='saveItem()') Save
- button.btn.btn-primary.btn-second(ng-show='backupItem._id' ng-click='removeItem()') Remove
- button.btn.btn-primary.btn-second(ng-click='reloadMetadata()') Reload
-
-