/// <summary>
        /// Registers the Disqus client resources to be rendered in defined areas.
        /// </summary>
        /// <param name="requiredResources">The required resources.</param>
        public void RegisterResources(IRequiredClientResourceList requiredResources)
        {
            var renderingContext = _contextProvider.GetContext();

            if (!renderingContext.IsInPreviewMode && !renderingContext.IsInEditMode)
            {
                return;
            }

            if (renderingContext.IsInEditMode)
            {
                requiredResources.Require("duk-disqus.EditMode");

                // Hack: output text in Edit mode to indicate thread placeholders that were not used by Disqus.
                // For example, it can be a case when there are several placeholders on a page.
                // We have to inject inline CSS here to be able to provide localized message text.
                var inlineStyle = string.Format(CultureInfo.InvariantCulture, "div#disqus_thread:empty:before {{content: '{0}';}}",
                                                _localizationService.GetString("/disqus/ui/rendering/severalthreadsonpage"));

                requiredResources.RequireStyleInline(inlineStyle, "duk-disqus.EditMode.severalThreadsIndicator", null);
            }

            // Inject the following styles for Edit and Preview modes
            requiredResources.Require("duk-disqus.PreviewMode");

            var httpContext = HttpContext.Current;

            if (httpContext != null)
            {
                httpContext.Items[ResourcesAreRegisteredKey] = true;
            }
        }
Beispiel #2
0
 public FindSearchPageController(IClient searchClient, IFindUIConfiguration findUIConfiguration, IRequiredClientResourceList requiredClientResourceList, IVirtualPathResolver virtualPathResolver)
 {
     this.searchClient               = searchClient;
     this.findUIConfiguration        = findUIConfiguration;
     this.requiredClientResourceList = requiredClientResourceList;
     this.virtualPathResolver        = virtualPathResolver;
 }
Beispiel #3
0
 public void RegisterResources(IRequiredClientResourceList requiredResources, HttpContextBase context)
 {
     requiredResources.Require("epi.samples.Module.Styles");
     requiredResources.Require("epi.samples.Module.FormHandler").AtFooter();
     requiredResources.RequireScript("http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.min.js").AtFooter();
     requiredResources.Require("jquery.ui").StylesOnly().AtHeader();
     requiredResources.Require("jquery.ui").ScriptsOnly().AtFooter();
 }
        public void RegisterResources(
            IRequiredClientResourceList requiredResources, 
            HttpContextBase context)
        {
            if (!PageEditing.PageIsInEditMode) return;

            requiredResources.Require("blockBreadcrumbs.Scripts").AtFooter();
            requiredResources.Require("blockBreadcrumbs.Styles").AtHeader();
        }
 public FindSearchPageController(IClient searchClient, IFindUIConfiguration findUIConfiguration, IRequiredClientResourceList requiredClientResourceList, IPageRatingRepository pageRatingRepository, IUserRepository userRepository)
 {
     this.searchClient               = searchClient;
     this.findUIConfiguration        = findUIConfiguration;
     this.requiredClientResourceList = requiredClientResourceList;
     this.pageRatingRepository       = pageRatingRepository;
     this.pageRatingRepository       = pageRatingRepository;
     this.userRepository             = userRepository;
 }
Beispiel #6
0
        /// <summary>
        /// Registers the client resources that should be injected on page to enable Disqus comments.
        /// </summary>
        /// <param name="requiredResources">The required resources.</param>
        public void RegisterClientResources(IRequiredClientResourceList requiredResources)
        {
            var configuration = _configurationProvider.Load();
            var context       = GetContext();

            var renderingModel = CreateRenderingModel(configuration, context);

            RegisterClientResources(requiredResources, context, renderingModel);
        }
