Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Content Type Inheritance (Like Class Inheritance) #3192

Closed
ZacharyCPC opened this issue Oct 6, 2023 · 2 comments
Closed

Content Type Inheritance (Like Class Inheritance) #3192

ZacharyCPC opened this issue Oct 6, 2023 · 2 comments
Assignees

Comments

@ZacharyCPC
Copy link

I'm submitting a

[x] feature request

...about

[x] edit experience / UI
[x] admin experience UI
[x] Content Types or data management

Current Behavior

Currently, when I need a slightly modified version of an existing content type (i.e. it needs 1 or 2 extra fields), I have to create a completely new content type. The amount of "duplicate" content types tends to add up when building more complex apps.

Feature Request

I would like the ability to create content types that "inherit" the fields of other content types. For the purposes of this request, I'll refer to content types that inherit other content types as "sub-types", and content types that are inherited by other content types as "base-types".

For the most flexibility in building and re-using content types, I don't think base-types or sub-types should be special kinds of content type. Rather, all content types should have the ability to inherit or be inherited by other content types. From an admin perspective, this could be a dropdown in the content type settings that allows you to select an existing content type to be used as the base-type.

When editing an entity of a sub-type, the fields of the base-type and those of the sub-type should appear in separate accordions, similar to how Presentation fields display in their own accordion.

When developing views with a sub-type, all fields from both the base-type and the sub-type should be immediately available within the same entity object (e.g. Content object).

Feature Benefits

This feature would ensure the same fields/features are available anywhere the base-type is applied. Additionally, you wouldn't have to make the same changes to each content type variation as you must today; you could just update the base-type, and the change would reflect across all sub-types.

@iJungleboy
Copy link
Contributor

We're looking into this, as it has been on the back of our mind for a long time now.

But we believe that we'll need to do more than just described here.
Based on our experience with SharePoint, we're pretty sure that we actually need to provide field-inheritance #3196 first.

The reason is that Content-Type inheritance quickly gets complicated, eg. when you want to inherit only some of the fields.

So we're tinkering with this - also in relationship to other things we have in mind.
Don't expect it too soon, but we are working on it 😉

iJungleboy added a commit to 2sic/eav-server that referenced this issue Oct 26, 2023
iJungleboy added a commit to 2sxc-dev/app-test-features that referenced this issue Oct 27, 2023
iJungleboy added a commit to 2sic/2sxc-docs that referenced this issue Oct 27, 2023
iJungleboy added a commit to 2sic/eav-server that referenced this issue Oct 27, 2023
iJungleboy added a commit to 2sic/eav-ui that referenced this issue Oct 27, 2023
iJungleboy added a commit to 2sic/eav-server that referenced this issue Oct 27, 2023
DujeVatavuk pushed a commit to 2sic/eav-ui that referenced this issue Oct 30, 2023
iJungleboy added a commit to 2sic/eav-server that referenced this issue Nov 10, 2023
iJungleboy added a commit that referenced this issue Nov 10, 2023
iJungleboy added a commit to 2sic/eav-server that referenced this issue Nov 10, 2023
iJungleboy added a commit to 2sic/eav-server that referenced this issue Nov 10, 2023
iJungleboy added a commit to 2sic/eav-server that referenced this issue Nov 10, 2023
iJungleboy added a commit to 2sic/eav-ui that referenced this issue Nov 10, 2023
@iJungleboy iJungleboy self-assigned this Sep 28, 2024
iJungleboy added a commit to 2sic/eav-ui that referenced this issue Sep 28, 2024
@iJungleboy
Copy link
Contributor

I just finished implementing it, docs are not quite done.

Note that we're doing content-type composition, not inheritance.

This is much more powerful and similar to how other enterprise CMSs do attribute management.

have fun!

paulpietzko added a commit to 2sic/eav-ui that referenced this issue Oct 1, 2024
commit 7902a92b7556f35b3de02aa74d3980d0a4d7bb75
Author: paulpietzko <paul.pietzko@icloud.com>
Date:   Tue Oct 1 10:19:13 2024 +0200

    AdamWrapper now automatically knows if big or not

