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


@(Html.DevExpress().GridView<SharedRelatedFilesViewModel> (settings =>
{
    settings.Name = "SOShareRelatedFiles";
    settings.KeyFieldName = "idRecord";

    settings.SetDefaultSettings();
    settings.SettingsPager.Mode = GridViewPagerMode.ShowAllRecords;
    settings.SettingsContextMenu.Enabled = false;
    settings.CommandColumn.ShowSelectCheckbox = true;
    settings.CommandColumn.SelectAllCheckboxMode = GridViewSelectAllCheckBoxMode.AllPages;

    settings.Settings.HorizontalScrollBarMode = ScrollBarMode.Auto;
    settings.Settings.VerticalScrollBarMode = ScrollBarMode.Auto;
    settings.SettingsLoadingPanel.Text = T("Loading").ToString();

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

    settings.ClientSideEvents.CallbackError = "function(s,e){ Main.CallbackError(s,e)}";
    settings.CallbackRouteValues = new
    {
        Controller = "Sharing",
        Action = "GetRelatedFilesGridView",
        LinkId=Model.LinkID,
        ObjectID = Model.ObjectId,
        RecordId = Model.IdRecord,
        relatedObjectId = Model.relatedObjectId,
        groupObjId = Model.groupObjId,
        relatedFilesIds=Model.relatedFilesIds,
        objectTypeFiledId=Model.objectTypeFiledId,
        isFromCase = Model.isFromCase
    };
    settings.CustomJSProperties = (s, e) =>
    {
        JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
        javaScriptSerializer.MaxJsonLength = Int32.MaxValue;
        e.Properties["cpAllRowData"] = javaScriptSerializer.Serialize(
                Model.sharedMainRelatedFilesModel.Select(x => new {
                    x.idRecord,
                }));
    };

    settings.Columns.Add(c =>
    {
        c.FieldName = "idRecord";
        c.ColumnType = MVCxGridViewColumnType.TextBox;
        c.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
        c.Visible = false;
    });

    settings.Columns.Add(c =>
    {
        c.FieldName = "FileIcons";
        c.Caption = " ";
        c.ToolTip = T("FileType").ToString();
        c.Settings.AllowDragDrop = DefaultBoolean.False;
        c.Settings.AllowSort = DefaultBoolean.False;
        c.ColumnType = MVCxGridViewColumnType.Image;
        c.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
        c.Width = new Unit(40, UnitType.Pixel);
        c.SetDataItemTemplateContent(imageSettings =>
        {
            Html.DevExpress().Image(image =>
            {
                image.Name = "image-" + Guid.NewGuid();
                image.Properties.SpriteCssClass = DataBinder.Eval(imageSettings.DataItem, "FileIcons").ToString();
            }).GetHtml();
        });
    });

    settings.Columns.Add(column =>
    {
        column.FieldName = "FileName";
        column.Caption = T("FileName").ToString();
        column.UnboundType = DevExpress.Data.UnboundColumnType.Object;
        column.ColumnType = MVCxGridViewColumnType.TextBox;
        column.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
        column.Width = Unit.Percentage(60);
    });
    settings.Columns.Add(column =>
    {
        column.FieldName = "FileSize";
        column.Caption = T("FileSize").ToString();
        column.UnboundType = DevExpress.Data.UnboundColumnType.Object;
        column.ColumnType = MVCxGridViewColumnType.TextBox;
        column.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
        column.Width = Unit.Percentage(40);
    });

}).Bind(Model.sharedMainRelatedFilesModel).GetHtml())