Beispiel #7
0
 public void RegisterResources(IRequiredClientResourceList requiredResources)
 {
     if (HttpContext.Current.User.IsInRole("WebAdmins") || HttpContext.Current.User.IsInRole("WebEditors"))
     {
         var content = _routeHelper.Content;
         if (content != null && content.ContentLink.CompareToIgnoreWorkID(HidingPlace))
         {
             requiredResources.RequireScript("/EpiKitty/catfun.js");
         }
     }
 }
 public void RegisterResources(IRequiredClientResourceList requiredResources)
 {
     if (HttpContext.Current.User.IsInRole("WebAdmins") || HttpContext.Current.User.IsInRole("WebEditors"))
     {
         var content = _routeHelper.Content;
         if (content != null && content.ContentLink.CompareToIgnoreWorkID(HidingPlace))
         {
             requiredResources.RequireScriptInline("const kittypath='" + EPiServer.Shell.Paths.ToResource("Ascend.EpiKitty", "kitten.png") + "';");
             requiredResources.RequireScript(EPiServer.Shell.Paths.ToResource("Ascend.EpiKitty", "catfun.js"));
         }
     }
 }
Beispiel #9
0
        public void RegisterResources(
            IRequiredClientResourceList requiredResources,
            HttpContextBase context)
        {
            if (!PageEditing.PageIsInEditMode)
            {
                return;
            }

            requiredResources.Require("blockBreadcrumbs.Scripts").AtFooter();
            requiredResources.Require("blockBreadcrumbs.Styles").AtHeader();
        }
Beispiel #10
0
 public WidgetBlockController(ICommerceTrackingService commerceTrackingService,
                              ReferenceConverter referenceConverter,
                              IRequiredClientResourceList requiredClientResource,
                              ICartService cartService,
                              ConfirmationService confirmationService)
 {
     _trackingService        = commerceTrackingService;
     _referenceConverter     = referenceConverter;
     _requiredClientResource = requiredClientResource;
     _cartService            = cartService;
     _confirmationService    = confirmationService;
 }
Beispiel #11
0
        private void InitJs(IRequiredClientResourceList instance)
        {
            List <string> scripts;
            List <string> css;
            var           scriptContent = "var epi = epi||{}; epi.EPiServer = epi.EPiServer||{}; epi.EPiServer.Forms = epi.EPiServer.Forms||{};\r\nepi.EPiServer.Forms.InjectFormOwnJQuery = "
                                          + EPiServerFormsSection.Instance.InjectFormOwnJQuery.ToString().ToLowerInvariant()
                                          +
                                          ";epi.EPiServer.Forms.OriginalJQuery = typeof jQuery !== 'undefined' ? jQuery : undefined;";

            instance.RequireScriptInline(scriptContent, "EPiServerForms_saveOriginalJQuery.js", new List <string>())
            .AtHeader();
            if (EPiServerFormsSection.Instance.InjectFormOwnJQuery)
            {
                var list2 = new List <string> {
                    "EPiServerForms_saveOriginalJQuery.js"
                };
                instance.RequireScript(
                    ModuleHelper.GetWebResourceUrl(typeof(FormContainerBlockController),
                                                   "EPiServer.Forms.ClientResources.ViewMode.jquery-1.7.2.min.js"),
                    "Forms.jquery.js", list2).AtHeader();
            }
            var webResourceContent = ModuleHelper.GetWebResourceContent(typeof(FormContainerBlockController),
                                                                        "EPiServer.Forms.ClientResources.ViewMode.EPiServerForms_prerequisite.js");

            FormsExtensions.GetFormExternalResources(out scripts, out css);
            webResourceContent = webResourceContent
                                 .Replace("___CurrentPageLink___", FormsExtensions.GetCurrentPageLink().ToString())
                                 .Replace("___CurrentPageLanguage___", FormsExtensions.GetCurrentPageLanguage())
                                 .Replace("___ExternalScriptSources___", scripts.ToJson())
                                 .Replace("___ExternalCssSources___", css.ToJson())
                                 .Replace("___UploadExtensionBlackList___", FormsExtensions.GetUploadExtensionBlackList())
                                 .Replace("___Messages___", FormsExtensions.GetCommonMessages())
                                 .Replace("___LocalizedResources___", FormsExtensions.GetLocalizedResources().ToJson());
            var dependencies = new List <string> {
                "Forms.jquery.js"
            };

            instance.RequireScriptInline(webResourceContent, "EPiServerForms_prerequisite.js", dependencies).AtHeader();
            var list6 = new List <string>
            {
                "Forms.jquery.js",
                "EPiServerForms_prerequisite.js"
            };

            instance.RequireScript(
                ModuleHelper.GetWebResourceUrl(typeof(FormContainerBlockController),
                                               "EPiServer.Forms.ClientResources.ViewMode.EPiServerForms.js"),
                "EPiServerForms.js", list6).AtFooter();
        }
