#20250: Allowing user to change the text of the submit button on custom forms.

Work Item: 20250
This commit is contained in:
Nicholas Mayne
2014-07-19 19:02:33 +01:00
parent f131b60149
commit 63308f207e
7 changed files with 24 additions and 3 deletions

View File

@@ -65,6 +65,7 @@ namespace Orchard.CustomForms.Drivers {
IfNotNull(context.Attribute(part.PartDefinition.Name, "Message"), x => part.Record.Message = x);
IfNotNull(context.Attribute(part.PartDefinition.Name, "Redirect"), x => part.Record.Redirect = Boolean.Parse(x));
IfNotNull(context.Attribute(part.PartDefinition.Name, "RedirectUrl"), x => part.Record.RedirectUrl = x);
IfNotNull(context.Attribute(part.PartDefinition.Name, "SubmitButtonText"), x => part.Record.SubmitButtonText = x);
}
private static void IfNotNull<T>(T value, Action<T> then) {
@@ -80,6 +81,7 @@ namespace Orchard.CustomForms.Drivers {
context.Element(part.PartDefinition.Name).SetAttributeValue("Message", part.Record.Message);
context.Element(part.PartDefinition.Name).SetAttributeValue("Redirect", part.Record.Redirect);
context.Element(part.PartDefinition.Name).SetAttributeValue("RedirectUrl", part.Record.RedirectUrl);
context.Element(part.PartDefinition.Name).SetAttributeValue("SubmitButtonText", part.Record.SubmitButtonText);
}
}
}

View File

@@ -53,6 +53,12 @@ namespace Orchard.CustomForms {
return 3;
}
public int UpdateFrom3() {
SchemaBuilder.AlterTable("CustomFormPartRecord", table => table.AddColumn<string>("SubmitButtonText"));
return 4;
}
public void Uninstall() {
ContentDefinitionManager.DeleteTypeDefinition("CustomForm");
}

View File

@@ -1,7 +1,6 @@
using System.ComponentModel.DataAnnotations;
using Orchard.ContentManagement;
using Orchard.ContentManagement.Aspects;
using Orchard.Core.Title.Models;
namespace Orchard.CustomForms.Models {
public class CustomFormPart : ContentPart<CustomFormPartRecord> {
@@ -36,6 +35,12 @@ namespace Orchard.CustomForms.Models {
set { Record.RedirectUrl = value; }
}
[Required]
public string SubmitButtonText {
get { return Record.SubmitButtonText; }
set { Record.SubmitButtonText = value; }
}
public string Title {
get { return this.As<ITitleAspect>().Title; }
}

View File

@@ -14,5 +14,7 @@ namespace Orchard.CustomForms.Models {
[StringLengthMax]
public virtual string RedirectUrl { get; set; }
public virtual bool Redirect { get; set; }
public virtual string SubmitButtonText { get; set; }
}
}

View File

@@ -31,6 +31,12 @@
</div>
</fieldset>
<fieldset>
@Html.LabelFor(m => m.CustomFormPart.SubmitButtonText)
@Html.TextBoxFor(m => m.CustomFormPart.SubmitButtonText, new { @class = "text large", @Value = (Model.CustomFormPart.SubmitButtonText ?? @T("Submit").Text) })
<span class="hint">@T("The text of the submit button.")</span>
</fieldset>
<fieldset>
@Html.EditorFor(m => m.CustomFormPart.Redirect)
<label for="@Html.FieldIdFor(m => m.CustomFormPart.Redirect)" class="forcheckbox">@T("Redirect the user once the form is submitted")</label>

View File

@@ -18,7 +18,7 @@
@Display(Model)
<fieldset class="submit-button">
<button type="submit" name="submit.Save" value="submit.Save">@T("Submit")</button>
<button type="submit" name="submit.Save" value="submit.Save">@Model.ContentItem.CustomFormPart.SubmitButtonText</button>
</fieldset>
}

View File

@@ -17,6 +17,6 @@
@Html.Hidden("returnUrl", Request.RawUrl);
<fieldset class="submit-button">
<button type="submit" name="submit.Save" value="submit.Save">@T("Submit")</button>
<button type="submit" name="submit.Save" value="submit.Save">@Model.ContentPart.SubmitButtonText</button>
</fieldset>
}