Esempio n. 1
0
        public ActionResult MenuItems(int menuId)
        {
            if (!CheckPermission(MenusPermissions.ManageMenus))
            {
                return(new HttpUnauthorizedResult());
            }

            WorkContext.Breadcrumbs.Add(T("Menus"), Url.Action("Index", new { area = Constants.Areas.Menus }));
            WorkContext.Breadcrumbs.Add(T("Menu Items"));

            var result = new ControlGridFormResult <MenuItemModel>
            {
                Title                = T("Manage Menu Items").Text,
                UpdateActionName     = "UpdateItem",
                FetchAjaxSource      = request => GetMenuItems(menuId),
                EnablePaginate       = false,
                GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml,
                GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml
            };

            result.AddColumn(x => x.Text);
            result.AddColumn(x => x.Url).RenderAsLink(x => x.Url, x => x.IsExternalUrl ? x.Url : Url.Content("~/" + x.Url));
            result.AddColumn(x => x.Position);
            result.AddColumn(x => x.Enabled).AlignCenter().RenderAsStatusImage();

            result.AddRowAction(true)
            .HasText(T("On/Off"))
            .HasName("Enable")
            .HasValue(x => x.Id.ToString())
            .HasButtonSize(ButtonSize.ExtraSmall);

            result.AddAction()
            .HasText(T("Create"))
            .HasIconCssClass("cx-icon cx-icon-add")
            .HasUrl(Url.Action("CreateItem", RouteData.Values))
            .HasButtonStyle(ButtonStyle.Primary)
            .ShowModalDialog();

            result.AddRowAction()
            .HasText(T("Edit"))
            .HasUrl(x => Url.Action("EditItem", RouteData.Values.Merge(new { id = x.Id })))
            .HasButtonSize(ButtonSize.ExtraSmall)
            .ShowModalDialog();

            result.AddRowAction(true)
            .HasText(T("Delete"))
            .HasName("Delete")
            .HasValue(x => x.Id.ToString())
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Danger)
            .HasConfirmMessage(T(Constants.Messages.ConfirmDeleteRecord).Text);

            result.AddReloadEvent("UPDATE_MENUITEM_COMPLETE");
            result.AddReloadEvent("DELETE_MENUITEM_COMPLETE");

            return(result);
        }
Esempio n. 2
0
        public ActionResult Index(int listId)
        {
            if (!CheckPermission(ListsPermissions.ManageLists))
            {
                return(new HttpUnauthorizedResult());
            }

            var list = listService.GetById(listId);

            WorkContext.Breadcrumbs.Add(T("Manage Lists"), Url.Action("Index", "List", new { area = Constants.Areas.Lists }));
            WorkContext.Breadcrumbs.Add(list.Name);
            WorkContext.Breadcrumbs.Add(T("Fields"));

            var result = new ControlGridFormResult <ListField>
            {
                Title                = T("Manage Fields").Text,
                UpdateActionName     = "Update",
                FetchAjaxSource      = options => GetFields(options, listId),
                GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml,
                GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml
            };

            result.AddColumn(x => x.Title);
            result.AddColumn(x => x.Name);
            result.AddColumn(x => x.FieldType).HasHeaderText("Field Type");
            result.AddColumn(x => x.Position);
            result.AddColumn(x => x.Required).AlignCenter().RenderAsStatusImage(false, true);

            result.AddAction()
            .HasText(T("Create"))
            .HasIconCssClass("cx-icon cx-icon-add")
            .HasUrl(Url.Action("Create", RouteData.Values.Merge(new { listId })))
            .HasButtonStyle(ButtonStyle.Primary)
            .ShowModalDialog();

            result.AddRowAction()
            .HasText(T("Edit"))
            .HasUrl(x => Url.Action("Edit", RouteData.Values.Merge(new { id = x.Id }, "listId")))
            .HasButtonSize(ButtonSize.ExtraSmall)
            .ShowModalDialog();

            result.AddRowAction(true)
            .HasText(T("Delete"))
            .HasName("Delete")
            .HasValue(x => x.Id.ToString())
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Danger)
            .HasConfirmMessage(T(Constants.Messages.ConfirmDeleteRecord).Text);

            result.AddReloadEvent("UPDATE_ENTITY_COMPLETE");
            result.AddReloadEvent("DELETE_ENTITY_COMPLETE");

            return(result);
        }
