Skip to content

Instantly share code, notes, and snippets.

View abhikanojia's full-sized avatar

Abhishek Kanojia abhikanojia

  • New Delhi, India
View GitHub Profile
@abhikanojia
abhikanojia / _filter_form.html.erb
Created July 28, 2018 06:47
Filter form date range picker modified
<%= form_for(:search, class: 'form-inline', url: users_path, method: :get, remote: true) do |form| %>
<div class="form-group">
<%= form.label :dob %>
<%= form.text_field :dob, class: 'form-control', data: { behavior: 'daterangepicker' }, value: dob_from_parameters %>
</div>
<%= form.submit "Search", class: 'btn btn-success' %>
<% end %>
@abhikanojia
abhikanojia / application_helper.rb
Last active July 28, 2018 06:16
Daterange helper method
module ApplicationHelper
def dob_from_parameters
if params[:search].present?
params[:search][:dob]
end
end
end
@abhikanojia
abhikanojia / daterangepicker_initializer.js
Created July 28, 2018 05:39
Daterangepicker initializer
/* globals daterangepicker, $ */
"use strict";
$(function(){
$('[data-behavior=daterangepicker]').daterangepicker({
locale: { format: 'DD/MM/YYYY'},
cancelLabel: 'Clear'
});
$('[data-behavior=daterangepicker]').on('cancel.daterangepicker', function(){
@abhikanojia
abhikanojia / _user.html.erb
Created July 28, 2018 05:22
Users partial
<tr>
<td><%= user.name %></td>
<td><%= user.dob %></td>
<td><%= link_to("Edit", edit_user_path(user)) %></td>
</tr>
@abhikanojia
abhikanojia / _filter_form.html.erb
Created July 28, 2018 05:20
Filter Form partial _filter_form.html.erb
<%= form_for(:search, class: 'form-inline', url: users_path, method: :get) do |form| %>
<div class="form-group">
<%= form.label :dob %>
<%= form.text_field :dob, class: 'form-control', data: { behavior: 'daterangepicker' } %>
</div>
<%= form.submit "Search", class: 'btn btn-success' %>
<% end %>
@abhikanojia
abhikanojia / index.html.erb
Created July 28, 2018 05:18
Users index page index.html.erb
<h1>User list</h1>
<%= render 'filter_form' %>
<br>
<% if @users.present? %>
<table class="table table-bordered">
<thead>
<th>Name</th>
<th>Date of birth</th>
<th>Action</th>
</thead>
@abhikanojia
abhikanojia / user.rb
Created July 28, 2018 05:15
Users Model for daterange picker
class User < ApplicationRecord
validates :name, presence: true
scope :having_dob_between, ->(start_date, end_date) { where(dob: start_date..end_date) }
end
@abhikanojia
abhikanojia / users_controller.rb
Created July 28, 2018 05:08
Users Controller For daterange picker
class UsersController < ApplicationController
before_action :load_user, only: [:edit, :update]
def index
if params[:search] && params[:search][:dob].present?
start_date, end_date = params[:search][:dob].split(' - ')
@users = User.having_dob_between(start_date, end_date)
else
@users = User.all
FactoryBot.define do
factory :user do
name { Faker::Name.name }
end
end
@abhikanojia
abhikanojia / users_controller_spec.rb
Created June 24, 2018 19:34
Users controller rspec
require 'rails_helper'
RSpec.describe UsersController, type: :controller do
describe 'before actions' do
describe 'load_user' do
it 'is expected to define before action' do
is_expected.to use_before_action(:load_user)
end
end