Beispiel #12
0
        /// <summary>
        /// Registers the client resources that should be injected on page to enable Disqus comments.
        /// </summary>
        /// <param name="requiredResources">The required resources.</param>
        /// <param name="context">The context.</param>
        /// <param name="renderingModel">The rendering model.</param>
        private void RegisterClientResources(IRequiredClientResourceList requiredResources, IContext context, RenderingModel renderingModel)
        {
            if (!renderingModel.IsEnabled && !context.IsInEditMode)
            {
                return;
            }

            requiredResources.RequireScriptInline(renderingModel.LoaderScript, "duk-disqus.Loader", null).AtFooter();

            if ((context.IsInEditMode || context.IsInPreviewMode) && _editModeRendering.Value != null)
            {
                // Do specific injections for Edit UI
                _editModeRendering.Value.RegisterClientResources(requiredResources, renderingModel);
            }
        }
        public virtual void RegisterResources(IRequiredClientResourceList requiredResources, HttpContextBase context)
        {
            if (_configuration.ModuleEnabled)
            {
                var instance = ServiceLocator.Current.GetInstance <IPageRouteHelper>();
                if (instance.Content != null)
                {
                    // The user we're tracking
                    var userId = EPiServer.Security.PrincipalInfo.CurrentPrincipal.GetContactId();

                    // This is the main Sannsyn Recommendation script, it should go on all pages
                    requiredResources.RequireScriptInline(GenerateCrecScript(userId), CrecScriptName, null).AtHeader();

                    // Register product view only for product / variant content
                    if (instance.Content is EntryContentBase)
                    {
                        requiredResources.RequireScript(GetProductViewTrackingScript(instance.Content, userId));
                    }
                }
            }
        }
        public void RegisterResources(IRequiredClientResourceList requiredResources)
        {
            IPrincipal currentPrincipal = PrincipalInfo.CurrentPrincipal;

            if (currentPrincipal != null && currentPrincipal.Identity.IsAuthenticated)
            {
                var contact = CustomerContext.Current.CurrentContact;
                if (contact != null)
                {
                    string script = @"
if (typeof $zopim !== 'undefined') {
   $zopim(function(){
           $zopim.livechat.setEmail('" + contact.Email + @"');
           $zopim.livechat.setName('" + contact.FirstName + " " + contact.LastName + @"');
    });
}
";
                    requiredResources.RequireScriptInline(script).AtFooter();
                }
            }
        }
        /// <summary>
        /// Registers client resources that should be injected when page is opened in Edit UI.
        /// </summary>
        /// <param name="requiredResources">The required resources.</param>
        /// <param name="renderingModel">The Disqus comments rendering model.</param>
        public void RegisterClientResources(IRequiredClientResourceList requiredResources, RenderingModel renderingModel)
        {
            // Require scripts here.
            // Styles should be require in client resource register to make sure that they are added in Header area before that area is rendered.

            // HACK: Ugly fallback to register client resources (styles) if it was not registered using IClientResourceRegistrator.
            // It may happen when templates don't meet the standard requirements for EPiServer CMS page templates
            // and don't require/render client resources. For example: block preview template in Alloy.
            // Open question: Should we solve it here?

            // Check if resources were registered (normal flow).
            if (EditModeClientResourceRegister.AreRegistered(_context))
            {
                return;
            }
            // Fallback: register now
            var register = ServiceLocator.Current.GetAllInstances <IClientResourceRegistrator>()
                           .FirstOrDefault(r => typeof(EditModeClientResourceRegister) == r.GetType());

            register?.RegisterResources(requiredResources);
        }