commit ac0a8d74a652fff1edb8ce68272409360f222c0b
Author: paulpietzko <paul.pietzko@icloud.com>
Date:   Tue Oct 1 09:57:39 2024 +0200

    Squashed commit of the following:

    commit 7902815
    Author: paulpietzko <paul.pietzko@icloud.com>
    Date:   Tue Oct 1 09:53:07 2024 +0200

        Squashed commit of the following:

        commit 48cb4666476c8909e51ac0228f6f2bdc9f03ea4b
        Author: paulpietzko <paul.pietzko@icloud.com>
        Date:   Tue Oct 1 09:38:02 2024 +0200

            Outsourced wysiwyg and expandable wrapper scss

        commit cadaaa01d277e8761ee49d42e3907e178656fee0
        Author: paulpietzko <paul.pietzko@icloud.com>
        Date:   Mon Sep 30 13:51:46 2024 +0200

            Renamed dialog to popup and redefined integrations of the component

        commit 363037ff8aab83a26b485eddd0a3e1324684adc3
        Author: paulpietzko <paul.pietzko@icloud.com>
        Date:   Mon Sep 30 08:21:02 2024 +0200

            Deglobalized expandable wrapper stylings

        commit 5cb51153894ed2fd18d816f5a872fa84825fe62f
        Author: paulpietzko <paul.pietzko@icloud.com>
        Date:   Fri Sep 27 12:33:19 2024 +0200

            Unfolded Scss Files

        commit 347d048f73f18c7c04e592c93c9537e2177e9bc6
        Author: paulpietzko <paul.pietzko@icloud.com>
        Date:   Fri Sep 27 10:07:04 2024 +0200

            Outsourced the dialog in expandable-wrapper and picker-expandable

        commit 44506669d3791d98cf5df1cbdd78e3ce8128d759
        Author: paulpietzko <paul.pietzko@icloud.com>
        Date:   Fri Sep 27 08:43:33 2024 +0200

            Removed CSS from useless hyperlink-dialog

        commit 1628a2bec8650244db1daaefdaccf7022c92ce16
        Author: paulpietzko <paul.pietzko@icloud.com>
        Date:   Fri Sep 27 08:06:12 2024 +0200

            Used hyperlink-dialog in library-expandable

        commit 028a1c00909257582921c37f53b4510b5eb0cf7b
        Author: paulpietzko <paul.pietzko@icloud.com>
        Date:   Thu Sep 26 14:46:49 2024 +0200

            Working data flow

        commit b8ea3d6f5d0fb75cb289f67df9597a81ef8108fa
        Author: paulpietzko <paul.pietzko@icloud.com>
        Date:   Thu Sep 26 14:40:01 2024 +0200

            wip...

        commit 7f6f65a0256a125e8228522a2595c68aa08ffed6
        Author: paulpietzko <paul.pietzko@icloud.com>
        Date:   Thu Sep 26 07:00:16 2024 +0200

            Made data flow

        commit 2a35ccb34fffb71f03823ce26888608d907ba9bb
        Author: paulpietzko <paul.pietzko@icloud.com>
        Date:   Wed Sep 25 14:42:17 2024 +0200

            Roughly splitted up the content in /hyperlink-dialog

        commit 75cc821df5b55b0541975f1392df0b2ae3870c6d
        Author: paulpietzko <paul.pietzko@icloud.com>
        Date:   Wed Sep 25 12:44:19 2024 +0200

            Made files

    commit ecfc41a
    Author: Dominik Graf <dominik.graf@2sic.com>
    Date:   Tue Oct 1 09:12:47 2024 +0200

        wip sig

    commit adbc134
    Author: Dominik Graf <dominik.graf@2sic.com>
    Date:   Tue Oct 1 07:22:10 2024 +0200

        add pickerPreviewType Settings and rename valuePreview wo PreviewValue

    commit ec3c441
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Mon Sep 30 16:58:27 2024 +0200

        npm update to latest @2sic.com/sxc-angular

    commit a088bd0
    Merge: e4dd7f0 03dbedc
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Mon Sep 30 16:44:47 2024 +0200

        Merge branch 'develop' of https://github.com/2sic/eav-ui into develop

    commit e4dd7f0
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Mon Sep 30 16:44:42 2024 +0200

        implement hidden generic field settings
        fix 2sic/2sxc#3468 to enable search-input to get correct type to retrieve

    commit f0fcba1
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Mon Sep 30 16:44:10 2024 +0200

        minor clean up / rename / debug

    commit 03dbedc
    Author: Dominik Graf <dominik.graf@2sic.com>
    Date:   Mon Sep 30 16:10:46 2024 +0200

        remove duplicate code and make preview label

    commit 8f2173d
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Mon Sep 30 15:46:59 2024 +0200

        minor naming and entity-reader flattenAll to flatten

    commit bcf02b7
    Author: Dominik Graf <dominik.graf@2sic.com>
    Date:   Mon Sep 30 15:23:15 2024 +0200

        mini

    commit a504368
    Merge: b6799b1 2da61f2
    Author: Dominik Graf <dominik.graf@2sic.com>
    Date:   Mon Sep 30 14:22:52 2024 +0200

        Merge remote-tracking branch 'origin/develop' into feature/picker-2dg

    commit b6799b1
    Author: Dominik Graf <dominik.graf@2sic.com>
    Date:   Mon Sep 30 14:21:48 2024 +0200

        picker type image styles and example

    commit 7b36982
    Author: Dominik Graf <dominik.graf@2sic.com>
    Date:   Mon Sep 30 12:48:02 2024 +0200

        show dynamic picker type

    commit 2da61f2
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Mon Sep 30 11:12:32 2024 +0200

        minor fix dropdown from entity showing too many hits
        fixes 2sic/2sxc#3476

    commit f22753a
    Author: Dominik Graf <dominik.graf@2sic.com>
    Date:   Mon Sep 30 08:29:37 2024 +0200

        wip css picker

    commit 9a7c352
    Merge: 679b263 9affa04
    Author: Dominik Graf <dominik.graf@2sic.com>
    Date:   Mon Sep 30 07:05:05 2024 +0200

        Merge branch 'develop' into feature/picker-2dg

    commit 9affa04
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Sat Sep 28 17:06:29 2024 +0200

        add todos for @2pp/@2dg

    commit 8696557
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Sat Sep 28 17:00:26 2024 +0200

        picker: fix autofocus after removing last item

    commit 470744b
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Sat Sep 28 16:44:39 2024 +0200

        fix minor autofocus defaults & comment

    commit 9062013
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Sat Sep 28 16:42:34 2024 +0200

        enable noAutoFocus for picker fields

    commit 2457dbf
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Sat Sep 28 09:31:53 2024 +0200

        finish field inheritance
        2sic/2sxc#3192

    commit 14802ed
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Fri Sep 27 15:59:44 2024 +0200

        improve UIs for field definition sharing

    commit 710d90d
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Fri Sep 27 14:57:14 2024 +0200

        minor edit-form header

    commit 668b333
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Fri Sep 27 09:49:57 2024 +0200

        task description

    commit a89bdf0
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Fri Sep 27 09:48:09 2024 +0200

        create features-missing dialog for edit-UI

    commit 20f1c50
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Fri Sep 27 09:28:43 2024 +0200

        task instructions

    commit bf93cec
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Fri Sep 27 09:25:39 2024 +0200

        feature-details reduce code

    commit 75f6d55
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Fri Sep 27 09:13:41 2024 +0200

        feat-info reduce code

    commit 4bad41e
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Fri Sep 27 09:10:03 2024 +0200

        feature-info-dialog to signals

    commit e968df5
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Fri Sep 27 08:26:51 2024 +0200

        minor web api services

    commit 679b263
    Author: Dominik Graf <dominik.graf@2sic.com>
    Date:   Thu Sep 26 14:51:18 2024 +0200

        wip icon filter picker

    commit 8d8fef6
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Thu Sep 26 10:33:39 2024 +0200

        more tippy improvements / samples

    commit e60b688
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Thu Sep 26 10:15:40 2024 +0200

        tippy enhancements

    commit 87cacc1
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Thu Sep 26 08:48:36 2024 +0200

        provide titles for new pickers

    commit 3460529
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Thu Sep 26 08:48:30 2024 +0200

        minor debugging

    commit 5d4003a
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Thu Sep 26 08:12:39 2024 +0200

        minor prep name consolidation in UI

    commit f162002
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Wed Sep 25 17:53:31 2024 +0200

        Bug: visual query somehow marked required streams incorrectly

    commit 38d2fda
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Wed Sep 25 17:01:39 2024 +0200

        font-picker minor/docs

    commit 2f2939e
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Wed Sep 25 15:39:16 2024 +0200

        minor string-font-icon-picker

    commit f3dcf54
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Wed Sep 25 15:04:52 2024 +0200

        minor code-reorg

    commit 2a5e5dc
    Merge: f0fd28e 1681270
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Wed Sep 25 14:40:14 2024 +0200

        Merge branch 'develop' of https://github.com/2sic/eav-ui into develop

    commit f0fd28e
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Wed Sep 25 14:40:11 2024 +0200

        remove another FlexLayout

    commit 1681270
    Merge: 4087c21 bc1d8de
    Author: Dominik Graf <dominik.graf@2sic.com>
    Date:   Wed Sep 25 14:32:01 2024 +0200

        Merge branch 'develop' into feature/picker-2dg

    commit 4087c21
    Author: Dominik Graf <dominik.graf@2sic.com>
    Date:   Wed Sep 25 14:31:37 2024 +0200

        new number-picker

    commit bc1d8de
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Wed Sep 25 14:22:40 2024 +0200

        another FlexLayout (language menus)

    commit 8317b99
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Wed Sep 25 13:58:47 2024 +0200

        drop another FlexLayout

    commit 5dd3c99
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Wed Sep 25 13:51:07 2024 +0200

        translate menu without FlexLayout

    commit d9d8032
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Wed Sep 25 13:37:08 2024 +0200

        task for @2pp to deduplicate code

    commit 8d636e9
    Merge: f817cfc f942020
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Wed Sep 25 13:28:12 2024 +0200

        Merge branch 'develop' of https://github.com/2sic/eav-ui into develop

    commit f817cfc
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Wed Sep 25 13:28:07 2024 +0200

        enable ctrl + alt + s for save and close

    commit f942020
    Merge: 9fe1b4a 2301ffa
    Author: Dominik Graf <dominik.graf@2sic.com>
    Date:   Wed Sep 25 13:13:01 2024 +0200

        Merge branch 'develop' into feature/picker-2dg

    commit 9fe1b4a
    Author: Dominik Graf <dominik.graf@2sic.com>
    Date:   Wed Sep 25 13:12:23 2024 +0200

        refactor number dropdown

    commit db549fa
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Wed Sep 25 12:45:07 2024 +0200

        fix ctrl+S to work when caps-lock is used

    commit ec96a7b
    Author: iJungleboy <daniel.mettler@2sic.com>
    Date:   Wed Sep 25 12:43:45 2024 +0200

        remove another flex-layout

