ENTAXY-480 release version 1.8.3
This commit is contained in:
@ -3,7 +3,7 @@
|
||||
<parent>
|
||||
<groupId>ru.entaxy.esb.ui</groupId>
|
||||
<artifactId>entaxy-hawtio</artifactId>
|
||||
<version>1.8.2.2</version>
|
||||
<version>1.8.3</version>
|
||||
</parent>
|
||||
<groupId>ru.entaxy.esb.ui.hawtio</groupId>
|
||||
<artifactId>artemis-plugin-entaxy</artifactId>
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -3,7 +3,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
artemis-plugin-entaxy
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
# ~~~~~~licensing~~~~~~
|
||||
# artemis-plugin-entaxy
|
||||
# ==========
|
||||
# Copyright (C) 2020 - 2021 EmDev LLC
|
||||
# Copyright (C) 2020 - 2023 EmDev LLC
|
||||
# ==========
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
|
@ -20,7 +20,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
artemis-plugin-entaxy
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
artemis-plugin-entaxy
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
artemis-plugin-entaxy
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
artemis-plugin-entaxy
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* artemis-plugin-entaxy
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -3,7 +3,7 @@
|
||||
<parent>
|
||||
<groupId>ru.entaxy.esb.ui</groupId>
|
||||
<artifactId>entaxy-hawtio</artifactId>
|
||||
<version>1.8.2.2</version>
|
||||
<version>1.8.3</version>
|
||||
</parent>
|
||||
<groupId>ru.entaxy.esb.ui.hawtio</groupId>
|
||||
<artifactId>entaxy-branding-plugin</artifactId>
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-branding-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -3,7 +3,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
entaxy-branding-plugin
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -3,7 +3,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
entaxy-branding-plugin
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-branding-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -18,101 +18,60 @@
|
||||
* ~~~~~~/licensing~~~~~~
|
||||
*/
|
||||
|
||||
/* jmx tree icon */
|
||||
/*.ru-entaxy-esb span.node-icon::before,*/
|
||||
.node-entaxytree span.node-icon::before /* BUT this way icons aren't present in JMX */
|
||||
/*.ru-entaxy-esb-0-0-0-0-folder span.node-icon::before,
|
||||
.ru-entaxy-esb-platform-folder span.node-icon::before,
|
||||
.ru-entaxy-esb-adapters-folder span.node-icon::before,
|
||||
.ru-entaxy-esb-artemis-adapter-1-folder span.node-icon::before,
|
||||
.ru-entaxy-esb-artemis-amqp-adapter-1-folder span.node-icon::before,
|
||||
.ru-entaxy-esb-file-adapter-1-folder span.node-icon::before,
|
||||
.ru-entaxy-esb-h2-adapter-1-4-199-folder span.node-icon::before,
|
||||
.ru-entaxy-esb-postgresql-adapter-42-2-9-folder span.node-icon::before,
|
||||
.ru-entaxy-esb-rabbitmq-amqp-adapter-1-folder span.node-icon::before*/
|
||||
{
|
||||
display: inline-block;
|
||||
background: url(../img/entaxy.svg);
|
||||
min-width: 16px;
|
||||
min-height: 16px;
|
||||
background-size: 16px 16px;
|
||||
background-position: -1px center;
|
||||
background-repeat: no-repeat;
|
||||
content: "" !important;
|
||||
vertical-align: middle;
|
||||
/* jmx tree icons */
|
||||
|
||||
.entaxy-node-icon span.node-icon::before {
|
||||
background: url("../img/icons/cranberry-red/entaxy-node-icon.png");
|
||||
}
|
||||
|
||||
/*.ru-entaxy-esb-adapters-folder span.node-icon::before*/
|
||||
/*.ru-entaxy-esb-artemis-adapter-1-folder span.node-icon::before
|
||||
{
|
||||
display: inline-block;
|
||||
background: url(../img/artemis.png);
|
||||
min-width: 16px;
|
||||
min-height: 16px;
|
||||
background-size: 16px 16px;
|
||||
background-position: -1px center;
|
||||
background-repeat: no-repeat;
|
||||
content: "" !important;
|
||||
vertical-align: middle;
|
||||
.entaxy-connectors-icon span.node-icon::before {
|
||||
background: url("../img/icons/cranberry-red/entaxy-connectors-icon.png");
|
||||
}
|
||||
|
||||
.ru-entaxy-esb-artemis-amqp-adapter-1-folder span.node-icon::before
|
||||
{
|
||||
display: inline-block;
|
||||
background: url(../img/activemq.png);
|
||||
min-width: 16px;
|
||||
min-height: 16px;
|
||||
background-size: 16px 16px;
|
||||
background-position: -1px center;
|
||||
background-repeat: no-repeat;
|
||||
content: "" !important;
|
||||
vertical-align: middle;
|
||||
.entaxy-connections-icon span.node-icon::before {
|
||||
background: url("../img/icons/cranberry-red/entaxy-connections-icon.png");
|
||||
}
|
||||
|
||||
.ru-entaxy-esb-file-adapter-1-folder span.node-icon::before
|
||||
{
|
||||
display: inline-block;
|
||||
background: url(../img/jesus.jpg);
|
||||
min-width: 16px;
|
||||
min-height: 16px;
|
||||
background-size: 16px 16px;
|
||||
background-position: -1px center;
|
||||
background-repeat: no-repeat;
|
||||
content: "" !important;
|
||||
vertical-align: middle;
|
||||
.entaxy-adapter-icon span.node-icon::before {
|
||||
background: url("../img/icons/cranberry-red/entaxy-adapter-icon.png");
|
||||
}
|
||||
|
||||
.ru-entaxy-esb-h2-adapter-1-4-199-folder span.node-icon::before
|
||||
{
|
||||
display: inline-block;
|
||||
background: url(../img/h2.png);
|
||||
min-width: 16px;
|
||||
min-height: 16px;
|
||||
background-size: 16px 16px;
|
||||
background-position: -1px center;
|
||||
background-repeat: no-repeat;
|
||||
content: "" !important;
|
||||
vertical-align: middle;
|
||||
.entaxy-routes-icon span.node-icon::before {
|
||||
background: url("../img/icons/cranberry-red/entaxy-routes-icon.png");
|
||||
}
|
||||
|
||||
.ru-entaxy-esb-postgresql-adapter-42-2-9-folder span.node-icon::before
|
||||
{
|
||||
display: inline-block;
|
||||
background: url(../img/postgresql.png);
|
||||
min-width: 16px;
|
||||
min-height: 16px;
|
||||
background-size: 16px 16px;
|
||||
background-position: -1px center;
|
||||
background-repeat: no-repeat;
|
||||
content: "" !important;
|
||||
vertical-align: middle;
|
||||
.entaxy-profiles-icon span.node-icon::before {
|
||||
background: url("../img/icons/cranberry-red/entaxy-profiles-icon.png");
|
||||
}
|
||||
|
||||
.ru-entaxy-esb-rabbitmq-amqp-adapter-1-folder span.node-icon::before
|
||||
{
|
||||
display: inline-block;
|
||||
background: url(../img/rabbitmq.svg);
|
||||
min-width: 16px;
|
||||
.entaxy-factories-icon span.node-icon::before {
|
||||
background: url("../img/icons/cranberry-red/entaxy-factories-icon.png");
|
||||
}
|
||||
|
||||
.entaxy-platform-icon span.node-icon::before {
|
||||
background: url("../img/icons/cranberry-red/entaxy-platform-icon.png");
|
||||
}
|
||||
|
||||
.entaxy-runtime-icon span.node-icon::before {
|
||||
background: url("../img/icons/cranberry-red/entaxy-runtime-icon.png");
|
||||
}
|
||||
|
||||
.entaxy-resource-icon span.node-icon::before {
|
||||
background: url("../img/icons/cranberry-red/entaxy-resource-icon.png");
|
||||
}
|
||||
|
||||
.entaxy-node-icon span.node-icon::before,
|
||||
.entaxy-connectors-icon span.node-icon::before,
|
||||
.entaxy-connections-icon span.node-icon::before,
|
||||
.entaxy-adapter-icon span.node-icon::before,
|
||||
.entaxy-routes-icon span.node-icon::before,
|
||||
.entaxy-profiles-icon span.node-icon::before,
|
||||
.entaxy-factories-icon span.node-icon::before,
|
||||
.entaxy-platform-icon span.node-icon::before,
|
||||
.entaxy-runtime-icon span.node-icon::before,
|
||||
.entaxy-resource-icon span.node-icon::before {
|
||||
display: inline-block;
|
||||
min-width: 16px;
|
||||
min-height: 16px;
|
||||
background-size: 16px 16px;
|
||||
background-position: -1px center;
|
||||
@ -120,11 +79,9 @@
|
||||
content: "" !important;
|
||||
vertical-align: middle;
|
||||
}
|
||||
*/
|
||||
|
||||
/* fonts */
|
||||
|
||||
|
||||
/* You can customise the styles of your application here. */
|
||||
@font-face {
|
||||
font-family: 'PatternFlyIcons-webfont';
|
||||
@ -315,9 +272,10 @@ tbody>tr:hover {
|
||||
color: #fff!important;
|
||||
}
|
||||
|
||||
/*.list-group.list-view-pf.list-view-pf-view {
|
||||
margin-top: -30px;
|
||||
}*/
|
||||
.toast-pf-content {
|
||||
max-height: calc(100vh - 150px);
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.entaxy-result-table {
|
||||
width: 300px;
|
||||
@ -350,24 +308,39 @@ table.dataTable thead .sorting_asc, table.dataTable thead .sorting_desc {
|
||||
/* CSSs for entaxy modal window are below */
|
||||
.modal-xl {
|
||||
width: 70%;
|
||||
min-width: 900px;
|
||||
}
|
||||
|
||||
.modal-body-header {
|
||||
height: 70px;
|
||||
max-height: 70px;
|
||||
margin-bottom: 15px;
|
||||
padding-top: 5px;
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
border-bottom: 1px #f5f5f5 solid;
|
||||
background-color: whitesmoke;
|
||||
border-bottom: 1px #bbbbbb solid;
|
||||
border-top: 1px #bbbbbb solid;
|
||||
}
|
||||
|
||||
.entaxy-modal-container .modal-body {
|
||||
height: calc(100vh - 300px);
|
||||
max-height: calc(100vh - 300px);
|
||||
height: calc(100vh - 270px);
|
||||
max-height: calc(100vh - 270px);
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.entaxy-modal-container .modal-body-without-header {
|
||||
height: calc(100vh - 230px);
|
||||
max-height: calc(100vh - 230px);
|
||||
padding: 0px;
|
||||
margin-top:15px;
|
||||
}
|
||||
|
||||
.entaxy-modal-container .modal-footer {
|
||||
background-color: whitesmoke;
|
||||
border-top: 1px #bbbbbb solid;
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
.modal-list-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@ -379,12 +352,38 @@ table.dataTable thead .sorting_asc, table.dataTable thead .sorting_desc {
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
.group-list .modal-list-toolbar-container .toolbar-pf {
|
||||
background-color: #cfcdcd;
|
||||
border-bottom: 1px solid #ffffff;
|
||||
padding-top: 15px;
|
||||
}
|
||||
|
||||
.modal-list-toolbar-container .toolbar-pf .form-group {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.group-list .modal-list-toolbar-container .toolbar-pf-results {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.modal-list-list-container {
|
||||
min-height:200px;
|
||||
overflow-y:auto;
|
||||
flex:initial;
|
||||
}
|
||||
|
||||
.modal-list-list-container .list-view-pf .list-group-item {
|
||||
border-color: #ededed;
|
||||
}
|
||||
|
||||
.modal-list-list-container .list-view-pf-view {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.modal-list-list-container .list-group {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
/* This changes the size of the list-view item */
|
||||
/*.list-group-item*/
|
||||
.modal-list-list-container .list-view-pf-main-info {
|
||||
@ -393,20 +392,62 @@ table.dataTable thead .sorting_asc, table.dataTable thead .sorting_desc {
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.modal-group-fields-container {
|
||||
.group-list .modal-list-list-container .blank-slate-pf {
|
||||
background-color: #cfcdcd;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.modal-group-fields-container,
|
||||
.modal-list-with-description-container {
|
||||
height: 100%;
|
||||
max-height: 100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.modal-list-with-description-list-container {
|
||||
width: 50%;
|
||||
border-right: #d1d1d1 solid 1px;
|
||||
}
|
||||
|
||||
.modal-description-container {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.modal-description-title {
|
||||
height: 47px;
|
||||
padding: 15px;
|
||||
border-bottom: #d1d1d1 solid 1px;
|
||||
}
|
||||
|
||||
.modal-description-body {
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.modal-groups-list-container {
|
||||
width: 335px;
|
||||
padding-bottom: 15px;
|
||||
background-color: #cfcdcd;
|
||||
}
|
||||
|
||||
.modal-groups-list-container .list-group-item {
|
||||
background-color: #cfcdcd;
|
||||
border-width: 0px;
|
||||
}
|
||||
|
||||
.modal-groups-list-container .list-group-item:first-child {
|
||||
border-top: 0px;
|
||||
}
|
||||
|
||||
.modal-groups-list-container .list-group-item.active {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
.modal-group-fields-form-container {
|
||||
overflow-y: auto;
|
||||
flex: auto;
|
||||
padding-top: 15px;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
.modal-group-fields-form-container .form-group {
|
||||
@ -444,6 +485,118 @@ table.dataTable thead .sorting_asc, table.dataTable thead .sorting_desc {
|
||||
-o-transform: translateY(-50%) !important;*/
|
||||
}
|
||||
|
||||
/* Styles for labels and popovers in modal */
|
||||
|
||||
.label-col {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.label-col .control-label {
|
||||
display: unset;
|
||||
}
|
||||
|
||||
.form-group .popover {
|
||||
width: max-content;
|
||||
max-width: 200%;
|
||||
}
|
||||
|
||||
.label-description-popover {
|
||||
padding: 2px 0px 2px 2px;
|
||||
}
|
||||
|
||||
.label-description-popover:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.label-description-popover:active:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
/*These are for custom forms*/
|
||||
|
||||
.entaxy-xml-form {
|
||||
width: 100%;
|
||||
height: 26px;
|
||||
}
|
||||
|
||||
.custom-select .caret {
|
||||
float: right;
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
.btn-select {
|
||||
font-size: 13.5px;
|
||||
border-radius: 0;
|
||||
text-align: left;
|
||||
vertical-align: middle;
|
||||
padding: 0px 6px;
|
||||
}
|
||||
|
||||
.btn-select:focus,
|
||||
.btn-select:active:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.custom-select .dropdown-menu {
|
||||
font-size: 13.5px;
|
||||
max-height: 100px;
|
||||
overflow-y: auto;
|
||||
left: auto;
|
||||
width: calc(100% - 40px);
|
||||
}
|
||||
|
||||
.custom-select .dropdown-menu li {
|
||||
line-height:26px !important;
|
||||
}
|
||||
|
||||
.dropdown-option-new {
|
||||
background-color: whitesmoke;
|
||||
}
|
||||
|
||||
.dropdown-option-new span {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
select.form-control {
|
||||
font-size: 13.5px;
|
||||
}
|
||||
|
||||
/*Margin for health checks*/
|
||||
.health-checks-status {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
/* Fixes artemis preferences form margin */
|
||||
.artemis-preferences-form {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.route-source-header-container {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.route-source-header-container h2 {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.route-source-error-message {
|
||||
font-size: 13.5px;
|
||||
color: #c00;
|
||||
padding-left: 10px;
|
||||
margin-top: 22.5px;
|
||||
}
|
||||
|
||||
.xml-route-source-container {
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
.properties-container {
|
||||
height: calc(100vh - 320px);
|
||||
border-top: 1px #bbb solid;
|
||||
border-bottom: 1px #bbb solid;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
/*This is the original css from HawtIO 1,leaving as is as somemay be used*/
|
||||
* {
|
||||
font-family: "Open Sans";
|
||||
@ -596,6 +749,57 @@ ul.dynatree-container li {
|
||||
border: 1px solid #d4d4d4;
|
||||
}
|
||||
|
||||
.xml-editor-container {
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.xml-editor-container .editor-autoresize .CodeMirror-scroll {
|
||||
height: calc(100vh - 240px);
|
||||
}
|
||||
|
||||
.xml-route-source-container .editor-autoresize .CodeMirror-scroll {
|
||||
height: calc(100vh - 320px);
|
||||
}
|
||||
|
||||
.CodeMirror-hints {
|
||||
position: absolute;
|
||||
z-index: 2000;
|
||||
overflow: hidden;
|
||||
list-style: none;
|
||||
|
||||
margin: 0;
|
||||
padding: 2px;
|
||||
|
||||
-webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
|
||||
-moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
|
||||
box-shadow: 2px 3px 5px rgba(0,0,0,.2);
|
||||
border-radius: 3px;
|
||||
border: 1px solid silver;
|
||||
|
||||
background: white;
|
||||
font-size: 90%;
|
||||
font-family: monospace;
|
||||
|
||||
max-height: 20em;
|
||||
overflow-y: auto;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.CodeMirror-hint {
|
||||
margin: 0;
|
||||
padding: 0 4px;
|
||||
border-radius: 2px;
|
||||
white-space: pre;
|
||||
color: black;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
li.CodeMirror-hint-active {
|
||||
background: #08f;
|
||||
color: white;
|
||||
}
|
||||
|
||||
i.expandable-indicator {
|
||||
color: #666;
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
entaxy-branding-plugin
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
@ -3,7 +3,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
entaxy-branding-plugin
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-branding-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -3,7 +3,7 @@
|
||||
<parent>
|
||||
<groupId>ru.entaxy.esb.ui</groupId>
|
||||
<artifactId>entaxy-hawtio</artifactId>
|
||||
<version>1.8.2.2</version>
|
||||
<version>1.8.3</version>
|
||||
</parent>
|
||||
<groupId>ru.entaxy.esb.ui.hawtio</groupId>
|
||||
<artifactId>entaxy-h2-plugin</artifactId>
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -3,7 +3,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
entaxy-management-plugin
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -3,7 +3,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
entaxy-management-plugin
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
entaxy-management-plugin
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
entaxy-management-plugin
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
entaxy-management-plugin
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-h2-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -3,7 +3,7 @@
|
||||
<parent>
|
||||
<groupId>ru.entaxy.esb.ui</groupId>
|
||||
<artifactId>entaxy-hawtio</artifactId>
|
||||
<version>1.8.2.2</version>
|
||||
<version>1.8.3</version>
|
||||
</parent>
|
||||
<groupId>ru.entaxy.esb.ui.hawtio</groupId>
|
||||
<artifactId>entaxy-management-plugin</artifactId>
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -3,7 +3,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
entaxy-management-plugin
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -3,7 +3,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
entaxy-management-plugin
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
entaxy-management-plugin
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
entaxy-management-plugin
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
entaxy-management-plugin
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -2,14 +2,14 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed 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.
|
||||
@ -26,48 +26,38 @@ var Entaxy;
|
||||
},
|
||||
template:
|
||||
`
|
||||
<div class="entaxy-modal-container">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" aria-label="Close" ng-click="$ctrl.cancel()">
|
||||
<span class="pficon pficon-close" aria-hidden="true"></span>
|
||||
</button>
|
||||
<h4 class="modal-title">Add Connector</h4>
|
||||
<h4 class="modal-title">Add Connector to {{$ctrl.profileName}}</h4>
|
||||
</div>
|
||||
<div class="modal-list-container" ng-show="$ctrl.step1">
|
||||
<div class="modal-body" style="height:203px; max-height:203px">
|
||||
<div class="col-md-auto">
|
||||
<h2>Choose connector template</h2>
|
||||
</div>
|
||||
<hr class="col-md-auto">
|
||||
<div class="col-md-12">
|
||||
<pf-toolbar class="entaxy-template-toolbar" config="$ctrl.toolbarConfig"></pf-toolbar>
|
||||
</div>
|
||||
<div ng-if="$ctrl.step1">
|
||||
<div class="modal-body-header">
|
||||
<h2>Choose connector template</h2>
|
||||
</div>
|
||||
<div class="modal-body" style="height:300px; max-height:300px">
|
||||
<pf-list-view class="entaxy-template-list" items="$ctrl.viewedTemplates" config="$ctrl.listConfig">
|
||||
<div class="list-view-pf-description">
|
||||
<div class="list-group-item-heading">
|
||||
{{item.name}}
|
||||
</div>
|
||||
</div>
|
||||
</pf-list-view>
|
||||
<div class="modal-body" style="height:433px; max-height:433px">
|
||||
<entaxy-modal-list items="$ctrl.viewedTemplates" selected="$ctrl.selectedItem"
|
||||
change-selection="$ctrl.changeSelection"></entaxy-modal-list>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" ng-click="$ctrl.next()"
|
||||
ng-disabled="$ctrl.listConfig.selectedItems.length === 0">Next</button>
|
||||
ng-disabled="!$ctrl.selectedItem">Next</button>
|
||||
</div>
|
||||
</div>
|
||||
<form name="connectorForm" class="form-horizontal" ng-show="$ctrl.step2" ng-submit="$ctrl.saveConnector($ctrl.formFields)">
|
||||
<div class="modal-body" style="height:503px; max-height:503px">
|
||||
<div class="col-md-auto">
|
||||
<form name="connectorForm" class="form-horizontal" ng-if="$ctrl.step2" ng-submit="$ctrl.saveConnector($ctrl.formFields)">
|
||||
<div class="modal-body" style="height:503px; max-height:503px;">
|
||||
<div class="modal-body-header">
|
||||
<h2>Fill in connector template parameters</h2>
|
||||
</div>
|
||||
<hr class="col-md-auto">
|
||||
<div class="form-group" ng-repeat="formField in $ctrl.formFields">
|
||||
<label class="col-sm-3 control-label" ng-class="{'required-pf': formField.isRequired}" for="{{formField.label}}">{{formField.label}}</label>
|
||||
<div class="form-group" ng-class="{'has-error': $ctrl.errors[formField.name]}"
|
||||
ng-repeat="formField in $ctrl.formFields" style="margin:15px;">
|
||||
<label class="col-sm-3 control-label" ng-class="{'required-pf': formField.isRequired}" for="{{formField.name}}">{{formField.label}}</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="{{formField.type}}" id="{{formField.label}}" ng-class="{'form-control': formField.type !== 'checkbox'}"
|
||||
<input type="{{formField.type}}" id="{{formField.name}}" ng-class="{'form-control': formField.type !== 'checkbox'}"
|
||||
ng-model="formField.value" ng-readonly="formField.isReadOnly">
|
||||
<!--<span class="help-block">{{formField.helpText}}</span>-->
|
||||
<span class="help-block" ng-show="$ctrl.errors[formField.name]">{{$ctrl.errors[formField.name]}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -76,6 +66,7 @@ var Entaxy;
|
||||
<button type="submit" class="btn btn-primary">Add</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
`,
|
||||
controller: EntaxyAddConnectorModalController
|
||||
})
|
||||
@ -86,53 +77,20 @@ var Entaxy;
|
||||
|
||||
var ctrl = this;
|
||||
|
||||
// ctrl.errors = null;
|
||||
|
||||
Entaxy.log.info('MODAL???');
|
||||
|
||||
ctrl.$onInit = function() {
|
||||
Entaxy.log.info('MODAL!!!');
|
||||
ctrl.connector = ctrl.resolve.connector ? ctrl.resolve.connector : null; // FIXME
|
||||
ctrl.step1 = true;
|
||||
ctrl.step2 = false;
|
||||
// ctrl.formFields = ctrl.resolve.args.map(arg => {
|
||||
// let formField = {
|
||||
// label: arg.name,
|
||||
// type: Entaxy.convertToHtmlInputType(arg.type)
|
||||
// };
|
||||
// return formField;
|
||||
// });
|
||||
// Entaxy.log.info('FORM FIELDS ' + JSON.stringify(ctrl.formFields));
|
||||
let templates = Entaxy.getConnectorTemplates();
|
||||
ctrl.templates = templates.map(template => { return { name: template }});
|
||||
// Entaxy.log.info('TEMPLATES ' + JSON.stringify(templates));
|
||||
// Entaxy.log.info('TEMPLATES ' + JSON.stringify(ctrl.templates));
|
||||
ctrl.viewedTemplates = ctrl.templates;
|
||||
ctrl.toolbarConfig.filterConfig.resultsCount = ctrl.viewedTemplates.length;
|
||||
}
|
||||
|
||||
ctrl.toolbarConfig = {
|
||||
filterConfig: {
|
||||
fields: [
|
||||
{
|
||||
id: 'name',
|
||||
title: 'Name',
|
||||
placeholder: 'Filter by Name...',
|
||||
filterType: 'text'
|
||||
}
|
||||
],
|
||||
resultCount: ctrl.viewedTemplates ? ctrl.viewedTemplates.length : 0,
|
||||
appliedFilters: [],
|
||||
onFilterChange: filterChange
|
||||
},
|
||||
actionsConfig: {},
|
||||
// isTableView: true
|
||||
};
|
||||
let templates = Entaxy.getConnectorTemplates();
|
||||
ctrl.templates = templates.map(template => { return { name: template, displayName: template }});
|
||||
ctrl.viewedTemplates = ctrl.templates;
|
||||
|
||||
ctrl.profileName = ctrl.resolve.profileName;
|
||||
}
|
||||
|
||||
ctrl.listConfig = {
|
||||
selectionMatchProp: 'name',
|
||||
selectItems: true,
|
||||
// selectedItems: [],
|
||||
showSelectBox: false,
|
||||
dlbClick: true,
|
||||
onDblClick: function(item, event){
|
||||
@ -141,98 +99,71 @@ var Entaxy;
|
||||
}
|
||||
}
|
||||
|
||||
function filterChange(filters) {
|
||||
applyFilters(filters);
|
||||
ctrl.toolbarConfig.filterConfig.resultsCount = ctrl.viewedTemplates.length;
|
||||
};
|
||||
|
||||
function applyFilters(filters) {
|
||||
ctrl.viewedTemplates = [];
|
||||
if (filters && filters.length > 0) {
|
||||
ctrl.templates.forEach(function (template) {
|
||||
if (matchesFilters(template, filters)) {
|
||||
ctrl.viewedTemplates.push(template);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
ctrl.viewedTemplates = ctrl.templates;
|
||||
ctrl.changeSelection = function(item, isDblClicked) {
|
||||
ctrl.selectedItem = item;
|
||||
if (isDblClicked) {
|
||||
ctrl.next();
|
||||
}
|
||||
};
|
||||
|
||||
function matchesFilters(item, filters) {
|
||||
var matches = true;
|
||||
filters.forEach(function(filter) {
|
||||
if (!matchesFilter(item, filter)) {
|
||||
matches = false;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
return matches;
|
||||
};
|
||||
|
||||
function matchesFilter(item, filter) {
|
||||
var match = true;
|
||||
if (filter.id === 'name') {
|
||||
match = item.name.match(filter.value) !== null;
|
||||
}
|
||||
return match;
|
||||
};
|
||||
}
|
||||
|
||||
ctrl.next = function() {
|
||||
ctrl.step1 = false;
|
||||
ctrl.step2 = true;
|
||||
|
||||
Entaxy.log.info('Selected item ' + JSON.stringify(ctrl.listConfig.selectedItems));
|
||||
|
||||
if (!ctrl.formFields || ctrl.listConfig.selectedItems[0].name !== ctrl.formFields[0].value) {
|
||||
ctrl.formFields = Entaxy.getConnectorTemplateParams(ctrl.listConfig.selectedItems[0].name); //ctrl.listConfig.selectedItems[0]
|
||||
if (!ctrl.formFields || ctrl.selectedItem.name !== ctrl.formFields[0].value) {
|
||||
ctrl.formFields = Entaxy.getConnectorTemplateParams(ctrl.selectedItem.name);
|
||||
ctrl.formFields.unshift({
|
||||
label: 'templateName',
|
||||
displayName: 'Template Name',
|
||||
type: 'java.lang.String',
|
||||
helpText: null,
|
||||
value: ctrl.listConfig.selectedItems[0].name,
|
||||
value: ctrl.selectedItem.name,
|
||||
isReadOnly: true
|
||||
});
|
||||
ctrl.formFields.forEach(formField => formField.type = Entaxy.convertToHtmlInputType(formField.type));
|
||||
ctrl.formFields.forEach(formField => {
|
||||
formField.name = formField.label;
|
||||
if (formField.displayName) {
|
||||
formField.label = formField.displayName;
|
||||
}
|
||||
formField.type = Entaxy.convertToHtmlInputType(formField.type);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
ctrl.back = function() {
|
||||
ctrl.step1 = true;
|
||||
ctrl.step2 = false;
|
||||
|
||||
// ctrl.formFields = null;
|
||||
}
|
||||
|
||||
ctrl.cancel = function() {
|
||||
Entaxy.log.info('QUIT MODAL');
|
||||
ctrl.modalInstance.dismiss();
|
||||
}
|
||||
//
|
||||
ctrl.saveConnector = function(connector) { // FIXME
|
||||
Entaxy.log.info('SAVE CONNECTOR: ' + JSON.stringify(connector));
|
||||
ctrl.errors = validateFields(connector); // FIXME
|
||||
Entaxy.log.info('ERRORS ' + JSON.stringify(ctrl.errors));
|
||||
|
||||
ctrl.saveConnector = function(fields) {
|
||||
ctrl.errors = validateFields(fields);
|
||||
|
||||
if (Object.keys(ctrl.errors).length === 0) {
|
||||
// TODO
|
||||
let connectorArgs = {
|
||||
connectorTemplateName: ctrl.formFields.shift().value,
|
||||
connectorFields: ctrl.formFields.map(formField => { return { label: formField.label, value: formField.value }; })
|
||||
connectorFields: ctrl.formFields.map(formField => { return { label: formField.name, value: formField.value }; })
|
||||
};
|
||||
|
||||
ctrl.modalInstance.close(connectorArgs);
|
||||
}
|
||||
}
|
||||
|
||||
function validateFields(connector) {
|
||||
Entaxy.log.info('VALIDATION START');
|
||||
function validateFields(fields) {
|
||||
let errors = {};
|
||||
|
||||
Entaxy.log.info('VALIDATION END');
|
||||
_.forEach(fields, (field) => {
|
||||
if (field.isRequired && (!field.value || (field.type !== 'checkbox' ? field.value.toString().trim().length === 0 : false))) {
|
||||
errors[field.name] = 'Please fill out this field';
|
||||
}
|
||||
});
|
||||
|
||||
return errors;
|
||||
}
|
||||
}
|
||||
EntaxyAddConnectorModalController.$inject = ['workspace'];
|
||||
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
|
@ -2,14 +2,14 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed 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.
|
||||
@ -33,4 +33,4 @@ var Entaxy;
|
||||
`
|
||||
})
|
||||
.name;
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
|
@ -2,14 +2,14 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed 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.
|
||||
@ -19,166 +19,51 @@
|
||||
*/
|
||||
var Entaxy;
|
||||
(function (Entaxy) {
|
||||
Entaxy._module.component('entaxyConnectors', {
|
||||
Entaxy._module
|
||||
.component('entaxyConnectors', {
|
||||
bindings: {
|
||||
pageTitle: '@'
|
||||
},
|
||||
template:
|
||||
`
|
||||
<h2>
|
||||
Connectors
|
||||
{{$ctrl.pageTitle}}
|
||||
</h2>
|
||||
|
||||
<pf-toolbar class="entaxy-connector-toolbar" config="$ctrl.toolbarConfig"></pf-toolbar>
|
||||
<pf-table-view config="$ctrl.tableConfig"
|
||||
columns="$ctrl.tableColumns"
|
||||
action-buttons="$ctrl.tableActionButtons"
|
||||
page-config="$ctrl.pageConfig"
|
||||
items="$ctrl.viewedConnectors">
|
||||
</pf-table-view>
|
||||
<entaxy-table item-name="Connector" folder-name="Коннекторы"
|
||||
status-name="BundleState" object-name="systemName"
|
||||
extra-primary-actions-config="$ctrl.config"
|
||||
is-parent-dependent="true"></entaxy-table>
|
||||
|
||||
`,
|
||||
controller: EntaxyConnectorsController
|
||||
})
|
||||
.name;
|
||||
|
||||
function EntaxyConnectorsController(workspace, $uibModal, operationsService, jolokiaService) {
|
||||
function EntaxyConnectorsController(workspace, $scope, $uibModal, operationsService, jolokiaService) {
|
||||
'ngInject';
|
||||
|
||||
var ctrl = this;
|
||||
ctrl.workspace = workspace;
|
||||
var entaxyJmxDomain = localStorage['entaxyJmxDomain'] || "ru.entaxy.esb";
|
||||
|
||||
let filterValues = Entaxy.getAllBundleStates();
|
||||
|
||||
ctrl.tableConfig = {
|
||||
selectionMatchProp: 'name',
|
||||
showCheckboxes: false
|
||||
};
|
||||
|
||||
ctrl.toolbarConfig = {
|
||||
filterConfig: {
|
||||
fields: [
|
||||
{
|
||||
id: 'name',
|
||||
title: 'Name',
|
||||
placeholder: 'Filter by Name...',
|
||||
filterType: 'text'
|
||||
},
|
||||
{
|
||||
id: 'status',
|
||||
title: 'Status',
|
||||
placeholder: 'Filter by Status...',
|
||||
filterType: 'select', // actually text has it rights to be
|
||||
filterValues: filterValues
|
||||
}
|
||||
],
|
||||
resultCount: ctrl.viewedConnectors ? ctrl.viewedConnectors.length : 0,
|
||||
appliedFilters: [],
|
||||
onFilterChange: filterChange
|
||||
},
|
||||
actionsConfig: {
|
||||
primaryActions: [
|
||||
{ name: 'Add connector', actionFn: () => ctrl.showAddConnectorModal() },
|
||||
// { name: 'Show Modal', actionFn: () => ctrl.showModal() }
|
||||
]
|
||||
},
|
||||
isTableView: true
|
||||
};
|
||||
|
||||
ctrl.columnDefs = [
|
||||
{ field: 'name', displayName: 'Connector Name' },
|
||||
{ field: 'status', displayName: 'Status' }
|
||||
];
|
||||
|
||||
ctrl.tableColumns = [
|
||||
{ header: 'Connector Name', itemField: 'name' },
|
||||
{ header: 'Status', itemField: 'status' }
|
||||
];
|
||||
|
||||
ctrl.tableActionButtons = [
|
||||
{ name: 'Start', title: 'Start Connector', actionFn: startConnector },
|
||||
{ name: 'Stop', title: 'Stop Connector', actionFn: stopConnector },
|
||||
// { name: 'Edit', title: 'Edit Connector', actionFn: editConnector },
|
||||
{ name: 'Remove', title: 'Remove Connector', actionFn: removeConnector }
|
||||
];
|
||||
|
||||
ctrl.pageConfig = {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
pageSizeIncrements: [5, 10, 20, 50, 100]
|
||||
};
|
||||
|
||||
function filterChange(filters) {
|
||||
applyFilters(filters);
|
||||
ctrl.toolbarConfig.filterConfig.resultsCount = ctrl.viewedConnectors.length;
|
||||
};
|
||||
|
||||
function applyFilters(filters) {
|
||||
ctrl.viewedConnectors = [];
|
||||
if (filters && filters.length > 0) {
|
||||
ctrl.connectors.forEach(function (connector) {
|
||||
if (matchesFilters(connector, filters)) {
|
||||
ctrl.viewedConnectors.push(connector);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
ctrl.viewedConnectors = ctrl.connectors;
|
||||
}
|
||||
};
|
||||
|
||||
function matchesFilters(item, filters) {
|
||||
var matches = true;
|
||||
filters.forEach(function(filter) {
|
||||
if (!matchesFilter(item, filter)) {
|
||||
matches = false;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
return matches;
|
||||
};
|
||||
|
||||
function matchesFilter(item, filter) {
|
||||
var match = true;
|
||||
if (filter.id === 'name') {
|
||||
match = item.name.match(filter.value) !== null;
|
||||
} else if (filter.id === 'status') {
|
||||
match = item.status === filter.value;
|
||||
}
|
||||
return match;
|
||||
};
|
||||
let primaryActions = [ { name: 'Add Legacy Connector', actionFn: () => ctrl.showAddConnectorModal() } ];
|
||||
ctrl.config = {
|
||||
primaryActions: primaryActions,
|
||||
isTableUpdateNeeded: true
|
||||
}
|
||||
|
||||
ctrl.connectors = [];
|
||||
ctrl.viewedConnectors = [];
|
||||
|
||||
ctrl.$onInit = function() {
|
||||
populateTable();
|
||||
}
|
||||
|
||||
function populateTable() {
|
||||
ctrl.folderName = 'Коннекторы';
|
||||
ctrl.statusName = 'BundleState';
|
||||
|
||||
let connectors = [];
|
||||
let count = 0; // FIXME CRUTCH
|
||||
|
||||
let connectorsFolder = workspace.getSelectedMBean().get(ctrl.folderName);
|
||||
if (connectorsFolder) {
|
||||
connectorsFolder.children.forEach((child) => {
|
||||
jolokiaService.getAttributes(child.objectName, [ctrl.statusName])
|
||||
.then((response) => {
|
||||
connectors.push({name: child.title, status: response[ctrl.statusName], mbeanName: child.objectName});
|
||||
});
|
||||
count++; // FIXME CRUTCH
|
||||
});
|
||||
|
||||
ctrl.connectors = connectors;
|
||||
ctrl.viewedConnectors = connectors;
|
||||
ctrl.toolbarConfig.filterConfig.resultsCount = count; // FIXME CRUTCH
|
||||
}
|
||||
}
|
||||
|
||||
ctrl.showAddConnectorModal = function() {
|
||||
let selectedMBean = workspace.getSelectedMBean();
|
||||
|
||||
$uibModal.open({
|
||||
component: 'entaxyAddConnectorModal',
|
||||
resolve: {
|
||||
connector: null
|
||||
connector: null,
|
||||
profileName: () => selectedMBean.title
|
||||
},
|
||||
size: 'lg',
|
||||
backdrop: 'static'
|
||||
@ -188,28 +73,6 @@ var Entaxy;
|
||||
});
|
||||
}
|
||||
|
||||
ctrl.templates = Entaxy.getConnectorTemplates();
|
||||
|
||||
ctrl.showModal = function() {
|
||||
$uibModal.open({
|
||||
component: 'entaxyModal',
|
||||
resolve: {
|
||||
modalTitle: () => 'Add Connector',
|
||||
firstStepTitle: () => 'Choose connector template',
|
||||
secondStepTitle: () => 'Fill in connector template parameters',
|
||||
// profile: null,
|
||||
// profileNames: () => ctrl.profiles.map(profile => profile.name),
|
||||
// profileIds: () => ctrl.profiles.map(profile => profile.id)
|
||||
templates: () => ctrl.templates.map(template => { return { name: template }})
|
||||
},
|
||||
size: 'lg',
|
||||
backdrop: 'static'
|
||||
})
|
||||
.result.then(args => {
|
||||
// addConnector(args);
|
||||
});
|
||||
}
|
||||
|
||||
function addConnector(connectorArgs) {
|
||||
|
||||
let args = [];
|
||||
@ -228,53 +91,9 @@ var Entaxy;
|
||||
|
||||
operationsService.executeOperation(mbeanName, { name: 'addConnector' }, args)
|
||||
.then(result => {
|
||||
// // FIXME FIXME FIXME FIXME FIXME FIXME
|
||||
setTimeout(() => populateTable(), 5000);
|
||||
|
||||
ctrl.viewedConnectors = ctrl.connectors;
|
||||
ctrl.toolbarConfig.filterConfig.appliedFilters = [];
|
||||
ctrl.toolbarConfig.filterConfig.resultsCount = ctrl.viewedConnectors.length;
|
||||
|
||||
Core.notification('success', result, 3000);
|
||||
}).catch(error => {
|
||||
Core.notification('danger', error, 5000);
|
||||
});
|
||||
}
|
||||
|
||||
function startConnector(action, connector) {
|
||||
let mbeanName = workspace.getSelectedMBeanName();
|
||||
operationsService.executeOperation(mbeanName, { name: 'startConnector' }, [ connector.name ])
|
||||
.then(result => {
|
||||
// FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME
|
||||
setTimeout(() => populateTable(), 100);
|
||||
|
||||
Core.notification('success', result, 3000);
|
||||
}).catch(error => {
|
||||
Core.notification('danger', error, 5000);
|
||||
});
|
||||
}
|
||||
|
||||
function stopConnector(action, connector) {
|
||||
let mbeanName = workspace.getSelectedMBeanName();
|
||||
operationsService.executeOperation(mbeanName, { name: 'stopConnector' }, [ connector.name ])
|
||||
.then(result => {
|
||||
// FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME
|
||||
setTimeout(() => populateTable(), 100);
|
||||
|
||||
Core.notification('success', result, 3000);
|
||||
}).catch(error => {
|
||||
Core.notification('danger', error, 5000);
|
||||
});
|
||||
}
|
||||
|
||||
function removeConnector(action, connector) {
|
||||
let mbeanName = workspace.getSelectedMBeanName();
|
||||
operationsService.executeOperation(mbeanName, { name: 'removeConnector' }, [ connector.name ])
|
||||
.then(result => {
|
||||
ctrl.connectors.splice(ctrl.connectors.indexOf(connector), 1);
|
||||
ctrl.viewedConnectors = ctrl.connectors;
|
||||
ctrl.toolbarConfig.filterConfig.appliedFilters = [];
|
||||
ctrl.toolbarConfig.filterConfig.resultsCount = ctrl.viewedConnectors.length;
|
||||
if (ctrl.config.isTableUpdateNeeded && ctrl.config.updateTableFn) {
|
||||
$scope.$on(Jmx.TreeEvent.Updated, ctrl.config.updateTableFn);
|
||||
}
|
||||
|
||||
Core.notification('success', result, 3000);
|
||||
}).catch(error => {
|
||||
@ -285,6 +104,6 @@ var Entaxy;
|
||||
ctrl.dismissAlert = () => ctrl.alert = null;
|
||||
|
||||
}
|
||||
EntaxyConnectorsController.$inject = ['workspace', '$uibModal', 'operationsService', 'jolokiaService'];
|
||||
EntaxyConnectorsController.$inject = ['workspace', '$scope', '$uibModal', 'operationsService', 'jolokiaService'];
|
||||
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
|
@ -2,14 +2,14 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed 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.
|
||||
@ -39,8 +39,8 @@ var Entaxy;
|
||||
<h2>{{$ctrl.firstStepTitle}}</h2>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<entaxy-modal-list items="$ctrl.templates" selected="$ctrl.selectedItem"
|
||||
change-selection="$ctrl.changeSelection"></entaxy-modal-list>
|
||||
<entaxy-modal-list-with-description items="$ctrl.factories" selected-item="$ctrl.selectedItem"
|
||||
change-selection="$ctrl.changeSelection"></entaxy-modal-list-with-description>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" ng-click="$ctrl.next()"
|
||||
@ -54,11 +54,11 @@ var Entaxy;
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<entaxy-modal-group-fields groups="$ctrl.groups" fields="$ctrl.formFields"
|
||||
errors="$ctrl.errors"></entaxy-modal-group-fields>
|
||||
errors="$ctrl.errors" mode="$ctrl.mode"></entaxy-modal-group-fields>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" ng-if="$ctrl.hasSteps" ng-click="$ctrl.back()">Back</button>
|
||||
<button type="submit" class="btn btn-primary" ng-click="$ctrl.save($ctrl.formFields)">Add</button>
|
||||
<button type="submit" class="btn btn-primary" ng-click="$ctrl.save($ctrl.formFields)">{{$ctrl.submitBtnTitle}}</button>
|
||||
</div>
|
||||
<div>
|
||||
</div>
|
||||
@ -67,54 +67,74 @@ var Entaxy;
|
||||
})
|
||||
.name;
|
||||
|
||||
function entaxyModalController(workspace, operationsService) {
|
||||
function entaxyModalController(operationsService, entaxyService) {
|
||||
'ngInject';
|
||||
|
||||
var ctrl = this;
|
||||
|
||||
ctrl.$onInit = function() {
|
||||
|
||||
ctrl.modalTitle = ctrl.resolve.modalTitle ? ctrl.resolve.modalTitle : 'Modal'; // fixme do required
|
||||
ctrl.firstStepTitle = ctrl.resolve.firstStepTitle ? ctrl.resolve.firstStepTitle : ctrl.modalTitle;
|
||||
ctrl.secondStepTitle = ctrl.resolve.secondStepTitle ? ctrl.resolve.secondStepTitle : ctrl.modalTitle;
|
||||
ctrl.mode = ctrl.resolve.mode;
|
||||
|
||||
ctrl.templates = ctrl.resolve.templates ? ctrl.resolve.templates : null;
|
||||
if (!ctrl.mode) {
|
||||
ctrl.cancel('Mode is not defined');
|
||||
}
|
||||
|
||||
// fixme it was only if (ctrl.templates)
|
||||
if (ctrl.templates && ctrl.templates.length !== 0) { // fixme or maybe if ctrl.templates.length === 1 and then factoryId = ctrl.templates[0]
|
||||
if (ctrl.templates.length > 1) {
|
||||
ctrl.itemType = ctrl.resolve.itemType ? ctrl.resolve.itemType : 'Item';
|
||||
|
||||
let extraToTitle = ctrl.resolve.parentName ? (' to ' + ctrl.resolve.parentName) : '';
|
||||
|
||||
ctrl.modalTitle = ctrl.mode + ' ' + ctrl.itemType + extraToTitle;
|
||||
|
||||
ctrl.submitBtnTitle = Entaxy.getButtonTitleByMode(ctrl.mode);
|
||||
|
||||
let itemName = ctrl.resolve.itemName;
|
||||
|
||||
ctrl.firstStepTitle = ctrl.resolve.firstStepTitle ? ctrl.resolve.firstStepTitle : 'Choose factory';
|
||||
|
||||
ctrl.secondStepTitle = itemName ? ctrl.mode + ' properties for ' + itemName
|
||||
: ctrl.resolve.secondStepTitle ? ctrl.resolve.secondStepTitle : 'Fill in fields';
|
||||
|
||||
if (ctrl.mode !== Entaxy.MODAL_MODES.ADD) {
|
||||
let properties = Object.entries(ctrl.resolve.info.properties);
|
||||
ctrl.properties = properties.map(property => { return { name: property[0], value: property[1] }; });
|
||||
}
|
||||
|
||||
ctrl.factories = ctrl.resolve.factories ? ctrl.resolve.factories : null;
|
||||
|
||||
if (ctrl.factories && ctrl.factories.length !== 0) {
|
||||
if (ctrl.factories.length > 1) {
|
||||
ctrl.factories.sort(Entaxy.compareBy('displayName'));
|
||||
ctrl.step1 = true;
|
||||
ctrl.step2 = false;
|
||||
ctrl.hasSteps = true;
|
||||
} else if (ctrl.templates.length === 1) {
|
||||
} else if (ctrl.factories.length === 1) {
|
||||
ctrl.hasSteps = false;
|
||||
ctrl.next();
|
||||
}
|
||||
} else {
|
||||
ctrl.cancel('Templates are not found');
|
||||
ctrl.cancel('Factories are not found');
|
||||
}
|
||||
}
|
||||
|
||||
ctrl.next = function() {
|
||||
// ctrl.step1 = false;
|
||||
// ctrl.step2 = true;
|
||||
|
||||
// fixme this if perhaps is needed only if hasSteps is true
|
||||
if (!ctrl.formFields || ctrl.selectedItem.name !== ctrl.formFields[0].value) {
|
||||
|
||||
ctrl.formFields = [];
|
||||
|
||||
ctrl.formFields.push({
|
||||
label: 'factoryId',
|
||||
label: 'Factory Id',
|
||||
name: 'factoryId',
|
||||
type: 'java.lang.String',
|
||||
helpText: null,
|
||||
value: ctrl.hasSteps ? ctrl.selectedItem.name : ctrl.templates[0].name,
|
||||
value: ctrl.hasSteps ? ctrl.selectedItem.name : ctrl.factories[0].name,
|
||||
readOnly: true,
|
||||
required: true,
|
||||
required: ctrl.mode === Entaxy.MODAL_MODES.VIEW ? false : true,
|
||||
group: 'general'
|
||||
});
|
||||
|
||||
let mbeanName = ctrl.hasSteps ? ctrl.selectedItem.mbeanName : ctrl.templates[0].mbeanName;
|
||||
let mbeanName = ctrl.hasSteps ? ctrl.selectedItem.mbeanName : ctrl.factories[0].mbeanName;
|
||||
|
||||
operationsService.executeOperation(mbeanName, { name: 'getFields' }, [ 'init' ])
|
||||
.then((response) => {
|
||||
@ -123,26 +143,20 @@ var Entaxy;
|
||||
groups.add('general');
|
||||
|
||||
_.forEach(JSON.parse(response), (field) => {
|
||||
let formField = {
|
||||
label: field.displayName ? field.displayName : field.name,
|
||||
type: field.type,
|
||||
description: field.description,
|
||||
immutable: field.immutable,
|
||||
required: field.required,
|
||||
value: field.defaultValue,
|
||||
conditional: field.conditional,
|
||||
isRef: field.isRef,
|
||||
isBackRef: field.isBackRef,
|
||||
group: field.group ? field.group : 'general',
|
||||
// tag: field.label
|
||||
};
|
||||
|
||||
let objectId = undefined;
|
||||
if (ctrl.mode !== Entaxy.MODAL_MODES.ADD) {
|
||||
objectId = ctrl.resolve.info['objectId'];
|
||||
}
|
||||
let formField = entaxyService.makeFormField(field, objectId, ctrl.properties, ctrl.mode);
|
||||
|
||||
ctrl.formFields.push(formField);
|
||||
groups.add(formField.group);
|
||||
});
|
||||
|
||||
ctrl.formFields.forEach(formField => formField.type = Entaxy.convertToHtmlInputType(formField.type));
|
||||
|
||||
ctrl.groups = Array.from(groups).map((group) => { return { name: group }; });
|
||||
ctrl.groups = Array.from(groups).map((group) => { return { name: group, displayName: group }; });
|
||||
|
||||
ctrl.step1 = false;
|
||||
ctrl.step2 = true;
|
||||
@ -162,40 +176,32 @@ var Entaxy;
|
||||
ctrl.modalInstance.dismiss(reason);
|
||||
}
|
||||
|
||||
ctrl.changeSelection = function(item) {
|
||||
ctrl.changeSelection = function(item, isDblClicked) {
|
||||
ctrl.selectedItem = item;
|
||||
}
|
||||
|
||||
ctrl.save = function(item) {
|
||||
// fixme maybe forEach here
|
||||
ctrl.errors = validateFields(ctrl.formFields);
|
||||
|
||||
if (Object.keys(ctrl.errors).length === 0) {
|
||||
let factoryIdName = ctrl.formFields.shift().value;
|
||||
|
||||
args = {
|
||||
factoryId: ctrl.templates.find((template) => template.name === factoryIdName),
|
||||
fields: ctrl.formFields.map(formField => { return { label: formField.label, value : (formField.nestedValue ? formField.nestedValue : formField.value) }; })
|
||||
};
|
||||
|
||||
ctrl.modalInstance.close(args);
|
||||
if (isDblClicked) {
|
||||
ctrl.next();
|
||||
}
|
||||
}
|
||||
|
||||
function validateFields(fields) {
|
||||
let errors = {};
|
||||
ctrl.save = function(fields) {
|
||||
|
||||
_.forEach(fields, (field) => {
|
||||
if (field.required && !field.isBackRef) {
|
||||
if (!field.value || (field.type !== 'checkbox' ? field.value.trim().length === 0 : false)) {
|
||||
errors[field.label] = 'Please fill out this field';
|
||||
}
|
||||
if (ctrl.mode === Entaxy.MODAL_MODES.VIEW) {
|
||||
ctrl.cancel();
|
||||
}
|
||||
|
||||
let selectedFactory = ctrl.selectedItem ? ctrl.selectedItem : ctrl.factories[0];
|
||||
|
||||
entaxyService.validateFields(fields, selectedFactory, ctrl.itemType)
|
||||
.then(errors => {
|
||||
ctrl.errors = errors;
|
||||
|
||||
if (Object.keys(ctrl.errors).length === 0) {
|
||||
let args = entaxyService.getArguments(fields, ctrl.factories);
|
||||
ctrl.modalInstance.close(args);
|
||||
}
|
||||
});
|
||||
|
||||
return errors;
|
||||
}
|
||||
}
|
||||
entaxyModalController.$inject = ['workspace', 'operationsService'];
|
||||
entaxyModalController.$inject = ['operationsService', 'entaxyService'];
|
||||
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
|
@ -2,14 +2,14 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed 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.
|
||||
@ -24,24 +24,38 @@ var Entaxy;
|
||||
bindings: {
|
||||
groups: '<',
|
||||
fields: '<',
|
||||
errors: '<'
|
||||
errors: '<',
|
||||
mode: '<'
|
||||
},
|
||||
template:
|
||||
`
|
||||
<div class="modal-group-fields-container">
|
||||
<div class="modal-groups-list-container">
|
||||
<entaxy-modal-list items="$ctrl.groups" selected="$ctrl.groups[0]"
|
||||
change-selection="$ctrl.change" filter="$ctrl.matchesFilter"></entaxy-modal-list>
|
||||
<entaxy-modal-list class="group-list" items="$ctrl.groups" items-label="Group" items-label-plural="Groups"
|
||||
selected="$ctrl.selectedGroup" change-selection="$ctrl.change" filter="$ctrl.matchesFilter"></entaxy-modal-list>
|
||||
</div>
|
||||
<div class="modal-group-fields-form-container">
|
||||
<form name="connectorForm" class="form-horizontal">
|
||||
<div class="form-group" ng-class="{'has-error': $ctrl.errors[formField.label]}"
|
||||
ng-repeat="formField in $ctrl.viewedFormFields" ng-if="!formField.isBackRef">
|
||||
<label class="col-sm-4 control-label" ng-class="{'required-pf': formField.required}" for="{{formField.label}}">{{formField.label}}</label>
|
||||
<div class="form-group" ng-class="{'has-error': $ctrl.errors[formField.name]}"
|
||||
ng-repeat="formField in $ctrl.viewedFormFields" ng-if="!formField.isBackRef && !formField.isHidden">
|
||||
<div class="col-sm-4 label-col">
|
||||
<label class="control-label" ng-class="{'required-pf': formField.required}" for="{{formField.name}}">{{formField.label}}</label>
|
||||
<button type="button" class="btn btn-link label-description-popover" popover-placement="auto top-left" popover-trigger="'outsideClick'"
|
||||
uib-popover="{{formField.description}}" ng-if="formField.description">
|
||||
<span class="pficon pficon-help"></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-sm-7">
|
||||
<input type="{{formField.type}}" id="{{formField.label}}" ng-class="{'form-control': formField.type !== 'checkbox'}"
|
||||
ng-model="formField.value" ng-readonly="formField.readOnly">
|
||||
<span class="help-block" ng-show="$ctrl.errors[formField.label]">{{$ctrl.errors[formField.label]}}</span>
|
||||
<input type="{{formField.type}}" id="{{formField.name}}" placeholder="{{formField.placeholder}}" ng-class="{'form-control': formField.type !== 'checkbox'}"
|
||||
ng-model="formField.value" ng-readonly="formField.readOnly" ng-disabled="formField.type === 'checkbox' && formField.readOnly"
|
||||
ng-if="!formField.type.startsWith('entaxy.runtime.') && formField.type !== 'xml:route' && !formField.typeInfo">
|
||||
<entaxy-select type="formField.type" id="{{formField.name}}" filter="formField.filter" model="formField.value"
|
||||
update-parent-fn="$ctrl.updateFieldsAfterSelectionChange" options="formField.options" ng-readonly="formField.readOnly"
|
||||
ng-if="formField.type.startsWith('entaxy.runtime.')"></entaxy-select>
|
||||
<entaxy-select-from-enum id="{{formField.name}}" values="formField.typeInfo.values" model="formField.value"
|
||||
ng-readonly="formField.readOnly" ng-if="formField.typeInfo && formField.typeInfo.type === 'enum'"></entaxy-select-from-enum>
|
||||
<entaxy-xml id="{{formField.name}}" ng-model="formField.value" ng-if="formField.type === 'xml:route'" mode="$ctrl.localMode"></entaxy-xml>
|
||||
<span class="help-block" ng-show="$ctrl.errors[formField.name]">{{$ctrl.errors[formField.name]}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@ -52,12 +66,30 @@ var Entaxy;
|
||||
})
|
||||
.name;
|
||||
|
||||
function entaxyModalGroupFieldsController() {
|
||||
function entaxyModalGroupFieldsController(operationsService) {
|
||||
'ngInject';
|
||||
|
||||
var ctrl = this;
|
||||
|
||||
ctrl.$onInit = function() {
|
||||
ctrl.localMode = ctrl.mode === Entaxy.MODAL_MODES.ADD ? Entaxy.MODAL_MODES.EDIT : ctrl.mode;
|
||||
|
||||
ctrl.selectedGroup = ctrl.groups[0];
|
||||
}
|
||||
|
||||
ctrl.$onChanges = function(changes) {
|
||||
if (changes.errors && changes.errors.currentValue) {
|
||||
let errorKeys = Object.keys(changes.errors.currentValue);
|
||||
if (errorKeys.length > 0) {
|
||||
let errorField = ctrl.fields.find(field => field.name === errorKeys[0]);
|
||||
ctrl.selectedGroup = ctrl.groups.find(group => group.name === errorField.group);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ctrl.change = function(group) {
|
||||
ctrl.viewedFormFields = ctrl.fields.filter((formField) => formField.group === group.name);
|
||||
ctrl.selectedGroup = group;
|
||||
}
|
||||
|
||||
ctrl.matchesFilter = function(group, filter) {
|
||||
@ -65,17 +97,60 @@ var Entaxy;
|
||||
|
||||
_.forEach(ctrl.fields.filter((formField) => formField.group === group.name), (field) => {
|
||||
if (field.tag && field.tag.length !== 0) {
|
||||
_.forEach(field.tag, (tag) => {
|
||||
if (tag.match(filter.value) !== null) {
|
||||
match = true;
|
||||
return match;
|
||||
}
|
||||
});
|
||||
if (field.tag.toLowerCase().match(filter.value.toLowerCase()) !== null) {
|
||||
match = true;
|
||||
return match;
|
||||
}
|
||||
}
|
||||
});
|
||||
match = group.displayName.toLowerCase().match(filter.value.toLowerCase()) !== null;
|
||||
|
||||
return match;
|
||||
};
|
||||
}
|
||||
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
ctrl.updateFieldsAfterSelectionChange = function (oldItem, newItem, itemType) {
|
||||
|
||||
if (oldItem) {
|
||||
changeFieldsFromSelected(oldItem, itemType, true);
|
||||
}
|
||||
|
||||
changeFieldsFromSelected(newItem, itemType, false);
|
||||
}
|
||||
|
||||
function changeFieldsFromSelected(item, itemType, toDefaults) {
|
||||
if (item.mbeanName) {
|
||||
operationsService
|
||||
.executeOperation(item.mbeanName, { name: 'get' + itemType + 'Config' }, [ item.name ])
|
||||
.then(result => {
|
||||
let itemInfo = JSON.parse(result);
|
||||
let properties = itemInfo.properties;
|
||||
|
||||
changeFieldsValuesFromProperties(properties, toDefaults);
|
||||
|
||||
}).catch(error => {
|
||||
Core.notification('danger', error, 5000);
|
||||
Entaxy.log.error(error);
|
||||
});
|
||||
} else if (item.value) {
|
||||
let properties = item.value.properties;
|
||||
|
||||
changeFieldsValuesFromProperties(properties, toDefaults);
|
||||
}
|
||||
}
|
||||
|
||||
function changeFieldsValuesFromProperties(properties, toDefaults) {
|
||||
if (properties && Object.keys(properties).length > 0) {
|
||||
let keys = Object.keys(properties);
|
||||
|
||||
keys.forEach(key => {
|
||||
let field = ctrl.fields.find(field => field.name === key);
|
||||
if (field && !field.isHidden) {
|
||||
field.value = toDefaults ? field.defaultValue : properties[key];
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
entaxyModalGroupFieldsController.$inject = ['operationsService'];
|
||||
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
|
@ -2,14 +2,14 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed 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.
|
||||
@ -23,6 +23,9 @@ var Entaxy;
|
||||
.component('entaxyModalList', {
|
||||
bindings: {
|
||||
items: '<',
|
||||
itemsLabel: '@',
|
||||
itemsLabelPlural: '@',
|
||||
enableDblClick: '<',
|
||||
selected: '<',
|
||||
changeSelection: '<',
|
||||
filter: '<'
|
||||
@ -37,7 +40,12 @@ var Entaxy;
|
||||
<pf-list-view class="entaxy-list" items="$ctrl.viewedItems" config="$ctrl.listConfig">
|
||||
<div class="list-view-pf-description">
|
||||
<div class="list-group-item-heading">
|
||||
{{item.name}}
|
||||
{{item.displayName}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="list-view-pf-additional-info" ng-if="item.additionalInfo">
|
||||
<div class="list-view-pf-additional-info-item" ng-repeat="info in item.additionalInfo">
|
||||
{{info}}
|
||||
</div>
|
||||
</div>
|
||||
</pf-list-view>
|
||||
@ -54,22 +62,30 @@ var Entaxy;
|
||||
|
||||
ctrl.$onInit = function() {
|
||||
ctrl.viewedItems = ctrl.items;
|
||||
ctrl.toolbarConfig.filterConfig.itemsLabel = ctrl.itemsLabel ? ctrl.itemsLabel : 'Result';
|
||||
ctrl.toolbarConfig.filterConfig.itemsLabelPlural = ctrl.itemsLabelPlural ? ctrl.itemsLabelPlural : 'Results';
|
||||
ctrl.toolbarConfig.filterConfig.resultsCount = ctrl.viewedItems.length;
|
||||
|
||||
// FIXME i don't like invoking of changeSelection somehow
|
||||
if (ctrl.selected) {
|
||||
ctrl.listConfig.selectedItems = [ ctrl.selected ];
|
||||
changeSelection();
|
||||
}
|
||||
}
|
||||
|
||||
ctrl.$onChanges = function(changes) {
|
||||
if (changes.selected.previousValue && changes.selected.currentValue && changes.selected.currentValue.name !== changes.selected.previousValue.name) {
|
||||
ctrl.listConfig.selectedItems = [ ctrl.selected ];
|
||||
changeSelection();
|
||||
}
|
||||
}
|
||||
|
||||
ctrl.toolbarConfig = {
|
||||
filterConfig: {
|
||||
fields: [
|
||||
{
|
||||
id: 'name',
|
||||
id: 'displayName',
|
||||
title: 'Name',
|
||||
placeholder: 'Filter by Name...',
|
||||
placeholder: 'Search...',
|
||||
filterType: 'text'
|
||||
}
|
||||
],
|
||||
@ -113,8 +129,8 @@ var Entaxy;
|
||||
return ctrl.filter(item, filter);
|
||||
} else {
|
||||
var match = true;
|
||||
if (filter.id === 'name') {
|
||||
match = item.name.match(filter.value) !== null;
|
||||
if (filter.id === 'displayName') {
|
||||
match = item.displayName.toLowerCase().match(filter.value.toLowerCase()) !== null;
|
||||
}
|
||||
return match;
|
||||
}
|
||||
@ -124,12 +140,25 @@ var Entaxy;
|
||||
selectionMatchProp: 'name',
|
||||
selectItems: true,
|
||||
showSelectBox: false,
|
||||
onSelectionChange: changeSelection
|
||||
onSelectionChange: changeSelection,
|
||||
dlbClick: true,
|
||||
onDblClick: (item) => changeSelectionOnDblClick(item)
|
||||
}
|
||||
|
||||
function changeSelection() {
|
||||
ctrl.changeSelection(ctrl.listConfig.selectedItems[0]);
|
||||
if (ctrl.selected && !ctrl.listConfig.selectedItems[0]) {
|
||||
ctrl.listConfig.selectedItems[0] = ctrl.selected;
|
||||
} else {
|
||||
ctrl.selected = ctrl.listConfig.selectedItems[0];
|
||||
ctrl.changeSelection(ctrl.listConfig.selectedItems[0], false);
|
||||
}
|
||||
}
|
||||
|
||||
function changeSelectionOnDblClick(item) {
|
||||
if (ctrl.enableDblClick === true) {
|
||||
ctrl.changeSelection(item, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -70,6 +70,9 @@ var Entaxy;
|
||||
// todo smth like goto/$location.search ?
|
||||
} else if (shouldShowConnectorsTab()) {
|
||||
tabs.unshift(new Nav.HawtioTab(TAB_CONFIG.connectors.title, TAB_CONFIG.connectors.route));
|
||||
tabs.unshift(new Nav.HawtioTab(TAB_CONFIG.properties.title, TAB_CONFIG.properties.route));
|
||||
} else if (shouldShowSourceTab()) {
|
||||
tabs.unshift(new Nav.HawtioTab(TAB_CONFIG.source.title, TAB_CONFIG.source.route));
|
||||
} else {
|
||||
let mbeanName = workspace.getSelectedMBeanName();
|
||||
let parsedMbean = Core.parseMBean(mbeanName);
|
||||
@ -108,7 +111,15 @@ var Entaxy;
|
||||
parsedMbean.attributes.profile &&
|
||||
!parsedMbean.attributes.section;
|
||||
}
|
||||
// global event for entaxy extras
|
||||
|
||||
function shouldShowSourceTab() {
|
||||
let mbeanName = workspace.getSelectedMBeanName();
|
||||
let parsedMbean = Core.parseMBean(mbeanName);
|
||||
return workspace.hasDomainAndProperties(entaxyJmxDomain, {'category': 'profiles'}) &&
|
||||
parsedMbean.attributes.profile &&
|
||||
parsedMbean.attributes.route;
|
||||
}
|
||||
// global event for entaxy extras
|
||||
$rootScope.$emit('entaxyNavigationInited', $scope);
|
||||
}
|
||||
EntaxyNavigationController.$inject = ['$scope', '$location', 'workspace', 'localStorage', 'jolokia', '$rootScope']
|
||||
@ -121,7 +132,9 @@ var Entaxy;
|
||||
when('/entaxy/test', { template: '<entaxy-test></entaxy-test>' }).
|
||||
when('/entaxy/connections', { template: '<entaxy-connections page-title="Connections"></entaxy-connections>' }).
|
||||
when('/entaxy/profiles', { template: '<entaxy-profiles page-title="Profiles"></entaxy-profiles>' }).
|
||||
when('/entaxy/connectors', { template: '<entaxy-connectors></entaxy-connectors>' });
|
||||
when('/entaxy/properties', { template: '<entaxy-properties></entaxy-properties>' }).
|
||||
when('/entaxy/connectors', { template: '<entaxy-connectors page-title="Connectors"></entaxy-connectors>' }).
|
||||
when('/entaxy/route/source', { template: '<entaxy-source></entaxy-source>' });
|
||||
}
|
||||
configureRoutes.$inject = ['$routeProvider'];
|
||||
|
||||
@ -152,8 +165,16 @@ var TAB_CONFIG = {
|
||||
title: 'Profiles',
|
||||
route: '/entaxy/profiles'
|
||||
},
|
||||
properties: {
|
||||
title: 'Properties',
|
||||
route: 'entaxy/properties'
|
||||
},
|
||||
connectors: {
|
||||
title: 'Connectors',
|
||||
route: '/entaxy/connectors'
|
||||
},
|
||||
source: {
|
||||
title: 'Source',
|
||||
route: '/entaxy/route/source'
|
||||
}
|
||||
};
|
||||
|
@ -2,14 +2,14 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed 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.
|
||||
@ -36,4 +36,4 @@ var Entaxy;
|
||||
`
|
||||
})
|
||||
.name;
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
|
@ -2,14 +2,14 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed 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.
|
||||
@ -25,7 +25,9 @@ var Entaxy;
|
||||
itemName: '@',
|
||||
folderName: '@',
|
||||
statusName: '@',
|
||||
objectName: '@'
|
||||
objectName: '@',
|
||||
isParentDependent: '<',
|
||||
extraPrimaryActionsConfig: '<'
|
||||
},
|
||||
template:
|
||||
`
|
||||
@ -33,6 +35,7 @@ var Entaxy;
|
||||
<pf-table-view config="$ctrl.tableConfig"
|
||||
columns="$ctrl.tableColumns"
|
||||
action-buttons="$ctrl.tableActionButtons"
|
||||
menu-actions="$ctrl.menuActions"
|
||||
page-config="$ctrl.pageConfig"
|
||||
items="$ctrl.viewedItems">
|
||||
</pf-table-view>
|
||||
@ -41,7 +44,7 @@ var Entaxy;
|
||||
})
|
||||
.name;
|
||||
|
||||
function EntaxyTableController(workspace, $location, $uibModal, operationsService, jolokiaService) {
|
||||
function EntaxyTableController(workspace, $location, $scope, $q, jolokia, jolokiaService, $uibModal, operationsService) {
|
||||
'ngInject';
|
||||
|
||||
var ctrl = this;
|
||||
@ -72,36 +75,17 @@ var Entaxy;
|
||||
filterValues: filterValues
|
||||
}
|
||||
],
|
||||
// resultsCount: ctrl.viewedItems ? ctrl.viewedItems.length : 0,
|
||||
// totalCount: ctrl.items ? ctrl.items.length : 0,
|
||||
appliedFilters: [],
|
||||
onFilterChange: filterChange
|
||||
},
|
||||
// actionsConfig: {
|
||||
// primaryActions: [
|
||||
// { name: 'Add ' + ctrl.itemName, actionFn: () => ctrl.showModal() }
|
||||
// ]
|
||||
// },
|
||||
isTableView: true
|
||||
};
|
||||
|
||||
ctrl.columnDefs = [
|
||||
{ field: 'name', displayName: 'Name' },
|
||||
{ field: 'status', displayName: 'Status' }
|
||||
];
|
||||
|
||||
ctrl.tableColumns = [
|
||||
{ header: 'Name', itemField: 'name' },
|
||||
{ header: 'Status', itemField: 'status' }
|
||||
];
|
||||
|
||||
// ctrl.tableActionButtons = [
|
||||
// { name: 'Start', title: 'Start ' + ctrl.itemName, actionFn: startItem },
|
||||
// { name: 'Stop', title: 'Stop ' + ctrl.itemName, actionFn: stopItem },
|
||||
//// { name: 'Edit', title: 'Edit ' + ctrl.itemName, actionFn: editItem },
|
||||
// { name: 'Uninstall', title: 'Uninstall ' + ctrl.itemName, actionFn: uninstallItem }
|
||||
// ];
|
||||
|
||||
ctrl.pageConfig = {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
@ -153,159 +137,219 @@ var Entaxy;
|
||||
ctrl.$onInit = function() {
|
||||
populateTable();
|
||||
|
||||
let primaryActions = [ { name: 'Add ' + ctrl.itemName, actionFn: () => ctrl.showModal(Entaxy.MODAL_MODES.ADD) } ];
|
||||
|
||||
if (ctrl.extraPrimaryActionsConfig) {
|
||||
let extraPrimaryActions = ctrl.extraPrimaryActionsConfig.primaryActions;
|
||||
primaryActions = primaryActions.concat(extraPrimaryActions);
|
||||
|
||||
if (ctrl.extraPrimaryActionsConfig.isTableUpdateNeeded) {
|
||||
ctrl.extraPrimaryActionsConfig.updateTableFn = populateTable;
|
||||
}
|
||||
}
|
||||
|
||||
ctrl.toolbarConfig.actionsConfig = {
|
||||
primaryActions: [
|
||||
{ name: 'Add ' + ctrl.itemName, actionFn: () => ctrl.showModal() }
|
||||
]
|
||||
primaryActions: primaryActions
|
||||
};
|
||||
|
||||
ctrl.tableActionButtons = [
|
||||
{ name: 'Start', title: 'Start ' + ctrl.itemName, actionFn: startItem },
|
||||
{ name: 'Stop', title: 'Stop ' + ctrl.itemName, actionFn: stopItem },
|
||||
// { name: 'Edit', title: 'Edit ' + ctrl.itemName, actionFn: editItem },
|
||||
{ name: 'Uninstall', title: 'Uninstall ' + ctrl.itemName, actionFn: uninstallItem }
|
||||
];
|
||||
|
||||
ctrl.menuActions = [
|
||||
{ name: 'View Properties', title: 'View ' + ctrl.itemName + ' Properties', actionFn: showPropertiesModal },
|
||||
{ name: 'Edit Properties', title: 'Edit ' + ctrl.itemName + ' Properties', actionFn: showPropertiesModal }
|
||||
];
|
||||
}
|
||||
|
||||
function showPropertiesModal(action, item) {
|
||||
if (action.name === 'View Properties') {
|
||||
ctrl.showModal(Entaxy.MODAL_MODES.VIEW, item);
|
||||
} else if (action.name === 'Edit Properties') {
|
||||
ctrl.showModal(Entaxy.MODAL_MODES.EDIT, item);
|
||||
}
|
||||
}
|
||||
|
||||
function populateTable() {
|
||||
let items = [];
|
||||
let count = 0; // FIXME if you can
|
||||
|
||||
let children = workspace.tree.findDescendant(child => child.title === ctrl.folderName).children;
|
||||
if (children) {
|
||||
children.forEach((child) => {
|
||||
jolokiaService.getAttributes(child.objectName, [ctrl.statusName])
|
||||
.then((response) => {
|
||||
items.push({name: child.title, status: response[ctrl.statusName], mbeanName: child.objectName});
|
||||
});
|
||||
count++; // FIXME
|
||||
});
|
||||
let selectedMBean = workspace.getSelectedMBean();
|
||||
if (selectedMBean && selectedMBean.isFolder) {
|
||||
let currentFolder = selectedMBean;
|
||||
if (selectedMBean.text !== ctrl.folderName) {
|
||||
currentFolder = selectedMBean.get(ctrl.folderName);
|
||||
}
|
||||
|
||||
ctrl.items = items;
|
||||
ctrl.viewedItems = items;
|
||||
ctrl.toolbarConfig.filterConfig.resultsCount = count; // FIXME
|
||||
if (currentFolder) {
|
||||
let children = currentFolder.children;
|
||||
if (children) {
|
||||
children.forEach((child) => {
|
||||
jolokiaService.getAttributes(child.objectName, [ctrl.statusName])
|
||||
.then((response) => {
|
||||
items.push({name: child.title, status: response[ctrl.statusName], mbeanName: child.objectName});
|
||||
});
|
||||
});
|
||||
|
||||
ctrl.items = items;
|
||||
ctrl.viewedItems = items;
|
||||
ctrl.toolbarConfig.filterConfig.resultsCount = children.length;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ctrl.showModal = function() {
|
||||
let templates = workspace.tree.findDescendant(child => child.title === 'entaxy.runtime.' + ctrl.itemName.toLowerCase())
|
||||
.children.map((child) => {
|
||||
let template = {
|
||||
name: child.title,
|
||||
mbeanName: child.objectName
|
||||
};
|
||||
return template;
|
||||
});
|
||||
ctrl.showModal = function(mode, item) {
|
||||
|
||||
let factories = [];
|
||||
let promises = [];
|
||||
|
||||
let factoryFolder = workspace.tree.findDescendant(child => child.title === 'entaxy.runtime.' + ctrl.itemName.toLowerCase());
|
||||
|
||||
if (factoryFolder && factoryFolder.children) {
|
||||
factoryFolder.children.forEach((child) => {
|
||||
promises.push(jolokiaService.getAttributes(child.objectName, ['Abstract', 'DisplayName', 'Label', 'Description', 'Deprecated'])
|
||||
.then((result) => {
|
||||
if (!result['Abstract']) {
|
||||
factories.push({
|
||||
name: child.title,
|
||||
displayName: result['DisplayName'] ? result['DisplayName'] : child.title,
|
||||
label: result['Label'],
|
||||
mbeanName: child.objectName,
|
||||
description: result['Description'] ? result['Description'] : 'There is no description for this factory.',
|
||||
additionalInfo: result['Deprecated'] ? ['[DEPRECATED]'] : undefined
|
||||
});
|
||||
}
|
||||
}));
|
||||
});
|
||||
|
||||
$q.all(promises).then(() => {
|
||||
if (mode === Entaxy.MODAL_MODES.ADD) {
|
||||
|
||||
let parentName;
|
||||
if (ctrl.isParentDependent === true) {
|
||||
let selectedMbean = workspace.getSelectedMBean();
|
||||
parentName = selectedMbean.title;
|
||||
}
|
||||
|
||||
openEntaxyModal({
|
||||
mode: () => mode,
|
||||
itemType: () => ctrl.itemName,
|
||||
parentName: () => parentName,
|
||||
factories: () => factories
|
||||
}, mode);
|
||||
} else {
|
||||
let mbeanName = workspace.getSelectedMBeanName();
|
||||
|
||||
operationsService
|
||||
.executeOperation(mbeanName, { name: 'get' + ctrl.itemName + 'Config' }, [ item.name ])
|
||||
.then(result => {
|
||||
let itemInfo = JSON.parse(result);
|
||||
|
||||
let factory = factories.find(factory => factory.name === itemInfo.factoryId);
|
||||
|
||||
openEntaxyModal({
|
||||
itemName: () => item.name,
|
||||
itemType: () => ctrl.itemName,
|
||||
mode: () => mode,
|
||||
info: () => itemInfo,
|
||||
factories: () => [ factory ]
|
||||
}, mode);
|
||||
}).catch(error => {
|
||||
Core.notification('danger', 'Unable to view configuration of selected item.', 5000);
|
||||
Entaxy.log.error(error);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function openEntaxyModal(resolve, mode) {
|
||||
$uibModal.open({
|
||||
component: 'entaxyModal',
|
||||
resolve: {
|
||||
modalTitle: () => 'Add ' + ctrl.itemName,
|
||||
templates: () => templates
|
||||
},
|
||||
resolve: resolve,
|
||||
size: 'xl',
|
||||
backdrop: 'static'
|
||||
})
|
||||
.result.then(args => {
|
||||
addItem(args)
|
||||
addItem(args, mode)
|
||||
},
|
||||
reason => {
|
||||
if (reason) {
|
||||
Core.notification('danger', reason, 5000);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function addItem(args) {
|
||||
let objectId = args.fields.find((field) => field.label === 'objectId').value;
|
||||
function addItem(args, mode) {
|
||||
|
||||
let fields;
|
||||
if (objectId) {
|
||||
fields = args.fields.filter((field) => field.label !== 'objectId');
|
||||
}
|
||||
let objectId = args.fields.find((field) => field.name === 'objectId').value;
|
||||
|
||||
let fields = objectId ? args.fields.filter((field) => field.name !== 'objectId') : args.fields;
|
||||
|
||||
let mbeanName = args.factoryId.mbeanName;
|
||||
let properties = fields.reduce((obj, cur) => ({ ...obj, [cur.label] : cur.value }), {});
|
||||
let properties = fields.reduce((obj, cur) => ({ ...obj, [cur.name] : cur.value }), {});
|
||||
let instructions = {"@LIFECYCLE":["general"]};
|
||||
|
||||
operationsService.executeOperation(mbeanName, { name: 'createObject' }, [ objectId, 'public', properties ] )
|
||||
operationsService.executeOperation(mbeanName, { name: 'createObjectByInstructions' }, [ objectId, 'public', instructions, properties ] )
|
||||
.then(result => {
|
||||
setTimeout(() => populateTable(), 200);
|
||||
let tableHtml = Entaxy.createTableFromResponse(result);
|
||||
Entaxy.notification('success', tableHtml, 10000);
|
||||
|
||||
let tableHtml = `<table class="entaxy-result-table">`;
|
||||
tableHtml +=
|
||||
`
|
||||
<tr>
|
||||
<th>Step</th>
|
||||
<th>Step name</th>
|
||||
<th>Step result</th>
|
||||
</tr>
|
||||
`;
|
||||
_.forEach(JSON.parse(result), (step) => {
|
||||
let iconName = step['Step result'] === 'OK' ? 'ok' : 'error-circle-o';
|
||||
tableHtml += `<tr><td>` + step['Step'] + `</td><td>` + step['Step name'] + `</td>`;
|
||||
tableHtml += `<td><span class="pficon pficon-${iconName}"></span></td></tr>`;
|
||||
});
|
||||
tableHtml += `</table>`;
|
||||
|
||||
Entaxy.notification('success', tableHtml, 8000);
|
||||
|
||||
changeLocation(properties[ctrl.objectName]);
|
||||
if (ctrl.isParentDependent || mode === Entaxy.MODAL_MODES.EDIT) {
|
||||
$scope.$on(Jmx.TreeEvent.Updated, () => populateTable());
|
||||
} else {
|
||||
changeLocation(properties[ctrl.objectName] ? properties[ctrl.objectName] : objectId);
|
||||
}
|
||||
}).catch(error => {
|
||||
Core.notification('danger', error, 5000);
|
||||
Entaxy.log.error(error);
|
||||
});
|
||||
}
|
||||
|
||||
function changeLocation(itemName) {
|
||||
let currentLocation = $location.search();
|
||||
$location.search('nid', currentLocation.nid + '-' + itemName); // FIXME FIXME FIXME
|
||||
$location.search('nid', currentLocation.nid + '-' + itemName);
|
||||
}
|
||||
|
||||
function startItem(action, item) {
|
||||
let mbeanName = workspace.getSelectedMBeanName();
|
||||
|
||||
operationsService.executeOperation(mbeanName, { name: 'start' + ctrl.itemName }, [ item.name ])
|
||||
.then(result => {
|
||||
// FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME
|
||||
|
||||
setTimeout(() => populateTable(), 100);
|
||||
|
||||
Core.notification('success', result, 3000);
|
||||
}).catch(error => {
|
||||
Core.notification('danger', error, 5000);
|
||||
});
|
||||
if (item.status !== 'Active') {
|
||||
processOperation('start', item.name);
|
||||
} else {
|
||||
Core.notification('info', ctrl.itemName + ' has been already started');
|
||||
}
|
||||
}
|
||||
|
||||
function stopItem(action, item) {
|
||||
let mbeanName = workspace.getSelectedMBeanName();
|
||||
|
||||
operationsService.executeOperation(mbeanName, { name: 'stop' + ctrl.itemName }, [ item.name ])
|
||||
.then(result => {
|
||||
// FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME
|
||||
// jolokiaService.getAttribute(item.mbeanName, 'BundleState')
|
||||
// .then((response) => item.status = response);
|
||||
|
||||
setTimeout(() => populateTable(), 100);
|
||||
|
||||
Core.notification('success', result, 3000);
|
||||
}).catch(error => {
|
||||
Core.notification('danger', error, 5000);
|
||||
});
|
||||
if (item.status !== 'Resolved') {
|
||||
processOperation('stop', item.name);
|
||||
} else {
|
||||
Core.notification('info', ctrl.itemName + ' has been already stopped');
|
||||
}
|
||||
}
|
||||
|
||||
function uninstallItem(action, item) {
|
||||
let operationName = ctrl.isParentDependent ? 'remove' : 'uninstall';
|
||||
processOperation(operationName, item.name);
|
||||
}
|
||||
|
||||
function processOperation(operationName, selectedItemName) {
|
||||
let mbeanName = workspace.getSelectedMBeanName();
|
||||
|
||||
operationsService.executeOperation(mbeanName, { name: 'uninstall' + ctrl.itemName }, [ item.name ])
|
||||
operationsService.executeOperation(mbeanName, { name: operationName + ctrl.itemName }, [ selectedItemName ])
|
||||
.then(result => {
|
||||
ctrl.items.splice(ctrl.items.indexOf(item), 1);
|
||||
ctrl.viewedItems = ctrl.items;
|
||||
ctrl.toolbarConfig.filterConfig.appliedFilters = [];
|
||||
ctrl.toolbarConfig.filterConfig.resultsCount = ctrl.viewedItems.length;
|
||||
|
||||
Core.notification('success', result, 3000);
|
||||
$scope.$on(Jmx.TreeEvent.Updated, () => populateTable());
|
||||
}).catch(error => {
|
||||
Core.notification('danger', error, 5000);
|
||||
Entaxy.log.error(error);
|
||||
});
|
||||
}
|
||||
|
||||
ctrl.dismissAlert = () => ctrl.alert = null;
|
||||
|
||||
}
|
||||
EntaxyTableController.$inject = ['workspace', '$location', '$uibModal', 'operationsService', 'jolokiaService'];
|
||||
EntaxyTableController.$inject = ['workspace', '$location', '$scope', '$q', 'jolokia', 'jolokiaService', '$uibModal', 'operationsService'];
|
||||
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -72,7 +72,7 @@ var Entaxy;
|
||||
$element.addClass('tree-nav-sidebar-header');
|
||||
|
||||
EntaxyTreeHeaderController.prototype.$onInit = function () {
|
||||
Entaxy.log.debug("EntaxyTreeHeaderController init");
|
||||
Entaxy.log.debug("EntaxyTreeHeaderController init");
|
||||
var _this = this;
|
||||
this.$scope.$watch(angular.bind(this, function () { return _this.filter; }), function (filter, previous) {
|
||||
if (filter !== previous) {
|
||||
@ -82,7 +82,7 @@ var Entaxy;
|
||||
};
|
||||
|
||||
EntaxyTreeHeaderController.prototype.search = function (filter) {
|
||||
Entaxy.log.debug("EntaxyTreeHeaderController search");
|
||||
Entaxy.log.debug("EntaxyTreeHeaderController search");
|
||||
var _this = this;
|
||||
var doSearch = function (filter) {
|
||||
var result = _this.tree().search(filter, {
|
||||
@ -99,18 +99,18 @@ var Entaxy;
|
||||
};
|
||||
|
||||
EntaxyTreeHeaderController.prototype.tree = function () {
|
||||
Entaxy.log.debug("EntaxyTreeHeaderController tree");
|
||||
Entaxy.log.debug("EntaxyTreeHeaderController tree");
|
||||
return $(entaxyTreeElementId).treeview(true);
|
||||
};
|
||||
|
||||
EntaxyTreeHeaderController.prototype.expandAll = function () {
|
||||
Entaxy.log.debug("EntaxyTreeHeaderController expand");
|
||||
Entaxy.log.debug("EntaxyTreeHeaderController expand");
|
||||
return this.tree()
|
||||
.expandNode(this.tree().getNodes(), { levels: HawtioTree.getMaxTreeLevel(this.tree()), silent: true });
|
||||
};
|
||||
|
||||
EntaxyTreeHeaderController.prototype.contractAll = function () {
|
||||
Entaxy.log.debug("EntaxyTreeHeaderController contract");
|
||||
Entaxy.log.debug("EntaxyTreeHeaderController contract");
|
||||
return this.tree()
|
||||
.collapseNode(this.tree().getNodes(), { ignoreChildren: true, silent: true });
|
||||
};
|
||||
@ -128,7 +128,7 @@ var Entaxy;
|
||||
Entaxy.log.debug("EntaxyTreeController ");
|
||||
var entaxyJmxDomain = localStorage['entaxyJmxDomain'] || "ru.entaxy.esb";
|
||||
EntaxyTreeController.prototype.$onInit = function () {
|
||||
Entaxy.log.debug("EntaxyTreeController onInit");
|
||||
Entaxy.log.debug("EntaxyTreeController onInit");
|
||||
var _this = this;
|
||||
this.$scope.$on('$destroy', function () { return _this.removeTree(); });
|
||||
this.$scope.$on('$routeChangeStart', function () { return Jmx.updateTreeSelectionFromURL(_this.$location, $(entaxyTreeElementId)); });
|
||||
|
@ -2,14 +2,14 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed 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.
|
||||
@ -20,16 +20,75 @@
|
||||
var Entaxy;
|
||||
(function (Entaxy) {
|
||||
|
||||
const MODAL_MODES = {
|
||||
VIEW: 'View',
|
||||
EDIT: 'Edit',
|
||||
ADD: 'Add'
|
||||
};
|
||||
Entaxy.MODAL_MODES = MODAL_MODES;
|
||||
|
||||
function getButtonTitleByMode(mode) {
|
||||
switch (mode) {
|
||||
case MODAL_MODES.ADD:
|
||||
return 'Add';
|
||||
case MODAL_MODES.EDIT:
|
||||
return 'Save';
|
||||
case MODAL_MODES.VIEW:
|
||||
return 'Ok';
|
||||
}
|
||||
}
|
||||
Entaxy.getButtonTitleByMode = getButtonTitleByMode;
|
||||
|
||||
function capitalize(string) {
|
||||
return string.charAt(0).toUpperCase() + string.slice(1);
|
||||
}
|
||||
Entaxy.capitalize = capitalize;
|
||||
|
||||
function uncapitalize(string) {
|
||||
return string.charAt(0).toLowerCase() + string.slice(1);
|
||||
}
|
||||
Entaxy.uncapitalize = uncapitalize;
|
||||
|
||||
function getChildrenRecursive(folder) {
|
||||
let children = folder.children;
|
||||
if (children) {
|
||||
folder.children.forEach(child => {
|
||||
if (child.children) {
|
||||
children = children.concat(getChildrenRecursive(child));
|
||||
}
|
||||
});
|
||||
}
|
||||
return children;
|
||||
}
|
||||
Entaxy.getChildrenRecursive = getChildrenRecursive;
|
||||
|
||||
function compareBy(fieldName) {
|
||||
return function(a, b) {
|
||||
let valueA = a[fieldName].toLowerCase();
|
||||
let valueB = b[fieldName].toLowerCase();
|
||||
if (valueA < valueB) {
|
||||
return -1;
|
||||
}
|
||||
if (valueA > valueB) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
Entaxy.compareBy = compareBy;
|
||||
|
||||
function convertToHtmlInputType(javaType) {
|
||||
if (!javaType || javaType.startsWith('entaxy.runtime')) {
|
||||
// fixme maybe
|
||||
return javaType;
|
||||
}
|
||||
switch (javaType) {
|
||||
case 'xml:route':
|
||||
return javaType;
|
||||
case 'boolean':
|
||||
case 'Boolean':
|
||||
case 'java.lang.Boolean':
|
||||
return 'checkbox';
|
||||
case 'number':
|
||||
case 'int':
|
||||
case 'long':
|
||||
case 'java.lang.Integer':
|
||||
@ -41,6 +100,26 @@ var Entaxy;
|
||||
}
|
||||
Entaxy.convertToHtmlInputType = convertToHtmlInputType;
|
||||
|
||||
function createTableFromResponse(response) {
|
||||
let tableHtml = `<table class="entaxy-result-table">`;
|
||||
tableHtml +=
|
||||
`
|
||||
<tr>
|
||||
<th>Step</th>
|
||||
<th>Step name</th>
|
||||
<th>Step result</th>
|
||||
</tr>
|
||||
`;
|
||||
_.forEach(JSON.parse(response), (step) => {
|
||||
let iconName = step['Step result'] === 'OK' ? 'ok' : 'error-circle-o';
|
||||
tableHtml += `<tr><td>` + step['Step'] + `</td><td>` + step['Step name'] + `</td>`;
|
||||
tableHtml += `<td><span class="pficon pficon-${iconName}"></span></td></tr>`;
|
||||
});
|
||||
tableHtml += `</table>`;
|
||||
return tableHtml;
|
||||
}
|
||||
Entaxy.createTableFromResponse = createTableFromResponse;
|
||||
|
||||
function notification(type, message, duration) {
|
||||
|
||||
let visibleToastElem = null;
|
||||
@ -52,7 +131,9 @@ var Entaxy;
|
||||
<span class="pficon pficon-close"></span>
|
||||
</button>
|
||||
<span class="pficon pficon-${resolveToastIcon(type)}"></span>
|
||||
${message}
|
||||
<div class="toast-pf-content">
|
||||
${message}
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
|
@ -2,14 +2,14 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed 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.
|
||||
@ -39,36 +39,42 @@ var Entaxy;
|
||||
let connectorTemplateParams = '{"uniform-service-active-in-connector":[' +
|
||||
'{' +
|
||||
'"label":"period",' +
|
||||
'"displayName":"Period",' +
|
||||
'"type":"java.lang.String",' +
|
||||
'"helpText":null,' +
|
||||
'"value":"1m"' +
|
||||
'},' +
|
||||
'{' +
|
||||
'"label":"username",' +
|
||||
'"displayName":"Username",' +
|
||||
'"type":"java.lang.String",' +
|
||||
'"helpText":null,' +
|
||||
'"value":"admin"' +
|
||||
'},' +
|
||||
'{' +
|
||||
'"label":"password",' +
|
||||
'"displayName":"Password",' +
|
||||
'"type":"java.lang.String",' +
|
||||
'"helpText":null,' +
|
||||
'"value":""' +
|
||||
'},' +
|
||||
'{' +
|
||||
'"label":"endpointUrl",' +
|
||||
'"displayName":"Endpoint URL",' +
|
||||
'"type":"java.lang.String",' +
|
||||
'"helpText":null,' +
|
||||
'"value":""' +
|
||||
'},' +
|
||||
'{' +
|
||||
'"label":"connectionTimeout",' +
|
||||
'"displayName":"Connection Timeout",' +
|
||||
'"type":"int",' +
|
||||
'"helpText":null,' +
|
||||
'"value":3000' +
|
||||
'},' +
|
||||
'{' +
|
||||
'"label":"connectionMaxThreads",' +
|
||||
'"displayName":"Connection Max Threads",' +
|
||||
'"type":"int",' +
|
||||
'"helpText":null,' +
|
||||
'"value":1' +
|
||||
@ -77,30 +83,35 @@ var Entaxy;
|
||||
'"uniform-service-active-out-connector":[' +
|
||||
'{' +
|
||||
'"label":"username",' +
|
||||
'"displayName":"Username",' +
|
||||
'"type":"java.lang.String",' +
|
||||
'"helpText":null,' +
|
||||
'"value":"admin"' +
|
||||
'},' +
|
||||
'{' +
|
||||
'"label":"password",' +
|
||||
'"displayName":"Password",' +
|
||||
'"type":"java.lang.String",' +
|
||||
'"helpText":null,' +
|
||||
'"value":""' +
|
||||
'},' +
|
||||
'{' +
|
||||
'"label":"endpointUrl",' +
|
||||
'"displayName":"Endpoint URL",' +
|
||||
'"type":"java.lang.String",' +
|
||||
'"helpText":null,' +
|
||||
'"value":""' +
|
||||
'},' +
|
||||
'{' +
|
||||
'"label":"connectionTimeout",' +
|
||||
'"displayName":"Connection Timeout",' +
|
||||
'"type":"int",' +
|
||||
'"helpText":null,' +
|
||||
'"value":3000' +
|
||||
'},' +
|
||||
'{' +
|
||||
'"label":"connectionMaxThreads",' +
|
||||
'"displayName":"Connection Max Threads",' +
|
||||
'"type":"int",' +
|
||||
'"helpText":null,' +
|
||||
'"value":1' +
|
||||
@ -112,36 +123,42 @@ var Entaxy;
|
||||
'"sql-out-connector":[' +
|
||||
'{' +
|
||||
'"label":"serverName",' +
|
||||
'"displayName":"Server Name",' +
|
||||
'"type":"java.lang.String",' +
|
||||
'"helpText":null,' +
|
||||
'"value":""' +
|
||||
'},' +
|
||||
'{' +
|
||||
'"label":"portNumber",' +
|
||||
'"displayName":"Port Number",' +
|
||||
'"type":"java.lang.Integer",' +
|
||||
'"helpText":null,' +
|
||||
'"value":5432' +
|
||||
'},' +
|
||||
'{' +
|
||||
'"label":"databaseName",' +
|
||||
'"displayName":"Database Name",' +
|
||||
'"type":"java.lang.String",' +
|
||||
'"helpText":null,' +
|
||||
'"value":""' +
|
||||
'},' +
|
||||
'{' +
|
||||
'"label":"user",' +
|
||||
'"displayName":"User",' +
|
||||
'"type":"java.lang.String",' +
|
||||
'"helpText":null,' +
|
||||
'"value":""' +
|
||||
'},' +
|
||||
'{' +
|
||||
'"label":"password",' +
|
||||
'"displayName":"Password",' +
|
||||
'"type":"java.lang.String",' +
|
||||
'"helpText":null,' +
|
||||
'"value":""' +
|
||||
'},' +
|
||||
'{' +
|
||||
'"label":"dataSourceClass",' +
|
||||
'"displayName":"Data Source Class",' +
|
||||
'"type":"java.lang.String",' +
|
||||
'"helpText":null,' +
|
||||
'"value":"org.postgresql.ds.PGSimpleDataSource"' +
|
||||
|
@ -2,7 +2,7 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -58,7 +58,7 @@ var Entaxy = (function (Entaxy) {
|
||||
})
|
||||
.run(configurePlugin);
|
||||
|
||||
function configurePlugin(mainNavService, workspace, helpRegistry, preferencesRegistry, localStorage, preLogoutTasks, documentBase, $templateCache, $rootScope) {
|
||||
function configurePlugin(mainNavService, workspace, helpRegistry, preferencesRegistry, localStorage, preLogoutTasks, documentBase, $templateCache, $rootScope) {
|
||||
var entaxyJmxDomain = localStorage['entaxyJmxDomain'] || "ru.entaxy.esb";
|
||||
mainNavService.addItem({
|
||||
title: 'Entaxy',
|
||||
@ -67,6 +67,67 @@ var Entaxy = (function (Entaxy) {
|
||||
isValid: function () { return workspace.treeContainsDomainAndProperties(entaxyJmxDomain); }
|
||||
});
|
||||
|
||||
workspace.addNamedTreePostProcessor('addIconClass', (tree) => {
|
||||
if (tree) {
|
||||
let domain = tree.get(entaxyJmxDomain);
|
||||
|
||||
if (domain) {
|
||||
angular.forEach(domain.children, (node) => {
|
||||
node.class = 'entaxy-node-icon';
|
||||
|
||||
angular.forEach(['platform', 'runtime', 'resource'], (folderName) => {
|
||||
let folder = domain.findDescendant(child => child.title === folderName);
|
||||
if (folder) {
|
||||
folder.class = createClassName(folderName);
|
||||
}
|
||||
});
|
||||
|
||||
angular.forEach(['adapter', 'factories', 'connections'], (folderName) => {
|
||||
addClassRecursive(
|
||||
domain.findDescendant(child => child.title === folderName),
|
||||
createClassName(folderName)
|
||||
);
|
||||
});
|
||||
|
||||
addClassToParentAndItsChildren(domain, 'profiles');
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function addClassRecursive(folder, className) {
|
||||
if (folder) {
|
||||
folder.class = className;
|
||||
angular.forEach(folder.children, (child) => {
|
||||
if (child.children && child.children.length > 0) {
|
||||
addClassRecursive(child, className);
|
||||
} else {
|
||||
child.class = className;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function addClassToParentAndItsChildren(domain, parentName) {
|
||||
let className = createClassName(parentName);
|
||||
let parent = domain.findDescendant(child => child.title === parentName);
|
||||
|
||||
if (parent) {
|
||||
parent.class = className;
|
||||
angular.forEach(parent.children, (child) => {
|
||||
child.class = className;
|
||||
|
||||
angular.forEach(child.children, (grandChild) => {
|
||||
addClassRecursive(grandChild, createClassName(grandChild.title));
|
||||
})
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function createClassName(folderName) {
|
||||
return 'entaxy-' + folderName + '-icon';
|
||||
}
|
||||
|
||||
function mBeansTreeLocalization(children) {
|
||||
if (children && children.length >0) {
|
||||
for (var i=0; i<children.length; i++) {
|
||||
@ -85,14 +146,14 @@ var Entaxy = (function (Entaxy) {
|
||||
$rootScope.$emit('entaxyWorkspacePreparing', workspace);
|
||||
|
||||
workspace.addNamedTreePostProcessor('localize', (tree) => {
|
||||
if (tree) {
|
||||
let domain = tree.get(entaxyJmxDomain);
|
||||
if (domain) {
|
||||
console.log('domain ');
|
||||
console.log(domain.children);
|
||||
mBeansTreeLocalization(domain.children);
|
||||
}
|
||||
}
|
||||
if (tree) {
|
||||
let domain = tree.get(entaxyJmxDomain);
|
||||
if (domain) {
|
||||
console.log('domain ');
|
||||
console.log(domain.children);
|
||||
mBeansTreeLocalization(domain.children);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// clean up local storage upon logout
|
||||
@ -104,7 +165,7 @@ var Entaxy = (function (Entaxy) {
|
||||
}
|
||||
configurePlugin.$inject = ['mainNavService', 'workspace', 'helpRegistry', 'preferencesRegistry', 'localStorage', 'preLogoutTasks', 'documentBase', '$templateCache','$rootScope'];
|
||||
|
||||
return Entaxy;
|
||||
return Entaxy;
|
||||
|
||||
})(Entaxy || {});
|
||||
|
||||
@ -113,12 +174,13 @@ var Entaxy = (function (Entaxy) {
|
||||
hawtioPluginLoader.addModule(Entaxy.pluginName);
|
||||
|
||||
var L10N = {
|
||||
platform: 'Платформа',
|
||||
adapters: 'Адаптеры',
|
||||
factories: 'Фабрики',
|
||||
runtime:'Состояние',
|
||||
connections:'Коннекции',
|
||||
profiles:'Профили',
|
||||
connectors:'Коннекторы',
|
||||
routes:'Маршруты'
|
||||
};
|
||||
platform: 'Платформа',
|
||||
adapter: 'Адаптеры',
|
||||
factories: 'Фабрики',
|
||||
runtime:'Состояние',
|
||||
connections:'Коннекции',
|
||||
profiles:'Профили',
|
||||
connectors:'Коннекторы',
|
||||
routes:'Маршруты',
|
||||
resource: 'Ресурсы'
|
||||
};
|
||||
|
@ -2,14 +2,14 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2022 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed 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.
|
||||
|
@ -2,14 +2,14 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed 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.
|
||||
@ -139,4 +139,4 @@ var Entaxy;
|
||||
}
|
||||
firstStepModalTestController.$inject = [];
|
||||
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
|
@ -2,14 +2,14 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2022 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed 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.
|
||||
|
@ -2,14 +2,14 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed 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.
|
||||
@ -96,4 +96,4 @@ function secondStepModalTestController() {
|
||||
}
|
||||
secondStepModalTestController.$inject = [];
|
||||
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
|
@ -2,14 +2,14 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed 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.
|
||||
|
@ -2,14 +2,14 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed 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.
|
||||
@ -300,4 +300,4 @@ var Entaxy;
|
||||
}
|
||||
testModalController.$inject = ['workspace', '$uibModal'];
|
||||
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
|
@ -2,14 +2,14 @@
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* entaxy-management-plugin
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||
* ==========
|
||||
* Licensed 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.
|
||||
@ -241,4 +241,4 @@ var Entaxy;
|
||||
}
|
||||
testModal2Controller.$inject = ['workspace', '$uibModal'];
|
||||
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
})(Entaxy || (Entaxy = {}));
|
||||
|
@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>ru.entaxy.esb</groupId>
|
||||
<artifactId>ui</artifactId>
|
||||
<version>1.8.2.2</version>
|
||||
<version>1.8.3</version>
|
||||
</parent>
|
||||
<groupId>ru.entaxy.esb.ui</groupId>
|
||||
<artifactId>entaxy-hawtio</artifactId>
|
||||
@ -46,42 +46,130 @@
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>license-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>update-file-header</id>
|
||||
<goals>
|
||||
<goal>update-file-header</goal>
|
||||
</goals>
|
||||
<phase>process-sources</phase>
|
||||
<configuration>
|
||||
<excludes combine.self="override">
|
||||
<!--
|
||||
we exclude org.apache.karaf.features.repos.cfg
|
||||
for it will be used as a fragment
|
||||
-->
|
||||
<exclude>**/org.apache.karaf.features.repos.cfg</exclude>
|
||||
<exclude>**/*.cfg</exclude>
|
||||
<exclude>**/*.json1</exclude>
|
||||
<!-- *.ftl files will be processed by the next plugin -->
|
||||
<exclude>**/*.ftl</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
||||
</build>
|
||||
|
||||
<profiles>
|
||||
|
||||
<profile>
|
||||
<id>attach-cfg</id>
|
||||
<activation>
|
||||
<file>
|
||||
<exists>src/main/resources/etc/org.apache.karaf.features.repos.cfg</exists>
|
||||
</file>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>build-helper-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>attach-cfg-hawtio</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>attach-artifact</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<runOnlyAtExecutionRoot>false</runOnlyAtExecutionRoot>
|
||||
<artifacts>
|
||||
<artifact>
|
||||
<file>target/classes/etc/org.apache.karaf.features.repos.cfg</file>
|
||||
<type>cfg</type>
|
||||
<classifier>org.apache.karaf.features.repos</classifier>
|
||||
</artifact>
|
||||
</artifacts>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
|
||||
<profile>
|
||||
<id>entaxy-hawtio-license</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>processLicense</name>
|
||||
<value>true</value>
|
||||
</property>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>license-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>update-file-header-entaxy-hawtio</id>
|
||||
<goals>
|
||||
<goal>update-file-header</goal>
|
||||
</goals>
|
||||
<phase>process-sources</phase>
|
||||
<configuration>
|
||||
<organizationName>${license.organizationName}</organizationName>
|
||||
<inceptionYear>${license.inceptionYear}</inceptionYear>
|
||||
<projectName>${license.projectName}</projectName>
|
||||
<copyrightOwners>${license.copyrightOwners}</copyrightOwners>
|
||||
<licenseName>${license.licenseName}</licenseName>
|
||||
|
||||
<!-- plugin documentation recommends "true"
|
||||
but we use "false" to look like Apache sources -->
|
||||
<addJavaLicenseAfterPackage>false</addJavaLicenseAfterPackage>
|
||||
<emptyLineAfterHeader>false</emptyLineAfterHeader>
|
||||
|
||||
<!-- excludes>
|
||||
<exclude>**/*.json</exclude>
|
||||
</excludes-->
|
||||
<extraExtensions>
|
||||
<!-- treat *.install files as *.properties -->
|
||||
<install>properties</install>
|
||||
</extraExtensions>
|
||||
|
||||
<ignoreNoFileToScan>true</ignoreNoFileToScan>
|
||||
<keepBackup>true</keepBackup>
|
||||
|
||||
<processStartTag>${license.processStartTag}</processStartTag>
|
||||
<processEndTag>${license.processEndTag}</processEndTag>
|
||||
<sectionDelimiter>${license.sectionDelimiter}</sectionDelimiter>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>update-file-header</id>
|
||||
<goals>
|
||||
<goal>update-file-header</goal>
|
||||
</goals>
|
||||
<phase>process-sources</phase>
|
||||
<configuration>
|
||||
<excludes combine.self="override">
|
||||
<!--
|
||||
we exclude org.apache.karaf.features.repos.cfg
|
||||
for it will be used as a fragment
|
||||
-->
|
||||
<exclude>**/org.apache.karaf.features.repos.cfg</exclude>
|
||||
<exclude>**/*.cfg</exclude>
|
||||
<exclude>**/*.json1</exclude>
|
||||
<!-- *.ftl files will be processed by the next plugin -->
|
||||
<exclude>**/*.ftl</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
|
||||
<!--
|
||||
@DISABLED @TO_REMOVE
|
||||
-->
|
||||
<profile>
|
||||
<id>install-hawtio-script</id>
|
||||
<activation>
|
||||
<activeByDefault>false</activeByDefault>
|
||||
<file>
|
||||
<exists>src/main/scripts/entaxy-hawtio.install</exists>
|
||||
<exists>src/main/scripts/entaxy-hawtio.install_1</exists>
|
||||
</file>
|
||||
</activation>
|
||||
<build>
|
||||
|
@ -3,7 +3,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
entaxy-hawtio
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -1,3 +1,22 @@
|
||||
###
|
||||
# ~~~~~~licensing~~~~~~
|
||||
# entaxy-hawtio
|
||||
# ==========
|
||||
# Copyright (C) 2020 - 2023 EmDev LLC
|
||||
# ==========
|
||||
# Licensed 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.
|
||||
# ~~~~~~/licensing~~~~~~
|
||||
###
|
||||
#
|
||||
# This file describes the features repository URL
|
||||
# for Entaxy Hawtio-based UI
|
||||
|
@ -2,7 +2,7 @@
|
||||
# ~~~~~~licensing~~~~~~
|
||||
# entaxy-hawtio
|
||||
# ==========
|
||||
# Copyright (C) 2020 - 2021 EmDev LLC
|
||||
# Copyright (C) 2020 - 2023 EmDev LLC
|
||||
# ==========
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
|
@ -3,7 +3,7 @@
|
||||
<parent>
|
||||
<groupId>ru.entaxy.esb</groupId>
|
||||
<artifactId>ui</artifactId>
|
||||
<version>1.8.2.2</version>
|
||||
<version>1.8.3</version>
|
||||
</parent>
|
||||
<groupId>ru.entaxy.esb.ui</groupId>
|
||||
<artifactId>h2-console</artifactId>
|
||||
|
@ -3,7 +3,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
h2-console
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -3,7 +3,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
h2-console
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
62
ui/pom.xml
62
ui/pom.xml
@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>ru.entaxy.esb</groupId>
|
||||
<artifactId>root</artifactId>
|
||||
<version>1.8.2.2</version>
|
||||
<version>1.8.3</version>
|
||||
</parent>
|
||||
<artifactId>ui</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
@ -16,11 +16,69 @@
|
||||
</modules>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>install-script-ui-license</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>processLicense</name>
|
||||
<value>true</value>
|
||||
</property>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>license-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>update-file-header</id>
|
||||
<goals>
|
||||
<goal>update-file-header</goal>
|
||||
</goals>
|
||||
<phase>process-sources</phase>
|
||||
<configuration>
|
||||
<organizationName>${license.organizationName}</organizationName>
|
||||
<inceptionYear>${license.inceptionYear}</inceptionYear>
|
||||
<projectName>${license.projectName}</projectName>
|
||||
<copyrightOwners>${license.copyrightOwners}</copyrightOwners>
|
||||
<licenseName>${license.licenseName}</licenseName>
|
||||
|
||||
<!-- plugin documentation recommends "true"
|
||||
but we use "false" to look like Apache sources -->
|
||||
<addJavaLicenseAfterPackage>false</addJavaLicenseAfterPackage>
|
||||
<emptyLineAfterHeader>false</emptyLineAfterHeader>
|
||||
|
||||
<!-- excludes>
|
||||
<exclude>**/*.json</exclude>
|
||||
</excludes-->
|
||||
<extraExtensions>
|
||||
<!-- treat *.install files as *.properties -->
|
||||
<install>properties</install>
|
||||
</extraExtensions>
|
||||
|
||||
<ignoreNoFileToScan>true</ignoreNoFileToScan>
|
||||
<keepBackup>true</keepBackup>
|
||||
|
||||
<processStartTag>${license.processStartTag}</processStartTag>
|
||||
<processEndTag>${license.processEndTag}</processEndTag>
|
||||
<sectionDelimiter>${license.sectionDelimiter}</sectionDelimiter>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
|
||||
<!--
|
||||
@DISABLED @TO_REMOVE
|
||||
-->
|
||||
<profile>
|
||||
<id>install-script-ui</id>
|
||||
<activation>
|
||||
<activeByDefault>false</activeByDefault>
|
||||
<file>
|
||||
<exists>src/main/scripts/entaxy-ui.install</exists>
|
||||
<exists>src/main/scripts/entaxy-ui.install_</exists>
|
||||
</file>
|
||||
</activation>
|
||||
<build>
|
||||
|
@ -3,7 +3,7 @@
|
||||
~~~~~~licensing~~~~~~
|
||||
ui
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
Copyright (C) 2020 - 2023 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!-- -->
|
||||
<configfile finalname="${karaf.etc}/org.apache.felix.hc.generalchecks.BundlesStartedCheck-ui.cfg" override="true">
|
||||
mvn:ru.entaxy.esb/ui/1.8.2.2/cfg/org.apache.felix.hc.generalchecks.BundlesStartedCheck-ui
|
||||
<configfile finalname="etc/org.apache.felix.hc.generalchecks.BundlesStartedCheck-ui.cfg" override="true">
|
||||
mvn:ru.entaxy.esb/ui/1.8.3/cfg/org.apache.felix.hc.generalchecks.BundlesStartedCheck-ui
|
||||
</configfile>
|
||||
<!-- -->
|
@ -2,7 +2,7 @@
|
||||
# ~~~~~~licensing~~~~~~
|
||||
# ui
|
||||
# ==========
|
||||
# Copyright (C) 2020 - 2022 EmDev LLC
|
||||
# Copyright (C) 2020 - 2023 EmDev LLC
|
||||
# ==========
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
|
@ -2,7 +2,7 @@
|
||||
# ~~~~~~licensing~~~~~~
|
||||
# entaxy-hawtio
|
||||
# ==========
|
||||
# Copyright (C) 2020 - 2021 EmDev LLC
|
||||
# Copyright (C) 2020 - 2023 EmDev LLC
|
||||
# ==========
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
|
Reference in New Issue
Block a user