Esempio n. 3
0
        public ActionResult Index()
        {
            if (!CheckPermission(MenusPermissions.ManageMenus))
            {
                return(new HttpUnauthorizedResult());
            }

            WorkContext.Breadcrumbs.Add(T("Menus"));

            var result = new ControlGridFormResult <Menu>
            {
                Title                = T("Manage Menus").Text,
                UpdateActionName     = "Update",
                FetchAjaxSource      = GetMenus,
                GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml,
                GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml
            };

            result.AddColumn(x => x.Name);
            result.AddColumn(x => x.IsMainMenu).HasHeaderText(T("Is Main Menu")).AlignCenter().RenderAsStatusImage();

            result.AddRowAction()
            .HasText(T("Menu Items"))
            .HasUrl(x => Url.Action("MenuItems", RouteData.Values.Merge(new { menuId = x.Id })))
            .HasButtonSize(ButtonSize.ExtraSmall);

            result.AddAction()
            .HasText(T("Create"))
            .HasIconCssClass("cx-icon cx-icon-add")
            .HasUrl(Url.Action("Create", RouteData.Values))
            .HasButtonStyle(ButtonStyle.Primary)
            .ShowModalDialog()
            .HasCssClass(Constants.RowLeft)
            .HasBoxButton(false);

            result.AddRowAction()
            .HasText(T("Edit"))
            .HasUrl(x => Url.Action("Edit", RouteData.Values.Merge(new { id = x.Id })))
            .HasButtonSize(ButtonSize.ExtraSmall)
            .ShowModalDialog();

            result.AddRowAction(true)
            .HasText(T("Delete"))
            .HasName("Delete")
            .HasValue(x => x.Id.ToString())
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Danger)
            .HasConfirmMessage(T(Constants.Messages.ConfirmDeleteRecord).Text);

            result.AddReloadEvent("UPDATE_MENU_COMPLETE");
            result.AddReloadEvent("DELETE_MENU_COMPLETE");

            return(result);
        }
        public ActionResult Index(int listId)
        {
            if (!CheckPermission(ListsPermissions.ManageLists))
            {
                return(new HttpUnauthorizedResult());
            }

            var list = listService.GetById(listId);

            WorkContext.Breadcrumbs.Add(T("Manage Lists"), Url.Action("Index", "List", new { area = Constants.Areas.Lists }));
            WorkContext.Breadcrumbs.Add(list.Name);
            WorkContext.Breadcrumbs.Add(T("Comments"));

            var result = new ControlGridFormResult <ListComment>
            {
                Title                = list.Name,
                UpdateActionName     = "Update",
                FetchAjaxSource      = options => GetListItemComments(options, listId),
                EnablePaginate       = true,
                DefaultPageSize      = WorkContext.DefaultPageSize,
                EnableSearch         = true,
                GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml,
                GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml
            };

            result.AddColumn(x => x.Name);
            result.AddColumn(x => x.Email);
            result.AddColumn(x => x.IPAddress).HasHeaderText("IP Address");
            result.AddColumn(x => x.CreatedDate).HasHeaderText("Created").HasDisplayFormat("{0:d}");
            result.AddColumn(x => x.IsApproved).HasHeaderText("Approved").RenderAsStatusImage().AlignCenter();

            result.AddRowAction()
            .HasText(T("Edit"))
            .HasUrl(x => Url.Action("Edit", RouteData.Values.Merge(new { id = x.Id }, "listId")))
            .HasButtonSize(ButtonSize.ExtraSmall)
            .ShowModalDialog(700);

            result.AddRowAction(true)
            .HasText(T("Delete"))
            .HasName("Delete")
            .HasValue(x => x.Id.ToString())
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Danger)
            .HasConfirmMessage(T(Constants.Messages.ConfirmDeleteRecord).Text);

            result.AddReloadEvent("UPDATE_ENTITY_COMPLETE");
            result.AddReloadEvent("DELETE_ENTITY_COMPLETE");

            return(result);
        }
        public ActionResult Index()
        {
            WorkContext.Breadcrumbs.Add(new Breadcrumb {
                Text = T("Quản lý sản phẩm"), Url = "#"
            });

            var result       = new ControlGridFormResult <ProductInfo>();
            var siteSettings = WorkContext.Resolve <SiteSettings>();

            result.Title                = this.T("Quản lý sản phẩm");
            result.CssClass             = "table table-bordered table-striped";
            result.UpdateActionName     = "Update";
            result.IsAjaxSupported      = true;
            result.DefaultPageSize      = siteSettings.DefaultPageSize;
            result.EnablePaginate       = true;
            result.FetchAjaxSource      = this.GetProducts;
            result.GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml;
            result.GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml;
            result.ClientId             = TableName;
            result.ActionsColumnWidth   = 180;

            result.AddCustomVar(Extensions.Constants.SearchText, "$('#" + Extensions.Constants.SearchText + "').val();", true);
            result.AddCustomVar(Extensions.Constants.ProductGroup, "$('#" + Extensions.Constants.ProductGroup + "').val();", true);

            result.AddColumn(x => x.Id, T("ID")).AlignCenter().HasWidth(100);
            result.AddColumn(x => x.Image, T("Ảnh đại diện"))
            .AlignCenter()
            .HasWidth(100)
            .RenderAsImage(y => y.Image, Extensions.Constants.CssThumbsSize);
            result.AddColumn(x => x.Name, T("Tên sản phẩm"));
            result.AddColumn(x => GetName(x), T("Loại"));
            result.AddColumn(x => x.Price, T("Giá"));
            result.AddColumn(x => x.IsPublished)
            .HasHeaderText(T("Đã đăng"))
            .AlignCenter()
            .HasWidth(100)
            .RenderAsStatusImage();

            result.AddAction().HasText(this.T("Create")).HasUrl(this.Url.Action("Edit", new { id = 0 })).HasButtonStyle(ButtonStyle.Primary).HasBoxButton(false).HasCssClass(Constants.RowLeft).HasRow(true);
            result.AddRowAction().HasText(this.T("Edit")).HasUrl(x => Url.Action("Edit", new { id = x.Id })).HasButtonStyle(ButtonStyle.Default).HasButtonSize(ButtonSize.ExtraSmall);
            result.AddRowAction(true).HasText(this.T("Delete")).HasName("Delete").HasValue(x => Convert.ToString(x.Id)).HasButtonStyle(ButtonStyle.Danger).HasButtonSize(ButtonSize.ExtraSmall).HasConfirmMessage(this.T(Constants.Messages.ConfirmDeleteRecord));

            result.AddAction(new ControlFormHtmlAction(BuildProductGroup)).HasParentClass(Constants.ContainerCssClassCol3);
            result.AddAction(new ControlFormHtmlAction(BuildSearchText)).HasParentClass(Constants.ContainerCssClassCol3);

            result.AddReloadEvent("UPDATE_ENTITY_COMPLETE");
            result.AddReloadEvent("DELETE_ENTITY_COMPLETE");
            return(result);
        }
        public ActionResult Index()
        {
            if (!CheckPermission(Permissions.ManageSiteSettings))
            {
                return(new HttpUnauthorizedResult());
            }

            WorkContext.Breadcrumbs.Add(T("Settings"));

            var controlGrid = new ControlGridFormResult <SettingsModel>
            {
                Title                = T("Settings"),
                FetchAjaxSource      = GetSettings,
                ActionsColumnWidth   = 100,
                GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml,
                GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml
            };

            controlGrid.AddColumn(x => x.Name);
            controlGrid.AddRowAction()
            .HasUrl(x => Url.Action("Edit", new { id = x.Id }))
            .HasText(T("Edit"))
            .HasButtonSize(ButtonSize.ExtraSmall);

            return(controlGrid);
        }
