Пример #1
0
        public override void Render(TextWriter writer)
        {
			if (state.IsFlagSet(ControlPanelState.DragDrop))
			{
				if (ZoneName.IndexOfAny(new[] { '.', ',', ' ', '\'', '"', '\t', '\r', '\n' }) >= 0) throw new N2Exception("Zone '" + ZoneName + "' contains illegal characters.");

				writer.Write("<div class='" + ZoneName + " dropZone'");
				if (CurrentItem.ID != 0 && !CurrentItem.VersionOf.HasValue)
					writer.WriteAttribute(PartUtilities.PathAttribute, CurrentItem.Path);
				else
				{
					writer.WriteAttribute(PartUtilities.PathAttribute, Find.ClosestPage(CurrentItem).Path)
						.WriteAttribute("data-versionKey", CurrentItem.GetVersionKey())
						.WriteAttribute("data-versionIndex", CurrentItem.VersionIndex.ToString());
				}
				writer.WriteAttribute(PartUtilities.ZoneAttribute, ZoneName)
					.WriteAttribute(PartUtilities.AllowedAttribute, PartUtilities.GetAllowedNames(ZoneName, PartsAdapter.GetAllowedDefinitions(CurrentItem, ZoneName, Html.ViewContext.HttpContext.User)))
					.WriteAttribute("title", ZoneTitle ?? DroppableZone.GetToolTip(Html.ResolveService<IDefinitionManager>().GetDefinition(CurrentItem), ZoneName));
				writer.Write(">");

                RenderPreview(writer);
				
				writer.Write("</div>");
			}
            else if (state.IsFlagSet(ControlPanelState.Previewing))
            {
                RenderPreview(writer);
            }
            else
                base.Render(writer);
		}
Пример #2
0
        public override void Render(TextWriter writer)
        {
            if (state == ControlPanelState.DragDrop)
            {
                if (ZoneName.IndexOfAny(new[] { '.', ',', ' ', '\'', '"', '\t', '\r', '\n' }) >= 0) throw new N2Exception("Zone '" + ZoneName + "' contains illegal characters.");

                writer.Write("<div class='" + ZoneName + " dropZone'");
                writer.WriteAttribute(PartUtilities.PathAttribute, CurrentItem.Path)
                    .WriteAttribute(PartUtilities.ZoneAttribute, ZoneName)
                    .WriteAttribute(PartUtilities.AllowedAttribute, PartUtilities.GetAllowedNames(ZoneName, PartsAdapter.GetAllowedDefinitions(CurrentItem, ZoneName, Html.ViewContext.HttpContext.User)))
                    .WriteAttribute("title", ZoneTitle ?? DroppableZone.GetToolTip(Html.ResolveService<IDefinitionManager>().GetDefinition(CurrentItem), ZoneName))
                    .Write(">");

                if (string.IsNullOrEmpty(Html.ViewContext.HttpContext.Request["preview"]))
                {
                    base.Render(writer);
                }
                else
                {
                    string preview = Html.ViewContext.HttpContext.Request["preview"];
                    RenderReplacingPreviewed(writer, preview);
                }

                writer.Write("</div>");
            }
            else
                base.Render(writer);
        }
Пример #3
0
        public override void Render(TextWriter writer)
        {
            if (writer == null)
                throw new NullReferenceException("writer cannot be null");

            if (state.IsFlagSet(ControlPanelState.DragDrop))
            {
                if (String.IsNullOrWhiteSpace(ZoneName))
                    throw new N2Exception("Zone name cannot be null, empty, or consist only of whitespace.");
                if (ZoneName.IndexOfAny(new[] { '.', ',', ' ', '\'', '"', '\t', '\r', '\n' }) >= 0) 
                    throw new N2Exception("Zone '" + ZoneName + "' contains illegal characters.");
                if (CurrentItem == null)
                    throw new N2Exception("CurrentItem cannot be null");
                var dm = Html.ResolveService<IDefinitionManager>();
                if (dm == null)
                    throw new N2Exception("Failed to resolve the definition manager.");



                writer.Write("<div class=\"" + ZoneName + " dropZone\"");
                if (CurrentItem.ID != 0 && !CurrentItem.VersionOf.HasValue)
                    writer.WriteAttribute(PartUtilities.PathAttribute, CurrentItem.Path);
                else
                {
                    writer.WriteAttribute(PartUtilities.PathAttribute, (Find.ClosestPage(CurrentItem) ?? CurrentItem).Path);
                    writer.WriteAttribute("data-versionKey", CurrentItem.GetVersionKey());
                    writer.WriteAttribute("data-versionIndex", CurrentItem.VersionIndex.ToString());
                }
                writer.WriteAttribute(PartUtilities.ZoneAttribute, ZoneName)
                    .WriteAttribute(PartUtilities.AllowedAttribute, PartUtilities.GetAllowedNames(ZoneName, PartsAdapter.GetAllowedDefinitions(CurrentItem, ZoneName, Html.ViewContext.HttpContext.User)))
                    .WriteAttribute("title", ZoneTitle ?? DroppableZone.GetToolTip(dm.GetDefinition(CurrentItem), ZoneName));
                writer.Write(">");

                RenderPreview(writer);
                
                writer.Write("</div>");
            }
            else if (state.IsFlagSet(ControlPanelState.Previewing))
            {
                RenderPreview(writer);
            }
            else
                base.Render(writer);
        }
Пример #4
0
        protected override void RenderTemplate(TextWriter writer, ContentItem model)
        {           
            if (state.IsFlagSet(ControlPanelState.DragDrop) && model.Parent == CurrentItem)
            {
                ItemDefinition definition = Html.ResolveService<IDefinitionManager>().GetDefinition(model);

                writer.Write("<div class='" + definition.Discriminator + " zoneItem'");
                if (model.ID != 0 && !model.VersionOf.HasValue)
                    writer.WriteAttribute(PartUtilities.PathAttribute, model.Path);
                else
                {
                    writer.WriteAttribute(PartUtilities.PathAttribute, Find.ClosestPage(model).Path);
                    writer.WriteAttribute("data-versionKey", model.GetVersionKey())
                        .WriteAttribute("data-versionIndex", model.VersionIndex.ToString());
                }
                writer.WriteAttribute("data-sortOrder", model.SortOrder.ToString())
                    .WriteAttribute(PartUtilities.TypeAttribute, definition.Discriminator);

                writer.Write(">");

                Html.ResolveService<PartUtilities>().WriteTitleBar(writer, model, Html.ViewContext.HttpContext.Request.RawUrl);
                
                base.RenderTemplate(writer, model);

                writer.Write("</div>");
            }
            else
                base.RenderTemplate(writer, model);
        }
Пример #5
0
        protected override void RenderTemplate(TextWriter writer, ContentItem model)
        {
            if (state == ControlPanelState.DragDrop)
            {
                ItemDefinition definition = Html.ResolveService<IDefinitionManager>().GetDefinition(model);

                writer.Write("<div class='" + definition.Discriminator + " zoneItem'");
                writer.WriteAttribute(PartUtilities.PathAttribute, model.Path)
                    .WriteAttribute(PartUtilities.TypeAttribute, definition.Discriminator)
                    .Write(">");

                Html.ResolveService<PartUtilities>().WriteTitleBar(writer, model, Html.ViewContext.HttpContext.Request.RawUrl);

                base.RenderTemplate(writer, model);

                writer.Write("</div>");
            }
            else
                base.RenderTemplate(writer, model);
        }