public void CanEvaluate_Selected_AsSelected_AndUrlEncoded_ItemPath() { PluginContext ctx = new PluginContext(new SelectionUtility(new Items.CustomExtensionPage(), null), null, null, ControlPanelState.Visible, null, null); var result = ctx.Format("Selected: {selected}", true); Assert.That(result, Is.EqualTo("Selected: " + HttpUtility.UrlEncode("/"))); }
public void CanEvaluate() { PluginContext ctx = new PluginContext(new SelectionUtility(new Items.CustomExtensionPage(), null), null, null, ControlPanelState.Visible, null, null); var result = ctx.Format("{Selected.ID}", false); Assert.That(result, Is.EqualTo("0")); }
public void CanEvaluate_Selected_AsSelected_ItemPath() { PluginContext ctx = new PluginContext(new Items.CustomExtensionPage(), null, null, null, ControlPanelState.Visible, null, null); var result = ctx.Format("Selected: {selected}", false); Assert.That(result, Is.EqualTo("Selected: /")); }
public override Control AddTo(Control container, PluginContext context) { var requiredPermission = context.Selected.State == ContentState.Published ? Permission.Publish : Permission.Write; if (!context.Engine.SecurityManager.IsAuthorized(context.HttpContext.User, context.Selected, requiredPermission)) return null; if(!ActiveFor(container, context.State)) return null; if (!context.Selected.VersionOf.HasValue) return base.AddTo(container, context); HyperLink hl = new HyperLink(); hl.Text = GetInnerHtml(context, "{IconsUrl}/cross_orange.png", ToolTip, Title); hl.NavigateUrl = Url.Parse("{ManagementUrl}/Content/DiscardPreview.aspx").ResolveTokens() .AppendQuery("selectedUrl", context.Selected.Url) .AppendQuery(PathData.ItemQueryKey, context.Selected.VersionOf.ID) .AppendQuery(PathData.VersionIndexQueryKey, context.Selected.VersionIndex); hl.CssClass = "cancel"; hl.Attributes["onclick"] = "return confirm('Are you certain?');"; hl.ToolTip = Utility.GetResourceString(GlobalResourceClassName, Name + ".ToolTip") ?? context.Format("Delete this version", false); container.Controls.Add(hl); return hl; }
protected virtual Url GetNavigateUrl(PluginContext context) { Url url = context.Rebase(context.Format(NavigateUrl, UrlEncode)); if (!string.IsNullOrEmpty(NavigateQuery)) url = url.AppendQuery(context.Format(NavigateQuery, UrlEncode)); return url; }
public override Control AddTo(Control container, PluginContext context) { Control control = base.AddTo(container, context); if(control != null) container.Page.PreRender += delegate { control.Visible = container.Page.Items[Zone.PageKey] != null;}; return control; }
public override Control AddTo(Control container, PluginContext context) { ILanguageGateway gateway = N2.Context.Current.Resolve<ILanguageGateway>(); if (!gateway.Enabled) return null; HtmlGenericControl div = new HtmlGenericControl("div"); div.Attributes["class"] = "languages"; container.Controls.Add(div); base.AddTo(div, context); foreach (ILanguage language in gateway.GetAvailableLanguages()) { Url url = Engine.ManagementPaths.ResolveResourceUrl("{ManagementUrl}/Content/Globalization/Translate.aspx"); url = url.AppendQuery("language", language.LanguageCode); url = url.AppendQuery("selected={selected}"); HyperLink h = new HyperLink(); h.ID = language.LanguageCode.Replace('-', '_').Replace(' ', '_'); h.Target = Targets.Preview; h.NavigateUrl = context.Rebase(context.Format(url, true)); h.CssClass = "language"; h.ToolTip = language.LanguageTitle; h.Text = string.Format("<img src='{0}' alt=''/>", Url.ToAbsolute(language.FlagUrl)); div.Controls.Add(h); RegisterToolbarUrl(container, h.ClientID, url); } return div; }
protected virtual HyperLink AddAnchor(Control container, PluginContext context) { string tooltip = Utility.GetResourceString(GlobalResourceClassName, Name + ".ToolTip") ?? ToolTip; string title = Utility.GetResourceString(GlobalResourceClassName, Name + ".Title") ?? Title; string alternative = Utility.GetResourceString(GlobalResourceClassName, Name + ".AlternativeText") ?? AlternativeText; HyperLink a = new HyperLink(); a.ID = "h" + Name; a.NavigateUrl = context.Rebase(context.Format(UrlFormat, true)); a.SkinID = "ToolBarLink_" + Name; a.Target = Target; a.Attributes["class"] = Name + " " + RequiredPermission.ToString() + (string.IsNullOrEmpty(IconUrl) ? "" : " iconed"); if (UrlFormat.Contains("{")) { a.Attributes["class"] += " templatedurl"; a.Attributes["data-url-template"] = context.Rebase(UrlFormat); } a.ToolTip = tooltip; a.Text = title; ApplyStyles(context, a); container.Controls.Add(a); return a; }
public override Control AddTo(Control container, PluginContext context) { var selector = context.Engine.Resolve<LanguageGatewaySelector>(); if (!selector.Enabled || selector.LanguagesPerSite /*avoid showing options that might not be relevant */) return null; ILanguageGateway gateway = selector.GetAllLanguages(); HtmlGenericControl div = new HtmlGenericControl("div"); div.Attributes["class"] = "languages"; container.Controls.Add(div); base.AddTo(div, context); foreach (ILanguage language in gateway.GetAvailableLanguages()) { Url url = Engine.ManagementPaths.ResolveResourceUrl("{ManagementUrl}/Content/Globalization/Translate.aspx"); url = url.AppendQuery("language", language.LanguageCode); url = url.AppendQuery(SelectionUtility.SelectedQueryKey + "={selected}"); HyperLink h = new HyperLink(); h.ID = language.LanguageCode.Replace('-', '_').Replace(' ', '_'); h.Target = Targets.Preview; h.NavigateUrl = context.Rebase(context.Format(url, true)); h.CssClass = "templatedurl language"; h.ToolTip = language.LanguageTitle; h.Text = string.Format("<img src='{0}' alt=''/>", Url.ToAbsolute(language.FlagUrl)); h.Attributes["data-url-template"] = context.Rebase(url); div.Controls.Add(h); } return div; }
public override Control AddTo(Control container, PluginContext context) { HtmlGenericControl hgc = new HtmlGenericControl("div"); hgc.Attributes["class"] = "separator"; container.Controls.Add(hgc); return hgc; }
protected override N2.Web.Url GetNavigateUrl(PluginContext context) { if (!Engine.Config.Sections.Management.Legacy) return base.GetNavigateUrl(context); return context.Rebase(context.Format("{ManagementUrl}/Content/Default.aspx?{Selection.SelectedQueryKey}={Selected.Path}", UrlEncode)); }
public override Control AddTo(Control container, PluginContext context) { HyperLink a = AddAnchor(container, context); RegisterToolbarUrl(container, a.ClientID, context.Rebase(UrlFormat)); return a; }
protected string GetInnerHtml(PluginContext pluginContext, string iconUrl, string alt, string text) { if (!string.IsNullOrEmpty(IconClass)) return string.Format("<b class='{0}'></b> {1}", IconClass, text); if (string.IsNullOrEmpty(iconUrl)) return text; return string.Format("<img src='{0}' alt='{1}'/>{2}", pluginContext.Rebase(iconUrl), alt, text); }
public override System.Web.UI.Control AddTo(System.Web.UI.Control container, PluginContext context) { HyperLink link = (HyperLink)base.AddTo(container, context); if (context.HttpContext.Request.QueryString["edit"] == "drag") link.CssClass += " toggled"; else link.NavigateUrl = link.NavigateUrl.ToUrl().AppendQuery("edit=drag"); return link; }
public override System.Web.UI.Control AddTo(System.Web.UI.Control container, PluginContext context) { if (context.Selected == null) return null; if (!context.Engine.Config.Sections.Management.Collaboration.ActivityTrackingEnabled) return null; var script = new LiteralControl(string.Format(@"<script> setInterval(function() {{ $.get('{0}?activity=View&{1}={2}'); }}, 60000); </script>", Url.ResolveTokens("{ManagementUrl}/Content/Activity/Notify.ashx"), PathData.SelectedQueryKey, context.Selected.Path)); container.Controls.Add(script); return script; }
public override Control AddTo(Control container, PluginContext context) { if(!ActiveFor(container, context.State)) return null; HtmlImage img = new HtmlImage(); img.Src = Engine.ManagementPaths.ResolveResourceUrl("{ManagementUrl}/Resources/Img/separator.png"); img.Attributes["class"] = "separator"; img.Height = 16; img.Width = 1; img.Alt = "|"; container.Controls.Add(img); return img; }
public override System.Web.UI.Control AddTo(System.Web.UI.Control container, PluginContext context) { if (context.Selected == null) return null; var collaboration = context.Engine.Config.Sections.Management.Collaboration; if (!collaboration.ActivityTrackingEnabled) return null; var script = new LiteralControl(string.Format(@"<script> setInterval(function() {{ $.get('{0}?activity=View&{1}={2}', function(result){{ try {{ n2 && n2.context && n2.context(result) }} catch (ex) {{ console.log(ex); }} }}).fail(function(result){{ try {{ n2 && n2.failure && n2.failure(result) }} catch (ex) {{ console.log(ex); }} }}); }}, {3}); </script>", Url.ResolveTokens(collaboration.PingPath), PathData.SelectedQueryKey, context.Selected.Path, collaboration.PingInterval * 1000)); container.Controls.Add(script); return script; }
public override System.Web.UI.Control AddTo(System.Web.UI.Control container, PluginContext context) { HyperLink link = (HyperLink)base.AddTo(container, context); if (context.HttpContext.Request.QueryString["edit"] == "drag") { link.CssClass += " toggled"; link.NavigateUrl = Engine.ManagementPaths.GetManagementInterfaceUrl().ToUrl().AppendSelection(context.Selected); } else { link.CssClass += " complementary"; link.NavigateUrl = Engine.ManagementPaths.GetManagementInterfaceUrl().ToUrl().AppendQuery("mode=Organize").AppendSelection(context.Selected); } return link; }
public override Control AddTo(Control container, PluginContext context) { if (!IsAuthorized(container.Page.User)) return null; if (!ActiveFor(container, context.State)) return null; HyperLink hl = new HyperLink(); hl.Text = GetInnerHtml(IconUrl, ToolTip, Title); hl.NavigateUrl = Url.Parse("~/N2/Content/PublishPreview.aspx").AppendQuery("selectedUrl", context.Selected.Url); hl.ToolTip = Utility.GetResourceString(GlobalResourceClassName, Name + ".ToolTip") ?? context.Format(ToolTip, false); hl.CssClass = "publish"; container.Controls.Add(hl); return hl; }
public override Control AddTo(Control container, PluginContext context) { if (!IsAuthorized(container.Page.User)) return null; if(!ActiveFor(container, context.State)) return null; if (context.Selected.VersionOf == null) return null; HyperLink hl = new HyperLink(); hl.Text = GetInnerHtml(context, IconUrl, ToolTip, Title); hl.NavigateUrl = Url.Parse("{ManagementUrl}/Content/DiscardPreview.aspx").ResolveTokens().AppendQuery("selectedUrl", context.Selected.Url); hl.CssClass = "cancel"; hl.Attributes["onclick"] = "return confirm('Are you certain?');"; hl.ToolTip = Utility.GetResourceString(GlobalResourceClassName, Name + ".ToolTip") ?? context.Format(ToolTip, false); container.Controls.Add(hl); return hl; }
public override Control AddTo(Control container, PluginContext context) { if (!context.Engine.SecurityManager.IsAuthorized(this, context.HttpContext.User, context.Selected)) return null; if (!ActiveFor(container, context.State)) return null; HyperLink hl = new HyperLink(); hl.Text = GetInnerHtml(context, IconUrl, ToolTip, Title); hl.NavigateUrl = Url.Parse("{ManagementUrl}/Content/PublishPreview.aspx").ResolveTokens() .AppendQuery("selectedUrl", context.Selected.Url) .AppendQuery(PathData.ItemQueryKey, context.Selected.VersionOf.ID) .AppendQuery(PathData.VersionIndexQueryKey, context.Selected.VersionIndex); hl.ToolTip = Utility.GetResourceString(GlobalResourceClassName, Name + ".ToolTip") ?? context.Format(ToolTip, false); hl.CssClass = "publish"; container.Controls.Add(hl); return hl; }
public override Control AddTo(Control container, PluginContext context) { if(RequireCurrentItem && context.Selected == null) return null; if(!ActiveFor(container, context.State)) return null; HyperLink link = new HyperLink(); string tooltip = Utility.GetResourceString(GlobalResourceClassName, Name + ".ToolTip") ?? ToolTip; string title = Utility.GetResourceString(GlobalResourceClassName, Name + ".Title") ?? Title; link.Text = GetInnerHtml(context, IconUrl, tooltip, title); Url url = GetNavigateUrl(context); link.NavigateUrl = url; link.ToolTip = context.Format(tooltip, false); link.CssClass = Name + " authorized" + context.Engine.SecurityManager.IsAuthorized(this, context.HttpContext.User, context.Selected) + " " + CssClass; AddTargetAttribute(link); container.Controls.Add(link); return link; }
public override Control AddTo(Control container, PluginContext context) { if(!ActiveFor(container, context.State)) return null; LinkButton btn = new LinkButton(); btn.Text = GetInnerHtml(IconUrl, ToolTip, Title); btn.ToolTip = Utility.GetResourceString(GlobalResourceClassName, Name + ".ToolTip") ?? context.Format(ToolTip, false); btn.CssClass = "save"; container.Controls.Add(btn); btn.Command += delegate { IList<IItemEditor> itemEditors = GetEditedItems(container.Page); foreach (IItemEditor itemEditor in itemEditors) { Context.Current.EditManager.Save(itemEditor.CurrentItem, itemEditor.AddedEditors, itemEditor.VersioningMode, container.Page.User); } RedirectTo(container.Page, context.Selected); }; return btn; }
protected virtual HyperLink AddAnchor(Control container, PluginContext context) { string tooltip = Utility.GetResourceString(GlobalResourceClassName, Name + ".ToolTip") ?? ToolTip; string title = Utility.GetResourceString(GlobalResourceClassName, Name + ".Title") ?? Title; string alternative = Utility.GetResourceString(GlobalResourceClassName, Name + ".AlternativeText") ?? AlternativeText; HyperLink a = new HyperLink(); a.ID = "h" + Name; a.NavigateUrl = context.Rebase(context.Format(UrlFormat, true)); a.SkinID = "ToolBarLink_" + Name; a.Target = Target; a.Attributes["class"] = Name; a.Text = tooltip; a.ToolTip = tooltip; a.Text = title; ApplyStyles(context, a); container.Controls.Add(a); return a; }
public override Control AddTo(Control container, PluginContext context) { Control c = container.Page.LoadControl(context.Rebase(userControlUrl)); container.Controls.Add(c); return c; }
public override Control AddTo(Control container, PluginContext context) { HyperLink a = AddAnchor(container, context); return a; }
public override Control AddTo(Control container, PluginContext context) { if(RequireCurrentItem && context.Selected == null) return null; if(!ActiveFor(container, context.State)) return null; HyperLink link = new HyperLink(); string tooltip = Utility.GetResourceString(GlobalResourceClassName, Name + ".ToolTip") ?? ToolTip; string title = Utility.GetResourceString(GlobalResourceClassName, Name + ".Title") ?? Title; link.Text = GetInnerHtml(context, IconUrl, tooltip, title); Url url = context.Rebase(context.Format(NavigateUrl, UrlEncode)); if (!string.IsNullOrEmpty(NavigateQuery)) url = url.AppendQuery(context.Format(NavigateQuery, UrlEncode)); link.NavigateUrl = url; link.ToolTip = context.Format(tooltip, false); link.CssClass = Name; AddTargetAttribute(link); container.Controls.Add(link); return link; }
public abstract Control AddTo(Control container, PluginContext context);
protected virtual void ApplyStyles(PluginContext pluginContext, WebControl ctrl) { if (!string.IsNullOrEmpty(IconUrl)) ctrl.Style[HtmlTextWriterStyle.BackgroundImage] = pluginContext.Rebase(IconUrl); }