tasks_scheduler 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 599df8db33d832f04a2ad1a0581c7775fbd17f345da397e6b2e6e14090dfe9d1
4
- data.tar.gz: f20e6101384683f6d398ef55603f2a1d47d1e79dbf111237d68b2bfcc426292c
3
+ metadata.gz: f297d8aab57fc0f8e97be84ea5ca71a1dda0623a9231f124866f066a65a96703
4
+ data.tar.gz: be6470159ccbc01e0953b40f4560e1543b3a2687f75c17147fda86d492f0523f
5
5
  SHA512:
6
- metadata.gz: ca786519acd5d3925cc521ffed0f3d61471d409abefe94b70b32002951ce27d51cc63435567b2b820d7be7315265f7d7a847723ba721835246531fb391474539
7
- data.tar.gz: 6e0e915ebd3b41d75499899b3155b33e71f34ad08fe80f03f30dc03dc75ead448acbd34dc71c6eb8ab38c8e9f49fd1c0f95c8922c4c76afb6ea9f3a30847368c
6
+ metadata.gz: cf3db7dde7ceb96ece05b878c725eda9bdd3642e0c7ec229f248de845aea79028454533eb49692cbe772d892daaef40cb6f08153606dd489f4b50786e0275d11
7
+ data.tar.gz: cc9a7644b4447216bdc692eea253f39c9183ddc4f24b44e5994b61a84cad0bf093b96607f9d80cc7bb9c33b08ed38292394affc28b49a0a03a85890210f98b62
@@ -4,112 +4,5 @@
4
4
  function TasksScheduler() {
5
5
  }
6
6
 
