Skip to content

Commit

Permalink
added a basic implementation for activemq of #5 - could use some layo…
Browse files Browse the repository at this point in the history
…ut lurve :) no smart defaults on the header names; nor auto-typed of the value inputs or anything yet, but at least it works!
  • Loading branch information
jstrachan committed Apr 23, 2013
1 parent 1ddc153 commit fd0decc
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 3 deletions.
20 changes: 18 additions & 2 deletions hawtio-web/src/main/webapp/app/camel/html/sendMessage.html
Expand Up @@ -2,10 +2,11 @@
<div class="control-group">
<button id="sendButton" type="submit" class="btn btn-info pull-left" ng-click="sendMessage()">Send Message</button>

<div class="pull-right">
<label class="control-label" for="sourceFormat" title="The text format to use for the message payload">message format</label>
<button id="addHeaderButton" class="btn" ng-click="addHeader()" title="Add a new message header">Add Header</button>

<div class="pull-right">
<div class="controls">
<label class="control-label" for="sourceFormat" title="The text format to use for the message payload">message format</label>
<select ng-model="codeMirrorOptions.mode.name" id="sourceFormat">
<option value="javascript">JSON</option>
<option value="text">Plain Text</option>
Expand All @@ -18,6 +19,21 @@
</div>
</div>
</div>
<div class="control-group">
<table>
<tr ng-repeat="header in headers">
<td>
<input type="text" ng-model="header.name" placeholder="Name of the message header">
</td>
<td>
<input type="text" ng-model="header.value" placeholder="Value of the message header">
</td>
<td>
<button ng-click="removeHeader(header)" title="Removes this message header"><i class="icon-remove"></i></button>
</td>
</tr>
</table>
</div>
<div class="control-group">
<textarea ui-codemirror="codeMirrorOptions" ng-model="message"></textarea>
</div>
Expand Down
30 changes: 29 additions & 1 deletion hawtio-web/src/main/webapp/app/camel/js/send.ts
Expand Up @@ -18,6 +18,16 @@ module Camel {
};
$scope.codeMirrorOptions = CodeEditor.createEditorSettings(options);

$scope.headers = [];

$scope.addHeader = () => {
$scope.headers.push({name: "", value: ""});
};

$scope.removeHeader = (header) => {
$scope.headers = $scope.headers.remove(header);
};

// TODO Find out what this does
$scope.$watch('workspace.selection', function () {
workspace.moveIfViewInvalid();
Expand Down Expand Up @@ -47,6 +57,17 @@ module Camel {
if (selection) {
var mbean = selection.objectName;
if (mbean) {
var headers = null;
if ($scope.headers.length) {
headers = {};
angular.forEach($scope.headers, (object) => {
var key = object.name;
if (key) {
headers[key] = object.value;
}
});
}

var jolokia = workspace.jolokia;
// if camel then use a different operation on the camel context mbean
if (selection.domain === "org.apache.camel") {
Expand All @@ -58,7 +79,14 @@ module Camel {
notification("error", "Could not find CamelContext MBean!");
}
} else {
jolokia.execute(mbean, "sendTextMessage(java.lang.String, java.lang.String, java.lang.String)", body, localStorage["activemqUserName"], localStorage["activemqPassword"], onSuccess(sendWorked));
var user = localStorage["activemqUserName"];
var pwd = localStorage["activemqPassword"];
var callback = onSuccess(sendWorked);
if (headers) {
jolokia.execute(mbean, "sendTextMessage(java.util.Map, java.lang.String, java.lang.String, java.lang.String)", headers, body, user, pwd, callback);
} else {
jolokia.execute(mbean, "sendTextMessage(java.lang.String, java.lang.String, java.lang.String)", body, user, pwd, callback);
}
}
}
}
Expand Down

0 comments on commit fd0decc

Please sign in to comment.