banter 1.4.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.travis.yml +1 -1
- data/Gemfile +1 -4
- data/README.md +0 -33
- data/Rakefile +0 -28
- data/banter.gemspec +2 -5
- data/lib/banter.rb +1 -1
- data/lib/banter/configuration.rb +2 -4
- data/lib/banter/notifier.rb +16 -0
- data/lib/banter/publisher.rb +1 -1
- data/lib/banter/railtie.rb +0 -4
- data/lib/banter/server/client_queue_listener.rb +4 -37
- data/lib/banter/server/rabbit_mq_subscriber.rb +6 -6
- data/lib/banter/server/subscriber_server.rb +0 -13
- data/lib/banter/version.rb +1 -1
- data/spec/banter/notifier_spec.rb +40 -0
- data/spec/banter/server/client_queue_listener_spec.rb +36 -84
- data/spec/banter/server/rabbitmq_subscriber_spec.rb +14 -10
- data/spec/banter/server/subscriber_server_spec.rb +0 -60
- data/spec/banter/subscriber_spec.rb +0 -81
- data/spec/spec_helper.rb +1 -8
- data/spec/support/test_notifier.rb +17 -0
- metadata +33 -100
- data/.ruby-version +0 -1
- data/lib/banter/web.rb +0 -34
- data/lib/banter/web/application.rb +0 -85
- data/lib/banter/web/helpers.rb +0 -13
- data/lib/banter/web/models/banter_message.rb +0 -124
- data/lib/banter/web/models/banter_worker.rb +0 -72
- data/lib/banter/web/serializers/banter_message_serializer.rb +0 -35
- data/lib/banter/web/serializers/banter_worker_serializer.rb +0 -40
- data/lib/banter/web/serializers/subscriber_serializer.rb +0 -26
- data/spec/banter/web/application_spec.rb +0 -181
- data/spec/banter/web/serializers/banter_message_serializer_spec.rb +0 -42
- data/spec/banter/web/serializers/banter_worker_serializer_spec.rb +0 -44
- data/spec/factories/banter_messages.rb +0 -28
- data/spec/factories/banter_workers.rb +0 -17
- data/spec/mongoid.yml +0 -7
- data/web/assets/javascripts/banter.js +0 -449
- data/web/assets/javascripts/dashboard_app/app.coffee +0 -4
- data/web/assets/javascripts/dashboard_app/controllers/message_controller.coffee +0 -28
- data/web/assets/javascripts/dashboard_app/controllers/messages_controller.coffee +0 -58
- data/web/assets/javascripts/dashboard_app/controllers/subscribers_controller.coffee +0 -25
- data/web/assets/javascripts/dashboard_app/controllers/worker_controller.coffee +0 -30
- data/web/assets/javascripts/dashboard_app/controllers/workers_list_controller.coffee +0 -28
- data/web/assets/javascripts/dashboard_app/routes.coffee +0 -82
- data/web/assets/javascripts/dashboard_app/services/common_methods_service.coffee +0 -6
- data/web/assets/javascripts/dashboard_app/services/message_methods_service.coffee +0 -18
- data/web/assets/javascripts/dashboard_app/services/messages_service.coffee +0 -17
- data/web/assets/javascripts/dashboard_app/services/subscribers_service.coffee +0 -8
- data/web/assets/javascripts/dashboard_app/services/worker_methods_service.coffee +0 -11
- data/web/assets/javascripts/dashboard_app/services/worker_service.coffee +0 -15
- data/web/assets/javascripts/ng-prettyjson.js +0 -15
- data/web/assets/stylesheets/banter.css +0 -78
- data/web/views/_message.haml +0 -74
- data/web/views/_messages.haml +0 -77
- data/web/views/_subscribers.haml +0 -22
- data/web/views/_worker.haml +0 -52
- data/web/views/_workers_list.haml +0 -35
- data/web/views/index.haml +0 -19
- data/web/views/layout.haml +0 -51
@@ -1,28 +0,0 @@
|
|
1
|
-
angular.module('dashboardApp').controller 'messageController', ($scope, $rootScope, $http, $routeParams, $timeout, message, messagesService, commonMethodsService, messageMethodsService) ->
|
2
|
-
commonMethodsService.setup($scope)
|
3
|
-
messageMethodsService.setup($scope)
|
4
|
-
$scope.showBacktrace = false
|
5
|
-
$scope.message = message
|
6
|
-
|
7
|
-
$rootScope.$on 'start-messageController', ->
|
8
|
-
$scope.resumeUpdating() if autoUpdate
|
9
|
-
$rootScope.$on 'stop-messageController', ->
|
10
|
-
$scope.pauseUpdating()
|
11
|
-
|
12
|
-
$scope.updateMessage = ->
|
13
|
-
if autoUpdate
|
14
|
-
messagesService.getMessage($scope.message.id).success (response) ->
|
15
|
-
$scope.message = response.message
|
16
|
-
$scope.resumeUpdating()
|
17
|
-
|
18
|
-
$scope.pauseUpdating = ->
|
19
|
-
autoUpdate = false
|
20
|
-
|
21
|
-
$scope.resumeUpdating = ->
|
22
|
-
autoUpdate = true
|
23
|
-
$timeout($scope.updateMessage, 5000)
|
24
|
-
|
25
|
-
autoUpdate = $scope.isMessageExecuting()
|
26
|
-
$scope.resumeUpdating() if $scope.isMessageExecuting()
|
27
|
-
|
28
|
-
return
|
@@ -1,58 +0,0 @@
|
|
1
|
-
angular.module('dashboardApp').controller 'messagesController',
|
2
|
-
($scope, $rootScope, $http, $routeParams, $timeout, messages, messagesService, workersService, commonMethodsService, messageMethodsService, workerMethodsService) ->
|
3
|
-
commonMethodsService.setup($scope)
|
4
|
-
messageMethodsService.setup($scope)
|
5
|
-
workerMethodsService.setup($scope)
|
6
|
-
|
7
|
-
$scope.messages = messages
|
8
|
-
$scope.page = 1
|
9
|
-
$scope.worker = null
|
10
|
-
|
11
|
-
workerId = $routeParams.worker_id
|
12
|
-
$scope.subscriber = $routeParams.subscriber
|
13
|
-
autoUpdate = true
|
14
|
-
|
15
|
-
if workerId
|
16
|
-
workersService.getWorker(workerId).success (response) ->
|
17
|
-
$scope.worker = response.worker
|
18
|
-
|
19
|
-
fetchMessages = ->
|
20
|
-
messagesService.getMessages($scope.page, workerId, $scope.subscriber).success (response) ->
|
21
|
-
$scope.messages = response.messages
|
22
|
-
$scope.worker = response.worker
|
23
|
-
|
24
|
-
$rootScope.$on 'start-messagesController', ->
|
25
|
-
$scope.resumeUpdating()
|
26
|
-
$rootScope.$on 'stop-messagesController', ->
|
27
|
-
$scope.pauseUpdating()
|
28
|
-
|
29
|
-
$scope.updateMessages = (resumeUpdate = true) ->
|
30
|
-
if autoUpdate
|
31
|
-
fetchMessages()
|
32
|
-
$scope.resumeUpdating()
|
33
|
-
|
34
|
-
$scope.pauseUpdating = ->
|
35
|
-
autoUpdate = false
|
36
|
-
|
37
|
-
$scope.resumeUpdating = ->
|
38
|
-
autoUpdate = true
|
39
|
-
$timeout($scope.updateMessages, 5000)
|
40
|
-
|
41
|
-
$scope.resumeUpdating() if autoUpdate
|
42
|
-
$scope.isAutoUpdating = ->
|
43
|
-
autoUpdate
|
44
|
-
|
45
|
-
$scope.getNextPage = ->
|
46
|
-
$scope.page += 1
|
47
|
-
fetchMessages()
|
48
|
-
|
49
|
-
$scope.getPreviousPage = ->
|
50
|
-
$scope.page -= 1
|
51
|
-
$scope.page = 1 if $scope.page < 1
|
52
|
-
fetchMessages()
|
53
|
-
|
54
|
-
$scope.getFirstPage = ->
|
55
|
-
$scope.page = 1
|
56
|
-
fetchMessages()
|
57
|
-
|
58
|
-
return
|
@@ -1,25 +0,0 @@
|
|
1
|
-
angular.module('dashboardApp').controller 'subscribersController', ($scope, $rootScope, subscribers, $timeout, subscribersService) ->
|
2
|
-
$scope.subscribers = subscribers
|
3
|
-
|
4
|
-
$rootScope.$on 'start-subscribersController', ->
|
5
|
-
$scope.resumeUpdating() if autoUpdate
|
6
|
-
$rootScope.$on 'stop-subscribersController', ->
|
7
|
-
$scope.pauseUpdating()
|
8
|
-
|
9
|
-
$scope.updateSubscribers = ->
|
10
|
-
if autoUpdate
|
11
|
-
subscribersService.getIndex().success (response) ->
|
12
|
-
$scope.subscribers = response.subscribers
|
13
|
-
$scope.resumeUpdating()
|
14
|
-
|
15
|
-
$scope.pauseUpdating = ->
|
16
|
-
autoUpdate = false
|
17
|
-
|
18
|
-
$scope.resumeUpdating = ->
|
19
|
-
autoUpdate = true
|
20
|
-
$timeout($scope.updateSubscribers, 10000)
|
21
|
-
|
22
|
-
autoUpdate = true
|
23
|
-
$scope.resumeUpdating()
|
24
|
-
|
25
|
-
return
|
@@ -1,30 +0,0 @@
|
|
1
|
-
angular.module('dashboardApp').controller 'workerController', ($scope, $rootScope, $http, $routeParams, $timeout, worker, workersService, commonMethodsService, workerMethodsService) ->
|
2
|
-
commonMethodsService.setup($scope)
|
3
|
-
workerMethodsService.setup($scope)
|
4
|
-
|
5
|
-
$scope.worker = worker
|
6
|
-
autoUpdate = false
|
7
|
-
|
8
|
-
$rootScope.$on 'start-workerController', ->
|
9
|
-
$scope.resumeUpdating() if autoUpdate
|
10
|
-
$rootScope.$on 'stop-workerController', ->
|
11
|
-
$scope.pauseUpdating()
|
12
|
-
|
13
|
-
|
14
|
-
$scope.updateWorker = ->
|
15
|
-
if autoUpdate
|
16
|
-
workersService.getWorker(worker.id).success (response) ->
|
17
|
-
$scope.worker = response.worker
|
18
|
-
$scope.resumeUpdating()
|
19
|
-
|
20
|
-
$scope.pauseUpdating = ->
|
21
|
-
autoUpdate = false
|
22
|
-
|
23
|
-
$scope.resumeUpdating = ->
|
24
|
-
autoUpdate = true
|
25
|
-
$timeout($scope.updateWorker, 5000)
|
26
|
-
|
27
|
-
autoUpdate = $scope.isWorkerAlive($scope.worker)
|
28
|
-
$scope.resumeUpdating() if $scope.isWorkerAlive($scope.worker)
|
29
|
-
|
30
|
-
return
|
@@ -1,28 +0,0 @@
|
|
1
|
-
angular.module('dashboardApp').controller 'workersListController', ($scope, $rootScope, $timeout, $http, workers, rootPath, workersService, commonMethodsService) ->
|
2
|
-
commonMethodsService.setup($scope)
|
3
|
-
|
4
|
-
$scope.workers = workers
|
5
|
-
autoUpdate = true
|
6
|
-
|
7
|
-
$rootScope.$on 'start-workersListController', ->
|
8
|
-
$scope.resumeUpdating()
|
9
|
-
$rootScope.$on 'stop-workersListController', ->
|
10
|
-
$scope.pauseUpdating()
|
11
|
-
|
12
|
-
$scope.updateWorkers = ->
|
13
|
-
if autoUpdate
|
14
|
-
workersService.getCurrentList().success (response) ->
|
15
|
-
$scope.workers = response.workers
|
16
|
-
$scope.resumeUpdating()
|
17
|
-
|
18
|
-
$scope.pauseUpdating = ->
|
19
|
-
autoUpdate = false
|
20
|
-
|
21
|
-
$scope.resumeUpdating = ->
|
22
|
-
autoUpdate = true
|
23
|
-
$timeout($scope.updateWorkers, 5000)
|
24
|
-
|
25
|
-
$scope.resumeUpdating()
|
26
|
-
return
|
27
|
-
|
28
|
-
|
@@ -1,82 +0,0 @@
|
|
1
|
-
angular.module('dashboardApp').config([ '$routeProvider', '$locationProvider', ($routeProvider, $locationProvider, workersService, messagesService) ->
|
2
|
-
messagesResolver = ($q, messagesService, $route) ->
|
3
|
-
deferred = $q.defer()
|
4
|
-
workerId = $route.current.params.worker_id
|
5
|
-
subscriber = $route.current.params.subscriber
|
6
|
-
messagesService.getMessages(1, workerId, subscriber).success (response) ->
|
7
|
-
deferred.resolve(response.messages)
|
8
|
-
deferred.promise
|
9
|
-
|
10
|
-
messageResolver = ($q, messagesService, $route) ->
|
11
|
-
deferred = $q.defer()
|
12
|
-
messagesService.getMessage($route.current.params.message_id).success (response) ->
|
13
|
-
deferred.resolve(response.message)
|
14
|
-
deferred.promise
|
15
|
-
|
16
|
-
workerResolver = ($q, $route, workersService) ->
|
17
|
-
deferred = $q.defer()
|
18
|
-
workersService.getWorker($route.current.params.worker_id).success (response) ->
|
19
|
-
deferred.resolve(response.worker)
|
20
|
-
deferred.promise
|
21
|
-
|
22
|
-
workersResolver = ($q, workersService) ->
|
23
|
-
deferred = $q.defer()
|
24
|
-
workersService.getCurrentList().success (response) ->
|
25
|
-
deferred.resolve(response.workers)
|
26
|
-
deferred.promise
|
27
|
-
|
28
|
-
subscribersResolver = ($q, subscribersService) ->
|
29
|
-
deferred = $q.defer()
|
30
|
-
subscribersService.getIndex().success (response) ->
|
31
|
-
deferred.resolve(response.subscribers)
|
32
|
-
deferred.promise
|
33
|
-
|
34
|
-
$routeProvider.when("/",
|
35
|
-
templateUrl: 'banter/workers-list.html'
|
36
|
-
controller: 'workersListController'
|
37
|
-
resolve:
|
38
|
-
workers: workersResolver
|
39
|
-
|
40
|
-
).when("/workers/:worker_id",
|
41
|
-
templateUrl: 'banter/worker.html'
|
42
|
-
controller: 'workerController'
|
43
|
-
resolve:
|
44
|
-
worker: workerResolver
|
45
|
-
).when("/workers/:worker_id/messages",
|
46
|
-
templateUrl: 'banter/messages.html'
|
47
|
-
controller: 'messagesController'
|
48
|
-
resolve:
|
49
|
-
messages: messagesResolver
|
50
|
-
).when("/subscribers/:subscriber/messages",
|
51
|
-
templateUrl: 'banter/messages.html'
|
52
|
-
controller: 'messagesController'
|
53
|
-
resolve:
|
54
|
-
messages: messagesResolver
|
55
|
-
).when("/messages/:message_id",
|
56
|
-
templateUrl: 'banter/message.html'
|
57
|
-
controller: 'messageController'
|
58
|
-
resolve:
|
59
|
-
message: messageResolver
|
60
|
-
).when("/messages",
|
61
|
-
templateUrl: 'banter/messages.html'
|
62
|
-
controller: 'messagesController'
|
63
|
-
resolve:
|
64
|
-
messages: messagesResolver
|
65
|
-
).when("/subscribers",
|
66
|
-
templateUrl: 'banter/subscribers.html'
|
67
|
-
controller: 'subscribersController'
|
68
|
-
resolve:
|
69
|
-
subscribers: subscribersResolver
|
70
|
-
).otherwise(
|
71
|
-
redirectTo: "/"
|
72
|
-
)
|
73
|
-
$locationProvider.html5Mode(true)
|
74
|
-
])
|
75
|
-
|
76
|
-
angular.module('dashboardApp').run(['$rootScope', '$route', '$location', ($rootScope, $route, $location) ->
|
77
|
-
$rootScope.$on '$routeChangeStart', (event, next, current) ->
|
78
|
-
if next.$$route?.controller
|
79
|
-
$rootScope.$broadcast("start-" + next.$$route.controller)
|
80
|
-
if current?.$$route?.controller
|
81
|
-
$rootScope.$broadcast("stop-" + current.$$route.controller)
|
82
|
-
])
|
@@ -1,18 +0,0 @@
|
|
1
|
-
angular.module('dashboardApp').service 'messageMethodsService', [ () ->
|
2
|
-
@setup = (scope) ->
|
3
|
-
scope.isMessageFailed = (message) ->
|
4
|
-
message.status is 'failed' || message.status is 'validation_failed'
|
5
|
-
|
6
|
-
scope.timeElapsed = (message) ->
|
7
|
-
return 0 unless message.done_at
|
8
|
-
scope.asTime(message.done_at) - scope.asTime(message.started_at)
|
9
|
-
|
10
|
-
scope.isMessageExecuting = (message) ->
|
11
|
-
scope.message.status is 'started'
|
12
|
-
|
13
|
-
scope.isMessageSuccessful = (message) ->
|
14
|
-
scope.message.status is 'success'
|
15
|
-
|
16
|
-
return
|
17
|
-
|
18
|
-
]
|
@@ -1,17 +0,0 @@
|
|
1
|
-
angular.module('dashboardApp').service 'messagesService', [ '$http', ($http) ->
|
2
|
-
@getMessages = (page, workerId, subscriber) ->
|
3
|
-
$http(
|
4
|
-
method: 'get'
|
5
|
-
url: Banter.rootPath + "messages.json"
|
6
|
-
params:
|
7
|
-
page: page
|
8
|
-
worker_id: workerId
|
9
|
-
subscriber: subscriber
|
10
|
-
)
|
11
|
-
@getMessage = (messageId) ->
|
12
|
-
$http(
|
13
|
-
method: 'get'
|
14
|
-
url: Banter.rootPath + "messages/#{messageId}.json",
|
15
|
-
)
|
16
|
-
return
|
17
|
-
]
|
@@ -1,15 +0,0 @@
|
|
1
|
-
angular.module('dashboardApp').service 'workersService', [ '$http', ($http) ->
|
2
|
-
@getCurrentList = () ->
|
3
|
-
$http(
|
4
|
-
method: 'get'
|
5
|
-
url: Banter.rootPath + "workers.json",
|
6
|
-
)
|
7
|
-
|
8
|
-
@getWorker = (workerId) ->
|
9
|
-
$http(
|
10
|
-
method: 'get'
|
11
|
-
url: "#{Banter.rootPath}workers/#{workerId}.json",
|
12
|
-
)
|
13
|
-
|
14
|
-
return
|
15
|
-
]
|
@@ -1,15 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @license ng-prettyjson - v0.1.2
|
3
|
-
* (c) 2013 Julien VALERY https://github.com/darul75/ng-prettyjson
|
4
|
-
* License: MIT
|
5
|
-
**/
|
6
|
-
angular.module("ngPrettyJson",[]).directive("prettyJson",["ngPrettyJsonFunctions",function(a){"use strict";var b=angular.isDefined;return{restrict:"AE",scope:{json:"=",prettyJson:"="},replace:!0,template:'<div><button ng-click="edit()" ng-show="edition && !editActivated">Edit</button><button ng-click="edit()" ng-show="edition && editActivated">Cancel</button><button ng-click="update()" ng-show="editActivated && parsable">Update</button><pre id="prettyjson"></pre></div>',link:function(c,d,e){var f={},g="prettyjson",h=null;c.editActivated=!1,c.edition=e.edition;// prefer the "json" attribute over the "prettyJson" one.
|
7
|
-
// the value on the scope might not be defined yet, so look at the markup.
|
8
|
-
var i,j=b(e.json)?"json":"prettyJson",k=function(c){return b(c)?d.find("pre").html(a.syntaxHighlight(c)):d.empty()};i=c.$watch(j,function(a){// BACKWARDS COMPATIBILITY:
|
9
|
-
// if newValue is an object, and we find a `json` property,
|
10
|
-
// then stop watching on `exp`.
|
11
|
-
angular.isObject(a)&&b(a.json)?(i(),c.$watch(j+".json",function(a){k(a),f=a},!0)):(k(a),f=a)},!0);var l=function(){try{c.currentValue=JSON.parse(h.getValue()),c.parsable=!0}catch(a){c.parsable=!1}// trigger update
|
12
|
-
c.$apply(function(){})};c.edit=function(){c.editActivated?(h&&(document.getElementById(g).env=null),k(f)):(h=ace.edit(g),h.on("change",l),h.getSession().setMode("ace/mode/json")),c.editActivated=!c.editActivated},c.update=function(){c.$emit("json-updated",c.newValue)}}}}]).factory("ngPrettyJsonFunctions",function(){// cache some regular expressions
|
13
|
-
var a={entities:/((&)|(<)|(>))/g,json:/"(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|(null))\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g},b=["&","<",">"],c=["number","string","key","boolean","null"],d=function(){var a=arguments.length-2;do a--;while(!arguments[a]);return a},e=function(a){var b;// the final two arguments are the length, and the entire string itself;
|
14
|
-
// we don't care about those.
|
15
|
-
if(arguments.length<7)throw new Error("markup() must be called from String.prototype.replace()");return b=d.apply(null,arguments),'<span class="'+c[b]+'">'+a+"</span>"},f=function(){var a;if(arguments.length<5)throw new Error("makeEntities() must be called from String.prototype.replace()");return a=d.apply(null,arguments),b[a-2]},g=function(b){return angular.isString(b)||(b=JSON.stringify(b,null,2)),angular.isDefined(b)?b.replace(a.entities,f).replace(a.json,e):void 0};return{syntaxHighlight:g,makeEntities:f,markup:e,rx:a}});
|
@@ -1,78 +0,0 @@
|
|
1
|
-
body {
|
2
|
-
font-family: 'Open Sans', sans-serif;
|
3
|
-
}
|
4
|
-
|
5
|
-
.bold {
|
6
|
-
font-weight: 700;
|
7
|
-
}
|
8
|
-
|
9
|
-
.extra-bold {
|
10
|
-
font-weight: 800;
|
11
|
-
}
|
12
|
-
|
13
|
-
.padding-large {
|
14
|
-
padding: 15px;
|
15
|
-
}
|
16
|
-
|
17
|
-
.font-size-md {
|
18
|
-
font-size: 20px;
|
19
|
-
}
|
20
|
-
|
21
|
-
.rounded-corners-md {
|
22
|
-
border-radius: 4px;
|
23
|
-
}
|
24
|
-
|
25
|
-
.margin-top-md {
|
26
|
-
margin-top: 10px;
|
27
|
-
}
|
28
|
-
|
29
|
-
.spin{
|
30
|
-
-webkit-transform-origin: 50% 58%;
|
31
|
-
transform-origin:50% 58%;
|
32
|
-
-ms-transform-origin:50% 58%; /* IE 9 */
|
33
|
-
-webkit-animation: spin 2s infinite linear;
|
34
|
-
-moz-animation: spin 2s infinite linear;
|
35
|
-
-o-animation: spin 2s infinite linear;
|
36
|
-
animation: spin 2s infinite linear;
|
37
|
-
}
|
38
|
-
|
39
|
-
|
40
|
-
@-moz-keyframes spin {
|
41
|
-
from {
|
42
|
-
-moz-transform: rotate(0deg);
|
43
|
-
}
|
44
|
-
to {
|
45
|
-
-moz-transform: rotate(360deg);
|
46
|
-
}
|
47
|
-
}
|
48
|
-
|
49
|
-
@-webkit-keyframes spin {
|
50
|
-
from {
|
51
|
-
-webkit-transform: rotate(0deg);
|
52
|
-
}
|
53
|
-
to {
|
54
|
-
-webkit-transform: rotate(360deg);
|
55
|
-
}
|
56
|
-
}
|
57
|
-
|
58
|
-
@keyframes spin {
|
59
|
-
from {
|
60
|
-
transform: rotate(0deg);
|
61
|
-
}
|
62
|
-
to {
|
63
|
-
transform: rotate(360deg);
|
64
|
-
}
|
65
|
-
}
|
66
|
-
|
67
|
-
pre > kbd {
|
68
|
-
background-color: transparent;
|
69
|
-
box-shadow: none;
|
70
|
-
}
|
71
|
-
|
72
|
-
/**
|
73
|
-
* @license ng-prettyjson - v0.1.2
|
74
|
-
* (c) 2013 Julien VALERY https://github.com/darul75/ng-prettyjson
|
75
|
-
* License: MIT
|
76
|
-
**/
|
77
|
-
|
78
|
-
pre{outline:1px solid #e9e9e9;padding:5px;margin:5px;width:100%;height:100%}.string{color:green}.number{color:#ff8c00}.boolean{color:#00f}.null{color:#ff00ff}.key{color:red}
|
data/web/views/_message.haml
DELETED
@@ -1,74 +0,0 @@
|
|
1
|
-
.clearfix
|
2
|
-
%div.extra-bold.pull-right.padding-large.font-size-lg.rounded-corners-md{data: { 'ng-class' => "{'bg-danger' : isMessageFailed(message), 'bg-success': isMessageSuccessful(message), 'bg-info': isMessageExecuting(message)}"}}
|
3
|
-
%span{data: { 'ng-if' => 'isMessageExecuting(message)'}}
|
4
|
-
%span.glyphicon.glyphicon-refresh.spin
|
5
|
-
WORKING
|
6
|
-
%span{data: { 'ng-if' => 'isMessageSuccessful(message)'}}
|
7
|
-
%span.glyphicon.glyphicon-ok
|
8
|
-
SUCCESSFUL
|
9
|
-
%span{data: { 'ng-if' => "message.status == 'error' || message.status == 'failed'"}}
|
10
|
-
%span.glyphicon.glyphicon-remove
|
11
|
-
FAILED
|
12
|
-
%span{data: { 'ng-if' => "message.status == 'validation_failed'"}}
|
13
|
-
%span.glyphicon.glyphicon-remove
|
14
|
-
VALIDATION FAILED
|
15
|
-
%h2
|
16
|
-
Message
|
17
|
-
|
18
|
-
%ul.list-group.margin-top-md
|
19
|
-
%li.list-group-item.row
|
20
|
-
.col-sm-3.bold Subscriber
|
21
|
-
.col-sm-9 {{ message.subscriber_class }}
|
22
|
-
|
23
|
-
%li.list-group-item.row{data: {'ng-if' => 'message.worker'}}
|
24
|
-
.col-sm-3.bold Worker
|
25
|
-
.col-sm-9
|
26
|
-
%a{data: { 'ng-href' => dashboard_path("workers/{{message.worker.id}}")}} {{ message.worker.process_name }} (PID: {{ message.worker.pid }})
|
27
|
-
%li.list-group-item.row
|
28
|
-
.col-sm-3.bold Subscriber Key
|
29
|
-
.col-sm-9 {{ message.subscribed_key }}
|
30
|
-
|
31
|
-
%li.list-group-item.row
|
32
|
-
.col-sm-3.bold Payload Key
|
33
|
-
.col-sm-9 {{ message.payload_key }}
|
34
|
-
|
35
|
-
%li.list-group-item.row
|
36
|
-
.col-sm-3.bold Payload
|
37
|
-
.col-sm-9
|
38
|
-
%pre{data: { 'pretty-json' => 'message.payload'}}
|
39
|
-
|
40
|
-
%li.list-group-item.row{data: { 'ng-if' => 'message.error_message'}}
|
41
|
-
.col-sm-3.bold Error Message
|
42
|
-
.col-sm-9 {{ message.error_message }}
|
43
|
-
|
44
|
-
%li.list-group-item.row{data: { 'ng-if' => 'message.error_backtrace'}}
|
45
|
-
.col-sm-3.bold Error Backtrace
|
46
|
-
.col-sm-9
|
47
|
-
%a{data: { 'ng-click' => "showBacktrace = !showBacktrace"}}
|
48
|
-
%span{data: { 'ng-show' => 'showBacktrace' }} Hide Backtrace
|
49
|
-
%span{data: { 'ng-show' => '!showBacktrace' }} Show Backtrace
|
50
|
-
%div{data: { 'ng-if' => 'showBacktrace'}}
|
51
|
-
%p{data: { 'ng-repeat' => "bt in message.error_backtrace track by $index"}}
|
52
|
-
{{ bt }}
|
53
|
-
|
54
|
-
%li.list-group-item.row{data: {'ng-show' => 'message.progress || message.progress_at || message.progress_total'}}
|
55
|
-
.col-sm-3.bold Progress
|
56
|
-
.col-sm-9
|
57
|
-
%div
|
58
|
-
%span{data: {'ng-show' => 'message.progress_at'}} Current: {{message.progress_at }}
|
59
|
-
%span{data: { 'ng-show' => 'message.progress_total'}} Total: {{ message.progress_total }}
|
60
|
-
%pre{data: { 'pretty-json' => 'message.progress'}}
|
61
|
-
%li.list-group-item.row
|
62
|
-
.col-sm-3.bold Context
|
63
|
-
.col-sm-9
|
64
|
-
%pre{data: { 'pretty-json' => 'message.context'}}
|
65
|
-
%li.list-group-item.row
|
66
|
-
.col-sm-3.bold Started Time
|
67
|
-
.col-sm-9 {{ asTime(message.started_at)| amDateFormat:'MM/DD/YYYY, h:mm:ss a' }}
|
68
|
-
%li.list-group-item.row{data: { "ng-if" => 'message.done_at'}}
|
69
|
-
.col-sm-3.bold Finished Time
|
70
|
-
.col-sm-9 {{ asTime(message.started_at)| amDateFormat:'MM/DD/YYYY, h:mm:ss a' }}. Took {{ timeElapsed(message) }}ms
|
71
|
-
%li.list-group-item.row
|
72
|
-
.col-sm-3.bold Queue
|
73
|
-
.col-sm-9 {{ message.queue_name }}
|
74
|
-
-#
|