Esempio n. 7
0
        protected override void OnViewIndex(ControlGridFormResult <Role> controlGrid)
        {
            controlGrid.ActionsColumnWidth = 200;
            controlGrid.AddColumn(x => x.Name);

            controlGrid.AddRowAction()
            .HasText(T("Permissions"))
            .HasUrl(x => Url.Action("EditPermissions", new { roleId = x.Id }))
            .HasButtonSize(ButtonSize.ExtraSmall);
        }
        public ActionResult LocalizableStrings(int languageId)
        {
            if (!CheckPermission(StandardPermissions.FullAccess))
            {
                return(new HttpUnauthorizedResult());
            }

            ViewBag.Title = T("Manage Localizable Strings");

            var language = languageService.GetById(languageId);

            WorkContext.Breadcrumbs.Add(T("Languages"), Url.Action("Index", "Language", new { area = Constants.Areas.Localization }));
            WorkContext.Breadcrumbs.Add(language.Name);
            WorkContext.Breadcrumbs.Add(T("Localizable Strings"));

            var result = new ControlGridFormResult <ComparitiveLocalizableString>
            {
                Title              = "Manage Localizable Strings",
                CssClass           = "table-excel",
                UpdateActionName   = "Update",
                EnablePaginate     = true,
                DefaultPageSize    = 15,
                FetchAjaxSource    = options => GetComparitiveTable(options, language.CultureCode),
                ActionsColumnWidth = 100,
                ClientId           = TableName,
                EnableSearch       = true
            };

            result.AddCustomVar("SearchText", "$('#txtSearchText').val();", true);

            result.AddColumn(x => x.Key).RenderAsHtml(s => string.Format("{1}<input type=\"hidden\" name=\"KeyValue${0}\" value=\"{1}\" />", s.SequenceId, s.Key));
            result.AddColumn(x => x.InvariantValue).HasHeaderText("Invariant String");
            result.AddColumn(x => x.LocalizedValue).HasHeaderText("Localized String").RenderAsHtml(s => string.Format("<input type=\"text\" name=\"LocalizedValue${1}\" class=\"form-control input-sm\" value=\"{0}\">", s.LocalizedValue, s.SequenceId));

            result.AddAction(true)
            .HasText(T("Save"))
            .HasName("Save")
            .HasIconCssClass("cx-icon cx-icon-save")
            .HasValue(language.CultureCode)
            .HasButtonStyle(ButtonStyle.Primary).HasParentClass(Constants.ContainerCssClassCol12);

            result.AddAction(new ControlFormHtmlAction(BuildSearchText)).HasParentClass(Constants.ContainerCssClassCol3);

            result.AddRowAction(true)
            .HasText(T("Delete"))
            .HasName("Delete")
            .HasValue(x => x.Key)
            .HasButtonStyle(ButtonStyle.Danger)
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasConfirmMessage(T(Constants.Messages.ConfirmDeleteRecord));

            result.AddReloadEvent("UPDATE_ENTITY_COMPLETE");

            return(result);
        }
        public ActionResult Index()
        {
            WorkContext.Breadcrumbs.Add(new Breadcrumb {
                Text = T("Quản lý đơn hàng"), Url = "#"
            });
            var result       = new ControlGridFormResult <OrderInfo>();
            var siteSettings = WorkContext.Resolve <SiteSettings>();

            result.Title                = this.T("Quản lý đơn hàng");
            result.CssClass             = "table table-bordered table-striped";
            result.UpdateActionName     = "Update";
            result.IsAjaxSupported      = true;
            result.DefaultPageSize      = siteSettings.DefaultPageSize;
            result.EnablePaginate       = true;
            result.FetchAjaxSource      = this.GetOrders;
            result.GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml;
            result.GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml;
            result.ClientId             = TableName;

            result.AddColumn(x => x.OrderCode, T("Mã"));
            result.AddColumn(x => x.FullName, T("Họ và Tên"));
            result.AddColumn(x => x.PhoneNumber, T("Số điện thoại"));
            result.AddColumn(x => CMSSolutions.Extensions.EnumExtensions.GetDisplayName((PaymentType)x.PaymentType), T("Hình thức thanh toán"));
            result.AddColumn(x => x.IsPaid)
            .HasHeaderText(T("Đã thanh toán"))
            .AlignCenter()
            .HasWidth(100)
            .RenderAsStatusImage();
            result.AddColumn(x => x.IsDeliverySuccessful)
            .HasHeaderText(T("Đã giao hàng"))
            .AlignCenter()
            .HasWidth(100)
            .RenderAsStatusImage();

            result.AddRowAction().HasText(this.T("Xem")).HasUrl(x => Url.Action("Edit", new { id = x.Id })).HasButtonStyle(ButtonStyle.Default).HasButtonSize(ButtonSize.ExtraSmall);
            //result.AddRowAction().HasText(this.T("Export")).HasUrl(x => Url.Action("ExportExcelSend")).HasButtonStyle(ButtonStyle.Default).HasButtonSize(ButtonSize.ExtraSmall);
            result.AddRowAction(true).HasText(this.T("Hủy")).HasName("Delete").HasValue(x => Convert.ToString(x.Id)).HasButtonStyle(ButtonStyle.Danger).HasButtonSize(ButtonSize.ExtraSmall).HasConfirmMessage(this.T("Bạn có chắc chắn muốn hủy đơn hàng này không?"));

            result.AddReloadEvent("UPDATE_ENTITY_COMPLETE");
            result.AddReloadEvent("DELETE_ENTITY_COMPLETE");
            return(result);
        }
Esempio n. 10
0
        public ActionResult Index()
        {
            WorkContext.Breadcrumbs.Add(new Breadcrumb {
                Text = T("Quản lý chuyên mục"), Url = "#"
            });
            var result       = new ControlGridFormResult <CategoryInfo>();
            var siteSettings = WorkContext.Resolve <SiteSettings>();

            result.Title                = this.T("Quản lý chuyên mục");
            result.CssClass             = "table table-bordered table-striped";
            result.UpdateActionName     = "Update";
            result.IsAjaxSupported      = true;
            result.DefaultPageSize      = siteSettings.DefaultPageSize;
            result.EnablePaginate       = true;
            result.FetchAjaxSource      = GetCategories;
            result.GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml;
            result.GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml;
            result.ClientId             = TableName;
            result.ActionsColumnWidth   = 180;

            result.AddColumn(x => x.Id, T("Mã"))
            .AlignCenter()
            .HasWidth(60);
            result.AddColumn(x => x.ParentName, T("Chuyên mục cha")).HasWidth(150);
            result.AddColumn(x => x.ShortName, T("Tên chuyên mục")).HasWidth(150);
            result.AddColumn(x => x.Url, T("Đường dẫn Url"));
            result.AddColumn(x => x.IsActived)
            .HasHeaderText(T("Hiển thị"))
            .AlignCenter()
            .HasWidth(100)
            .RenderAsStatusImage();

            result.AddAction().HasText(this.T("Create")).HasUrl(this.Url.Action("Create")).HasButtonStyle(ButtonStyle.Primary).HasBoxButton(false).HasCssClass(Constants.RowLeft).HasRow(true);
            result.AddRowAction().HasText(T("Images")).HasUrl(x => Url.Action("Edit", "AdminImages", new { id = 0, cateId = x.Id, articlesId = 0 })).HasButtonStyle(ButtonStyle.Info).HasButtonSize(ButtonSize.ExtraSmall);
            result.AddRowAction().HasText(this.T("Edit")).HasUrl(x => Url.Action("Edit", new { id = x.Id })).HasButtonStyle(ButtonStyle.Default).HasButtonSize(ButtonSize.ExtraSmall);
            result.AddRowAction(true).HasText(this.T("Delete")).HasName("Delete").HasValue(x => Convert.ToString(x.Id)).HasButtonStyle(ButtonStyle.Danger).HasButtonSize(ButtonSize.ExtraSmall).HasConfirmMessage(this.T(Constants.Messages.ConfirmDeleteRecord));

            result.AddReloadEvent("UPDATE_ENTITY_COMPLETE");
            result.AddReloadEvent("DELETE_ENTITY_COMPLETE");
            return(result);
        }
