ARTEMIS-2838 adding missing "send message" tab for addresses
plus removed some erronious logging https://issues.apache.org/jira/browse/ARTEMIS-2838
This commit is contained in:
parent
2ab36905ae
commit
3a82c830f0
|
@ -0,0 +1,122 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||||
|
* (the "License"); you may not use this file except in compliance with
|
||||||
|
* the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
/// <reference path="tree.component.ts"/>
|
||||||
|
var Artemis;
|
||||||
|
(function (Artemis) {
|
||||||
|
Artemis.log.debug("loading address send message");
|
||||||
|
Artemis._module.component('artemisAddressSendMessage', {
|
||||||
|
template:
|
||||||
|
`<h1>Send Message
|
||||||
|
<button type="button" class="btn btn-link jvm-title-popover"
|
||||||
|
uib-popover-template="'send-message-instructions.html'" popover-placement="bottom-left"
|
||||||
|
popover-title="Instructions" popover-trigger="'outsideClick'">
|
||||||
|
<span class="pficon pficon-help"></span>
|
||||||
|
</button>
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<div class="alert alert-warning" ng-show="$ctrl.message.noCredentials">
|
||||||
|
<span class="pficon pficon-warning-triangle-o"></span>
|
||||||
|
<strong>No credentials set for endpoint!</strong>
|
||||||
|
Please set your username and password in the
|
||||||
|
<a href="#" class="alert-link" ng-click="$ctrl.message.openPrefs()">Preferences</a> page.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row artemis-message-configuration">
|
||||||
|
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<form>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Durable </label>
|
||||||
|
<input id="durable" type="checkbox" ng-model="$ctrl.message.durable" value="true">
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>Headers</h3>
|
||||||
|
|
||||||
|
<div class="form-group" ng-if="$ctrl.message.headers.length > 0">
|
||||||
|
<table class="scr-component-references-table table">
|
||||||
|
<tbody>
|
||||||
|
<tr class="input-group" ng-repeat="header in $ctrl.message.headers">
|
||||||
|
<td><input type="text" class="form-control" ng-model="header.name" placeholder="Name" autocomplete="off" id="name"></td>
|
||||||
|
<td><input type="text" class="form-control" ng-model="header.value" placeholder="Value" autocomplete="off" id="value"></td>
|
||||||
|
<td><div class="input-group-prepend">
|
||||||
|
<button type="button" class="btn btn-default" title="Delete" ng-click="$ctrl.message.removeHeader(header)">
|
||||||
|
<span class="pficon pficon-delete"></span>
|
||||||
|
</button>
|
||||||
|
</div></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<button type="button" class="btn btn-primary artemis-add-message-button" ng-click="$ctrl.message.addHeader()">Add Header</button>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Body</h3>
|
||||||
|
|
||||||
|
<form>
|
||||||
|
<div class="form-group">
|
||||||
|
<div hawtio-editor="$ctrl.message.message" mode="codeMirrorOptions.mode.name"></div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<select class="form-control artemis-send-message-format" ng-model="codeMirrorOptions.mode.name">
|
||||||
|
<option value="javascript">JSON</option>
|
||||||
|
<option value="xml">XML</option>
|
||||||
|
</select>
|
||||||
|
<button class="btn btn-default" ng-click="$ctrl.message.formatMessage()"
|
||||||
|
title="Automatically pretty prints the message so its easier to read">Format
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<button type="button" class="btn btn-primary artemis-send-message-button" ng-click="$ctrl.message.sendMessage($ctrl.message.durable)">Send message</button>
|
||||||
|
</p>
|
||||||
|
<script type="text/ng-template" id="send-message-instructions.html">
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
This page allows you to send a message to the chosen address. The message will be of type <code>text</code>
|
||||||
|
message and it will be possible to add headers to the message. The sending of the message will be authenticated
|
||||||
|
using the username and password set ion <code>preferences</code>, if this is not set then these will
|
||||||
|
be null.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
`,
|
||||||
|
controller: AddressSendMessageController
|
||||||
|
})
|
||||||
|
.name;
|
||||||
|
Artemis.log.debug("loaded queue " + Artemis.createQueueModule);
|
||||||
|
|
||||||
|
function AddressSendMessageController($route, $scope, $element, $timeout, workspace, jolokia, localStorage, $location, artemisMessage, messageCreator) {
|
||||||
|
Core.initPreferenceScope($scope, localStorage, {
|
||||||
|
'durable': {
|
||||||
|
'value': true,
|
||||||
|
'converter': Core.parseBooleanValue
|
||||||
|
}
|
||||||
|
});
|
||||||
|
var ctrl = this;
|
||||||
|
ctrl.messageCreator = messageCreator;
|
||||||
|
ctrl.message = ctrl.messageCreator.createNewMessage($scope, $location, $route, localStorage, artemisMessage, workspace, $element, $timeout, jolokia);
|
||||||
|
|
||||||
|
}
|
||||||
|
AddressSendMessageController.$inject = ['$route', '$scope', '$element', '$timeout', 'workspace', 'jolokia', 'localStorage', '$location', 'artemisMessage', 'messageCreator'];
|
||||||
|
|
||||||
|
})(Artemis || (Artemis = {}));
|
|
@ -16,7 +16,7 @@
|
||||||
*/
|
*/
|
||||||
var Artemis;
|
var Artemis;
|
||||||
(function (Artemis) {
|
(function (Artemis) {
|
||||||
//Artemis.log.info("loading addresses");
|
//Artemis.log.debug("loading addresses");
|
||||||
Artemis._module.component('artemisAddresses', {
|
Artemis._module.component('artemisAddresses', {
|
||||||
template:
|
template:
|
||||||
`<h1>Browse Addresses
|
`<h1>Browse Addresses
|
||||||
|
@ -135,14 +135,14 @@ var Artemis;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (artemisAddress.address) {
|
if (artemisAddress.address) {
|
||||||
Artemis.log.info("navigating to address = " + artemisAddress.address.address);
|
Artemis.log.debug("navigating to address = " + artemisAddress.address.address);
|
||||||
ctrl.filter.values.field = ctrl.filter.fieldOptions[1].id;
|
ctrl.filter.values.field = ctrl.filter.fieldOptions[1].id;
|
||||||
ctrl.filter.values.operation = ctrl.filter.operationOptions[0].id;
|
ctrl.filter.values.operation = ctrl.filter.operationOptions[0].id;
|
||||||
ctrl.filter.values.value = artemisAddress.address.address;
|
ctrl.filter.values.value = artemisAddress.address.address;
|
||||||
}
|
}
|
||||||
|
|
||||||
selectQueues = function (address) {
|
selectQueues = function (address) {
|
||||||
Artemis.log.info("navigating to queues:" + address)
|
Artemis.log.debug("navigating to queues:" + address)
|
||||||
artemisAddress.address = { address: address };
|
artemisAddress.address = { address: address };
|
||||||
$location.path("artemis/artemisQueues");
|
$location.path("artemis/artemisQueues");
|
||||||
};
|
};
|
||||||
|
@ -156,12 +156,12 @@ var Artemis;
|
||||||
function getAddressNid(address, $location) {
|
function getAddressNid(address, $location) {
|
||||||
var rootNID = getRootNid($location);
|
var rootNID = getRootNid($location);
|
||||||
var targetNID = rootNID + "addresses-" + address;
|
var targetNID = rootNID + "addresses-" + address;
|
||||||
Artemis.log.info("targetNID=" + targetNID);
|
Artemis.log.debug("targetNID=" + targetNID);
|
||||||
return targetNID;
|
return targetNID;
|
||||||
}
|
}
|
||||||
function getRootNid($location) {
|
function getRootNid($location) {
|
||||||
var currentNid = $location.search()['nid'];
|
var currentNid = $location.search()['nid'];
|
||||||
Artemis.log.info("current nid=" + currentNid);
|
Artemis.log.debug("current nid=" + currentNid);
|
||||||
var firstDash = currentNid.indexOf('-');
|
var firstDash = currentNid.indexOf('-');
|
||||||
var secondDash = currentNid.indexOf('-', firstDash + 1);
|
var secondDash = currentNid.indexOf('-', firstDash + 1);
|
||||||
var thirdDash = currentNid.indexOf('-', secondDash + 1);
|
var thirdDash = currentNid.indexOf('-', secondDash + 1);
|
||||||
|
|
|
@ -379,7 +379,7 @@ var Artemis;
|
||||||
}
|
}
|
||||||
|
|
||||||
ctrl.refresh = function() {
|
ctrl.refresh = function() {
|
||||||
Artemis.log.info(ctrl.filter)
|
Artemis.log.debug(ctrl.filter)
|
||||||
ctrl.pagination.load();
|
ctrl.pagination.load();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
*/
|
*/
|
||||||
var Artemis;
|
var Artemis;
|
||||||
(function (Artemis) {
|
(function (Artemis) {
|
||||||
Artemis.log.info("loading connections");
|
Artemis.log.debug("loading connections");
|
||||||
Artemis._module.component('artemisConnections', {
|
Artemis._module.component('artemisConnections', {
|
||||||
template:
|
template:
|
||||||
`
|
`
|
||||||
|
@ -133,13 +133,13 @@ var Artemis;
|
||||||
];
|
];
|
||||||
|
|
||||||
selectSessions = function (connection) {
|
selectSessions = function (connection) {
|
||||||
Artemis.log.info("navigating to connection:" + connection)
|
Artemis.log.debug("navigating to connection:" + connection)
|
||||||
artemisConnection.connection = { connectionID: connection };
|
artemisConnection.connection = { connectionID: connection };
|
||||||
$location.path("artemis/artemisSessions");
|
$location.path("artemis/artemisSessions");
|
||||||
};
|
};
|
||||||
|
|
||||||
if (artemisSession.session) {
|
if (artemisSession.session) {
|
||||||
Artemis.log.info("navigating to session = " + artemisSession.session.connectionID);
|
Artemis.log.debug("navigating to session = " + artemisSession.session.connectionID);
|
||||||
ctrl.filter.values.field = ctrl.filter.fieldOptions[0].id;
|
ctrl.filter.values.field = ctrl.filter.fieldOptions[0].id;
|
||||||
ctrl.filter.values.operation = ctrl.filter.operationOptions[0].id;
|
ctrl.filter.values.operation = ctrl.filter.operationOptions[0].id;
|
||||||
ctrl.filter.values.value = artemisSession.session.connectionID;
|
ctrl.filter.values.value = artemisSession.session.connectionID;
|
||||||
|
@ -179,7 +179,7 @@ var Artemis;
|
||||||
ctrl.pagination.reset();
|
ctrl.pagination.reset();
|
||||||
ctrl.refreshed = false;
|
ctrl.refreshed = false;
|
||||||
}
|
}
|
||||||
Artemis.log.info(JSON.stringify(connectionsFilter));
|
Artemis.log.debug(JSON.stringify(connectionsFilter));
|
||||||
jolokia.request({ type: 'exec', mbean: mbean, operation: method, arguments: [JSON.stringify(connectionsFilter), ctrl.pagination.pageNumber, ctrl.pagination.pageSize] }, Core.onSuccess(populateTable, { error: onError }));
|
jolokia.request({ type: 'exec', mbean: mbean, operation: method, arguments: [JSON.stringify(connectionsFilter), ctrl.pagination.pageNumber, ctrl.pagination.pageSize] }, Core.onSuccess(populateTable, { error: onError }));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -190,7 +190,7 @@ var Artemis;
|
||||||
}
|
}
|
||||||
|
|
||||||
ctrl.closeConnection = function () {
|
ctrl.closeConnection = function () {
|
||||||
Artemis.log.info("closing connection: " + ctrl.connectionToDelete);
|
Artemis.log.debug("closing connection: " + ctrl.connectionToDelete);
|
||||||
if (mbean) {
|
if (mbean) {
|
||||||
jolokia.request({ type: 'exec',
|
jolokia.request({ type: 'exec',
|
||||||
mbean: mbean,
|
mbean: mbean,
|
||||||
|
|
|
@ -160,26 +160,26 @@ var Artemis;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (artemisConsumer.consumer) {
|
if (artemisConsumer.consumer) {
|
||||||
Artemis.log.info("navigating to consumer = " + artemisConsumer.consumer.sessionID);
|
Artemis.log.debug("navigating to consumer = " + artemisConsumer.consumer.sessionID);
|
||||||
ctrl.filter.values.field = ctrl.filter.fieldOptions[1].id;
|
ctrl.filter.values.field = ctrl.filter.fieldOptions[1].id;
|
||||||
ctrl.filter.values.operation = ctrl.filter.operationOptions[0].id;
|
ctrl.filter.values.operation = ctrl.filter.operationOptions[0].id;
|
||||||
ctrl.filter.values.value = artemisConsumer.consumer.sessionID;
|
ctrl.filter.values.value = artemisConsumer.consumer.sessionID;
|
||||||
}
|
}
|
||||||
|
|
||||||
selectQueue = function (queue) {
|
selectQueue = function (queue) {
|
||||||
Artemis.log.info("navigating to queue:" + queue)
|
Artemis.log.debug("navigating to queue:" + queue)
|
||||||
artemisQueue.queue = { queue: queue };
|
artemisQueue.queue = { queue: queue };
|
||||||
$location.path("artemis/artemisQueues");
|
$location.path("artemis/artemisQueues");
|
||||||
};
|
};
|
||||||
|
|
||||||
selectAddress = function (address) {
|
selectAddress = function (address) {
|
||||||
Artemis.log.info("navigating to address:" + address)
|
Artemis.log.debug("navigating to address:" + address)
|
||||||
artemisAddress.address = { address: address };
|
artemisAddress.address = { address: address };
|
||||||
$location.path("artemis/artemisAddresses");
|
$location.path("artemis/artemisAddresses");
|
||||||
};
|
};
|
||||||
|
|
||||||
selectSession = function (session) {
|
selectSession = function (session) {
|
||||||
Artemis.log.info("navigating to session:" + session)
|
Artemis.log.debug("navigating to session:" + session)
|
||||||
artemisSession.session = { session: session };
|
artemisSession.session = { session: session };
|
||||||
$location.path("artemis/artemisSessions");
|
$location.path("artemis/artemisSessions");
|
||||||
};
|
};
|
||||||
|
@ -191,7 +191,7 @@ var Artemis;
|
||||||
}
|
}
|
||||||
|
|
||||||
ctrl.closeConsumer = function () {
|
ctrl.closeConsumer = function () {
|
||||||
Artemis.log.info("closing session: " + ctrl.consumerToDelete);
|
Artemis.log.debug("closing session: " + ctrl.consumerToDelete);
|
||||||
if (mbean) {
|
if (mbean) {
|
||||||
jolokia.request({ type: 'exec',
|
jolokia.request({ type: 'exec',
|
||||||
mbean: mbean,
|
mbean: mbean,
|
||||||
|
|
|
@ -86,10 +86,10 @@ var Artemis;
|
||||||
controller: CreateAddressController
|
controller: CreateAddressController
|
||||||
})
|
})
|
||||||
.name;
|
.name;
|
||||||
Artemis.log.info("loaded address " + Artemis.addressModule);
|
Artemis.log.debug("loaded address " + Artemis.addressModule);
|
||||||
|
|
||||||
function CreateAddressController($scope, workspace, jolokia, localStorage) {
|
function CreateAddressController($scope, workspace, jolokia, localStorage) {
|
||||||
Artemis.log.info("loaded address controller");
|
Artemis.log.debug("loaded address controller");
|
||||||
var ctrl = this;
|
var ctrl = this;
|
||||||
ctrl.addressName = "";
|
ctrl.addressName = "";
|
||||||
ctrl.routingType = "Anycast";
|
ctrl.routingType = "Anycast";
|
||||||
|
@ -113,22 +113,22 @@ var Artemis;
|
||||||
}
|
}
|
||||||
|
|
||||||
ctrl.createAddress = function (name, routingType) {
|
ctrl.createAddress = function (name, routingType) {
|
||||||
Artemis.log.info("creating " + routingType);
|
Artemis.log.debug("creating " + routingType);
|
||||||
var mbean = Artemis.getBrokerMBean(workspace, jolokia);
|
var mbean = Artemis.getBrokerMBean(workspace, jolokia);
|
||||||
if (mbean) {
|
if (mbean) {
|
||||||
if (routingType == "Multicast") {
|
if (routingType == "Multicast") {
|
||||||
$scope.message = "Created Multicast Address " + name;
|
$scope.message = "Created Multicast Address " + name;
|
||||||
Artemis.log.info(ctrl.message);
|
Artemis.log.debug(ctrl.message);
|
||||||
jolokia.execute(mbean, "createAddress(java.lang.String,java.lang.String)", name, "MULTICAST", Core.onSuccess(operationSuccess, { error: onError }));
|
jolokia.execute(mbean, "createAddress(java.lang.String,java.lang.String)", name, "MULTICAST", Core.onSuccess(operationSuccess, { error: onError }));
|
||||||
}
|
}
|
||||||
else if (routingType == "Anycast") {
|
else if (routingType == "Anycast") {
|
||||||
$scope.message = "Created Anycast Address " + name;
|
$scope.message = "Created Anycast Address " + name;
|
||||||
Artemis.log.info(ctrl.message);
|
Artemis.log.debug(ctrl.message);
|
||||||
jolokia.execute(mbean, "createAddress(java.lang.String,java.lang.String)", name, "ANYCAST", Core.onSuccess(operationSuccess, { error: onError }));
|
jolokia.execute(mbean, "createAddress(java.lang.String,java.lang.String)", name, "ANYCAST", Core.onSuccess(operationSuccess, { error: onError }));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$scope.message = "Created Anycast/Multicast Address " + name;
|
$scope.message = "Created Anycast/Multicast Address " + name;
|
||||||
Artemis.log.info(ctrl.message);
|
Artemis.log.debug(ctrl.message);
|
||||||
jolokia.execute(mbean, "createAddress(java.lang.String,java.lang.String)", name, "ANYCAST,MULTICAST", Core.onSuccess(operationSuccess, { error: onError }));
|
jolokia.execute(mbean, "createAddress(java.lang.String,java.lang.String)", name, "ANYCAST,MULTICAST", Core.onSuccess(operationSuccess, { error: onError }));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,10 +89,10 @@ var Artemis;
|
||||||
controller: DeleteQueueController
|
controller: DeleteQueueController
|
||||||
})
|
})
|
||||||
.name;
|
.name;
|
||||||
Artemis.log.info("loaded delete queue " + Artemis.createQueueModule);
|
Artemis.log.debug("loaded delete queue " + Artemis.createQueueModule);
|
||||||
|
|
||||||
function DeleteQueueController($scope, workspace, jolokia, localStorage) {
|
function DeleteQueueController($scope, workspace, jolokia, localStorage) {
|
||||||
Artemis.log.info("loaded queue controller");
|
Artemis.log.debug("loaded queue controller");
|
||||||
var ctrl = this;
|
var ctrl = this;
|
||||||
ctrl.workspace = workspace;
|
ctrl.workspace = workspace;
|
||||||
ctrl.deleteDialog = false;
|
ctrl.deleteDialog = false;
|
||||||
|
@ -130,19 +130,19 @@ var Artemis;
|
||||||
var selection = ctrl.workspace.selection;
|
var selection = ctrl.workspace.selection;
|
||||||
var entries = selection.entries;
|
var entries = selection.entries;
|
||||||
var mbean = Artemis.getBrokerMBean(ctrl.workspace, jolokia);
|
var mbean = Artemis.getBrokerMBean(ctrl.workspace, jolokia);
|
||||||
Artemis.log.info(mbean);
|
Artemis.log.debug(mbean);
|
||||||
if (mbean) {
|
if (mbean) {
|
||||||
if (selection && jolokia && entries) {
|
if (selection && jolokia && entries) {
|
||||||
var domain = selection.domain;
|
var domain = selection.domain;
|
||||||
var name = entries["queue"];
|
var name = entries["queue"];
|
||||||
Artemis.log.info("name = " + name)
|
Artemis.log.debug("name = " + name)
|
||||||
name = Core.unescapeHTML(name);
|
name = Core.unescapeHTML(name);
|
||||||
if (name.charAt(0) === '"' && name.charAt(name.length -1) === '"')
|
if (name.charAt(0) === '"' && name.charAt(name.length -1) === '"')
|
||||||
{
|
{
|
||||||
name = name.substr(1,name.length -2);
|
name = name.substr(1,name.length -2);
|
||||||
}
|
}
|
||||||
name = Artemis.ownUnescape(name);
|
name = Artemis.ownUnescape(name);
|
||||||
Artemis.log.info(name);
|
Artemis.log.debug(name);
|
||||||
var operation;
|
var operation;
|
||||||
$scope.message = "Deleted queue " + name;
|
$scope.message = "Deleted queue " + name;
|
||||||
jolokia.execute(mbean, "destroyQueue(java.lang.String)", name, Core.onSuccess(operationPurgeSuccess, { error: onError }));
|
jolokia.execute(mbean, "destroyQueue(java.lang.String)", name, Core.onSuccess(operationPurgeSuccess, { error: onError }));
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
/// <reference path="tree.component.ts"/>
|
/// <reference path="tree.component.ts"/>
|
||||||
var Artemis;
|
var Artemis;
|
||||||
(function (Artemis) {
|
(function (Artemis) {
|
||||||
Artemis.log.info("loading navigation");
|
Artemis.log.debug("loading navigation");
|
||||||
var TAB_CONFIG = {
|
var TAB_CONFIG = {
|
||||||
attributes: {
|
attributes: {
|
||||||
title: 'Attributes',
|
title: 'Attributes',
|
||||||
|
@ -51,6 +51,10 @@ var Artemis;
|
||||||
title: 'Send message',
|
title: 'Send message',
|
||||||
route: '/artemis/artemisSendMessage'
|
route: '/artemis/artemisSendMessage'
|
||||||
},
|
},
|
||||||
|
addressSendMessage: {
|
||||||
|
title: 'Send message',
|
||||||
|
route: '/artemis/artemisAddressSendMessage'
|
||||||
|
},
|
||||||
browseQueue: {
|
browseQueue: {
|
||||||
title: 'Browse queue',
|
title: 'Browse queue',
|
||||||
route: '/artemis/artemisBrowseQueue'
|
route: '/artemis/artemisBrowseQueue'
|
||||||
|
@ -95,7 +99,7 @@ var Artemis;
|
||||||
controller: ArtemisNavigationController
|
controller: ArtemisNavigationController
|
||||||
})
|
})
|
||||||
.name;
|
.name;
|
||||||
Artemis.log.info("loaded navigation " + Artemis.navigationModule);
|
Artemis.log.debug("loaded navigation " + Artemis.navigationModule);
|
||||||
|
|
||||||
function ArtemisNavigationController($scope, $location, workspace, localStorage, jolokia) {
|
function ArtemisNavigationController($scope, $location, workspace, localStorage, jolokia) {
|
||||||
'ngInject';
|
'ngInject';
|
||||||
|
@ -157,6 +161,9 @@ var Artemis;
|
||||||
if (shouldShowSendMessageTab(workspace)) {
|
if (shouldShowSendMessageTab(workspace)) {
|
||||||
tabs.push(new Nav.HawtioTab(TAB_CONFIG.sendMessage.title, TAB_CONFIG.sendMessage.route));
|
tabs.push(new Nav.HawtioTab(TAB_CONFIG.sendMessage.title, TAB_CONFIG.sendMessage.route));
|
||||||
}
|
}
|
||||||
|
if (shouldShowAddressSendMessageTab(workspace)) {
|
||||||
|
tabs.push(new Nav.HawtioTab(TAB_CONFIG.addressSendMessage.title, TAB_CONFIG.addressSendMessage.route));
|
||||||
|
}
|
||||||
if (shouldShowBrowseMessageTab(workspace)) {
|
if (shouldShowBrowseMessageTab(workspace)) {
|
||||||
tabs.push(new Nav.HawtioTab(TAB_CONFIG.browseQueue.title, TAB_CONFIG.browseQueue.route));
|
tabs.push(new Nav.HawtioTab(TAB_CONFIG.browseQueue.title, TAB_CONFIG.browseQueue.route));
|
||||||
}
|
}
|
||||||
|
@ -185,6 +192,10 @@ var Artemis;
|
||||||
return workspace.hasDomainAndProperties(artemisJmxDomain, {'subcomponent': 'queues'}) && hasQueueinvokeRights(workspace, "sendMessage");
|
return workspace.hasDomainAndProperties(artemisJmxDomain, {'subcomponent': 'queues'}) && hasQueueinvokeRights(workspace, "sendMessage");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function shouldShowAddressSendMessageTab(workspace) {
|
||||||
|
return workspace.hasDomainAndProperties(artemisJmxDomain, {'component': 'addresses'}) && !workspace.hasDomainAndProperties(artemisJmxDomain, {'subcomponent': 'queues'}) && hasQueueinvokeRights(workspace, "sendMessage");
|
||||||
|
}
|
||||||
|
|
||||||
function shouldShowBrowseMessageTab(workspace) {
|
function shouldShowBrowseMessageTab(workspace) {
|
||||||
return workspace.hasDomainAndProperties(artemisJmxDomain, {'subcomponent': 'queues'}) && hasQueueinvokeRights(workspace, "browse") && hasQueueinvokeRights(workspace, "countMessages");
|
return workspace.hasDomainAndProperties(artemisJmxDomain, {'subcomponent': 'queues'}) && hasQueueinvokeRights(workspace, "browse") && hasQueueinvokeRights(workspace, "countMessages");
|
||||||
}
|
}
|
||||||
|
@ -197,7 +208,7 @@ var Artemis;
|
||||||
arguments: [mbean, operation] },
|
arguments: [mbean, operation] },
|
||||||
Core.onSuccess(null));
|
Core.onSuccess(null));
|
||||||
|
|
||||||
Artemis.log.info(operation + "=" + response.value);
|
Artemis.log.debug(operation + "=" + response.value);
|
||||||
return response.value;
|
return response.value;
|
||||||
}
|
}
|
||||||
function hasQueueinvokeRights(workspace, operation) {
|
function hasQueueinvokeRights(workspace, operation) {
|
||||||
|
@ -223,6 +234,7 @@ var Artemis;
|
||||||
when('/artemis/artemisCreateQueue', { template: '<artemis-create-queue></artemis-create-queue>'}).
|
when('/artemis/artemisCreateQueue', { template: '<artemis-create-queue></artemis-create-queue>'}).
|
||||||
when('/artemis/artemisDeleteQueue', { template: '<artemis-delete-queue></artemis-delete-queue>'}).
|
when('/artemis/artemisDeleteQueue', { template: '<artemis-delete-queue></artemis-delete-queue>'}).
|
||||||
when('/artemis/artemisSendMessage', { template: '<artemis-send-message></artemis-send-message>'}).
|
when('/artemis/artemisSendMessage', { template: '<artemis-send-message></artemis-send-message>'}).
|
||||||
|
when('/artemis/artemisAddressSendMessage', { template: '<artemis-address-send-message></artemis-address-send-message>'}).
|
||||||
when('/artemis/artemisBrowseQueue', { template: '<artemis-browse-queue></artemis-browse-queue>'}).
|
when('/artemis/artemisBrowseQueue', { template: '<artemis-browse-queue></artemis-browse-queue>'}).
|
||||||
when('/artemis/artemisBrokerDiagram', { template: '<artemis-broker-diagram></artemis-broker-diagram>'}).
|
when('/artemis/artemisBrokerDiagram', { template: '<artemis-broker-diagram></artemis-broker-diagram>'}).
|
||||||
when('/artemis/artemisStatus', { template: '<artemis-status></artemis-status>'}).
|
when('/artemis/artemisStatus', { template: '<artemis-status></artemis-status>'}).
|
||||||
|
|
|
@ -43,7 +43,7 @@ var Artemis;
|
||||||
|
|
||||||
function configurePreferences(preferencesRegistry, $templateCache, workspace) {
|
function configurePreferences(preferencesRegistry, $templateCache, workspace) {
|
||||||
|
|
||||||
Artemis.log.info("£££££££££££££££££££££££££rwerewrwerwerwe£££££££££££££££");
|
Artemis.log.debug("£££££££££££££££££££££££££rwerewrwerwerwe£££££££££££££££");
|
||||||
var path = 'plugin/preferences.html';
|
var path = 'plugin/preferences.html';
|
||||||
preferencesRegistry.addTab("Artemis", path, function () {
|
preferencesRegistry.addTab("Artemis", path, function () {
|
||||||
return workspace.treeContainsDomainAndProperties("org.apache.activemq.artemis");
|
return workspace.treeContainsDomainAndProperties("org.apache.activemq.artemis");
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
*/
|
*/
|
||||||
var Artemis;
|
var Artemis;
|
||||||
(function (Artemis) {
|
(function (Artemis) {
|
||||||
Artemis.log.info("loading producers");
|
Artemis.log.debug("loading producers");
|
||||||
Artemis._module.component('artemisProducers', {
|
Artemis._module.component('artemisProducers', {
|
||||||
template:
|
template:
|
||||||
`<h1>Browse Consumers
|
`<h1>Browse Consumers
|
||||||
|
@ -130,19 +130,19 @@ var Artemis;
|
||||||
};
|
};
|
||||||
|
|
||||||
selectAddress = function (address) {
|
selectAddress = function (address) {
|
||||||
Artemis.log.info("navigating to address:" + address)
|
Artemis.log.debug("navigating to address:" + address)
|
||||||
artemisAddress.address = { address: address };
|
artemisAddress.address = { address: address };
|
||||||
$location.path("artemis/artemisAddresses");
|
$location.path("artemis/artemisAddresses");
|
||||||
};
|
};
|
||||||
|
|
||||||
selectSession = function (session) {
|
selectSession = function (session) {
|
||||||
Artemis.log.info("navigating to session:" + session)
|
Artemis.log.debug("navigating to session:" + session)
|
||||||
artemisSession.session = { session: session };
|
artemisSession.session = { session: session };
|
||||||
$location.path("artemis/artemisSessions");
|
$location.path("artemis/artemisSessions");
|
||||||
};
|
};
|
||||||
|
|
||||||
if (artemisProducer.producer) {
|
if (artemisProducer.producer) {
|
||||||
Artemis.log.info("navigating to producer = " + artemisProducer.producer.sessionID);
|
Artemis.log.debug("navigating to producer = " + artemisProducer.producer.sessionID);
|
||||||
ctrl.filter.values.field = ctrl.filter.fieldOptions[1].id;
|
ctrl.filter.values.field = ctrl.filter.fieldOptions[1].id;
|
||||||
ctrl.filter.values.operation = ctrl.filter.operationOptions[0].id;
|
ctrl.filter.values.operation = ctrl.filter.operationOptions[0].id;
|
||||||
ctrl.filter.values.value = artemisProducer.producer.sessionID;
|
ctrl.filter.values.value = artemisProducer.producer.sessionID;
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
*/
|
*/
|
||||||
var Artemis;
|
var Artemis;
|
||||||
(function (Artemis) {
|
(function (Artemis) {
|
||||||
//Artemis.log.info("loading addresses");
|
//Artemis.log.debug("loading addresses");
|
||||||
Artemis._module.component('artemisQueues', {
|
Artemis._module.component('artemisQueues', {
|
||||||
template:
|
template:
|
||||||
`<h1>Browse Queues
|
`<h1>Browse Queues
|
||||||
|
@ -167,14 +167,14 @@ var Artemis;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (artemisQueue.queue) {
|
if (artemisQueue.queue) {
|
||||||
Artemis.log.info("navigating to queue = " + artemisQueue.queue.queue);
|
Artemis.log.debug("navigating to queue = " + artemisQueue.queue.queue);
|
||||||
ctrl.filter.values.field = ctrl.filter.fieldOptions[1].id;
|
ctrl.filter.values.field = ctrl.filter.fieldOptions[1].id;
|
||||||
ctrl.filter.values.operation = ctrl.filter.operationOptions[0].id;
|
ctrl.filter.values.operation = ctrl.filter.operationOptions[0].id;
|
||||||
ctrl.filter.values.value = artemisQueue.queue.queue;
|
ctrl.filter.values.value = artemisQueue.queue.queue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (artemisAddress.address) {
|
if (artemisAddress.address) {
|
||||||
Artemis.log.info("navigating to queue = " + artemisAddress.address.address);
|
Artemis.log.debug("navigating to queue = " + artemisAddress.address.address);
|
||||||
ctrl.filter.values.field = ctrl.filter.fieldOptions[3].id;
|
ctrl.filter.values.field = ctrl.filter.fieldOptions[3].id;
|
||||||
ctrl.filter.values.operation = ctrl.filter.operationOptions[0].id;
|
ctrl.filter.values.operation = ctrl.filter.operationOptions[0].id;
|
||||||
ctrl.filter.values.value = artemisAddress.address.address;
|
ctrl.filter.values.value = artemisAddress.address.address;
|
||||||
|
@ -187,19 +187,19 @@ var Artemis;
|
||||||
$location.path("artemis/operations").search({"tab": "artemis", "nid": getQueuesNid(item, $location)});
|
$location.path("artemis/operations").search({"tab": "artemis", "nid": getQueuesNid(item, $location)});
|
||||||
};
|
};
|
||||||
selectAddress = function (address) {
|
selectAddress = function (address) {
|
||||||
Artemis.log.info("navigating to address:" + address)
|
Artemis.log.debug("navigating to address:" + address)
|
||||||
artemisAddress.address = { address: address };
|
artemisAddress.address = { address: address };
|
||||||
$location.path("artemis/artemisAddresses");
|
$location.path("artemis/artemisAddresses");
|
||||||
};
|
};
|
||||||
function getQueuesNid(item, $location) {
|
function getQueuesNid(item, $location) {
|
||||||
var rootNID = getRootNid($location);
|
var rootNID = getRootNid($location);
|
||||||
var targetNID = rootNID + "addresses-" + item.address + "-queues-" + item.routingType.toLowerCase() + "-" + item.name;
|
var targetNID = rootNID + "addresses-" + item.address + "-queues-" + item.routingType.toLowerCase() + "-" + item.name;
|
||||||
Artemis.log.info("targetNID=" + targetNID);
|
Artemis.log.debug("targetNID=" + targetNID);
|
||||||
return targetNID;
|
return targetNID;
|
||||||
}
|
}
|
||||||
function getRootNid($location) {
|
function getRootNid($location) {
|
||||||
var currentNid = $location.search()['nid'];
|
var currentNid = $location.search()['nid'];
|
||||||
Artemis.log.info("current nid=" + currentNid);
|
Artemis.log.debug("current nid=" + currentNid);
|
||||||
var firstDash = currentNid.indexOf('-');
|
var firstDash = currentNid.indexOf('-');
|
||||||
var secondDash = currentNid.indexOf('-', firstDash + 1);
|
var secondDash = currentNid.indexOf('-', firstDash + 1);
|
||||||
var thirdDash = currentNid.indexOf('-', secondDash + 1);
|
var thirdDash = currentNid.indexOf('-', secondDash + 1);
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
/// <reference path="tree.component.ts"/>
|
/// <reference path="tree.component.ts"/>
|
||||||
var Artemis;
|
var Artemis;
|
||||||
(function (Artemis) {
|
(function (Artemis) {
|
||||||
Artemis.log.info("loading send message");
|
Artemis.log.debug("loading send message");
|
||||||
Artemis._module.component('artemisSendMessage', {
|
Artemis._module.component('artemisSendMessage', {
|
||||||
template:
|
template:
|
||||||
`<h1>Send Message
|
`<h1>Send Message
|
||||||
|
@ -28,11 +28,11 @@ var Artemis;
|
||||||
</button>
|
</button>
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<div class="alert alert-warning" ng-show="$ctrl.noCredentials">
|
<div class="alert alert-warning" ng-show="$ctrl.message.noCredentials">
|
||||||
<span class="pficon pficon-warning-triangle-o"></span>
|
<span class="pficon pficon-warning-triangle-o"></span>
|
||||||
<strong>No credentials set for endpoint!</strong>
|
<strong>No credentials set for endpoint!</strong>
|
||||||
Please set your username and password in the
|
Please set your username and password in the
|
||||||
<a href="#" class="alert-link" ng-click="$ctrl.openPrefs()">Preferences</a> page.
|
<a href="#" class="alert-link" ng-click="$ctrl.message.openPrefs()">Preferences</a> page.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row artemis-message-configuration">
|
<div class="row artemis-message-configuration">
|
||||||
|
@ -41,7 +41,7 @@ var Artemis;
|
||||||
<form>
|
<form>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Durable </label>
|
<label>Durable </label>
|
||||||
<input id="durable" type="checkbox" ng-model="$ctrl.durable" value="true">
|
<input id="durable" type="checkbox" ng-model="$ctrl.message.durable" value="true">
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -49,10 +49,10 @@ var Artemis;
|
||||||
|
|
||||||
<h3>Headers</h3>
|
<h3>Headers</h3>
|
||||||
|
|
||||||
<div class="form-group" ng-if="$ctrl.headers.length > 0">
|
<div class="form-group" ng-if="$ctrl.message.headers.length > 0">
|
||||||
<table class="scr-component-references-table table">
|
<table class="scr-component-references-table table">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="input-group" ng-repeat="header in $ctrl.headers">
|
<tr class="input-group" ng-repeat="header in $ctrl.message.headers">
|
||||||
<td><input type="text" class="form-control" ng-model="header.name" placeholder="Name" autocomplete="off" id="name"></td>
|
<td><input type="text" class="form-control" ng-model="header.name" placeholder="Name" autocomplete="off" id="name"></td>
|
||||||
<td><input type="text" class="form-control" ng-model="header.value" placeholder="Value" autocomplete="off" id="value"></td>
|
<td><input type="text" class="form-control" ng-model="header.value" placeholder="Value" autocomplete="off" id="value"></td>
|
||||||
<td><div class="input-group-prepend">
|
<td><div class="input-group-prepend">
|
||||||
|
@ -66,14 +66,14 @@ var Artemis;
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<button type="button" class="btn btn-primary artemis-add-message-button" ng-click="$ctrl.addHeader()">Add Header</button>
|
<button type="button" class="btn btn-primary artemis-add-message-button" ng-click="$ctrl.message.addHeader()">Add Header</button>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Body</h3>
|
<h3>Body</h3>
|
||||||
|
|
||||||
<form>
|
<form>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div hawtio-editor="$ctrl.message" mode="codeMirrorOptions.mode.name"></div>
|
<div hawtio-editor="$ctrl.message.message" mode="codeMirrorOptions.mode.name"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<select class="form-control artemis-send-message-format" ng-model="codeMirrorOptions.mode.name">
|
<select class="form-control artemis-send-message-format" ng-model="codeMirrorOptions.mode.name">
|
||||||
|
@ -87,7 +87,7 @@ var Artemis;
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<button type="button" class="btn btn-primary artemis-send-message-button" ng-click="$ctrl.sendMessage($ctrl.durable)">Send message</button>
|
<button type="button" class="btn btn-primary artemis-send-message-button" ng-click="$ctrl.message.sendMessage($ctrl.durable)">Send message</button>
|
||||||
</p>
|
</p>
|
||||||
<script type="text/ng-template" id="send-message-instructions.html">
|
<script type="text/ng-template" id="send-message-instructions.html">
|
||||||
<div>
|
<div>
|
||||||
|
@ -103,9 +103,9 @@ var Artemis;
|
||||||
controller: SendMessageController
|
controller: SendMessageController
|
||||||
})
|
})
|
||||||
.name;
|
.name;
|
||||||
Artemis.log.info("loaded queue " + Artemis.createQueueModule);
|
Artemis.log.debug("loaded queue " + Artemis.createQueueModule);
|
||||||
|
|
||||||
function SendMessageController($route, $scope, $element, $timeout, workspace, jolokia, localStorage, $location, artemisMessage) {
|
function SendMessageController($route, $scope, $element, $timeout, workspace, jolokia, localStorage, $location, artemisMessage, messageCreator) {
|
||||||
Core.initPreferenceScope($scope, localStorage, {
|
Core.initPreferenceScope($scope, localStorage, {
|
||||||
'durable': {
|
'durable': {
|
||||||
'value': true,
|
'value': true,
|
||||||
|
@ -113,134 +113,9 @@ var Artemis;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
var ctrl = this;
|
var ctrl = this;
|
||||||
ctrl.noCredentials = false;
|
ctrl.messageCreator = messageCreator;
|
||||||
ctrl.durable = true;
|
ctrl.message = ctrl.messageCreator.createNewMessage($scope, $location, $route, localStorage, artemisMessage, workspace, $element, $timeout, jolokia);
|
||||||
ctrl.message = "";
|
|
||||||
ctrl.headers = [];
|
|
||||||
// bind model values to search params...
|
|
||||||
Core.bindModelToSearchParam($scope, $location, "tab", "subtab", "compose");
|
|
||||||
Core.bindModelToSearchParam($scope, $location, "searchText", "q", "");
|
|
||||||
// only reload the page if certain search parameters change
|
|
||||||
Core.reloadWhenParametersChange($route, $scope, $location);
|
|
||||||
ctrl.checkCredentials = function () {
|
|
||||||
ctrl.noCredentials = (Core.isBlank(localStorage['artemisUserName']) || Core.isBlank(localStorage['artemisPassword']));
|
|
||||||
};
|
|
||||||
if ($location.path().indexOf('artemis') > -1) {
|
|
||||||
ctrl.localStorage = localStorage;
|
|
||||||
$scope.$watch('localStorage.artemisUserName', ctrl.checkCredentials);
|
|
||||||
$scope.$watch('localStorage.artemisPassword', ctrl.checkCredentials);
|
|
||||||
//prefill if it's a resent
|
|
||||||
if (artemisMessage.message !== null) {
|
|
||||||
ctrl.message = artemisMessage.message.bodyText;
|
|
||||||
if (artemisMessage.message.PropertiesText !== null) {
|
|
||||||
for (var p in artemisMessage.message.StringProperties) {
|
|
||||||
ctrl.headers.push({name: p, value: artemisMessage.message.StringProperties[p]});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// always reset at the end
|
|
||||||
artemisMessage.message = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.openPrefs = function () {
|
|
||||||
Artemis.log.info("opening prefs");
|
|
||||||
$location.path('/preferences').search({'pref': 'Artemis'});
|
|
||||||
}
|
|
||||||
|
|
||||||
var LANGUAGE_FORMAT_PREFERENCE = "defaultLanguageFormat";
|
|
||||||
var sourceFormat = workspace.getLocalStorage(LANGUAGE_FORMAT_PREFERENCE) || "javascript";
|
|
||||||
|
|
||||||
$scope.codeMirrorOptions = CodeEditor.createEditorSettings({
|
|
||||||
mode: {
|
|
||||||
name: sourceFormat
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$scope.$on('hawtioEditor_default_instance', function (event, codeMirror) {
|
|
||||||
$scope.codeMirror = codeMirror;
|
|
||||||
});
|
|
||||||
|
|
||||||
ctrl.addHeader = function () {
|
|
||||||
ctrl.headers.push({name: "", value: ""});
|
|
||||||
// lets set the focus to the last header
|
|
||||||
if ($element) {
|
|
||||||
$timeout(function () {
|
|
||||||
var lastHeader = $element.find("input.headerName").last();
|
|
||||||
lastHeader.focus();
|
|
||||||
}, 100);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.removeHeader = function (header) {
|
|
||||||
var index = ctrl.headers.indexOf(header);
|
|
||||||
ctrl.headers.splice(index, 1);
|
|
||||||
};
|
|
||||||
|
|
||||||
ctrl.defaultHeaderNames = function () {
|
|
||||||
var answer = [];
|
|
||||||
|
|
||||||
function addHeaderSchema(schema) {
|
|
||||||
angular.forEach(schema.definitions.headers.properties, function (value, name) {
|
|
||||||
answer.push(name);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
addHeaderSchema(Artemis.jmsHeaderSchema);
|
|
||||||
return answer;
|
|
||||||
};
|
|
||||||
|
|
||||||
function operationSuccess() {
|
|
||||||
Core.notification("success", "Message sent!");
|
|
||||||
ctrl.headers = [];
|
|
||||||
ctrl.message = "";
|
|
||||||
};
|
|
||||||
|
|
||||||
function onError(response) {
|
|
||||||
Core.notification("error", "Could not send message: " + response.error);
|
|
||||||
}
|
|
||||||
|
|
||||||
ctrl.formatMessage = function () {
|
|
||||||
CodeEditor.autoFormatEditor($scope.codeMirror);
|
|
||||||
};
|
|
||||||
ctrl.sendMessage = function (durable) {
|
|
||||||
var body = ctrl.message;
|
|
||||||
Artemis.log.info(body);
|
|
||||||
doSendMessage(ctrl.durable, body);
|
|
||||||
};
|
|
||||||
|
|
||||||
function doSendMessage(durable, body) {
|
|
||||||
var selection = workspace.selection;
|
|
||||||
if (selection) {
|
|
||||||
var mbean = selection.objectName;
|
|
||||||
if (mbean) {
|
|
||||||
var headers = null;
|
|
||||||
if (ctrl.headers.length) {
|
|
||||||
headers = {};
|
|
||||||
angular.forEach(ctrl.headers, function (object) {
|
|
||||||
var key = object.name;
|
|
||||||
if (key) {
|
|
||||||
headers[key] = object.value;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Artemis.log.debug("About to send headers: " + JSON.stringify(headers));
|
|
||||||
}
|
|
||||||
|
|
||||||
var user = ctrl.localStorage["artemisUserName"];
|
|
||||||
var pwd = ctrl.localStorage["artemisPassword"];
|
|
||||||
|
|
||||||
if (!headers) {
|
|
||||||
headers = {};
|
|
||||||
}
|
|
||||||
var type = 3;
|
|
||||||
Artemis.log.debug(headers);
|
|
||||||
Artemis.log.debug(type);
|
|
||||||
Artemis.log.debug(body);
|
|
||||||
Artemis.log.debug(durable);
|
|
||||||
jolokia.execute(mbean, "sendMessage(java.util.Map, int, java.lang.String, boolean, java.lang.String, java.lang.String)", headers, type, body, durable, user, pwd, Core.onSuccess(operationSuccess, { error: onError }));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
SendMessageController.$inject = ['$route', '$scope', '$element', '$timeout', 'workspace', 'jolokia', 'localStorage', '$location', 'artemisMessage'];
|
SendMessageController.$inject = ['$route', '$scope', '$element', '$timeout', 'workspace', 'jolokia', 'localStorage', '$location', 'artemisMessage', 'messageCreator'];
|
||||||
|
|
||||||
})(Artemis || (Artemis = {}));
|
})(Artemis || (Artemis = {}));
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
*/
|
*/
|
||||||
var Artemis;
|
var Artemis;
|
||||||
(function (Artemis) {
|
(function (Artemis) {
|
||||||
Artemis.log.info("loading sessions");
|
Artemis.log.debug("loading sessions");
|
||||||
Artemis._module.component('artemisSessions', {
|
Artemis._module.component('artemisSessions', {
|
||||||
template:
|
template:
|
||||||
`<h1>Browse Sessions
|
`<h1>Browse Sessions
|
||||||
|
@ -156,32 +156,32 @@ var Artemis;
|
||||||
};
|
};
|
||||||
|
|
||||||
selectConnection = function (connection) {
|
selectConnection = function (connection) {
|
||||||
Artemis.log.info("navigating to connection:" + connection)
|
Artemis.log.debug("navigating to connection:" + connection)
|
||||||
artemisSession.session = { connectionID: connection };
|
artemisSession.session = { connectionID: connection };
|
||||||
$location.path("artemis/artemisConnections");
|
$location.path("artemis/artemisConnections");
|
||||||
};
|
};
|
||||||
|
|
||||||
selectConsumers = function (session) {
|
selectConsumers = function (session) {
|
||||||
Artemis.log.info("navigating to consumers:" + session)
|
Artemis.log.debug("navigating to consumers:" + session)
|
||||||
artemisConsumer.consumer = { sessionID: session };
|
artemisConsumer.consumer = { sessionID: session };
|
||||||
$location.path("artemis/artemisConsumers");
|
$location.path("artemis/artemisConsumers");
|
||||||
};
|
};
|
||||||
|
|
||||||
selectProducers = function (session) {
|
selectProducers = function (session) {
|
||||||
Artemis.log.info("navigating to producers:" + session)
|
Artemis.log.debug("navigating to producers:" + session)
|
||||||
artemisProducer.producer = { sessionID: session };
|
artemisProducer.producer = { sessionID: session };
|
||||||
$location.path("artemis/artemisProducers");
|
$location.path("artemis/artemisProducers");
|
||||||
};
|
};
|
||||||
|
|
||||||
if (artemisConnection.connection) {
|
if (artemisConnection.connection) {
|
||||||
Artemis.log.info("navigating to connection = " + artemisConnection.connection.connectionID);
|
Artemis.log.debug("navigating to connection = " + artemisConnection.connection.connectionID);
|
||||||
ctrl.filter.values.field = ctrl.filter.fieldOptions[1].id;
|
ctrl.filter.values.field = ctrl.filter.fieldOptions[1].id;
|
||||||
ctrl.filter.values.operation = ctrl.filter.operationOptions[0].id;
|
ctrl.filter.values.operation = ctrl.filter.operationOptions[0].id;
|
||||||
ctrl.filter.values.value = artemisConnection.connection.connectionID;
|
ctrl.filter.values.value = artemisConnection.connection.connectionID;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (artemisSession.session) {
|
if (artemisSession.session) {
|
||||||
Artemis.log.info("navigating to session = " + artemisSession.session.session);
|
Artemis.log.debug("navigating to session = " + artemisSession.session.session);
|
||||||
ctrl.filter.values.field = ctrl.filter.fieldOptions[0].id;
|
ctrl.filter.values.field = ctrl.filter.fieldOptions[0].id;
|
||||||
ctrl.filter.values.operation = ctrl.filter.operationOptions[0].id;
|
ctrl.filter.values.operation = ctrl.filter.operationOptions[0].id;
|
||||||
ctrl.filter.values.value = artemisSession.session.session;
|
ctrl.filter.values.value = artemisSession.session.session;
|
||||||
|
@ -194,7 +194,7 @@ var Artemis;
|
||||||
}
|
}
|
||||||
|
|
||||||
ctrl.closeSession = function () {
|
ctrl.closeSession = function () {
|
||||||
Artemis.log.info("closing session: " + ctrl.sessionToDelete);
|
Artemis.log.debug("closing session: " + ctrl.sessionToDelete);
|
||||||
if (mbean) {
|
if (mbean) {
|
||||||
jolokia.request({ type: 'exec',
|
jolokia.request({ type: 'exec',
|
||||||
mbean: mbean,
|
mbean: mbean,
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
/// <reference path="tree.component.ts"/>
|
/// <reference path="tree.component.ts"/>
|
||||||
var Artemis;
|
var Artemis;
|
||||||
(function (Artemis) {
|
(function (Artemis) {
|
||||||
Artemis.log.info("loading status");
|
Artemis.log.debug("loading status");
|
||||||
Artemis._module.component('artemisStatus', {
|
Artemis._module.component('artemisStatus', {
|
||||||
template:
|
template:
|
||||||
`<h1>Current Status
|
`<h1>Current Status
|
||||||
|
@ -62,7 +62,7 @@ var Artemis;
|
||||||
controller: StatusController
|
controller: StatusController
|
||||||
})
|
})
|
||||||
.name;
|
.name;
|
||||||
Artemis.log.info("loaded address " + Artemis.addressModule);
|
Artemis.log.debug("loaded address " + Artemis.addressModule);
|
||||||
|
|
||||||
function StatusController($scope, workspace, jolokia, localStorage, $interval) {
|
function StatusController($scope, workspace, jolokia, localStorage, $interval) {
|
||||||
var ctrl = this;
|
var ctrl = this;
|
||||||
|
|
|
@ -0,0 +1,182 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||||
|
* (the "License"); you may not use this file except in compliance with
|
||||||
|
* the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
var Artemis;
|
||||||
|
(function (Artemis) {
|
||||||
|
|
||||||
|
Artemis._module.factory('messageCreator',
|
||||||
|
function () {
|
||||||
|
return {
|
||||||
|
createNewMessage: function (scope, location, route, localStorage, artemisMessage, workspace, element, timeout, jolokia) {
|
||||||
|
return new message(scope, location, route, localStorage, artemisMessage, workspace, element, timeout, jolokia);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
function message(scope, location, route, localStorage, artemisMessage, workspace, element, timeout, jolokia) {
|
||||||
|
this.noCredentials = false,
|
||||||
|
this.durable = true,
|
||||||
|
this.message = "",
|
||||||
|
this.headers = [],
|
||||||
|
this.scope = scope;
|
||||||
|
this.element = element;
|
||||||
|
this.timeout = timeout;
|
||||||
|
this.workspace = workspace;
|
||||||
|
this.jolokia = jolokia;
|
||||||
|
this.artemisMessage = artemisMessage;
|
||||||
|
// bind model values to search params...
|
||||||
|
Core.bindModelToSearchParam(scope, location, "tab", "subtab", "compose");
|
||||||
|
Core.bindModelToSearchParam(scope, location, "searchText", "q", "");
|
||||||
|
// only reload the page if certain search parameters change
|
||||||
|
Core.reloadWhenParametersChange(route, scope, location, localStorage);
|
||||||
|
if (location.path().indexOf('artemis') > -1) {
|
||||||
|
this.localStorage = localStorage;
|
||||||
|
scope.$watch('localStorage.artemisUserName', this.checkCredentials);
|
||||||
|
scope.$watch('localStorage.artemisPassword', this.checkCredentials);
|
||||||
|
//prefill if it's a resend
|
||||||
|
if (artemisMessage.message !== null) {
|
||||||
|
this.message = artemisMessage.message.bodyText;
|
||||||
|
if (artemisMessage.message.PropertiesText !== null) {
|
||||||
|
for (var p in artemisMessage.message.StringProperties) {
|
||||||
|
this.headers.push({name: p, value: artemisMessage.message.StringProperties[p]});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// always reset at the end
|
||||||
|
|
||||||
|
artemisMessage.message = null;
|
||||||
|
}
|
||||||
|
var LANGUAGE_FORMAT_PREFERENCE = "defaultLanguageFormat";
|
||||||
|
var sourceFormat = workspace.getLocalStorage(LANGUAGE_FORMAT_PREFERENCE) || "javascript";
|
||||||
|
|
||||||
|
scope.codeMirrorOptions = CodeEditor.createEditorSettings({
|
||||||
|
mode: {
|
||||||
|
name: sourceFormat
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
scope.$on('hawtioEditor_default_instance', function (event, codeMirror) {
|
||||||
|
scope.codeMirror = codeMirror;
|
||||||
|
});
|
||||||
|
|
||||||
|
checkCredentials = function () {
|
||||||
|
this.noCredentials = (Core.isBlank(localStorage['artemisUserName']) || Core.isBlank(localStorage['artemisPassword']));
|
||||||
|
};
|
||||||
|
this.openPrefs = function (location) {
|
||||||
|
Artemis.log.debug("opening prefs");
|
||||||
|
location.path('/preferences').search({'pref': 'Artemis'});
|
||||||
|
};
|
||||||
|
this.addHeader = function () {
|
||||||
|
this.headers.push({name: "", value: ""});
|
||||||
|
// lets set the focus to the last header
|
||||||
|
var element = this.element;
|
||||||
|
if (element) {
|
||||||
|
this.timeout(function () {
|
||||||
|
var lastHeader = element.find("input.headerName").last();
|
||||||
|
lastHeader.focus();
|
||||||
|
}, 100);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.removeHeader = function (header) {
|
||||||
|
var index = this.headers.indexOf(header);
|
||||||
|
this.headers.splice(index, 1);
|
||||||
|
};
|
||||||
|
this.defaultHeaderNames = function () {
|
||||||
|
var answer = [];
|
||||||
|
|
||||||
|
function addHeaderSchema(schema) {
|
||||||
|
angular.forEach(schema.definitions.headers.properties, function (value, name) {
|
||||||
|
answer.push(name);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
addHeaderSchema(Artemis.jmsHeaderSchema);
|
||||||
|
return answer;
|
||||||
|
};
|
||||||
|
this.operationSuccess = function () {
|
||||||
|
Core.notification("success", "Message sent!");
|
||||||
|
this.headers = [];
|
||||||
|
this.message = "";
|
||||||
|
};
|
||||||
|
this.onError = function (response) {
|
||||||
|
Core.notification("error", "Could not send message: " + response.error);
|
||||||
|
};
|
||||||
|
this.formatMessage = function () {
|
||||||
|
CodeEditor.autoFormatEditor(this.scope.codeMirror);
|
||||||
|
};
|
||||||
|
this.sendMessage = function (durable) {
|
||||||
|
var body = this.message;
|
||||||
|
Artemis.log.debug(body);
|
||||||
|
this.doSendMessage(this.durable, body);
|
||||||
|
};
|
||||||
|
this.doSendMessage = function(durable, body) {
|
||||||
|
var selection = this.workspace.selection;
|
||||||
|
if (selection) {
|
||||||
|
var mbean = selection.objectName;
|
||||||
|
if (mbean) {
|
||||||
|
var headers = null;
|
||||||
|
if (this.headers.length) {
|
||||||
|
headers = {};
|
||||||
|
angular.forEach(this.headers, function (object) {
|
||||||
|
var key = object.name;
|
||||||
|
if (key) {
|
||||||
|
headers[key] = object.value;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Artemis.log.debug("About to send headers: " + JSON.stringify(headers));
|
||||||
|
}
|
||||||
|
|
||||||
|
var user = this.localStorage["artemisUserName"];
|
||||||
|
var pwd = this.localStorage["artemisPassword"];
|
||||||
|
|
||||||
|
if (!headers) {
|
||||||
|
headers = {};
|
||||||
|
}
|
||||||
|
var type = 3;
|
||||||
|
Artemis.log.debug(headers);
|
||||||
|
Artemis.log.debug(type);
|
||||||
|
Artemis.log.debug(body);
|
||||||
|
Artemis.log.debug(durable);
|
||||||
|
this.jolokia.execute(mbean, "sendMessage(java.util.Map, int, java.lang.String, boolean, java.lang.String, java.lang.String)", headers, type, body, durable, user, pwd, Core.onSuccess(this.operationSuccess(), { error: this.onError }));
|
||||||
|
Core.$apply(this.scope);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
})(Artemis || (Artemis = {}));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue