Finalize interface names (#5521)

* Rename button-links->presentation-links

* Rename checkboxes->select-multiple-checkbox

* Rename code->input-code

* Rename checkboxes files

* Rename color->select-color

* Rename divider->presentation-divider

* Rename dropdown-multiselect->select-multiple-dropdown

* Rename hash->input-hash

* Rename icon->select-icon

* Rename image->file-image

* Rename m2a-builder->list-m2a

* Rename many-to-many->list-m2m

* Rename many-to-one->select-dropdown-m2o

* Rename markdown->input-rich-text-md

* Rename notice->presentation-notice

* Rename one-to-many->list-o2m

* Rename radio-buttons->select-radio

* Rename repeater->list

* Rename text-input->input

* Rename textarea->input-multiline

* Rename toggle->boolean

* Rename tree-view->list-o2m-tree-view

* Rename wysiwyg->input-rich-text-html

* Use correct interfaces in system defaults

* Rename collection->system-collection

* Rename collections->system-collections

* Rename display-template->system-display-template

* Rename field->system-field

* Rename interface->system-interface

* Rename interface-options->system-interface-options

* Rename scope->interface-scope

* Rename tfa-setup->system-mfa-setup

* Fix oversights

* Remove old todo

* Some more tweaks

* Add migration, fix dropdown name in system use

* Merge numeric + input

* Replace dropdown->select-dropdown in app use

* Merge slug->input, user->select-dropdown-m2o

* Fix type issue

* Fix seeder field name
This commit is contained in:
Rijk van Zanten
2021-05-06 16:49:32 -04:00
committed by GitHub
parent c6927bb4e2
commit c4ae4b66cc
181 changed files with 2191 additions and 2328 deletions

View File

@@ -0,0 +1,76 @@
import { Knex } from 'knex';
// [before, after, after-option additions]
const changes: [string, string, Record<string, any>?][] = [
['button-links', 'presentation-links'],
['checkboxes', 'select-multiple-checkbox'],
['code', 'input-code'],
['color', 'select-color'],
['datetime', 'datetime'],
['divider', 'presentation-divider'],
['dropdown', 'select-dropdown'],
['dropdown-multiselect', 'select-multiple-dropdown'],
['file', 'file'],
['hash', 'input-hash'],
['icon', 'select-icon'],
['image', 'file-image'],
['m2a-builder', 'list-m2a'],
['many-to-many', 'list-m2m'],
['many-to-one', 'select-dropdown-m2o'],
['markdown', 'input-rich-text-md'],
['notice', 'presentation-notice'],
['numeric', 'input'],
['one-to-many', 'list-o2m'],
['radio-buttons', 'select-radio'],
['repeater', 'list'],
['slider', 'slider'],
['slug', 'input', { slug: true }],
['tags', 'tags'],
['text-input', 'input'],
['textarea', 'input-multiline'],
['toggle', 'boolean'],
['translations', 'translations'],
['tree-view', 'list-o2m-tree-view'],
['user', 'select-dropdown-m2o', { template: '{{avatar.$thumbnail}} {{first_name}} {{last_name}}' }],
['wysiwyg', 'input-rich-text-html'],
// System:
['collection', 'system-collection'],
['collections', 'system-collection-multiple'],
['display-template', 'system-display-template'],
['field', 'system-field'],
['interface', 'system-interface'],
['interface-options', 'system-interface-options'],
['scope', 'system-scope'],
['system-language', 'system-language'],
['tfa-setup', 'system-mfa-setup'],
];
export async function up(knex: Knex): Promise<void> {
for (const [before, after, options] of changes) {
// If any options need to be added, update the fields one by one in order to update the pre-existing field options
if (options) {
const fields = await knex
.select<{ id: number; options: Record<string, unknown> }[]>('id', 'options')
.from('directus_fields')
.where({ interface: before });
for (const { id, options: existingOptions } of fields) {
const newOptions = {
...(existingOptions || {}),
...options,
};
await knex('directus_fields').update({ interface: after, options: newOptions }).where({ id });
}
} else {
await knex('directus_fields').update({ interface: after }).where({ interface: before });
}
}
}
export async function down(knex: Knex): Promise<void> {
for (const [before, after] of changes) {
await knex('directus_fields').update({ interface: before }).where({ interface: after });
}
}