Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 3
0
 protected KoreController()
 {
     WorkContext = EngineContext.Current.Resolve <IWebWorkContext>();
     T           = LocalizationUtilities.Resolve();
     Logger      = LoggingUtilities.Resolve();
     //Logger = NullLogger.Instance;
 }
Ejemplo n.º 4
0
        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();
 }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        public override void InitHelpers()
        {
            base.InitHelpers();

            _workContext = ViewContext.GetWorkContext();

            _localizer = LocalizationUtilities.Resolve(ViewContext, AppRelativeVirtualPath);
            _display   = DisplayHelperFactory.CreateHelper(ViewContext, this);
            _layout    = _workContext.Layout;
        }
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
0
 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();
 }
Ejemplo n.º 10
0
        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);
                };
            }
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        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));
        }
Ejemplo n.º 13
0
        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));
        }
Ejemplo n.º 14
0
        //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));
        }
Ejemplo n.º 15
0
 public PagerModel()
 {
     this.localizer = LocalizationUtilities.Resolve();
 }