Add register member partial view macro template

This commit is contained in:
Sebastiaan Janssen
2013-08-27 19:29:15 +02:00
parent 53b6fb7b56
commit 86276206d5
6 changed files with 151 additions and 0 deletions

View File

@@ -2136,6 +2136,7 @@
<Content Include="Umbraco\Scripting\templates\cshtml\TwitterFeed.cshtml" />
<Content Include="Umbraco\PartialViews\Templates\Login.cshtml" />
<Content Include="Umbraco\PartialViews\Templates\EmptyTemplate.cshtml" />
<Content Include="Umbraco\PartialViews\Templates\RegisterMember.cshtml" />
<None Include="Umbraco_client\CodeMirror\js\mode\coffeescript\LICENSE" />
<None Include="Umbraco_client\CodeMirror\js\mode\pascal\LICENSE" />
<None Include="Umbraco_client\CodeMirror\js\mode\perl\LICENSE" />

View File

@@ -0,0 +1,74 @@
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@using System.Web.Mvc.Html
@using ClientDependency.Core.Mvc
@using umbraco.cms.businesslogic.member
@using Umbraco.Web.UmbracoModels
@using Umbraco.Web.UmbracoControllers
@{
Html.EnableClientValidation();
Html.EnableUnobtrusiveJavaScript();
// TODO: CDF doesn't work at the moment, Shannon is looking at it
//Html.RequiresJs("/umbraco_client/ui/jquery.js");
//Html.RequiresJs("/umbraco_client/Application/JQuery/jquery.validate.min.js");
//Html.RequiresJs("/umbraco_client/Application/JQuery/jquery.validate.unobtrusive.min.js");
// TODO: Make a helper for this
var memberTypeAlias = "UmbracoMember";
if (Model.MacroParameters.Any() && Model.MacroParameters.ContainsKey("memberTypeAlias"))
{
var alias = Model.MacroParameters["memberTypeAlias"];
if (string.IsNullOrWhiteSpace(alias.ToString()) == false)
{
memberTypeAlias = alias.ToString();
}
}
var registerModel = new RegisterModel
{
MemberProperties = new List<UmbracoProperty>(),
MemberTypeAlias = memberTypeAlias
};
// TODO: Fill model somewhere else
var memberType = MemberType.GetByAlias(registerModel.MemberTypeAlias);
foreach (var prop in memberType.PropertyTypes.Where(memberType.MemberCanEdit))
{
registerModel.MemberProperties.Add(new UmbracoProperty {Alias = prop.Alias, Name = prop.Name, Value = string.Empty});
}
}
<script src="@Url.Content("~/umbraco_client/ui/jquery.js")" type="text/javascript"></script>
<script src="@Url.Content("~/umbraco_client/Application/JQuery/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/umbraco_client/Application/JQuery/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginUmbracoForm<RegisterController>("HandleRegisterMember"))
{
<fieldset>
<legend>Register Member</legend>
@Html.LabelFor(m => registerModel.Email)
@Html.TextBoxFor(m => registerModel.Email)
@Html.ValidationMessageFor(m => registerModel.Email)
<br />
@Html.LabelFor(m => registerModel.Password)
@Html.PasswordFor(m => registerModel.Password)
@Html.ValidationMessageFor(m => registerModel.Password)
<br />
@for (var i = 0; i < registerModel.MemberProperties.Count; i++)
{
@Html.LabelFor(m => registerModel.MemberProperties[i].Value, registerModel.MemberProperties[i].Name)
@Html.EditorFor(m => registerModel.MemberProperties[i].Value)
@Html.HiddenFor(m => registerModel.MemberProperties[i].Alias)
<br />
}
@Html.HiddenFor(m => registerModel.MemberTypeAlias)
<button>Register</button>
</fieldset>
}