Esempio n. 11
0
        protected override void OnViewIndex(ControlGridFormResult <Slider> controlGrid)
        {
            controlGrid.ActionsColumnWidth = 200;
            controlGrid.AddColumn(x => x.Name);
            controlGrid.AddColumn(x => x.Width);
            controlGrid.AddColumn(x => x.Height);

            controlGrid.AddRowAction()
            .HasText(T("Slides"))
            .HasUrl(x => Url.Action("Index", "Slide", new { sliderId = x.Id }))
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Primary);
        }
Esempio n. 12
0
        public ActionResult Index()
        {
            WorkContext.Breadcrumbs.Add(new Breadcrumb {
                Text = T("Quản lý banner"), Url = "#"
            });
            var result       = new ControlGridFormResult <SliderInfo>();
            var siteSettings = WorkContext.Resolve <SiteSettings>();

            result.Title                = this.T("Quản lý banner");
            result.CssClass             = "table table-bordered table-striped";
            result.UpdateActionName     = "Update";
            result.IsAjaxSupported      = true;
            result.DefaultPageSize      = siteSettings.DefaultPageSize;
            result.EnablePaginate       = true;
            result.FetchAjaxSource      = this.GetSliders;
            result.GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml;
            result.GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml;
            result.ClientId             = TableName;
            result.ActionsColumnWidth   = 120;

            result.AddCustomVar(Extensions.Constants.PageType, "$('#" + Extensions.Constants.PageType + "').val();", true);

            result.AddColumn(x => x.SortOrder, T("Thứ tự")).HasWidth(80).AlignCenter();
            result.AddColumn(x => x.ImageUrl, T("Ảnh"))
            .AlignCenter()
            .HasWidth(200)
            .RenderAsImage(y => y.ImageUrl, Extensions.Constants.CssThumbsSize);
            result.AddColumn(x => x.Caption, T("Mô tả"));

            result.AddAction().HasText(this.T("Create")).HasUrl(this.Url.Action("Edit", new { id = 0 })).HasButtonStyle(ButtonStyle.Primary).HasBoxButton(false).HasCssClass(Constants.RowLeft).HasRow(true);
            result.AddRowAction().HasText(this.T("Edit")).HasUrl(x => Url.Action("Edit", new { id = x.Id })).HasButtonStyle(ButtonStyle.Default).HasButtonSize(ButtonSize.ExtraSmall);
            result.AddRowAction(true).HasText(this.T("Delete")).HasName("Delete").HasValue(x => Convert.ToString(x.Id)).HasButtonStyle(ButtonStyle.Danger).HasButtonSize(ButtonSize.ExtraSmall).HasConfirmMessage(this.T(Constants.Messages.ConfirmDeleteRecord));

            result.AddAction(new ControlFormHtmlAction(BuildPageType)).HasParentClass(Constants.ContainerCssClassCol3);

            result.AddReloadEvent("UPDATE_ENTITY_COMPLETE");
            result.AddReloadEvent("DELETE_ENTITY_COMPLETE");
            return(result);
        }
Esempio n. 13
0
        protected override void OnViewIndex(ControlGridFormResult <User> controlGrid)
        {
            controlGrid.ClientId           = TableName;
            controlGrid.ActionsColumnWidth = 250;

            controlGrid.AddCustomVar("RoleId", "$('#ddlRoleId').val();", true);
            controlGrid.AddCustomVar("SearchText", "$('#txtSearchText').val();", true);

            controlGrid.AddColumn(x => x.UserName).HasHeaderText(T("User Name")).EnableFilter();
            controlGrid.AddColumn(x => x.FullName).HasHeaderText(T("Full Name")).EnableFilter();
            controlGrid.AddColumn(x => x.Email).EnableFilter();
            controlGrid.AddColumn(x => x.IsLockedOut)
            .HasHeaderText(T("Is Active"))
            .EnableFilter()
            .AlignCenter()
            .HasWidth(100)
            .RenderAsStatusImage(true);

            controlGrid.AddAction(new ControlFormHtmlAction(BuildRoleDropDown)).HasParentClass(Constants.ContainerCssClassCol3);
            controlGrid.AddAction(new ControlFormHtmlAction(BuildSearchText)).HasParentClass(Constants.ContainerCssClassCol3);

            controlGrid.AddRowAction()
            .HasText(T("Roles"))
            .HasUrl(x => Url.Action("EditRoles", new { userId = x.Id }))
            .HasButtonSize(ButtonSize.ExtraSmall)
            .ShowModalDialog();

            controlGrid.AddRowAction()
            .HasText(T("Password"))
            .HasUrl(x => Url.Action("ChangePassword", new { userId = x.Id }))
            .HasButtonSize(ButtonSize.ExtraSmall)
            .ShowModalDialog();

            controlGrid.GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml;
            controlGrid.GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml;
        }
        public ActionResult Index()
        {
            WorkContext.Breadcrumbs.Add(new Breadcrumb {
                Text = T("Quản lý đối tác"), Url = "#"
            });
            var result       = new ControlGridFormResult <PartnerInfo>();
            var siteSettings = WorkContext.Resolve <SiteSettings>();

            result.Title                = this.T("Quản lý đối tác");
            result.CssClass             = "table table-bordered table-striped";
            result.UpdateActionName     = "Update";
            result.IsAjaxSupported      = true;
            result.DefaultPageSize      = siteSettings.DefaultPageSize;
            result.EnablePaginate       = true;
            result.FetchAjaxSource      = this.GetPartner;
            result.GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml;
            result.GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml;
            result.ClientId             = TableName;
            result.ActionsColumnWidth   = 120;

            result.AddColumn(x => x.SortOrder, T("Thứ tự")).HasWidth(80).AlignCenter();
            result.AddColumn(x => x.Logo, T("Logo"))
            .AlignCenter()
            .HasWidth(100)
            .RenderAsImage(y => y.Logo, Extensions.Constants.CssThumbsSize);
            result.AddColumn(x => x.FullName, T("Tên đối tác"));
            result.AddColumn(x => x.PhoneNumber, T("Số điện thoại"));

            result.AddAction().HasText(this.T("Create")).HasUrl(this.Url.Action("Create")).HasButtonStyle(ButtonStyle.Primary).HasBoxButton(false).HasCssClass(Constants.RowLeft).HasRow(true);
            result.AddRowAction().HasText(this.T("Edit")).HasUrl(x => Url.Action("Edit", new { id = x.Id })).HasButtonStyle(ButtonStyle.Default).HasButtonSize(ButtonSize.ExtraSmall);
            result.AddRowAction(true).HasText(this.T("Delete")).HasName("Delete").HasValue(x => Convert.ToString(x.Id)).HasButtonStyle(ButtonStyle.Danger).HasButtonSize(ButtonSize.ExtraSmall).HasConfirmMessage(this.T(Constants.Messages.ConfirmDeleteRecord));

            result.AddReloadEvent("UPDATE_ENTITY_COMPLETE");
            result.AddReloadEvent("DELETE_ENTITY_COMPLETE");
            return(result);
        }
        public ActionResult Index()
        {
            WorkContext.Breadcrumbs.Add(new Breadcrumb {
                Text = T("Quản lý thông tin liên hệ"), Url = "#"
            });
            var result       = new ControlGridFormResult <EmailInfo>();
            var siteSettings = WorkContext.Resolve <SiteSettings>();

            result.Title                = this.T("Quản lý thông tin liên hệ");
            result.CssClass             = "table table-bordered table-striped";
            result.UpdateActionName     = "Update";
            result.IsAjaxSupported      = true;
            result.DefaultPageSize      = siteSettings.DefaultPageSize;
            result.EnablePaginate       = true;
            result.FetchAjaxSource      = this.GetEmails;
            result.GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml;
            result.GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml;
            result.ClientId             = TableName;
            result.ActionsColumnWidth   = 120;

            result.AddColumn(x => x.FullName, T("Họ và tên"));
            result.AddColumn(x => x.Email, T("Địa chỉ email"));
            result.AddColumn(x => x.IsBlocked)
            .HasHeaderText(T("Đã khóa"))
            .AlignCenter()
            .HasWidth(100)
            .RenderAsStatusImage();

            result.AddAction().HasText(this.T("Create")).HasUrl(this.Url.Action("Edit", new { id = 0 })).HasButtonStyle(ButtonStyle.Primary).HasBoxButton(false).HasCssClass(Constants.RowLeft).HasRow(true);
            result.AddRowAction().HasText(this.T("Edit")).HasUrl(x => Url.Action("Edit", new { id = x.Id })).HasButtonStyle(ButtonStyle.Default).HasButtonSize(ButtonSize.ExtraSmall);
            result.AddRowAction(true).HasText(this.T("Delete")).HasName("Delete").HasValue(x => Convert.ToString(x.Id)).HasButtonStyle(ButtonStyle.Danger).HasButtonSize(ButtonSize.ExtraSmall).HasConfirmMessage(this.T(Constants.Messages.ConfirmDeleteRecord));

            result.AddReloadEvent("UPDATE_ENTITY_COMPLETE");
            result.AddReloadEvent("DELETE_ENTITY_COMPLETE");
            return(result);
        }
