public IEnumerable <MenuItem> GetMainMenuItems(IPrincipal user) { if (!PluginManager.IsPluginInstalled(Constants.PluginSystemName)) { return(Enumerable.Empty <MenuItem>()); } if (!forumSettings.ShowOnMenus) { return(Enumerable.Empty <MenuItem>()); } var T = LocalizationUtilities.Resolve(); return(new[] { new MenuItem { Text = string.IsNullOrEmpty(forumSettings.PageTitle) ? T(LocalizableStrings.Forums) : forumSettings.PageTitle, Url = "/forums", Enabled = true, ParentId = null, Position = forumSettings.MenuPosition } }); }
private Localizer GetLocalizer() { var workContextAccessor = container.Resolve <IWorkContextAccessor>(); var workContext = workContextAccessor.GetContext(); return(LocalizationUtilities.Resolve(workContext, localizerScope)); }
protected KoreController() { WorkContext = EngineContext.Current.Resolve <IWebWorkContext>(); T = LocalizationUtilities.Resolve(); Logger = LoggingUtilities.Resolve(); //Logger = NullLogger.Instance; }
public override void BuildDisplay(HtmlTextWriter writer, ViewContext viewContext, IWorkContextAccessor workContextAccessor) { var workContext = workContextAccessor.GetContext(); var localizer = LocalizationUtilities.Resolve(workContext, typeof(DataAnnotations4ModelMetadataProvider).FullName); string html = string.Format( @"<form id=""newsletter-subscribe-form"" class=""form-horizontal""> <label for=""email"">{0}</label> <input type=""text"" id=""newsletter-widget-email"" class=""form-control"" placeholder=""{1}"" /> <input type=""button"" class=""btn btn-primary"" value=""{2}"" onclick=""javascript:newsletterSignUp()"" /> </form>", localizer("Sign up for newsletters"), localizer("Input e-mail address"), localizer("Submit")); writer.Write(html); var scriptRegister = new ScriptRegister(workContext); scriptRegister.IncludeInline(string.Format( @"function newsletterSignUp() {{ $.ajax({{ url: '{0}', data: {{ email: $('#newsletter-widget-email').val() }}, type: 'POST', dataType: 'json', success: function(result){{ alert(result.Message); }} }}); }}", new UrlHelper(viewContext.RequestContext).Action("Subscribe", "Subscription", new { area = Constants.Areas.Newsletters }))); }
public WatchdogInstanceApiController( IWatchdogInstanceService service, Lazy <WatchdogSettings> settings) : base(service) { this.settings = settings; T = LocalizationUtilities.Resolve(); }
public override void RenderView(ViewContext viewContext) { _workContext = viewContext.GetWorkContext(); _localizer = LocalizationUtilities.Resolve(viewContext, AppRelativeVirtualPath); _display = DisplayHelperFactory.CreateHelper(viewContext, this); _layout = _workContext.Layout; base.RenderView(viewContext); }
public override void InitHelpers() { base.InitHelpers(); _workContext = ViewContext.GetWorkContext(); _localizer = LocalizationUtilities.Resolve(ViewContext, AppRelativeVirtualPath); _display = DisplayHelperFactory.CreateHelper(ViewContext, this); _layout = _workContext.Layout; }
public MvcHtmlString PermissionsCheckBoxList( string name, IEnumerable <string> selectedPermissionIds, object labelHtmlAttributes = null, object checkboxHtmlAttributes = null) { var membershipService = EngineContext.Current.Resolve <IMembershipService>(); var permissionProviders = EngineContext.Current.ResolveAll <IPermissionProvider>(); var permissions = permissionProviders.SelectMany(x => x.GetPermissions()).ToList(); var workContext = EngineContext.Current.Resolve <IWorkContext>(); var allPermissions = AsyncHelper.RunSync(() => membershipService.GetAllPermissions(workContext.CurrentTenant.Id)).ToHashSet(); var T = LocalizationUtilities.Resolve(); #region First check if all permissions are in the DB foreach (var permission in permissions) { if (!allPermissions.Any(x => x.Name == permission.Name)) { var newPermission = new KorePermission { Name = permission.Name, Category = string.IsNullOrEmpty(permission.Category) ? T(KoreWebLocalizableStrings.General.Miscellaneous) : permission.Category, Description = permission.Description }; newPermission.TenantId = workContext.CurrentTenant.Id; membershipService.InsertPermission(newPermission); allPermissions.Add(newPermission); } } #endregion First check if all permissions are in the DB var selectList = new List <ExtendedSelectListItem>(); foreach (var categoryGroup in allPermissions.OrderBy(x => x.Category, new PermissionComparer(StringComparer.InvariantCultureIgnoreCase)).GroupBy(x => x.Category)) { selectList.AddRange(categoryGroup.OrderBy(x => x.Description) .Select(permission => new ExtendedSelectListItem { Category = permission.Category, Text = permission.Description, Value = permission.Id })); } return(html.CheckBoxList( name, selectList, selectedPermissionIds, labelHtmlAttributes: labelHtmlAttributes, checkboxHtmlAttributes: checkboxHtmlAttributes)); }
public NewsletterService( Lazy <IMembershipService> membershipService, Lazy <MembershipSettings> membershipSettings, Lazy <IEventBus> eventBus, Lazy <IWorkContext> workContext) { this.membershipService = membershipService; this.membershipSettings = membershipSettings; this.eventBus = eventBus; this.workContext = workContext; T = LocalizationUtilities.Resolve(); }
protected override void AttachToComponentRegistration(IComponentRegistry componentRegistry, IComponentRegistration registration) { var userProperty = FindUserProperty(registration.Activator.LimitType); if (userProperty != null) { var scope = registration.Activator.LimitType.FullName; registration.Activated += (sender, e) => { var localizer = localizerCache.GetOrAdd(scope, key => LocalizationUtilities.Resolve(scope)); userProperty.SetValue(e.Instance, localizer, null); }; } }
protected override IEnumerable <ModelValidator> GetValidators(ModelMetadata metadata, ControllerContext context, IEnumerable <Attribute> attributes) { var localizedAttributes = new List <Attribute>(); // overriden messages have their localization in the scope of the class they are applied to var tContainer = new Lazy <Localizer>(() => LocalizationUtilities.Resolve(context, (metadata.ContainerType ?? metadata.ModelType).FullName)); foreach (var attribute in attributes) { Func <ValidationAttribute, Localizer, ValidationAttribute> localizedAttribute; // default translations use the attribute's scope, e.g., Tomelt.Mvc.DataAnnotations.LocalizedRequiredAttribute var localAttribute = attribute; var tProvider = new Lazy <Localizer>(() => LocalizationUtilities.Resolve(context, localAttribute.GetType().FullName)); var validationAttribute = attribute as ValidationAttribute; // substitute the attribute to its localized version if available if (_validationAttributes.TryGetValue(attribute.GetType(), out localizedAttribute)) { localizedAttributes.Add(localizedAttribute((ValidationAttribute)attribute, tProvider.Value)); } else { // try to inject the localizer if it's an unkown validation attribute if (validationAttribute != null) { var propertyInfo = validationAttribute.GetType().GetProperty("T", typeof(Localizer)); if (propertyInfo != null) { propertyInfo.SetValue(attribute, tProvider.Value, null); } } if (attribute is DisplayNameAttribute) { metadata.DisplayName = tContainer.Value(metadata.DisplayName).Text; } localizedAttributes.Add(attribute); } } var result = base.GetValidators(metadata, context, localizedAttributes); return(result); }
public static MvcHtmlString ForumTopicSmallPager <TModel>(this HtmlHelper <TModel> html, ForumTopicRowModel model) { var localizer = LocalizationUtilities.Resolve(); var forumTopicId = model.Id; var forumTopicSlug = model.SeName; var totalPages = model.TotalPostPages; if (totalPages > 0) { var links = new StringBuilder(); if (totalPages <= 4) { for (int x = 1; x <= totalPages; x++) { links.Append(html.ActionLink(x.ToString(), "Topic", new { id = forumTopicId, page = (x), slug = forumTopicSlug }, new { title = string.Format(localizer(LocalizableStrings.Pager.PageLinkTitle), x.ToString()) })); if (x < totalPages) { links.Append(", "); } } } else { links.Append(html.ActionLink("1", "Topic", new { id = forumTopicId, page = (1), slug = forumTopicSlug }, new { title = string.Format(localizer(LocalizableStrings.Pager.PageLinkTitle), 1) })); links.Append(" ... "); for (int x = (totalPages - 2); x <= totalPages; x++) { links.Append(html.ActionLink(x.ToString(), "Topic", new { id = forumTopicId, page = (x), slug = forumTopicSlug }, new { title = string.Format(localizer(LocalizableStrings.Pager.PageLinkTitle), x.ToString()) })); if (x < totalPages) { links.Append(", "); } } } // Inserts the topic page links into the localized string ([Go to page: {0}]) return(MvcHtmlString.Create(string.Format(localizer(LocalizableStrings.Topics_GotoPostPager), links.ToString()))); } return(MvcHtmlString.Create(string.Empty)); }
public override async Task <IHttpActionResult> Delete([FromODataUri] Guid key) { var entity = await Service.FindOneAsync(key); if (entity == null) { return(NotFound()); } if (!CanModifyEntity(entity)) { return(Unauthorized()); } // First find previous version and set it to be the current PageVersion previous = null; using (var connection = Service.OpenConnection()) { previous = await connection .Query(x => x.Id != entity.Id && x.PageId == entity.PageId && x.CultureCode == entity.CultureCode) .OrderByDescending(x => x.DateModifiedUtc) .FirstOrDefaultAsync(); } if (previous == null) { var localizer = LocalizationUtilities.Resolve(); return(BadRequest(localizer(KoreCmsLocalizableStrings.Pages.CannotDeleteOnlyVersion).Text)); } previous.Status = VersionStatus.Published; await Service.UpdateAsync(previous); return(await base.Delete(key)); }
//public static MvcHtmlString BBCodeEditor<TModel>(this HtmlHelper<TModel> html, string name) //{ // var sb = new StringBuilder(128); // sb.Append("<script type=\"text/javascript\">"); // sb.AppendFormat("edToolbar('{0}','/Plugins/Messaging.Forums/Scripts/BBEditor/');", name); // sb.Append("</script>"); // return MvcHtmlString.Create(sb.ToString()); //} public static MvcHtmlString Pager <TModel>(this HtmlHelper <TModel> html, PagerModel model) { if (model.TotalRecords == 0) { return(null); } var localizer = LocalizationUtilities.Resolve(); var links = new StringBuilder(); if (model.ShowTotalSummary && (model.TotalPages > 0)) { links.Append("<li class=\"total-summary\">"); links.Append(string.Format(model.CurrentPageText, model.PageIndex + 1, model.TotalPages, model.TotalRecords)); links.Append("</li>"); } if (model.ShowPagerItems && (model.TotalPages > 1)) { if (model.ShowFirst) { //first page if ((model.PageIndex >= 3) && (model.TotalPages > model.IndividualPagesDisplayedCount)) { model.RouteValues.page = 1; links.Append("<li class=\"first-page\">"); //if (model.UseRouteLinks) //{ // links.Append(html.RouteLink(model.FirstButtonText, model.RouteActionName, model.RouteValues, new { title = localizer(LocalizableStrings.Pager.FirstPageTitle) })); //} //else //{ links.Append(html.ActionLink(model.FirstButtonText, model.RouteActionName, model.RouteValues, new { title = localizer(LocalizableStrings.Pager.FirstPageTitle) })); //} links.Append("</li>"); } } if (model.ShowPrevious) { //previous page if (model.PageIndex > 0) { model.RouteValues.page = (model.PageIndex); links.Append("<li class=\"previous-page\">"); //if (model.UseRouteLinks) //{ // links.Append(html.RouteLink(model.PreviousButtonText, model.RouteActionName, model.RouteValues, new { title = localizer(LocalizableStrings.Pager.PreviousPageTitle) })); //} //else //{ links.Append(html.ActionLink(model.PreviousButtonText, model.RouteActionName, model.RouteValues, new { title = localizer(LocalizableStrings.Pager.PreviousPageTitle) })); //} links.Append("</li>"); } } if (model.ShowIndividualPages) { //individual pages int firstIndividualPageIndex = model.GetFirstIndividualPageIndex(); int lastIndividualPageIndex = model.GetLastIndividualPageIndex(); for (int i = firstIndividualPageIndex; i <= lastIndividualPageIndex; i++) { if (model.PageIndex == i) { links.AppendFormat("<li class=\"current-page\"><span>{0}</span></li>", (i + 1)); } else { model.RouteValues.page = (i + 1); links.Append("<li class=\"individual-page\">"); //if (model.UseRouteLinks) //{ // links.Append(html.RouteLink((i + 1).ToString(), model.RouteActionName, model.RouteValues, new { title = string.Format(localizer(LocalizableStrings.Pager.PageLinkTitle), (i + 1)) })); //} //else //{ links.Append(html.ActionLink((i + 1).ToString(), model.RouteActionName, model.RouteValues, new { title = string.Format(localizer(LocalizableStrings.Pager.PageLinkTitle), (i + 1)) })); //} links.Append("</li>"); } } } if (model.ShowNext) { //next page if ((model.PageIndex + 1) < model.TotalPages) { model.RouteValues.page = (model.PageIndex + 2); links.Append("<li class=\"next-page\">"); //if (model.UseRouteLinks) //{ // links.Append(html.RouteLink(model.NextButtonText, model.RouteActionName, model.RouteValues, new { title = localizer(LocalizableStrings.Pager.NextPageTitle) })); //} //else //{ links.Append(html.ActionLink(model.NextButtonText, model.RouteActionName, model.RouteValues, new { title = localizer(LocalizableStrings.Pager.NextPageTitle) })); //} links.Append("</li>"); } } if (model.ShowLast) { //last page if (((model.PageIndex + 3) < model.TotalPages) && (model.TotalPages > model.IndividualPagesDisplayedCount)) { model.RouteValues.page = model.TotalPages; links.Append("<li class=\"last-page\">"); //if (model.UseRouteLinks) //{ // links.Append(html.RouteLink(model.LastButtonText, model.RouteActionName, model.RouteValues, new { title = localizer(LocalizableStrings.Pager.LastPageTitle) })); //} //else //{ links.Append(html.ActionLink(model.LastButtonText, model.RouteActionName, model.RouteValues, new { title = localizer(LocalizableStrings.Pager.LastPageTitle) })); //} links.Append("</li>"); } } } var result = links.ToString(); if (!string.IsNullOrEmpty(result)) { result = "<ul>" + result + "</ul>"; } return(MvcHtmlString.Create(result)); }
public PagerModel() { this.localizer = LocalizationUtilities.Resolve(); }