Esempio n. 1
0
        public ListConfig ResolveByConvention(Type subject, Features features)
        {
            var listButtons = new List <ButtonConfig>();

            if (features.HasFlag(Features.CanEdit) || features.HasFlag(Features.CanGoToEdit))
            {
                listButtons.Add(new DefaultButtonConfig
                {
                    ButtonType = DefaultButtonType.New
                });
            }
            ;
            var paneButtons = new List <ButtonConfig>();

            if (features.HasFlag(Features.CanGoToEdit))
            {
                paneButtons.Add(new DefaultButtonConfig
                {
                    ButtonType = DefaultButtonType.Edit
                });
            }
            if (features.HasFlag(Features.CanEdit))
            {
                paneButtons.Add(new DefaultButtonConfig
                {
                    ButtonType = DefaultButtonType.SaveExisting
                });
                paneButtons.Add(new DefaultButtonConfig
                {
                    ButtonType = DefaultButtonType.SaveNew
                });
                paneButtons.Add(new DefaultButtonConfig
                {
                    ButtonType = DefaultButtonType.Delete
                });
            }

            var result = new ListConfig(subject)
            {
                PageSize       = 25,
                Buttons        = listButtons,
                ListEditorType = ListType.Table,
                Panes          = new List <PaneConfig>
                {
                    new PaneConfig(subject)
                    {
                        Buttons     = paneButtons,
                        FieldIndex  = 1,
                        Fields      = _fieldConfigResolver.GetFields(subject, features).ToList(),
                        VariantType = subject
                    }
                },
                ReorderingAllowed = false,
                SearchBarVisible  = true
            };

            return(result);
        }
Esempio n. 2
0
        public Task <NodeConfig> ResolveByConventionAsync(Type subject, Features features, CollectionSetup?collection)
        {
            var result = new NodeConfig(subject);

            if (features.HasFlag(Features.CanView) || features.HasFlag(Features.CanEdit))
            {
                result.Buttons.Add(new DefaultButtonConfig
                {
                    ButtonType = DefaultButtonType.Up
                });

                result.Panes = new List <PaneConfig>
                {
                    new PaneConfig(subject)
                    {
                        FieldIndex  = 1,
                        Fields      = _fieldConfigResolver.GetFields(subject, features).ToList(),
                        VariantType = subject
                    }
                };
            }

            if (features.HasFlag(Features.CanEdit))
            {
                result.Buttons.AddRange(new[] {
                    new DefaultButtonConfig
                    {
                        ButtonType = DefaultButtonType.SaveExisting
                    },
                    new DefaultButtonConfig
                    {
                        ButtonType = DefaultButtonType.SaveNew
                    },
                    new DefaultButtonConfig
                    {
                        ButtonType = DefaultButtonType.Delete
                    }
                });
            }

            if (collection?.Collections.Any() ?? false)
            {
                foreach (var subCollection in collection.Collections)
                {
                    result.Panes.Add(new PaneConfig(subject)
                    {
                        IsVisible          = (entity, state) => state == EntityState.IsExisting,
                        SubCollectionLists = new List <CollectionListConfig>
                        {
                            new ReferencedCollectionListConfig(subCollection.Alias)
                        }
                    });
                }
            }

            return(Task.FromResult(result));
        }
Esempio n. 3
0
        public NodeConfig ResolveByConvention(Type subject, Features features)
        {
            var nodeButtons = new List <ButtonConfig>()
            {
                new DefaultButtonConfig
                {
                    ButtonType = DefaultButtonType.Up
                },
                new DefaultButtonConfig
                {
                    ButtonType = DefaultButtonType.SaveExisting
                },
                new DefaultButtonConfig
                {
                    ButtonType = DefaultButtonType.SaveNew
                },
                new DefaultButtonConfig
                {
                    ButtonType = DefaultButtonType.Delete
                }
            };

            var result = new NodeConfig(subject)
            {
                BaseType = subject,
                Buttons  = nodeButtons,
                Panes    = new List <PaneConfig>
                {
                    new PaneConfig(subject)
                    {
                        FieldIndex  = 1,
                        Fields      = _fieldConfigResolver.GetFields(subject, features).ToList(),
                        VariantType = subject
                    }
                }
            };

            return(result);
        }
        public ListConfig ResolveByConvention(Type subject, Features features, ICollectionSetup?collection)
        {
            var listButtons = new List <ButtonConfig>();

            if (features.HasFlag(Features.CanEdit) || features.HasFlag(Features.CanGoToEdit))
            {
                listButtons.Add(new DefaultButtonConfig
                {
                    ButtonType = DefaultButtonType.New,
                    Label      = !(collection?.SubEntityVariants?.Any() ?? false) ? null : _languageResolver.ResolveText("New {0}")
                });
                listButtons.Add(new DefaultButtonConfig
                {
                    ButtonType = DefaultButtonType.Return
                });
                listButtons.Add(new DefaultButtonConfig
                {
                    ButtonType = DefaultButtonType.SaveExisting,
                    Label      = _languageResolver.ResolveText("Update all")
                });
            }
            ;
            var paneButtons = new List <ButtonConfig>();

            if (features.HasFlag(Features.CanGoToView))
            {
                paneButtons.Add(new DefaultButtonConfig
                {
                    ButtonType = DefaultButtonType.View
                });
            }
            if (features.HasFlag(Features.CanGoToEdit))
            {
                paneButtons.Add(new DefaultButtonConfig
                {
                    ButtonType = DefaultButtonType.Edit
                });
            }
            if (features.HasFlag(Features.CanEdit))
            {
                paneButtons.Add(new DefaultButtonConfig
                {
                    ButtonType = DefaultButtonType.SaveExisting
                });
                paneButtons.Add(new DefaultButtonConfig
                {
                    ButtonType = DefaultButtonType.SaveNew
                });
                paneButtons.Add(new DefaultButtonConfig
                {
                    ButtonType = DefaultButtonType.Delete
                });
            }

            var result = new ListConfig(subject)
            {
                PageSize       = 25,
                Buttons        = listButtons,
                ListEditorType = features.HasFlag(Features.IsBlockList) ? ListType.Block : ListType.Table,
                Panes          = new List <PaneConfig>
                {
                    new PaneConfig(subject)
                    {
                        Buttons     = paneButtons,
                        FieldIndex  = 1,
                        Fields      = _fieldConfigResolver.GetFields(subject, features).ToList(),
                        VariantType = subject
                    }
                },
                ReorderingAllowed = false,
                SearchBarVisible  = true
            };

            return(result);
        }