kleisli/milly-crudui

此软件包最新版本(1.0.0-rc1)没有提供许可证信息。

安装: 12

依赖: 0

建议: 0

安全: 0

星标: 4

关注者: 1

分支: 0

开放问题: 0

类型:neos-package

1.0.0-rc1 2024-05-17 20:17 UTC

This package is auto-updated.

Last update: 2024-09-18 10:30:30 UTC


README

为Neos.Flow实体构建管理UI

来自Milly.CrudUI.Showcase的示例Neos后端UI

模型-视图-控制器

领域模型和仓库

使用Milly.CrudUI,您可以管理任何flow实体。

自定义模型

视图

Milly.CrudUI默认加载融合模板,但您可以根据需要创建自己的模板。

来自Milly.CrudUI.Showcase的示例索引视图

来自Milly.CrudUI.Showcase的示例编辑视图,包含与Tracks的关系

来自Milly.CrudUI.Showcase的示例创建视图

自定义视图

控制器

Milly.CrudUI可用于Neos后端模块或与常规ActionControllers一起使用,为前端用户提供CRUD功能。

Neos后端模块

class MyModelController extends AbstractModuleController
{
    use CrudControllerTrait;
}

对于Neos前端或纯Flow应用程序

class MyModelController extends ActionController
{
    use CrudControllerTrait;
}

自定义控制器

配置

必须为每个模型定义配置设置。在配置文件Configuration/Settings.CrudUI.MyModel.yaml中定义了模型MyModel

Milly:
  CrudUI:
    entities:
      <MyVendor\MyPackage\Domain\Model\MyModel>:
        readonly: true
        label:
          one: 'My model'
          many: 'My models'
        parent: 'parentProperty'
        views: []
        properties: []
        relations: []

标签

  • label:在UI中实体类标签的单数和复数形式

父级

  • parent:如果您想管理嵌套结构,可以设置一个属性,该属性是当前模型的父级引用。父模型必须配置对子模型的relation

视图配置

可以为每个视图定义一个属性数组,这些属性应该被渲染。

views:
    index:
        properties: [<textProperty>, <imageProperty>]
    show:
        properties: []
    edit:
        properties: []
    relation:
        properties: []
    export:
        properties: []

视图配置中的关系配置指定在父模型的show视图中显示模型时显示哪些模型属性。

视图配置是可选的。如果没有为视图定义视图配置,则显示所有属性并应用默认设置。

自定义视图配置

属性配置

为了使属性可显示或可编辑,必须将其添加到properties配置中。

properties:
  <textProperty>: []
  <titleProperty>:
    label: 'Title'
    readonly: true
  • label : 在 UI 中如何标记属性

如果没有属性配置

  • 则使用默认类型 string
  • 标签将从 xlf 文件 Model/MyModel.xlf 中获取,属性名称作为 trans-unit id。请参见 MyModel.xlf 的示例。
    • 如果没有此类文件或键,则属性名称将用作标签
properties:
    <imageProperty>:
        type: image
    <entityProperty>:
        type: select
        options:
            repository: MyVendor\MyPackage\Domain\Repository\MyEntityRepository

PropertyEditors 提供表单字段来编辑属性,PropertyDisplayers 用于显示属性值。根据 type 定义了几个内置的 PropertyEditor 和 PropertyDisplayer 组合。对于某些类型,可以或必须定义 options

以下属性类型存在。有关详细信息,请参阅 属性类型 的详细列表

  • string(默认值)
  • textarea
  • number
  • email
  • select 用于 ManyToOne 属性
  • multiSelect 用于 OneToMany 或 ManyToMany 属性
  • booleanRadio 用于布尔属性
  • booleanCheckbox 用于布尔属性
  • date 用于 DateTime 属性
  • dateTime 用于 DateTime 属性
  • dateInterval 用于 DateInterval 属性
  • image 用于 \Neos\Flow\ResourceManagement\PersistentResource 属性
  • audio 用于 \Neos\Flow\ResourceManagement\PersistentResource 属性
  • jsonList 用于带有 @ORM\Column(type="flow_json_array") 注释的数组属性

自定义属性配置

关系配置

在技术上,属性也可以是关系(请参阅类型 selectmultiSelect),关系也是类的属性。

relations:
  oneToManyProperty: []
  manyToManyProperty:
    label: 'Many'
    readonly: true

Milly.CrudUI 中的区别是

  • 当在 properties 中配置时,用户只能从现有对象中选择,而在 relations 中,用户可以创建关系类的新对象
  • relations 中的对象列表可以显示对象的多个属性(在 views.relation 中配置),而 properties 中的对象则以标签列表的形式显示

为什么选择 Milly?

Milly Koss 是一位美国开创性的计算机程序员。女性计算机协会于 2000 年授予她 Ada Lovelace 奖。

我们需要了解我们如何可能重用经过测试的代码,并让机器帮助编程。随着我们编程,我们检查了整个过程,并试图考虑将这些步骤抽象化以将其纳入高级语言的方法。这导致了解释器、汇编器、编译器和生成器的开发——旨在操作或生成其他程序的程序,即自动编程。(Milly Koss,来源

致敬

此包基于 Sandstorm.CrudForms 的想法并受到启发

此包的开发得到了 Profolio 的显著资助——这是一个职业选择和职业咨询的数字平台