Пример #1
0
        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 + " authorized" + context.Engine.SecurityManager.IsAuthorized(this, context.HttpContext.User, context.Selected);

            AddTargetAttribute(link);

            container.Controls.Add(link);

            return(link);
        }
		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;
		}
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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));
        }
Пример #6
0
		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;
		}
Пример #7
0
		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 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;
        }
Пример #9
0
		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 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)
		{
			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;
		}
Пример #12
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: /"));
        }
Пример #13
0
        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)));
        }
Пример #14
0
		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 + " 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 (!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(!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;
        }
        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);
        }
Пример #20
0
        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;
        }
Пример #21
0
        public override Control AddTo(Control container, PluginContext context)
        {
            if (!ActiveFor(container, context.State))
            {
                return(null);
            }

            LinkButton btn = new LinkButton();

            btn.Text     = GetInnerHtml(context, 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);
        }
        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);
            }
            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);
        }
Пример #23
0
        public override Control AddTo(Control container, PluginContext context)
        {
            if (!ActiveFor(container, context.State))
            {
                return(null);
            }

            LinkButton btn = new LinkButton();

            btn.Text     = GetInnerHtml(context, 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)
                {
                    var definition = Engine.Definitions.GetDefinition(itemEditor.CurrentItem);
                    Engine.Resolve <CommandDispatcher>().Publish(
                        new CommandContext(
                            definition,
                            itemEditor.CurrentItem,
                            Interfaces.Viewing,
                            container.Page.User,
                            new EditorCollectionBinder(definition, itemEditor.AddedEditors),
                            new NullValidator <CommandContext>()));
                }

                RedirectTo(container.Page, context.Selected);
            };
            return(btn);
        }
        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);
        }