Esempio n. 16
0
        protected override void OnViewIndex(ControlGridFormResult <Slide> controlGrid)
        {
            controlGrid.Title = T("Manage Slides");
            controlGrid.ActionsColumnWidth = 200;
            controlGrid.AddColumn(x => x.Position);
            controlGrid.AddColumn(x => x.Title);
            controlGrid.AddColumn(x => x.BackgroundUrl).HasHeaderText(T("Background Url"));
            controlGrid.AddColumn(x => x.SlideDirection).AlignCenter().HasHeaderText(T("Slide Direction"));
            controlGrid.AddColumn(x => x.SlideDelay).AlignCenter().HasHeaderText(T("Slide Delay"));

            controlGrid.AddRowAction()
            .HasText(T("Sublayers"))
            .HasUrl(x => Url.Action("Sublayers", new { slideId = x.Id }))
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Primary);

            WorkContext.Breadcrumbs.Add(T("Slideshows"), Url.Action("Index", "Slider"));
            WorkContext.Breadcrumbs.Add(T("Slides"));
        }
Esempio n. 17
0
        public ActionResult History(int pageId)
        {
            if (!CheckPermission(PagesPermissions.ManagePages))
            {
                return(new HttpUnauthorizedResult());
            }

            var page = pageService.GetById(pageId);

            WorkContext.Breadcrumbs.Add(T("Pages"), Url.Action("Index", new { area = Constants.Areas.Pages }));
            WorkContext.Breadcrumbs.Add(page.Title);
            WorkContext.Breadcrumbs.Add(T("History"));

            var result = new ControlGridFormResult <HistoricPage>
            {
                Title                = T("Manage Pages").Text,
                UpdateActionName     = "Update",
                FetchAjaxSource      = options => GetHistoricPages(options, pageId),
                EnablePaginate       = true,
                EnableSearch         = true,
                DefaultPageSize      = WorkContext.DefaultPageSize,
                ActionsColumnWidth   = 250,
                GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml,
                GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml
            };

            result.AddColumn(x => x.Title).RenderAsHtml(x => string.Format("<a href=\"{1}\" target=\"_blank\">{0}</a>", x.Title, Url.Content("~/" + x.Slug)));
            result.AddColumn(x => x.Theme);
            result.AddColumn(x => x.ArchivedDate, T("Archived Date"));

            result.AddRowAction()
            .HasText(T("View"))
            .HasUrl(x => Url.Action("ViewHistoricPage", RouteData.Values.Merge(new { id = x.Id })))
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Primary);

            result.AddReloadEvent("UPDATE_ENTITY_COMPLETE");
            result.AddReloadEvent("RESTORE_ENTITY_COMPLETE");

            return(result);
        }
Esempio n. 18
0
        public ActionResult Index()
        {
            if (!CheckPermission(StandardPermissions.FullAccess))
            {
                return(new HttpUnauthorizedResult());
            }

            WorkContext.Breadcrumbs.Add(T("Languages"));

            var result = new ControlGridFormResult <Domain.Language>
            {
                Title                = "Manage Languages",
                UpdateActionName     = "Update",
                DefaultPageSize      = 15,
                FetchAjaxSource      = GetLanguages,
                EnablePaginate       = true,
                EnableSorting        = true,
                ActionsColumnWidth   = 300,
                GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml,
                GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml
            };

            result.AddColumn(x => x.Name);
            result.AddColumn(x => x.CultureCode).HasHeaderText("Culture Code");
            result.AddColumn(x => x.Theme);
            result.AddColumn(x => x.Active).RenderAsStatusImage();
            result.AddColumn(x => x.Id).HasHeaderText("Default").RenderAsStatusImage(x => x.CultureCode == siteSettings.DefaultLanguage, false, true);
            result.AddColumn(x => x.SortOrder).HasHeaderText(T("Sort Order"));

            result.AddAction()
            .HasText(T("Create"))
            .HasIconCssClass("cx-icon cx-icon-add")
            .HasUrl(Url.Action("Create", RouteData.Values))
            .HasButtonStyle(ButtonStyle.Primary).HasParentClass(Constants.ContainerCssClassCol12)
            .ShowModalDialog();

            result.AddRowAction(true)
            .HasText(T("Set Default"))
            .HasName("SetDefault")
            .HasValue(x => x.CultureCode)
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Success)
            .EnableWhen(x => x.Active && x.CultureCode != siteSettings.DefaultLanguage);

            result.AddRowAction()
            .HasText(T("Translations"))
            .HasUrl(x => Url.Action("LocalizableStrings", "Localization", new { languageId = x.Id }))
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Info);

            result.AddRowAction()
            .HasText(T("Edit"))
            .HasUrl(x => Url.Action("Edit", RouteData.Values.Merge(new { id = x.Id })))
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Warning)
            .ShowModalDialog();

            result.AddRowAction(true)
            .HasText(T("Delete"))
            .HasName("Delete")
            .HasValue(x => x.Id.ToString())
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Danger)
            .HasConfirmMessage("Are you sure want delete this record?");

            result.AddReloadEvent("UPDATE_ENTITY_COMPLETE");
            result.AddReloadEvent("DELETE_ENTITY_COMPLETE");

            return(result);
        }
