<script src="http://code.angularjs.org/angular-0.9.12.min.js" ng:autobind></script>
<body>
<script>
- function GearmanCntl($xhr) {
+ function GearmanCntl($xhr,$location) {
var self = this;
-
+
this.status_update = function() {
$xhr('JSON', '/_g/status?callback=JSON_CALLBACK', function(code,response) {
self.g = response;
});
}
- this.status_update();
+ this.status_update();
+ setInterval( this.status_update, 5000 );
+
+ var a = $location.hashPath.split('/');
+ self.function_name = a[0];
+ self.args = a[1];
this.fetch = function() {
self.clear();
- self.url = '/g/' + self.function + '/' + self.args + '?callback=JSON_CALLBACK';
+ $location.hashPath = self.function_name + '/' + self.args;
+ self.url = '/g/' + $location.hashPath + '?callback=JSON_CALLBACK';
$xhr('JSON', self.url, function(code, response) {
self.code = code;
self.response = response;
self.response = null;
};
}
- GearmanCntl.$inject = ['$xhr'];
+ GearmanCntl.$inject = ['$xhr','$location'];
</script>
<div ng:controller="GearmanCntl">
- <select name="function">
+ <select name="function_name">
<option ng:repeat="f in g.status" ng:show="f.available" value="{{f.function}}">{{f.function}}</option>
<input type="text" name="args" value="127.0.0.1" size="40"/>
<button ng:click="fetch()">fetch</button>
<button ng:click="clear()">clear</button>
+ <table ng:show="response.columns">
+ <tr><th ng:repeat="c in response.columns">{{c}}</th></tr>
+ <tr ng:repeat="r in response.rows">
+ <td ng:repeat="v in r">{{v}}</td>
+ </tr>
+ </table>
+
<pre>
url={{url}}
code={{code}}
<table>
<tr><th>function</th><th>total</th><th>running</th><th>available</th></tr>
-<tr ng:repeat="f in g.status">
+<tr ng:repeat="f in g.status.$orderBy('function')">
<td>{{f.function}}</td>
<td>{{f.total}}</td>
<td>{{f.running}}</td>