rules_engine 0.1.6 → 0.1.7

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.
Files changed (59) hide show
  1. data/VERSION +1 -1
  2. data/lib/rules_engine/process/auditor/db_auditor.rb +1 -0
  3. data/lib/rules_engine/rule/outcome.rb +1 -0
  4. data/rails_generators/manifests/complex.rb +4 -1
  5. data/rails_generators/manifests/complex.yml +0 -1
  6. data/rails_generators/manifests/rules_engine.rb +15 -2
  7. data/rails_generators/manifests/rules_engine.yml +0 -2
  8. data/rails_generators/manifests/simple.rb +4 -1
  9. data/rails_generators/manifests/simple.yml +0 -1
  10. data/rails_generators/templates/app/controllers/re_plan_workflows_controller.rb +30 -5
  11. data/rails_generators/templates/app/controllers/re_plans_controller.rb +26 -2
  12. data/rails_generators/templates/app/controllers/re_workflows_controller.rb +27 -2
  13. data/rails_generators/templates/app/models/re_rule.rb +0 -30
  14. data/rails_generators/templates/app/rules/complex.rb +3 -3
  15. data/rails_generators/templates/app/views/re_plan_workflows/change.html.erb +6 -2
  16. data/rails_generators/templates/app/views/re_plan_workflows/copy.html.erb +12 -0
  17. data/rails_generators/templates/app/views/re_plan_workflows/copy.js.erb +8 -0
  18. data/rails_generators/templates/app/views/re_plan_workflows/new.js.erb +5 -1
  19. data/rails_generators/templates/app/views/re_plan_workflows/show.html.erb +3 -2
  20. data/rails_generators/templates/app/views/re_plans/_copy.html.erb +18 -0
  21. data/rails_generators/templates/app/views/re_plans/_preview.html.erb +1 -1
  22. data/rails_generators/templates/app/views/re_plans/_workflow_preview.html.erb +1 -3
  23. data/rails_generators/templates/app/views/re_plans/change.html.erb +6 -0
  24. data/rails_generators/templates/app/views/re_plans/copy.html.erb +11 -0
  25. data/rails_generators/templates/app/views/re_plans/copy.js.erb +9 -0
  26. data/rails_generators/templates/app/views/re_plans/new.js.erb +4 -1
  27. data/rails_generators/templates/app/views/re_plans/show.html.erb +1 -1
  28. data/rails_generators/templates/app/views/re_rule_definitions/complex/_form.html.erb +2 -2
  29. data/rails_generators/templates/app/views/re_rule_definitions/simple/_form.html.erb +1 -1
  30. data/rails_generators/templates/app/views/re_workflows/_copy.html.erb +21 -0
  31. data/rails_generators/templates/app/views/re_workflows/_rule_change.html.erb +11 -14
  32. data/rails_generators/templates/app/views/re_workflows/_rule_preview.html.erb +14 -17
  33. data/rails_generators/templates/app/views/re_workflows/_rule_show.html.erb +13 -16
  34. data/rails_generators/templates/app/views/re_workflows/_show.html.erb +1 -3
  35. data/rails_generators/templates/app/views/re_workflows/change.html.erb +5 -0
  36. data/rails_generators/templates/app/views/re_workflows/copy.html.erb +11 -0
  37. data/rails_generators/templates/app/views/re_workflows/copy.js.erb +8 -0
  38. data/rails_generators/templates/app/views/re_workflows/index.html.erb +1 -1
  39. data/rails_generators/templates/app/views/re_workflows/preview.html.erb +1 -0
  40. data/rails_generators/templates/app/views/re_workflows/show.html.erb +3 -2
  41. data/rails_generators/templates/app/views/re_workflows/update.js.erb +1 -1
  42. data/rails_generators/templates/db/migrate/20100308225008_create_rules_engine.rb +0 -13
  43. data/rails_generators/templates/doc/README.rules_engine +7 -6
  44. data/rails_generators/templates/lib/tasks/rules_engine.rake +2 -2
  45. data/rails_generators/templates/public/javascripts/rules_engine/re_plan_change.js +20 -0
  46. data/rails_generators/templates/public/javascripts/rules_engine/re_plan_new.js +2 -8
  47. data/rails_generators/templates/public/javascripts/rules_engine/re_workflow_add.js +3 -12
  48. data/rails_generators/templates/public/javascripts/rules_engine/re_workflow_change.js +23 -4
  49. data/rails_generators/templates/public/javascripts/rules_engine/re_workflow_new.js +2 -8
  50. data/rails_generators/templates/public/javascripts/rules_engine/re_workflow_show.js +22 -0
  51. data/rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/re_plan/copy-25.png +0 -0
  52. data/rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/re_workflow/copy-25.png +0 -0
  53. data/rails_generators/templates/public/stylesheets/rules_engine/screen.css +52 -1
  54. data/rails_generators/templates/spec/lib/rules/complex_spec.rb +46 -41
  55. data/rails_generators/templates/spec/lib/rules/simple_spec.rb +41 -35
  56. data/rails_generators/templates/spec/models/re_rule_spec.rb +12 -74
  57. metadata +15 -6
  58. data/rails_generators/templates/app/models/re_rule_expected_outcome.rb +0 -14
  59. data/rails_generators/templates/spec/models/re_rule_expected_outcome_spec.rb +0 -29
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.6
1
+ 0.1.7
@@ -22,6 +22,7 @@ module RulesEngine
22
22
 