7
- TasksScheduler.Status = function () {
8
- };
9
-
10
- // Shortcut
11
- var _S = TasksScheduler.Status;
12
-
13
- _S.initialized = false;
14
-
15
- _S.init = function (url, interval_max) {
16
- if (!_S.initialized) {
17
- _S.initialized = true;
18
- _S.url = url;
19
- _S.interval_max = interval_max;
20
- _S.update();
21
- }
22
- };
23
-
24
- _S.content = function () {
25
- return $('#TaskScheduler_Status_Content');
26
- };
27
-
28
- _S.status = function () {
29
- return $('#TaskScheduler_Status_Status');
30
- };
31
-
32
- _S.update_status = function () {
33
- _S.status().html(
34
- "Updating in " + _S.interval + " seconds..."
35
- );
36
- };
37
-
38
- _S.check = function () {
39
- if (_S.interval <= 0) {
40
- _S.update();
41
- } else {
42
- _S.interval--;
43
- _S.update_status();
44
- setTimeout(_S.check, 1000);
45
- }
46
- };
47
-
48
- _S.update = function () {
49
- $.ajax({
50
- url: _S.url,
51
- success: function (result) {
52
- _S.content().html(result);
53
- },
54
- complete: function (result) {
55
- _S.interval = _S.interval_max + 1;
56
- _S.last_update = new Date();
57
- _S.check();
58
- }
59
- });
60
- };
61
-
62
- TasksScheduler.Alert = function () {
63
- };
64
-
65
- _A = TasksScheduler.Alert;
66
-
67
- _A.DEFAULT_REFRESH_INTERVAL = 5000;
68
- _A.DEFAULT_ELEMENT_SELECTOR = '#tasks_scheduler_alert';
69
- _A.CSS_CLASSES_PREFIX = 'alert_';
70
- _A.url = Routes.status_tasks_scheduler_daemon_path();
71
-
72
- _A.init = function (options) {
73
- options = typeof options !== 'undefined' ? options : {};
74
- $(document).ready(function () {
75
- _A.options = options;
76
- if (!_A.options.refresh_interval) {
77
- _A.options.refresh_interval = _A.DEFAULT_REFRESH_INTERVAL;
78
- }
79
- if (!_A.options.element_selector) {
80
- _A.options.element_selector = _A.DEFAULT_ELEMENT_SELECTOR;
81
- }
82
- _A.refresh();
83
- });
84
- };
85
-
86
- _A.setNextRefresh = function () {
87
- setTimeout(_A.refresh, _A.options.refresh_interval);
88
- };
89
-
90
- _A.refresh = function () {
91
- $.ajax({
92
- url: _A.url,
93
- success: function (result) {
94
- var alert = $(_A.options.element_selector);
95
- var pattern = new RegExp('(^|\\s)' + _A.CSS_CLASSES_PREFIX + "\\S+", 'g');
96
- alert.removeClass (function (index, className) {
97
- return (className.match (pattern) || []).join(' ');
98
- });
99
- alert.addClass(_A.resultToCssClass(result));
100
- },
101
- complete: function (result) {
102
- _A.setNextRefresh();
103
- }
104
- });
105
- };
106
-
107
- _A.resultToCssClass = function(result) {
108
- var suffix = "ok"
109
- if (!result.daemon_running) {
110
- suffix = "daemon_stopped";
111
- } else if (!result.tasks_all_ok) {
112
- suffix = "task_failed";
113
- }
114
- return _A.CSS_CLASSES_PREFIX + suffix;
115
- };
7
+ //= require tasks_scheduler/alert
8
+ //= require tasks_scheduler/status
@@ -0,0 +1,58 @@
1
+ TasksScheduler.Alert = function () {
2
+ };
3
+
4
+ _A = TasksScheduler.Alert;
5
+
6
+ _A.DEFAULT_REFRESH_INTERVAL = 5000;
7
+ _A.DEFAULT_ELEMENT_SELECTOR = '#tasks_scheduler_alert';
8
+ _A.CSS_CLASSES_PREFIX = 'alert_';
9
+ _A.url = Routes.status_tasks_scheduler_daemon_path();
10
+
11
+ _A.init = function (options) {
12
+ options = typeof options !== 'undefined' ? options : {};
13
+ $(document).ready(function () {
14
+ _A.options = options;
15
+ if (!_A.options.refresh_interval) {
16
+ _A.options.refresh_interval = _A.DEFAULT_REFRESH_INTERVAL;
17
+ }
18
+ if (!_A.options.element_selector) {
19
+ _A.options.element_selector = _A.DEFAULT_ELEMENT_SELECTOR;
20
+ }
21
+ _A.refresh();
22
+ });
23
+ };
24
+
25
+ _A.setNextRefresh = function () {
26
+ setTimeout(_A.refresh, _A.options.refresh_interval);
27
+ };
28
+
29
+ _A.refresh = function () {
30
+ $.ajax(_A.refreshAjaxData());
31
+ };
32
+
33
+ _A.refreshAjaxData = function () {
34
+ return {
35
+ url: _A.url,
36
+ success: function (result) {
37
+ var alert = $(_A.options.element_selector);
38
+ var pattern = new RegExp('(^|\\s)' + _A.CSS_CLASSES_PREFIX + "\\S+", 'g');
39
+ alert.removeClass (function (index, className) {
40
+ return (className.match (pattern) || []).join(' ');
41
+ });
42
+ alert.addClass(_A.resultToCssClass(result));
43
+ },
44
+ complete: function (result) {
45
+ _A.setNextRefresh();
46
+ }
47
+ };
48
+ };
49
+
50
+ _A.resultToCssClass = function(result) {
51
+ var suffix = "ok"
52
+ if (!result.daemon_running) {
53
+ suffix = "daemon_stopped";
54
+ } else if (!result.tasks_all_ok) {
55
+ suffix = "task_failed";
56
+ }
57
+ return _A.CSS_CLASSES_PREFIX + suffix;
58
+ };
@@ -0,0 +1,58 @@
1
+ TasksScheduler.Status = function () {
2
+ };
3
+
4
+ // Shortcut
5
+ var _S = TasksScheduler.Status;
6
+
7
+ _S.initialized = false;
8
+
9
+ _S.init = function (url, interval_max) {
10
+ if (!_S.initialized) {
11
+ _S.initialized = true;
12
+ _S.url = url;
13
+ _S.interval_max = interval_max;
14
+ _S.update();
15
+ }
16
+ };
17
+
18
+ _S.content = function () {
19
+ return $('#TaskScheduler_Status_Content');
20
+ };
21
+
22
+ _S.status = function () {
23
+ return $('#TaskScheduler_Status_Status');
24
+ };
25
+
26
+ _S.update_status = function () {
27
+ _S.status().html(
28
+ "Updating in " + _S.interval + " seconds..."
29
+ );
30
+ };
31
+
32
+ _S.check = function () {
33
+ if (_S.interval <= 0) {
34
+ _S.update();
35
+ } else {
36
+ _S.interval--;
37
+ _S.update_status();
38
+ setTimeout(_S.check, 1000);
39
+ }
40
+ };
41
+
42
+ _S.update = function () {
43
+ $.ajax(_S.updateAjaxData());
44
+ };
45
+
46
+ _S.updateAjaxData = function() {
47
+ return {
48
+ url: _S.url,
49
+ success: function (result) {
50
+ _S.content().html(result);
51
+ },
52
+ complete: function (result) {
53
+ _S.interval = _S.interval_max + 1;
54
+ _S.last_update = new Date();
55
+ _S.check();
56
+ }
57
+ };
58
+ };
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TasksScheduler
4
- VERSION = '0.5.0'
4
+ VERSION = '0.5.1'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tasks_scheduler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo H. Bogoni
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-08-21 00:00:00.000000000 Z
11
+ date: 2020-09-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_scaffold
@@ -161,6 +161,8 @@ files:
161
161
  - README.rdoc
162
162
  - Rakefile
163
163
  - app/assets/javascripts/tasks_scheduler.js
164
+ - app/assets/javascripts/tasks_scheduler/alert.js
165
+ - app/assets/javascripts/tasks_scheduler/status.js
164
166
  - app/assets/stylesheets/tasks_scheduler.scss
165
167
  - app/assets/stylesheets/tasks_scheduler/alert.scss
166
168
  - app/controllers/scheduled_tasks_controller.rb