﻿@using System.Web.UI.WebControls
@using RevZone.Web.MVC.ViewModels.Sharing
@using System.Web.Script.Serialization
@model SharingViewModel

@(Html.DevExpress().GridView<SharedContactsViewModel>
    (settings =>
    {
        settings.Name = "SOShareContact";
        settings.KeyFieldName = "idRecord";
        settings.SetDefaultSettings();
        settings.SettingsPager.Mode = GridViewPagerMode.ShowAllRecords;
        settings.SettingsContextMenu.Enabled = false;
        settings.CommandColumn.ShowSelectCheckbox = true;
        settings.CommandColumn.SelectAllCheckboxMode = GridViewSelectAllCheckBoxMode.AllPages;

        settings.Width = Unit.Percentage(100);
        settings.Height = Unit.Percentage(100);

        settings.SettingsLoadingPanel.Text = T("Loading").ToString();

        settings.ClientSideEvents.CallbackError = "function(s,e){ Main.CallbackError(s,e)}";
        settings.ClientSideEvents.BeginCallback = "function(s, e) { MainGrid.Sharing.ShareContactBeginCallback(s,e); }";
        settings.CallbackRouteValues = new
        {
            Controller = "Sharing",
            Action = "GetContactGridView",
            ObjectID = Model.ObjectId,
            RecordId = Model.IdRecord,
            relatedObjectId = Model.relatedObjectId,
            groupObjId = Model.groupObjId,
            fieldId = Model.fieldId,
            linkID=Model.LinkID
        };

        settings.CustomJSProperties = (s, e) =>
        {
            JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
            javaScriptSerializer.MaxJsonLength = Int32.MaxValue;
            e.Properties["cpAllRowData"] = javaScriptSerializer.Serialize(
                    Model.sharedContactsModel.Select(x => new
                    {
                        x.idRecord,
                    }));
        };
        settings.Columns.Add(column =>
        {
            column.FieldName = "idRecord";
            column.UnboundType = DevExpress.Data.UnboundColumnType.Object;
            column.Visible = false;
        });


        settings.Columns.Add(column =>
        {
            column.FieldName = "Contact";
            column.Caption = T("Contact").ToString();
            column.UnboundType = DevExpress.Data.UnboundColumnType.Object;
            column.ColumnType = MVCxGridViewColumnType.TextBox;
            column.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
            column.Width = Unit.Pixel(150);
        });
        settings.Columns.Add(column =>
        {
            column.FieldName = "Email";
            column.Caption = T("Email").ToString();
            column.UnboundType = DevExpress.Data.UnboundColumnType.Object;
            column.ColumnType = MVCxGridViewColumnType.TextBox;
            column.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
            column.Width = Unit.Pixel(150);
        });

        settings.Columns.Add(column =>
        {
            column.FieldName = "SentDate";
            column.Caption = T("SentDate").ToString();
            column.UnboundType = DevExpress.Data.UnboundColumnType.Object;
            column.ColumnType = MVCxGridViewColumnType.TextBox;
            column.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
            column.Width = Unit.Pixel(150);
        });
        settings.Columns.Add(column =>
        {
            column.FieldName = "ResponseFrom";
            column.Caption = T("ResponseFrom").ToString();
            column.UnboundType = DevExpress.Data.UnboundColumnType.Object;
            column.ColumnType = MVCxGridViewColumnType.TextBox;
            column.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
            column.Width = Unit.Pixel(150);
        });
        settings.Columns.Add(column =>
        {
            column.FieldName = "ResponseDate";
            column.Caption = T("ResponseDate").ToString();
            column.UnboundType = DevExpress.Data.UnboundColumnType.Object;
            column.ColumnType = MVCxGridViewColumnType.TextBox;
            column.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
            column.Width = Unit.Pixel(150);
        });
        settings.Columns.Add(column =>
        {
            column.FieldName = "SendFrom";
            column.Caption = T("Locked_").ToString();
            column.UnboundType = DevExpress.Data.UnboundColumnType.Object;
            column.ColumnType = MVCxGridViewColumnType.TextBox;
            column.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
            column.Width = Unit.Pixel(150);
        });
    }).Bind(Model.sharedContactsModel).GetHtml())
