Class: Components::ResolveButton
- Inherits:
-
Base
- Object
- Base
- Components::ResolveButton
- Includes:
- Phlex::Rails::Helpers::ButtonTo
- Defined in:
- app/components/resolve_button.rb
Constant Summary collapse
- OPTIONS =
{ show: { icon: "box", i18n_key: "models.file.open_button.text", # i18n-tasks-use t('models.file.open_button.text') button_type: "primary" }, edit: { icon: "pencil", i18n_key: "general.edit", # i18n-tasks-use t('general.edit') button_type: "primary" }, destroy: { icon: "trash", i18n_key: "general.delete", # i18n-tasks-use t('general.delete') button_type: "danger", confirm: "%{type}s.destroy.confirm" }, merge: { icon: "box-arrow-in-up-left", i18n_key: "models.problem.merge_all", # i18n-tasks-use t('models.problem.merge_all') button_type: "danger" }, upload: { icon: "upload", i18n_key: "application.navbar.upload", # i18n-tasks-use t('application.navbar.upload') button_type: "primary" }, convert: { icon: "arrow-left-right", i18n_key: "model_files.show.convert", # i18n-tasks-use t('model_files.show.convert') button_type: "warning" }, organize: { icon: "folder-check", i18n_key: "models.organize.label", # i18n-tasks-use t('models.organize.label') button_type: "warning", confirm: "models.organize.confirm" # i18n-tasks-use t('models.organize.confirm') } }
Instance Method Summary collapse
- #before_template ⇒ Object
-
#initialize(problem:, user: nil, inside_form: false) ⇒ ResolveButton
constructor
A new instance of ResolveButton.
- #render? ⇒ Boolean
- #view_template ⇒ Object
Constructor Details
#initialize(problem:, user: nil, inside_form: false) ⇒ ResolveButton
Returns a new instance of ResolveButton.
46 47 48 49 50 |
# File 'app/components/resolve_button.rb', line 46 def initialize(problem:, user: nil, inside_form: false) @problem = problem @user = user @inside_form = inside_form end |
Instance Method Details
#before_template ⇒ Object
52 53 54 55 |
# File 'app/components/resolve_button.rb', line 52 def before_template = OPTIONS[@problem.resolution_strategy.to_sym] @text = t [:i18n_key] end |
#render? ⇒ Boolean
87 88 89 |
# File 'app/components/resolve_button.rb', line 87 def render? ProblemPolicy.new(@user, @problem).resolve? end |
#view_template ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'app/components/resolve_button.rb', line 57 def view_template if @problem.in_progress ("#", class: "btn btn-#{@options[:button_type]} disabled") do span(class: "spinner-border spinner-border-sm") { Icon(icon: "", label: "") } whitespace span { @text } end elsif @inside_form GoButton( label: @text, href: resolve_problem_path(@problem, resolve: true), variant: [:button_type], icon: [:icon], confirm: [:confirm] ? translate([:confirm] % {type: @problem.problematic_type.underscore}) : nil, nofollow: true, data: {"turbo-method" => "post"} ) else DoButton( label: @text, href: resolve_problem_path(@problem, resolve: true), variant: [:button_type], icon: [:icon], method: :post, confirm: [:confirm] ? translate([:confirm] % {type: @problem.problematic_type.underscore}) : nil, nofollow: true ) end end |