# Add UI for editing custom per-topic fields

**URL:** https://meta.discourse.org/t/add-ui-for-editing-custom-per-topic-fields/17607
**Category:** Feature
**Created:** [July 15, 2014, 1:31pm UTC](https://meta.discourse.org/t/add-ui-for-editing-custom-per-topic-fields/17607 "2014-07-15T13:31:58Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![lightyear](https://avatars.discourse-cdn.com/v4/letter/l/848f3c/32.png) [@lightyear](https://meta.discourse.org/u/lightyear)
#### Post date: [July 15, 2014, 1:31pm UTC](https://meta.discourse.org/t/add-ui-for-editing-custom-per-topic-fields/17607/1 "2014-07-15T13:31:58Z")

</div>

Heyah,

while working on the topic [permalinks plugin](https://meta.discourse.org/t/beta-topic-permalinks/17606/1), I realised that there is no way for the Administrator to add, configure or edit our new [awesome custom-fields](https://meta.discourse.org/t/deprecating-hstore-meta-data-fields/14962/3) other than going into the Shell or Database and do it manually. Which makes it a quite hidden feature.

I’d propose to build a general-purpose modal-dialog similar to the administration interface listing all existing custom\_fields and allowing them to be edited (and maybe other fields added) by administrators. Here is an example sketch for what this could look like for a topic:

 ![](https://global.discourse-cdn.com/meta/original/3X/1/9/196e3d06e88df17e1635aacedd8cedce2ce07b00.png) 

I’d propose to make this accessible through the topic wrench per topic, the administrator-wrench per post, make it part of the category-edit page and add a button for it on the user-profile-admin-page.

What do you think?

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [July 15, 2014, 11:31pm UTC](https://meta.discourse.org/t/add-ui-for-editing-custom-per-topic-fields/17607/2 "2014-07-15T23:31:18Z")

</div>

I like this feature, but it gets a bit tricky.

Ideally you only show it if you actually have custom fields so the backend needs to be a bit smarter and it may add some cost to querying posts.

I am not sure if I want this for V1 though.

---

<div class="post-metadata">

### Author: ![lightyear](https://avatars.discourse-cdn.com/v4/letter/l/848f3c/32.png) [@lightyear](https://meta.discourse.org/u/lightyear)
#### Post date: [July 16, 2014, 6:12am UTC](https://meta.discourse.org/t/add-ui-for-editing-custom-per-topic-fields/17607/3 "2014-07-16T06:12:25Z")

</div>

> [@sam](#):
>
> Ideally you only show it if you actually have custom fields so the backend needs to be a bit smarter and it may add some cost to querying posts.

Which we could do, if we make the usage of fields (at least through the editor) something plugins half-way officially register. This would also easier allow us to learn about and warn for clashes, and if we know the fields, we can do the serialisation automatically and the plugins don’t have to do the same monkey patching all the time.

I am thinking of something similar to the settings.yml, like a custom\_fields.yml, which then simply would have top level sections for the models that have custom-fields support. Something along the lines of

```plaintext
topic:
   permalink:
      default: ''
      client: true
   template:
     <<
      - article
      - blog-post

user:
   author_bio:
     default: ""
     client: true
  author_picture:
     default: ""
     client: true
     type: url

```

---

<div class="post-metadata">

### Author: ![jrgong](https://avatars.discourse-cdn.com/v4/letter/j/c57346/32.png) [@jrgong](https://meta.discourse.org/u/jrgong)
#### Post date: [September 30, 2024, 2:55pm UTC](https://meta.discourse.org/t/add-ui-for-editing-custom-per-topic-fields/17607/7 "2024-09-30T14:55:15Z")

</div>

Has anyone already created some sort of front-end workout to edit custom fields for topics?

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [September 30, 2024, 3:13pm UTC](https://meta.discourse.org/t/add-ui-for-editing-custom-per-topic-fields/17607/8 "2024-09-30T15:13:46Z")

</div>

I did a bespoke solution for a client only 3 months ago (and have done this several times before).

Locations, Topic List Previews and Events all have their own specific UI.

If you have something you need done and have budget, happy to look at it.

Can you elaborate on the requirement?
