Merge remote-tracking branch 'origin/main' into license
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				Add copyright notice / copyright_notice (pull_request) Failing after 3m19s
				
			
		
			
				
	
				Check usage of free licenses / build-static-assets (pull_request) Successful in 2m26s
				
			
		
			
				
	
				Build Nginx-based docker image / build-static-assets (pull_request) Successful in 10m26s
				
			
		
			
				
	
				Playwright Tests / test (pull_request) Successful in 4m56s
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	Add copyright notice / copyright_notice (pull_request) Failing after 3m19s
				
			Check usage of free licenses / build-static-assets (pull_request) Successful in 2m26s
				
			Build Nginx-based docker image / build-static-assets (pull_request) Successful in 10m26s
				
			Playwright Tests / test (pull_request) Successful in 4m56s
				
			This commit is contained in:
		
						commit
						f66f1eb0ca
					
				
							
								
								
									
										3
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							@ -4,6 +4,9 @@ on:
 | 
			
		||||
    branches:
 | 
			
		||||
      - main
 | 
			
		||||
  pull_request:
 | 
			
		||||
concurrency:
 | 
			
		||||
  group: ${{ github.ref }}
 | 
			
		||||
  cancel-in-progress: true
 | 
			
		||||
jobs:
 | 
			
		||||
  build-static-assets:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3
									
								
								.github/workflows/license_finder.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.github/workflows/license_finder.yml
									
									
									
									
										vendored
									
									
								
							@ -4,6 +4,9 @@ on:
 | 
			
		||||
    branches:
 | 
			
		||||
      - main
 | 
			
		||||
  pull_request:
 | 
			
		||||
concurrency:
 | 
			
		||||
  group: ${{ github.ref }}
 | 
			
		||||
  cancel-in-progress: true
 | 
			
		||||
jobs:
 | 
			
		||||
  build-static-assets:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3
									
								
								.github/workflows/playwright.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.github/workflows/playwright.yml
									
									
									
									
										vendored
									
									
								
							@ -4,6 +4,9 @@ on:
 | 
			
		||||
    branches: [ main, master ]
 | 
			
		||||
  pull_request:
 | 
			
		||||
    branches: [ main, master ]
 | 
			
		||||
concurrency:
 | 
			
		||||
  group: ${{ github.ref }}
 | 
			
		||||
  cancel-in-progress: true
 | 
			
		||||
jobs:
 | 
			
		||||
  test:
 | 
			
		||||
    timeout-minutes: 60
 | 
			
		||||
 | 
			
		||||
@ -21,7 +21,7 @@ export type Guest = {
 | 
			
		||||
  name: string;
 | 
			
		||||
  email: string;
 | 
			
		||||
  group_name: string;
 | 
			
		||||
  status: 'Considered' | 'Invited' | 'Confirmed' | 'Declined';
 | 
			
		||||
  status: 'Considered' | 'Invited' | 'Confirmed' | 'Declined' | 'Tentative';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export type Group = {
 | 
			
		||||
 | 
			
		||||
@ -26,12 +26,16 @@ export default function guestsTable() {
 | 
			
		||||
      });
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  const handleInviteGuest = (e: React.MouseEvent<HTMLElement>) => handleGuestChange(e, 'invited');
 | 
			
		||||
  const handleConfirmGuest = (e: React.MouseEvent<HTMLElement>) => handleGuestChange(e, 'confirmed');
 | 
			
		||||
  const handleDeclineGuest = (e: React.MouseEvent<HTMLElement>) => handleGuestChange(e, 'declined');
 | 
			
		||||
  const handleTentativeGuest = (e: React.MouseEvent<HTMLElement>) => handleGuestChange(e, 'tentative');
 | 
			
		||||
 | 
			
		||||
  const handleInviteGuest = (e: React.MouseEvent<HTMLElement>) => {
 | 
			
		||||
  const handleGuestChange = (e: React.MouseEvent<HTMLElement>, status:string) => {
 | 
			
		||||
    fetch("/api/guests/bulk_update.json",
 | 
			
		||||
      {
 | 
			
		||||
        method: 'POST',
 | 
			
		||||
        body: JSON.stringify({ properties: { status: "invited" }, guest_ids: [e.currentTarget.getAttribute('data-guest-id')] }),
 | 
			
		||||
        body: JSON.stringify({ properties: { status: status }, guest_ids: [e.currentTarget.getAttribute('data-guest-id')] }),
 | 
			
		||||
        headers: {
 | 
			
		||||
          'Content-Type': 'application/json',
 | 
			
		||||
          'X-CSRF-TOKEN': getCsrfToken(),
 | 
			
		||||
@ -42,6 +46,7 @@ export default function guestsTable() {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  guests.length === 0 && loadGuests();
 | 
			
		||||
  const ctaClassName = "text-white py-1 px-2 mx-1 rounded";
 | 
			
		||||
 | 
			
		||||
  return (
 | 
			
		||||
    <div className="w-full relative overflow-x-auto shadow-md sm:rounded-lg">
 | 
			
		||||
@ -90,6 +95,7 @@ export default function guestsTable() {
 | 
			
		||||
                      'bg-blue-400': guest.status === 'Invited',
 | 
			
		||||
                      'bg-green-600': guest.status === 'Confirmed',
 | 
			
		||||
                      'bg-red-400': guest.status === 'Declined',
 | 
			
		||||
                      'bg-yellow-400': guest.status === 'Tentative',
 | 
			
		||||
                    }
 | 
			
		||||
                  )}>
 | 
			
		||||
                  </span>
 | 
			
		||||
@ -97,9 +103,16 @@ export default function guestsTable() {
 | 
			
		||||
                </span>
 | 
			
		||||
              </td>
 | 
			
		||||
              <td>
 | 
			
		||||
                {guest.status === 'Considered' && (<button data-guest-id={guest.id} onClick={handleInviteGuest} className="bg-blue-300 hover:bg-blue-500 text-white py-1 px-2 rounded">
 | 
			
		||||
                {guest.status === 'Considered' && (<button data-guest-id={guest.id} onClick={handleInviteGuest} className={`${ctaClassName} bg-blue-400 hover:bg-blue-600`}>
 | 
			
		||||
                  Invite
 | 
			
		||||
                </button>)}
 | 
			
		||||
                {(guest.status === 'Invited' || guest.status === 'Tentative') && (
 | 
			
		||||
                  <>
 | 
			
		||||
                    <button data-guest-id={guest.id} onClick={handleConfirmGuest} className={`${ctaClassName} bg-green-500 hover:bg-green-600`}>Confirm</button>
 | 
			
		||||
                    {guest.status != 'Tentative' && <button data-guest-id={guest.id} onClick={handleDeclineGuest} className={`${ctaClassName} bg-yellow-500 hover:bg-yellow-700`}>Tentative</button>}
 | 
			
		||||
                    <button data-guest-id={guest.id} onClick={handleDeclineGuest} className={`${ctaClassName} bg-red-500 hover:bg-red-600`}>Decline</button>
 | 
			
		||||
                  </>
 | 
			
		||||
                )}
 | 
			
		||||
              </td>
 | 
			
		||||
            </tr>
 | 
			
		||||
          ))}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user