or
<
div
class
=
"filter"
>
<
label
class
=
"filter-label"
for
=
"filter"
>Filter:</
label
>
@(Html.Kendo().DropDownList()
.Name("filter")
.DataTextField("Text")
.DataValueField("Value")
.Events(e => e.Change("onChange"))
.BindTo(new List<
SelectListItem
>() {
new SelectListItem() {
Text = "Pending Reviews",
Value = "N"
},
new SelectListItem() {
Text = "Complete Reviews",
Value = "Y"
}
})
)
</
div
>
<
br
class
=
"clear"
/>
<
br
/>
@(Html.Kendo().Grid<
PASSAdmin.ViewModels.ResourceReviewer.ResourceReviewViewModel
>()
.Name("gridResourceReviews")
.Columns(columns =>
{
columns.Command(command => { command.Edit(); }).Width(50);
columns.Bound(m => m.Proposal_ID).Title("Proposal ID");
columns.Bound(m => m.Proposal_Title).Title("Title");
columns.Bound(m => m.PI_BNL_ID).Title("PI");
columns.Bound(m => m.Date_Submitted).Title("Date Submitted");
})
.Editable(editable => editable.Mode(GridEditMode.PopUp).TemplateName("ResourceReviewer/ResourceReview").Window(window => window.Width(700)))
.Pageable()
.Sortable()
.Events(e => e.Edit("onEdit"))
.DataSource(dataSource => dataSource
.Server()
.Model(model =>
{
model.Id(m => m.Beamtime_Request_ID);
model.Field(m => m.Beamline_Request_ID);
})
.Read(read => read.Action("GetResourceReviews", "ResourceReviewer"))
.Update(update => update.Action("AddResourceReview", "ResourceReviewer"))
))
<
script
type
=
"text/javascript"
>
function onEdit(e) {
$(e.container).parent().css({
width: '700px',
height: '350px'
});
$(e.container.find(".k-edit-buttons.k-state-default")).css("width", "660px");
}
function onChange() {
var filter = this.value();
alert(filter);
$.get('/ResourceReviewer/GetResourceReviews', { reviewComplete: filter }, function (data) {
var grid = $("#gridResourceReviews").data("kendoGrid");
grid.dataSource.read();
});
}
</
script
>
public
ActionResult GetResourceReviews(
string
reviewComplete, [DataSourceRequest]DataSourceRequest request)
{
User user =
new
User();
int
user_id = user.GetUserIDByBNLAccount(User.Identity.Name);
int
resource_id = UserSession.LastViewedResourceID.GetValueOrDefault();
if
(UserPermissions.VerifyResourceRole(user_id, resource_id,
"Resource_Reviewer"
))
{
using
(PASSEntities context =
new
PASSEntities())
{
var vm = (from a
in
context.Beamtime_Requests
join b
in
context.Proposals on a.Proposal_ID equals b.ID
join c
in
context.Technique_Requests on a.ID equals c.Beamtime_Request_ID
join d
in
context.Beamline_Requests on c.ID equals d.Technique_Request_ID
join e
in
context.Beamlines on d.Beamline_ID equals e.ID
join f
in
context.Users on b.PI_User_ID equals f.ID
where a.Status ==
"BLREV"
&& d.Beamline_ID == resource_id && d.Beamline_Review_Complete == reviewComplete
select
new
ResourceReviewViewModel()
{
Date_Submitted = a.Date_Submitted,
Beamline_Request_ID = d.ID,
Beamtime_Request_ID = a.ID,
Proposal_ID = b.ID,
Proposal_Type_ID = b.Proposal_Type_ID,
Beamline_Review_Complete = d.Beamline_Review_Complete,
Current_Cycle_Request = a.Current_Cycle_Request,
PI_User_ID = b.PI_User_ID,
PI_BNL_ID = b.User.BNL_ID,
Proposal_Title = b.Title,
Refused_By_Beamline = d.Refused_By_Beamline
}).ToList();
DataSourceResult result = vm.ToDataSourceResult(request);
return
Json(result, JsonRequestBehavior.AllowGet);
}
}
else
{
return
RedirectToAction(
"Index"
);
}
}
01.
.DataSource(dataSource => dataSource
02.
.Ajax()
03.
.PageSize(20)
04.
.ServerOperation(true)
05.
.Events(events => events.Error("error_handler"))y
06.
.Create(update => update.Action("Customer_Create", "Customer", ContentType="Application/Json")
07.
08.
)
09.
.Read(read => read.Action("Customer_Read", "Customer"))
10.
.Update(update => update.Action("Customer_Update", "Customer"))
11.
.Destroy(update => update.Action("Customer_Delete", "Customer"))
12.
.
13.
14.
)
15.
)
@(Html.Kendo().Scheduler<
iMail.Web.Models.TaskViewModel
>()
.Name("scheduler")
.Date(DateTime.Now)
.Timezone("Etc/UTC")
.Views(views =>
{
views.DayView();
views.WeekView();
views.MonthView();
views.AgendaView(agenda => agenda.Selected(true));
})
.Selectable(true)
.Timezone("Etc/UTC")
.Events(e =>
{
e.Edit("onEdit");
e.Change("onChange");
})
.Editable(editable =>
{
editable.TemplateName("_EditorTemplatePartial");
})
.DataSource(d => d
.Model(m =>
{
m.Id(f => f.TaskID);
m.Field(f => f.Title).DefaultValue("No title");
m.RecurrenceId(f => f.RecurrenceID);
m.Field(f => f.Priority);
m.Field(f => f.TypeID);
})
.Events(e => e.Error("error_handler"))
.Read (read => read.Action("TasksRead", "Calendar").Data("additionalInfo").Type(HttpVerbs.Get))
.Create(create => create.Action("TasksCreate", "Calendar").Data("additionalInfo"))
.Destroy(destroy => destroy.Action("TasksDestroy", "Calendar").Data("additionalInfo"))
.Update(update => update.Action("TasksUpdate", "Calendar").Data("additionalInfo"))
)
)
<
div
id
=
"AttendeeAlreadyInvited"
>
<
div
data-container-for
=
"AlreadyInvitedID"
class
=
"k-edit-field"
>
@(Html.Kendo().MultiSelectFor(model => model.AlreadyInvitedID)
.HtmlAttributes(new { data_bind = "value:AlreadyInvitedID" })
.DataTextField("Name")
.DataValueField("ID")
.BindTo(Model.Invited)
)
</
div
>
</
div
>
public class CalEmployeeLight
{
public int ID;
public string Name;
public class TaskViewModel : Kendo.Mvc.UI.ISchedulerEvent
{
public int TaskID { get; set; } //each event have an ID.
.....
public IEnumerable<
int
> AlreadyInvitedID { get; set; }
public ICollection<
CalEmployeeLight
> Invited { get; set; }
}