Esempio n. 19
0
        public ActionResult Index()
        {
            if (!CheckPermission(ListsPermissions.ManageLists))
            {
                return(new HttpUnauthorizedResult());
            }

            WorkContext.Breadcrumbs.Add(T("Manage Lists"));

            var result = new ControlGridFormResult <List>
            {
                Title                = T("Manage Lists").Text,
                UpdateActionName     = "Update",
                FetchAjaxSource      = GetLists,
                ActionsColumnWidth   = 350,
                GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml,
                GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml
            };

            result.AddColumn(x => x.Name).RenderAsLink(x => x.Name, x => Url.Content("~/" + x.Url));
            result.AddColumn(x => x.Url);
            result.AddColumn(x => x.Enabled).AlignCenter().RenderAsStatusImage();

            var hasManageListsPermission = CheckPermission(ListsPermissions.ManageLists);

            if (hasManageListsPermission)
            {
                result.AddAction()
                .HasText(T("Create"))
                .HasIconCssClass("cx-icon cx-icon-add")
                .HasUrl(Url.Action("Create", RouteData.Values))
                .HasButtonStyle(ButtonStyle.Primary)
                .HasCssClass(Constants.RowLeft)
                .HasBoxButton(false);
            }

            result.AddRowAction()
            .HasText(T("Items"))
            .HasUrl(x => Url.Action("Index", "ListItem", RouteData.Values.Merge(new { listId = x.Id })))
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Primary);

            if (hasManageListsPermission)
            {
                result.AddRowAction()
                .HasText(T("Fields"))
                .HasUrl(x => Url.Action("Index", "Field", RouteData.Values.Merge(new { listId = x.Id })))
                .HasButtonSize(ButtonSize.ExtraSmall);
            }

            result.AddRowAction()
            .HasText(T("Categories"))
            .HasUrl(x => Url.Action("Index", "Category", RouteData.Values.Merge(new { listId = x.Id })))
            .HasButtonSize(ButtonSize.ExtraSmall);

            result.AddRowAction(true)
            .HasText(T("On/Off"))
            .HasName("EnableOrDisable")
            .HasValue(x => x.Id.ToString())
            .HasButtonSize(ButtonSize.ExtraSmall);

            if (hasManageListsPermission)
            {
                result.AddRowAction()
                .HasText(T("Edit"))
                .HasUrl(x => Url.Action("Edit", RouteData.Values.Merge(new { id = x.Id })))
                .HasButtonSize(ButtonSize.ExtraSmall);

                result.AddRowAction(true)
                .HasText(T("Delete"))
                .HasName("Delete")
                .HasValue(x => x.Id.ToString())
                .HasButtonSize(ButtonSize.ExtraSmall)
                .HasButtonStyle(ButtonStyle.Danger)
                .HasConfirmMessage(T(Constants.Messages.ConfirmDeleteRecord).Text);
            }

            result.AddReloadEvent("UPDATE_LIST_COMPLETE");
            result.AddReloadEvent("DELETE_LIST_COMPLETE");

            return(result);
        }
Esempio n. 20
0
        public ActionResult Index(int?pageId)
        {
            if (!CheckPermission(WidgetPermissions.ManageWidgets))
            {
                return(new HttpUnauthorizedResult());
            }

            WorkContext.Breadcrumbs.Add(T("Widgets"));

            var result = new ControlGridFormResult <Widget>
            {
                Title                = T("Manage Widgets").Text,
                UpdateActionName     = "Update",
                FetchAjaxSource      = o => GetWidgets(o, pageId),
                EnablePaginate       = true,
                DefaultPageSize      = WorkContext.DefaultPageSize,
                ActionsColumnWidth   = 180,
                GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml,
                GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml
            };

            var zoneService = WorkContext.Resolve <IZoneService>();

            result.AddColumn(x => x.Title).HasWidth(300);
            result.AddColumn(x => x.WidgetName).HasHeaderText("Widget Type");
            result.AddColumn(x => x.ZoneId).HasHeaderText("Zone").RenderAsHtml(x =>
            {
                var zone = zoneService.GetById(x.ZoneId);
                return(zone != null ? zone.Name : null);
            });
            result.AddColumn(x => x.Order);
            result.AddColumn(x => x.Enabled).AlignCenter().RenderAsStatusImage();

            result.AddAction()
            .HasText(T("Create"))
            .HasIconCssClass("cx-icon cx-icon-add")
            .HasUrl(Url.Action("Create", RouteData.Values.Merge(new { pageId })))
            .HasButtonStyle(ButtonStyle.Primary)
            .HasBoxButton(false)
            .HasCssClass(Constants.RowLeft)
            .ShowModalDialog();

            result.AddAction()
            .HasText(T("Zones"))
            .HasUrl(Url.Action("Index", "Zone"))
            .HasButtonStyle(ButtonStyle.Info)
            .HasBoxButton(false)
            .HasRow(false)
            .HasCssClass(Constants.RowLeft);

            result.AddRowAction(true)
            .HasText(T("On/Off"))
            .HasName("EnableOrDisableWidget")
            .HasValue(x => x.Id.ToString())
            .HasButtonSize(ButtonSize.ExtraSmall);

            result.AddRowAction()
            .HasText(T("Edit"))
            .HasUrl(x => Url.Action("Edit", RouteData.Values.Merge(new { id = x.Id }, "pageId")))
            .HasButtonSize(ButtonSize.ExtraSmall);

            result.AddRowAction(true)
            .HasText(T("Delete"))
            .HasName("Delete")
            .HasValue(x => x.Id.ToString())
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Danger)
            .HasConfirmMessage(T(Constants.Messages.ConfirmDeleteRecord).Text);

            result.AddReloadEvent("UPDATE_ENTITY_COMPLETE");
            result.AddReloadEvent("DELETE_ENTITY_COMPLETE");

            if (pageId.HasValue)
            {
                result.EnablePaginate = false;
                WorkContext.Breadcrumbs.Add(T("Manage Pages"), Url.Action("Index", "Page", new { area = Constants.Areas.Pages }));
            }

            return(result);
        }
