Add invitations page to admin panel #24
| @ -10,6 +10,8 @@ body#admin-panel { | ||||
| 
 | ||||
|   #main-nav { | ||||
|     ul { | ||||
|       grid-template-columns: repeat(4, 1fr); | ||||
| 
 | ||||
|       li { | ||||
|         a { | ||||
|           &.active { | ||||
|  | ||||
| @ -119,12 +119,7 @@ main { | ||||
|   } | ||||
| 
 | ||||
|   section { | ||||
|     padding-bottom: 3rem; | ||||
|     margin-bottom: 3rem; | ||||
| 
 | ||||
|     &:not(:last-of-type) { | ||||
|       border-bottom: 1px dotted #ccc; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   table { | ||||
|  | ||||
							
								
								
									
										8
									
								
								app/controllers/admin/invitations_controller.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								app/controllers/admin/invitations_controller.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| class Admin::InvitationsController < Admin::BaseController | ||||
|   def index | ||||
|     @current_section = :invitations | ||||
|     @invitations_unused_count = Invitation.unused.count | ||||
|     @users_with_referrals_count = Invitation.used.distinct.count(:user_id) | ||||
|     @invitations_used = Invitation.used.order('used_at desc') | ||||
|   end | ||||
| end | ||||
							
								
								
									
										32
									
								
								app/views/admin/invitations/index.html.erb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								app/views/admin/invitations/index.html.erb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,32 @@ | ||||
| <section> | ||||
|   <h2>Invitations</h2> | ||||
|   <p> | ||||
|     There are currently <strong><%= @invitations_unused_count %> | ||||
|     unused invitations</strong> available to existing users. | ||||
|     <strong><%= @users_with_referrals_count %> users</strong> have successfully | ||||
|     invited new users. | ||||
|   </p> | ||||
| </section> | ||||
| <% if @invitations_used.any? %> | ||||
|   <section> | ||||
|     <h3>Accepted (<%= @invitations_used.length %>)</h3> | ||||
|     <table> | ||||
|       <thead> | ||||
|         <tr> | ||||
|           <th>Token</th> | ||||
|           <th>Accepted</th> | ||||
|           <th>Invited user</th> | ||||
|         </tr> | ||||
|       </thead> | ||||
|       <tbody> | ||||
|         <% @invitations_used.each do |invitation| %> | ||||
|           <tr> | ||||
|             <td class="overflow-ellipsis"><%= invitation.token %></td> | ||||
|             <td><%= invitation.used_at.strftime("%Y-%m-%d") %></td> | ||||
|             <td><%= User.find(invitation.invited_user_id).address %></td> | ||||
|           </tr> | ||||
|         <% end %> | ||||
|       </tbody> | ||||
|     </table> | ||||
|   </section> | ||||
| <% end %> | ||||
| @ -5,6 +5,10 @@ | ||||
|         <%= link_to "Dashboard", admin_root_path, | ||||
|              class: @current_section == :dashboard ? "active" : nil %> | ||||
|       </li> | ||||
|       <li> | ||||
|         <%= link_to "Invitations", admin_invitations_path, | ||||
|               class: @current_section == :invitations ? "active" : nil %> | ||||
|       </li> | ||||
|       <li> | ||||
|         <%= link_to "Donations", admin_donations_path, | ||||
|               class: @current_section == :donations ? "active" : nil %> | ||||
|  | ||||
| @ -18,6 +18,7 @@ Rails.application.routes.draw do | ||||
| 
 | ||||
|   namespace :admin do | ||||
|     root to: 'dashboard#index' | ||||
|     get 'invitations', to: 'invitations#index' | ||||
|     get 'ldap_users', to: 'ldap_users#index' | ||||
|     resources :donations | ||||
|   end | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user