Page MenuHomePhabricator

Community configuration: Make it possible for client extensions to add their own form
Closed, DuplicatePublic

Description

Problem description

By default, Community configuration 2.0 supports basic schema-based form only. This form only supports a set of primitive types (a number, a string, a boolean, etc.). While it is possible to create powerful configuration forms with primitive types, it is clearly not sufficient for more thorough configuration setups. For example, Edit check would likely need a more powerful configuration form. Similarly, if AbuseFilter were to migrate to Community configuration, it wouldn't be able to operate on top of the basic form system.

Solution

Community configuration 2.0 should allow even clients with complex needs to make use of its benefits (such as, a central place for the configuration – the configuration dashboard). This can be done by allowing client extensions to replace the standard form logic with their own logic. That way, the client extension could assume complete control (and complete responsibility) over the form, without having to modify CommunityConfiguration itself (or hack its way around the existing implementation).

With T360277 resolved, it should be fairly easy to make it possible for an client extension to define its own editor capabilities.

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

Hi @KStoller-WMF! For the record, this is what I was mentioning via Slack earlier today. I gave it a separate task, considering both goal-wise and patches-wise, it is different from T360277: Community configuration: Avoid registering multiple special pages.

Hi @Sgs! Looking forward for your feedback re the capabilities (T360277) and registering them from client extensions.

Hi @ppelberg! Considering this mentions Edit Check, I'm pinging you as well about this :). Once one of Editing's engineers has a while, I would love to hear what they think about this from the Editing perspective.