﻿@using System.Drawing
@using System.Text
@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 = "SOShareAddObjectRelatedFiles";
        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(85);
        settings.Height = Unit.Percentage(100);

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

        settings.ClientSideEvents.CallbackError = "function(s,e){ Main.CallbackError(s,e)}";
        settings.CallbackRouteValues = new
        {
            Controller = "Sharing",
            Action = "GetAddObjectRelatedFilesGridView",
            ObjectID = Model.ObjectId,
            RecordId = Model.IdRecord,
            relatedObjectId = Model.relatedObjectId,
            groupObjId = Model.groupObjId,
        };
        settings.CustomJSProperties = (s, e) =>
        {
            JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
            javaScriptSerializer.MaxJsonLength = Int32.MaxValue;
            e.Properties["cpAllRowData"] = javaScriptSerializer.Serialize(
                    Model.sharedRelatedFilesModel.Select(x => new
                    {
                        x.idRecord,
                    }));
        };
        settings.Columns.Add(column =>
        {
            column.FieldName = "idRecord";
            column.UnboundType = DevExpress.Data.UnboundColumnType.Object;
            column.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.sharedRelatedFilesModel).GetHtml())
