public virtual void WriteTo(TextWriter writer) { var engine = Html.ContentEngine(); if (!Html.ViewContext.HttpContext.User.Identity.IsAuthenticated || !engine.SecurityManager.IsEditor(Html.ViewContext.HttpContext.User)) { return; } if (RegistrationExtensions.GetRegistrationExpression(Html) != null) { return; } var item = currentItem ?? Html.CurrentItem() ?? Html.StartPage(); var state = ControlPanelExtensions.GetControlPanelState(Html); var settings = new { NavigationUrl = engine.ManagementPaths.GetNavigationUrl(item), ManagementUrl = engine.ManagementPaths.GetManagementInterfaceUrl(), Path = item.Path, Plugins = Plugins(Html, item, state), Definitions = Definitions(Html, engine, item, state), Version = typeof(ContentItem).Assembly.GetName().Version.ToString(), Permission = engine.GetContentAdapter <NodeAdapter>(item).GetMaximumPermission(item) }; var resources = Html.Resources(writer); if (includeJQuery) { resources.JQuery(); } if (includeJQueryPlugins) { resources.JQueryPlugins().JQueryUi(); } if (includePartScripts) { resources.Constnats().JavaScript("{ManagementUrl}/Resources/Js/parts.js"); } if (includePartStyles) { resources.StyleSheet("{ManagementUrl}/Resources/Css/parts.css"); } if (refreshNavigation) { writer.Write(formatWithRefresh.Replace(settings)); } else { writer.Write(formatWithoutRefresh.Replace(settings)); } if (state == ControlPanelState.DragDrop) { Html.Resources().JavaScript(UI.WebControls.ControlPanel.DragDropScriptInitialization(), ScriptOptions.DocumentReady); } }
protected override void AppendControlPanel(TextWriter writer, IEngine engine, ContentItem item) { var state = ControlPanelExtensions.GetControlPanelState(Html); var settings = new { NavigationUrl = engine.ManagementPaths.GetNavigationUrl(item), ManagementUrl = engine.ManagementPaths.GetManagementInterfaceUrl(), Path = item.Path, Plugins = Plugins(Html, item, state), Definitions = Definitions(Html, engine, item, state), Version = typeof(ContentItem).Assembly.GetName().Version.ToString(), Permission = engine.GetContentAdapter <NodeAdapter>(item).GetMaximumPermission(item), VersionIndex = item.VersionIndex, VersionKey = item.GetVersionKey(), Force = ForceRefreshNavigationOnLoad ? "true" : "false", State = item != null?item.State.ToString() : "NonContent", Mode = GetControlPanelState(Html).ToString() }; var resources = Html.Resources(writer).Constants(); if (IncludeJQuery) { resources.JQuery(); } if (IncludeJQueryPlugins) { resources.JQueryPlugins(IncludeJQuery); } if (IncludeJQueryUi) { resources.JQueryUi(IncludeJQuery); } if (IncludePartScripts) { resources.PartsJs(); } if (IncludePartStyles) { resources.PartsCss(); resources.IconsCss(); } if (RefreshNavigationOnLoad) { resources.HtmlLiteral(formatWithRefresh.Replace(settings)); } else { resources.HtmlLiteral(formatWithoutRefresh.Replace(settings)); } if (state.IsFlagSet(ControlPanelState.DragDrop)) { resources.JavaScript(UI.WebControls.ControlPanel.DragDropScriptInitialization(item), ScriptOptions.DocumentReady); } resources.Render(writer); }
/// <summary>Creates a navigation using unordered list elements.</summary> public static N2.Web.Tree Tree(this HtmlHelper html, ContentItem startsFrom = null, ContentItem current = null, int takeLevels = 2, bool parallelRoot = true, bool appendCreatorNode = false, ItemFilter filter = null, object htmlAttributes = null) { if (startsFrom == null) { startsFrom = html.StartPage(); } if (current == null) { current = html.CurrentPage(); } if (filter == null) { filter = new NavigationFilter(html.ViewContext.HttpContext.User, html.ContentEngine().SecurityManager); } var builder = parallelRoot ? (HierarchyBuilder) new ParallelRootHierarchyBuilder(startsFrom, takeLevels) : (HierarchyBuilder) new TreeHierarchyBuilder(startsFrom, takeLevels); if (builder == null) { throw new ArgumentException("builder == null"); } if (appendCreatorNode && ControlPanelExtensions.GetControlPanelState(html).IsFlagSet(ControlPanelState.DragDrop)) { builder.GetChildren = (i) => i == null ? null : i.Children.FindNavigatablePages().Where(filter).AppendCreatorNode(html.ContentEngine(), i); } else { builder.GetChildren = (i) => i == null ? null : i.Children.FindNavigatablePages().Where(filter); } var tree = N2.Web.Tree.Using(builder); if (htmlAttributes != null) { tree.Tag(BootstrapTagAlterations(startsFrom, current, htmlAttributes)); } ClassifyAnchors(startsFrom, current, parallelRoot, tree); return(tree); }
private void RenderDisplayable(TextWriter writer) { var displayable = DefinitionMap.Instance.GetOrCreateDefinition(CurrentItem).Displayables.FirstOrDefault(d => d.Name == propertyName); if (displayable == null) { if (isOptional || swallowExceptions) { return; } throw new N2Exception("No attribute implementing IDisplayable found on the property '{0}' of the item #{1} of type {2}", propertyName, CurrentItem.ID, CurrentItem.GetContentType()); } if (Wrapper != null) { writer.Write(Wrapper.ToString(TagRenderMode.StartTag)); } var ctx = new RenderingContext { Content = CurrentItem, Displayable = displayable, Html = Html, PropertyName = propertyName, IsEditable = isEditable && ControlPanelExtensions.GetControlPanelState(Html) == ControlPanelState.DragDrop }; Html.ResolveService <DisplayableRendererSelector>() .Render(ctx, writer); if (Wrapper != null) { writer.Write(Wrapper.ToString(TagRenderMode.EndTag)); } }
public virtual void WriteTo(TextWriter writer) { var engine = Html.ContentEngine(); if (!Html.ViewContext.HttpContext.User.Identity.IsAuthenticated || !engine.SecurityManager.IsEditor(Html.ViewContext.HttpContext.User)) { return; } if (RegistrationExtensions.GetRegistrationExpression(Html) != null) { return; } var item = currentItem ?? Html.CurrentItem() ?? Html.StartPage(); var state = ControlPanelExtensions.GetControlPanelState(Html); var settings = new { NavigationUrl = engine.ManagementPaths.GetNavigationUrl(item), ManagementUrl = engine.ManagementPaths.GetManagementInterfaceUrl(), Path = item.Path, Plugins = Plugins(Html, item, state), Definitions = Definitions(Html, engine, item, state), Version = typeof(ContentItem).Assembly.GetName().Version.ToString(), Permission = engine.GetContentAdapter <NodeAdapter>(item).GetMaximumPermission(item), VersionIndex = item.VersionIndex, VersionKey = item.GetVersionKey(), Force = ForceRefreshNavigationOnLoad ? "true" : "false", State = item != null?item.State.ToString() : "NonContent", Mode = GetControlPanelState(Html).ToString() }; var resources = Html.Resources(writer).Constants(); if (includeJQuery) { resources.JQuery(); } if (includeJQueryPlugins) { resources.JQueryPlugins(includeJQuery); } if (includeJQueryUi) { resources.JQueryUi(includeJQuery); } if (includePartScripts) { resources.PartsJs(); } if (includePartStyles) { resources.PartsCss(); resources.IconsCss(); } if (refreshNavigation) { resources.HtmlLiteral(formatWithRefresh.Replace(settings)); } else { resources.HtmlLiteral(formatWithoutRefresh.Replace(settings)); } if (state.IsFlagSet(ControlPanelState.DragDrop)) { resources.JavaScript(UI.WebControls.ControlPanel.DragDropScriptInitialization(item), ScriptOptions.DocumentReady); } resources.Render(writer); }