Add cancel button for edit log.
Disable edit button for past month Format gas correctly
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using MileageTraker.Web.Models;
|
||||||
|
|
||||||
namespace MileageTraker.Web.Attributes
|
namespace MileageTraker.Web.Attributes
|
||||||
{
|
{
|
||||||
@@ -13,8 +14,9 @@ namespace MileageTraker.Web.Attributes
|
|||||||
|
|
||||||
private static DateTime GetCutoff()
|
private static DateTime GetCutoff()
|
||||||
{
|
{
|
||||||
var today = DateTime.Today;
|
return DomainRules.GetLogEntryCutoff();
|
||||||
return today.AddMonths(-1).AddDays(-today.Day + 1); // last two months
|
//var today = DateTime.Today;
|
||||||
|
//return today.AddMonths(-1).AddDays(-today.Day + 1); // last two months
|
||||||
//if (today.Day > 10)
|
//if (today.Day > 10)
|
||||||
// return today.AddDays(-today.Day); // beginning of this month
|
// return today.AddDays(-today.Day); // beginning of this month
|
||||||
//return today.AddMonths(-1).AddDays(-today.Day); // beginning of previous month
|
//return today.AddMonths(-1).AddDays(-today.Day); // beginning of previous month
|
||||||
|
|||||||
@@ -62,7 +62,16 @@ namespace MileageTraker.Web.Controllers
|
|||||||
|
|
||||||
DataService.UpdateLog(log);
|
DataService.UpdateLog(log);
|
||||||
|
|
||||||
TempData["StatusMessage"] = "Log updated";
|
TempData["StatusMessage-Type"] = "alert-success";
|
||||||
|
TempData["StatusMessage"] =
|
||||||
|
@"You've successfully updated an entry
|
||||||
|
traveling to <strong>" + viewModel.CityName + @"</strong>
|
||||||
|
for <strong>" + log.Purpose.Purpose + @"</strong>
|
||||||
|
on <strong>" + viewModel.Date.ToShortDateString() + @"</strong>
|
||||||
|
in Vehicle Id <strong>" + viewModel.VehicleId + @"</strong>
|
||||||
|
ending in <strong>" + viewModel.EndOdometer + @"</strong>
|
||||||
|
miles on the odometer.";
|
||||||
|
|
||||||
return RedirectToAction("Index");
|
return RedirectToAction("Index");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
|
||||||
|
namespace MileageTraker.Web.Models
|
||||||
|
{
|
||||||
|
public static class DomainRules
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Returns the most recent date for which a log can be submitted from today
|
||||||
|
/// </summary>
|
||||||
|
public static DateTime GetLogEntryCutoff()
|
||||||
|
{
|
||||||
|
return GetLogEntryCutoff(DateTime.Today);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns the most recent date for which a log can be submitted given the
|
||||||
|
/// reference date
|
||||||
|
/// </summary>
|
||||||
|
public static DateTime GetLogEntryCutoff(DateTime referenceDate)
|
||||||
|
{
|
||||||
|
return referenceDate.AddMonths(-1).AddDays(-referenceDate.Day + 1); // last two months
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -68,6 +68,12 @@ namespace MileageTraker.Web.ViewModels.CreateLog
|
|||||||
|
|
||||||
static EditPastViewModel()
|
static EditPastViewModel()
|
||||||
{
|
{
|
||||||
|
Func<Models.Log, object> gasFormatter = l =>
|
||||||
|
{
|
||||||
|
if (Math.Abs(l.GasPurchased - 0.0) < double.Epsilon)
|
||||||
|
return string.Empty;
|
||||||
|
return l.GasPurchased;
|
||||||
|
};
|
||||||
Mapper.CreateMap<string, int>().ConvertUsing(Convert.ToInt32);
|
Mapper.CreateMap<string, int>().ConvertUsing(Convert.ToInt32);
|
||||||
Mapper.CreateMap<string, double>().ConvertUsing(Convert.ToDouble);
|
Mapper.CreateMap<string, double>().ConvertUsing(Convert.ToDouble);
|
||||||
Mapper.CreateMap<string, DateTime>().ConvertUsing(new DateTimeTypeConverter());
|
Mapper.CreateMap<string, DateTime>().ConvertUsing(new DateTimeTypeConverter());
|
||||||
@@ -75,7 +81,8 @@ namespace MileageTraker.Web.ViewModels.CreateLog
|
|||||||
.ForMember(u => u.Purpose, opt => opt.Ignore());
|
.ForMember(u => u.Purpose, opt => opt.Ignore());
|
||||||
Mapper.CreateMap<Models.Log, EditPastViewModel>()
|
Mapper.CreateMap<Models.Log, EditPastViewModel>()
|
||||||
.ForMember(vm => vm.Date, opt => opt.MapFrom(m => m.Date.ToString("d")))
|
.ForMember(vm => vm.Date, opt => opt.MapFrom(m => m.Date.ToString("d")))
|
||||||
.ForMember(u => u.Purpose, opt => opt.Ignore());
|
.ForMember(u => u.Purpose, opt => opt.Ignore())
|
||||||
|
.ForMember(vm => vm.GasPurchased, opt => opt.ResolveUsing(gasFormatter));
|
||||||
}
|
}
|
||||||
|
|
||||||
public EditPastViewModel()
|
public EditPastViewModel()
|
||||||
|
|||||||
@@ -15,7 +15,8 @@
|
|||||||
@Html.Partial("_ValidationSummary")
|
@Html.Partial("_ValidationSummary")
|
||||||
@Html.EditorForModel()
|
@Html.EditorForModel()
|
||||||
<div class="form-actions">
|
<div class="form-actions">
|
||||||
<input type="submit" value="Submit" class="btn btn-primary" />
|
<input type="submit" value="Submit" class="btn btn-primary" />
|
||||||
|
@Html.ActionLink("Cancel", "Index", new {}, new { @class = "btn" })
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,10 +36,17 @@
|
|||||||
@Html.Encode(log.EndOdometer)
|
@Html.Encode(log.EndOdometer)
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@Html.Encode(log.LogType.Enum.GetDisplayName())
|
@Html.Encode(log.LogType.Enum.GetDisplayShortName())
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@Html.ActionLink("Edit", "EditPast", new { id = log.LogId }, new { @class = "btn btn-mini" })
|
@if (log.Date >= DomainRules.GetLogEntryCutoff())
|
||||||
|
{
|
||||||
|
@Html.ActionLink("Edit", "EditPast", new {id = log.LogId}, new {@class = "btn btn-mini"})
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
@Html.ActionLink("Edit", "EditPast", new {id = log.LogId}, new {@class = "btn btn-mini disabled", title="Previous Month" })
|
||||||
|
}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
}
|
}
|
||||||
@@ -48,4 +55,7 @@
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
<p>Mileage history not found for <strong>@ViewData["name"]</strong></p>
|
<p>Mileage history not found for <strong>@ViewData["name"]</strong></p>
|
||||||
}
|
}
|
||||||
|
<script type="text/javascript">
|
||||||
|
$('a.btn.disabled').prop('disabled', true).removeAttr('href');
|
||||||
|
</script>
|
||||||
@@ -169,6 +169,7 @@
|
|||||||
<DependentUpon>201303071926246_UpdatePurposeRequired.cs</DependentUpon>
|
<DependentUpon>201303071926246_UpdatePurposeRequired.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Migrations\Configuration.cs" />
|
<Compile Include="Migrations\Configuration.cs" />
|
||||||
|
<Compile Include="Models\DomainRules.cs" />
|
||||||
<Compile Include="Models\PurposeType.cs" />
|
<Compile Include="Models\PurposeType.cs" />
|
||||||
<Compile Include="ViewModels\Account\ResetPasswordViewModel.cs" />
|
<Compile Include="ViewModels\Account\ResetPasswordViewModel.cs" />
|
||||||
<Compile Include="Models\Role.cs" />
|
<Compile Include="Models\Role.cs" />
|
||||||
|
|||||||
Reference in New Issue
Block a user