The MimeType is a little thumbnail displayed next to the title that is usually related to the type of information contained in the article, or a logo for the page that we're addressing. If you make a search in google for example you can appreciate the Mime icon right here
In our case, we use this feature, for example, to differentiate between types of documents that we're displaying on data warehouses by using icons instead of displaying the whole category of the document in screen.
Property | Type | Description | Required | Default | Enum |
---|---|---|---|---|---|
type | string | The type of field. | No | mime_type | mime_type |
label | string/null | Label to show for this field. | No | null | |
css_style | object/null | Style to apply in the HTML of the UI. | No | null | |
css_class | string/null | CSS class to apply in the HTML component. | No | null | |
translate | string/null | Translation key for the field. | No | null | |
translate_label | string/null | Translation key for the label. | No | null | |
analytics | object/null | Analytics configuration. | No | null | |
if_not_exist | string/null | Show only if the specified field doesn't exist. | No | null | |
if_exist | string/null | Show only if the specified field does exist. | No | null | |
only_on_highlight | boolean | Show only when the value is highlighted. | No | false | |
display | any/array/null | Value from the field. | No | null | |
field | string | Path to field from which to retrieve the value (in JMESPath format). | Yes | ||
field_highlight | string/null | Path to highlight field from which to retrieve the value, in case it is not the same as the field parameter (in JMESPath format). | No | null | |
default | any | Default value to use in case no value was found for the field. | No | null | |
transform | array/string/null | List of transformations to apply to the displayed values. | No | null | |
suffix | string/null | Suffix to append to the value or values. | No | null | |
prefix | string/null | Prefix to append to the value or values. | No | null | |
suffix_label | string/null | Suffix to append to the label of the field. | No | null | |
prefix_label | string/null | Prefix to append to the label of the field. | No | null | |
sort | string/boolean | Sort order for values in an array. | No | false | asc, desc |
unique | boolean | If the values are in an array, remove the duplicates. | No | false | |
show_blank | boolean | If there is no value, or value is null, and show_blank is true, keep the field. | No | false | |
replacement | string/null | Replacement string for matches in the transformations Transformation.REPLACE_FIRST , Transformation.REPLACE_LAST , and Transformation.REPLACE_ALL . | No | null | |
pattern | string/null | Pattern used to look for matches in the transformations Transformation.REPLACE_FIRST , Transformation.REPLACE_LAST , and Transformation.REPLACE_ALL . | No | null | |
map_file | string | Path to the file that contains the mapping for this dynamic field. | Yes | ||
alt | string/null | This is the alt option for display in case the specified MIME type does not exist in the map. | No | default |
Mapping
Since we have separated the front end from the backend, we made this field work with a map that maps the content of a field in the database (example Category) with it's corresponding Mime icon path in the UI. Our recommendation is to place the map at config/stages/fields/mimetype/ but you can give any path to the map_file property in the configuration.
The Map must be in json format so it can be read as a Python dictionary, here's an example of what a map should look like:
{ "Documentary": "src/assets/Icons/documento.svg", "default": "src/assets/Icons/filas-de-la-tabla.svg" }
{ "type": "mime_type", "label": "Document Type", "css_style": null, "css_class": null, "translate": null, "translate_label": null, "analytics": null, "if_not_exist": null, "if_exist": null, "only_on_highlight": false, "display": "src/assets/Icons/documento.svg", "field": "file.mime_type", "field_highlight": null, "default": null, "transform": null, "suffix": null, "prefix": null, "suffix_label": null, "prefix_label": null, "sort": false, "unique": false, "show_blank": false, "replacement": null, "pattern": null, "map_file": "/path/to/mime_type_map.json", "alt": "default" }
mime_field_example = MimeField( field='metadata.genres[0].name', map_file='config/stages/fields/mimetype/mime_maps.json' )