Esempio n. 21
0
 public ControlGrid <TModel> AddRowAction(ControlGridFormRowAction <TModel> action)
 {
     model.AddRowAction(action);
     return(this);
 }
        public ActionResult Index()
        {
            if (!CheckPermission(NewsletterPermissions.ManageNewsletters))
            {
                return(new HttpUnauthorizedResult());
            }

            WorkContext.Breadcrumbs.Add(T("Newsletters"));

            var result = new ControlGridFormResult <Newsletter>
            {
                Title                = T("Manage Newsletters").Text,
                UpdateActionName     = "Update",
                FetchAjaxSource      = GetNewsletters,
                EnablePaginate       = true,
                EnableSearch         = true,
                DefaultPageSize      = WorkContext.DefaultPageSize,
                ActionsColumnWidth   = 280,
                GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml,
                GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml
            };

            result.AddColumn(x => x.Title);
            result.AddColumn(x => x.DateCreated, "Date Created").HasDisplayFormat("{0:g}");

            result.AddAction()
            .HasText(T("Create"))
            .HasIconCssClass("cx-icon cx-icon-add")
            .HasUrl(Url.Action("Create", RouteData.Values))
            .HasButtonStyle(ButtonStyle.Primary).HasParentClass(Constants.ContainerCssClassCol12);

            result.AddRowAction()
            .HasText(T("Edit"))
            .HasUrl(x => Url.Action("Edit", RouteData.Values.Merge(new { id = x.Id })))
            .HasButtonSize(ButtonSize.ExtraSmall);

            var languages = languageManager.GetActiveLanguages(Constants.ThemeDefault, false);

            if (languages.Any())
            {
                result.AddRowAction()
                .HasText(T("Translations"))
                .HasUrl(x => Url.Action("Translations", RouteData.Values.Merge(new { id = x.Id })))
                .HasButtonSize(ButtonSize.ExtraSmall)
                .HasButtonStyle(ButtonStyle.Info)
                .ShowModalDialog();
            }

            result.AddRowAction(true)
            .HasText(T("Publish"))
            .HasName("Publish")
            .HasValue(x => x.Id.ToString())
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Success)
            .HasConfirmMessage(T("This action will email the newsletter to all subscribers. Are you sure you want to do this?").Text);

            result.AddRowAction(true)
            .HasText(T("Delete"))
            .HasName("Delete")
            .HasValue(x => x.Id.ToString())
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Danger)
            .HasConfirmMessage(T(Constants.Messages.ConfirmDeleteRecord).Text);

            result.AddReloadEvent("UPDATE_ENTITY_COMPLETE");
            result.AddReloadEvent("DELETE_ENTITY_COMPLETE");

            return(result);
        }
Esempio n. 23
0
        public ActionResult Index(int listId)
        {
            if (!CheckPermission(ListsPermissions.ManageLists))
            {
                return(new HttpUnauthorizedResult());
            }

            var list = listService.GetById(listId);

            var result = new ControlGridFormResult <ListItem>
            {
                Title              = list.Name,
                UpdateActionName   = "Update",
                FetchAjaxSource    = options => GetListItems(options, listId),
                EnablePaginate     = true,
                DefaultPageSize    = WorkContext.DefaultPageSize,
                EnableSearch       = true,
                ActionsColumnWidth = 200,
            };

            result.AddColumn(x => x.Title).EnableFilter();
            result.AddColumn(x => x.Slug).EnableFilter();
            result.AddColumn(x => x.Position).HasWidth(100);
            result.AddColumn(x => x.Enabled).EnableFilter().HasWidth(100).AlignCenter().RenderAsStatusImage();

            result.AddAction()
            .HasText(T("Create"))
            .HasIconCssClass("cx-icon cx-icon-add")
            .HasUrl(Url.Action("Create", RouteData.Values.Merge(new { listId })))
            .HasButtonStyle(ButtonStyle.Primary);

            result.AddAction()
            .HasText(T("Comments"))
            .HasIconCssClass("cx-icon cx-icon-comments")
            .HasUrl(Url.Action("Index", "Comment", RouteData.Values.Merge(new { listId })))
            .HasButtonStyle(ButtonStyle.Info);

            result.AddRowAction(true)
            .HasText(T("On/Off"))
            .HasName("EnableOrDisable")
            .HasValue(x => x.Id.ToString())
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Info);

            result.AddRowAction()
            .HasText(T("Edit"))
            .HasUrl(x => Url.Action("Edit", RouteData.Values.Merge(new { id = x.Id }, "listId")))
            .HasButtonSize(ButtonSize.ExtraSmall);

            result.AddRowAction()
            .HasText(T("Copy"))
            .HasUrl(x => Url.Action("Copy", RouteData.Values.Merge(new { id = x.Id }, "listId")))
            .HasButtonSize(ButtonSize.ExtraSmall);

            result.AddRowAction(true)
            .HasText(T("Delete"))
            .HasName("Delete")
            .HasValue(x => x.Id.ToString())
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Danger)
            .HasConfirmMessage(T(Constants.Messages.ConfirmDeleteRecord).Text);

            result.AddReloadEvent("UPDATE_ENTITY_COMPLETE");
            result.AddReloadEvent("DELETE_ENTITY_COMPLETE");

            WorkContext.Breadcrumbs.Add(T("Manage Lists"), Url.Action("Index", "List", new { area = Constants.Areas.Lists }));
            WorkContext.Breadcrumbs.Add(list.Name);

            return(result);
        }
