rao-service_chain 0.0.35.pre → 0.0.36.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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