コード例 #1
0
        public ActionResult Index()
        {
            if (!CheckPermission(DashboardPermissions.ManageModuleSettings))
            {
                return(new HttpUnauthorizedResult());
            }

            WorkContext.Breadcrumbs.Add(T("Extension Modules"));

            ViewBag.Title = T("Extension Modules");

            var result = new ControlGridFormResult <ShellFeature>
            {
                Title                = T("Extension Modules").Text,
                UpdateActionName     = "Update",
                FetchAjaxSource      = GetData,
                IsAjaxSupported      = true,
                GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml,
                GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml,
                ActionsColumnWidth   = 150
            };

            result.AddColumn(x => x.Name);

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

            result.AddAction()
            .HasText(T("Installer Module"))
            .HasUrl(Url.Action("InstallerModuleFileZip"))
            .HasButtonStyle(ButtonStyle.Success)
            .HasBoxButton(false)
            .HasRow(false)
            .HasCssClass(Constants.RowLeft);

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

            result.AddRowAction(true)
            .HasText(T("Delete"))
            .HasName("Delete")
            .HasUrl(x => Url.Action("Delete", RouteData.Values.Merge(new { name = x.Name })))
            .HasButtonStyle(ButtonStyle.Danger)
            .HasButtonSize(ButtonSize.ExtraSmall)
            .HasConfirmMessage(T(Constants.Messages.ConfirmDeleteRecord).Text);

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

            return(result);
        }
コード例 #2
0
        public ActionResult Index()
        {
            if (!CheckPermission(WidgetPermissions.ManageWidgets))
            {
                return(new HttpUnauthorizedResult());
            }

            WorkContext.Breadcrumbs.Add(T("Widgets"), Url.Action("Index", "Widget"));
            WorkContext.Breadcrumbs.Add(T("Zones"));

            var result = new ControlGridFormResult <Zone>
            {
                Title                = T("Manage Zones").Text,
                UpdateActionName     = "Update",
                FetchAjaxSource      = GetZones,
                EnablePaginate       = false,
                GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml,
                GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml
            };

            result.AddColumn(x => x.Name);

            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)
            .ShowModalDialog();

            result.AddAction()
            .HasText(T("Widgets"))
            .HasUrl(Url.Action("Index", "Widget"))
            .HasButtonStyle(ButtonStyle.Default)
            .HasBoxButton(false)
            .HasRow(false)
            .HasCssClass(Constants.RowLeft);

            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_ENTITY_COMPLETE");
            result.AddReloadEvent("DELETE_ENTITY_COMPLETE");

            return(result);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        public ActionResult Index()
        {
            WorkContext.Breadcrumbs.Add(new Breadcrumb {
                Text = T("Quản lý thể tích chai"), Url = "#"
            });
            var result       = new ControlGridFormResult <ProductVolumeInfo>();
            var siteSettings = WorkContext.Resolve <SiteSettings>();

            result.Title                = this.T("Quản lý thể tích chai");
            result.CssClass             = "table table-bordered table-striped";
            result.UpdateActionName     = "Update";
            result.IsAjaxSupported      = true;
            result.DefaultPageSize      = siteSettings.DefaultPageSize;
            result.EnablePaginate       = true;
            result.FetchAjaxSource      = this.GetProductVolume;
            result.GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml;
            result.GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml;
            result.ClientId             = TableName;
            result.ActionsColumnWidth   = 180;

            result.AddColumn(x => x.Id, T("Mã")).HasWidth(100);
            result.AddColumn(x => x.Name, T("Thể tích"));

            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("Không nên xóa dữ liệu thể tích chai vì có thể lỗi hệ thống, bạn có chắc chắn muốn xóa nó?"));

            result.AddReloadEvent("UPDATE_ENTITY_COMPLETE");
            result.AddReloadEvent("DELETE_ENTITY_COMPLETE");
            return(result);
        }
