Tuesday, 21 February 2023

one option select then others option is disabled jquery in rails in active admin

Add searchable select step by step

1. Add gem : gem 'activeadmin-searchable_select'



then require js in // active_admin.js
//= require active_admin/searchable_select
$(document).ready(function(){
	$('.account_select_notify').change(function(){
		debugger
		if (this.value == 'all_account') {
		  $('.notify_select_account').attr('disabled', true);
		}
		else if (this.value != 'all_account') {
		  $('.notify_select_account').attr('disabled', false);
		}
	})
})
------------------------------------------------------
Then import Css in // active_admin.css.scss
@import "active_admin/searchable_select";
--------------------------------------------
2. Add input field in active admin
form do |f|
    f.inputs do
      f.input :title
      # f.input :user_id, as: :select, collection: User.all.map { |c| [c.first_name, c.id] }, include_blank: false, :input_html => { :width => 'auto' }
      f.input :user_id, as: :searchable_select, multiple: true, collection: ([["All", "all_account"]] + User.all.map{|acc| ["#{acc.email}", acc.id, class: "notify_select_account"]}), input_html: {required: true, class: "account_select_notify"}
    end
    f.actions         # adds the 'Submit' and 'Cancel' buttons
  end


  controller do
    def create
      users = params["notification"]["user_id"].reject { |c| c.empty?}
      if users.include?("all_account")
        users = User.all.map(&:id)
      end
      users.each do |user_id|
        Notification.create(user_id: user_id, title: params["notification"]["title"])
      end
      redirect_to admin_notifications_path, :alert => "Successfully Pushed Notification"
    end
  end

No comments:

Post a Comment