Posts

Showing posts from August, 2019

role admin

How to add Admin panel in rails application Add column: rails g migration AddRoleToUsers role:string is_admin:boolean is_active:boolean role, default: "member" 1. application controller with user over    class ApplicationController < ActionController::Base   protect_from_forgery with: :exception   before_action :user_admin, expect:[:after_sign_in_path_for]   include ApplicationHelper   layout :set_layout   before_action :configure_permitted_parameters, if: :devise_controller?   # before_action :check_subscription   def after_sign_in_path_for(resource)     resource.is_admin? ? admin_root_path : root_path   end def user_admin     if request.fullpath.split("/")[1] == "admin"       if current_user.role != 'admin'         redirect_to root_path       else         request.url       end     else     end ...

validation datepicker

this page model  validate :end_date_after_start_date?   def end_date_after_start_date?     if end_date.present?     if end_date < start_date     errors.add :end_date, "must be after start date"     end     end   end

gem datepicker formate jquery

_form.html.erb <script type="text/javascript">   $(document).ready(function(){     $(".datepicker").datepicker({         dateFormat: 'dd-mm-yy'      })     .on("changeDate", function (e) {       var start_date = $("#txtStartDate").val();       var end_date = $("#txtEndDate").val();        if (start_date != "" && end_date != ""){         start_date = new Date(start_date);         end_date = new Date(end_date);         if (end_date < start_date){           alert("End date should be greater or equal to start Date");           $(this).val("");         }       }     });   }); </script> 

VALIDATE START DATE END DATE

validate :end_date_after_start_date?   def end_date_after_start_date?     if end_date.present?     if end_date < start_date     errors.add :end_date, "must be after start date"     end     end   end

drop down

<div class="field">   <label for="filter">Filter</label><br>   <%= select_tag "category", options_from_collection_for_select(@categories, "id", "name"), class: "form-control"%> </div>

overwrite devise

page appliction controller class ApplicationController < ActionController::Base before_action :authenticate_user! before_action :configure_permitted_parameters, if: :devise_controller? include ApplicationHelper   protected   def configure_permitted_parameters   devise_parameter_sanitizer.permit(:sign_up) { |u| u.permit(:email, :password, :password_confirmation, :current_password, :first_name,:last_name, :event_id) }   devise_parameter_sanitizer.permit(:sign_in) { |u| u.permit(:email, :password) }   devise_parameter_sanitizer.permit(:account_update) { |u| u.permit(:email, :password, :password_confirmation, :current_password, :first_name,:last_name, :event_id) } end end

select tag

<div class="field">       <label for="category">Category</label><br>       <%= form.select(:category_id, Category.all.collect {|u| [u.name, u.id]},{:prompt => 'Select category'}, :class=>"form-control" ) %>     </div>

log in fb and twitter etc

Social login facebook,twitter .. Gemfile: gem "oauth" gem "oauth2" gem 'omniauth-oauth2' gem 'omniauth-facebook' gem 'omniauth-twitter' gem 'omniauth-google-oauth2' gem 'omniauth-linkedin' gem 'omniauth-github' gem 'omniauth-pinterest' -------------------------------------------------- Model generate:  rails g model authentication provider:string uid:string user_id:integer token:text token_expired_at:datetime -------------------------------------------------- app/model/authentication.rb: class Authentication < ApplicationRecord belongs_to :user def self.from_omniauth(auth)     authenticate = where(provider: auth['provider'], :uid=>auth['uid']).first_or_initialize     register_user = User.find_by(email: auth.info.email)     if authenticate.user       return authenticate.user     elsif register_user       register_user.authentications.create(provider: auth['provider'], :u...

event search

index page <h1>Events</h1> <%= form_tag "/events", :method=>"get" do %>   <%= text_field_tag :search, nil, :placeholder=>"search event" %>   <%= submit_tag "search"%> <% end %> note..searh event event controller index def index     if params[:search].present?       @events = Event.where("lower(title) LIKE :prefix OR lower(address) LIKE :prefix", prefix: "%#{params[:search].downcase}%")     else       @events = Event.all     end      @map_data = @events.map{|e| [ e.address, e.title, e.latitude, e.longitude]}   end

show map multiple pin and save

index.page <div id="map"  style="width: 96%; height: 400px; text-align: center;" ></div> </div> <br><br><br><br><br><br> <script src="http://maps.googleapis.com/maps/api/js?key=AIzaSyAvuPSxdugPS2FJQibo-i78wVZHWgmKemk&libraries=places"></script> <script>$(document).ready(function(){ static   // var locations =  [["cdcdc","25.902391","78.570356"],["new title","42.838148","-80.473317"],["dada","25.902391","78.570356"],["dadasd a d","25.720813","76.19997"],["DElhi","26.106121","78.271666"],["Gwalior","26.106121","78.271666"],["new title","25.902391","78.570356"],["title1","42.838148","-80.473317"],["new title","...

map save latitude and longitutde

_form.html.erb <link href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" rel="Stylesheet"></link> <script src='https://cdn.rawgit.com/pguso/jquery-plugin-circliful/master/js/jquery.circliful.min.js'></script> <script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js" ></script> <script src="http://maps.googleapis.com/maps/api/js?key=AIzaSyAvuPSxdugPS2FJQibo-i78wVZHWgmKemk&libraries=places"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/geocomplete/1.7.0/jquery.geocomplete.js"></script> <script type="text/javascript"> $("#autocomplete").geocomplete()           .bind("geocode:result", function(event, result){             b = result             a = result.address_components             for ( var i = 0, l = a.length; i < l; i++ ) {     ...

show.map

show.page.map.show <div id="map"></div> <style>    #map {     height: 400px;     width: 100%;    } </style>   <script>     function initMap() {      var lat1 = <%= @event.latitude %>;      var long1 = <%= @event.longitude %>;       var uluru = {lat: lat1, lng: long1};       var map = new google.maps.Map(document.getElementById('map'), {         zoom: 15,         center: uluru       });       var marker = new google.maps.Marker({         position: uluru,         map: map       });     }           </script>   <script async defer   src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAvuPSxdugPS2FJQibo-i78wVZHWgmKemk&callback=i...