Exemplo n.º 1
0
        public static void Reset()
        {
            NodeDisplayMode   = NodeDisplay.Name;
            LinkDisplayMode   = LinkDisplay.Name;
            StreamDisplayMode = StreamDisplay.Name;
            DomainDisplayMode = DomainDisplay.Name;

            RenderNode       = true;
            RenderNodeText   = true;
            RenderLink       = true;
            RenderLinkText   = true;
            RenderStream     = true;
            RenderStreamText = true;
            RenderDomain     = true;
            RenderDomainText = true;
        }
Exemplo n.º 2
0
    public void RefreshUI()
    {
        for (int i = link_display_holder.childCount - 1; i >= 0; i--)
        {
            Destroy(link_display_holder.GetChild(i).gameObject);
        }

        foreach (KeyValuePair <TriggerableBasePiece, TriggerBasePiece> kvp in build_manager.triggerable_to_trigger)
        {
            TriggerableBasePiece trap    = kvp.Key;
            TriggerBasePiece     trigger = kvp.Value;

            LinkDisplay new_link_display = Instantiate(link_display_prefab, link_display_holder);

            new_link_display.trap_title    = trap.piece_name;
            new_link_display.trigger_title = trigger.piece_name;

            new_link_display.delete_button.onClick.AddListener(() => { build_manager.DeleteLink(trigger, trap); EndHover(); });

            new_link_display.SetEnterAction(() => StartHover(trap));
            new_link_display.SetExitAction(() => EndHover());
        }
    }
Exemplo n.º 3
0
            public override object ConvertDbToEditor(Property property, PropertyType propertyType, IDataTypeService dataTypeService)
            {
                if (property.Value == null)
                {
                    return(Enumerable.Empty <object>());
                }

                var value = property.Value.ToString();

                if (string.IsNullOrEmpty(value))
                {
                    return(Enumerable.Empty <object>());
                }

                try
                {
                    var    umbHelper              = new UmbracoHelper(UmbracoContext.Current);
                    var    services               = ApplicationContext.Current.Services;
                    var    entityService          = services.EntityService;
                    var    contentTypeService     = services.ContentTypeService;
                    string deletedLocalization    = null;
                    string recycleBinLocalization = null;

                    var dtos = JsonConvert.DeserializeObject <List <LinkDto> >(value);

                    var documentLinks = dtos.FindAll(link =>
                                                     link.Udi != null && link.Udi.EntityType == Constants.UdiEntityType.Document
                                                     );

                    var mediaLinks = dtos.FindAll(link =>
                                                  link.Udi != null && link.Udi.EntityType == Constants.UdiEntityType.Media
                                                  );

                    var entities = new List <IUmbracoEntity>();
                    if (documentLinks.Count > 0)
                    {
                        entities.AddRange(
                            entityService.GetAll(UmbracoObjectTypes.Document,
                                                 documentLinks.Select(link => link.Udi.Guid).ToArray())
                            );
                    }

                    if (mediaLinks.Count > 0)
                    {
                        entities.AddRange(
                            entityService.GetAll(UmbracoObjectTypes.Media,
                                                 mediaLinks.Select(link => link.Udi.Guid).ToArray())
                            );
                    }

                    var links = new List <LinkDisplay>();
                    foreach (var dto in dtos)
                    {
                        var link = new LinkDisplay
                        {
                            Icon        = "icon-link",
                            IsMedia     = false,
                            Name        = dto.Name,
                            Published   = true,
                            QueryString = dto.QueryString,
                            Target      = dto.Target,
                            Trashed     = false,
                            Udi         = dto.Udi,
                            Url         = dto.Url ?? "",
                        };

                        links.Add(link);

                        if (dto.Udi == null)
                        {
                            continue;
                        }

                        var entity = entities.Find(e => e.Key == dto.Udi.Guid);
                        if (entity == null)
                        {
                            if (deletedLocalization == null)
                            {
                                deletedLocalization = services.TextService.Localize("general/deleted");
                            }

                            link.Published = false;
                            link.Trashed   = true;
                            link.Url       = deletedLocalization;
                        }
                        else
                        {
                            var entityType =
                                Equals(entity.AdditionalData["NodeObjectTypeId"], Constants.ObjectTypes.MediaGuid)
                                    ? Constants.UdiEntityType.Media
                                    : Constants.UdiEntityType.Document;

                            var udi = new GuidUdi(entityType, entity.Key);

                            var contentTypeAlias = (string)entity.AdditionalData["ContentTypeAlias"];
                            if (entity.Trashed)
                            {
                                if (recycleBinLocalization == null)
                                {
                                    recycleBinLocalization = services.TextService.Localize("general/recycleBin");
                                }

                                link.Trashed = true;
                                link.Url     = recycleBinLocalization;
                            }

                            if (udi.EntityType == Constants.UdiEntityType.Document)
                            {
                                var contentType = contentTypeService.GetContentType(contentTypeAlias);

                                if (contentType == null)
                                {
                                    continue;
                                }

                                link.Icon      = contentType.Icon;
                                link.Published = Equals(entity.AdditionalData["IsPublished"], true);

                                if (link.Trashed == false)
                                {
                                    link.Url = umbHelper.Url(entity.Id, UrlProviderMode.Relative);
                                }
                            }
                            else
                            {
                                link.IsMedia = true;

                                var mediaType = contentTypeService.GetMediaType(contentTypeAlias);

                                if (mediaType == null)
                                {
                                    continue;
                                }

                                link.Icon = mediaType.Icon;

                                if (link.Trashed)
                                {
                                    continue;
                                }

                                var media = umbHelper.TypedMedia(entity.Id);
                                if (media != null)
                                {
                                    link.Url = media.Url;
                                }
                            }
                        }
                    }
                    return(links);
                }
                catch (Exception ex)
                {
                    ApplicationContext.Current.ProfilingLogger.Logger.Error <MultiUrlPickerPropertyValueEditor>($"Error getting links.\r\n{property.Value}", ex);
                }

                return(base.ConvertDbToEditor(property, propertyType, dataTypeService));
            }