You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by an...@apache.org on 2015/12/09 08:56:37 UTC
ignite git commit: IGNITE-2033 Completed base refactoring - Fixes
#306.
Repository: ignite
Updated Branches:
refs/heads/ignite-843-rc2 da50f0c6c -> 539f819c3
IGNITE-2033 Completed base refactoring - Fixes #306.
Signed-off-by: Andrey <an...@gridgain.com>
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/539f819c
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/539f819c
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/539f819c
Branch: refs/heads/ignite-843-rc2
Commit: 539f819c31f240607f4486b9a84f322f185c617f
Parents: da50f0c
Author: Dmitriyff <dm...@gmail.com>
Authored: Wed Dec 9 14:56:03 2015 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Wed Dec 9 14:56:03 2015 +0700
----------------------------------------------------------------------
.../src/main/js/app/data/os.json | 4 +
.../app/directives/loading/loading.directive.js | 27 ++
.../main/js/app/directives/loading/loading.jade | 18 ++
.../ui-ace-docker/ui-ace-docker.controller.js | 43 +++
.../ui-ace-docker/ui-ace-docker.directive.js | 37 +++
.../directives/ui-ace-docker/ui-ace-docker.jade | 35 +++
.../ui-ace-java/ui-ace-java.controller.js | 58 ++++
.../ui-ace-java/ui-ace-java.directive.js | 33 +++
.../app/directives/ui-ace-java/ui-ace-java.jade | 28 ++
.../ui-ace-pojos/ui-ace-pojos.controller.js | 89 ++++++
.../ui-ace-pojos/ui-ace-pojos.directive.js | 37 +++
.../directives/ui-ace-pojos/ui-ace-pojos.jade | 33 +++
.../ui-ace-pom/ui-ace-pom.controller.js | 40 +++
.../ui-ace-pom/ui-ace-pom.directive.js | 32 ++
.../app/directives/ui-ace-pom/ui-ace-pom.jade | 17 ++
.../ui-ace-xml/ui-ace-xml.controller.js | 38 +++
.../ui-ace-xml/ui-ace-xml.directive.js | 33 +++
.../app/directives/ui-ace-xml/ui-ace-xml.jade | 17 ++
.../js/app/filters/hasPojo/hasPojo.filter.js | 26 ++
.../control-center-web/src/main/js/app/index.js | 37 ++-
.../app/modules/states/configuration/index.js | 16 +-
.../configuration/summary/summary.controller.js | 133 +++++++++
.../configuration/summary/summary.resource.js | 41 +++
.../main/js/app/services/UiAceOnLoad/service.js | 36 +++
.../control-center-web/src/main/js/config.js | 1 +
.../main/js/controllers/summary-controller.js | 293 -------------------
.../src/main/js/gulpfile.js/tasks/copy.js | 4 +-
.../main/js/helpers/generator/generator-xml.js | 2 +-
.../control-center-web/src/main/js/package.json | 1 +
.../js/views/configuration/summary-tabs.jade | 2 +-
.../main/js/views/configuration/summary.jade | 134 +++------
31 files changed, 953 insertions(+), 392 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/data/os.json
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/data/os.json b/modules/control-center-web/src/main/js/app/data/os.json
new file mode 100644
index 0000000..5b67c37
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/data/os.json
@@ -0,0 +1,4 @@
+[
+ "debian:8",
+ "ubuntu:14.10"
+]
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/directives/loading/loading.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/loading/loading.directive.js b/modules/control-center-web/src/main/js/app/directives/loading/loading.directive.js
new file mode 100644
index 0000000..7cb3769
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/directives/loading/loading.directive.js
@@ -0,0 +1,27 @@
+/*
+ * 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.
+ */
+
+import template from './loading.jade!';
+
+export default ['igniteLoading', [() => {
+ return {
+ restrict: 'E',
+ template,
+ replace: true,
+ transclude: true
+ }
+}]]
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/directives/loading/loading.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/loading/loading.jade b/modules/control-center-web/src/main/js/app/directives/loading/loading.jade
new file mode 100644
index 0000000..706c9bc
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/directives/loading/loading.jade
@@ -0,0 +1,18 @@
+//-
+ 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.
+
+div(class='page-loading-overlay' dw-loading='loading' dw-loading-options='{text: $state.current.data.loading}')
+ div(ng-transclude='')
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.controller.js b/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.controller.js
new file mode 100644
index 0000000..906aa43
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.controller.js
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+
+import types from 'app/data/os.json!'
+
+export default ['$scope', 'IgniteUiAceOnLoad', function($scope, onLoad) {
+ var ctrl = this;
+
+ // Scope values.
+ $scope.types = types;
+
+ // Scope methods.
+ $scope.onLoad = onLoad;
+
+ // Watchers definition.
+ let clusterWatcher = (value) => {
+ delete ctrl.data;
+
+ if (!value)
+ return;
+
+ // TODO IGNITE-2058: need move $generatorDocker to services.
+ ctrl.data = $generatorDocker.clusterDocker($scope.cluster, $scope.type);
+ };
+
+ // Setup watchers.
+ $scope.$watch('type', clusterWatcher);
+ $scope.$watch('cluster', clusterWatcher);
+}]
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.directive.js b/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.directive.js
new file mode 100644
index 0000000..356cd2d
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.directive.js
@@ -0,0 +1,37 @@
+/*
+ * 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.
+ */
+
+import template from './ui-ace-docker.jade!'
+import controller from './ui-ace-docker.controller'
+
+export default ['igniteUiAceDocker', [() => {
+
+ return {
+ restrict: 'E',
+ scope: {
+ cluster: '=',
+ data: '=ngModel'
+ },
+ bindToController: {
+ cluster: '=',
+ data: '=ngModel'
+ },
+ template,
+ controller,
+ controllerAs: 'ctrl'
+ }
+}]]
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.jade b/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.jade
new file mode 100644
index 0000000..cc153d7
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.jade
@@ -0,0 +1,35 @@
+//-
+ 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.
+
+mixin hard-link(ref, txt)
+ a(style='color:#ec1c24' href=ref target='_blank') #{txt}
+
+div
+ .details-row
+ p
+ +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
+ +hard-link('https://ignite.apache.org/download.html#docker', 'Apache Ignite docker image')
+ | . For more information about using Ignite with Docker please read
+ +hard-link('http://apacheignite.readme.io/docs/docker-deployment', 'documentation')
+ |.
+ .col-xs-3.col-sm-2
+ label(for='os') Operation System:
+ .col-xs-5.col-sm-4
+ input#os.form-control(type='text' ng-model='type' placeholder='debian:8' data-min-length='0' data-html='1' data-auto-select='true' bs-typeahead retain-selection bs-options='os for os in types')
+ div(ui-ace='{onLoad: onLoad, mode: "dockerfile"}' ng-model='ctrl.data')
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.controller.js b/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.controller.js
new file mode 100644
index 0000000..f22ad5e
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.controller.js
@@ -0,0 +1,58 @@
+/*
+ * 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.
+ */
+
+const SNIPPET = 1;
+const FACTORY = 2;
+
+const SERVER_CFG = 'ServerConfigurationFactory';
+const CLIENT_CFG = 'ClientConfigurationFactory';
+
+const TYPES = [
+ {value: SNIPPET, label: 'snippet'},
+ {value: FACTORY, label: 'factory class'}
+];
+
+export default ['$scope', 'IgniteUiAceOnLoad', function($scope, onLoad) {
+ var ctrl = this;
+
+ // Scope values.
+ $scope.type = SNIPPET;
+
+ // Scope data.
+ $scope.types = TYPES;
+
+ // Scope methods.
+ $scope.onLoad = onLoad;
+
+ // watchers definition
+ let clusterWatcher = (value) => {
+ delete ctrl.data;
+
+ if (!value)
+ return;
+
+ let type = $scope.type === FACTORY ? (!$scope.cfg ? SERVER_CFG : CLIENT_CFG) : false;
+
+ // TODO IGNITE-2054: need move $generatorJava to services.
+ ctrl.data = $generatorJava.cluster($scope.cluster, 'factory', type, $scope.cfg);
+ };
+
+ // Setup watchers.
+ $scope.$watch('cfg', clusterWatcher, true);
+ $scope.$watch('type', clusterWatcher);
+ $scope.$watch('cluster', clusterWatcher);
+}]
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.directive.js b/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.directive.js
new file mode 100644
index 0000000..1b41d13
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.directive.js
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+
+import template from './ui-ace-java.jade!'
+import controller from './ui-ace-java.controller'
+
+export default ['igniteUiAceJava', [() => {
+
+ return {
+ restrict: 'E',
+ scope: {
+ cluster: '=',
+ cfg: '=clusterCfg'
+ },
+ template,
+ controller,
+ controllerAs: 'ctrl'
+ }
+}]]
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.jade b/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.jade
new file mode 100644
index 0000000..866e12a
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.jade
@@ -0,0 +1,28 @@
+//-
+ 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.
+
+div
+ .details-row
+ .col-xs-2.col-sm-2.col-md-1
+ label Generate:
+ .col-xs-4.col-sm-3.col-md-3
+ button.select-toggle.form-control(
+ data-bs-select
+ data-bs-options='item.value as item.label for item in types'
+ data-sort='false'
+ ng-model='type'
+ )
+ div(ui-ace='{onLoad: onLoad, mode: "java"}' ng-model='ctrl.data')
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.controller.js b/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.controller.js
new file mode 100644
index 0000000..dc9c81e
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.controller.js
@@ -0,0 +1,89 @@
+/*
+ * 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.
+ */
+
+export default ['$scope', 'IgniteUiAceOnLoad', function($scope, onLoad) {
+ var ctrl = this;
+
+ // Scope methods.
+ $scope.onLoad = onLoad;
+
+ // Watchers definition.
+ // Watcher clean instance data if instance to cluster caches was change
+ let cleanMetadatas = (value) => {
+ delete ctrl.class;
+ delete ctrl.metadatas;
+ delete ctrl.classes;
+ };
+
+ // Watcher updata metadata when changes caches and checkers useConstructor and includeKeyFields
+ let updateMetadatas = (value) => {
+ delete ctrl.metadatas;
+
+ if (!ctrl.cluster || !ctrl.cluster.caches)
+ return;
+
+ // TODO IGNITE-2054: need move $generatorJava to services.
+ ctrl.metadatas = $generatorJava.pojos(ctrl.cluster.caches, ctrl.useConstructor, ctrl.includeKeyFields);
+ };
+
+ // Watcher update classes after
+ let updateClasses = (value) => {
+ delete ctrl.classes;
+
+ if (!value)
+ return;
+
+ let classes = ctrl.classes = [];
+
+ _.forEach(ctrl.metadatas, (meta) => {
+ classes.push(meta.keyType);
+ classes.push(meta.valueType);
+ });
+ };
+
+ // Update pojos class.
+ let updateClass = (value) => {
+ if (!value || !ctrl.metadatas.length)
+ return;
+
+ ctrl.class = ctrl.class || ctrl.metadatas[0].keyType || ctrl.metadatas[0].valueType;
+ };
+
+ // Update pojos data.
+ let updatePojosData = (value) => {
+ if (!value)
+ return;
+
+ _.forEach(ctrl.metadatas, (meta) => {
+ if (meta.keyType === ctrl.class)
+ return ctrl.data = meta.keyClass;
+
+ if (meta.valueType === ctrl.class)
+ return ctrl.data = meta.valueClass;
+ })
+ };
+
+ // Setup watchers. Watchers order is important.
+ $scope.$watch('ctrl.cluster.caches', cleanMetadatas);
+ $scope.$watch('ctrl.cluster.caches', updateMetadatas);
+ $scope.$watch('ctrl.cluster.caches', updateClasses);
+ $scope.$watch('ctrl.useConstructor', updateMetadatas);
+ $scope.$watch('ctrl.includeKeyFields', updateMetadatas);
+ $scope.$watch('ctrl.metadatas', updateClass);
+ $scope.$watch('ctrl.metadatas', updatePojosData);
+ $scope.$watch('ctrl.class', updatePojosData);
+}];
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.directive.js b/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.directive.js
new file mode 100644
index 0000000..3a274e4
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.directive.js
@@ -0,0 +1,37 @@
+/*
+ * 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.
+ */
+
+import template from './ui-ace-pojos.jade!'
+import controller from './ui-ace-pojos.controller'
+
+export default ['igniteUiAcePojos', [() => {
+
+ return {
+ restrict: 'E',
+ scope: {
+ cluster: '=',
+ metadatas: '=ngModel'
+ },
+ bindToController: {
+ cluster: '=',
+ metadatas: '=ngModel'
+ },
+ template,
+ controller,
+ controllerAs: 'ctrl'
+ }
+}]]
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.jade b/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.jade
new file mode 100644
index 0000000..9f4a1db
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.jade
@@ -0,0 +1,33 @@
+//-
+ 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.
+
+div
+ .details-row
+ .col-xs-2.col-sm-2.col-md-2
+ label POJO class:
+ .col-xs-10.col-sm-10.col-md-10.summary-pojo-list
+ button.select-toggle.form-control(ng-model='ctrl.class' bs-select bs-options='item for item in ctrl.classes' data-container='')
+ .col-xs-2.col-sm-2.col-md-2
+ label
+ .col-xs-10.col-sm-10.col-md-10
+ input(type='checkbox' ng-model='ctrl.useConstructor')
+ | Generate constructors
+ .col-xs-2.col-sm-2.col-md-2
+ label
+ .col-xs-10.col-sm-10.col-md-10
+ input(type='checkbox' ng-model='ctrl.includeKeyFields')
+ | Include key fields
+ div(ui-ace='{onLoad: onLoad, mode: "java"}' ng-model='ctrl.data')
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.controller.js b/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.controller.js
new file mode 100644
index 0000000..639d0f3
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.controller.js
@@ -0,0 +1,40 @@
+/*
+ * 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.
+ */
+
+// TODO IGNITE-2055: use set version.
+const igniteVersion = '1.5.0';
+
+export default ['$scope', 'IgniteUiAceOnLoad', function($scope, onLoad) {
+ var ctrl = this;
+
+ // Scope methods.
+ $scope.onLoad = onLoad;
+
+ // Watchers definition.
+ let clusterWatcher = (value) => {
+ delete ctrl.data;
+
+ if (!value)
+ return;
+
+ // TODO IGNITE-2053: need move $generatorPom to services.
+ ctrl.data = $generatorPom.pom($scope.cluster, igniteVersion).asString();
+ };
+
+ // Setup watchers.
+ $scope.$watch('cluster', clusterWatcher);
+}]
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.directive.js b/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.directive.js
new file mode 100644
index 0000000..3aad559
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.directive.js
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+
+import template from './ui-ace-pom.jade!'
+import controller from './ui-ace-pom.controller'
+
+export default ['igniteUiAcePom', [() => {
+
+ return {
+ restrict: 'E',
+ scope: {
+ cluster: '='
+ },
+ template,
+ controller,
+ controllerAs: 'ctrl'
+ }
+}]]
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.jade b/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.jade
new file mode 100644
index 0000000..eb023d7
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.jade
@@ -0,0 +1,17 @@
+//-
+ 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.
+
+div(ui-ace='{onLoad: onLoad, mode: "xml"}' ng-model='ctrl.data')
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.controller.js b/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.controller.js
new file mode 100644
index 0000000..6ba65cf
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.controller.js
@@ -0,0 +1,38 @@
+/*
+ * 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.
+ */
+
+export default ['$scope', 'IgniteUiAceOnLoad', function($scope, onLoad) {
+ var ctrl = this;
+
+ // Scope methods.
+ $scope.onLoad = onLoad;
+
+ // Watchers definition.
+ let clusterWatcher = (value) => {
+ delete ctrl.data;
+
+ if (!value)
+ return;
+
+ // TODO IGNITE-2052: need move $generatorXml to services.
+ ctrl.data = $generatorXml.cluster($scope.cluster, $scope.cfg)
+ };
+
+ // Setup watchers.
+ $scope.$watch('cfg', clusterWatcher, true);
+ $scope.$watch('cluster', clusterWatcher);
+}]
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.directive.js b/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.directive.js
new file mode 100644
index 0000000..fc98c3a
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.directive.js
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+
+import template from './ui-ace-xml.jade!'
+import controller from './ui-ace-xml.controller'
+
+export default ['igniteUiAceXml', [() => {
+
+ return {
+ restrict: 'E',
+ scope: {
+ cluster: '=',
+ cfg: '=clusterCfg'
+ },
+ template,
+ controller,
+ controllerAs: 'ctrl'
+ }
+}]]
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.jade b/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.jade
new file mode 100644
index 0000000..ba324ff
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.jade
@@ -0,0 +1,17 @@
+//-
+ 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.
+
+div(ui-ace='{onLoad: onLoad, mode: "xml"}' ng-model='ctrl.data')
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/filters/hasPojo/hasPojo.filter.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/filters/hasPojo/hasPojo.filter.js b/modules/control-center-web/src/main/js/app/filters/hasPojo/hasPojo.filter.js
new file mode 100644
index 0000000..ff0e813
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/filters/hasPojo/hasPojo.filter.js
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+export default ['hasPojo', [() => {
+ let filter = (cache) => {
+ return cache.metadatas && cache.metadatas.length;
+ };
+
+ return ({caches} = {}) => {
+ return caches && _.chain(caches).filter(filter).first().value();
+ }
+}]]
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/index.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/index.js b/modules/control-center-web/src/main/js/app/index.js
index 4174425..087885c 100644
--- a/modules/control-center-web/src/main/js/app/index.js
+++ b/modules/control-center-web/src/main/js/app/index.js
@@ -69,17 +69,29 @@ import './modules/userbar/main'
import './modules/configuration/sidebar/main'
// endignite
-// directives
+// Directives.
+import igniteLoading from './directives/loading/loading.directive'
import igniteCallout from './directives/callout/callout.directive'
import igniteCalloutCel from './directives/callout/callout-cel.directive'
+import igniteUiAceXml from './directives/ui-ace-xml/ui-ace-xml.directive'
+import igniteUiAceJava from './directives/ui-ace-java/ui-ace-java.directive'
+import igniteUiAcePom from './directives/ui-ace-pom/ui-ace-pom.directive'
+import igniteUiAceDocker from './directives/ui-ace-docker/ui-ace-docker.directive'
+import igniteUiAcePojos from './directives/ui-ace-pojos/ui-ace-pojos.directive'
+
+// Services.
+import IgniteUiAceOnLoad from './services/UiAceOnLoad/service'
+
+// Filters.
+import hasPojo from './filters/hasPojo/hasPojo.filter'
angular
.module('ignite-console', [
'ui.router',
- // services
+ // Services.
'ignite-console.Auth',
'ignite-console.User',
- // states
+ // States.
'ignite-console.states.login',
'ignite-console.states.logout',
'ignite-console.states.password',
@@ -87,16 +99,26 @@ angular
'ignite-console.states.sql',
'ignite-console.states.profile',
'ignite-console.states.admin',
- //
+ // Common modules.
'ignite-console.navbar',
'ignite-console.userbar',
'ignite-console.configuration.sidebar'
])
-// directives
+// Directives.
+.directive(...igniteLoading)
.directive(...igniteCallout)
.directive(...igniteCalloutCel)
+.directive(...igniteUiAceXml)
+.directive(...igniteUiAceJava)
+.directive(...igniteUiAcePom)
+.directive(...igniteUiAceDocker)
+.directive(...igniteUiAcePojos)
+// Services.
+.service(...IgniteUiAceOnLoad)
+// Filters.
+.filter(...hasPojo)
.config(['$stateProvider', '$locationProvider', '$urlRouterProvider', function($stateProvider, $locationProvider, $urlRouterProvider) {
- // set up the states
+ // Set up the states.
$stateProvider
.state('base', {
url: '',
@@ -107,4 +129,7 @@ angular
$urlRouterProvider.when('/', '/configuration/clusters');
$locationProvider.html5Mode(true);
+}])
+.run(['$rootScope', '$state', ($root, $state) => {
+ $root.$state = $state;
}]);
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/modules/states/configuration/index.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/index.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/index.js
index 2ff47ca..e5a97fe 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/index.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/index.js
@@ -17,12 +17,17 @@
import angular from 'angular'
+import ConfigurationSummaryCtrl from './summary/summary.controller'
+import ConfigurationSummaryResource from './summary/summary.resource'
+
angular
.module('ignite-console.states.configuration', [
'ui.router'
])
+// Services.
+.service(...ConfigurationSummaryResource)
.config(['$stateProvider', function($stateProvider) {
- // set up the states
+ // Setup the states.
$stateProvider
.state('base.configuration', {
url: '/configuration',
@@ -46,6 +51,11 @@ angular
})
.state('base.configuration.summary', {
url: '/summary',
- templateUrl: '/configuration/summary.html'
- })
+ templateUrl: '/configuration/summary.html',
+ controller: ConfigurationSummaryCtrl,
+ controllerAs: 'ctrl',
+ data: {
+ loading: 'Loading summary screen...'
+ }
+ })
}]);
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
new file mode 100644
index 0000000..e023c13
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
@@ -0,0 +1,133 @@
+/*
+ * 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.
+ */
+
+export default [
+ '$scope', '$http', '$common', '$loading', '$table', '$filter', 'ConfigurationSummaryResource',
+ function($scope, $http, $common, $loading, $table, $filter, Resource) {
+ let ctrl = this;
+ let igniteVersion = '1.5.0';
+
+ $loading.start('loading');
+
+ Resource.read().then(({clusters}) => {
+ $scope.clusters = clusters;
+
+ $loading.finish('loading');
+
+ $scope.selectItem(clusters[0]);
+ });
+
+ $scope.panelExpanded = $common.panelExpanded;
+ $scope.tableVisibleRow = $table.tableVisibleRow;
+ $scope.joinTip = $common.joinTip;
+ $scope.getModel = $common.getModel;
+ $scope.widthIsSufficient = $common.widthIsSufficient;
+
+ $scope.evictionPolicies = [
+ {value: 'LRU', label: 'LRU'},
+ {value: 'FIFO', label: 'FIFO'},
+ {value: 'SORTED', label: 'Sorted'},
+ {value: undefined, label: 'Not set'}
+ ];
+
+ $scope.tabsServer = { activeTab: 0 };
+ $scope.tabsClient = { activeTab: 0 };
+
+ $scope.backupItem = {javaClassClient: 1};
+
+ $http.get('/models/summary.json')
+ .success(function (data) {
+ $scope.screenTip = data.screenTip;
+ $scope.moreInfo = data.moreInfo;
+ $scope.clientFields = data.clientFields;
+ })
+ .error(function (errMsg) {
+ $common.showError(errMsg);
+ });
+
+ $scope.selectItem = (cluster) => {
+ delete ctrl.cluster;
+
+ if (!cluster)
+ return;
+
+ ctrl.cluster = cluster;
+ $scope.cluster = cluster;
+ $scope.selectedItem = cluster;
+ };
+
+ let updateTab = (cluster) => {
+ if (!cluster)
+ return;
+
+ if (!$filter('hasPojo')(cluster) && $scope.tabsClient.activeTab === 3)
+ $scope.tabsClient.activeTab = 0;
+ };
+
+ $scope.$watch('cluster', updateTab);
+
+ // TODO IGNITE-2114: implemented as indendent logic for download.
+ $scope.downloadConfiguration = function () {
+ var cluster = $scope.cluster;
+ var clientNearCfg = $scope.backupItem.nearConfiguration;
+
+ var zip = new JSZip();
+
+ zip.file('Dockerfile', ctrl.data.docker);
+
+ var builder = $generatorProperties.generateProperties(cluster);
+
+ if (builder)
+ zip.file('src/main/resources/secret.properties', builder.asString());
+
+ var srcPath = 'src/main/java/';
+
+ var serverXml = 'config/' + cluster.name + '-server.xml';
+ var clientXml = 'config/' + cluster.name + '-client.xml';
+
+ zip.file(serverXml, $generatorXml.cluster(cluster));
+ zip.file(clientXml , $generatorXml.cluster(cluster, clientNearCfg));
+
+ zip.file(srcPath + 'factory/ServerConfigurationFactory.java', $generatorJava.cluster(cluster, 'factory', 'ServerConfigurationFactory', null));
+ zip.file(srcPath + 'factory/ClientConfigurationFactory.java', $generatorJava.cluster(cluster, 'factory', 'ClientConfigurationFactory', clientNearCfg));
+
+ zip.file(srcPath + 'startup/ServerNodeSpringStartup.java', $generatorJava.nodeStartup(cluster, 'startup', 'ServerNodeSpringStartup', '"' + serverXml + '"'));
+ zip.file(srcPath + 'startup/ClientNodeSpringStartup.java', $generatorJava.nodeStartup(cluster, 'startup', 'ClientNodeSpringStartup', '"' + clientXml + '"'));
+
+ zip.file(srcPath + 'startup/ServerNodeCodeStartup.java', $generatorJava.nodeStartup(cluster, 'startup', 'ServerNodeCodeStartup',
+ 'ServerConfigurationFactory.createConfiguration()', 'factory.ServerConfigurationFactory'));
+ zip.file(srcPath + 'startup/ClientNodeCodeStartup.java', $generatorJava.nodeStartup(cluster, 'startup', 'ClientNodeCodeStartup',
+ 'ClientConfigurationFactory.createConfiguration()', 'factory.ClientConfigurationFactory', clientNearCfg));
+
+ zip.file('pom.xml', $generatorPom.pom(cluster, igniteVersion).asString());
+
+ zip.file('README.txt', $generatorReadme.readme().asString());
+ zip.file('jdbc-drivers/README.txt', $generatorReadme.readmeJdbc().asString());
+
+ for (var meta of ctrl.data.metadatas) {
+ if (meta.keyClass)
+ zip.file(srcPath + meta.keyType.replace(/\./g, '/') + '.java', meta.keyClass);
+
+ zip.file(srcPath + meta.valueType.replace(/\./g, '/') + '.java', meta.valueClass);
+ }
+
+ var blob = zip.generate({type:'blob', mimeType: 'application/octet-stream'});
+
+ // Download archive.
+ saveAs(blob, cluster.name + '-configuration.zip');
+ };
+}]
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.resource.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.resource.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.resource.js
new file mode 100644
index 0000000..b125aca
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.resource.js
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+
+export default ['ConfigurationSummaryResource', ['$q', '$http', ($q, $http) => {
+ const api = '/api/v1/configuration/clusters/list';
+
+ return {
+ read() {
+ return $http
+ .post(api)
+ .then(({data}) => data)
+ .then(({clusters, caches, igfss}) => {
+ if (!clusters || !clusters.length)
+ return {};
+
+ _.each(clusters, cluster => {
+ cluster.igfss = _.filter(igfss, ({_id}) => _.contains(cluster.igfss, _id));
+ cluster.caches = _.filter(caches, ({_id}) => _.contains(cluster.caches, _id));
+ });
+
+ return {clusters};
+ }, (err) => {
+ return $q.reject(err);
+ })
+ }
+ };
+}]]
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/app/services/UiAceOnLoad/service.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/services/UiAceOnLoad/service.js b/modules/control-center-web/src/main/js/app/services/UiAceOnLoad/service.js
new file mode 100644
index 0000000..e63992d
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/services/UiAceOnLoad/service.js
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+
+export default ['IgniteUiAceOnLoad', () => {
+ return (editor) => {
+ editor.setReadOnly(true);
+ editor.setOption('highlightActiveLine', false);
+ editor.setAutoScrollEditorIntoView(true);
+ editor.$blockScrolling = Infinity;
+
+ var renderer = editor.renderer;
+
+ renderer.setHighlightGutterLine(false);
+ renderer.setShowPrintMargin(false);
+ renderer.setOption('fontFamily', 'monospace');
+ renderer.setOption('fontSize', '12px');
+ renderer.setOption('minLines', '25');
+ renderer.setOption('maxLines', '25');
+
+ editor.setTheme('ace/theme/chrome');
+ }
+}]
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/config.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/config.js b/modules/control-center-web/src/main/js/config.js
index 5f11590..ce9ca1b 100644
--- a/modules/control-center-web/src/main/js/config.js
+++ b/modules/control-center-web/src/main/js/config.js
@@ -44,6 +44,7 @@ System.config({
"font-awesome": "npm:font-awesome@4.5.0",
"jade": "github:johnsoftek/plugin-jade@0.5.1",
"jquery": "github:components/jquery@2.1.4",
+ "json": "github:systemjs/plugin-json@0.1.0",
"jszip": "github:Stuk/jszip@2.5.0",
"lodash": "npm:lodash@3.10.1",
"nvd3": "npm:nvd3@1.8.1",
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/controllers/summary-controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/summary-controller.js b/modules/control-center-web/src/main/js/controllers/summary-controller.js
deleted file mode 100644
index b5ca1f0..0000000
--- a/modules/control-center-web/src/main/js/controllers/summary-controller.js
+++ /dev/null
@@ -1,293 +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.
- */
-
-// Controller for Summary screen.
-consoleModule.controller('summaryController', [
- '$scope', '$http', '$common', '$loading', '$table',
- function ($scope, $http, $common, $loading, $table) {
- var igniteVersion = '1.5.0-b1';
- $loading.start('loadingSummaryScreen');
-
- $scope.panelExpanded = $common.panelExpanded;
- $scope.tableVisibleRow = $table.tableVisibleRow;
- $scope.joinTip = $common.joinTip;
- $scope.getModel = $common.getModel;
- $scope.widthIsSufficient = $common.widthIsSufficient;
-
- $scope.javaClassItems = [
- {label: 'snippet', value: 1},
- {label: 'factory class', value: 2}
- ];
-
- $scope.evictionPolicies = [
- {value: 'LRU', label: 'LRU'},
- {value: 'FIFO', label: 'FIFO'},
- {value: 'SORTED', label: 'Sorted'},
- {value: undefined, label: 'Not set'}
- ];
-
- $scope.tabsServer = { activeTab: 0 };
- $scope.tabsClient = { activeTab: 0 };
-
- $scope.pojoClasses = function() {
- var classes = [];
-
- if ($scope.selectedItem)
- _.forEach($scope.selectedItem.metadatas, function(meta) {
- classes.push(meta.keyType);
- classes.push(meta.valueType);
- });
-
- return classes;
- };
-
- $scope.oss = ['debian:8', 'ubuntu:14.10'];
-
- $scope.configServer = {javaClassServer: 1, os: undefined};
- $scope.configClient = {};
-
- $scope.backupItem = {javaClassClient: 1};
-
- $http.get('/models/summary.json')
- .success(function (data) {
- $scope.screenTip = data.screenTip;
- $scope.moreInfo = data.moreInfo;
- $scope.clientFields = data.clientFields;
- })
- .error(function (errMsg) {
- $common.showError(errMsg);
- });
-
- $scope.clusters = [];
-
- $scope.aceInit = function (editor) {
- editor.setReadOnly(true);
- editor.setOption('highlightActiveLine', false);
- editor.setAutoScrollEditorIntoView(true);
- editor.$blockScrolling = Infinity;
-
- var renderer = editor.renderer;
-
- renderer.setHighlightGutterLine(false);
- renderer.setShowPrintMargin(false);
- renderer.setOption('fontFamily', 'monospace');
- renderer.setOption('fontSize', '12px');
- renderer.setOption('minLines', '25');
- renderer.setOption('maxLines', '25');
-
- editor.setTheme('ace/theme/chrome');
- };
-
- $scope.generateJavaServer = function () {
- $scope.javaServer = $generatorJava.cluster($scope.selectedItem, 'factory',
- $scope.configServer.javaClassServer === 2 ? 'ServerConfigurationFactory' : false, null);
- };
-
- function selectPojoClass(config) {
- if ($scope.selectedItem)
- _.forEach($scope.selectedItem.metadatas, function(meta) {
- if (meta.keyType === config.pojoClass)
- return config.pojoClassBody = meta.keyClass;
-
- if (meta.valueType === config.pojoClass)
- return config.pojoClassBody = meta.valueClass;
- });
- }
-
- function pojoClsListener(config) {
- return function () {
- selectPojoClass(config);
- };
- }
-
- $scope.updatePojos = function() {
- if ($common.isDefined($scope.selectedItem)) {
- var metadatas = $generatorJava.pojos($scope.selectedItem.caches, $scope.configServer.useConstructor, $scope.configServer.includeKeyFields);
-
- $scope.selectedItem.metadatas = metadatas;
-
- function restoreSelected(selected, config, tabs, metadatas) {
- if (!$common.isDefined(selected) || _.findIndex(metadatas, function (meta) {
- return meta.keyType === selected || meta.valueType === selected;
- }) < 0) {
- if (metadatas.length > 0) {
- if ($common.isDefined(metadatas[0].keyType))
- config.pojoClass = metadatas[0].keyType;
- else
- config.pojoClass = metadatas[0].valueType;
- }
- else {
- config.pojoClass = undefined;
-
- if (tabs.activeTab === 2)
- tabs.activeTab = 0;
- }
- }
- else
- config.pojoClass = selected;
-
- selectPojoClass(config);
- }
-
- restoreSelected($scope.configServer.pojoClass, $scope.configServer, $scope.tabsServer, metadatas);
- restoreSelected($scope.configClient.pojoClass, $scope.configClient, $scope.tabsClient, metadatas);
- }
- };
-
- $scope.$watch('configServer.javaClassServer', $scope.generateJavaServer, true);
-
- $scope.$watch('configServer.pojoClass', pojoClsListener($scope.configServer), true);
- $scope.$watch('configClient.pojoClass', pojoClsListener($scope.configClient), true);
-
- $scope.$watch('configServer.useConstructor', $scope.updatePojos, true);
-
- $scope.$watch('configServer.includeKeyFields', $scope.updatePojos, true);
-
- $scope.generateDockerServer = function() {
- var os = $scope.configServer.os ? $scope.configServer.os : $scope.oss[0];
-
- $scope.dockerServer = $generatorDocker.clusterDocker($scope.selectedItem, os);
- };
-
- $scope.$watch('configServer.os', $scope.generateDockerServer, true);
-
- $scope.generateClient = function () {
- $scope.xmlClient = $generatorXml.cluster($scope.selectedItem, $scope.backupItem.nearConfiguration);
- $scope.javaClient = $generatorJava.cluster($scope.selectedItem, 'factory',
- $scope.backupItem.javaClassClient === 2 ? 'ClientConfigurationFactory' : false,
- $scope.backupItem.nearConfiguration);
- };
-
- $scope.$watch('backupItem', $scope.generateClient, true);
-
- $scope.selectItem = function (cluster) {
- if (!cluster)
- return;
-
- $scope.selectedItem = cluster;
-
- $scope.xmlServer = $generatorXml.cluster(cluster);
-
- $scope.pom = $generatorPom.pom(cluster, igniteVersion).asString();
-
- $scope.generateJavaServer();
-
- $scope.generateDockerServer();
-
- $scope.generateClient();
-
- $scope.updatePojos();
- };
-
- $scope.pojoAvailable = function() {
- return $scope.selectedItem && $common.isDefined($scope.selectedItem.metadatas) && $scope.selectedItem.metadatas.length > 0;
- };
-
- $scope.downloadConfiguration = function () {
- var cluster = $scope.selectedItem;
- var clientNearCfg = $scope.backupItem.nearConfiguration;
-
- var zip = new JSZip();
-
- zip.file('Dockerfile', $scope.dockerServer);
-
- var builder = $generatorProperties.generateProperties(cluster);
-
- if (builder)
- zip.file('src/main/resources/secret.properties', builder.asString());
-
- var srcPath = 'src/main/java/';
-
- var serverXml = 'config/' + cluster.name + '-server.xml';
- var clientXml = 'config/' + cluster.name + '-client.xml';
-
- zip.file(serverXml, $generatorXml.cluster(cluster));
- zip.file(clientXml , $generatorXml.cluster(cluster, clientNearCfg));
-
- zip.file(srcPath + 'factory/ServerConfigurationFactory.java', $generatorJava.cluster(cluster, 'factory', 'ServerConfigurationFactory', null));
- zip.file(srcPath + 'factory/ClientConfigurationFactory.java', $generatorJava.cluster(cluster, 'factory', 'ClientConfigurationFactory', clientNearCfg));
-
- zip.file(srcPath + 'startup/ServerNodeSpringStartup.java', $generatorJava.nodeStartup(cluster, 'startup', 'ServerNodeSpringStartup', '"' + serverXml + '"'));
- zip.file(srcPath + 'startup/ClientNodeSpringStartup.java', $generatorJava.nodeStartup(cluster, 'startup', 'ClientNodeSpringStartup', '"' + clientXml + '"'));
-
- zip.file(srcPath + 'startup/ServerNodeCodeStartup.java', $generatorJava.nodeStartup(cluster, 'startup', 'ServerNodeCodeStartup',
- 'ServerConfigurationFactory.createConfiguration()', 'factory.ServerConfigurationFactory'));
- zip.file(srcPath + 'startup/ClientNodeCodeStartup.java', $generatorJava.nodeStartup(cluster, 'startup', 'ClientNodeCodeStartup',
- 'ClientConfigurationFactory.createConfiguration()', 'factory.ClientConfigurationFactory', clientNearCfg));
-
- zip.file('pom.xml', $generatorPom.pom(cluster, igniteVersion).asString());
-
- zip.file('README.txt', $generatorReadme.readme().asString());
- zip.file('jdbc-drivers/README.txt', $generatorReadme.readmeJdbc().asString());
-
- for (var meta of $generatorJava.pojos(cluster.caches, $scope.configServer.useConstructor, $scope.configServer.includeKeyFields)) {
- if (meta.keyClass)
- zip.file(srcPath + meta.keyType.replace(/\./g, '/') + '.java', meta.keyClass);
-
- zip.file(srcPath + meta.valueType.replace(/\./g, '/') + '.java', meta.valueClass);
- }
-
- var blob = zip.generate({type:'blob', mimeType: 'application/octet-stream'});
-
- // Download archive.
- saveAs(blob, cluster.name + '-configuration.zip');
- };
-
- $http.post('/api/v1/configuration/clusters/list')
- .success(function (data) {
- $scope.clusters = data.clusters;
-
- if ($scope.clusters.length > 0) {
- // Populate clusters with caches.
- _.forEach($scope.clusters, function (cluster) {
- cluster.caches = _.filter(data.caches, function (cache) {
- return _.contains(cluster.caches, cache._id);
- });
-
- cluster.igfss = _.filter(data.igfss, function (igfs) {
- return _.contains(cluster.igfss, igfs._id);
- });
- });
-
- var restoredId = sessionStorage.summarySelectedId;
-
- var selectIdx = 0;
-
- if (restoredId) {
- var idx = _.findIndex($scope.clusters, function (cluster) {
- return cluster._id === restoredId;
- });
-
- if (idx >= 0)
- selectIdx = idx;
- else
- delete sessionStorage.summarySelectedId;
- }
-
- $scope.selectItem($scope.clusters[selectIdx]);
-
- $scope.$watch('selectedItem', function (val) {
- if (val)
- sessionStorage.summarySelectedId = val._id;
- }, true);
- }
- })
- .finally(function () {
- $loading.finish('loadingSummaryScreen');
- $scope.ui = {ready: true}
- });
-}]);
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/gulpfile.js/tasks/copy.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.js/tasks/copy.js b/modules/control-center-web/src/main/js/gulpfile.js/tasks/copy.js
index 3786a50..0f05f32 100644
--- a/modules/control-center-web/src/main/js/gulpfile.js/tasks/copy.js
+++ b/modules/control-center-web/src/main/js/gulpfile.js/tasks/copy.js
@@ -91,7 +91,9 @@ gulp.task('copy:ignite_modules', function(cb) {
});
gulp.task('copy:watch', function(cb) {
- gulp.watch([paths, legacyPaths, igniteModulePaths], function(glob) {
+ gulp.watch([legacyPaths, igniteModulePaths], function(glob) {
sequence(['copy:base', 'copy:legacy', 'copy:ignite_modules'], 'inject:plugins:js')(cb);
});
+
+ gulp.watch(paths, ['copy:base']);
});
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js b/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
index cd8942a..3bcf425 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
@@ -1415,7 +1415,7 @@ $generatorXml.generateDataSources = function (datasources, res) {
$generatorXml.clusterConfiguration = function (cluster, clientNearCfg, res) {
if (clientNearCfg) {
- res.line('<property name="clientMode" value="true" />');
+ res.line('<property name="clientMode" value="true"/>');
res.line();
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/package.json
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/package.json b/modules/control-center-web/src/main/js/package.json
index ae39b46..77b9e06 100644
--- a/modules/control-center-web/src/main/js/package.json
+++ b/modules/control-center-web/src/main/js/package.json
@@ -86,6 +86,7 @@
"font-awesome": "npm:font-awesome@^4.4.0",
"jade": "github:johnsoftek/plugin-jade@^0.5.1",
"jquery": "github:components/jquery@^2.1.4",
+ "json": "github:systemjs/plugin-json@^0.1.0",
"jszip": "github:Stuk/jszip@^2.5.0",
"lodash": "npm:lodash@^3.10.1",
"pdfmake": "github:bpampuch/pdfmake@^0.1.20",
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/views/configuration/summary-tabs.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/configuration/summary-tabs.jade b/modules/control-center-web/src/main/js/views/configuration/summary-tabs.jade
index 2b97acd..847b42f 100644
--- a/modules/control-center-web/src/main/js/views/configuration/summary-tabs.jade
+++ b/modules/control-center-web/src/main/js/views/configuration/summary-tabs.jade
@@ -16,7 +16,7 @@
ul.nav(ng-class='$navClass', role='tablist')
li(role='presentation' ng-repeat='$pane in $panes track by $index' ng-class='[ $isActive($pane, $index) ? $activeClass : "", $pane.disabled ? "disabled" : "" ]')
- a.summary-tab(ng-show='$pane.title != "POJO" || pojoAvailable()' ng-switch='$pane.title' role='tab' data-toggle='tab' ng-click='!$pane.disabled && $setActive($pane.name || $index)' data-index='{{ $index }}' aria-controls='$pane.title') {{$pane.title}}
+ a.summary-tab(ng-show='$pane.title != "POJO" || (cluster | hasPojo)' ng-switch='$pane.title' role='tab' data-toggle='tab' ng-click='!$pane.disabled && $setActive($pane.name || $index)' data-index='{{ $index }}' aria-controls='$pane.title') {{$pane.title}}
img(ng-switch-when='XML' src='/images/xml.png')
img(ng-switch-when='Java' src='/images/java.png')
img(ng-switch-when='POM' src='/images/xml.png')
http://git-wip-us.apache.org/repos/asf/ignite/blob/539f819c/modules/control-center-web/src/main/js/views/configuration/summary.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/configuration/summary.jade b/modules/control-center-web/src/main/js/views/configuration/summary.jade
index db057cb..3b238b8 100644
--- a/modules/control-center-web/src/main/js/views/configuration/summary.jade
+++ b/modules/control-center-web/src/main/js/views/configuration/summary.jade
@@ -19,28 +19,9 @@ include ../includes/controls
mixin hard-link(ref, txt)
a(style='color:#ec1c24' href=ref target='_blank') #{txt}
-mixin pojos(side)
- div(bs-pane title='POJO' ng-show='pojoAvailable()')
- .details-row
- .col-xs-2.col-sm-2.col-md-2
- label POJO class:
- .col-xs-10.col-sm-10.col-md-10.summary-pojo-list
- button.select-toggle.form-control(ng-model='config#{side}.pojoClass' bs-select bs-options='item for item in pojoClasses()' data-container='')
- .col-xs-2.col-sm-2.col-md-2
- label
- .col-xs-10.col-sm-10.col-md-10
- input(type='checkbox' ng-model='configServer.useConstructor')
- | Generate constructors
- .col-xs-2.col-sm-2.col-md-2
- label
- .col-xs-10.col-sm-10.col-md-10
- input(type='checkbox' ng-model='configServer.includeKeyFields')
- | Include key fields
- div(ui-ace='{onLoad: aceInit, mode: "java"}' ng-model='config#{side}.pojoClassBody')
-
.docs-header
h1 Configurations Summary
-.docs-body(ng-controller='summaryController')
+.docs-body
ignite-callout
ignite-callout-cel(data-title='On This Screen')
li Download XML Config
@@ -53,70 +34,49 @@ mixin pojos(side)
li Deploy Ignite Servers
li Connect Ignite Clients
li Analyze with SQL
-
- div(dw-loading='loadingSummaryScreen' dw-loading-options='{text: "Loading summary screen...", className: "page-loading-overlay"}')
- div(ng-show='ui.ready')
- hr
- .padding-dflt(ng-if='clusters.length == 0')
- | You have no clusters configured. Please configure them
- a(href='/configuration/clusters') here.
- +main-table('Clusters:', 'clusters', 'clusterName', 'selectItem(row)', '{{$index + 1}}) {{row.name}}', 'name')
- div(ng-show='selectedItem && tableVisibleRow(displayedRows, selectedItem)' role='tab')
- .padding-top-dflt(ng-if='clusters.length > 0' bs-affix)
- button.btn.btn-primary(id='download' ng-click='downloadConfiguration()' bs-tooltip data-title='Download configuration' data-placement='bottom') Download
- hr
- .panel-group(bs-collapse ng-init='panels.activePanels=[0,1]' ng-model='panels.activePanels' data-allow-multiple='true')
- .panel.panel-default
- .panel-heading(role='tab' bs-collapse-toggle)
- i.fa(ng-class='panelExpanded(panels, "server") ? "fa-chevron-circle-up" : "fa-chevron-circle-down"')
- label Server
- .panel-collapse(id='server' role='tabpanel' bs-collapse-target)
- .summary-tabs(bs-tabs data-bs-active-pane="tabsServer.activeTab" ng-show='selectedItem' template='configuration/summary-tabs.html')
- div(bs-pane title='XML')
- div(ui-ace='{onLoad: aceInit, mode: "xml"}' ng-model='xmlServer')
- div(bs-pane title='Java')
- .details-row
- .col-xs-2.col-sm-2.col-md-1
- label Generate:
- .col-xs-4.col-sm-3.col-md-3
- button.select-toggle.form-control(ng-model='configServer.javaClassServer' bs-select bs-options='item.value as item.label for item in javaClassItems' data-sort='false')
- div(ui-ace='{onLoad: aceInit, mode: "java"}' ng-model='javaServer')
- div(bs-pane title='POM')
- div(ui-ace='{onLoad: aceInit, mode: "xml"}' ng-model='pom')
- div(bs-pane title='Dockerfile')
- .details-row
- p
- +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
- +hard-link('https://ignite.apache.org/download.html#docker', 'Apache Ignite docker image')
- | . For more information about using Ignite with Docker please read
- +hard-link('http://apacheignite.readme.io/docs/docker-deployment', 'documentation')
- |.
- .col-xs-3.col-sm-2
- label(for='os') Operation System:
- .col-xs-5.col-sm-4
- input#os.form-control(type='text' ng-model='configServer.os' placeholder='debian:8' data-min-length='0' data-html='1' data-auto-select='true' bs-typeahead retain-selection bs-options='os for os in oss')
- div(ui-ace='{onLoad: aceInit, mode: "dockerfile"}' ng-model='dockerServer')
- .panel.panel-default
- .panel-heading(role='tab' bs-collapse-toggle)
- i.fa(ng-class='panelExpanded(panels, "client") ? "fa-chevron-circle-up" : "fa-chevron-circle-down"')
- label Client
- .panel-collapse(id='client' role='tabpanel' bs-collapse-target)
- div(ng-show='selectedItem')
- .details-row(ng-repeat='field in clientFields')
- +form-row-custom(['col-xs-4 col-sm-4 col-md-3'], ['col-xs-4 col-sm-4 col-md-3'], 'backupItem')
- .summary-tabs(bs-tabs data-bs-active-pane="tabsClient.activeTab" template='configuration/summary-tabs.html')
- div(bs-pane title='XML')
- div(ui-ace='{onLoad: aceInit, mode: "xml"}' ng-model='xmlClient')
- div(bs-pane title='Java')
- .details-row
- .col-xs-2.col-sm-2.col-md-1
- label Generate:
- .col-xs-4.col-sm-3.col-md-3
- button.select-toggle.form-control(ng-model='backupItem.javaClassClient' bs-select bs-options='item.value as item.label for item in javaClassItems' data-sort='false')
- div(ui-ace='{onLoad: aceInit, mode: "java"}' ng-model='javaClient')
- div(bs-pane title='POM')
- div(ui-ace='{onLoad: aceInit, mode: "xml"}' ng-model='pom')
- +pojos('Client')
+
+ ignite-loading
+ hr
+
+ .padding-dflt(ng-if='clusters.length == 0')
+ | You have no clusters configured. Please configure them
+ a(href='/configuration/clusters') here.
+
+ +main-table('Clusters:', 'clusters', 'clusterName', 'selectItem(row)', '{{$index + 1}}) {{row.name}}', 'name')
+
+ div(ng-show='selectedItem && tableVisibleRow(displayedRows, selectedItem)' role='tab')
+ .padding-top-dflt(ng-if='clusters.length > 0' bs-affix)
+ button.btn.btn-primary(id='download' ng-click='downloadConfiguration()' bs-tooltip data-title='Download configuration' data-placement='bottom') Download
+ hr
+ .panel-group(bs-collapse ng-init='panels.activePanels=[0,1]' ng-model='panels.activePanels' data-allow-multiple='true')
+ .panel.panel-default
+ .panel-heading(role='tab' bs-collapse-toggle)
+ i.fa(ng-class='panelExpanded(panels, "server") ? "fa-chevron-circle-up" : "fa-chevron-circle-down"')
+ label Server
+ .panel-collapse(id='server' role='tabpanel' bs-collapse-target)
+ .summary-tabs(bs-tabs data-bs-active-pane="tabsServer.activeTab" template='configuration/summary-tabs.html')
+ div(bs-pane title='XML')
+ ignite-ui-ace-xml(data-cluster='cluster')
+ div(bs-pane title='Java')
+ ignite-ui-ace-java(data-cluster='cluster')
+ div(bs-pane title='POM')
+ ignite-ui-ace-pom(data-cluster='cluster')
+ div(bs-pane title='Dockerfile')
+ ignite-ui-ace-docker(data-cluster='cluster' ng-model='ctrl.data.docker')
+
+ .panel.panel-default
+ .panel-heading(role='tab' bs-collapse-toggle)
+ i.fa(ng-class='panelExpanded(panels, "client") ? "fa-chevron-circle-up" : "fa-chevron-circle-down"')
+ label Client
+ .panel-collapse(id='client' role='tabpanel' bs-collapse-target)
+ .details-row(ng-repeat='field in clientFields')
+ +form-row-custom(['col-xs-4 col-sm-4 col-md-3'], ['col-xs-4 col-sm-4 col-md-3'], 'backupItem')
+ .summary-tabs(bs-tabs data-bs-active-pane="tabsClient.activeTab" template='configuration/summary-tabs.html')
+ div(bs-pane title='XML')
+ ignite-ui-ace-xml(data-cluster='cluster' data-cluster-cfg='backupItem.nearConfiguration')
+ div(bs-pane title='Java')
+ ignite-ui-ace-java(data-cluster='cluster' data-cluster-cfg='backupItem.nearConfiguration')
+ div(bs-pane title='POM')
+ ignite-ui-ace-pom(data-cluster='cluster')
+ div(bs-pane title='POJO' ng-show='cluster | hasPojo')
+ ignite-ui-ace-pojos(data-cluster='cluster' ng-model='ctrl.data.metadatas')