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:41 UTC
[1/9] incubator-ignite git commit: # ignite-843 Fixed xml generation
for client mode
Repository: incubator-ignite
Updated Branches:
refs/heads/ignite-1121 0dfb521a7 -> 6e8e922fa
# ignite-843 Fixed xml generation for client mode
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/2ab4d67b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/2ab4d67b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/2ab4d67b
Branch: refs/heads/ignite-1121
Commit: 2ab4d67b648676d4f7967c26d5bd9ec0e6f4a3f4
Parents: 400bc56
Author: Andrey <an...@gridgain.com>
Authored: Thu Jul 16 16:12:20 2015 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Thu Jul 16 16:12:20 2015 +0700
----------------------------------------------------------------------
.../web-control-center/nodejs/controllers/summary-controller.js | 2 +-
modules/web-control-center/nodejs/routes/generator/xml.js | 3 ---
2 files changed, 1 insertion(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2ab4d67b/modules/web-control-center/nodejs/controllers/summary-controller.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/controllers/summary-controller.js b/modules/web-control-center/nodejs/controllers/summary-controller.js
index 8679665..cb21e8b 100644
--- a/modules/web-control-center/nodejs/controllers/summary-controller.js
+++ b/modules/web-control-center/nodejs/controllers/summary-controller.js
@@ -32,7 +32,7 @@ controlCenterModule.controller('summaryController', ['$scope', '$http', 'commonF
{value: undefined, label: 'Not set'}
];
- $scope.backupItem = {nearCacheEnabled: true};
+ $scope.backupItem = {};
$http.get('/models/summary.json')
.success(function (data) {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2ab4d67b/modules/web-control-center/nodejs/routes/generator/xml.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/routes/generator/xml.js b/modules/web-control-center/nodejs/routes/generator/xml.js
index 8004c95..6fc7257 100644
--- a/modules/web-control-center/nodejs/routes/generator/xml.js
+++ b/modules/web-control-center/nodejs/routes/generator/xml.js
@@ -274,9 +274,6 @@ exports.generateClusterConfiguration = function(cluster, clientCache) {
var cache = cluster.caches[i];
- if (clientCache)
- _.merge(cache, clientCache);
-
generateCacheConfiguration(cache, res);
}
[3/9] incubator-ignite git commit: Merge remote-tracking branch
'origin/ignite-843' into ignite-843
Posted by se...@apache.org.
Merge remote-tracking branch 'origin/ignite-843' into ignite-843
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/ce98203b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/ce98203b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/ce98203b
Branch: refs/heads/ignite-1121
Commit: ce98203b953d97a30a419ada16e665c1d5150c24
Parents: 870f8bf 2ab4d67
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 16 16:51:01 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 16 16:51:01 2015 +0700
----------------------------------------------------------------------
.../web-control-center/nodejs/controllers/summary-controller.js | 2 +-
modules/web-control-center/nodejs/routes/generator/xml.js | 3 ---
2 files changed, 1 insertion(+), 4 deletions(-)
----------------------------------------------------------------------
[6/9] incubator-ignite git commit: IGNITE-843: Added missing class
name.
Posted by se...@apache.org.
IGNITE-843: Added missing class name.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/9cc79ae3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/9cc79ae3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/9cc79ae3
Branch: refs/heads/ignite-1121
Commit: 9cc79ae3e338a85b961b2cd72a6bff095a733553
Parents: 949e37c
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 16 23:08:55 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 16 23:08:55 2015 +0700
----------------------------------------------------------------------
modules/web-control-center/nodejs/db.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9cc79ae3/modules/web-control-center/nodejs/db.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/db.js b/modules/web-control-center/nodejs/db.js
index 8629f09..8286674 100644
--- a/modules/web-control-center/nodejs/db.js
+++ b/modules/web-control-center/nodejs/db.js
@@ -77,7 +77,7 @@ var CacheTypeMetadataSchema = new Schema({
ascendingFields: [{name: String, className: String}],
descendingFields: [{name: String, className: String}],
textFields: [String],
- groups: [{name: String, fields: [{field: String, direction: String}]}]
+ groups: [{name: String, fields: [{field: String, className: String, direction: String}]}]
});
exports.CacheTypeMetadata = mongoose.model('CacheTypeMetadata', CacheTypeMetadataSchema);
[4/9] incubator-ignite git commit: IGNITE-843 Implemented fixed side
bar on scroll.
Posted by se...@apache.org.
IGNITE-843 Implemented fixed side bar on scroll.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/5483c516
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/5483c516
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/5483c516
Branch: refs/heads/ignite-1121
Commit: 5483c5162168c73eda1c41ea4e8603d2e2ead522
Parents: ce98203
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 16 17:58:07 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 16 17:58:07 2015 +0700
----------------------------------------------------------------------
modules/web-control-center/nodejs/views/configuration/sidebar.jade | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5483c516/modules/web-control-center/nodejs/views/configuration/sidebar.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/configuration/sidebar.jade b/modules/web-control-center/nodejs/views/configuration/sidebar.jade
index 83362ed..7289f3e 100644
--- a/modules/web-control-center/nodejs/views/configuration/sidebar.jade
+++ b/modules/web-control-center/nodejs/views/configuration/sidebar.jade
@@ -27,7 +27,7 @@ mixin sidebar-item(ref, num, txt)
block container
.row
.col-sm-2.border-right.section-left.greedy
- .sidebar-nav
+ .sidebar-nav(bs-affix)
ul.menu(ng-controller='activeLink')
+sidebar-item('/configuration/clusters', 1, 'Clusters')
+sidebar-item('/configuration/metadata', 2, 'Metadata')
[9/9] incubator-ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-843' into ignite-1121
Posted by se...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-843' into ignite-1121
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/6e8e922f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/6e8e922f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/6e8e922f
Branch: refs/heads/ignite-1121
Commit: 6e8e922fa78298ce1f68c5793ac351b0457c77c1
Parents: 0dfb521 9cabdf6
Author: sevdokimov <se...@jetbrains.com>
Authored: Thu Jul 16 23:47:23 2015 +0300
Committer: sevdokimov <se...@jetbrains.com>
Committed: Thu Jul 16 23:47:23 2015 +0300
----------------------------------------------------------------------
modules/web-control-center/nodejs/app.js | 2 -
.../nodejs/controllers/caches-controller.js | 14 +-
.../nodejs/controllers/metadata-controller.js | 192 +++++++++--
.../nodejs/controllers/models/metadata.json | 11 +-
.../nodejs/controllers/models/persistence.json | 66 ----
.../controllers/persistence-controller.js | 213 ------------
.../nodejs/controllers/summary-controller.js | 2 +-
modules/web-control-center/nodejs/db.js | 2 +-
.../nodejs/routes/generator/xml.js | 3 -
.../nodejs/routes/metadata.js | 4 +-
.../nodejs/routes/persistence.js | 320 -------------------
.../nodejs/tests/routes/persistence.js | 32 --
.../nodejs/views/configuration/metadata.jade | 15 +-
.../nodejs/views/configuration/persistence.jade | 114 -------
.../nodejs/views/configuration/sidebar.jade | 2 +-
.../nodejs/views/configuration/summary.jade | 9 +-
.../nodejs/views/includes/controls.jade | 115 +++----
17 files changed, 242 insertions(+), 874 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6e8e922f/modules/web-control-center/nodejs/app.js
----------------------------------------------------------------------
[8/9] incubator-ignite git commit: IGNITE-843: Implemented more
compact table-simple and table-pair layout.
Posted by se...@apache.org.
IGNITE-843: Implemented more compact table-simple and table-pair layout.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/9cabdf6f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/9cabdf6f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/9cabdf6f
Branch: refs/heads/ignite-1121
Commit: 9cabdf6f24f5e8028cfc04d48f58d8edff28da33
Parents: 95f826f
Author: AKuznetsov <ak...@gridgain.com>
Authored: Fri Jul 17 01:10:09 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Fri Jul 17 01:10:09 2015 +0700
----------------------------------------------------------------------
.../nodejs/views/includes/controls.jade | 52 +++++++-------------
1 file changed, 17 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9cabdf6f/modules/web-control-center/nodejs/views/includes/controls.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/includes/controls.jade b/modules/web-control-center/nodejs/views/includes/controls.jade
index f99d5dd..302e7a3 100644
--- a/modules/web-control-center/nodejs/views/includes/controls.jade
+++ b/modules/web-control-center/nodejs/views/includes/controls.jade
@@ -26,9 +26,10 @@ mixin exclamation(mdl, err, msg)
i.fa.fa-exclamation-triangle.form-control-feedback(ng-show='inputForm["#{mdl}"].$error.#{err}' bs-tooltip data-title='#{msg}' type='button')
mixin table-pair(header, tblMdl, keyFld, valFld, keyPlaceholder, valPlaceholder)
- div
+ .col-sm-6
label.table-header #{header}:
+tipLabel('field.tip')
+ button.btn.btn-primary.fieldButton(ng-click='field.editIdx = -2') Add
table.links-edit.col-sm-12(st-table=tblMdl ng-show='#{tblMdl}.length > 0')
tbody
tr.col-sm-12(ng-repeat='item in #{tblMdl}')
@@ -44,11 +45,13 @@ mixin table-pair(header, tblMdl, keyFld, valFld, keyPlaceholder, valPlaceholder)
input.form-control.table-form-control(type='text' ng-model='curKey' placeholder=keyPlaceholder)
label /
input.form-control.table-form-control(type='text' ng-model='curValue' placeholder=valPlaceholder)
- .col-sm-6
- input.form-control(type='text' ng-model='newKey' ng-focus='field.editIdx = -1' placeholder=keyPlaceholder)
- .settings-row
- input.form-control(type='text' ng-model='newValue' ng-focus='field.editIdx = -1' placeholder=valPlaceholder)
- button.btn.btn-primary.fieldButton(ng-disabled='!newKey || !newValue' ng-click='field.editIdx = -1; tablePairAdd(field, newKey, newValue)') Add
+ .settings-row(ng-show='field.editIdx < -1')
+ .col-sm-6
+ i.tipField.fa.fa-floppy-o(ng-click='field.editIdx = tablePairAdd(field, newKey, newValue)')
+ .input-tip
+ input.form-control.table-form-control(type='text' ng-model='newKey' ng-focus='field.editIdx = -2' placeholder=keyPlaceholder)
+ label /
+ input.form-control.table-form-control(type='text' ng-model='newValue' ng-focus='field.editIdx = -2' placeholder=valPlaceholder)
mixin details-row
@@ -183,9 +186,10 @@ mixin form-row-custom(lblClasses, fieldClasses)
.details-row(ng-repeat='detail in field.details[#{fieldMdl}].fields')
+details-row
div(ng-switch-when='table-simple' ng-hide=fieldHide)&attributes(fieldCommon)
- div
+ .col-sm-6
label.table-header {{field.label}}:
+tipLabel('field.tableTip')
+ button.btn.btn-primary.fieldButton(ng-click='field.editIdx = -2;') Add
table.links-edit.col-sm-12(st-table='#{fieldMdl}' ng-show='#{fieldMdl}.length > 0')
tbody
tr.col-sm-12(ng-repeat='item in #{fieldMdl} track by $index')
@@ -201,36 +205,14 @@ mixin form-row-custom(lblClasses, fieldClasses)
td.col-sm-1(ng-if='field.reordering')
i.fa.fa-arrow-up(ng-show='$index > 0' ng-click='swapSimpleItems(#{fieldMdl}, $index, $index - 1); field.editIdx = -1;')
i.fa.fa-arrow-down(ng-show='$index < #{fieldMdl}.length - 1' ng-click='swapSimpleItems(#{fieldMdl}, $index, $index + 1); field.editIdx = -1;')
- .col-sm-6
- button.btn.btn-primary.fieldButton(ng-disabled='!newValue || #{fieldMdl}.indexOf(newValue) >= 0' ng-click='field.editIdx = -1; #{fieldMdl} ? #{fieldMdl}.push(newValue) : #{fieldMdl} = [newValue];') Add
- +tipField('field.tip')
- .input-tip
- input.form-control(type='text' ng-model='newValue' ng-focus='field.editIdx = -1' placeholder='{{field.placeholder}}')
+ .settings-row(ng-show='field.editIdx < -1')
+ .col-sm-6
+ i.tipField.fa.fa-floppy-o(ng-click='field.editIdx = -1; #{fieldMdl} ? #{fieldMdl}.push(newValue) : #{fieldMdl} = [newValue];')
+ .input-tip
+ input.form-control(type='text' ng-model='newValue' ng-focus='field.editIdx = -2' placeholder='{{field.placeholder}}')
div(ng-switch-when='fieldsMetadata' ng-hide=fieldHide)
+table-pair('{{field.label}}', fieldMdl, 'name', 'className', 'Field name', 'Field class full name')
div(ng-switch-when='groupsMetadata' ng-hide=fieldHide)&attributes(fieldCommon)
- div
- label.table-header {{field.label}}:
- +tipLabel('field.tableTip')
- table.links-edit.col-sm-12(st-table='#{fieldMdl}' ng-show='#{fieldMdl}.length > 0')
- tbody
- tr.col-sm-12(ng-repeat='item in #{fieldMdl} track by $index')
- td.col-sm-6
- div(ng-show='field.editIdx != {{$index}}')
- a(ng-click='field.editIdx = $index; curValue = #{fieldMdl}[$index]') {{$index + 1}}) {{item | compact}}
- i.tipField.fa.fa-remove(ng-click='field.editIdx = -1; #{fieldMdl}.splice($index, 1)')
- div(ng-show='field.editIdx == {{$index}}')
- label.labelField {{$index + 1}})
- i.tipField.fa.fa-floppy-o(ng-click='#{fieldMdl}[$index] = curValue ? curValue : #{fieldMdl}[$index]; field.editIdx = curValue ? -1 : field.editIdx')
- .input-tip
- input.form-control(type='text' ng-model='curValue' placeholder='{{field.placeholder}}')
- td.col-sm-1(ng-if='field.reordering')
- i.fa.fa-arrow-up(ng-show='$index > 0' ng-click='swapSimpleItems(#{fieldMdl}, $index, $index - 1); field.editIdx = -1;')
- i.fa.fa-arrow-down(ng-show='$index < #{fieldMdl}.length - 1' ng-click='swapSimpleItems(#{fieldMdl}, $index, $index + 1); field.editIdx = -1;')
- .col-sm-6
- button.btn.btn-primary.fieldButton(ng-disabled='!newValue || #{fieldMdl}.indexOf(newValue) >= 0' ng-click='field.editIdx = -1; #{fieldMdl} ? #{fieldMdl}.push(newValue) : #{fieldMdl} = [newValue];') Add
- +tipField('field.tip')
- .input-tip
- input.form-control(type='text' ng-model='newValue' ng-focus='field.editIdx = -1' placeholder='{{field.placeholder}}')
+ label.table-header {{field.label}}:
div(ng-switch-when='indexedTypes')
+table-pair('Index key-value type pairs', fieldMdl, 'keyClass', 'valueClass', 'Key class full name', 'Value class full name')
[5/9] incubator-ignite git commit: IGNITE-843: Deleted old
persistence code.
Posted by se...@apache.org.
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
-
-
[7/9] incubator-ignite git commit: IGNITE-843: Minor refactoring to
mixin.
Posted by se...@apache.org.
IGNITE-843: Minor refactoring to mixin.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/95f826f2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/95f826f2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/95f826f2
Branch: refs/heads/ignite-1121
Commit: 95f826f2f642ae4ef5c0ab49ec18e2e70ec96f81
Parents: 9cc79ae
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 16 23:09:23 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 16 23:09:23 2015 +0700
----------------------------------------------------------------------
.../nodejs/views/configuration/summary.jade | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/95f826f2/modules/web-control-center/nodejs/views/configuration/summary.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/configuration/summary.jade b/modules/web-control-center/nodejs/views/configuration/summary.jade
index 93f27a8..848e710 100644
--- a/modules/web-control-center/nodejs/views/configuration/summary.jade
+++ b/modules/web-control-center/nodejs/views/configuration/summary.jade
@@ -32,6 +32,9 @@ append css
include ../includes/controls
+mixin hard-link(ref, txt)
+ a(style='color:#ec1c24' href=ref target="_blank") #{txt}
+
block content
.docs-header
h1 Configurations summary
@@ -89,13 +92,13 @@ block content
#javaServer
div(ng-show="cfgLangServer == 'docker'")
p
- a(style='color:#ec1c24' href='https://docs.docker.com/reference/builder' target="_blank") Docker
+ +hard-link('https://docs.docker.com/reference/builder', 'Docker')
| file is a text file with instructions to create Docker image.<br/>
| To build image you have to store following Docker file with your Ignite XML configuration to the same directory.<br>
| Also you could use predefined
- a(style='color:#ec1c24' href='https://ignite.incubator.apache.org/download.html#docker' target="_blank") Apache Ignite docker image
+ +hard-link('https://ignite.incubator.apache.org/download.html#docker', 'Apache Ignite docker image')
| . For more information about using Ignite with Docker please read
- a(style='color:#ec1c24' href='http://apacheignite.readme.io/docs/docker-deployment' target="_blank") documentation
+ +hard-link('http://apacheignite.readme.io/docs/docker-deployment', 'documentation')
|.
.col-sm-2
label(for='os') Operation System:
[2/9] incubator-ignite git commit: IGNITE-843 WIP metadata:
implemented fields metadata controls.
Posted by se...@apache.org.
IGNITE-843 WIP metadata: implemented fields metadata controls.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/870f8bfa
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/870f8bfa
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/870f8bfa
Branch: refs/heads/ignite-1121
Commit: 870f8bfa0c562b6d77712a4dd55d4b871a388633
Parents: 400bc56
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 16 16:50:41 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 16 16:50:41 2015 +0700
----------------------------------------------------------------------
.../nodejs/controllers/caches-controller.js | 14 +-
.../nodejs/controllers/metadata-controller.js | 192 +++++++++++++++++--
.../nodejs/controllers/models/metadata.json | 11 +-
.../nodejs/routes/metadata.js | 4 +-
.../nodejs/views/configuration/metadata.jade | 15 +-
.../nodejs/views/includes/controls.jade | 77 +++-----
6 files changed, 223 insertions(+), 90 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/870f8bfa/modules/web-control-center/nodejs/controllers/caches-controller.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/controllers/caches-controller.js b/modules/web-control-center/nodejs/controllers/caches-controller.js
index b6cadcf..7af388f 100644
--- a/modules/web-control-center/nodejs/controllers/caches-controller.js
+++ b/modules/web-control-center/nodejs/controllers/caches-controller.js
@@ -215,7 +215,7 @@ controlCenterModule.controller('cachesController', ['$scope', '$http', '$saveAs'
// Save cache with new name.
$scope.saveItemAs = function () {
- if (validate($scope.backupItem))
+ if (validate($scope.backupItem))
$saveAs.show($scope.backupItem.name).then(function (newName) {
var item = angular.copy($scope.backupItem);
@@ -262,7 +262,7 @@ controlCenterModule.controller('cachesController', ['$scope', '$http', '$saveAs'
);
};
- $scope.checkIndexedTypes = function (keyCls, valCls) {
+ function tablePairValid(keyCls, valCls) {
if (!keyCls) {
commonFunctions.showError('Key class name should be non empty!');
@@ -276,10 +276,10 @@ controlCenterModule.controller('cachesController', ['$scope', '$http', '$saveAs'
}
return true;
- };
+ }
- $scope.addIndexedTypes = function (keyCls, valCls) {
- if (!$scope.checkIndexedTypes(keyCls, valCls))
+ $scope.tablePairAdd = function (fld, keyCls, valCls) {
+ if (!tablePairValid(keyCls, valCls))
return;
var idxTypes = $scope.backupItem.indexedTypes;
@@ -292,8 +292,8 @@ controlCenterModule.controller('cachesController', ['$scope', '$http', '$saveAs'
$scope.backupItem.indexedTypes = [newItem];
};
- $scope.saveIndexedType = function (idx, keyCls, valCls) {
- if (!$scope.checkIndexedTypes(keyCls, valCls))
+ $scope.tablePairSave = function (idx, fld, keyCls, valCls) {
+ if (!tablePairValid(keyCls, valCls))
return idx;
var idxType = $scope.backupItem.indexedTypes[idx];
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/870f8bfa/modules/web-control-center/nodejs/controllers/metadata-controller.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/controllers/metadata-controller.js b/modules/web-control-center/nodejs/controllers/metadata-controller.js
index a4b54cc..c23da07 100644
--- a/modules/web-control-center/nodejs/controllers/metadata-controller.js
+++ b/modules/web-control-center/nodejs/controllers/metadata-controller.js
@@ -52,29 +52,142 @@ controlCenterModule.controller('metadataController', ['$scope', '$http', 'common
curJavaType: '',
tables: [
{schemaName: 'Schema1', use: true},
- {schemaName: 'Schema1', use: true, tableName: 'Table1', keyClass: 'KeyClass1', valueClass: 'ValueClass1',
+ {
+ 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'}
+ {
+ 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',
+ {
+ 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',
+ {
+ 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'}
- ]}]
+ {
+ 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.metadata = [];
@@ -140,6 +253,8 @@ controlCenterModule.controller('metadataController', ['$scope', '$http', 'common
$http.post('metadata/save', item)
.success(function (_id) {
+ commonFunctions.showInfo('Metadata "' + item.name + '" saved.');
+
var idx = _.findIndex($scope.metadatas, function (metadata) {
return metadata._id == _id;
});
@@ -154,7 +269,6 @@ controlCenterModule.controller('metadataController', ['$scope', '$http', 'common
$scope.selectItem(item);
- commonFunctions.showInfo('metadata "' + item.name + '" saved.');
})
.error(function (errMsg) {
commonFunctions.showError(errMsg);
@@ -182,6 +296,48 @@ controlCenterModule.controller('metadataController', ['$scope', '$http', 'common
});
};
+ function fieldValid(fld, cls) {
+ if (!fld) {
+ commonFunctions.showError('Field name should be non empty!');
+
+ return false;
+ }
+
+ if (!cls) {
+ commonFunctions.showError('Field class name should be non empty!');
+
+ return false;
+ }
+
+ return true;
+ }
+
+ $scope.tablePairAdd = function (mdl, fld, cls) {
+ if (!fieldValid(fld, cls))
+ return;
+
+ var fields = $scope.backupItem[mdl.model];
+
+ var newItem = {name: fld, className: cls};
+
+ if (fields)
+ fields.push(newItem);
+ else
+ $scope.backupItem[mdl.model] = [newItem];
+ };
+
+ $scope.tablePairSave = function (idx, mdl, fld, cls) {
+ if (!fieldValid(fld, cls))
+ return idx;
+
+ var field = $scope.backupItem[mdl.model][idx];
+
+ field.name = fld;
+ field.className = cls;
+
+ return -1;
+ };
+
$scope.selectSchema = function (idx) {
var data = $scope.data;
var tables = data.tables;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/870f8bfa/modules/web-control-center/nodejs/controllers/models/metadata.json
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/controllers/models/metadata.json b/modules/web-control-center/nodejs/controllers/models/metadata.json
index 753f643..63710e0 100644
--- a/modules/web-control-center/nodejs/controllers/models/metadata.json
+++ b/modules/web-control-center/nodejs/controllers/models/metadata.json
@@ -31,7 +31,6 @@
"label": "Database schema",
"type": "text",
"model": "databaseSchema",
- "required": true,
"hide": "backupItem.kind == 'query'",
"placeholder": "Input DB schema name",
"tip": ["TODO."]
@@ -40,7 +39,6 @@
"label": "Database table",
"type": "text",
"model": "databaseTable",
- "required": true,
"hide": "backupItem.kind == 'query'",
"placeholder": "Input DB table name",
"tip": ["TODO."]
@@ -77,21 +75,21 @@
},
{
"label": "Query fields",
- "type": "text",
+ "type": "fieldsMetadata",
"model": "queryFields",
"hide": "backupItem.kind != 'query'",
"tip": ["TODO."]
},
{
"label": "Ascending fields",
- "type": "text",
+ "type": "fieldsMetadata",
"model": "ascendingFields",
"hide": "backupItem.kind != 'query'",
"tip": ["TODO."]
},
{
"label": "Descending fields",
- "type": "text",
+ "type": "fieldsMetadata",
"model": "descendingFields",
"hide": "backupItem.kind != 'query'",
"tip": ["TODO."]
@@ -115,8 +113,7 @@
{
"label": "Name",
"type": "text",
- "model": "name",
- "required": true
+ "model": "name"
},
{
"label": "Database type",
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/870f8bfa/modules/web-control-center/nodejs/routes/metadata.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/routes/metadata.js b/modules/web-control-center/nodejs/routes/metadata.js
index 283f85e..64b8763 100644
--- a/modules/web-control-center/nodejs/routes/metadata.js
+++ b/modules/web-control-center/nodejs/routes/metadata.js
@@ -42,11 +42,11 @@ router.post('/list', function (req, res) {
});
// Get all metadata for spaces.
- db.CacheTypeMetadata.find({space: {$in: space_ids}}).sort('name').exec(function (err, metadata) {
+ db.CacheTypeMetadata.find({space: {$in: space_ids}}).sort('name').exec(function (err, metadatas) {
if (err)
return res.status(500).send(err.message);
- res.json({spaces: spaces, metadata: metadata});
+ res.json({spaces: spaces, metadatas: metadatas});
});
});
});
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/870f8bfa/modules/web-control-center/nodejs/views/configuration/metadata.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/configuration/metadata.jade b/modules/web-control-center/nodejs/views/configuration/metadata.jade
index fd5ab03..7eec682 100644
--- a/modules/web-control-center/nodejs/views/configuration/metadata.jade
+++ b/modules/web-control-center/nodejs/views/configuration/metadata.jade
@@ -28,12 +28,13 @@ block content
.docs-body(ng-controller='metadataController')
.block-callout
p(ng-bind-html='joinTip(screenTip)')
- .links(ng-hide='metadata.length == 0')
- table(st-table='metadata')
+ .links(ng-hide='metadatas.length == 0')
+ table(st-table='metadatas')
tbody
- tr(ng-repeat='row in metadata track by row._id')
+ tr(ng-repeat='row in metadatas track by row._id')
td.col-sm-6(ng-class='{active: row._id == selectedItem._id}')
a(ng-click='selectItem(row)') {{$index + 1}}) {{row.name}}
+ hr
panel-group(bs-collapse data-allow-multiple="false")
.panel.panel-default
.panel-heading
@@ -42,14 +43,12 @@ block content
.panel-collapse(role="tabpanel" bs-collapse-target)
.panel-body
button.btn.btn-primary(ng-click='createItem()')  Add metadata
- label(style='margin-left: 15px; margin-right: 10px') for:
+ label(style='margin-left: 6px; margin-right: 10px') for:
button.btn.btn-default(ng-model='template' data-template='/select' data-placeholder='Choose metadata type' bs-options='item.value as item.label for item in templates' bs-select)
i.tiplabel.fa.fa-question-circle(bs-tooltip data-title='{{joinTip(templateTip)}}' type='button')
- hr
form.form-horizontal(name='manualForm' ng-if='backupItem' novalidate)
- .panel-body
- .settings-row(ng-repeat='field in metadataManual')
- +form-row
+ .settings-row(ng-repeat='field in metadataManual')
+ +form-row
button.btn.btn-primary(ng-disabled='manualForm.$invalid' ng-click='saveItem()') Save
button.btn.btn-primary.btn-second(ng-show='backupItem._id' ng-click='removeItem()') Remove
.panel.panel-default
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/870f8bfa/modules/web-control-center/nodejs/views/includes/controls.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/includes/controls.jade b/modules/web-control-center/nodejs/views/includes/controls.jade
index 74481e8..f99d5dd 100644
--- a/modules/web-control-center/nodejs/views/includes/controls.jade
+++ b/modules/web-control-center/nodejs/views/includes/controls.jade
@@ -25,6 +25,32 @@ mixin tipLabel(lines)
mixin exclamation(mdl, err, msg)
i.fa.fa-exclamation-triangle.form-control-feedback(ng-show='inputForm["#{mdl}"].$error.#{err}' bs-tooltip data-title='#{msg}' type='button')
+mixin table-pair(header, tblMdl, keyFld, valFld, keyPlaceholder, valPlaceholder)
+ div
+ label.table-header #{header}:
+ +tipLabel('field.tip')
+ table.links-edit.col-sm-12(st-table=tblMdl ng-show='#{tblMdl}.length > 0')
+ tbody
+ tr.col-sm-12(ng-repeat='item in #{tblMdl}')
+ td.col-sm-6
+ div(ng-show='field.editIdx != {{$index}}')
+ a(ng-click='field.editIdx = $index; curKey = #{tblMdl}[$index].#{keyFld}; curValue = #{tblMdl}[$index].#{valFld}') {{$index + 1}}) {{item.#{keyFld}}} / {{item.#{valFld}}}
+ i.tipField.fa.fa-remove(ng-click='field.editIdx = -1; #{tblMdl}.splice($index, 1)')
+ div(ng-show='field.editIdx == {{$index}}')
+ label.labelField {{$index + 1}})
+ i.tipField.fa.fa-floppy-o(ng-click='field.editIdx = tablePairSave($index, field, curKey, curValue)')
+ .input-tip
+ .col-sm-12
+ input.form-control.table-form-control(type='text' ng-model='curKey' placeholder=keyPlaceholder)
+ label /
+ input.form-control.table-form-control(type='text' ng-model='curValue' placeholder=valPlaceholder)
+ .col-sm-6
+ input.form-control(type='text' ng-model='newKey' ng-focus='field.editIdx = -1' placeholder=keyPlaceholder)
+ .settings-row
+ input.form-control(type='text' ng-model='newValue' ng-focus='field.editIdx = -1' placeholder=valPlaceholder)
+ button.btn.btn-primary.fieldButton(ng-disabled='!newKey || !newValue' ng-click='field.editIdx = -1; tablePairAdd(field, newKey, newValue)') Add
+
+
mixin details-row
- var lblDetailClasses = ['col-sm-4', 'details-label']
@@ -180,30 +206,8 @@ mixin form-row-custom(lblClasses, fieldClasses)
+tipField('field.tip')
.input-tip
input.form-control(type='text' ng-model='newValue' ng-focus='field.editIdx = -1' placeholder='{{field.placeholder}}')
- div(ng-switch-when='fieldsMetadata' ng-hide=fieldHide)&attributes(fieldCommon)
- div
- label.table-header {{field.label}}:
- +tipLabel('field.tableTip')
- table.links-edit.col-sm-12(st-table='#{fieldMdl}' ng-show='#{fieldMdl}.length > 0')
- tbody
- tr.col-sm-12(ng-repeat='item in #{fieldMdl} track by $index')
- td.col-sm-6
- div(ng-show='field.editIdx != {{$index}}')
- a(ng-click='field.editIdx = $index; curValue = #{fieldMdl}[$index]') {{$index + 1}}) {{item | compact}}
- i.tipField.fa.fa-remove(ng-click='field.editIdx = -1; #{fieldMdl}.splice($index, 1)')
- div(ng-show='field.editIdx == {{$index}}')
- label.labelField {{$index + 1}})
- i.tipField.fa.fa-floppy-o(ng-click='#{fieldMdl}[$index] = curValue ? curValue : #{fieldMdl}[$index]; field.editIdx = curValue ? -1 : field.editIdx')
- .input-tip
- input.form-control(type='text' ng-model='curValue' placeholder='{{field.placeholder}}')
- td.col-sm-1(ng-if='field.reordering')
- i.fa.fa-arrow-up(ng-show='$index > 0' ng-click='swapSimpleItems(#{fieldMdl}, $index, $index - 1); field.editIdx = -1;')
- i.fa.fa-arrow-down(ng-show='$index < #{fieldMdl}.length - 1' ng-click='swapSimpleItems(#{fieldMdl}, $index, $index + 1); field.editIdx = -1;')
- .col-sm-6
- button.btn.btn-primary.fieldButton(ng-disabled='!newValue || #{fieldMdl}.indexOf(newValue) >= 0' ng-click='field.editIdx = -1; #{fieldMdl} ? #{fieldMdl}.push(newValue) : #{fieldMdl} = [newValue];') Add
- +tipField('field.tip')
- .input-tip
- input.form-control(type='text' ng-model='newValue' ng-focus='field.editIdx = -1' placeholder='{{field.placeholder}}')
+ div(ng-switch-when='fieldsMetadata' ng-hide=fieldHide)
+ +table-pair('{{field.label}}', fieldMdl, 'name', 'className', 'Field name', 'Field class full name')
div(ng-switch-when='groupsMetadata' ng-hide=fieldHide)&attributes(fieldCommon)
div
label.table-header {{field.label}}:
@@ -229,27 +233,4 @@ mixin form-row-custom(lblClasses, fieldClasses)
.input-tip
input.form-control(type='text' ng-model='newValue' ng-focus='field.editIdx = -1' placeholder='{{field.placeholder}}')
div(ng-switch-when='indexedTypes')
- - var tblMdl = 'backupItem.indexedTypes'
- div
- label.table-header Index key-value type pairs:
- +tipLabel('field.tip')
- table.links-edit.col-sm-12(st-table=tblMdl ng-show='#{tblMdl}.length > 0')
- tbody
- tr.col-sm-12(ng-repeat='item in #{tblMdl}')
- td.col-sm-6
- div(ng-show='field.editIdx != {{$index}}')
- a(ng-click='field.editIdx = $index; curKeyClass = #{tblMdl}[$index].keyClass; curValueClass = #{tblMdl}[$index].valueClass') {{$index + 1}}) {{item.keyClass}} / {{item.valueClass}}
- i.tipField.fa.fa-remove(ng-click='field.editIdx = -1; #{tblMdl}.splice($index, 1)')
- div(ng-show='field.editIdx == {{$index}}')
- label.labelField {{$index + 1}})
- i.tipField.fa.fa-floppy-o(ng-click='field.editIdx = saveIndexedType($index, curKeyClass, curValueClass)')
- .input-tip
- .col-sm-12
- input.form-control.table-form-control(type='text' ng-model='curKeyClass' placeholder='Key class full name')
- label /
- input.form-control.table-form-control(type='text' ng-model='curValueClass' placeholder='Value class full name')
- .col-sm-6
- input.form-control(type='text' ng-model='newKeyClass' ng-focus='field.editIdx = -1' placeholder='Key class full name')
- .settings-row
- input.form-control(type='text' ng-model='newValueClass' ng-focus='field.editIdx = -1' placeholder='Value class full name')
- button.btn.btn-primary.fieldButton(ng-disabled='!newKeyClass || !newValueClass' ng-click='field.editIdx = -1; addIndexedTypes(newKeyClass, newValueClass)') Add
+ +table-pair('Index key-value type pairs', fieldMdl, 'keyClass', 'valueClass', 'Key class full name', 'Value class full name')