commit 48cb4666476c8909e51ac0228f6f2bdc9f03ea4b
Author: paulpietzko <paul.pietzko@icloud.com>
Date:   Tue Oct 1 09:38:02 2024 +0200

    Outsourced wysiwyg and expandable wrapper scss

commit cadaaa01d277e8761ee49d42e3907e178656fee0
Author: paulpietzko <paul.pietzko@icloud.com>
Date:   Mon Sep 30 13:51:46 2024 +0200

    Renamed dialog to popup and redefined integrations of the component

commit 363037ff8aab83a26b485eddd0a3e1324684adc3
Author: paulpietzko <paul.pietzko@icloud.com>
Date:   Mon Sep 30 08:21:02 2024 +0200

    Deglobalized expandable wrapper stylings

commit 5cb51153894ed2fd18d816f5a872fa84825fe62f
Author: paulpietzko <paul.pietzko@icloud.com>
Date:   Fri Sep 27 12:33:19 2024 +0200

    Unfolded Scss Files

commit 347d048f73f18c7c04e592c93c9537e2177e9bc6
Author: paulpietzko <paul.pietzko@icloud.com>
Date:   Fri Sep 27 10:07:04 2024 +0200

    Outsourced the dialog in expandable-wrapper and picker-expandable

commit 44506669d3791d98cf5df1cbdd78e3ce8128d759
Author: paulpietzko <paul.pietzko@icloud.com>
Date:   Fri Sep 27 08:43:33 2024 +0200

    Removed CSS from useless hyperlink-dialog

