Module: Labimotion::Workflow
- Extended by:
- ActiveSupport::Concern
- Included in:
- Element, ElementKlass, ElementKlassesRevision, SegmentKlass
- Defined in:
- lib/labimotion/models/concerns/workflow.rb
Overview
Segmentable concern
Instance Method Summary collapse
Instance Method Details
#migrate_workflow ⇒ Object
27 28 29 30 31 32 33 34 |
# File 'lib/labimotion/models/concerns/workflow.rb', line 27 def migrate_workflow return if properties_template.nil? || properties_release.nil? return if properties_template['flow'].nil? && properties_release['flow'].nil? update_column(:properties_template, split_workflow(properties_template)) if properties_template['flow'] update_column(:properties_release, split_workflow(properties_release)) if properties_release['flow'] end |
#split_workflow(properties) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/labimotion/models/concerns/workflow.rb', line 6 def split_workflow(properties) return if properties['flow'].nil? if properties['flow'].present? properties['flowObject'] = {} elements = properties['flow']['elements'] || {} properties['flowObject']['nodes'] = elements.select { |obj| obj['source'].nil? } properties['flowObject']['edges'] = elements.select { |obj| obj['source'] && obj['source'] != obj['target'] }.map do |obj| obj['markerEnd'] = { 'type': 'arrowclosed' } obj end properties['flowObject']['viewport'] = { "x": properties['flow']['position'][0] || 0, "y": properties['flow']['position'][1] || 0, "zoom": properties['flow']['zoom'] || 1 } properties.delete('flow') end properties end |