コード例 #6
0
        public ActionResult Index()
        {
            WorkContext.Breadcrumbs.Add(new Breadcrumb {
                Text = T("Quản lý tuyển dụng"), Url = "#"
            });
            var result       = new ControlGridFormResult <RecruitmentInfo>();
            var siteSettings = WorkContext.Resolve <SiteSettings>();

            result.Title = this.T("Quản lý tuyển dụng");

            result.CssClass             = "table table-bordered table-striped";
            result.UpdateActionName     = "Update";
            result.IsAjaxSupported      = true;
            result.DefaultPageSize      = siteSettings.DefaultPageSize;
            result.EnablePaginate       = true;
            result.FetchAjaxSource      = this.GetRecruitment;
            result.GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml;
            result.GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml;
            result.ClientId             = TableName;
            result.ActionsColumnWidth   = 120;

            result.AddColumn(x => x.Id, T("ID")).AlignCenter().HasWidth(100);
            result.AddColumn(x => x.Title, T("Tiêu đề"));
            result.AddColumn(x => x.Position, T("Vị trí tuyển dụng"));
            result.AddColumn(x => x.TimeWork, T("Thời gian làm việc"));
            result.AddColumn(x => x.FinishDate.ToString(Extensions.Constants.DateTimeFomat), T("Hạn nộp hồ sơ"));

            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);
        }
コード例 #7
0
        public ActionResult Index()
        {
            WorkContext.Breadcrumbs.Add(new Breadcrumb {
                Text = T("Quản lý cửa hàng phân phối"), Url = "#"
            });
            var result       = new ControlGridFormResult <StoreBranchInfo>();
            var siteSettings = WorkContext.Resolve <SiteSettings>();

            result.Title                = this.T("Quản lý cửa hàng phân phối");
            result.CssClass             = "table table-bordered table-striped";
            result.UpdateActionName     = "Update";
            result.IsAjaxSupported      = true;
            result.DefaultPageSize      = siteSettings.DefaultPageSize;
            result.EnablePaginate       = true;
            result.FetchAjaxSource      = this.GetStoreBranch;
            result.GridWrapperStartHtml = Constants.Grid.GridWrapperStartHtml;
            result.GridWrapperEndHtml   = Constants.Grid.GridWrapperEndHtml;
            result.ClientId             = TableName;
            result.ActionsColumnWidth   = 180;

            result.AddColumn(x => x.Id, T("ID")).AlignCenter().HasWidth(100);
            result.AddColumn(x => x.Name, T("Tên cửa hàng"));
            result.AddColumn(x => x.Address, T("Địa chỉ"));

            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);
        }
コード例 #8
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);
        }
コード例 #9
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.AddCustomVar(Extensions.Constants.StatusId, "$('#" + Extensions.Constants.StatusId + "').val();", true);

            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("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(BuildStatus)).HasParentClass(Constants.ContainerCssClassCol3);

            result.AddReloadEvent("UPDATE_ENTITY_COMPLETE");
            result.AddReloadEvent("DELETE_ENTITY_COMPLETE");
            return(result);
        }
コード例 #10
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);
        }
コード例 #11
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);
        }
コード例 #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);
        }
コード例 #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;
        }
コード例 #14
0
        protected override void OnViewIndex(ControlGridFormResult <QueuedEmail> controlGrid)
        {
            controlGrid.AddColumn(x => x.Subject);
            controlGrid.AddColumn(x => x.ToAddress).HasHeaderText("To Address");
            controlGrid.AddColumn(x => x.CreatedOnUtc).HasHeaderText("Created On Utc");
            controlGrid.AddColumn(x => x.SentOnUtc).HasHeaderText("Sent On Utc");
            controlGrid.AddColumn(x => x.SentTries).HasHeaderText(T("Sent Tries"));

            controlGrid.AddAction()
            .HasText(T("SMTP Settings"))
            .HasUrl(Url.Action("Edit", "Settings", new
            {
                area      = Constants.Areas.Core,
                id        = "CMSSolutions.Net.Mail.SmtpSettings",
                returnUrl = Url.Action("Index")
            }))
            .HasIconCssClass("cx-icon cx-icon-mail")
            .HasButtonStyle(ButtonStyle.Success).HasBoxButton(false)
            .HasRow(false)
            .HasCssClass(Constants.RowLeft);
        }
コード例 #15
0
        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);
        }
コード例 #16
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);
        }
コード例 #17
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);
        }
コード例 #18
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);
        }
コード例 #19
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);
        }
コード例 #20
0
        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));
        }
コード例 #21
0
 public ControlGrid <TModel> AddAction(ControlFormAction action)
 {
     model.AddAction(action);
     return(this);
 }
コード例 #22
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);
        }
コード例 #23
0
        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);
        }
コード例 #24
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);
        }