Esempio n. 24
0
        public ActionResult Index()
        {
            if (!CheckPermission(PagesPermissions.ManagePages))
            {
                return(new HttpUnauthorizedResult());
            }

            WorkContext.Breadcrumbs.Add(T("Pages"));

            var result = new ControlGridFormResult <Page>
            {
                Title                = T("Manage Pages").Text,
                UpdateActionName     = "Update",
                FetchAjaxSource      = GetPages,
                EnablePaginate       = true,
                EnableSearch         = true,
                DefaultPageSize      = WorkContext.DefaultPageSize,
                ActionsColumnWidth   = 380,
                GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml,
                GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml
            };

            result.AddColumn(x => x.Title).RenderAsHtml(x => string.Format("<a href=\"{1}\" target=\"_blank\">{0}</a>", x.Title, Url.Content("~/" + x.Slug)));
            result.AddColumn(x => x.Theme);
            result.AddColumn(x => x.IsEnabled).HasHeaderText(T("Enabled")).AlignCenter().RenderAsStatusImage();

            result.AddAction()
            .HasText(T("Tags"))
            .HasUrl(Url.Action("Index", "PageTag"))
            .HasIconCssClass("cx-icon cx-icon-tags")
            .HasButtonStyle(ButtonStyle.Info)
            .HasCssClass(Constants.RowLeft)
            .HasBoxButton(false);

            result.AddAction()
            .HasText(T("Create"))
            .HasIconCssClass("cx-icon cx-icon-add")
            .HasUrl(Url.Action("Create", RouteData.Values))
            .HasButtonStyle(ButtonStyle.Primary)
            .HasBoxButton(false)
            .HasCssClass(Constants.RowLeft);

            result.AddRowAction(true)
            .HasText(T("On/Off"))
            .HasName("EnableOrDisable")
            .HasValue(x => x.Id)
            .HasButtonSize(ButtonSize.ExtraSmall);

            result.AddRowAction()
            .HasText(T("Edit"))
            .HasUrl(x => Url.Action("Edit", RouteData.Values.Merge(new { id = x.Id })))
            .HasButtonSize(ButtonSize.ExtraSmall);

            var languages = languageManager.GetActiveLanguages(Constants.ThemeDefault, false);

            if (languages.Any())
            {
                result.AddRowAction()
                .HasText(T("Translations"))
                .HasUrl(x => Url.Action("Translations", RouteData.Values.Merge(new { id = x.Id })))
                .HasButtonSize(ButtonSize.ExtraSmall)
                .HasButtonStyle(ButtonStyle.Info)
                .ShowModalDialog();
            }

            if (descriptor.Features.Any(x => x.Name == Constants.Areas.Widgets))
            {
                result.AddRowAction()
                .HasText(T("Widgets"))
                .HasUrl(x => Url.Action("Index", "Widget", RouteData.Values.Merge(new { pageId = x.Id, area = Constants.Areas.Widgets })))
                .HasButtonSize(ButtonSize.ExtraSmall)
                .HasButtonStyle(ButtonStyle.Success);
            }

            result.AddRowAction()
            .HasText(T("History"))
            .HasUrl(x => Url.Action("History", RouteData.Values.Merge(new { pageId = x.Id })))
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Warning);

            result.AddRowAction(true)
            .HasText(T("Delete"))
            .HasName("Delete")
            .HasValue(x => x.Id.ToString())
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Danger)
            .HasConfirmMessage(T(Constants.Messages.ConfirmDeleteRecord).Text);

            result.AddReloadEvent("UPDATE_ENTITY_COMPLETE");
            result.AddReloadEvent("DELETE_ENTITY_COMPLETE");

            return(result);
        }
Esempio n. 25
0
        public ActionResult Index()
        {
            if (!CheckPermission(TasksPermissions.ManageScheduleTasks))
            {
                return(new HttpUnauthorizedResult());
            }

            WorkContext.Breadcrumbs.Add(T("Scheduled Tasks"));

            var result = new ControlGridFormResult <ScheduleTask>
            {
                Title                = T("Schedule Tasks").Text,
                UpdateActionName     = "Update",
                FetchAjaxSource      = GetScheduleTasks,
                ClientId             = "tblScheduleTasks",
                ActionsColumnWidth   = 200,
                GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml,
                GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml
            };

            result.AddColumn(x => x.Name);
            result.AddColumn(x => x.LastStartUtc).HasHeaderText(T("Last Start UTC"));
            result.AddColumn(x => x.LastSuccessUtc).HasHeaderText(T("Last Success UTC"));
            result.AddColumn(x => x.Enabled).AlignCenter().RenderAsStatusImage();

            result.AddAction()
            .HasText(T("Create"))
            .HasIconCssClass("cx-icon cx-icon-add")
            .HasUrl(Url.Action("Create"))
            .HasButtonStyle(ButtonStyle.Primary)
            .HasBoxButton(false)
            .HasCssClass(Constants.RowLeft)
            .ShowModalDialog();

            result.AddAction(true)
            .HasText(T("Refresh"))
            .HasIconCssClass("cx-icon cx-icon-refresh")
            .OnClientClick("$('#tblScheduleTasks').jqGrid().trigger('reloadGrid'); return false;")
            .HasButtonStyle(ButtonStyle.Info)
            .HasBoxButton(false)
            .HasRow(false)
            .HasCssClass(Constants.RowLeft);

            result.AddRowAction(true)
            .HasText(T("Run Now"))
            .HasName("RunNow")
            .HasValue(x => x.Id.ToString())
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Success)
            .EnableWhen(x => x.Enabled);

            result.AddRowAction()
            .HasText(T("Edit"))
            .HasUrl(x => Url.Action("Edit", RouteData.Values.Merge(new { id = x.Id })))
            .HasButtonSize(ButtonSize.ExtraSmall)
            .ShowModalDialog();

            result.AddRowAction(true)
            .HasText(T("Delete"))
            .HasName("Delete")
            .HasValue(x => x.Id.ToString())
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasButtonStyle(ButtonStyle.Danger)
            .HasConfirmMessage(T(Constants.Messages.ConfirmDeleteRecord));

            result.AddReloadEvent("UPDATE_ENTITY_COMPLETE");
            result.AddReloadEvent("DELETE_ENTITY_COMPLETE");

            return(result);
        }
        public virtual ActionResult Index()
        {
            if (!CheckPermissions())
            {
                return(new HttpUnauthorizedResult());
            }

            var result = new ControlGridFormResult <TEntity>
            {
                Title                = T(PluralizedName),
                FetchAjaxSource      = GetRecords,
                UpdateActionName     = "Update",
                DefaultPageSize      = WorkContext.DefaultPageSize,
                EnablePaginate       = EnablePaginate,
                ActionsHeaderText    = T("Actions"),
                GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml,
                GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml
            };

            if (EnableCreate)
            {
                var createAction = result.AddAction()
                                   .HasText(CreateText)
                                   .HasIconCssClass("cx-icon cx-icon-add")
                                   .HasUrl(Url.Action("Create", RouteData.Values))
                                   .HasButtonStyle(ButtonStyle.Primary)
                                   .HasParentClass(Constants.ContainerCssClassCol12);

                if (ShowModalDialog)
                {
                    createAction.ShowModalDialog(DialogModalWidth, DialogModalHeight);
                }

                OnCreateCreateButton(createAction);
            }

            if (EnableEdit)
            {
                var editAction = result.AddRowAction()
                                 .HasText(EditText)
                                 .HasUrl(x => Url.Action("Edit", RouteData.Values.Merge(new { id = x.Id })))
                                 .HasButtonSize(ButtonSize.ExtraSmall);

                if (ShowModalDialog)
                {
                    editAction.ShowModalDialog(DialogModalWidth, DialogModalHeight);
                }

                OnCreateEditButton(editAction);
            }

            if (EnableDelete)
            {
                var deleteAction = result.AddRowAction(true)
                                   .HasText(T("Delete"))
                                   .HasName("Delete")
                                   .HasValue(x => x.Id.ToString())
                                   .HasButtonSize(ButtonSize.ExtraSmall)
                                   .HasButtonStyle(ButtonStyle.Danger)
                                   .HasConfirmMessage(T(Constants.Messages.ConfirmDeleteRecord).Text);
                OnCreateDeleteButton(deleteAction);
            }

            OnViewIndex(result);

            result.AddReloadEvent("UPDATE_ENTITY_COMPLETE");
            result.AddReloadEvent("DELETE_ENTITY_COMPLETE");

            return(OnIndexResult(result));
        }