Add wiki list to dev CP

This commit is contained in:
Michael 2017-04-06 11:22:05 -04:00
parent e6aa1c4fd5
commit f7756ab7cc
4 changed files with 76 additions and 0 deletions

View file

@ -15,18 +15,24 @@ public class DeveloperController : Controller
// GET: Developer // GET: Developer
public ActionResult Index() public ActionResult Index()
{ {
if (!ACL.Granted(User.Identity.Name, "CanAccessDevCP"))
return new HttpStatusCodeResult(403);
ViewBag.Developer = true; ViewBag.Developer = true;
return View(); return View();
} }
public ActionResult Releases() public ActionResult Releases()
{ {
if (!ACL.Granted(User.Identity.Name, "CanAccessDevCP"))
return new HttpStatusCodeResult(403);
var db = new ApplicationDbContext(); var db = new ApplicationDbContext();
return View(db.Downloads); return View(db.Downloads);
} }
public ActionResult AddRelease() public ActionResult AddRelease()
{ {
if (!ACL.Granted(User.Identity.Name, "CanAccessDevCP"))
return new HttpStatusCodeResult(403);
if (!ACL.Granted(User.Identity.Name, "CanReleaseBuild")) if (!ACL.Granted(User.Identity.Name, "CanReleaseBuild"))
return new HttpStatusCodeResult(403); return new HttpStatusCodeResult(403);
ViewBag.Developer = true; ViewBag.Developer = true;
@ -41,6 +47,8 @@ public ActionResult AddRelease()
[ValidateAntiForgeryToken] [ValidateAntiForgeryToken]
public ActionResult AddRelease(PostDownloadViewModel model) public ActionResult AddRelease(PostDownloadViewModel model)
{ {
if (!ACL.Granted(User.Identity.Name, "CanAccessDevCP"))
return new HttpStatusCodeResult(403);
if (!ACL.Granted(User.Identity.Name, "CanReleaseBuild")) if (!ACL.Granted(User.Identity.Name, "CanReleaseBuild"))
return new HttpStatusCodeResult(403); return new HttpStatusCodeResult(403);
if (!ModelState.IsValid) if (!ModelState.IsValid)
@ -121,6 +129,17 @@ public ActionResult AddRelease(PostDownloadViewModel model)
return RedirectToAction("Releases"); return RedirectToAction("Releases");
} }
[Authorize]
public ActionResult Wiki()
{
if (!ACL.Granted(User.Identity.Name, "CanAccessDevCP"))
return new HttpStatusCodeResult(403);
ViewBag.Developer = true;
var db = new ApplicationDbContext();
var cats = db.WikiCategories;
return View(cats);
}
} }

View file

@ -1,10 +1,32 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq; using System.Linq;
using System.Web; using System.Web;
using System.Web.Mvc;
namespace Project_Unite.Models namespace Project_Unite.Models
{ {
public class AddWikiCategoryViewModel
{
public AddWikiCategoryViewModel()
{
}
public List<SelectListItem> Parents { get; set; }
[Required(AllowEmptyStrings = false, ErrorMessage ="Please name your category.")]
[MinLength(5, ErrorMessage ="Your category's name must be at least 5 characters long.")]
[MaxLength(25, ErrorMessage ="Your category's name must be at most 25 characters long.")]
public string Name { get; set; }
[Required(AllowEmptyStrings = false, ErrorMessage = "Please select a parent category.")]
public string ParentId { get; set; }
}
public class WikiCategory public class WikiCategory
{ {
public string Id { get; set; } public string Id { get; set; }

View file

@ -543,6 +543,7 @@
<Content Include="Views\Developer\AddRelease.cshtml" /> <Content Include="Views\Developer\AddRelease.cshtml" />
<Content Include="Views\Download\ViewRelease.cshtml" /> <Content Include="Views\Download\ViewRelease.cshtml" />
<Content Include="Views\Home\Discord.cshtml" /> <Content Include="Views\Home\Discord.cshtml" />
<Content Include="Views\Developer\Wiki.cshtml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="App_Data\" /> <Folder Include="App_Data\" />

View file

@ -0,0 +1,34 @@
@model IEnumerable<Project_Unite.Models.WikiCategory>
@{
ViewBag.Title = "Wiki";
}
<h2>Wiki</h2>
<p>The ShiftOS Wiki can be used to hold everything from coding guides to character details and everything in between.</p>
<p>Here you can manage categories.</p>
<ul class="nav nav-tabs">
<li><a href="@Url.Action("AddWikiCategory", "Developer")"><span class="glyphicon glyphicon-plus"></span> Add new category</a></li>
</ul>
<table class="table">
<tr>
<th style="width:45%">Category</th>
<th style="width:5%">Pages</th>
<th>Actions</th>
</tr>
@foreach(var wiki in Model)
{
<tr>
<th>@wiki.Name</th>
<th>@wiki.Pages.Count()</th>
<th>
<a href="@Url.Action("EditWikiCategory", "Developer", new { id = wiki.Id })" class="btn btn-default"><span class="glyphicon glyphicon-pencil"></span> Edit</a>
<a href="@Url.Action("DeleteWikiCategory", "Developer", new { id = wiki.Id })" class="btn btn-default"><span class="glyphicon glyphicon-trash"></span> Delete</a>
</th>
</tr>
}
</table>