wizard_edits.rb 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. require_dependency 'wizard/field'
  2. require_dependency 'wizard/step'
  3. ::Wizard::Field.class_eval do
  4. attr_reader :label, :description, :key, :min_length
  5. def initialize(attrs)
  6. attrs = attrs || {}
  7. @id = attrs[:id]
  8. @type = attrs[:type]
  9. @required = !!attrs[:required]
  10. @label = attrs[:label]
  11. @description = attrs[:description]
  12. @key = attrs[:key]
  13. @min_length = attrs[:min_length]
  14. @value = attrs[:value]
  15. @choices = []
  16. end
  17. end
  18. class ::Wizard::Step
  19. attr_accessor :title, :description, :key
  20. end
  21. ::WizardSerializer.class_eval do
  22. attributes :id, :background, :completed
  23. def id
  24. object.id
  25. end
  26. def background
  27. object.background
  28. end
  29. def completed
  30. object.completed?
  31. end
  32. def include_completed?
  33. object.completed? && !object.multiple_submissions && !scope.current_user.admin?
  34. end
  35. def include_start?
  36. object.start && include_steps?
  37. end
  38. def include_steps?
  39. !include_completed?
  40. end
  41. end
  42. ::WizardStepSerializer.class_eval do
  43. def title
  44. return object.title if object.title
  45. I18n.t("#{object.key || i18n_key}.title", default: '')
  46. end
  47. def description
  48. return object.description if object.description
  49. I18n.t("#{object.key || i18n_key}.description", default: '')
  50. end
  51. end
  52. ::WizardFieldSerializer.class_eval do
  53. def label
  54. return object.label if object.label
  55. I18n.t("#{object.key || i18n_key}.label", default: '')
  56. end
  57. def description
  58. return object.description if object.description
  59. I18n.t("#{object.key || i18n_key}.description", default: '')
  60. end
  61. def placeholder
  62. I18n.t("#{object.key || i18n_key}.placeholder", default: '')
  63. end
  64. end