Skip to content

Commit

Permalink
Merge pull request #286 from GregFinzer/origin/feature/volunteers11
Browse files Browse the repository at this point in the history
Volunteer Module parts
  • Loading branch information
GregFinzer authored Sep 18, 2023
2 parents 1e06870 + 93ae434 commit 1c89b85
Show file tree
Hide file tree
Showing 8 changed files with 1,063 additions and 182 deletions.
11 changes: 6 additions & 5 deletions BedBrigade.Client/Components/ScheduleGrid.razor
Original file line number Diff line number Diff line change
Expand Up @@ -199,12 +199,13 @@
<GridColumn Field=@nameof(Schedule.GroupName) HeaderText="Group" AutoFit="true"></GridColumn>
<GridColumn Field=@nameof(Schedule.EventNote) HeaderText="Note" Width="350" AllowFiltering="false" ></GridColumn>

<GridColumn Field=@nameof(Schedule.VolunteersMax) HeaderText="Volunteers" TextAlign="TextAlign.Right" AllowFiltering="false" AutoFit="true"></GridColumn>
<GridColumn Field=@nameof(Schedule.VolunteersMax) HeaderText="Volunteers (Max)" TextAlign="TextAlign.Right" AllowFiltering="false" AutoFit="true"></GridColumn>
<GridColumn Field=@nameof(Schedule.VolunteersRegistered) HeaderText="Volunteers (Registered)" TextAlign="TextAlign.Right" AllowFiltering="false" AutoFit="true"></GridColumn>
<GridColumn Field=@nameof(Schedule.VehiclesDeliveryMax) HeaderText="Vehicles (Delivery)" AllowFiltering="false" TextAlign="TextAlign.Right" AutoFit="true"></GridColumn>
<GridColumn Field=@nameof(Schedule.VehiclesNormalMax) HeaderText="Vehicles (Normal)" AllowFiltering="false" TextAlign="TextAlign.Right" AutoFit="true"></GridColumn>
</GridColumns>
<GridColumn Field=@nameof(Schedule.VehiclesNormalMax) HeaderText="Vehicles (Normal)" AllowFiltering="false" TextAlign="TextAlign.Right" AutoFit="true"></GridColumn>
<GridColumn Field=@nameof(Schedule.VehiclesDeliveryRegistered) HeaderText="Vehicles (Registered)" AllowFiltering="false" TextAlign="TextAlign.Right" AutoFit="true"></GridColumn>

</GridColumns>
</SfGrid>
</div>
</div>
Expand Down
234 changes: 234 additions & 0 deletions BedBrigade.Client/Components/VolunteerForm.razor
Original file line number Diff line number Diff line change
@@ -0,0 +1,234 @@
@using System.Globalization

<RotatorContainer RotatorTitle="Volunteer Registration" ImagePath="pages/Volunteer" LocationId="1" />


<div class="container-fluid" style="display: @DisplaySearch">

<div class="row" >
<div class="col-md-12" style="text-align: center">
<br />
<p>If you like to volunteer with Bed Brigade, please select our Location and complete the Volunteer registration form</p>
</div>
</div>

<SearchLocation
@ref="SearchLocation"
Title="Find a Bed Brigade Locations Near Me"
ResultType="DropDownList"
ParentMethod="(childData)=>CheckChildData(childData)"
LocationChanged="(ddlValue)=>HandleSelectedValueChanged(ddlValue)" />
</div>

<div class="container-fluid" style="display: @DisplayForm">

<EditForm EditContext="@EC" >
<DataAnnotationsValidator />

<div class="row">

