or
public class LoginViewModel : BaseViewModel
{
public LoginModel Model { get; set; }
}
public class LoginModel
{
[Required(ErrorMessageResourceName="Generic_Error_IsRequired", ErrorMessageResourceType=typeof(App_GlobalResources.Resource))]
[Display(Name="Login_Username", ResourceType=typeof(App_GlobalResources.Resource))]
public string UserName { get; set; }
[Required(ErrorMessageResourceName = "Generic_Error_IsRequired", ErrorMessageResourceType = typeof(App_GlobalResources.Resource))]
[DataType(DataType.Password)]
[Display(Name = "Login_Password", ResourceType = typeof(App_GlobalResources.Resource))]
public string Password { get; set; }
[Display(Name = "Login_Remember_me", ResourceType = typeof(App_GlobalResources.Resource))]
public bool RememberMe { get; set; }
}
@model Gusto.Web.ViewModels.LoginViewModel
@{
ViewBag.Title = @Resources.Resource.Login_Page_Title;
}
<
div
class
=
"form-vertical login"
>
<!-- BEGIN LOGO -->
<
div
class
=
"logo"
>
<
h1
>Bluefox</
h1
>
</
div
>
@using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl }))
{
<
div
id
=
"login-form"
>
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<
div
class
=
"status"
></
div
>
<
fieldset
>
<
legend
>@Resources.Resource.Login_Page_Title</
legend
>
<
div
class
=
"control-group"
>
@Html.LabelFor(m => m.Model.UserName, new { @class="control-label"})
<
div
class
=
"controls"
>
@Html.EditorFor(m => m.Model.UserName, new { @required="required" })
@Html.ValidationMessageFor(m => m.Model.UserName)
</
div
>
</
div
>
<
div
class
=
"control-group"
>
@Html.LabelFor(m => m.Model.Password)
@Html.PasswordFor(m => m.Model.Password, new { @required="required" })
@Html.ValidationMessageFor(m => m.Model.Password)
</
div
>
<
div
class
=
"control-group"
>
@Html.CheckBoxFor(m => m.Model.RememberMe)
@Html.LabelFor(m => m.Model.RememberMe, new { @class = "checkbox" })
</
div
>
<
input
type
=
"submit"
class
=
"btn green pull-right"
value
=
"Login"
id
=
"btnSubmit"
/>
</
fieldset
>
</
div
>
}
<
p
>
@Html.ActionLink("Register", "Register") @Resources.Resource.Login_Register
</
p
>
</
div
>
@section Scripts {
<
script
type
=
"text/javascript"
>
$(document).ready(function () {
var validator = $("#login-form").kendoValidator().data("kendoValidator"), status = $(".status");
$("#btnSubmit").click(function () {
if (validator.validate()) {
save();
} else {
status.text("@Resources.Resource.Generic_Error_Form")
.removeClass("valid")
.addClass("invalid");
}
});
});
</
script
>
}
@(Html.Kendo().MultiSelect()
.Name(AMultiName)
.DataTextField("PrettyText")
.DataValueField("MapAbbreviation")
.Placeholder("Edit EMR maps...")
.Filter(FilterType.Contains).MinLength(3)
.AutoBind(false)
.DataSource(
ds => ds.Read(r=>r.Action("ReadMapOptions","EmrMappingKendo", new {Area="Messaging"})).ServerFiltering(true))
.Value(ASelectedOptions)
.Events(e =>
{
e.Change("onChangeEvent");
e.DataBound("saveInitialMultiValues");
})
)
//function invoked by dataBound
function
saveInitialMultiValues(multi) {
multi.sender._originaldataItems = multi.sender._dataItems.slice(0);
multi.sender._originalValues = multi.sender._values.slice(0);
}
function
cancelMultiSelectUpdates(multiId) {
var
multi = $(
'#'
+ multiId);
var
temp = multi.data(
"kendoMultiSelect"
);
temp._dataItems = temp._originaldataItems;
temp._values = temp._originalValues;
refresh();
}
@model Gusto.Web.ViewModels.LoginViewModel
@{
ViewBag.Title = @Resources.Resource.Login_Page_Title;
}
<
div
class
=
"form-vertical login"
>
<!-- BEGIN LOGO -->
<
div
class
=
"logo"
>
<
h1
>Bluefox</
h1
>
</
div
>
@using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl }))
{
<
div
id
=
"login-form"
>
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<
div
class
=
"status"
></
div
>
<
fieldset
>
<
legend
>@Resources.Resource.Login_Page_Title</
legend
>
<
div
class
=
"control-group"
>
@Html.LabelFor(m => m.Model.UserName, new { @class="control-label"})
<
div
class
=
"controls"
>
@Html.EditorFor(m => m.Model.UserName, new { @required="required" })
@Html.ValidationMessageFor(m => m.Model.UserName)
</
div
>
</
div
>
<
div
class
=
"control-group"
>
@Html.LabelFor(m => m.Model.Password)
@Html.PasswordFor(m => m.Model.Password, new { @required="required" })
@Html.ValidationMessageFor(m => m.Model.Password)
</
div
>
<
div
class
=
"control-group"
>
@Html.CheckBoxFor(m => m.Model.RememberMe)
@Html.LabelFor(m => m.Model.RememberMe, new { @class = "checkbox" })
</
div
>
<
input
type
=
"submit"
class
=
"btn green pull-right"
value
=
"Login"
id
=
"btnSubmit"
/>
</
fieldset
>
</
div
>
}
<
p
>
@Html.ActionLink("Register", "Register") @Resources.Resource.Login_Register
</
p
>
</
div
>
@section Scripts {
<
script
type
=
"text/javascript"
>
$(document).ready(function () {
var validator = $("#login-form").kendoValidator().data("kendoValidator"), status = $(".status");
$("#btnSubmit").click(function () {
if (validator.validate()) {
save();
} else {
status.text("@Resources.Resource.Generic_Error_Form")
.removeClass("valid")
.addClass("invalid");
}
});
});
</
script
>
}
<
style
>
#grid,
#splitter { border-width: 0; height: 100%; }
html,
body { margin: 0; padding: 0; height: 100%; }
html { overflow: hidden; }
.k-grid-content > table > tbody > tr:hover { background-image: url("textures/brushed-metal.png"), linear-gradient(to bottom, rgb(238, 159, 5) 0px, rgb(244, 175, 3) 100%); }
.k-grid-content > table > tbody > tr .k-button { visibility: hidden; }
.k-grid-content > table > tbody > tr:hover .k-button { visibility: visible; }
</
style
>
.Scrollable(c=>c.Virtual(true))
<
div
class
=
"container-div grid-tab-content-pane"
>
@(Html.Kendo().MultiSelect()
.Name(AMultiName)
.DataTextField("PrettyText")
.DataValueField("MapAbbreviation")
.Placeholder("Edit EMR maps...")
.Filter(FilterType.Contains)
.MinLength(3)
.AutoBind(false)
.HighlightFirst(true)
.Value(new []
{
new {PrettyText = "Abcdef",MapAbbreviation = "s01"},
new {PrettyText = "2nde obn", MapAbbreviation = "asdf012"}
})
.DataSource(ds => ds.Read(r=>r.Action("ReadMapOptions","EmrMappingKendo", new {Area="Messaging"})).ServerFiltering(true)).MinLength(3)
)
</
div
>