diff options
| author | Michael <[email protected]> | 2017-04-14 17:32:04 -0400 |
|---|---|---|
| committer | Michael <[email protected]> | 2017-04-14 17:32:04 -0400 |
| commit | e63b7b343b56c0170ee7dedd9eea3773ac302350 (patch) | |
| tree | ebb7c70db1e3ec40e0e07558495f588a10306919 | |
| parent | dc233f9db90d283f3131a0185693bc48a8aee640 (diff) | |
| download | project-unite-e63b7b343b56c0170ee7dedd9eea3773ac302350.tar.gz project-unite-e63b7b343b56c0170ee7dedd9eea3773ac302350.tar.bz2 project-unite-e63b7b343b56c0170ee7dedd9eea3773ac302350.zip | |
ViewBug page
| -rw-r--r-- | Project-Unite/Controllers/BugsController.cs | 32 | ||||
| -rw-r--r-- | Project-Unite/Models/BugModels.cs | 10 | ||||
| -rw-r--r-- | Project-Unite/Project-Unite.csproj | 1 | ||||
| -rw-r--r-- | Project-Unite/Views/Bugs/ViewBug.cshtml | 88 |
4 files changed, 131 insertions, 0 deletions
diff --git a/Project-Unite/Controllers/BugsController.cs b/Project-Unite/Controllers/BugsController.cs index 34de971..d7ee4e2 100644 --- a/Project-Unite/Controllers/BugsController.cs +++ b/Project-Unite/Controllers/BugsController.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; +using Microsoft.AspNet.Identity; using Project_Unite.Models; namespace Project_Unite.Controllers @@ -24,5 +25,36 @@ namespace Project_Unite.Controllers return new HttpStatusCodeResult(404); return View(cat); } + + public ActionResult ViewBug(string id) + { + var db = new ApplicationDbContext(); + var bug = db.Bugs.FirstOrDefault(x => x.Id == id); + if (bug == null) + return new HttpStatusCodeResult(404); + var model = new ViewBugViewModel(); + model.BugData = bug; + return View(model); + } + + [HttpPost] + [ValidateAntiForgeryToken] + [Authorize] + public ActionResult ViewBug(ViewBugViewModel model) + { + if (!ModelState.IsValid) + return View(model); + var db = new ApplicationDbContext(); + var post = new ForumPost(); + post.Id = Guid.NewGuid().ToString(); + post.AuthorId = User.Identity.GetUserId(); + post.Body = model.Comment; + post.Parent = model.BugData.Id; + post.PostedAt = DateTime.Now; + db.ForumPosts.Add(post); + db.SaveChanges(); + model.Comment = ""; + return View(model); + } } }
\ No newline at end of file diff --git a/Project-Unite/Models/BugModels.cs b/Project-Unite/Models/BugModels.cs index 9a6b0ad..0ccca4a 100644 --- a/Project-Unite/Models/BugModels.cs +++ b/Project-Unite/Models/BugModels.cs @@ -33,6 +33,16 @@ namespace Project_Unite.Models public string ClosedBy { get; set; } } + public class ViewBugViewModel + { + public Bug BugData { get; set; } + + [AllowHtml] + [Required(AllowEmptyStrings =false, ErrorMessage ="Please enter a valid comment.")] + [MinLength(20, ErrorMessage = "Your comment must have at least 20 characters.")] + public string Comment { get; set; } + } + public class BugTag { public string Id { get; set; } diff --git a/Project-Unite/Project-Unite.csproj b/Project-Unite/Project-Unite.csproj index 4d72118..f7e54ed 100644 --- a/Project-Unite/Project-Unite.csproj +++ b/Project-Unite/Project-Unite.csproj @@ -565,6 +565,7 @@ <Content Include="Views\Bugs\_BugBar.cshtml" /> <Content Include="Views\Bugs\_Sidebar.cshtml" /> <Content Include="Views\Bugs\ViewCategory.cshtml" /> + <Content Include="Views\Bugs\ViewBug.cshtml" /> </ItemGroup> <ItemGroup> <Folder Include="App_Data\" /> diff --git a/Project-Unite/Views/Bugs/ViewBug.cshtml b/Project-Unite/Views/Bugs/ViewBug.cshtml new file mode 100644 index 0000000..aee1fcc --- /dev/null +++ b/Project-Unite/Views/Bugs/ViewBug.cshtml @@ -0,0 +1,88 @@ +@model Project_Unite.Models.ViewBugViewModel +@{ + ViewBag.Title = Model.BugData.Name + " - Bugs"; + var tags = new Project_Unite.Models.ApplicationDbContext().BugTags; +} + + + +<h2>Bugtracker</h2> + +@{ + Html.RenderPartial("~/Views/Bugs/_BugBar.cshtml"); +} + +<div class="row"> + <div class="col-xs-3"> + @{ + Html.RenderPartial("~/Views/Bugs/_Sidebar.cshtml", tags); + } + </div> + + <div class="col-xs-9"> + <h3>@Model.BugData.Name</h3> + + <p> + Opened by <strong>@Html.UserLink(Model.BugData.Reporter)</strong> at <strong>@Model.BugData.ReportedAt</strong> • + @if (Model.BugData.Open) + { + <strong>Open</strong> + } + else + { + <strong>Closed by @Html.UserLink(Model.BugData.ClosedBy) at @Model.BugData.ClosedAt </strong> + } + • + @switch (Model.BugData.Urgency) + { + case 0: + <strong>Minor</strong> + break; + case 1: + <strong>Moderate</strong> + break; + case 2: + <strong>Major</strong> + break; + case 3: + <strong>Critical</strong> + break; + default: + <strong>A bug occurred in the bugtracker. Urgency unknown.</strong> + break; + } + + </p> + + @foreach(var post in Model.BugData.Comments.OrderBy(x=>x.PostedAt)) + { + <div class="panel panel-default"> + <div class="panel-body"> + <p>@Html.UserLink(post.AuthorId) at @post.PostedAt</p> + <hr/> + <p>@Html.Markdown(post.Body)</p> + </div> + </div> + } + <hr/> + @using (Html.BeginForm()) + { + <div class="panel panel-default"> + <div class="panel-body"> + <h4>Post a comment</h4> + + @Html.AntiForgeryToken() + <div class="panel panel-danger"> + <div class="panel-body"> + @Html.ValidationSummary() + </div> + </div> + + @Html.TextAreaFor(Model=>Model.Comment, new { @class="form-control", rows="5"}) + <p><input type="submit" class="btn btn-primary" value="Post" /> Markdown is supported.</p> + </div> + </div> + } + + </div> +</div>
\ No newline at end of file |
