Class: Refine::AdvancedInline::CriteriaController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- Refine::AdvancedInline::CriteriaController
- Defined in:
- app/controllers/refine/advanced_inline/criteria_controller.rb
Instance Method Summary collapse
- #clear ⇒ Object
-
#create ⇒ Object
Create a new criterion.
-
#destroy ⇒ Object
remove an existing criterion.
-
#edit ⇒ Object
show the form to edit an existing criterion.
-
#index ⇒ Object
List available conditions for new criteria Carries position and index forward.
- #merge_groups ⇒ Object
-
#new ⇒ Object
Show the form to add a new criteria.
-
#update ⇒ Object
update an exsiting criterion.
Instance Method Details
#clear ⇒ Object
90 91 92 93 94 |
# File 'app/controllers/refine/advanced_inline/criteria_controller.rb', line 90 def clear @refine_filter.clear_blueprint! @criterion = Refine::Inline::Criterion.new(criterion_params.merge(refine_filter: @refine_filter)) handle_filter_update() end |
#create ⇒ Object
Create a new criterion
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'app/controllers/refine/advanced_inline/criteria_controller.rb', line 22 def create @criterion = Refine::Inline::Criterion.new(criterion_params.merge(refine_filter: @refine_filter)) blueprint = @refine_filter.blueprint Refine::Filters::BlueprintEditor .new(@refine_filter.blueprint) .add( position: @criterion.position.to_i, conjunction: @criterion.conjunction, criterion: @criterion.to_blueprint_node ) @error_messages = (@refine_filter) if @error_messages.none? handle_filter_update(@refine_filter.to_stable_id) else respond_to do |format| format.turbo_stream { render :new } end end end |
#destroy ⇒ Object
remove an existing criterion
77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'app/controllers/refine/advanced_inline/criteria_controller.rb', line 77 def destroy @criterion = Refine::Inline::Criterion .groups_from_filter(@refine_filter, **criterion_params.slice(:client_id, :stable_id)) .flatten .detect { |c| c.position.to_s == params[:id] } Refine::Filters::BlueprintEditor .new(@refine_filter.blueprint) .delete(params[:id].to_i) handle_filter_update(@refine_filter.to_stable_id) end |
#edit ⇒ Object
show the form to edit an existing criterion
45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'app/controllers/refine/advanced_inline/criteria_controller.rb', line 45 def edit @criterion = Refine::Inline::Criterion .groups_from_filter(@refine_filter, **criterion_params.slice(:client_id, :stable_id)) .flatten .detect { |c| c.position.to_s == params[:id] } @criterion.attributes = criterion_params respond_to do |format| # render a turbo_stream so that we can render inputs and forms in separate areas of the page # in case we're nested inside a form format.turbo_stream end end |
#index ⇒ Object
List available conditions for new criteria Carries position and index forward
6 7 8 9 |
# File 'app/controllers/refine/advanced_inline/criteria_controller.rb', line 6 def index @criterion = Refine::Inline::Criterion.new(criterion_params.merge(refine_filter: @refine_filter)) @conditions = @refine_filter.instantiated_conditions end |
#merge_groups ⇒ Object
96 97 98 99 100 101 102 103 |
# File 'app/controllers/refine/advanced_inline/criteria_controller.rb', line 96 def merge_groups @criterion = Refine::Inline::Criterion.new(criterion_params.merge(refine_filter: @refine_filter)) Refine::Filters::BlueprintEditor .new(@refine_filter.blueprint) .change_conjunction(criterion_params[:position].to_i - 1, "and") handle_filter_update(@refine_filter.to_stable_id) end |
#new ⇒ Object
Show the form to add a new criteria
12 13 14 15 16 17 18 19 |
# File 'app/controllers/refine/advanced_inline/criteria_controller.rb', line 12 def new @criterion = Refine::Inline::Criterion.new(criterion_params.merge(refine_filter: @refine_filter)) respond_to do |format| # render a turbo_stream so that we can render inputs and forms in separate areas of the page # in case we're nested inside a form format.turbo_stream end end |
#update ⇒ Object
update an exsiting criterion
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'app/controllers/refine/advanced_inline/criteria_controller.rb', line 60 def update @criterion = Refine::Inline::Criterion.new(criterion_params.merge(refine_filter: @refine_filter)) Refine::Filters::BlueprintEditor .new(@refine_filter.blueprint) .update(params[:id].to_i, criterion: @criterion.to_blueprint_node) @error_messages = (@refine_filter) if @error_messages.none? handle_filter_update(@refine_filter.to_stable_id) else respond_to do |format| format.turbo_stream { render :edit } end end end |