23
23
  def audit(process_id, message, code = RulesEngine::Process::AUDIT_INFO)
24
24
  if perform_audit?(code)
25
+ # $stderr.puts("#{'*' * 5} #{process_id}, #{code}, #{message}")
25
26
  ReProcessAudit.create({
26
27
  :process_id => process_id,
27
28
  :created_at => Time.now,
@@ -14,6 +14,7 @@ module RulesEngine
14
14
 
15
15
  attr_accessor :outcome
16
16
  attr_accessor :workflow_code
17
+ attr_accessor :title
17
18
  end
18
19
  end
19
20
  end
@@ -4,7 +4,6 @@ class ComplexManifest
4
4
  %W(
5
5
  app/rules
6
6
  app/views/re_rule_definitions/#{rule_name}
7
- lib/tasks
8
7
  spec/lib/rules
9
8
  ).each do |dirname|
10
9
  m.directory dirname
@@ -24,4 +23,8 @@ class ComplexManifest
24
23
  m.template "spec/lib/rules/complex_spec.rb", "spec/lib/rules/#{rule_name}_spec.rb"
25
24
 
26
25
  end
26
+
27
+ def self.after_generate(rule_name ,rule_class)
28
+ end
29
+
27
30
  end
@@ -1,7 +1,6 @@
1
1
  directories :
2
2
  - app/rules
3
3
  - spec/lib/rules
4
- - lib/tasks
5
4
 
6
5
  templates :
7
6
  replacements :
@@ -66,7 +66,6 @@ class RulesEngineManifest
66
66
  app/models/re_plan.rb
67
67
  app/models/re_plan_workflow.rb
68
68
  app/models/re_rule.rb
69
- app/models/re_rule_expected_outcome.rb
70
69
  app/models/re_workflow.rb
71
70
  app/views/layouts/rules_engine.html.erb
72
71
  app/views/re_plan_workflow_rules/edit.html.erb
@@ -79,6 +78,8 @@ class RulesEngineManifest
79
78
  app/views/re_plan_workflow_rules/new.js.erb
80
79
  app/views/re_plan_workflow_rules/update.js.erb
81
80
  app/views/re_plan_workflows/change.html.erb
81
+ app/views/re_plan_workflows/copy.html.erb
82
+ app/views/re_plan_workflows/copy.js.erb
82
83
  app/views/re_plan_workflows/edit.html.erb
83
84
  app/views/re_plan_workflows/edit.js.erb
84
85
  app/views/re_plan_workflows/new.html.erb
@@ -86,6 +87,7 @@ class RulesEngineManifest
86
87
  app/views/re_plan_workflows/show.html.erb
87
88
  app/views/re_plan_workflows/update.js.erb
88
89
  app/views/re_plans/_change.html.erb
90
+ app/views/re_plans/_copy.html.erb
89
91
  app/views/re_plans/_edit.html.erb
90
92
  app/views/re_plans/_empty.html.erb
91
93
  app/views/re_plans/_index.html.erb
@@ -97,6 +99,8 @@ class RulesEngineManifest
97
99
  app/views/re_plans/_workflow_preview.html.erb
98
100
  app/views/re_plans/_workflow_show.html.erb
99
101
  app/views/re_plans/change.html.erb
102
+ app/views/re_plans/copy.html.erb
103
+ app/views/re_plans/copy.js.erb
100
104
  app/views/re_plans/create.js.erb
101
105
  app/views/re_plans/edit.html.erb
102
106
  app/views/re_plans/edit.js.erb
@@ -137,6 +141,7 @@ class RulesEngineManifest
137
141
  app/views/re_workflow_rules/update.js.erb
138
142
  app/views/re_workflows/_add_prepare.html.erb
139
143
  app/views/re_workflows/_add_update.html.erb
144
+ app/views/re_workflows/_copy.html.erb
140
145
  app/views/re_workflows/_edit.html.erb
141
146
  app/views/re_workflows/_empty.html.erb
142
147
  app/views/re_workflows/_index.html.erb
@@ -153,6 +158,8 @@ class RulesEngineManifest
153
158
  app/views/re_workflows/add.html.erb
154
159
  app/views/re_workflows/add.js.erb
155
160
  app/views/re_workflows/change.html.erb
161
+ app/views/re_workflows/copy.html.erb
162
+ app/views/re_workflows/copy.js.erb
156
163
  app/views/re_workflows/create.js.erb
157
164
  app/views/re_workflows/edit.html.erb
158
165
  app/views/re_workflows/edit.js.erb
@@ -195,6 +202,7 @@ class RulesEngineManifest
195
202
  public/javascripts/rules_engine/re_workflow_new.js
196
203
  public/javascripts/rules_engine/re_workflow_plan.js
197
204
  public/javascripts/rules_engine/re_workflow_preview.js
205
+ public/javascripts/rules_engine/re_workflow_show.js
198
206
  public/stylesheets/blueprint/ie.css
199
207
  public/stylesheets/blueprint/plugins/buttons/icons/cross.png
200
208
  public/stylesheets/blueprint/plugins/buttons/icons/key.png
@@ -285,6 +293,7 @@ class RulesEngineManifest
285
293
  public/stylesheets/rules_engine/images/rules_engine/re_common/status-verify-25.png
286
294
  public/stylesheets/rules_engine/images/rules_engine/re_plan/alert-25.png
287
295
  public/stylesheets/rules_engine/images/rules_engine/re_plan/change-25.png
296
+ public/stylesheets/rules_engine/images/rules_engine/re_plan/copy-25.png
288
297
  public/stylesheets/rules_engine/images/rules_engine/re_plan/delete-25.png
289
298
  public/stylesheets/rules_engine/images/rules_engine/re_plan/edit-25.png
290
299
  public/stylesheets/rules_engine/images/rules_engine/re_plan/list-25.png
@@ -327,6 +336,7 @@ class RulesEngineManifest
327
336
  public/stylesheets/rules_engine/images/rules_engine/re_workflow/alert-25.png
328
337
  public/stylesheets/rules_engine/images/rules_engine/re_workflow/change-18.png
329
338
  public/stylesheets/rules_engine/images/rules_engine/re_workflow/change-25.png
339
+ public/stylesheets/rules_engine/images/rules_engine/re_workflow/copy-25.png
330
340
  public/stylesheets/rules_engine/images/rules_engine/re_workflow/delete-25.png
331
341
  public/stylesheets/rules_engine/images/rules_engine/re_workflow/edit-25.png
332
342
  public/stylesheets/rules_engine/images/rules_engine/re_workflow/is-default-18.png
@@ -346,7 +356,6 @@ class RulesEngineManifest
346
356
  spec/helpers/rules_engine_helper_spec.rb
347
357
  spec/models/re_plan_spec.rb
348
358
  spec/models/re_plan_workflow_spec.rb
349
- spec/models/re_rule_expected_outcome_spec.rb
350
359
  spec/models/re_rule_spec.rb
351
360
  spec/models/re_workflow_spec.rb
352
361
  spec/support/rules_engine_blueprints.rb
@@ -357,4 +366,8 @@ class RulesEngineManifest
357
366
 
358
367
 
359
368
  end
369
+
370
+ def self.after_generate()
371
+ end
372
+
360
373
  end
@@ -34,7 +34,6 @@ files :
34
34
  - app/models/re_plan.rb
35
35
  - app/models/re_plan_workflow.rb
36
36
  - app/models/re_rule.rb
37
- - app/models/re_rule_expected_outcome.rb
38
37
  - app/models/re_workflow.rb
39
38
 
40
39
  - app/views/layouts/rules_engine.html.erb
@@ -60,7 +59,6 @@ files :
60
59
  - spec/models/re_plan_spec.rb
61
60
  - spec/models/re_plan_workflow_spec.rb
62
61
  - spec/models/re_rule_spec.rb
63
- - spec/models/re_rule_expected_outcome_spec.rb
64
62
  - spec/models/re_workflow_spec.rb
65
63
 
66
64
  - spec/controllers/re_plans_controller_spec.rb
@@ -4,7 +4,6 @@ class SimpleManifest
4
4
  %W(
5
5
  app/rules
6
6
  app/views/re_rule_definitions/#{rule_name}
7
- lib/tasks
8
7
  spec/lib/rules
9
8
  ).each do |dirname|
10
9
  m.directory dirname
@@ -23,4 +22,8 @@ class SimpleManifest
23
22
  m.template "spec/lib/rules/simple_spec.rb", "spec/lib/rules/#{rule_name}_spec.rb"
24
23
 
25
24
  end
25
+
26
+ def self.after_generate(rule_name ,rule_class)
27
+ end
28
+
26
29
  end
@@ -1,7 +1,6 @@
1
1
  directories :
2
2
  - app/rules
3
3
  - spec/lib/rules
4
- - lib/tasks
5
4
 
6
5
  templates :
7
6
  replacements :
@@ -3,14 +3,14 @@ class RePlanWorkflowsController < ApplicationController
3
3
  layout 'rules_engine'
4
4
 
5
5
  # before_filter :login_required
6
- before_filter :rules_engine_editor_access_required, :only => [:new, :create, :edit, :update, :destroy, :change, :default, :add, :remove]
6
+ before_filter :rules_engine_editor_access_required, :only => [:new, :create, :edit, :update, :destroy, :change, :default, :add, :remove, :copy, :duplicate]
7
7
  before_filter :rules_engine_reader_access_required, :only => [:show]
8
8
 
9
9
  before_filter do |controller|
10
10
  controller.re_load_model :re_plan, {:param_id => :re_plan_id, :redirect_path => :re_plans_path}
11
11
  end
12
12
 
13
- before_filter :only => [:show, :edit, :update, :destroy, :change, :default, :remove] do |controller|
13
+ before_filter :only => [:show, :edit, :update, :destroy, :change, :default, :remove, :copy, :duplicate] do |controller|
14
14
  controller.re_load_model :re_workflow, {:parents => [:re_plan], :redirect_path => :re_plan_path, :validate => :has_plan?}
15
15
  end
16
16
  before_filter :only => [:add] do |controller|
@@ -30,10 +30,9 @@ class RePlanWorkflowsController < ApplicationController
30
30
  end
31
31
 
32
32
  def create
33
- @re_workflow = ReWorkflow.new(params[:re_workflow])
34
- @re_plan.add_workflow(@re_workflow)
35
-
33
+ @re_workflow = ReWorkflow.new(params[:re_workflow])
36
34
  if @re_workflow.save
35
+ @re_plan.add_workflow(@re_workflow)
37
36
  flash[:success] = 'Workflow Created.'
38
37
 
39
38
  respond_to do |format|
@@ -136,4 +135,30 @@ class RePlanWorkflowsController < ApplicationController
136
135
  end
137
136
  end
138
137
  end
138
+
139
+ def copy
140
+ @re_workflow_new = ReWorkflow.new
141
+ end
142
+
143
+ def duplicate
144
+ @re_workflow_new = ReWorkflow.new
145
+ @re_workflow_new.revert!(@re_workflow.publish)
146
+ @re_workflow_new.attributes = params[:re_workflow]
147
+
148
+ if @re_workflow_new.save
149
+ @re_plan.add_workflow(@re_workflow_new)
150
+ flash[:success] = 'Workflow Duplicated.'
151
+ respond_to do |format|
152
+ format.html do
153
+ redirect_to(change_re_plan_workflow_path(@re_plan, @re_workflow_new))
154
+ end
155
+ format.js do
156
+ render :inline => "window.location.href = '#{change_re_plan_workflow_path(@re_plan, @re_workflow_new)}';"
157
+ end
158
+ end
159
+ else
160
+ render :action => "copy"
161
+ end
162
+ end
163
+
139
164
  end
@@ -3,10 +3,10 @@ class RePlansController < ApplicationController
3
3
  layout 'rules_engine'
4
4
 
5
5
  # before_filter :login_required
6
- before_filter :rules_engine_editor_access_required, :only => [:new, :create, :edit, :update, :destroy, :change, :publish, :revert]
6
+ before_filter :rules_engine_editor_access_required, :only => [:new, :create, :edit, :update, :destroy, :change, :publish, :revert, :copy, :duplicate]
7
7
  before_filter :rules_engine_reader_access_required, :only => [:index, :show, :preview, :re_process]
8
8
 
9
- before_filter :only => [:show, :edit, :update, :destroy, :change, :preview, :publish, :revert, :re_process] do |controller|
9
+ before_filter :only => [:show, :edit, :update, :destroy, :change, :preview, :publish, :revert, :re_process, :copy, :duplicate] do |controller|
10
10
  controller.re_load_model :re_plan
11
11
  end
12
12
 
@@ -128,4 +128,28 @@ class RePlansController < ApplicationController
128
128
  def re_process
129
129
  @re_processes = RulesEngine::Process.runner.history(@re_plan.code, :page => params[:page] || 1, :per_page => 5)
130
130
  end
131
+
132
+ def copy
133
+ @re_plan_new = RePlan.new
134
+ end
135
+
136
+ def duplicate
137
+ @re_plan_new = RePlan.new
138
+ @re_plan_new.revert!(@re_plan.publish)
139
+ @re_plan_new.attributes = params[:re_plan]
140
+
141
+ if @re_plan_new.save
142
+ flash[:success] = 'Plan Duplicated.'
143
+ respond_to do |format|
144
+ format.html do
145
+ redirect_to(change_re_plan_path(@re_plan_new))
146
+ end
147
+ format.js do
148
+ render :inline => "window.location.href = '#{change_re_plan_path(@re_plan_new)}';"
149
+ end
150
+ end
151
+ else
152
+ render :action => "copy"
153
+ end
154
+ end
131
155
  end
@@ -3,10 +3,10 @@ class ReWorkflowsController < ApplicationController
3
3
  layout 'rules_engine'
4
4
 
5
5
  # before_filter :login_required
6
- before_filter :rules_engine_editor_access_required, :only => [:new, :create, :edit, :update, :destroy, :change]
6
+ before_filter :rules_engine_editor_access_required, :only => [:new, :create, :edit, :update, :destroy, :change, :copy, :duplicate]
7
7
  before_filter :rules_engine_reader_access_required, :only => [:index, :show, :preview, :plan, :add]
8
8
 
9
- before_filter :only => [:show, :edit, :update, :destroy, :change, :preview, :plan] do |controller|
9
+ before_filter :only => [:show, :edit, :update, :destroy, :change, :preview, :plan, :copy, :duplicate] do |controller|
10
10
  controller.re_load_model :re_workflow
11
11
  end
12
12
 
@@ -93,4 +93,29 @@ class ReWorkflowsController < ApplicationController
93
93
  def add
94
94
  @re_workflows = ReWorkflow.order_title.find(:all)
95
95
  end
96
+
97
+ def copy
98
+ @re_workflow_new = ReWorkflow.new
99
+ end
100
+
101
+ def duplicate
102
+ @re_workflow_new = ReWorkflow.new
103
+ @re_workflow_new.revert!(@re_workflow.publish)
104
+ @re_workflow_new.attributes = params[:re_workflow]
105
+
106
+ if @re_workflow_new.save
107
+ flash[:success] = 'Workflow Duplicated.'
108
+ respond_to do |format|
109
+ format.html do
110
+ redirect_to(change_re_workflow_path(@re_workflow_new))
111
+ end
112
+ format.js do
113
+ render :inline => "window.location.href = '#{change_re_workflow_path(@re_workflow_new)}';"
114
+ end
115
+ end
116
+ else
117
+ render :action => "copy"
118
+ end
119
+ end
120
+
96
121
  end
@@ -1,6 +1,5 @@
1
1
  class ReRule < ActiveRecord::Base
2
2
  belongs_to :re_workflow
3
- has_many :re_rule_expected_outcomes, :dependent => :destroy, :order => "outcome ASC"
4
3
  acts_as_list :scope => :re_workflow
5
4
 
6
5
  validates_associated :re_workflow
@@ -24,8 +23,6 @@ class ReRule < ActiveRecord::Base
24
23
  self.summary = rule.summary
25
24
  self.data = rule.data
26
25
 
27
- self.re_rule_expected_outcomes = (rule.expected_outcomes || []).map { |expected_outcome| ReRuleExpectedOutcome.new(expected_outcome) }
28
-
29
26
  re_workflow.changed! if changes.detect { |change| !ignore_attributes.include?(change[0])}
30
27
  end
31
28
 
@@ -57,7 +54,6 @@ class ReRule < ActiveRecord::Base
57
54
  self.summary = rule_data["summary"]
58
55
  self.data = rule_data["data"]
59
56
 
60
- self.re_rule_expected_outcomes = (rule.expected_outcomes || []).map { |expected_outcome| ReRuleExpectedOutcome.new(expected_outcome) }
61
57
  self
62
58
  end
63
59
 
@@ -79,35 +75,9 @@ class ReRule < ActiveRecord::Base
79
75
  return "class #{rule_class_name} missing" if rule.nil?
80
76
  return "#{rule.errors.values.join(', ')}" unless rule.valid?
81
77
 
82
- re_rule_expected_outcomes.each do |re_rule_expected_outcome|
83
- next if re_rule_expected_outcome.workflow_code.blank?
84
-
85
- re_workflow = ReWorkflow.find_by_code(re_rule_expected_outcome.workflow_code)
86
- return "#{re_rule_expected_outcome.workflow_code} missing" if re_workflow.nil?
87
-
88
- workflow_error = re_workflow.workflow_error
89
- return "#{re_rule_expected_outcome.workflow_code} invalid" unless re_workflow.workflow_error.blank?
90
- end
91
-
92
78
  nil
93
79
  end
94
80
 
95
- def re_rule_expected_outcome_next
96
- re_rule_expected_outcomes.detect{ |re_rule_expected_outcome| re_rule_expected_outcome.outcome == RulesEngine::Rule::Outcome::NEXT }
97
- end
98
-
99
- def re_rule_expected_outcome_success
100
- re_rule_expected_outcomes.detect{ |re_rule_expected_outcome| re_rule_expected_outcome.outcome == RulesEngine::Rule::Outcome::STOP_SUCCESS }
101
- end
102
-
103
- def re_rule_expected_outcome_failure
104
- re_rule_expected_outcomes.detect{ |re_rule_expected_outcome| re_rule_expected_outcome.outcome == RulesEngine::Rule::Outcome::STOP_FAILURE }
105
- end
106
-
107
- def re_rule_expected_outcomes_start_workflow
108
- re_rule_expected_outcomes.select{ |re_rule_expected_outcome| re_rule_expected_outcome.outcome == RulesEngine::Rule::Outcome::START_WORKFLOW }
109
- end
110
-
111
81
  protected
112
82
  def ignore_attributes
113
83
  [self.class.primary_key, self.class.inheritance_column, "re_workflow_id", "created_at", "updated_at"]
@@ -53,7 +53,7 @@ module RulesEngine
53
53
  when 'stop_failure'
54
54
  [:outcome => RulesEngine::Rule::Outcome::STOP_FAILURE]
55
55
  when 'start_workflow'
56
- [:outcome => RulesEngine::Rule::Outcome::START_WORKFLOW, :workflow_code => workflow]
56
+ [:outcome => RulesEngine::Rule::Outcome::START_WORKFLOW, :title => "Start Workflow : #{workflow}"]
57
57
  else
58
58
  [:outcome => RulesEngine::Rule::Outcome::NEXT]
59
59
  end
@@ -112,9 +112,9 @@ module RulesEngine
112
112
  end
113
113
 
114
114
  words.each do |word|
115
- if /#{word}/i =~ tweet
115
+ if /\b#{word}\b/i =~ tweet
116
116
  RulesEngine::Process.auditor.audit(process_id, "Found #{word}", RulesEngine::Process::AUDIT_INFO)
117
- data[:match] = word
117
+ data[:tweet_match] = word
118
118
 
119
119
  case workflow_action
120
120
  when 'stop_success'
@@ -1,7 +1,6 @@
1
1
  <% set_re_javascript_include 'rules_engine/re_workflow_change' %>
2
2
  <% set_re_breadcrumbs link_to("All Plans", re_plans_path, :class => "re-bc-plan-list"),
3
3
  link_to("View Plan", re_plan_path(@re_plan), :class => "re-bc-plan-show"),
4
- link_to("Edit Plan", change_re_plan_path(@re_plan), :class => "re-bc-plan-change"),
5
4
  '<span class="re-bc-workflow-change">Edit Workflow</span>' %>
6
5
 
7
6
  <div class="span-17 border">
@@ -65,8 +64,13 @@
65
64
  <h4>
66
65
  <%= link_to("View Workflow", re_plan_workflow_path(@re_plan, @re_workflow), :class => "re-menu-workflow-show") %>
67
66
  </h4>
68
-
69
67
  <div class="clear top-5"></div>
68
+
69
+ <h4>
70
+ <%= link_to("Copy Workflow", "##{@re_plan.id}|#{@re_workflow.id}", :id => "re_workflow_copy", :class => "re-menu-workflow-copy") %>
71
+ </h4>
72
+ <div class="clear top-5"></div>
73
+
70
74
  <hr/>
71
75
  <div class="clear top-5"></div>
72
76
 
@@ -0,0 +1,12 @@
1
+ <% set_re_breadcrumbs link_to("All Plans", re_plans_path, :class => "re-bc-plan-list"),
2
+ link_to("Edit Plan", change_re_plan_path(@re_plan), :class => "re-bc-plan-change"),
3
+ link_to("Edit Workflow", change_re_plan_workflow_path(@re_plan, @re_workflow), :class => "re-bc-workflow-change"),
4
+ '<span class="re-bc-workflow-copy">copy Details</span>' %>
5
+
6
+ <div class="prepend-1 span-22 append-1">
7
+ <div class="re-infobox">
8
+ <%= render '/re_workflows/copy', :duplicate_path => duplicate_re_plan_workflow_path(@re_plan, @re_workflow), :cancel_path => change_re_plan_workflow_path(@re_plan, @re_workflow) %>
9
+ <div class="clear top-5"></div>
10
+ </div>
11
+ </div>
12
+ <div class="clear"></div>
@@ -0,0 +1,8 @@
1
+ $('#re_content').html('<%=escape_javascript(render('/re_workflows/copy', :duplicate_path => duplicate_re_plan_workflow_path(@re_plan, @re_workflow), :cancel_path => change_re_plan_workflow_path(@re_plan, @re_workflow)))%>');
2
+
3
+ $('#re_workflow_copy_duplicate').closest('div.re-form-button').re_form_button();
4
+
5
+ $("#re_workflow_copy_form").submit(function() { return false; });
6
+
7
+ $.re_unblock();
8
+ $.fancybox({ href: '#re_content'});