commit 1628a2bec8650244db1daaefdaccf7022c92ce16
Author: paulpietzko <paul.pietzko@icloud.com>
Date:   Fri Sep 27 08:06:12 2024 +0200

    Used hyperlink-dialog in library-expandable

commit 028a1c00909257582921c37f53b4510b5eb0cf7b
Author: paulpietzko <paul.pietzko@icloud.com>
Date:   Thu Sep 26 14:46:49 2024 +0200

    Working data flow

commit b8ea3d6f5d0fb75cb289f67df9597a81ef8108fa
Author: paulpietzko <paul.pietzko@icloud.com>
Date:   Thu Sep 26 14:40:01 2024 +0200

    wip...

commit 7f6f65a0256a125e8228522a2595c68aa08ffed6
Author: paulpietzko <paul.pietzko@icloud.com>
Date:   Thu Sep 26 07:00:16 2024 +0200

    Made data flow

commit 2a35ccb34fffb71f03823ce26888608d907ba9bb
Author: paulpietzko <paul.pietzko@icloud.com>
Date:   Wed Sep 25 14:42:17 2024 +0200

    Roughly splitted up the content in /hyperlink-dialog

commit 75cc821df5b55b0541975f1392df0b2ae3870c6d
Author: paulpietzko <paul.pietzko@icloud.com>
Date:   Wed Sep 25 12:44:19 2024 +0200

    Made files
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: v18.02
Development

No branches or pull requests

2 participants