mirror of
https://github.com/lempamo/Project-Unite.git
synced 2025-01-23 01:32:16 +00:00
ViewBug page
This commit is contained in:
parent
dc233f9db9
commit
e63b7b343b
4 changed files with 131 additions and 0 deletions
|
@ -3,6 +3,7 @@
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Web;
|
using System.Web;
|
||||||
using System.Web.Mvc;
|
using System.Web.Mvc;
|
||||||
|
using Microsoft.AspNet.Identity;
|
||||||
using Project_Unite.Models;
|
using Project_Unite.Models;
|
||||||
|
|
||||||
namespace Project_Unite.Controllers
|
namespace Project_Unite.Controllers
|
||||||
|
@ -24,5 +25,36 @@ public ActionResult ViewCategory(string id)
|
||||||
return new HttpStatusCodeResult(404);
|
return new HttpStatusCodeResult(404);
|
||||||
return View(cat);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -33,6 +33,16 @@ public ForumPost[] Comments
|
||||||
public string ClosedBy { get; set; }
|
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 class BugTag
|
||||||
{
|
{
|
||||||
public string Id { get; set; }
|
public string Id { get; set; }
|
||||||
|
|
|
@ -565,6 +565,7 @@
|
||||||
<Content Include="Views\Bugs\_BugBar.cshtml" />
|
<Content Include="Views\Bugs\_BugBar.cshtml" />
|
||||||
<Content Include="Views\Bugs\_Sidebar.cshtml" />
|
<Content Include="Views\Bugs\_Sidebar.cshtml" />
|
||||||
<Content Include="Views\Bugs\ViewCategory.cshtml" />
|
<Content Include="Views\Bugs\ViewCategory.cshtml" />
|
||||||
|
<Content Include="Views\Bugs\ViewBug.cshtml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="App_Data\" />
|
<Folder Include="App_Data\" />
|
||||||
|
|
88
Project-Unite/Views/Bugs/ViewBug.cshtml
Normal file
88
Project-Unite/Views/Bugs/ViewBug.cshtml
Normal file
|
@ -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>
|
Loading…
Reference in a new issue