<div class="col-md-3">
<div class="card">
<div class="card-header" style="text-align: center">Volunteer Information</div>
<div class="card-body">
<div class="form-group">
<SfCheckBox Label="Have you volunteered for Bed Brigade before?" @bind-Checked="newVolunteer.IHaveVolunteeredBefore" @onchange="onPreviousVolunteer"></SfCheckBox>
</div>
<div class="form-group" style="display: @DisplayExistingMessage">
@ExistingMessage
</div>
<div class="form-group">
<label for="firstname" class="formlabel required">First Name</label>
<SfTextBox ID="firstname" @bind-Value="newVolunteer.FirstName" Blur="@RunValidation" ></SfTextBox>
<div style="font-size: smaller">
<ValidationMessage For="@(() => newVolunteer.FirstName)"></ValidationMessage>
</div>
</div>
<div class="form-group ">
<label for="lastname" class="formlabel required">Last Name</label>
<SfTextBox ID="lastname" @bind-Value="newVolunteer.LastName" Blur="@RunValidation"></SfTextBox>
<div style="font-size: smaller">
<ValidationMessage For="@(() => newVolunteer.LastName)"></ValidationMessage>
</div>
</div>
<div class="form-group">
<label for="email" class="formlabel required">Email</label>
<SfTextBox ID="email" @bind-Value="newVolunteer.Email" Blur="@RunValidation"></SfTextBox>
<div style="font-size: smaller">
<ValidationMessage For="@(() => newVolunteer.Email)"></ValidationMessage>
<div style="display: @DisplayEmailMessage">
@BootstrapHelper.GetBootstrapMessage("warning", "This email is already registered.", "", false,"compact");
</div>
</div>
</div>
<div class="form-group">
<label for="phone" class="formlabel required">Phone</label>
<SfMaskedTextBox Mask='(000) 000-0000' ID="phone" @bind-Value="newVolunteer.Phone" Blur="@RunValidation" ></SfMaskedTextBox>
<div style="font-size: smaller">
<ValidationMessage For="@(() => newVolunteer.Phone)"></ValidationMessage>
</div>
</div>
<div class="form-group">
<label for="email" class="formlabel">Organization or Group</label>
<SfTextBox ID="email" @bind-Value="newVolunteer.OrganizationOrGroup" Blur="@RunValidation"></SfTextBox>
</div>
<div class="form-group">
<label for="inst" class="formlabel">Message</label>
<SfTextBox ID="inst" @bind-Value="newVolunteer.Message" Multiline="true" HtmlAttributes="DescriptionHtmlAttribute"></SfTextBox>
</div>
<div>
@BootstrapHelper.GetBootstrapMessage("info", "Please tell us about any preferences, restrictions & limitations you have when it comes to volunteering tasks.", "", false,"compact")
</div>
</div>
<div class="card-footer text-muted" style="text-align: center; font-size:small; color: GrayText; display: @DisplayExId" >
<span>Volunteer Id: @newVolunteer.VolunteerId</span>&nbsp;|&nbsp;<span>
Last Visit: @(newVolunteer.UpdateDate.HasValue ? Convert.ToDateTime(newVolunteer.UpdateDate, System.Globalization.CultureInfo.GetCultureInfo("en-US").DateTimeFormat) : "")
</span>
</div>
</div>
</div>

<div class="col-md-3">
<div class="card">
<div class="card-header" style="text-align: center" >Delivery Vehicles
</div>
<div class="card-body" >
<div class="control-section">
<div class="radio-control">
@BootstrapHelper.GetBootstrapMessage("help", "Do you have a vehicle that can carry a bed and mattress?","", false, "compact")
<div class="row">
<SfRadioButton Label="@EnumHelper.GetEnumDescription(Common.VehicleType.NoCar)" Name="RadioBtn" Value="@Common.VehicleType.NoCar.ToString()" @bind-checked="newVolunteer.VehicleType" TChecked="VehicleType"></SfRadioButton>
</div>
<hr/>
<div class="row">
<SfRadioButton Label="@EnumHelper.GetEnumDescription(Common.VehicleType.Minivan)" Name="RadioBtn" Value="@Common.VehicleType.Minivan.ToString()" @bind-checked="newVolunteer.VehicleType" TChecked="VehicleType"></SfRadioButton>
@BootstrapHelper.GetBootstrapMessage("info", "Minivan with seats removed or folded into the floor (Honda Odyseey, Toyota Sienna, Chrysler Pacifica, Kia Carnival, etc.)","", false, "compact")
</div>
<hr />
<div class="row">
<SfRadioButton Label="@EnumHelper.GetEnumDescription(Common.VehicleType.SUV)" Name="RadioBtn" Value="@Common.VehicleType.SUV.ToString()" @bind-checked="newVolunteer.VehicleType" TChecked="VehicleType"></SfRadioButton>
@BootstrapHelper.GetBootstrapMessage("info", "Chevrolet Suburban, Chevrolet Tahoe, Ford Expedition, GMC Yukon, Toyota Sequoia, Nissan Armada, etc.","", false, "compact")
</div>
<hr />
<div class="row">
<SfRadioButton Label="@EnumHelper.GetEnumDescription(Common.VehicleType.Truck)" Value="@Common.VehicleType.Truck.ToString()" Name="RadioBtn" @bind-checked="newVolunteer.VehicleType" TChecked="VehicleType"></SfRadioButton>
@BootstrapHelper.GetBootstrapMessage("info", "A pickup truck with a camper shell or with a canopy.","", false, "compact")
</div>
<hr />
<div class="row">
<SfRadioButton Label="@EnumHelper.GetEnumDescription(Common.VehicleType.Other)" Value="@Common.VehicleType.Other.ToString()" Name="RadioBtn" @bind-checked="newVolunteer.VehicleType" TChecked="VehicleType"></SfRadioButton>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-3">

