or
@(Html.Kendo().Scheduler<
SchedulerViewModel
>()
.Name("scheduler")
.Date(new DateTime(2015, 2, 1))
.StartTime(new DateTime(2015, 2, 1, 7, 00, 00))
.Height(600)
.Timezone("Etc/UTC")
.Views(views =>
{
views.DayView();
views.WeekView();
views.MonthView(monthView => monthView.Selected(true));
})
.DataSource(d => d.Model(m =>
{
m.Id(f => f.EventId);
m.Field(f => f.Title).DefaultValue("No title");
m.RecurrenceId(f => f.RecurrenceID);
m.Field(f => f.IsAllDay).DefaultValue(false);
})
.Read("Read", "Scheduler")
.Create("Create", "Scheduler")
.Destroy("Destroy", "Scheduler")
.Update("Update", "Scheduler")
)
.Editable(editable =>
{
editable.TemplateName("CustomEditorTemplate");
})
)
@model PokerLeagueMVCv2.Models.SchedulerViewModel
@{
//required in order to render validation attributes
ViewContext.FormContext = new FormContext();
}
@functions{
public Dictionary<
string
, object> generateDatePickerAttributes(
string elementId,
string fieldName,
string dataBindAttribute,
Dictionary<
string
, object> additionalAttributes = null)
{
Dictionary<
string
, object> datePickerAttributes = additionalAttributes != null ? new Dictionary<
string
, object>(additionalAttributes) : new Dictionary<
string
, object>();
datePickerAttributes["id"] = elementId;
datePickerAttributes["name"] = fieldName;
datePickerAttributes["data-bind"] = dataBindAttribute;
datePickerAttributes["required"] = "required";
datePickerAttributes["style"] = "z-index: inherit;";
return datePickerAttributes;
}
}
<
div
class
=
"k-edit-label"
>
@(Html.LabelFor(model => model.Title))
</
div
>
<
div
data-container-for
=
"VenueId"
class
=
"k-edit-field"
>
@(Html.Kendo().DropDownListFor(model => model.VenueId)
.Name("Venue")
.HtmlAttributes(new { data_bind = "value:VenueId", style = "width: 300px" })
.DataTextField("VenueName")
.DataValueField("VenueId")
.DataSource(source =>
{
source.Read(read => { read.Action("VenueDropDownList", "DropDownList"); });
})
)
</
div
>
<
div
class
=
"k-edit-label"
>
@(Html.LabelFor(model => model.RegionIds))
</
div
>
<
div
data-container-for
=
"RegionIds"
class
=
"k-edit-field"
>
@(Html.Kendo().MultiSelectFor(model => model.RegionIds)
.Name("AssignRegions")
.HtmlAttributes(new { data_bind = "value:RegionIds", style = "width: 200px" })
.DataTextField("RegionName")
.DataValueField("RegionId")
.DataSource(source =>
{
source.Read(read => { read.Action("RegionDropDownList", "DropDownList"); });
})
)
</
div
>
<
div
class
=
"k-edit-label"
>
@(Html.LabelFor(model => model.Start))
</
div
>
<
div
data-container-for
=
"start"
class
=
"k-edit-field"
>
@(Html.Kendo().DateTimePickerFor(model => model.Start)
.HtmlAttributes(generateDatePickerAttributes("startDateTime", "start", "value:start,invisible:isAllDay")))
@(Html.Kendo().DatePickerFor(model => model.Start)
.HtmlAttributes(generateDatePickerAttributes("startDate", "start", "value:start,visible:isAllDay")))
<
span
data-bind
=
"text: startTimezone"
></
span
>
<
span
data-for
=
"start"
class
=
"k-invalid-msg"
></
span
>
</
div
>
<
div
class
=
"k-edit-label"
>
@(Html.LabelFor(model => model.End))
</
div
>
<
div
data-container-for
=
"end"
class
=
"k-edit-field"
>
@(Html.Kendo().DateTimePickerFor(model => model.End)
.HtmlAttributes(generateDatePickerAttributes(
"endDateTime",
"end",
"value:end,invisible:isAllDay",
new Dictionary<
string
, object>() { { "data-dateCompare-msg", "End date should be greater than or equal to the start date" } })))
@(Html.Kendo().DatePickerFor(model => model.End)
.HtmlAttributes(generateDatePickerAttributes(
"endDate",
"end",
"value:end,visible:isAllDay",
new Dictionary<
string
, object>() { { "data-dateCompare-msg", "End date should be greater than or equal to the start date" } })))
<
span
data-bind
=
"text: endTimezone"
></
span
>
<
span
data-for
=
"end"
class
=
"k-invalid-msg"
></
span
>
</
div
>
<
div
class
=
"k-edit-label"
>
@(Html.LabelFor(model => model.IsAllDay))
</
div
>
<
div
data-container-for
=
"isAllDay"
class
=
"k-edit-field"
>
<
input
id
=
"IsAllDay"
data-bind
=
"checked: isAllDay"
data-val
=
"false"
name
=
"IsAllDay"
type
=
"checkbox"
/>
</
div
>
<
div
class
=
"endTimezoneRow"
>
<
div
class
=
"k-edit-label"
></
div
>
<
div
class
=
"k-edit-field"
>
<
label
class
=
"k-check"
>
<
input
checked
=
"checked"
class
=
"k-timezone-toggle"
type
=
"checkbox"
value
=
"true"
/>
Use separate start and end time zones
</
label
>
</
div
>
</
div
>
<
script
>
$(".k-timezone-toggle").on("click", function () {
var isVisible = $(this).is(":checked");
var container = $(this).closest(".k-popup-edit-form");
var endTimezoneRow = container.find("label[for='EndTimezone']").parent().add(container.find("div[data-container-for='endTimezone']"));
endTimezoneRow.toggle(isVisible);
if (!isVisible) {
var uid = container.attr("data-uid");
var scheduler = $("\#scheduler").data("kendoScheduler");
var model = scheduler.dataSource.getByUid(uid);
model.set("endTimezone", null);
}
});
var endTimezone = '${data.endTimezone}';
if (!endTimezone || endTimezone == "null") {
$(".k-timezone-toggle").trigger('click');
}
</
script
>
<
div
class
=
"k-edit-label"
>
@(Html.LabelFor(model => model.StartTimezone))
</
div
>
<
div
data-container-for
=
"startTimezone"
class
=
"k-edit-field"
>
@(Html.Kendo().TimezoneEditorFor(model => model.StartTimezone)
.HtmlAttributes(new { data_bind = "value:startTimezone" }))
</
div
>
<
div
class
=
"k-edit-label"
>
@(Html.LabelFor(model => model.EndTimezone))
</
div
>
<
div
data-container-for
=
"endTimezone"
class
=
"k-edit-field"
>
@(Html.Kendo().TimezoneEditorFor(model => model.EndTimezone)
.HtmlAttributes(new { data_bind = "value:endTimezone" }))
</
div
>
<
div
class
=
"k-edit-label"
>
@(Html.LabelFor(model => model.RecurrenceRule))
</
div
>
<
div
data-container-for
=
"recurrenceRule"
class
=
"k-edit-field"
>
@(Html.Kendo().RecurrenceEditorFor(model => model.RecurrenceRule)
.HtmlAttributes(new { data_bind = "value:recurrenceRule" }))
</
div
>
<
div
class
=
"k-edit-label"
>
@(Html.LabelFor(model => model.Description))
</
div
>
<
div
data-container-for
=
"description"
class
=
"k-edit-field"
>
@(Html.TextAreaFor(model => model.Description, new { @class = "k-textbox", data_bind = "value:description" }))
</
div
>
<
div
class
=
"k-edit-label"
>
@(Html.LabelFor(model => model.Registration))
</
div
>
<
div
data-container-for
=
"Registration"
class
=
"k-edit-field"
>
<
input
data-bind
=
"checked: Registration"
data-val
=
"false"
id
=
"Registration"
name
=
"Registration"
type
=
"checkbox"
class
=
"k-registration-toggle"
/>
</
div
>
<
div
class
=
"k-edit-label"
>
@(Html.LabelFor(model => model.MaxRegistrations))
</
div
>
<
div
data-container-for
=
"MaxRegistrations"
class
=
"k-edit-field"
>
@(Html.TextBoxFor(model => model.MaxRegistrations, new { @class = "k-textbox", data_bind = "value:MaxRegistrations" }))
</
div
>
<
div
class
=
"k-edit-label"
>
@(Html.LabelFor(model => model.MaxWaitList))
</
div
>
<
div
data-container-for
=
"MaxWaitList"
class
=
"k-edit-field"
>
@(Html.TextBoxFor(model => model.MaxWaitList, new { @class = "k-textbox", data_bind = "value:MaxWaitList" }))
</
div
>
<
div
class
=
"k-edit-label"
>
@(Html.LabelFor(model => model.MaxWinsAllowed))
</
div
>
<
div
data-container-for
=
"MaxWinsAllowed"
class
=
"k-edit-field"
>
@(Html.TextBoxFor(model => model.MaxWinsAllowed, new { @class = "k-textbox", data_bind = "value:MaxWinsAllowed" }))
</
div
>
@{
ViewContext.FormContext = null;
}
public
class
SchedulerViewModel: ISchedulerEvent
{
public
string
Title {
get
;
set
; }
private
DateTime start;
public
DateTime Start
{
get
{
return
start;
}
set
{
start = value.ToUniversalTime();
}
}
private
DateTime end;
public
DateTime End
{
get
{
return
end;
}
set
{
end = value.ToUniversalTime();
}
}
[DisplayName(
"Start Timezone"
)]
public
string
StartTimezone {
get
;
set
; }
[DisplayName(
"End Timezone"
)]
public
string
EndTimezone {
get
;
set
; }
public
string
Description {
get
;
set
; }
public
bool
IsAllDay {
get
;
set
; }
public
string
Recurrence {
get
;
set
; }
public
int
? RecurrenceID {
get
;
set
; }
[DisplayName(
"Recurrence"
)]
public
string
RecurrenceRule {
get
;
set
; }
public
string
RecurrenceException {
get
;
set
; }
//this is for charity events or session main events
public
bool
Registration {
get
;
set
; }
[DisplayName(
"Max Reg"
)]
public
int
MaxRegistrations {
get
;
set
; }
[DisplayName(
"Max Wins"
)]
public
int
MaxWinsAllowed {
get
;
set
; }
[DisplayName(
"Max Wait"
)]
public
int
MaxWaitList {
get
;
set
; }
//IDs
public
int
VenueId {
get
;
set
; }
public
int
EventId {
get
;
set
; }
[DisplayName(
"Regions"
)]
public
ICollection<Region> RegionIds {
get
;
set
; }
public
LeagueEvent ToEntity()
{
return
new
LeagueEvent
{
EventId = EventId,
VenueId =VenueId,
Start = Start,
End = End,
StartTimezone = StartTimezone,
EndTimezone = EndTimezone,
Description = Description,
IsAllDay = IsAllDay,
Recurrence = Recurrence,
RecurrenceID = RecurrenceID,
RecurrenceRule = RecurrenceRule,
RecurrenceException = RecurrenceException,
Registration = Registration,
MaxRegistrations = MaxRegistrations,
MaxWinsAllowed = MaxWinsAllowed,
MaxWaitList = MaxWaitList,
RegionIds = RegionIds
};
}
}
@(Html.Kendo().Grid<
CompanyDomainView
>()
.Name("customer-grid")
.ClientDetailTemplateId("customerTemplate")
........
<
script
id
=
"customerTemplate"
class
=
"gridtemplates"
type
=
"text/x-kendo-tmpl"
>
<
section
>
<
div
class
=
"k-widget inline-grid-box"
>
.....
<div class=
"form-group"
>
@Html.LabelFor(model => model.from_date, htmlAttributes:
new
{ @class =
"control-label col-md-2"
})
<div class=
"col-md-10"
>
@Html.EditorFor(model => model.from_date,
new
{ htmlAttributes =
new
{ @class =
"form-control"
} })
@Html.ValidationMessageFor(model => model.from_date,
""
,
new
{ @class =
"text-danger"
})
</div>
</div>
@(Html.Kendo()
.Grid<
WellsRxWeb.Models.UserNotesModel
>()
.Name("gridUserNotes")
.Columns(columns => {
columns.Bound(p => p.NotesId).Title("Id").Visible(false);
columns.Bound(p => p.UserName).Title("UserName").Visible(false);
columns.Bound(p => p.UserNoteText).Title("Notes").EditorTemplateName("TextEditor");
columns.Bound(p => p.ModifiedBy).Title("Saved By");
columns.Bound(p => p.Modified).Title("Saved").Format("{0:MM/dd/yyyy}");
columns.Command(command => { command.Edit(); command.Destroy(); }).Width(172);
})
.ToolBar(toolbar => { toolbar.Create(); })
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Pageable()
.Sortable()
.Filterable()
.Pageable(pageable => pageable
.Refresh(true)
.PageSizes(true)
.ButtonCount(5))
.Filterable()
.Reorderable(r => r.Columns(true))
.Resizable(r => r.Columns(true))
.ColumnMenu()
.DataSource(dataSource => dataSource
.Ajax()
.Model(model => {
model.Id(o => o.NotesId);
model.Field(p => p.UserName).Editable(false);
model.Field(p => p.ModifiedBy).Editable(false);
model.Field(p => p.Modified).Editable(false);
})
.Read(read => read.Action("UserNotes_Read", "User").Type(HttpVerbs.Get).Data("additionalData"))
.Create(create => create.Action("UserNotes_Create", "User").Data("additionalData"))
.Update(update => update.Action("UserNotes_Update", "User").Data("additionalData"))
.Destroy(destroy => destroy.Action("UserNotes_Destroy", "User").Data("additionalData").Type(HttpVerbs.Post))
.Events(events => { events.RequestEnd("gridRequestEnd"); }))
)
@model WellsRxWeb.Models.UserNotesModel
@(Html.Kendo().EditorFor(model => model.UserNoteText)
.Name("TextEditor")
.HtmlAttributes(new { style = "width: 740px;height:440px" })
)
@(Html.Kendo().Grid<WebUserViewModel>()
.Name(
"WebUsersGrid"
)
.HtmlAttributes(
new
{ @
class
=
"js-full-height-grid"
})
.Columns(columns =>
{
columns.Bound(c => c.Id).Title(
""
).ClientTemplate(Html.BuildWebUserIcons<WebUserViewModel>(
this
.User,
"WebUsersGrid"
)).Width(StyleValues.Grid.ThreeIconColWidth).Filterable(x => x.Enabled(
false
)).Sortable(
false
).HtmlAttributes(
new
{ style =
" text-align:center;"
});
columns.Bound(c => c.Id).Visible(
false
);
columns.Bound(c => c.AccountId).Visible(
false
);
columns.Bound(c => c.Active)
.ClientTemplate(Html.ClientTemplate_ActiveImg())
.Width(100)
.HtmlAttributes(
new
{ style =
" text-align:center;"
});
columns.Bound(c => c.UserNameWithinAccount).Title(
"User Name"
).Filterable(filterable => filterable.UI(
"NameFilter"
)).Width(200);
columns.Bound(c => c.FirstName).Width(200);
columns.Bound(c => c.LastName).Width(200);
columns.Bound(c => c.Email);
})
.ToolBar(toolbar =>
{
toolbar.Create().Text(
"Add Web User"
);
})
.Filterable(filterable => filterable
.Extra(
false
)
.Mode(GridFilterMode.Row)
.Messages(x => x.IsFalse(
"N"
))
.Messages(x => x.IsTrue(
"Y"
))
.Operators(operators => operators
.ForString(str => str.Clear()
.Contains(
"Contains"
)
.DoesNotContain(
"Does Not Contain"
)
.StartsWith(
"Starts with"
)
.IsEqualTo(
"Is equal to"
)
.IsNotEqualTo(
"Is not equal to"
)
)
)
)
.Scrollable()
.Sortable()
.Pageable(pageable => pageable
.Refresh(
true
)
.PageSizes(
true
)
.ButtonCount(5)
)
)