protected override void OnLoad(EventArgs e) { var pageId = Request.QueryString["pageId"]; var position = Request.QueryString["position"]; if (Request.HttpMethod == "POST") { pageId = Request.Form["pageId"]; position = Request.Form["position"]; } var page = PageManager.GetPageById(Guid.Parse(pageId)); var pageTeasers = TeaserFacade.GetPageTeasers(page, position, false); Master.CustomJsonDataName = "position"; Master.CustomJsonDataValue = position; Master.SortableItems = pageTeasers.Select(i => new SortableItem { Id = HashId(i), Name = i.GetLabel() }); base.OnLoad(e); }
public static IEnumerable <KeyValuePair <string, string> > GetSharedTeasers() { var types = TeaserFacade.GetSharedTeaserTypes(); return(types.SelectMany(type => DataFacade.GetData(type) .Cast <ISharedTeaser>() ).ToDictionary(t => t.DataSourceId.Serialize(), GetSharedTeaserName).OrderBy(t => t.Value)); }
public override void OnInitialize(object sender, EventArgs e) { if (!BindingExist("PageTeaserType")) { Bindings.Add("PageTeaserType", TeaserFacade.GetPageTeaserTypes().First().AssemblyQualifiedName); Bindings.Add("Name", String.Empty); } }
private void AddPositionFolders(EntityToken entityToken, List <Element> list) { var page = PageManager.GetPageById(new Guid(entityToken.Source)); IList <Tuple <string, string> > positions; if (!TemplateTeaserPositions.TryGetValue(page.TemplateId, out positions)) { return; } foreach (var position in positions) { var elementHandle = _context.CreateElementHandle(new PageTeaserPositionFolderEntityToken(page, position.Item1)); var positionElement = new Element(elementHandle) { VisualData = new ElementVisualizedData { Label = position.Item2, ToolTip = position.Item2, HasChildren = TeaserFacade.GetPageTeasers(page, position.Item1, false).Any(), Icon = new ResourceHandle("Composite.Icons", "folder"), OpenedIcon = new ResourceHandle("Composite.Icons", "folder_active"), } }; var addActionToken = new WorkflowActionToken(typeof(AddPageTeaserWorkFlow), new[] { PermissionType.Add }); positionElement.AddAction(new ElementAction(new ActionHandle(addActionToken)) { VisualData = new ActionVisualizedData { Label = StringResourceSystemFacade.GetString("CompositeC1Contrib.Teasers", "TeaserElementAttachingProvider.Add.Label"), ToolTip = StringResourceSystemFacade.GetString("CompositeC1Contrib.Teasers", "TeaserElementAttachingProvider.Add.ToolTip"), Icon = new ResourceHandle("Composite.Icons", "generated-type-data-add"), ActionLocation = ActionLocation } }); var url = String.Format("InstalledPackages/CompositeC1Contrib.Teasers/SortPageTeasers.aspx?pageId={0}&position={1}", page.Id, position.Item1); var sortActionToken = new UrlActionToken(StringResourceSystemFacade.GetString("CompositeC1Contrib.Teasers", "TeaserElementAttachingProvider.SortItems"), UrlUtils.ResolveAdminUrl(url), new[] { PermissionType.Add, PermissionType.Edit, PermissionType.Administrate, }); positionElement.AddAction(new ElementAction(new ActionHandle(sortActionToken)) { VisualData = new ActionVisualizedData { Label = StringResourceSystemFacade.GetString("CompositeC1Contrib.Teasers", "TeaserElementAttachingProvider.Sort.Label"), ToolTip = StringResourceSystemFacade.GetString("CompositeC1Contrib.Teasers", "TeaserElementAttachingProvider.Sort.ToolTip"), Icon = new ResourceHandle("Composite.Icons", "cut"), ActionLocation = ActionLocation } }); list.Add(positionElement); } }
public static void UpdateOrder(string pageId, string position, string consoleId, string entityToken, string serializedOrder) { var page = PageManager.GetPageById(new Guid(pageId)); var pageTeasers = TeaserFacade.GetPageTeasers(page, position, false).ToList(); UpdateOrder(pageTeasers, serializedOrder); var serializedEntityToken = HttpUtility.UrlDecode(entityToken); if (!String.IsNullOrEmpty(serializedEntityToken)) { UpdateParents(serializedEntityToken, consoleId); } }
public override void OnInitialize(object sender, EventArgs e) { var pageTeaserInstanceEntityToken = EntityToken as PageTeaserInstanceEntityToken; if (pageTeaserInstanceEntityToken != null) { Teaser = (T)pageTeaserInstanceEntityToken.Teaser; } else { var pageTeaserPositionFolderEntityToken = (PageTeaserPositionFolderEntityToken)EntityToken; var payload = StringConversionServices.ParseKeyValueCollection(Payload); var teaserType = Type.GetType(StringConversionServices.DeserializeValue <string>(payload["teaserType"])); var name = StringConversionServices.DeserializeValue <string>(payload["name"]); var existingTeasers = TeaserFacade.GetPageTeasers(pageTeaserPositionFolderEntityToken.Page).ToList(); Teaser = (T)DataFacade.BuildNew(teaserType); Teaser.Name = name; Teaser.Position = pageTeaserPositionFolderEntityToken.Id; Teaser.LocalOrdering = existingTeasers.Any() ? existingTeasers.Max(t => t.LocalOrdering) + 1 : 1; } if (BindingExist("Label")) { return; } var page = PageManager.GetPageById(new Guid(EntityToken.Source)); Bindings.Add("Label", Teaser.GetLabel()); Bindings.Add("Positions", FormHelpers.GetPositions(page.TemplateId)); Bindings.Add("Name", Teaser.Name); Bindings.Add("Position", Teaser.Position); Bindings.Add("AdditionalHeader", Teaser.AdditionalHeader); Bindings.Add("ShowOnDescendants", Teaser.ShowOnDescendants); Bindings.Add("PublishDate", Teaser.PublishDate); Bindings.Add("UnpublishDate", Teaser.UnpublishDate); LoadBindings(); }
private static void HandlerPreInit(object sender, EventArgs e) { var iPage = PageRenderer.CurrentPage; if (iPage == null) { return; } using (var data = new DataConnection()) { var pageTeasers = TeaserFacade.GetPageTeasers(iPage, String.Empty, true).Select(t => new PageTeaserWrapper(t, 0)).ToList(); var hideAncestorTeasers = false; var teaserSettings = data.Get <IPageTeaserSettings>().FirstOrDefault(f => f.PageId == iPage.Id); if (teaserSettings != null) { hideAncestorTeasers = teaserSettings.HideAncestorTeasers; } if (!hideAncestorTeasers) { var pageNode = data.SitemapNavigator.CurrentPageNode; var ancestorPageNodes = AncestorPageNodes(pageNode); var descendingTeasers = TeaserFacade.GetPageTeasers().Where(f => f.ShowOnDescendants).ToList(); pageTeasers.AddRange(ancestorPageNodes .Join(descendingTeasers, a => a.Id, t => t.PageId, (a, t) => new PageTeaserWrapper(t, pageNode.Level - a.Level)).ToList()); } foreach (var teaser in pageTeasers.Where(f => f.InterfaceType != typeof(IPageTeaserShared) && f.InterfaceType != typeof(IPageTeaserRandom))) { TeaserFacade.PageTeasersForRequest.Add(new PageTeaserHolder(teaser)); } var sharedTeasersInUse = new List <Guid>(); foreach (var teaser in pageTeasers.Where(f => f.InterfaceType == typeof(IPageTeaserShared))) { var pageTeaser = (IPageTeaserShared)teaser.Teaser; var sharedTeaserId = pageTeaser.SharedTeaserId; if (sharedTeasersInUse.Contains(sharedTeaserId)) { continue; } sharedTeasersInUse.Add(sharedTeaserId); var sharedTeaserType = Type.GetType(pageTeaser.SharedTeaserType); var instance = DataFacade.GetData(sharedTeaserType).Cast <ISharedTeaser>().SingleOrDefault(t => t.Id == sharedTeaserId); if (instance != null) { var teaserHolder = new PageTeaserHolder(pageTeaser.Position, instance.DesignName, sharedTeaserId, teaser); TeaserFacade.PageTeasersForRequest.Add(teaserHolder); } } //IPageTeaserRandom is transformed into IPageTeaserShared foreach (var teaser in pageTeasers.Where(f => f.InterfaceType == typeof(IPageTeaserRandom))) { var pageTeaser = (IPageTeaserRandom)teaser.Teaser; var teaserGroup = pageTeaser.TeaserGroup; var sharedTeasers = TeaserFacade.GetSharedTeasers(teaserGroup).Where(t => t.InclInRotation && !sharedTeasersInUse.Contains(t.Id)).ToList(); if (!sharedTeasers.Any()) { continue; } var rand = new Random(); var index = rand.Next(sharedTeasers.Count()); var sharedTeaser = sharedTeasers[index]; sharedTeasersInUse.Add(sharedTeaser.Id); var pageTeaserShared = data.CreateNew <IPageTeaserShared>(); pageTeaserShared.PageId = pageTeaser.PageId; pageTeaserShared.Name = sharedTeaser.Name; pageTeaserShared.LocalOrdering = pageTeaser.LocalOrdering; pageTeaserShared.Position = pageTeaser.Position; pageTeaserShared.AdditionalHeader = pageTeaser.AdditionalHeader; pageTeaserShared.SharedTeaserType = sharedTeaser.DataSourceId.InterfaceType.AssemblyQualifiedName; pageTeaserShared.SharedTeaserId = sharedTeaser.Id; var specificSharedTeaser = new PageTeaserWrapper(pageTeaserShared, 0); var teaserHolder = new PageTeaserHolder(pageTeaser.Position, sharedTeaser.DesignName, sharedTeaser.Id, specificSharedTeaser); TeaserFacade.PageTeasersForRequest.Add(teaserHolder); } } }
public static Dictionary <string, string> GetPageTeaserTypes() { return(TeaserFacade.GetPageTeaserTypes().ToDictionary(t => t.AssemblyQualifiedName, GetTitle)); }
private void AddTeaserInstances(EntityToken entityToken, List <Element> list, PageTeaserPositionFolderEntityToken folderToken) { var page = PageManager.GetPageById(new Guid(entityToken.Source)); var instances = TeaserFacade.GetPageTeasers(page, folderToken.Id, false); foreach (var instance in instances) { var attributes = instance.DataSourceId.InterfaceType.GetCustomAttributes(true).ToList(); var icon = new ResourceHandle("Composite.Icons", "dataassociation-rootfolder-closed"); var openedIcon = new ResourceHandle("Composite.Icons", "dataassociation-rootfolder-open"); var iconAttribute = attributes.OfType <IconAttribute>().FirstOrDefault(); if (iconAttribute != null) { icon = new ResourceHandle("Composite.Icons", iconAttribute.Name); if (!String.IsNullOrEmpty(iconAttribute.OpenedName)) { openedIcon = new ResourceHandle("Composite.Icons", iconAttribute.OpenedName); } } var label = StringResourceSystemFacade.GetString("CompositeC1Contrib.Teasers", "TeaserElementAttachingProvider.NoLabel"); try { label = instance.GetLabel(); } catch (Exception) { } var elementHandle = _context.CreateElementHandle(new PageTeaserInstanceEntityToken(page, instance)); var teaserElement = new Element(elementHandle) { VisualData = new ElementVisualizedData { Label = label, ToolTip = label, HasChildren = false, Icon = icon, OpenedIcon = openedIcon } }; var editWorkflowAttribute = attributes.OfType <EditWorkflowAttribute>().FirstOrDefault(); if (editWorkflowAttribute != null) { var editActionToken = new WorkflowActionToken(editWorkflowAttribute.EditWorkflowType, new[] { PermissionType.Edit }); teaserElement.AddAction(new ElementAction(new ActionHandle(editActionToken)) { VisualData = new ActionVisualizedData { Label = StringResourceSystemFacade.GetString("CompositeC1Contrib.Teasers", "TeaserElementAttachingProvider.Edit.Label"), ToolTip = StringResourceSystemFacade.GetString("CompositeC1Contrib.Teasers", "TeaserElementAttachingProvider.Edit.ToolTip"), Icon = new ResourceHandle("Composite.Icons", "generated-type-data-edit"), ActionLocation = ActionLocation } }); } var deleteActionToken = new ConfirmWorkflowActionToken(StringResourceSystemFacade.GetString("CompositeC1Contrib.Teasers", "TeaserElementAttachingProvider.DeleteItem") + label, typeof(DeletePageTeaserActionToken)); teaserElement.AddAction(new ElementAction(new ActionHandle(deleteActionToken)) { VisualData = new ActionVisualizedData { Label = StringResourceSystemFacade.GetString("CompositeC1Contrib.Teasers", "TeaserElementAttachingProvider.Delete.Label"), ToolTip = StringResourceSystemFacade.GetString("CompositeC1Contrib.Teasers", "TeaserElementAttachingProvider.Delete.ToolTip"), Icon = new ResourceHandle("Composite.Icons", "generated-type-data-delete"), ActionLocation = ActionLocation } }); list.Add(teaserElement); } }