Beispiel #16
0
        /// <summary>
        /// Renders the Disqus comments thread code in specified area.
        /// Also registers Disqus loader script to be injected on a page.
        /// </summary>
        /// <param name="requiredResources">The required resources list.</param>
        public void RenderInAreas(IRequiredClientResourceList requiredResources)
        {
            var configuration = _configurationProvider.Load();

            if (!configuration.RenderingAreas.Any())
            {
                return;
            }

            var context        = GetContext();
            var renderingModel = CreateRenderingModel(configuration, context);

            RegisterClientResources(requiredResources, context, renderingModel);

            var threadCode = Render(context, renderingModel);

            if (!String.IsNullOrWhiteSpace(threadCode))
            {
                configuration.RenderingAreas.ToList().ForEach(renderingArea =>
                                                              requiredResources.RequireHtmlInline(threadCode).AtArea(renderingArea));
            }
        }
 /// <summary>
 /// Registers the Disqus client resources to be rendered in defined areas.
 /// </summary>
 /// <param name="requiredResources">The required resources.</param>
 public void RegisterResources(IRequiredClientResourceList requiredResources)
 {
     _renderingService.RenderInAreas(requiredResources);
 }
 public ManageCommentPluginController(IRequiredClientResourceList requiredClientResourceList, IVirtualPathResolver virtualPathResolver)
 {
     this.requiredClientResourceList = requiredClientResourceList;
     this.virtualPathResolver        = virtualPathResolver;
 }
Beispiel #19
0
 public FindSearchPageController(IClient searchClient, IFindUIConfiguration findUIConfiguration, IRequiredClientResourceList requiredClientResourceList)
 {
     this.searchClient               = searchClient;
     this.findUIConfiguration        = findUIConfiguration;
     this.requiredClientResourceList = requiredClientResourceList;
 }
 public void RegisterResources(IRequiredClientResourceList requiredResources, HttpContextBase context)
 {
     //requiredResources.Require("epi.samples.Module1");
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="CommentsBlockController"/> class.
 /// </summary>
 public CommentsBlockController()
 {
     _requiredResources = ServiceLocator.Current.GetInstance <IRequiredClientResourceList>();
     _renderingService  = ServiceLocator.Current.GetInstance <IRenderingService>();
 }
Beispiel #22
0
 /// <summary>
 /// Registers the Disqus client resources to be rendered in defined areas.
 /// </summary>
 /// <param name="requiredResources">The required resources.</param>
 /// <param name="context">The context.</param>
 public void RegisterResources(IRequiredClientResourceList requiredResources, HttpContextBase context)
 {
     _renderingService.RenderInAreas(requiredResources);
 }
Beispiel #23
0
 public HealthChatBotBlockController(IRequiredClientResourceList requiredClientResourceList)
 {
     _requiredClientResourceList = requiredClientResourceList;
 }
Beispiel #24
0
 public HealthBotBlockComponent(IRequiredClientResourceList requiredClientResourceList)
 {
     _requiredClientResourceList = requiredClientResourceList;
 }
        public void RegisterResources(IRequiredClientResourceList requiredResources, HttpContextBase context)
        {
            var scriptFactory = ServiceLocator.Current.GetInstance <IClientScriptFactory>();

            scriptFactory.RegisterResources(requiredResources, context);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="CommentsBlockController" /> class.
 /// </summary>
 /// <param name="requiredResources">The required client resources list.</param>
 /// <param name="renderingService">The Disqus rendering service.</param>
 public CommentsBlockController(IRequiredClientResourceList requiredResources, IRenderingService renderingService)
 {
     _requiredResources = requiredResources;
     _renderingService  = renderingService;
 }