diff --git a/app/assets/javascripts/application/registration.js b/app/assets/javascripts/application/registration.js new file mode 100644 index 0000000000000000000000000000000000000000..63f246e2e340a30465e69719dcd48939f606d15b --- /dev/null +++ b/app/assets/javascripts/application/registration.js @@ -0,0 +1,27 @@ +$(document).ready (function() { + + $('.email-verify').change(function(){ + $.ajax({ + url: '/users/verify_email', + data: { email: $(this).val()}, + dataType: "json", + success: function(data) { + if (data.valid === true) { + $('.email-verified').show(); + $('.email-non-verified').hide(); + } + else { + $('.email-verified').hide(); + $('.email-non-verified').show(); + } + }, + error: function () { + response([]); + } + }); + }); + + + + +}); diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index b3c56bd2a6927d605cffb79be1598554d08e94d0..0a2504fed507c0c34c59f8ba4aea036f8b9fa64b 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -34,6 +34,11 @@ class UsersController < ApplicationController redirect_to user_path(@followable) end + def verify_email + exists = User.find_by_email(params[:email]) + render json: { valid: exists.nil? && !params[:email].match(Devise.email_regexp).nil? } + end + private def set_empty_collection diff --git a/app/views/devise/registrations/_social_warn.html.erb b/app/views/devise/registrations/_social_warn.html.erb new file mode 100644 index 0000000000000000000000000000000000000000..62748b8404ea673ff67599370d5989ec122384d7 --- /dev/null +++ b/app/views/devise/registrations/_social_warn.html.erb @@ -0,0 +1,18 @@ +<div class="modal fade" id="social_warn" tabindex="-1" role="dialog" aria-labelledby="social_warn_label"> + <div class="modal-dialog" role="document"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-label="Fechar"><span aria-hidden="true">×</span></button> + <h4 class="modal-title" id="social_warn_label"></h4> + </div> + <div class="modal-body" style="text-align:justify"> + Para continuar você deve aceitar os termos de uso. + <span class="pull-right"> + <div id="social-modal-continue"></div> + </div> + <div class="modal-footer"> + <button type="button" class="btn btn-default" data-dismiss="modal">Fechar</button> + </div> + </div> + </div> +</div> diff --git a/app/views/devise/registrations/new.html.erb b/app/views/devise/registrations/new.html.erb index a6f3f6bb302b76ea7c9f32a9481a0c57376a66f6..dff188206020ea5fe2b8f450143793e8927b85c5 100644 --- a/app/views/devise/registrations/new.html.erb +++ b/app/views/devise/registrations/new.html.erb @@ -17,7 +17,10 @@ <div class="field_with_errors"> <div class="align-everything"> <div class="col-md-4 style-text">Nome:</div><div class="col-md-8"><div class="style-input"><%= f.text_field :name, autofocus: true, required: true, :class =>"style-input"%></div></div> - <div class="col-md-4 style-text">Email:</div><div class="col-md-8"><div class="style-input"><%= f.email_field :email, :value => params[:email], required: true, :class =>"style-input"%></div></div> + <div class="col-md-4 style-text">Email:</div><div class="col-md-8"><div class="style-input"><%= f.email_field :email, :value => params[:email], required: true, :class =>"style-input email-verify"%> + <i class="fa fa-check email-verified" style="display:none;color:#008000;"></i> + <i class="fa fa-times email-non-verified" style="display:none; color:#FF0000"></i></div> + </div> <div class="col-md-4 style-text">Senha:</div><div class="col-md-8"><div class="style-input"><%= f.password_field :password, autocomplete: "off", :class =>"style-input"%> <% if @minimum_password_length %> <em><p>(<%= @minimum_password_length %> caracteres mÃnimos)</p></em> @@ -34,6 +37,18 @@ <div class="col-md-6"> <br/><span class="pull-right">Já possui conta?</span><br/> <span class="pull-right"><%= render "devise/shared/links"%></span> + <div class='Facebook-button'> + <a role="button" title="Facebook" data-toggle="modal" data-target="#social_warn"><i class="fa fa-facebook-official"></i></a> + <%= render 'social_warn' %> + </div> + <div class='Google-button'> + <a role="button" title="Google" data-toggle="modal" data-target="#social_warn"><i class="fa fa-google-plus-square"></i></a> + <%= render 'social_warn' %> + </div> + <div class='Twitter-button'> + <a role="button" title="Twitter" data-toggle="modal" data-target="#social_warn"><i class="fa fa-twitter-square"></i></a> + <%= render 'social_warn' %> + </div> </div> <div class=" col-md-5"> <br/><span class="pull-right"><%= f.submit "Cadastrar", :class=> "but but-shadow but-rc"%></span><br/> @@ -45,3 +60,20 @@ </div> </div> <% end %> + + +<script type="text/javascript"> + $('.Facebook-button a').click(function(){ + $('#social-modal-continue').empty(); + $('#social-modal-continue').append('<%= link_to "Continuar", user_omniauth_authorize_path(:facebook), class: 'link-setup' %>'); + }); + $('.Google-button a').click(function(){ + $('#social-modal-continue').empty(); + $('#social-modal-continue').append('<%= link_to "Continuar", user_omniauth_authorize_path(:google_oauth2), class: 'link-setup' %>'); + }); + $('.Twitter-button a').click(function(){ + $('#social-modal-continue').empty(); + $('#social-modal-continue').append('<%= link_to "Continuar", user_omniauth_authorize_path(:twitter), class: 'link-setup' %>'); + }); + +</script> diff --git a/app/views/devise/shared/_links.html.erb b/app/views/devise/shared/_links.html.erb index 1d470b08592071eeb164066b38583c8007eb2994..5309f21ffecf9914b6af34d18dbd00a2a8f050ff 100644 --- a/app/views/devise/shared/_links.html.erb +++ b/app/views/devise/shared/_links.html.erb @@ -21,9 +21,9 @@ <%- if devise_mapping.omniauthable? %> <%- resource_class.omniauth_providers.each do |provider| %> <%- if provider.to_s.titleize == "Google Oauth2" %> - <%= link_to "Entre com Google", omniauth_authorize_path(resource_name, provider), {:class=>'add-picture'} %><br /> + <%#= link_to "Entre com Google", omniauth_authorize_path(resource_name, provider), {:class=>'add-picture'} %><br /> <%- else %> - <%= link_to "Entre com #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider), {:class=>'add-picture'} %><br /> + <%#= link_to "Entre com #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider), {:class=>'add-picture'} %><br /> <% end -%> <%- end %> <% end -%> diff --git a/config/routes.rb b/config/routes.rb index dfa66bc2cdddcd67db69b289aaa3f1b1b05ecec8..5096aeff8a5d36b45677df457388b071fc8cb710 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -112,6 +112,7 @@ Rails.application.routes.draw do post '/bookmarks/:type/:id' => 'bookmarks#add_object', as: :bookmark_add delete '/bookmarks/:type/:id' => 'bookmarks#remove_object', as: :bookmark_remove + get '/users/verify_email' => 'users#verify_email', as: :verify_email get '/users/list' => 'users#list', as: :list_all_users resources :users, only: [:show] do member do