<div class="card">
<div class="card-header" style="text-align: center">
Bed Brigade Location Events
</div>
<div class="card-body" style="display: @DisplayLocationEvents">
<div class="form-group">
<label for="events" class="formlabel">Location Available Events&nbsp;(@LocationEvents.Count)</label>
<SfDropDownList TValue="int" TItem="Schedule" PopupHeight="350px" PopupWidth="350px" Placeholder="Select an event" DataSource="@LocationEvents">
<DropDownListFieldSettings Value="ScheduleId" Text="EventSelect"></DropDownListFieldSettings>
<DropDownListEvents TValue="int" TItem="Schedule" ValueChange="ChangeEvent"></DropDownListEvents>
</SfDropDownList>
<div style="font-size: smaller">
</div>
</div>
<div style="display: @DisplayEventDetail">
<label class="formlabel">Selected Event Details</label>
<div class="form-group">
<label class="formlabel">Event ID & Name</label>
<label>@SelectedEvent.ScheduleId: @SelectedEvent.EventName</label>
</div>
<div class="form-group">
<label class="formlabel">Event Date & Time</label>
<label>@SelectedEvent.EventDateScheduled.ToShortDateString(),&nbsp;@SelectedEvent.EventDateScheduled.ToShortTimeString()</label>
</div>
<div class="form-group">
<label class="formlabel">Event Type</label>
<label>@SelectedEvent.EventType</label>
</div>
<div class="form-group">
<label class="formlabel">Event Group</label>
<label>@SelectedEvent.GroupName</label>
</div>
<div class="form-group">
<label class="formlabel">Volunteers needed/registered</label>
<label>@SelectedEvent.VolunteersMax/@SelectedEvent.VolunteersRegistered</label>
</div>
<div class="form-group">
<label class="formlabel">DeliveryVehicles needed/registered</label>
<label>@SelectedEvent.VehiclesDeliveryMax/@SelectedEvent.VehiclesDeliveryRegistered</label>
</div>
<div class="form-group">
<label class="formlabel">Event Note</label>
<label>@SelectedEvent.EventNote</label>
</div>
<hr />
<div class="form-group">
<label class="formlabel">You could be registered to this event</label>
<SfTextBox ID="volnote" Multiline="true" HtmlAttributes="DescriptionHtmlAttribute" @bind-Value="@VolunteerEventNote"></SfTextBox>
</div>
<div>
@BootstrapHelper.GetBootstrapMessage("info", "Please leave a comment/note about your participation to the event and/or check box below.", "", false,"compact")
</div>
<div class="form-group" style="font-weight: bold; font-size:medium">
<SfCheckBox CssClass="formlabel" @bind-Checked="isRegisterNow" Label="I want to register as volunteer to the selected event" @onchange="RegisterNow"></SfCheckBox>
</div>
</div>
</div>
<div class="card-body" style="display: @DisplayLocationStatusMessage">
@LocationEventsAlert
</div>
</div>
</div>


</div>
<div class="row">
<div class="col-md-12">&nbsp;</div>
</div>
<div class="row">
<div class="col-md-12">
<div>
<div class="@AlertType" role="alert" style="display: @AlertDisplay ">
@((MarkupString)SubmitAlertMessage)
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-3" style="text-align: center">
<ReCAPTCHA @ref="reCAPTCHAComponent" OnSuccess="OnSuccess" OnExpired="OnExpired" />
</div>
<div class="col-md-9">
<div style="display: @NotificationDisplay" >
@((MarkupString)NotificationMessage)
</div>
</div>
</div>
<br />
<div class="row" >
<div class="col-md-3" style="text-align: center">
<SfButton CssClass="btn btn-primary" OnClick="@SaveVolunteer">Submit Volunteer Registration</SfButton>
</div>
<div class="col-md-9">
</div>
</div>

</EditForm>

</div>

<div class="container-fluid" style="display: @ResultDisplay">@FinalMessage</div>






Loading

0 comments on commit 1c89b85

Please sign in to comment.