rao-service_chain 0.0.35.pre → 0.0.36.pre

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: d4d800775f94e7e872362dc399f00a1fa23b7bd58db861da47bd0b75408713fc
4
- data.tar.gz: bcec8c28b254d3facc8ce791d8bb0a3154147eb33a353f7b1f992bd438557241
3
+ metadata.gz: a484aa3db5835d220e458a08a54de6e6566f022827584726849d886a5af62564
4
+ data.tar.gz: 3ff63bd8df3c8488d6d66ed7466ab4281911fb466f6701f184a7d3b28827ace3
5
5
  SHA512:
6
- metadata.gz: 89ec547822e2e0b6428e08b28d0d0ab6a3792f10dfcd677f58718dac964549bc63f3d058060d8023339a26808e83df05c5e23a9d649c83479d72e4506a42b766
7
- data.tar.gz: ccad0e54e37a21348e05ad42a131ddbe792cb25a0f2c92fd7f0b6401892f45ad46b873ab146b93ff0751c35da051567e01dfab38e6c38011ffc1eb661b783bba
6
+ metadata.gz: 3f517402d68b47f6e06ad4638abceec5dfe2e5294b51c9ead78311c103951a6e26b8af0b4a5dc4d8588e667d75f43602d687979be93b9638445979a3f1f5933c
7
+ data.tar.gz: 499bfbbc30874d793a892005039de3ae0fba012dc467cfb14c036fd3a4d8c65810219b9ac31da8c516d831e20f7bae7ff578fe0c96c5f547f35fd81d6c6daf4f
@@ -23,7 +23,11 @@ module Rao
23
23
  raise "Child class responsiblity"
24
24
  end
25
25
 
26
- def actual_step_index
26
+ def step_index(step)
27
+ self.steps.map(&:service).index(step.try(:service))
28
+ end
29
+
30
+ def actual_step_index
27
31
  self.steps.map(&:service).index(self.actual_step.try(:service))
28
32
  end
29
33
 
@@ -45,12 +49,23 @@ module Rao
45
49
  self.steps[self.actual_step_index - 1]
46
50
  end
47
51
 
52
+ def previous_steps
53
+ return [] if self.actual_step_index.nil?
54
+ return [] if self.actual_step_index == 0
55
+ self.steps[0..(self.actual_step_index - 1)]
56
+ end
57
+
48
58
  def next_step
49
59
  return nil if self.actual_step_index.nil?
50
60
  return nil if self.actual_step_index + 1 >= self.step_count
51
61
  self.steps[self.actual_step_index + 1]
52
62
  end
53
63
 
64
+ def next_steps
65
+ return [] if self.actual_step_index.nil?
66
+ self.steps[(self.actual_step_index + 1)..-1]
67
+ end
68
+
54
69
  def next_step?
55
70
  !!next_step
56
71
  end
@@ -69,10 +84,10 @@ module Rao
69
84
  end
70
85
 
71
86
  def to_hash(context = nil)
72
- {
73
- actual_step: self.actual_step.to_hash(context),
74
- steps: self.steps.map { |s| s.to_hash(context) }
75
- }
87
+ {
88
+ actual_step: self.actual_step.to_hash(context),
89
+ steps: self.steps.map { |s| s.to_hash(context) }
90
+ }
76
91
  end
77
92
 
78
93
  def completed_steps
@@ -83,6 +98,18 @@ module Rao
83
98
  self.steps.collect { |s| s.pending? ? s : nil }.compact
84
99
  end
85
100
 
101
+ def before_actual?(step)
102
+ return false if self.actual_step.nil?
103
+ return false if (si = step_index(wrap(step))).nil?
104
+ self.actual_step_index > si
105
+ end
106
+
107
+ def after_actual?(step)
108
+ return false if self.actual_step.nil?
109
+ return false if (si = step_index(wrap(step))).nil?
110
+ self.actual_step_index < si
111
+ end
112
+
86
113
  private
87
114
 
88
115
  def wrap(service, options = {})
@@ -19,9 +19,17 @@ module Rao
19
19
  # = service_chain_helper(self).render_progress(@service_chain)
20
20
  #
21
21
  def render_progress(service_chain, options = {})
22
- options.reverse_merge!(theme: :bootstrap4)
22
+ return if service_chain.nil?
23
+
24
+ options.reverse_merge!(
25
+ theme: :bootstrap4,
26
+ link_next_steps: true,
27
+ link_actual_step: false,
28
+ link_previous_steps: true
29
+ )
23
30
  theme = options.delete(:theme)
24
- c.render partial: "rao/service_chain/application_view_helper/render_progress/#{theme}", locals: { service_chain: service_chain }
31
+
32
+ c.render partial: "rao/service_chain/application_view_helper/render_progress/#{theme}", locals: { service_chain: service_chain, options: options }
25
33
  end
26
34
  end
27
35
  end
@@ -7,7 +7,11 @@
7
7
  - if step.actual?
8
8
  %span.wizard-step-marker.rounded-circle.bg-primary.text-white
9
9
  %i.fas.fa-play
10
- = step.label
10
+ %span.wizard-step-label
11
+ - if options[:link_actual_step]
12
+ = link_to(step.label, step.url(self))
13
+ - else
14
+ = step.label
11
15
  - else
12
16
  - if step.completed?
13
17
  %span.wizard-step-marker.rounded-circle.bg-success.text-white
@@ -15,4 +19,8 @@
15
19
  - else
16
20
  %span.wizard-step-marker.rounded-circle.bg-secondary.text-white
17
21
  %i.fas.fa-circle
18
- = link_to(step.label, step.url(self))
22
+ %span.wizard-step-label
23
+ - if (service_chain.before_actual?(step) && options[:link_previous_steps]) || (service_chain.after_actual?(step) && options[:link_next_steps])
24
+ = link_to(step.label, step.url(self))
25
+ - else
26
+ = step.label
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rao-service_chain
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.35.pre
4
+ version: 0.0.36.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Vasquez Angel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-25 00:00:00.000000000 Z
11
+ date: 2019-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails