diff --git a/directus-cms/extensions/directus-extension-programmierbar-bundle/src/buzzsprout/handlers/buzzsprout.ts b/directus-cms/extensions/directus-extension-programmierbar-bundle/src/buzzsprout/handlers/buzzsprout.ts
index 3e4808fa..f35d25f4 100644
--- a/directus-cms/extensions/directus-extension-programmierbar-bundle/src/buzzsprout/handlers/buzzsprout.ts
+++ b/directus-cms/extensions/directus-extension-programmierbar-bundle/src/buzzsprout/handlers/buzzsprout.ts
@@ -62,6 +62,13 @@ export async function handleBuzzsprout(
podcastData.picks_of_the_day
) {
buzzsproutData.description = `
+
+ Wie hat dir die Folge gefallen?:
+ Gut 👍
+ Schlecht 👎
+ (Keine Anmeldung erforderlich)
+
+
${podcastData.description}
${
podcastData.picks_of_the_day.length
diff --git a/directus-cms/schema.json b/directus-cms/schema.json
index b43e016d..fa837269 100644
--- a/directus-cms/schema.json
+++ b/directus-cms/schema.json
@@ -196,7 +196,7 @@
"note": null,
"preview_url": null,
"singleton": true,
- "sort": 7,
+ "sort": 8,
"sort_field": null,
"translations": null,
"unarchive_value": "draft",
@@ -224,7 +224,7 @@
"note": null,
"preview_url": null,
"singleton": false,
- "sort": 1,
+ "sort": 3,
"sort_field": null,
"translations": null,
"unarchive_value": "draft",
@@ -252,7 +252,7 @@
"note": null,
"preview_url": null,
"singleton": true,
- "sort": 11,
+ "sort": 12,
"sort_field": null,
"translations": [
{
@@ -267,6 +267,34 @@
"name": "coc_page"
}
},
+ {
+ "collection": "cocktail_menu",
+ "meta": {
+ "accountability": "all",
+ "archive_app_filter": true,
+ "archive_field": "status",
+ "archive_value": "archived",
+ "collapse": "open",
+ "collection": "cocktail_menu",
+ "color": null,
+ "display_template": null,
+ "group": "Pages",
+ "hidden": false,
+ "icon": "wine_bar",
+ "item_duplication_fields": null,
+ "note": null,
+ "preview_url": null,
+ "singleton": true,
+ "sort": 5,
+ "sort_field": null,
+ "translations": null,
+ "unarchive_value": "draft",
+ "versioning": false
+ },
+ "schema": {
+ "name": "cocktail_menu"
+ }
+ },
{
"collection": "conference_page",
"meta": {
@@ -334,14 +362,14 @@
"collection": "conferences_directus_files",
"color": null,
"display_template": null,
- "group": null,
+ "group": "Relations",
"hidden": true,
"icon": "import_export",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
- "sort": 6,
+ "sort": 18,
"sort_field": null,
"translations": null,
"unarchive_value": null,
@@ -362,14 +390,14 @@
"collection": "conferences_partners",
"color": null,
"display_template": null,
- "group": null,
+ "group": "Relations",
"hidden": true,
"icon": "import_export",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
- "sort": 11,
+ "sort": 15,
"sort_field": null,
"translations": null,
"unarchive_value": null,
@@ -390,14 +418,14 @@
"collection": "conferences_speakers",
"color": null,
"display_template": "{{speakers_id.first_name}} {{speakers_id.last_name}} at {{conferences_id.title}}",
- "group": null,
+ "group": "Relations",
"hidden": true,
"icon": "import_export",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
- "sort": 7,
+ "sort": 17,
"sort_field": null,
"translations": null,
"unarchive_value": null,
@@ -418,14 +446,14 @@
"collection": "conferences_talks",
"color": null,
"display_template": null,
- "group": null,
+ "group": "Relations",
"hidden": true,
"icon": "import_export",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
- "sort": 10,
+ "sort": 14,
"sort_field": null,
"translations": null,
"unarchive_value": null,
@@ -453,7 +481,7 @@
"note": null,
"preview_url": null,
"singleton": true,
- "sort": 8,
+ "sort": 9,
"sort_field": null,
"translations": null,
"unarchive_value": "draft",
@@ -509,7 +537,7 @@
"note": null,
"preview_url": null,
"singleton": true,
- "sort": 5,
+ "sort": 6,
"sort_field": null,
"translations": null,
"unarchive_value": "draft",
@@ -558,14 +586,14 @@
"collection": "home_page_highlights",
"color": null,
"display_template": null,
- "group": null,
+ "group": "Relations",
"hidden": true,
"icon": "import_export",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
- "sort": 5,
+ "sort": 21,
"sort_field": null,
"translations": null,
"unarchive_value": null,
@@ -621,7 +649,7 @@
"note": null,
"preview_url": null,
"singleton": true,
- "sort": 9,
+ "sort": 10,
"sort_field": null,
"translations": null,
"unarchive_value": "draft",
@@ -677,7 +705,7 @@
"note": null,
"preview_url": null,
"singleton": true,
- "sort": 13,
+ "sort": 14,
"sort_field": null,
"translations": null,
"unarchive_value": "draft",
@@ -855,6 +883,34 @@
"name": "meetups"
}
},
+ {
+ "collection": "meetups_talks",
+ "meta": {
+ "accountability": "all",
+ "archive_app_filter": true,
+ "archive_field": null,
+ "archive_value": null,
+ "collapse": "open",
+ "collection": "meetups_talks",
+ "color": null,
+ "display_template": null,
+ "group": "Relations",
+ "hidden": true,
+ "icon": "import_export",
+ "item_duplication_fields": null,
+ "note": null,
+ "preview_url": null,
+ "singleton": false,
+ "sort": 20,
+ "sort_field": null,
+ "translations": null,
+ "unarchive_value": null,
+ "versioning": false
+ },
+ "schema": {
+ "name": "meetups_talks"
+ }
+ },
{
"collection": "member_tags",
"meta": {
@@ -957,7 +1013,7 @@
"note": null,
"preview_url": null,
"singleton": true,
- "sort": 6,
+ "sort": 7,
"sort_field": null,
"translations": null,
"unarchive_value": "draft",
@@ -1181,7 +1237,7 @@
"note": null,
"preview_url": null,
"singleton": true,
- "sort": 10,
+ "sort": 11,
"sort_field": null,
"translations": null,
"unarchive_value": "draft",
@@ -1209,7 +1265,7 @@
"note": null,
"preview_url": null,
"singleton": true,
- "sort": 14,
+ "sort": 15,
"sort_field": null,
"translations": null,
"unarchive_value": "draft",
@@ -1321,7 +1377,7 @@
"note": null,
"preview_url": null,
"singleton": true,
- "sort": 15,
+ "sort": 16,
"sort_field": null,
"translations": null,
"unarchive_value": null,
@@ -1331,6 +1387,62 @@
"name": "raffle_page"
}
},
+ {
+ "collection": "ratings",
+ "meta": {
+ "accountability": "all",
+ "archive_app_filter": true,
+ "archive_field": "status",
+ "archive_value": "archived",
+ "collapse": "open",
+ "collection": "ratings",
+ "color": null,
+ "display_template": null,
+ "group": "WIP",
+ "hidden": false,
+ "icon": "thumbs_up_down",
+ "item_duplication_fields": null,
+ "note": null,
+ "preview_url": null,
+ "singleton": false,
+ "sort": 1,
+ "sort_field": "sort",
+ "translations": null,
+ "unarchive_value": "draft",
+ "versioning": false
+ },
+ "schema": {
+ "name": "ratings"
+ }
+ },
+ {
+ "collection": "ratings_target",
+ "meta": {
+ "accountability": "all",
+ "archive_app_filter": true,
+ "archive_field": null,
+ "archive_value": null,
+ "collapse": "open",
+ "collection": "ratings_target",
+ "color": null,
+ "display_template": null,
+ "group": "Relations",
+ "hidden": true,
+ "icon": "import_export",
+ "item_duplication_fields": null,
+ "note": null,
+ "preview_url": null,
+ "singleton": false,
+ "sort": 23,
+ "sort_field": null,
+ "translations": null,
+ "unarchive_value": null,
+ "versioning": false
+ },
+ "schema": {
+ "name": "ratings_target"
+ }
+ },
{
"collection": "recordings_page",
"meta": {
@@ -1349,7 +1461,7 @@
"note": null,
"preview_url": null,
"singleton": true,
- "sort": 12,
+ "sort": 13,
"sort_field": null,
"translations": null,
"unarchive_value": "draft",
@@ -1377,7 +1489,7 @@
"note": null,
"preview_url": null,
"singleton": false,
- "sort": 14,
+ "sort": 19,
"sort_field": "sort",
"translations": null,
"unarchive_value": null,
@@ -1482,14 +1594,14 @@
"collection": "talks_members",
"color": null,
"display_template": null,
- "group": null,
+ "group": "Relations",
"hidden": true,
"icon": "import_export",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
- "sort": 8,
+ "sort": 22,
"sort_field": null,
"translations": null,
"unarchive_value": null,
@@ -1510,14 +1622,14 @@
"collection": "talks_speakers",
"color": null,
"display_template": null,
- "group": null,
+ "group": "Relations",
"hidden": true,
"icon": "import_export",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
- "sort": 9,
+ "sort": 16,
"sort_field": null,
"translations": null,
"unarchive_value": null,
@@ -3188,11 +3300,11 @@
}
},
{
- "collection": "conference_page",
+ "collection": "cocktail_menu",
"field": "id",
"type": "uuid",
"meta": {
- "collection": "conference_page",
+ "collection": "cocktail_menu",
"conditions": null,
"display": null,
"display_options": null,
@@ -3215,7 +3327,7 @@
},
"schema": {
"name": "id",
- "table": "conference_page",
+ "table": "cocktail_menu",
"data_type": "uuid",
"default_value": null,
"max_length": null,
@@ -3233,11 +3345,11 @@
}
},
{
- "collection": "conference_page",
+ "collection": "cocktail_menu",
"field": "status",
"type": "string",
"meta": {
- "collection": "conference_page",
+ "collection": "cocktail_menu",
"conditions": null,
"display": "labels",
"display_options": {
@@ -3301,7 +3413,7 @@
},
"schema": {
"name": "status",
- "table": "conference_page",
+ "table": "cocktail_menu",
"data_type": "character varying",
"default_value": "draft",
"max_length": 255,
@@ -3319,11 +3431,11 @@
}
},
{
- "collection": "conference_page",
+ "collection": "cocktail_menu",
"field": "user_created",
"type": "uuid",
"meta": {
- "collection": "conference_page",
+ "collection": "cocktail_menu",
"conditions": null,
"display": "user",
"display_options": null,
@@ -3333,11 +3445,11 @@
"interface": "select-dropdown-m2o",
"note": null,
"options": {
- "template": "{{avatar.$thumbnail}} {{first_name}} {{last_name}}"
+ "template": "{{avatar}} {{first_name}} {{last_name}}"
},
"readonly": true,
"required": false,
- "sort": 5,
+ "sort": 3,
"special": [
"user-created"
],
@@ -3348,7 +3460,7 @@
},
"schema": {
"name": "user_created",
- "table": "conference_page",
+ "table": "cocktail_menu",
"data_type": "uuid",
"default_value": null,
"max_length": null,
@@ -3366,11 +3478,11 @@
}
},
{
- "collection": "conference_page",
+ "collection": "cocktail_menu",
"field": "date_created",
"type": "timestamp",
"meta": {
- "collection": "conference_page",
+ "collection": "cocktail_menu",
"conditions": null,
"display": "datetime",
"display_options": {
@@ -3384,7 +3496,7 @@
"options": null,
"readonly": true,
"required": false,
- "sort": 6,
+ "sort": 4,
"special": [
"date-created"
],
@@ -3395,7 +3507,7 @@
},
"schema": {
"name": "date_created",
- "table": "conference_page",
+ "table": "cocktail_menu",
"data_type": "timestamp with time zone",
"default_value": null,
"max_length": null,
@@ -3413,11 +3525,11 @@
}
},
{
- "collection": "conference_page",
+ "collection": "cocktail_menu",
"field": "user_updated",
"type": "uuid",
"meta": {
- "collection": "conference_page",
+ "collection": "cocktail_menu",
"conditions": null,
"display": "user",
"display_options": null,
@@ -3427,11 +3539,11 @@
"interface": "select-dropdown-m2o",
"note": null,
"options": {
- "template": "{{avatar.$thumbnail}} {{first_name}} {{last_name}}"
+ "template": "{{avatar}} {{first_name}} {{last_name}}"
},
"readonly": true,
"required": false,
- "sort": 3,
+ "sort": 5,
"special": [
"user-updated"
],
@@ -3442,7 +3554,7 @@
},
"schema": {
"name": "user_updated",
- "table": "conference_page",
+ "table": "cocktail_menu",
"data_type": "uuid",
"default_value": null,
"max_length": null,
@@ -3460,11 +3572,11 @@
}
},
{
- "collection": "conference_page",
+ "collection": "cocktail_menu",
"field": "date_updated",
"type": "timestamp",
"meta": {
- "collection": "conference_page",
+ "collection": "cocktail_menu",
"conditions": null,
"display": "datetime",
"display_options": {
@@ -3478,7 +3590,7 @@
"options": null,
"readonly": true,
"required": false,
- "sort": 4,
+ "sort": 6,
"special": [
"date-updated"
],
@@ -3489,7 +3601,7 @@
},
"schema": {
"name": "date_updated",
- "table": "conference_page",
+ "table": "cocktail_menu",
"data_type": "timestamp with time zone",
"default_value": null,
"max_length": null,
@@ -3507,35 +3619,37 @@
}
},
{
- "collection": "conference_page",
- "field": "meta_title",
- "type": "string",
+ "collection": "cocktail_menu",
+ "field": "menu",
+ "type": "json",
"meta": {
- "collection": "conference_page",
+ "collection": "cocktail_menu",
"conditions": null,
"display": null,
"display_options": null,
- "field": "meta_title",
+ "field": "menu",
"group": null,
"hidden": false,
- "interface": "input",
+ "interface": "input-code",
"note": null,
"options": null,
"readonly": false,
- "required": false,
- "sort": 8,
- "special": null,
+ "required": true,
+ "sort": 7,
+ "special": [
+ "cast-json"
+ ],
"translations": null,
"validation": null,
"validation_message": null,
"width": "full"
},
"schema": {
- "name": "meta_title",
- "table": "conference_page",
- "data_type": "character varying",
- "default_value": null,
- "max_length": 255,
+ "name": "menu",
+ "table": "cocktail_menu",
+ "data_type": "json",
+ "default_value": {},
+ "max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
@@ -3551,40 +3665,42 @@
},
{
"collection": "conference_page",
- "field": "meta_description",
- "type": "text",
+ "field": "id",
+ "type": "uuid",
"meta": {
"collection": "conference_page",
"conditions": null,
"display": null,
"display_options": null,
- "field": "meta_description",
+ "field": "id",
"group": null,
- "hidden": false,
- "interface": "input-multiline",
+ "hidden": true,
+ "interface": "input",
"note": null,
"options": null,
- "readonly": false,
+ "readonly": true,
"required": false,
- "sort": 9,
- "special": null,
+ "sort": 1,
+ "special": [
+ "uuid"
+ ],
"translations": null,
"validation": null,
"validation_message": null,
"width": "full"
},
"schema": {
- "name": "meta_description",
+ "name": "id",
"table": "conference_page",
- "data_type": "text",
+ "data_type": "uuid",
"default_value": null,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
- "is_nullable": true,
- "is_unique": false,
+ "is_nullable": false,
+ "is_unique": true,
"is_indexed": false,
- "is_primary_key": false,
+ "is_primary_key": true,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
@@ -3594,92 +3710,214 @@
},
{
"collection": "conference_page",
- "field": "divider-al6oeo",
- "type": "alias",
+ "field": "status",
+ "type": "string",
"meta": {
"collection": "conference_page",
"conditions": null,
- "display": null,
- "display_options": null,
- "field": "divider-al6oeo",
- "group": null,
- "hidden": false,
- "interface": "presentation-divider",
- "note": null,
- "options": {
- "title": "Intro"
- },
- "readonly": false,
- "required": false,
- "sort": 10,
- "special": [
- "alias",
- "no-data"
- ],
- "translations": null,
- "validation": null,
+ "display": "labels",
+ "display_options": {
+ "choices": [
+ {
+ "background": "var(--theme--primary-background)",
+ "color": "var(--theme--primary)",
+ "foreground": "var(--theme--primary)",
+ "text": "$t:published",
+ "value": "published"
+ },
+ {
+ "background": "var(--theme--background-normal)",
+ "color": "var(--theme--foreground)",
+ "foreground": "var(--theme--foreground)",
+ "text": "$t:draft",
+ "value": "draft"
+ },
+ {
+ "background": "var(--theme--warning-background)",
+ "color": "var(--theme--warning)",
+ "foreground": "var(--theme--warning)",
+ "text": "$t:archived",
+ "value": "archived"
+ }
+ ],
+ "showAsDot": true
+ },
+ "field": "status",
+ "group": null,
+ "hidden": false,
+ "interface": "select-dropdown",
+ "note": null,
+ "options": {
+ "choices": [
+ {
+ "color": "var(--theme--primary)",
+ "text": "$t:published",
+ "value": "published"
+ },
+ {
+ "color": "var(--theme--foreground)",
+ "text": "$t:draft",
+ "value": "draft"
+ },
+ {
+ "color": "var(--theme--warning)",
+ "text": "$t:archived",
+ "value": "archived"
+ }
+ ]
+ },
+ "readonly": false,
+ "required": false,
+ "sort": 2,
+ "special": null,
+ "translations": null,
+ "validation": null,
"validation_message": null,
"width": "full"
+ },
+ "schema": {
+ "name": "status",
+ "table": "conference_page",
+ "data_type": "character varying",
+ "default_value": "draft",
+ "max_length": 255,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": false,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": null,
+ "foreign_key_column": null
}
},
{
"collection": "conference_page",
- "field": "divider-jxppq-",
- "type": "alias",
+ "field": "user_created",
+ "type": "uuid",
"meta": {
"collection": "conference_page",
"conditions": null,
- "display": null,
+ "display": "user",
"display_options": null,
- "field": "divider-jxppq-",
+ "field": "user_created",
"group": null,
- "hidden": false,
- "interface": "presentation-divider",
+ "hidden": true,
+ "interface": "select-dropdown-m2o",
"note": null,
"options": {
- "title": "Meta"
+ "template": "{{avatar.$thumbnail}} {{first_name}} {{last_name}}"
},
- "readonly": false,
+ "readonly": true,
"required": false,
- "sort": 7,
+ "sort": 5,
"special": [
- "alias",
- "no-data"
+ "user-created"
],
"translations": null,
"validation": null,
"validation_message": null,
- "width": "full"
+ "width": "half"
+ },
+ "schema": {
+ "name": "user_created",
+ "table": "conference_page",
+ "data_type": "uuid",
+ "default_value": null,
+ "max_length": null,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": true,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": "directus_users",
+ "foreign_key_column": "id"
}
},
{
"collection": "conference_page",
- "field": "cover_image",
+ "field": "date_created",
+ "type": "timestamp",
+ "meta": {
+ "collection": "conference_page",
+ "conditions": null,
+ "display": "datetime",
+ "display_options": {
+ "relative": true
+ },
+ "field": "date_created",
+ "group": null,
+ "hidden": true,
+ "interface": "datetime",
+ "note": null,
+ "options": null,
+ "readonly": true,
+ "required": false,
+ "sort": 6,
+ "special": [
+ "date-created"
+ ],
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "half"
+ },
+ "schema": {
+ "name": "date_created",
+ "table": "conference_page",
+ "data_type": "timestamp with time zone",
+ "default_value": null,
+ "max_length": null,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": true,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": null,
+ "foreign_key_column": null
+ }
+ },
+ {
+ "collection": "conference_page",
+ "field": "user_updated",
"type": "uuid",
"meta": {
"collection": "conference_page",
"conditions": null,
- "display": null,
+ "display": "user",
"display_options": null,
- "field": "cover_image",
+ "field": "user_updated",
"group": null,
- "hidden": false,
- "interface": "file-image",
+ "hidden": true,
+ "interface": "select-dropdown-m2o",
"note": null,
- "options": null,
- "readonly": false,
+ "options": {
+ "template": "{{avatar.$thumbnail}} {{first_name}} {{last_name}}"
+ },
+ "readonly": true,
"required": false,
- "sort": 11,
+ "sort": 3,
"special": [
- "file"
+ "user-updated"
],
"translations": null,
"validation": null,
"validation_message": null,
- "width": "full"
+ "width": "half"
},
"schema": {
- "name": "cover_image",
+ "name": "user_updated",
"table": "conference_page",
"data_type": "uuid",
"default_value": null,
@@ -3693,40 +3931,44 @@
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
- "foreign_key_table": "directus_files",
+ "foreign_key_table": "directus_users",
"foreign_key_column": "id"
}
},
{
"collection": "conference_page",
- "field": "conference_heading",
- "type": "string",
+ "field": "date_updated",
+ "type": "timestamp",
"meta": {
"collection": "conference_page",
"conditions": null,
- "display": null,
- "display_options": null,
- "field": "conference_heading",
+ "display": "datetime",
+ "display_options": {
+ "relative": true
+ },
+ "field": "date_updated",
"group": null,
- "hidden": false,
- "interface": "input",
+ "hidden": true,
+ "interface": "datetime",
"note": null,
"options": null,
- "readonly": false,
+ "readonly": true,
"required": false,
- "sort": 12,
- "special": null,
+ "sort": 4,
+ "special": [
+ "date-updated"
+ ],
"translations": null,
"validation": null,
"validation_message": null,
- "width": "full"
+ "width": "half"
},
"schema": {
- "name": "conference_heading",
+ "name": "date_updated",
"table": "conference_page",
- "data_type": "character varying",
+ "data_type": "timestamp with time zone",
"default_value": null,
- "max_length": 255,
+ "max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
@@ -3742,14 +3984,14 @@
},
{
"collection": "conference_page",
- "field": "intro_heading",
+ "field": "meta_title",
"type": "string",
"meta": {
"collection": "conference_page",
"conditions": null,
"display": null,
"display_options": null,
- "field": "intro_heading",
+ "field": "meta_title",
"group": null,
"hidden": false,
"interface": "input",
@@ -3757,7 +3999,7 @@
"options": null,
"readonly": false,
"required": false,
- "sort": 13,
+ "sort": 8,
"special": null,
"translations": null,
"validation": null,
@@ -3765,7 +4007,7 @@
"width": "full"
},
"schema": {
- "name": "intro_heading",
+ "name": "meta_title",
"table": "conference_page",
"data_type": "character varying",
"default_value": null,
@@ -3785,22 +4027,22 @@
},
{
"collection": "conference_page",
- "field": "intro_text_1",
+ "field": "meta_description",
"type": "text",
"meta": {
"collection": "conference_page",
"conditions": null,
"display": null,
"display_options": null,
- "field": "intro_text_1",
+ "field": "meta_description",
"group": null,
"hidden": false,
- "interface": "input-rich-text-html",
+ "interface": "input-multiline",
"note": null,
"options": null,
"readonly": false,
"required": false,
- "sort": 14,
+ "sort": 9,
"special": null,
"translations": null,
"validation": null,
@@ -3808,7 +4050,7 @@
"width": "full"
},
"schema": {
- "name": "intro_text_1",
+ "name": "meta_description",
"table": "conference_page",
"data_type": "text",
"default_value": null,
@@ -3828,24 +4070,24 @@
},
{
"collection": "conference_page",
- "field": "divider-knhoxi",
+ "field": "divider-al6oeo",
"type": "alias",
"meta": {
"collection": "conference_page",
"conditions": null,
"display": null,
"display_options": null,
- "field": "divider-knhoxi",
+ "field": "divider-al6oeo",
"group": null,
"hidden": false,
"interface": "presentation-divider",
"note": null,
"options": {
- "title": "FAQs"
+ "title": "Intro"
},
"readonly": false,
"required": false,
- "sort": 15,
+ "sort": 10,
"special": [
"alias",
"no-data"
@@ -3858,19 +4100,253 @@
},
{
"collection": "conference_page",
- "field": "faqs_heading",
- "type": "string",
+ "field": "divider-jxppq-",
+ "type": "alias",
"meta": {
"collection": "conference_page",
"conditions": null,
"display": null,
"display_options": null,
- "field": "faqs_heading",
+ "field": "divider-jxppq-",
"group": null,
"hidden": false,
- "interface": "input",
+ "interface": "presentation-divider",
"note": null,
- "options": null,
+ "options": {
+ "title": "Meta"
+ },
+ "readonly": false,
+ "required": false,
+ "sort": 7,
+ "special": [
+ "alias",
+ "no-data"
+ ],
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ }
+ },
+ {
+ "collection": "conference_page",
+ "field": "cover_image",
+ "type": "uuid",
+ "meta": {
+ "collection": "conference_page",
+ "conditions": null,
+ "display": null,
+ "display_options": null,
+ "field": "cover_image",
+ "group": null,
+ "hidden": false,
+ "interface": "file-image",
+ "note": null,
+ "options": null,
+ "readonly": false,
+ "required": false,
+ "sort": 11,
+ "special": [
+ "file"
+ ],
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ },
+ "schema": {
+ "name": "cover_image",
+ "table": "conference_page",
+ "data_type": "uuid",
+ "default_value": null,
+ "max_length": null,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": true,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": "directus_files",
+ "foreign_key_column": "id"
+ }
+ },
+ {
+ "collection": "conference_page",
+ "field": "conference_heading",
+ "type": "string",
+ "meta": {
+ "collection": "conference_page",
+ "conditions": null,
+ "display": null,
+ "display_options": null,
+ "field": "conference_heading",
+ "group": null,
+ "hidden": false,
+ "interface": "input",
+ "note": null,
+ "options": null,
+ "readonly": false,
+ "required": false,
+ "sort": 12,
+ "special": null,
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ },
+ "schema": {
+ "name": "conference_heading",
+ "table": "conference_page",
+ "data_type": "character varying",
+ "default_value": null,
+ "max_length": 255,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": true,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": null,
+ "foreign_key_column": null
+ }
+ },
+ {
+ "collection": "conference_page",
+ "field": "intro_heading",
+ "type": "string",
+ "meta": {
+ "collection": "conference_page",
+ "conditions": null,
+ "display": null,
+ "display_options": null,
+ "field": "intro_heading",
+ "group": null,
+ "hidden": false,
+ "interface": "input",
+ "note": null,
+ "options": null,
+ "readonly": false,
+ "required": false,
+ "sort": 13,
+ "special": null,
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ },
+ "schema": {
+ "name": "intro_heading",
+ "table": "conference_page",
+ "data_type": "character varying",
+ "default_value": null,
+ "max_length": 255,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": true,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": null,
+ "foreign_key_column": null
+ }
+ },
+ {
+ "collection": "conference_page",
+ "field": "intro_text_1",
+ "type": "text",
+ "meta": {
+ "collection": "conference_page",
+ "conditions": null,
+ "display": null,
+ "display_options": null,
+ "field": "intro_text_1",
+ "group": null,
+ "hidden": false,
+ "interface": "input-rich-text-html",
+ "note": null,
+ "options": null,
+ "readonly": false,
+ "required": false,
+ "sort": 14,
+ "special": null,
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ },
+ "schema": {
+ "name": "intro_text_1",
+ "table": "conference_page",
+ "data_type": "text",
+ "default_value": null,
+ "max_length": null,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": true,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": null,
+ "foreign_key_column": null
+ }
+ },
+ {
+ "collection": "conference_page",
+ "field": "divider-knhoxi",
+ "type": "alias",
+ "meta": {
+ "collection": "conference_page",
+ "conditions": null,
+ "display": null,
+ "display_options": null,
+ "field": "divider-knhoxi",
+ "group": null,
+ "hidden": false,
+ "interface": "presentation-divider",
+ "note": null,
+ "options": {
+ "title": "FAQs"
+ },
+ "readonly": false,
+ "required": false,
+ "sort": 15,
+ "special": [
+ "alias",
+ "no-data"
+ ],
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ }
+ },
+ {
+ "collection": "conference_page",
+ "field": "faqs_heading",
+ "type": "string",
+ "meta": {
+ "collection": "conference_page",
+ "conditions": null,
+ "display": null,
+ "display_options": null,
+ "field": "faqs_heading",
+ "group": null,
+ "hidden": false,
+ "interface": "input",
+ "note": null,
+ "options": null,
"readonly": false,
"required": false,
"sort": 16,
@@ -4633,6 +5109,7 @@
"note": null,
"options": {
"enableCreate": false,
+ "limit": 30,
"template": "{{speakers_id.first_name}} {{speakers_id.last_name}}"
},
"readonly": false,
@@ -4989,11 +5466,13 @@
"field": "gallery_images",
"group": null,
"hidden": false,
- "interface": "list-m2m",
+ "interface": "files",
"note": null,
"options": {
"enableCreate": false,
- "filter": null
+ "filter": null,
+ "folder": "e132fe08-d7c6-478c-9b75-68676be8783d",
+ "template": "{{directus_files_id.$thumbnail}}"
},
"readonly": false,
"required": false,
@@ -5023,6 +5502,7 @@
"note": null,
"options": {
"enableCreate": false,
+ "limit": 30,
"template": "{{talk.title}}"
},
"readonly": false,
@@ -11463,7 +11943,7 @@
"options": null,
"readonly": true,
"required": false,
- "sort": 19,
+ "sort": 21,
"special": [
"uuid"
],
@@ -11582,7 +12062,7 @@
"options": null,
"readonly": false,
"required": false,
- "sort": 20,
+ "sort": 22,
"special": null,
"translations": null,
"validation": null,
@@ -11627,7 +12107,7 @@
},
"readonly": true,
"required": false,
- "sort": 21,
+ "sort": 23,
"special": [
"user-created"
],
@@ -11674,7 +12154,7 @@
"options": null,
"readonly": true,
"required": false,
- "sort": 22,
+ "sort": 24,
"special": [
"date-created"
],
@@ -11721,7 +12201,7 @@
},
"readonly": true,
"required": false,
- "sort": 23,
+ "sort": 25,
"special": [
"user-updated"
],
@@ -11768,7 +12248,7 @@
"options": null,
"readonly": true,
"required": false,
- "sort": 24,
+ "sort": 26,
"special": [
"date-updated"
],
@@ -11858,7 +12338,7 @@
},
"readonly": false,
"required": false,
- "sort": 25,
+ "sort": 27,
"special": null,
"translations": null,
"validation": null,
@@ -12156,7 +12636,7 @@
},
"readonly": false,
"required": false,
- "sort": 10,
+ "sort": 12,
"special": null,
"translations": null,
"validation": null,
@@ -12201,7 +12681,7 @@
},
"readonly": false,
"required": false,
- "sort": 12,
+ "sort": 14,
"special": null,
"translations": null,
"validation": null,
@@ -12256,7 +12736,7 @@
},
"readonly": false,
"required": false,
- "sort": 11,
+ "sort": 13,
"special": null,
"translations": null,
"validation": null,
@@ -12302,7 +12782,7 @@
},
"readonly": false,
"required": false,
- "sort": 14,
+ "sort": 16,
"special": [
"alias",
"no-data"
@@ -12360,7 +12840,7 @@
"options": null,
"readonly": false,
"required": false,
- "sort": 18,
+ "sort": 20,
"special": [
"alias",
"no-data"
@@ -12461,7 +12941,7 @@
"options": null,
"readonly": false,
"required": false,
- "sort": 13,
+ "sort": 15,
"special": [
"files"
],
@@ -12486,11 +12966,11 @@
"interface": "list-m2m",
"note": null,
"options": {
- "template": "{{member.first_name}} {{member.last_name}}"
+ "template": "{{member.first_name}} {{member.last_name}}"
},
"readonly": false,
"required": false,
- "sort": 15,
+ "sort": 17,
"special": [
"m2m"
],
@@ -12515,11 +12995,11 @@
"interface": "list-m2m",
"note": null,
"options": {
- "template": "{{speaker.first_name}} {{speaker.last_name}}"
+ "template": "{{speaker.first_name}} {{speaker.last_name}}"
},
"readonly": false,
"required": false,
- "sort": 16,
+ "sort": 18,
"special": [
"m2m"
],
@@ -12548,7 +13028,7 @@
},
"readonly": false,
"required": false,
- "sort": 17,
+ "sort": 19,
"special": [
"m2m"
],
@@ -12559,11 +13039,98 @@
}
},
{
- "collection": "member_tags",
+ "collection": "meetups",
+ "field": "intro",
+ "type": "text",
+ "meta": {
+ "collection": "meetups",
+ "conditions": null,
+ "display": null,
+ "display_options": null,
+ "field": "intro",
+ "group": null,
+ "hidden": false,
+ "interface": "input-rich-text-html",
+ "note": null,
+ "options": {
+ "toolbar": [
+ "bold",
+ "italic",
+ "underline",
+ "numlist",
+ "bullist",
+ "removeformat",
+ "blockquote",
+ "customLink",
+ "code",
+ "fullscreen"
+ ]
+ },
+ "readonly": false,
+ "required": false,
+ "sort": 10,
+ "special": null,
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ },
+ "schema": {
+ "name": "intro",
+ "table": "meetups",
+ "data_type": "text",
+ "default_value": null,
+ "max_length": null,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": true,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": null,
+ "foreign_key_column": null
+ }
+ },
+ {
+ "collection": "meetups",
+ "field": "talks",
+ "type": "alias",
+ "meta": {
+ "collection": "meetups",
+ "conditions": null,
+ "display": null,
+ "display_options": {
+ "template": "{{talk.title}}"
+ },
+ "field": "talks",
+ "group": null,
+ "hidden": false,
+ "interface": "list-m2m",
+ "note": null,
+ "options": {
+ "template": "{{talk.title}}"
+ },
+ "readonly": false,
+ "required": false,
+ "sort": 11,
+ "special": [
+ "m2m"
+ ],
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ }
+ },
+ {
+ "collection": "meetups_talks",
"field": "id",
"type": "integer",
"meta": {
- "collection": "member_tags",
+ "collection": "meetups_talks",
"conditions": null,
"display": null,
"display_options": null,
@@ -12575,7 +13142,7 @@
"options": null,
"readonly": false,
"required": false,
- "sort": null,
+ "sort": 1,
"special": null,
"translations": null,
"validation": null,
@@ -12584,9 +13151,9 @@
},
"schema": {
"name": "id",
- "table": "member_tags",
+ "table": "meetups_talks",
"data_type": "integer",
- "default_value": "nextval('member_tags_id_seq'::regclass)",
+ "default_value": "nextval('meetups_talks_id_seq'::regclass)",
"max_length": null,
"numeric_precision": 32,
"numeric_scale": 0,
@@ -12602,15 +13169,15 @@
}
},
{
- "collection": "member_tags",
- "field": "member",
+ "collection": "meetups_talks",
+ "field": "meetup",
"type": "uuid",
"meta": {
- "collection": "member_tags",
+ "collection": "meetups_talks",
"conditions": null,
"display": null,
"display_options": null,
- "field": "member",
+ "field": "meetup",
"group": null,
"hidden": true,
"interface": null,
@@ -12618,7 +13185,7 @@
"options": null,
"readonly": false,
"required": false,
- "sort": null,
+ "sort": 2,
"special": null,
"translations": null,
"validation": null,
@@ -12626,8 +13193,8 @@
"width": "full"
},
"schema": {
- "name": "member",
- "table": "member_tags",
+ "name": "meetup",
+ "table": "meetups_talks",
"data_type": "uuid",
"default_value": null,
"max_length": null,
@@ -12640,20 +13207,20 @@
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
- "foreign_key_table": "members",
+ "foreign_key_table": "meetups",
"foreign_key_column": "id"
}
},
{
- "collection": "member_tags",
- "field": "tag",
+ "collection": "meetups_talks",
+ "field": "talk",
"type": "uuid",
"meta": {
- "collection": "member_tags",
+ "collection": "meetups_talks",
"conditions": null,
"display": null,
"display_options": null,
- "field": "tag",
+ "field": "talk",
"group": null,
"hidden": true,
"interface": null,
@@ -12661,7 +13228,7 @@
"options": null,
"readonly": false,
"required": false,
- "sort": null,
+ "sort": 3,
"special": null,
"translations": null,
"validation": null,
@@ -12669,8 +13236,8 @@
"width": "full"
},
"schema": {
- "name": "tag",
- "table": "member_tags",
+ "name": "talk",
+ "table": "meetups_talks",
"data_type": "uuid",
"default_value": null,
"max_length": null,
@@ -12683,28 +13250,28 @@
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
- "foreign_key_table": "tags",
+ "foreign_key_table": "talks",
"foreign_key_column": "id"
}
},
{
- "collection": "member_tags",
+ "collection": "meetups_talks",
"field": "sort",
"type": "integer",
"meta": {
- "collection": "member_tags",
+ "collection": "meetups_talks",
"conditions": null,
"display": null,
"display_options": null,
"field": "sort",
"group": null,
"hidden": false,
- "interface": null,
+ "interface": "input",
"note": null,
"options": null,
"readonly": false,
"required": false,
- "sort": null,
+ "sort": 4,
"special": null,
"translations": null,
"validation": null,
@@ -12713,7 +13280,7 @@
},
"schema": {
"name": "sort",
- "table": "member_tags",
+ "table": "meetups_talks",
"data_type": "integer",
"default_value": null,
"max_length": null,
@@ -12731,26 +13298,24 @@
}
},
{
- "collection": "members",
+ "collection": "member_tags",
"field": "id",
- "type": "uuid",
+ "type": "integer",
"meta": {
- "collection": "members",
+ "collection": "member_tags",
"conditions": null,
"display": null,
"display_options": null,
"field": "id",
"group": null,
"hidden": true,
- "interface": "input",
+ "interface": null,
"note": null,
"options": null,
- "readonly": true,
+ "readonly": false,
"required": false,
- "sort": 29,
- "special": [
- "uuid"
- ],
+ "sort": null,
+ "special": null,
"translations": null,
"validation": null,
"validation_message": null,
@@ -12758,115 +13323,84 @@
},
"schema": {
"name": "id",
- "table": "members",
- "data_type": "uuid",
- "default_value": null,
+ "table": "member_tags",
+ "data_type": "integer",
+ "default_value": "nextval('member_tags_id_seq'::regclass)",
"max_length": null,
- "numeric_precision": null,
- "numeric_scale": null,
+ "numeric_precision": 32,
+ "numeric_scale": 0,
"is_nullable": false,
"is_unique": true,
"is_indexed": false,
"is_primary_key": true,
"is_generated": false,
"generation_expression": null,
- "has_auto_increment": false,
+ "has_auto_increment": true,
"foreign_key_table": null,
"foreign_key_column": null
}
},
{
- "collection": "members",
- "field": "status",
- "type": "string",
+ "collection": "member_tags",
+ "field": "member",
+ "type": "uuid",
"meta": {
- "collection": "members",
+ "collection": "member_tags",
"conditions": null,
- "display": "labels",
- "display_options": {
- "choices": [
- {
- "background": "#00C897",
- "value": "published"
- },
- {
- "background": "#D3DAE4",
- "value": "draft"
- },
- {
- "background": "#F7971C",
- "value": "archived"
- }
- ],
- "showAsDot": true
- },
- "field": "status",
+ "display": null,
+ "display_options": null,
+ "field": "member",
"group": null,
- "hidden": false,
- "interface": "select-dropdown",
+ "hidden": true,
+ "interface": null,
"note": null,
- "options": {
- "choices": [
- {
- "text": "$t:published",
- "value": "published"
- },
- {
- "text": "$t:draft",
- "value": "draft"
- },
- {
- "text": "$t:archived",
- "value": "archived"
- }
- ]
- },
+ "options": null,
"readonly": false,
"required": false,
- "sort": 3,
+ "sort": null,
"special": null,
"translations": null,
"validation": null,
"validation_message": null,
- "width": "half"
+ "width": "full"
},
"schema": {
- "name": "status",
- "table": "members",
- "data_type": "character varying",
- "default_value": "draft",
- "max_length": 255,
+ "name": "member",
+ "table": "member_tags",
+ "data_type": "uuid",
+ "default_value": null,
+ "max_length": null,
"numeric_precision": null,
"numeric_scale": null,
- "is_nullable": false,
+ "is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
- "foreign_key_table": null,
- "foreign_key_column": null
+ "foreign_key_table": "members",
+ "foreign_key_column": "id"
}
},
{
- "collection": "members",
- "field": "sort",
- "type": "integer",
+ "collection": "member_tags",
+ "field": "tag",
+ "type": "uuid",
"meta": {
- "collection": "members",
+ "collection": "member_tags",
"conditions": null,
"display": null,
"display_options": null,
- "field": "sort",
+ "field": "tag",
"group": null,
- "hidden": false,
- "interface": "input",
+ "hidden": true,
+ "interface": null,
"note": null,
"options": null,
"readonly": false,
"required": false,
- "sort": 5,
+ "sort": null,
"special": null,
"translations": null,
"validation": null,
@@ -12874,9 +13408,214 @@
"width": "full"
},
"schema": {
- "name": "sort",
- "table": "members",
- "data_type": "integer",
+ "name": "tag",
+ "table": "member_tags",
+ "data_type": "uuid",
+ "default_value": null,
+ "max_length": null,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": true,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": "tags",
+ "foreign_key_column": "id"
+ }
+ },
+ {
+ "collection": "member_tags",
+ "field": "sort",
+ "type": "integer",
+ "meta": {
+ "collection": "member_tags",
+ "conditions": null,
+ "display": null,
+ "display_options": null,
+ "field": "sort",
+ "group": null,
+ "hidden": false,
+ "interface": null,
+ "note": null,
+ "options": null,
+ "readonly": false,
+ "required": false,
+ "sort": null,
+ "special": null,
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ },
+ "schema": {
+ "name": "sort",
+ "table": "member_tags",
+ "data_type": "integer",
+ "default_value": null,
+ "max_length": null,
+ "numeric_precision": 32,
+ "numeric_scale": 0,
+ "is_nullable": true,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": null,
+ "foreign_key_column": null
+ }
+ },
+ {
+ "collection": "members",
+ "field": "id",
+ "type": "uuid",
+ "meta": {
+ "collection": "members",
+ "conditions": null,
+ "display": null,
+ "display_options": null,
+ "field": "id",
+ "group": null,
+ "hidden": true,
+ "interface": "input",
+ "note": null,
+ "options": null,
+ "readonly": true,
+ "required": false,
+ "sort": 29,
+ "special": [
+ "uuid"
+ ],
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ },
+ "schema": {
+ "name": "id",
+ "table": "members",
+ "data_type": "uuid",
+ "default_value": null,
+ "max_length": null,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": false,
+ "is_unique": true,
+ "is_indexed": false,
+ "is_primary_key": true,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": null,
+ "foreign_key_column": null
+ }
+ },
+ {
+ "collection": "members",
+ "field": "status",
+ "type": "string",
+ "meta": {
+ "collection": "members",
+ "conditions": null,
+ "display": "labels",
+ "display_options": {
+ "choices": [
+ {
+ "background": "#00C897",
+ "value": "published"
+ },
+ {
+ "background": "#D3DAE4",
+ "value": "draft"
+ },
+ {
+ "background": "#F7971C",
+ "value": "archived"
+ }
+ ],
+ "showAsDot": true
+ },
+ "field": "status",
+ "group": null,
+ "hidden": false,
+ "interface": "select-dropdown",
+ "note": null,
+ "options": {
+ "choices": [
+ {
+ "text": "$t:published",
+ "value": "published"
+ },
+ {
+ "text": "$t:draft",
+ "value": "draft"
+ },
+ {
+ "text": "$t:archived",
+ "value": "archived"
+ }
+ ]
+ },
+ "readonly": false,
+ "required": false,
+ "sort": 3,
+ "special": null,
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "half"
+ },
+ "schema": {
+ "name": "status",
+ "table": "members",
+ "data_type": "character varying",
+ "default_value": "draft",
+ "max_length": 255,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": false,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": null,
+ "foreign_key_column": null
+ }
+ },
+ {
+ "collection": "members",
+ "field": "sort",
+ "type": "integer",
+ "meta": {
+ "collection": "members",
+ "conditions": null,
+ "display": null,
+ "display_options": null,
+ "field": "sort",
+ "group": null,
+ "hidden": false,
+ "interface": "input",
+ "note": null,
+ "options": null,
+ "readonly": false,
+ "required": false,
+ "sort": 5,
+ "special": null,
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ },
+ "schema": {
+ "name": "sort",
+ "table": "members",
+ "data_type": "integer",
"default_value": null,
"max_length": null,
"numeric_precision": 32,
@@ -16216,7 +16955,7 @@
"interface": "select-dropdown-m2o",
"note": null,
"options": {
- "template": "{{first_name}} {{last_name}}"
+ "template": "{{first_name}} {{last_name}}"
},
"readonly": false,
"required": false,
@@ -16263,7 +17002,7 @@
"interface": "select-dropdown-m2o",
"note": null,
"options": {
- "template": "{{first_name}} {{last_name}}"
+ "template": "{{first_name}} {{last_name}}"
},
"readonly": false,
"required": false,
@@ -18310,7 +19049,21 @@
"type": "string",
"meta": {
"collection": "podcasts",
- "conditions": null,
+ "conditions": [
+ {
+ "name": "If published",
+ "required": true,
+ "rule": {
+ "_and": [
+ {
+ "status": {
+ "_eq": "published"
+ }
+ }
+ ]
+ }
+ }
+ ],
"display": null,
"display_options": null,
"field": "slug",
@@ -18465,22 +19218,18 @@
"rule": {
"_and": [
{
- "_and": [
- {
- "status": {
- "_eq": "published"
- }
- },
- {
- "type": {
- "_in": [
- "deep_dive",
- "cto_special",
- "news"
- ]
- }
- }
- ]
+ "status": {
+ "_eq": "published"
+ }
+ },
+ {
+ "type": {
+ "_in": [
+ "deep_dive",
+ "cto_special",
+ "news"
+ ]
+ }
}
]
}
@@ -18787,7 +19536,7 @@
"translations": null,
"validation": null,
"validation_message": null,
- "width": "half"
+ "width": "full"
},
"schema": {
"name": "audio_file",
@@ -18819,7 +19568,7 @@
"display_options": null,
"field": "audio_url",
"group": null,
- "hidden": false,
+ "hidden": true,
"interface": "input",
"note": null,
"options": {
@@ -18879,7 +19628,7 @@
"display_options": null,
"field": "transcript",
"group": null,
- "hidden": false,
+ "hidden": true,
"interface": "input-multiline",
"note": null,
"options": {
@@ -18924,7 +19673,7 @@
"display_options": null,
"field": "apple_url",
"group": null,
- "hidden": false,
+ "hidden": true,
"interface": "input",
"note": null,
"options": {
@@ -18969,7 +19718,7 @@
"display_options": null,
"field": "google_url",
"group": null,
- "hidden": false,
+ "hidden": true,
"interface": "input",
"note": null,
"options": {
@@ -19014,7 +19763,7 @@
"display_options": null,
"field": "spotify_url",
"group": null,
- "hidden": false,
+ "hidden": true,
"interface": "input",
"note": null,
"options": {
@@ -19333,7 +20082,7 @@
"interface": "list-m2m",
"note": null,
"options": {
- "template": "{{member.first_name}} {{member.last_name}}"
+ "template": "{{member.first_name}} {{member.last_name}}"
},
"readonly": false,
"required": false,
@@ -19362,7 +20111,7 @@
"interface": "list-m2m",
"note": null,
"options": {
- "template": "{{speaker.first_name}} {{speaker.last_name}}"
+ "template": "{{speaker.first_name}} {{speaker.last_name}}"
},
"readonly": false,
"required": false,
@@ -21908,13 +22657,519 @@
"display_options": null,
"field": "tags_id",
"group": null,
- "hidden": true,
- "interface": null,
+ "hidden": true,
+ "interface": null,
+ "note": null,
+ "options": null,
+ "readonly": false,
+ "required": false,
+ "sort": 3,
+ "special": null,
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ },
+ "schema": {
+ "name": "tags_id",
+ "table": "profiles_tags",
+ "data_type": "uuid",
+ "default_value": null,
+ "max_length": null,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": true,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": "tags",
+ "foreign_key_column": "id"
+ }
+ },
+ {
+ "collection": "raffle_page",
+ "field": "id",
+ "type": "integer",
+ "meta": {
+ "collection": "raffle_page",
+ "conditions": null,
+ "display": null,
+ "display_options": null,
+ "field": "id",
+ "group": null,
+ "hidden": true,
+ "interface": "input",
+ "note": null,
+ "options": null,
+ "readonly": true,
+ "required": false,
+ "sort": 1,
+ "special": null,
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ },
+ "schema": {
+ "name": "id",
+ "table": "raffle_page",
+ "data_type": "integer",
+ "default_value": "nextval('raffle_page_id_seq'::regclass)",
+ "max_length": null,
+ "numeric_precision": 32,
+ "numeric_scale": 0,
+ "is_nullable": false,
+ "is_unique": true,
+ "is_indexed": false,
+ "is_primary_key": true,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": true,
+ "foreign_key_table": null,
+ "foreign_key_column": null
+ }
+ },
+ {
+ "collection": "raffle_page",
+ "field": "user_created",
+ "type": "uuid",
+ "meta": {
+ "collection": "raffle_page",
+ "conditions": null,
+ "display": "user",
+ "display_options": null,
+ "field": "user_created",
+ "group": null,
+ "hidden": true,
+ "interface": "select-dropdown-m2o",
+ "note": null,
+ "options": {
+ "template": "{{avatar.$thumbnail}} {{first_name}} {{last_name}}"
+ },
+ "readonly": true,
+ "required": false,
+ "sort": 5,
+ "special": [
+ "user-created"
+ ],
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "half"
+ },
+ "schema": {
+ "name": "user_created",
+ "table": "raffle_page",
+ "data_type": "uuid",
+ "default_value": null,
+ "max_length": null,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": true,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": "directus_users",
+ "foreign_key_column": "id"
+ }
+ },
+ {
+ "collection": "raffle_page",
+ "field": "date_created",
+ "type": "timestamp",
+ "meta": {
+ "collection": "raffle_page",
+ "conditions": null,
+ "display": "datetime",
+ "display_options": {
+ "relative": true
+ },
+ "field": "date_created",
+ "group": null,
+ "hidden": true,
+ "interface": "datetime",
+ "note": null,
+ "options": null,
+ "readonly": true,
+ "required": false,
+ "sort": 6,
+ "special": [
+ "date-created"
+ ],
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "half"
+ },
+ "schema": {
+ "name": "date_created",
+ "table": "raffle_page",
+ "data_type": "timestamp with time zone",
+ "default_value": null,
+ "max_length": null,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": true,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": null,
+ "foreign_key_column": null
+ }
+ },
+ {
+ "collection": "raffle_page",
+ "field": "user_updated",
+ "type": "uuid",
+ "meta": {
+ "collection": "raffle_page",
+ "conditions": null,
+ "display": "user",
+ "display_options": null,
+ "field": "user_updated",
+ "group": null,
+ "hidden": true,
+ "interface": "select-dropdown-m2o",
+ "note": null,
+ "options": {
+ "template": "{{avatar.$thumbnail}} {{first_name}} {{last_name}}"
+ },
+ "readonly": true,
+ "required": false,
+ "sort": 7,
+ "special": [
+ "user-updated"
+ ],
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "half"
+ },
+ "schema": {
+ "name": "user_updated",
+ "table": "raffle_page",
+ "data_type": "uuid",
+ "default_value": null,
+ "max_length": null,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": true,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": "directus_users",
+ "foreign_key_column": "id"
+ }
+ },
+ {
+ "collection": "raffle_page",
+ "field": "date_updated",
+ "type": "timestamp",
+ "meta": {
+ "collection": "raffle_page",
+ "conditions": null,
+ "display": "datetime",
+ "display_options": {
+ "relative": true
+ },
+ "field": "date_updated",
+ "group": null,
+ "hidden": true,
+ "interface": "datetime",
+ "note": null,
+ "options": null,
+ "readonly": true,
+ "required": false,
+ "sort": 8,
+ "special": [
+ "date-updated"
+ ],
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "half"
+ },
+ "schema": {
+ "name": "date_updated",
+ "table": "raffle_page",
+ "data_type": "timestamp with time zone",
+ "default_value": null,
+ "max_length": null,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": true,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": null,
+ "foreign_key_column": null
+ }
+ },
+ {
+ "collection": "raffle_page",
+ "field": "heading",
+ "type": "string",
+ "meta": {
+ "collection": "raffle_page",
+ "conditions": null,
+ "display": null,
+ "display_options": null,
+ "field": "heading",
+ "group": null,
+ "hidden": false,
+ "interface": "input",
+ "note": null,
+ "options": null,
+ "readonly": false,
+ "required": true,
+ "sort": 3,
+ "special": null,
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ },
+ "schema": {
+ "name": "heading",
+ "table": "raffle_page",
+ "data_type": "character varying",
+ "default_value": null,
+ "max_length": 255,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": false,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": null,
+ "foreign_key_column": null
+ }
+ },
+ {
+ "collection": "raffle_page",
+ "field": "text",
+ "type": "text",
+ "meta": {
+ "collection": "raffle_page",
+ "conditions": null,
+ "display": null,
+ "display_options": null,
+ "field": "text",
+ "group": null,
+ "hidden": false,
+ "interface": "input-rich-text-html",
+ "note": null,
+ "options": null,
+ "readonly": false,
+ "required": true,
+ "sort": 4,
+ "special": null,
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ },
+ "schema": {
+ "name": "text",
+ "table": "raffle_page",
+ "data_type": "text",
+ "default_value": null,
+ "max_length": null,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": false,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": null,
+ "foreign_key_column": null
+ }
+ },
+ {
+ "collection": "raffle_page",
+ "field": "status",
+ "type": "string",
+ "meta": {
+ "collection": "raffle_page",
+ "conditions": null,
+ "display": null,
+ "display_options": null,
+ "field": "status",
+ "group": null,
+ "hidden": false,
+ "interface": "select-dropdown",
+ "note": null,
+ "options": {
+ "choices": [
+ {
+ "text": "Published",
+ "value": "published"
+ },
+ {
+ "text": "Draft",
+ "value": "draft"
+ },
+ {
+ "text": "Archived",
+ "value": "archived"
+ }
+ ]
+ },
+ "readonly": false,
+ "required": true,
+ "sort": 2,
+ "special": null,
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ },
+ "schema": {
+ "name": "status",
+ "table": "raffle_page",
+ "data_type": "character varying",
+ "default_value": "draft",
+ "max_length": 255,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": true,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": null,
+ "foreign_key_column": null
+ }
+ },
+ {
+ "collection": "ratings",
+ "field": "id",
+ "type": "uuid",
+ "meta": {
+ "collection": "ratings",
+ "conditions": null,
+ "display": null,
+ "display_options": null,
+ "field": "id",
+ "group": null,
+ "hidden": true,
+ "interface": "input",
+ "note": null,
+ "options": null,
+ "readonly": true,
+ "required": false,
+ "sort": 1,
+ "special": [
+ "uuid"
+ ],
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ },
+ "schema": {
+ "name": "id",
+ "table": "ratings",
+ "data_type": "uuid",
+ "default_value": null,
+ "max_length": null,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": false,
+ "is_unique": true,
+ "is_indexed": false,
+ "is_primary_key": true,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": null,
+ "foreign_key_column": null
+ }
+ },
+ {
+ "collection": "ratings",
+ "field": "status",
+ "type": "string",
+ "meta": {
+ "collection": "ratings",
+ "conditions": null,
+ "display": "labels",
+ "display_options": {
+ "choices": [
+ {
+ "background": "var(--theme--primary-background)",
+ "color": "var(--theme--primary)",
+ "foreground": "var(--theme--primary)",
+ "text": "$t:published",
+ "value": "published"
+ },
+ {
+ "background": "var(--theme--background-normal)",
+ "color": "var(--theme--foreground)",
+ "foreground": "var(--theme--foreground)",
+ "text": "$t:draft",
+ "value": "draft"
+ },
+ {
+ "background": "var(--theme--warning-background)",
+ "color": "var(--theme--warning)",
+ "foreground": "var(--theme--warning)",
+ "text": "$t:archived",
+ "value": "archived"
+ }
+ ],
+ "showAsDot": true
+ },
+ "field": "status",
+ "group": null,
+ "hidden": false,
+ "interface": "select-dropdown",
"note": null,
- "options": null,
+ "options": {
+ "choices": [
+ {
+ "color": "var(--theme--primary)",
+ "text": "$t:published",
+ "value": "published"
+ },
+ {
+ "color": "var(--theme--foreground)",
+ "text": "$t:draft",
+ "value": "draft"
+ },
+ {
+ "color": "var(--theme--warning)",
+ "text": "$t:archived",
+ "value": "archived"
+ }
+ ]
+ },
"readonly": false,
"required": false,
- "sort": 3,
+ "sort": 2,
"special": null,
"translations": null,
"validation": null,
@@ -21922,42 +23177,42 @@
"width": "full"
},
"schema": {
- "name": "tags_id",
- "table": "profiles_tags",
- "data_type": "uuid",
- "default_value": null,
- "max_length": null,
+ "name": "status",
+ "table": "ratings",
+ "data_type": "character varying",
+ "default_value": "draft",
+ "max_length": 255,
"numeric_precision": null,
"numeric_scale": null,
- "is_nullable": true,
+ "is_nullable": false,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
- "foreign_key_table": "tags",
- "foreign_key_column": "id"
+ "foreign_key_table": null,
+ "foreign_key_column": null
}
},
{
- "collection": "raffle_page",
- "field": "id",
+ "collection": "ratings",
+ "field": "sort",
"type": "integer",
"meta": {
- "collection": "raffle_page",
+ "collection": "ratings",
"conditions": null,
"display": null,
"display_options": null,
- "field": "id",
+ "field": "sort",
"group": null,
"hidden": true,
"interface": "input",
"note": null,
"options": null,
- "readonly": true,
+ "readonly": false,
"required": false,
- "sort": 1,
+ "sort": 3,
"special": null,
"translations": null,
"validation": null,
@@ -21965,30 +23220,30 @@
"width": "full"
},
"schema": {
- "name": "id",
- "table": "raffle_page",
+ "name": "sort",
+ "table": "ratings",
"data_type": "integer",
- "default_value": "nextval('raffle_page_id_seq'::regclass)",
+ "default_value": null,
"max_length": null,
"numeric_precision": 32,
"numeric_scale": 0,
- "is_nullable": false,
- "is_unique": true,
+ "is_nullable": true,
+ "is_unique": false,
"is_indexed": false,
- "is_primary_key": true,
+ "is_primary_key": false,
"is_generated": false,
"generation_expression": null,
- "has_auto_increment": true,
+ "has_auto_increment": false,
"foreign_key_table": null,
"foreign_key_column": null
}
},
{
- "collection": "raffle_page",
+ "collection": "ratings",
"field": "user_created",
"type": "uuid",
"meta": {
- "collection": "raffle_page",
+ "collection": "ratings",
"conditions": null,
"display": "user",
"display_options": null,
@@ -21998,11 +23253,11 @@
"interface": "select-dropdown-m2o",
"note": null,
"options": {
- "template": "{{avatar.$thumbnail}} {{first_name}} {{last_name}}"
+ "template": "{{avatar}} {{first_name}} {{last_name}}"
},
"readonly": true,
"required": false,
- "sort": 5,
+ "sort": 4,
"special": [
"user-created"
],
@@ -22013,7 +23268,7 @@
},
"schema": {
"name": "user_created",
- "table": "raffle_page",
+ "table": "ratings",
"data_type": "uuid",
"default_value": null,
"max_length": null,
@@ -22031,11 +23286,11 @@
}
},
{
- "collection": "raffle_page",
+ "collection": "ratings",
"field": "date_created",
"type": "timestamp",
"meta": {
- "collection": "raffle_page",
+ "collection": "ratings",
"conditions": null,
"display": "datetime",
"display_options": {
@@ -22049,7 +23304,7 @@
"options": null,
"readonly": true,
"required": false,
- "sort": 6,
+ "sort": 5,
"special": [
"date-created"
],
@@ -22060,7 +23315,7 @@
},
"schema": {
"name": "date_created",
- "table": "raffle_page",
+ "table": "ratings",
"data_type": "timestamp with time zone",
"default_value": null,
"max_length": null,
@@ -22078,11 +23333,11 @@
}
},
{
- "collection": "raffle_page",
+ "collection": "ratings",
"field": "user_updated",
"type": "uuid",
"meta": {
- "collection": "raffle_page",
+ "collection": "ratings",
"conditions": null,
"display": "user",
"display_options": null,
@@ -22092,11 +23347,11 @@
"interface": "select-dropdown-m2o",
"note": null,
"options": {
- "template": "{{avatar.$thumbnail}} {{first_name}} {{last_name}}"
+ "template": "{{avatar}} {{first_name}} {{last_name}}"
},
"readonly": true,
"required": false,
- "sort": 7,
+ "sort": 6,
"special": [
"user-updated"
],
@@ -22107,7 +23362,7 @@
},
"schema": {
"name": "user_updated",
- "table": "raffle_page",
+ "table": "ratings",
"data_type": "uuid",
"default_value": null,
"max_length": null,
@@ -22125,11 +23380,11 @@
}
},
{
- "collection": "raffle_page",
+ "collection": "ratings",
"field": "date_updated",
"type": "timestamp",
"meta": {
- "collection": "raffle_page",
+ "collection": "ratings",
"conditions": null,
"display": "datetime",
"display_options": {
@@ -22143,7 +23398,7 @@
"options": null,
"readonly": true,
"required": false,
- "sort": 8,
+ "sort": 7,
"special": [
"date-updated"
],
@@ -22154,7 +23409,7 @@
},
"schema": {
"name": "date_updated",
- "table": "raffle_page",
+ "table": "ratings",
"data_type": "timestamp with time zone",
"default_value": null,
"max_length": null,
@@ -22172,23 +23427,38 @@
}
},
{
- "collection": "raffle_page",
- "field": "heading",
+ "collection": "ratings",
+ "field": "up_or_down",
"type": "string",
"meta": {
- "collection": "raffle_page",
+ "collection": "ratings",
"conditions": null,
"display": null,
"display_options": null,
- "field": "heading",
+ "field": "up_or_down",
"group": null,
"hidden": false,
- "interface": "input",
+ "interface": "select-dropdown",
"note": null,
- "options": null,
+ "options": {
+ "allowOther": true,
+ "choices": [
+ {
+ "icon": "thumb_up",
+ "text": "Up",
+ "value": "up"
+ },
+ {
+ "icon": "thumb_down",
+ "text": "Down",
+ "value": "down"
+ }
+ ],
+ "icon": "thumbs_up_down"
+ },
"readonly": false,
- "required": true,
- "sort": 3,
+ "required": false,
+ "sort": 8,
"special": null,
"translations": null,
"validation": null,
@@ -22196,14 +23466,14 @@
"width": "full"
},
"schema": {
- "name": "heading",
- "table": "raffle_page",
+ "name": "up_or_down",
+ "table": "ratings",
"data_type": "character varying",
"default_value": null,
"max_length": 255,
"numeric_precision": null,
"numeric_scale": null,
- "is_nullable": false,
+ "is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
@@ -22215,23 +23485,52 @@
}
},
{
- "collection": "raffle_page",
- "field": "text",
- "type": "text",
+ "collection": "ratings",
+ "field": "target",
+ "type": "alias",
"meta": {
- "collection": "raffle_page",
+ "collection": "ratings",
"conditions": null,
"display": null,
"display_options": null,
- "field": "text",
+ "field": "target",
"group": null,
"hidden": false,
- "interface": "input-rich-text-html",
+ "interface": "list-m2a",
"note": null,
- "options": null,
+ "options": {
+ "enableCreate": false
+ },
"readonly": false,
"required": true,
- "sort": 4,
+ "sort": 9,
+ "special": [
+ "m2a"
+ ],
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ }
+ },
+ {
+ "collection": "ratings_target",
+ "field": "id",
+ "type": "integer",
+ "meta": {
+ "collection": "ratings_target",
+ "conditions": null,
+ "display": null,
+ "display_options": null,
+ "field": "id",
+ "group": null,
+ "hidden": true,
+ "interface": null,
+ "note": null,
+ "options": null,
+ "readonly": false,
+ "required": false,
+ "sort": 1,
"special": null,
"translations": null,
"validation": null,
@@ -22239,14 +23538,100 @@
"width": "full"
},
"schema": {
- "name": "text",
- "table": "raffle_page",
- "data_type": "text",
+ "name": "id",
+ "table": "ratings_target",
+ "data_type": "integer",
+ "default_value": "nextval('ratings_target_id_seq'::regclass)",
+ "max_length": null,
+ "numeric_precision": 32,
+ "numeric_scale": 0,
+ "is_nullable": false,
+ "is_unique": true,
+ "is_indexed": false,
+ "is_primary_key": true,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": true,
+ "foreign_key_table": null,
+ "foreign_key_column": null
+ }
+ },
+ {
+ "collection": "ratings_target",
+ "field": "rating",
+ "type": "uuid",
+ "meta": {
+ "collection": "ratings_target",
+ "conditions": null,
+ "display": null,
+ "display_options": null,
+ "field": "rating",
+ "group": null,
+ "hidden": true,
+ "interface": null,
+ "note": null,
+ "options": null,
+ "readonly": false,
+ "required": false,
+ "sort": 2,
+ "special": null,
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ },
+ "schema": {
+ "name": "rating",
+ "table": "ratings_target",
+ "data_type": "uuid",
"default_value": null,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
- "is_nullable": false,
+ "is_nullable": true,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": "ratings",
+ "foreign_key_column": "id"
+ }
+ },
+ {
+ "collection": "ratings_target",
+ "field": "target",
+ "type": "string",
+ "meta": {
+ "collection": "ratings_target",
+ "conditions": null,
+ "display": null,
+ "display_options": null,
+ "field": "target",
+ "group": null,
+ "hidden": true,
+ "interface": null,
+ "note": null,
+ "options": null,
+ "readonly": false,
+ "required": false,
+ "sort": 3,
+ "special": null,
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ },
+ "schema": {
+ "name": "target",
+ "table": "ratings_target",
+ "data_type": "character varying",
+ "default_value": null,
+ "max_length": 255,
+ "numeric_precision": null,
+ "numeric_scale": null,
+ "is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
@@ -22258,38 +23643,23 @@
}
},
{
- "collection": "raffle_page",
- "field": "status",
+ "collection": "ratings_target",
+ "field": "target_collection",
"type": "string",
"meta": {
- "collection": "raffle_page",
+ "collection": "ratings_target",
"conditions": null,
"display": null,
"display_options": null,
- "field": "status",
+ "field": "target_collection",
"group": null,
- "hidden": false,
- "interface": "select-dropdown",
+ "hidden": true,
+ "interface": null,
"note": null,
- "options": {
- "choices": [
- {
- "text": "Published",
- "value": "published"
- },
- {
- "text": "Draft",
- "value": "draft"
- },
- {
- "text": "Archived",
- "value": "archived"
- }
- ]
- },
+ "options": null,
"readonly": false,
- "required": true,
- "sort": 2,
+ "required": false,
+ "sort": 4,
"special": null,
"translations": null,
"validation": null,
@@ -22297,10 +23667,10 @@
"width": "full"
},
"schema": {
- "name": "status",
- "table": "raffle_page",
+ "name": "target_collection",
+ "table": "ratings_target",
"data_type": "character varying",
- "default_value": "draft",
+ "default_value": null,
"max_length": 255,
"numeric_precision": null,
"numeric_scale": null,
@@ -24308,7 +25678,9 @@
"hidden": false,
"interface": "list-m2m",
"note": null,
- "options": null,
+ "options": {
+ "template": "{{talk.title}}"
+ },
"readonly": false,
"required": false,
"sort": 34,
@@ -24989,7 +26361,7 @@
"interface": "list-m2m",
"note": null,
"options": {
- "template": "{{member.first_name}} {{member.last_name}}"
+ "template": "{{member.first_name}} {{member.last_name}}"
},
"readonly": false,
"required": false,
@@ -25105,7 +26477,7 @@
"interface": "list-m2m",
"note": null,
"options": {
- "template": "{{speaker.first_name}} {{speaker.last_name}}"
+ "template": "{{speaker.first_name}} {{speaker.last_name}}"
},
"readonly": false,
"required": false,
@@ -25780,7 +27152,9 @@
"collection": "talks",
"conditions": null,
"display": null,
- "display_options": null,
+ "display_options": {
+ "template": "{{conference.title}} - {{conference.start_on}}"
+ },
"field": "conferences",
"group": null,
"hidden": false,
@@ -25801,6 +27175,37 @@
"width": "full"
}
},
+ {
+ "collection": "talks",
+ "field": "meetups",
+ "type": "alias",
+ "meta": {
+ "collection": "talks",
+ "conditions": null,
+ "display": null,
+ "display_options": {
+ "template": "{{meetup.title}}"
+ },
+ "field": "meetups",
+ "group": null,
+ "hidden": false,
+ "interface": "list-m2m",
+ "note": null,
+ "options": {
+ "template": "{{meetup.title}}"
+ },
+ "readonly": false,
+ "required": false,
+ "sort": 17,
+ "special": [
+ "m2m"
+ ],
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "full"
+ }
+ },
{
"collection": "talks_members",
"field": "id",
@@ -26255,7 +27660,7 @@
"translations": null,
"validation": null,
"validation_message": null,
- "width": "full"
+ "width": "half"
},
"schema": {
"name": "status",
@@ -26293,7 +27698,7 @@
"options": null,
"readonly": false,
"required": false,
- "sort": 3,
+ "sort": 4,
"special": null,
"translations": null,
"validation": null,
@@ -26338,7 +27743,7 @@
},
"readonly": true,
"required": false,
- "sort": 4,
+ "sort": 5,
"special": [
"user-created"
],
@@ -26385,7 +27790,7 @@
"options": null,
"readonly": true,
"required": false,
- "sort": 5,
+ "sort": 6,
"special": [
"date-created"
],
@@ -26432,7 +27837,7 @@
},
"readonly": true,
"required": false,
- "sort": 6,
+ "sort": 7,
"special": [
"user-updated"
],
@@ -26479,7 +27884,7 @@
"options": null,
"readonly": true,
"required": false,
- "sort": 7,
+ "sort": 8,
"special": [
"date-updated"
],
@@ -26534,7 +27939,7 @@
},
"readonly": false,
"required": true,
- "sort": 8,
+ "sort": 9,
"special": null,
"translations": null,
"validation": null,
@@ -26579,7 +27984,7 @@
},
"readonly": false,
"required": false,
- "sort": 9,
+ "sort": 10,
"special": null,
"translations": null,
"validation": null,
@@ -26605,6 +28010,54 @@
"foreign_key_column": null
}
},
+ {
+ "collection": "testimonials",
+ "field": "weight",
+ "type": "integer",
+ "meta": {
+ "collection": "testimonials",
+ "conditions": null,
+ "display": null,
+ "display_options": null,
+ "field": "weight",
+ "group": null,
+ "hidden": false,
+ "interface": "slider",
+ "note": " Higher number = appears more frequently",
+ "options": {
+ "alwaysShowValue": true,
+ "maxValue": 10,
+ "minValue": 1,
+ "stepInterval": 1
+ },
+ "readonly": false,
+ "required": true,
+ "sort": 3,
+ "special": null,
+ "translations": null,
+ "validation": null,
+ "validation_message": null,
+ "width": "half"
+ },
+ "schema": {
+ "name": "weight",
+ "table": "testimonials",
+ "data_type": "integer",
+ "default_value": 5,
+ "max_length": null,
+ "numeric_precision": 32,
+ "numeric_scale": 0,
+ "is_nullable": true,
+ "is_unique": false,
+ "is_indexed": false,
+ "is_primary_key": false,
+ "is_generated": false,
+ "generation_expression": null,
+ "has_auto_increment": false,
+ "foreign_key_table": null,
+ "foreign_key_column": null
+ }
+ },
{
"collection": "transcripts",
"field": "id",
@@ -27417,6 +28870,56 @@
"on_delete": "NO ACTION"
}
},
+ {
+ "collection": "cocktail_menu",
+ "field": "user_updated",
+ "related_collection": "directus_users",
+ "meta": {
+ "junction_field": null,
+ "many_collection": "cocktail_menu",
+ "many_field": "user_updated",
+ "one_allowed_collections": null,
+ "one_collection": "directus_users",
+ "one_collection_field": null,
+ "one_deselect_action": "nullify",
+ "one_field": null,
+ "sort_field": null
+ },
+ "schema": {
+ "table": "cocktail_menu",
+ "column": "user_updated",
+ "foreign_key_table": "directus_users",
+ "foreign_key_column": "id",
+ "constraint_name": "cocktail_menu_user_updated_foreign",
+ "on_update": "NO ACTION",
+ "on_delete": "NO ACTION"
+ }
+ },
+ {
+ "collection": "cocktail_menu",
+ "field": "user_created",
+ "related_collection": "directus_users",
+ "meta": {
+ "junction_field": null,
+ "many_collection": "cocktail_menu",
+ "many_field": "user_created",
+ "one_allowed_collections": null,
+ "one_collection": "directus_users",
+ "one_collection_field": null,
+ "one_deselect_action": "nullify",
+ "one_field": null,
+ "sort_field": null
+ },
+ "schema": {
+ "table": "cocktail_menu",
+ "column": "user_created",
+ "foreign_key_table": "directus_users",
+ "foreign_key_column": "id",
+ "constraint_name": "cocktail_menu_user_created_foreign",
+ "on_update": "NO ACTION",
+ "on_delete": "NO ACTION"
+ }
+ },
{
"collection": "conference_page",
"field": "user_updated",
@@ -28612,6 +30115,56 @@
"on_delete": "SET NULL"
}
},
+ {
+ "collection": "meetups_talks",
+ "field": "talk",
+ "related_collection": "talks",
+ "meta": {
+ "junction_field": "meetup",
+ "many_collection": "meetups_talks",
+ "many_field": "talk",
+ "one_allowed_collections": null,
+ "one_collection": "talks",
+ "one_collection_field": null,
+ "one_deselect_action": "nullify",
+ "one_field": "meetups",
+ "sort_field": null
+ },
+ "schema": {
+ "table": "meetups_talks",
+ "column": "talk",
+ "foreign_key_table": "talks",
+ "foreign_key_column": "id",
+ "constraint_name": "meetups_talks_talk_foreign",
+ "on_update": "NO ACTION",
+ "on_delete": "SET NULL"
+ }
+ },
+ {
+ "collection": "meetups_talks",
+ "field": "meetup",
+ "related_collection": "meetups",
+ "meta": {
+ "junction_field": "talk",
+ "many_collection": "meetups_talks",
+ "many_field": "meetup",
+ "one_allowed_collections": null,
+ "one_collection": "meetups",
+ "one_collection_field": null,
+ "one_deselect_action": "nullify",
+ "one_field": "talks",
+ "sort_field": "sort"
+ },
+ "schema": {
+ "table": "meetups_talks",
+ "column": "meetup",
+ "foreign_key_table": "meetups",
+ "foreign_key_column": "id",
+ "constraint_name": "meetups_talks_meetup_foreign",
+ "on_update": "NO ACTION",
+ "on_delete": "SET NULL"
+ }
+ },
{
"collection": "member_tags",
"field": "tag",
@@ -29737,6 +31290,102 @@
"on_delete": "NO ACTION"
}
},
+ {
+ "collection": "ratings",
+ "field": "user_created",
+ "related_collection": "directus_users",
+ "meta": {
+ "junction_field": null,
+ "many_collection": "ratings",
+ "many_field": "user_created",
+ "one_allowed_collections": null,
+ "one_collection": "directus_users",
+ "one_collection_field": null,
+ "one_deselect_action": "nullify",
+ "one_field": null,
+ "sort_field": null
+ },
+ "schema": {
+ "table": "ratings",
+ "column": "user_created",
+ "foreign_key_table": "directus_users",
+ "foreign_key_column": "id",
+ "constraint_name": "ratings_user_created_foreign",
+ "on_update": "NO ACTION",
+ "on_delete": "NO ACTION"
+ }
+ },
+ {
+ "collection": "ratings",
+ "field": "user_updated",
+ "related_collection": "directus_users",
+ "meta": {
+ "junction_field": null,
+ "many_collection": "ratings",
+ "many_field": "user_updated",
+ "one_allowed_collections": null,
+ "one_collection": "directus_users",
+ "one_collection_field": null,
+ "one_deselect_action": "nullify",
+ "one_field": null,
+ "sort_field": null
+ },
+ "schema": {
+ "table": "ratings",
+ "column": "user_updated",
+ "foreign_key_table": "directus_users",
+ "foreign_key_column": "id",
+ "constraint_name": "ratings_user_updated_foreign",
+ "on_update": "NO ACTION",
+ "on_delete": "NO ACTION"
+ }
+ },
+ {
+ "collection": "ratings_target",
+ "field": "target",
+ "related_collection": null,
+ "meta": {
+ "junction_field": "rating",
+ "many_collection": "ratings_target",
+ "many_field": "target",
+ "one_allowed_collections": [
+ "podcasts",
+ "meetups",
+ "talks",
+ "conferences"
+ ],
+ "one_collection": null,
+ "one_collection_field": "target_collection",
+ "one_deselect_action": "nullify",
+ "one_field": null,
+ "sort_field": null
+ }
+ },
+ {
+ "collection": "ratings_target",
+ "field": "rating",
+ "related_collection": "ratings",
+ "meta": {
+ "junction_field": "target",
+ "many_collection": "ratings_target",
+ "many_field": "rating",
+ "one_allowed_collections": null,
+ "one_collection": "ratings",
+ "one_collection_field": null,
+ "one_deselect_action": "nullify",
+ "one_field": "target",
+ "sort_field": null
+ },
+ "schema": {
+ "table": "ratings_target",
+ "column": "rating",
+ "foreign_key_table": "ratings",
+ "foreign_key_column": "id",
+ "constraint_name": "ratings_target_rating_foreign",
+ "on_update": "NO ACTION",
+ "on_delete": "SET NULL"
+ }
+ },
{
"collection": "recordings_page",
"field": "user_created",
diff --git a/nuxt-app/assets/icons/thumb-down.svg b/nuxt-app/assets/icons/thumb-down.svg
new file mode 100644
index 00000000..907879fc
--- /dev/null
+++ b/nuxt-app/assets/icons/thumb-down.svg
@@ -0,0 +1,3 @@
+
diff --git a/nuxt-app/assets/icons/thumb-up.svg b/nuxt-app/assets/icons/thumb-up.svg
new file mode 100644
index 00000000..e2231dd1
--- /dev/null
+++ b/nuxt-app/assets/icons/thumb-up.svg
@@ -0,0 +1,3 @@
+
diff --git a/nuxt-app/components/PodcastRating.vue b/nuxt-app/components/PodcastRating.vue
new file mode 100644
index 00000000..85f9d2a8
--- /dev/null
+++ b/nuxt-app/components/PodcastRating.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
diff --git a/nuxt-app/composables/useDirectus.ts b/nuxt-app/composables/useDirectus.ts
index 233ef54c..3e071e2f 100644
--- a/nuxt-app/composables/useDirectus.ts
+++ b/nuxt-app/composables/useDirectus.ts
@@ -1,17 +1,17 @@
import {
- aggregate,
- createUser,
- readItems,
- readMe,
- readProviders,
- readSingleton,
- rest,
- type QueryFilter,
-} from '@directus/sdk'
+ aggregate,
+ createUser,
+ readItems,
+ readMe,
+ readProviders,
+ readSingleton,
+ rest,
+ type QueryFilter, createItem,
+} from '@directus/sdk';
import type {
ConferenceItem,
DirectusMemberItem,
- DirectusPickOfTheDayItem,
+ DirectusPickOfTheDayItem, DirectusPodcastItem,
DirectusProfileItem,
DirectusTagItem,
DirectusTranscriptItem,
@@ -840,6 +840,26 @@ export function useDirectus() {
}
}
+ async function createRating(vote: "up" | "down", podcast: DirectusPodcastItem) {
+ try {
+ const result = await directus.request(createItem('ratings', {
+ up_or_down: vote,
+ target: [
+ {
+ target_collection: 'podcasts',
+ target: podcast.id
+ }
+ ],
+ }))
+
+ return result;
+
+ } catch (e: unknown) {
+ console.error('Error while persisting new feedback', e)
+ return e
+ }
+ }
+
return {
getHomepage,
getPodcastPage,
@@ -880,5 +900,6 @@ export function useDirectus() {
registerNewUser,
getProfileById,
getTestimonials,
+ createRating,
}
}
diff --git a/nuxt-app/composables/useFlashMessage.ts b/nuxt-app/composables/useFlashMessage.ts
new file mode 100644
index 00000000..ccfe0e87
--- /dev/null
+++ b/nuxt-app/composables/useFlashMessage.ts
@@ -0,0 +1,35 @@
+export interface FlashMessage {
+ type: "rating"
+ text: string
+ payload: { }
+}
+
+export const useFlashMessage = () => {
+ const flashCookie = useCookie('flash-message');
+ const message = useState('flash-message', () => {
+ const cookieValue = flashCookie.value;
+ // Clear the cookie immediately after reading it so it only shows once
+ if (cookieValue) {
+ flashCookie.value = null;
+ }
+ return cookieValue;
+ });
+
+ const setMessage = (text: string, type: "rating", payload: { } ) => {
+ message.value = {
+ text,
+ type,
+ payload
+ };
+ };
+
+ const clearMessage = () => {
+ message.value = null;
+ };
+
+ return {
+ message,
+ setMessage,
+ clearMessage,
+ };
+};
diff --git a/nuxt-app/pages/podcast/[slug].vue b/nuxt-app/pages/podcast/[slug].vue
index daddaa86..c3664c26 100644
--- a/nuxt-app/pages/podcast/[slug].vue
+++ b/nuxt-app/pages/podcast/[slug].vue
@@ -11,11 +11,13 @@
- Shownotes
+
+
+ Shownotes
diff --git a/nuxt-app/server/middleware/conference.ts b/nuxt-app/server/middleware/conference.ts
index eed85000..0c951607 100644
--- a/nuxt-app/server/middleware/conference.ts
+++ b/nuxt-app/server/middleware/conference.ts
@@ -16,8 +16,6 @@ export default eventHandler(function(event) {
const os = getOS(userAgent);
- console.log(os);
-
if (!hostsToMatch.some(match => requestHost.startsWith(match))) {
return;
}
diff --git a/nuxt-app/server/middleware/discord.ts b/nuxt-app/server/middleware/discord.ts
index 3af6437f..766cdf89 100644
--- a/nuxt-app/server/middleware/discord.ts
+++ b/nuxt-app/server/middleware/discord.ts
@@ -6,8 +6,6 @@ export default eventHandler(function(event) {
const requestHost = event.headers.get('host') || '';
const requestPath = event.path;
- console.log(requestPath);
-
if (!requestHost.startsWith(hostToMatch) && !(requestPath === pathToMatch)) {
return;
}
diff --git a/nuxt-app/server/middleware/rating.ts b/nuxt-app/server/middleware/rating.ts
new file mode 100644
index 00000000..663465c3
--- /dev/null
+++ b/nuxt-app/server/middleware/rating.ts
@@ -0,0 +1,67 @@
+import { useDirectus } from '~/composables/useDirectus'
+
+export default eventHandler(async function(event) {
+ const requestPath = event.path;
+ if (!requestPath.startsWith('/podcast/')) {
+ return;
+ }
+
+ // Path pattern "/podcast/[slug]/[up|down]"
+ const regex = /^\/podcast\/([^/]+)\/(up|down)$/;
+ const match = requestPath.match(regex);
+ if (!match) {
+ return;
+ }
+
+ let slug = match[1];
+ let voteString = match[2];
+
+ // Type narrowing: the regex already validated this is "up" or "down"
+ // We use a type guard to make TypeScript aware of this
+ if (voteString !== 'up' && voteString !== 'down') {
+ // This should never happen due to regex validation, but satisfies TypeScript
+ throw createError({ statusCode: 400, message: 'Invalid vote value' });
+ }
+ const vote = voteString;
+
+ const directus = useDirectus();
+
+ let podcast = await directus.getPodcastBySlug(slug);
+
+ if (!podcast) {
+ throw createError({ statusCode: 404, message: 'Podcast not found' });
+ }
+
+ try {
+ await directus.createRating(vote, podcast);
+
+ // Set flash message cookie on success
+ setCookie(event, 'flash-message', JSON.stringify({
+ text: 'Vielen Dank für dein Feedback!',
+ type: 'rating',
+ payload: {}
+ }), {
+ maxAge: 60, // 60 seconds
+ path: '/'
+ });
+ } catch (error) {
+ // Log the error and set an error flash message
+ console.error('Failed to create rating for podcast', podcast.slug, error);
+ setCookie(event, 'flash-message', JSON.stringify({
+ text: 'Dein Feedback konnte leider nicht gespeichert werden. Bitte versuche es später erneut.',
+ type: 'rating-error',
+ payload: {}
+ }), {
+ maxAge: 60, // 60 seconds
+ path: '/'
+ });
+ }
+
+ // Set the response status and location header for redirection
+ // And end the response to complete the redirection
+ event.node.res.writeHead(302, {
+ Location: '/podcast/' + podcast.slug,
+ });
+
+ event.node.res.end();
+});
diff --git a/nuxt-app/services/directus.ts b/nuxt-app/services/directus.ts
index 41f77995..3833dc8a 100644
--- a/nuxt-app/services/directus.ts
+++ b/nuxt-app/services/directus.ts
@@ -24,7 +24,7 @@ import type {
DirectusSpeakerItem,
DirectusTagItem,
DirectusProfileItem,
- DirectusTranscriptItem, DirectusTestimonialItem, DirectusCocktailMenu,
+ DirectusTranscriptItem, DirectusTestimonialItem, DirectusCocktailMenu, DirectusRatingItem,
} from '../types';
export type Collections = {
@@ -51,6 +51,7 @@ export type Collections = {
speakers: DirectusSpeakerItem[]
picks_of_the_day: DirectusPickOfTheDayItem[]
profiles: DirectusProfileItem[],
+ ratings: DirectusRatingItem[],
tags: DirectusTagItem[]
testimonials: DirectusTestimonialItem[]
transcripts: DirectusTranscriptItem[]
diff --git a/nuxt-app/types/directus.ts b/nuxt-app/types/directus.ts
index 2358d6a3..88c75003 100644
--- a/nuxt-app/types/directus.ts
+++ b/nuxt-app/types/directus.ts
@@ -264,6 +264,16 @@ export interface DirectusPickOfTheDayItem {
)[]
}
+export interface DirectusRatingItem {
+ id: string
+ update_token: string
+ target: {
+ target_collection: string,
+ target: string
+ }[],
+ up_or_down: 'up' | 'down'
+}
+
export interface DirectusTagItem {
id: string
name: string