From f22f7cf23e3a53966905b2092032d50691f1d414 Mon Sep 17 00:00:00 2001 From: Burcu Noyan Date: Tue, 24 Dec 2024 09:49:31 -0500 Subject: [PATCH 1/3] Fix border and add categories (#1978) * display boundaries on cards-grid * remove most catalog-entries * add categories --- .../experiments-realm/components/grid.gts | 4 +-- .../seed-realm/BlogCategory/city-design.json | 28 +++++++++++++++++++ .../BlogCategory/cultural-scenes.json | 28 +++++++++++++++++++ .../seed-realm/BlogCategory/future-tech.json | 28 +++++++++++++++++++ .../seed-realm/BlogCategory/street-life.json | 28 +++++++++++++++++++ .../seed-realm/BlogCategory/urban-work.json | 28 +++++++++++++++++++ .../727d4f9a-3bee-4cd6-a34b-beea673b3229.json | 9 ++++-- .../84a3e57f-9057-4302-b841-43f8b6814ab7.json | 4 +-- .../84ebb780-67dd-4e7e-a7c2-8fe817aade35.json | 4 +-- .../a8b044b3-48ad-40e4-bc2d-43021b8e313f.json | 9 ++++-- .../BlogPost/ultimate-guide-remote-work.json | 4 +-- .../urban-living-future-sustainable.json | 9 ++++-- packages/seed-realm/CatalogEntry/author.json | 20 ------------- .../CatalogEntry/blog-category.json | 20 ------------- .../seed-realm/CatalogEntry/blog-post.json | 20 ------------- packages/seed-realm/CatalogEntry/blog.json | 2 +- .../fields/contact-link-field.json | 19 ------------- .../CatalogEntry/fields/email-field.json | 20 ------------- .../fields/featured-image-field.json | 19 ------------- .../CatalogEntry/fields/rating-field.json | 19 ------------- .../CatalogEntry/fields/url-field.json | 20 ------------- packages/seed-realm/CatalogEntry/review.json | 20 ------------- packages/seed-realm/CatalogEntry/user.json | 20 ------------- packages/seed-realm/components/grid.gts | 4 +-- 24 files changed, 172 insertions(+), 214 deletions(-) create mode 100644 packages/seed-realm/BlogCategory/city-design.json create mode 100644 packages/seed-realm/BlogCategory/cultural-scenes.json create mode 100644 packages/seed-realm/BlogCategory/future-tech.json create mode 100644 packages/seed-realm/BlogCategory/street-life.json create mode 100644 packages/seed-realm/BlogCategory/urban-work.json delete mode 100644 packages/seed-realm/CatalogEntry/author.json delete mode 100644 packages/seed-realm/CatalogEntry/blog-category.json delete mode 100644 packages/seed-realm/CatalogEntry/blog-post.json delete mode 100644 packages/seed-realm/CatalogEntry/fields/contact-link-field.json delete mode 100644 packages/seed-realm/CatalogEntry/fields/email-field.json delete mode 100644 packages/seed-realm/CatalogEntry/fields/featured-image-field.json delete mode 100644 packages/seed-realm/CatalogEntry/fields/rating-field.json delete mode 100644 packages/seed-realm/CatalogEntry/fields/url-field.json delete mode 100644 packages/seed-realm/CatalogEntry/review.json delete mode 100644 packages/seed-realm/CatalogEntry/user.json diff --git a/packages/experiments-realm/components/grid.gts b/packages/experiments-realm/components/grid.gts index 83d38b4169..18319f3b9e 100644 --- a/packages/experiments-realm/components/grid.gts +++ b/packages/experiments-realm/components/grid.gts @@ -5,7 +5,7 @@ import { Format, type CardContext } from 'https://cardstack.com/base/card-api'; import { type Query } from '@cardstack/runtime-common'; import { CardContainer } from '@cardstack/boxel-ui/components'; -import { eq, not } from '@cardstack/boxel-ui/helpers'; +import { eq } from '@cardstack/boxel-ui/helpers'; export type ViewOption = 'card' | 'strip' | 'grid'; @@ -57,7 +57,7 @@ export class CardsGrid extends GlimmerComponent { fieldName=undefined }} class='card' - @displayBoundaries={{not (eq @selectedView 'card')}} + @displayBoundaries={{true}} > diff --git a/packages/seed-realm/BlogCategory/city-design.json b/packages/seed-realm/BlogCategory/city-design.json new file mode 100644 index 0000000000..af64fb9b57 --- /dev/null +++ b/packages/seed-realm/BlogCategory/city-design.json @@ -0,0 +1,28 @@ +{ + "data": { + "type": "card", + "attributes": { + "longName": "City Design", + "shortName": "Design", + "slug": "city-design", + "backgroundColor": "#ac00ff", + "textColor": "#fff", + "description": "Showcasing architecture and urban planning brilliance.", + "title": "City Design", + "thumbnailURL": null + }, + "relationships": { + "blog": { + "links": { + "self": "../BlogApp/ramped" + } + } + }, + "meta": { + "adoptsFrom": { + "module": "../blog-category", + "name": "BlogCategory" + } + } + } +} \ No newline at end of file diff --git a/packages/seed-realm/BlogCategory/cultural-scenes.json b/packages/seed-realm/BlogCategory/cultural-scenes.json new file mode 100644 index 0000000000..67f0f21ea6 --- /dev/null +++ b/packages/seed-realm/BlogCategory/cultural-scenes.json @@ -0,0 +1,28 @@ +{ + "data": { + "type": "card", + "attributes": { + "longName": "Cultural Scenes", + "shortName": "Culture", + "slug": "cultural-scenes", + "backgroundColor": "#c3fc33", + "textColor": null, + "description": "Capturing the vibrant art, food, and music of cities.", + "title": "Cultural Scenes", + "thumbnailURL": null + }, + "relationships": { + "blog": { + "links": { + "self": "../BlogApp/ramped" + } + } + }, + "meta": { + "adoptsFrom": { + "module": "../blog-category", + "name": "BlogCategory" + } + } + } +} \ No newline at end of file diff --git a/packages/seed-realm/BlogCategory/future-tech.json b/packages/seed-realm/BlogCategory/future-tech.json new file mode 100644 index 0000000000..fe5d69a7c1 --- /dev/null +++ b/packages/seed-realm/BlogCategory/future-tech.json @@ -0,0 +1,28 @@ +{ + "data": { + "type": "card", + "attributes": { + "longName": "Future Tech", + "shortName": "Tech", + "slug": "future-tech", + "backgroundColor": "#00ac3d", + "textColor": "#fff", + "description": "Highlighting technology shaping tomorrow’s cities.", + "title": "Future Tech", + "thumbnailURL": null + }, + "relationships": { + "blog": { + "links": { + "self": "../BlogApp/ramped" + } + } + }, + "meta": { + "adoptsFrom": { + "module": "../blog-category", + "name": "BlogCategory" + } + } + } +} \ No newline at end of file diff --git a/packages/seed-realm/BlogCategory/street-life.json b/packages/seed-realm/BlogCategory/street-life.json new file mode 100644 index 0000000000..b6f3b73836 --- /dev/null +++ b/packages/seed-realm/BlogCategory/street-life.json @@ -0,0 +1,28 @@ +{ + "data": { + "type": "card", + "attributes": { + "longName": "Street Life", + "shortName": "Streets", + "slug": "street-life", + "backgroundColor": "#281e78", + "textColor": "#fff", + "description": "Discovering the stories of streets and public spaces.", + "title": "Street Life", + "thumbnailURL": null + }, + "relationships": { + "blog": { + "links": { + "self": "../BlogApp/ramped" + } + } + }, + "meta": { + "adoptsFrom": { + "module": "../blog-category", + "name": "BlogCategory" + } + } + } +} \ No newline at end of file diff --git a/packages/seed-realm/BlogCategory/urban-work.json b/packages/seed-realm/BlogCategory/urban-work.json new file mode 100644 index 0000000000..b4ffb0c6bf --- /dev/null +++ b/packages/seed-realm/BlogCategory/urban-work.json @@ -0,0 +1,28 @@ +{ + "data": { + "type": "card", + "attributes": { + "longName": "Urban Work", + "shortName": "Work", + "slug": "urban-work", + "backgroundColor": "#ff7f00", + "textColor": "#fff", + "description": "Exploring work trends in the evolving city landscape.", + "title": "Work", + "thumbnailURL": null + }, + "relationships": { + "blog": { + "links": { + "self": "../BlogApp/ramped" + } + } + }, + "meta": { + "adoptsFrom": { + "module": "../blog-category", + "name": "BlogCategory" + } + } + } +} diff --git a/packages/seed-realm/BlogPost/727d4f9a-3bee-4cd6-a34b-beea673b3229.json b/packages/seed-realm/BlogPost/727d4f9a-3bee-4cd6-a34b-beea673b3229.json index 79228afb7e..15a1579602 100644 --- a/packages/seed-realm/BlogPost/727d4f9a-3bee-4cd6-a34b-beea673b3229.json +++ b/packages/seed-realm/BlogPost/727d4f9a-3bee-4cd6-a34b-beea673b3229.json @@ -29,9 +29,14 @@ "self": "../BlogApp/ramped" } }, - "categories": { + "categories.0": { "links": { - "self": null + "self": "../BlogCategory/street-life" + } + }, + "categories.1": { + "links": { + "self": "../BlogCategory/cultural-scenes" } }, "editors": { diff --git a/packages/seed-realm/BlogPost/84a3e57f-9057-4302-b841-43f8b6814ab7.json b/packages/seed-realm/BlogPost/84a3e57f-9057-4302-b841-43f8b6814ab7.json index 5844a543f3..4bcae7e6f2 100644 --- a/packages/seed-realm/BlogPost/84a3e57f-9057-4302-b841-43f8b6814ab7.json +++ b/packages/seed-realm/BlogPost/84a3e57f-9057-4302-b841-43f8b6814ab7.json @@ -29,9 +29,9 @@ "self": "../BlogApp/ramped" } }, - "categories": { + "categories.0": { "links": { - "self": null + "self": "../BlogCategory/city-design" } }, "editors": { diff --git a/packages/seed-realm/BlogPost/84ebb780-67dd-4e7e-a7c2-8fe817aade35.json b/packages/seed-realm/BlogPost/84ebb780-67dd-4e7e-a7c2-8fe817aade35.json index df479cdcb9..1408c65074 100644 --- a/packages/seed-realm/BlogPost/84ebb780-67dd-4e7e-a7c2-8fe817aade35.json +++ b/packages/seed-realm/BlogPost/84ebb780-67dd-4e7e-a7c2-8fe817aade35.json @@ -29,9 +29,9 @@ "self": "../BlogApp/ramped" } }, - "categories": { + "categories.0": { "links": { - "self": null + "self": "../BlogCategory/cultural-scenes" } }, "editors": { diff --git a/packages/seed-realm/BlogPost/a8b044b3-48ad-40e4-bc2d-43021b8e313f.json b/packages/seed-realm/BlogPost/a8b044b3-48ad-40e4-bc2d-43021b8e313f.json index 7181bb1c1f..acf62c5b18 100644 --- a/packages/seed-realm/BlogPost/a8b044b3-48ad-40e4-bc2d-43021b8e313f.json +++ b/packages/seed-realm/BlogPost/a8b044b3-48ad-40e4-bc2d-43021b8e313f.json @@ -29,9 +29,14 @@ "self": "../BlogApp/ramped" } }, - "categories": { + "categories.0": { "links": { - "self": null + "self": "../BlogCategory/future-tech" + } + }, + "categories.1": { + "links": { + "self": "../BlogCategory/city-design" } }, "editors": { diff --git a/packages/seed-realm/BlogPost/ultimate-guide-remote-work.json b/packages/seed-realm/BlogPost/ultimate-guide-remote-work.json index 41f390d70f..4bb331532c 100644 --- a/packages/seed-realm/BlogPost/ultimate-guide-remote-work.json +++ b/packages/seed-realm/BlogPost/ultimate-guide-remote-work.json @@ -29,9 +29,9 @@ "self": "../BlogApp/ramped" } }, - "categories": { + "categories.0": { "links": { - "self": null + "self": "../BlogCategory/urban-work" } }, "editors": { diff --git a/packages/seed-realm/BlogPost/urban-living-future-sustainable.json b/packages/seed-realm/BlogPost/urban-living-future-sustainable.json index 1ca55cb519..92d5775a57 100644 --- a/packages/seed-realm/BlogPost/urban-living-future-sustainable.json +++ b/packages/seed-realm/BlogPost/urban-living-future-sustainable.json @@ -29,9 +29,14 @@ "self": "../BlogApp/ramped" } }, - "categories": { + "categories.0": { "links": { - "self": null + "self": "../BlogCategory/city-design" + } + }, + "categories.1": { + "links": { + "self": "../BlogCategory/future-tech" } }, "editors": { diff --git a/packages/seed-realm/CatalogEntry/author.json b/packages/seed-realm/CatalogEntry/author.json deleted file mode 100644 index b1b870bd29..0000000000 --- a/packages/seed-realm/CatalogEntry/author.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "data": { - "type": "card", - "attributes": { - "title": "Author", - "description": "Catalog entry for Author", - "ref": { - "name": "Author", - "module": "../author" - }, - "isField": false - }, - "meta": { - "adoptsFrom": { - "module": "https://cardstack.com/base/catalog-entry", - "name": "CatalogEntry" - } - } - } -} diff --git a/packages/seed-realm/CatalogEntry/blog-category.json b/packages/seed-realm/CatalogEntry/blog-category.json deleted file mode 100644 index 356862c3e4..0000000000 --- a/packages/seed-realm/CatalogEntry/blog-category.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "data": { - "type": "card", - "attributes": { - "title": "Blog Category", - "description": "Catalog entry for Blog Category", - "isField": false, - "ref": { - "module": "../blog-category", - "name": "BlogCategory" - } - }, - "meta": { - "adoptsFrom": { - "module": "https://cardstack.com/base/catalog-entry", - "name": "CatalogEntry" - } - } - } -} diff --git a/packages/seed-realm/CatalogEntry/blog-post.json b/packages/seed-realm/CatalogEntry/blog-post.json deleted file mode 100644 index d4de03377f..0000000000 --- a/packages/seed-realm/CatalogEntry/blog-post.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "data": { - "type": "card", - "attributes": { - "title": "BlogPost", - "description": "Catalog entry for BlogPost", - "isField": false, - "ref": { - "module": "../blog-post", - "name": "BlogPost" - } - }, - "meta": { - "adoptsFrom": { - "module": "https://cardstack.com/base/catalog-entry", - "name": "CatalogEntry" - } - } - } -} diff --git a/packages/seed-realm/CatalogEntry/blog.json b/packages/seed-realm/CatalogEntry/blog.json index aa38b046a9..74bfeaac3e 100644 --- a/packages/seed-realm/CatalogEntry/blog.json +++ b/packages/seed-realm/CatalogEntry/blog.json @@ -2,7 +2,7 @@ "data": { "type": "card", "attributes": { - "title": "Blog", + "title": "Blog App", "description": "Catalog entry for Blog App card", "isField": false, "ref": { diff --git a/packages/seed-realm/CatalogEntry/fields/contact-link-field.json b/packages/seed-realm/CatalogEntry/fields/contact-link-field.json deleted file mode 100644 index de6694c452..0000000000 --- a/packages/seed-realm/CatalogEntry/fields/contact-link-field.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "data": { - "type": "card", - "attributes": { - "title": "Contact Link Field", - "isField": true, - "ref": { - "module": "../../fields/contact-link", - "name": "ContactLinkField" - } - }, - "meta": { - "adoptsFrom": { - "module": "https://cardstack.com/base/catalog-entry", - "name": "CatalogEntry" - } - } - } -} diff --git a/packages/seed-realm/CatalogEntry/fields/email-field.json b/packages/seed-realm/CatalogEntry/fields/email-field.json deleted file mode 100644 index 169705f38c..0000000000 --- a/packages/seed-realm/CatalogEntry/fields/email-field.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "data": { - "type": "card", - "attributes": { - "title": "Email Field", - "description": "Email string field", - "isField": true, - "ref": { - "module": "../../fields/email", - "name": "EmailField" - } - }, - "meta": { - "adoptsFrom": { - "module": "https://cardstack.com/base/catalog-entry", - "name": "CatalogEntry" - } - } - } -} diff --git a/packages/seed-realm/CatalogEntry/fields/featured-image-field.json b/packages/seed-realm/CatalogEntry/fields/featured-image-field.json deleted file mode 100644 index 33a8ef0aed..0000000000 --- a/packages/seed-realm/CatalogEntry/fields/featured-image-field.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "data": { - "type": "card", - "attributes": { - "title": "Featured Image Field", - "isField": true, - "ref": { - "module": "../../fields/featured-image", - "name": "FeaturedImageField" - } - }, - "meta": { - "adoptsFrom": { - "module": "https://cardstack.com/base/catalog-entry", - "name": "CatalogEntry" - } - } - } -} diff --git a/packages/seed-realm/CatalogEntry/fields/rating-field.json b/packages/seed-realm/CatalogEntry/fields/rating-field.json deleted file mode 100644 index 2484c1a523..0000000000 --- a/packages/seed-realm/CatalogEntry/fields/rating-field.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "data": { - "type": "card", - "attributes": { - "title": "Rating Summary Field", - "isField": true, - "ref": { - "module": "../../ratings-summary", - "name": "RatingsSummary" - } - }, - "meta": { - "adoptsFrom": { - "module": "https://cardstack.com/base/catalog-entry", - "name": "CatalogEntry" - } - } - } -} diff --git a/packages/seed-realm/CatalogEntry/fields/url-field.json b/packages/seed-realm/CatalogEntry/fields/url-field.json deleted file mode 100644 index 7b27086149..0000000000 --- a/packages/seed-realm/CatalogEntry/fields/url-field.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "data": { - "type": "card", - "attributes": { - "title": "Url Field", - "description": "Url string field with basic validation", - "isField": true, - "ref": { - "module": "../../fields/url", - "name": "UrlField" - } - }, - "meta": { - "adoptsFrom": { - "module": "https://cardstack.com/base/catalog-entry", - "name": "CatalogEntry" - } - } - } -} diff --git a/packages/seed-realm/CatalogEntry/review.json b/packages/seed-realm/CatalogEntry/review.json deleted file mode 100644 index 757e8d548e..0000000000 --- a/packages/seed-realm/CatalogEntry/review.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "data": { - "type": "card", - "attributes": { - "title": "Review", - "description": "Catalog entry for Review", - "isField": false, - "ref": { - "module": "../review", - "name": "Review" - } - }, - "meta": { - "adoptsFrom": { - "module": "https://cardstack.com/base/catalog-entry", - "name": "CatalogEntry" - } - } - } -} diff --git a/packages/seed-realm/CatalogEntry/user.json b/packages/seed-realm/CatalogEntry/user.json deleted file mode 100644 index 4898a9e084..0000000000 --- a/packages/seed-realm/CatalogEntry/user.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "data": { - "type": "card", - "attributes": { - "title": "User", - "description": "Catalog entry for User", - "ref": { - "name": "User", - "module": "../user" - }, - "isField": false - }, - "meta": { - "adoptsFrom": { - "module": "https://cardstack.com/base/catalog-entry", - "name": "CatalogEntry" - } - } - } -} diff --git a/packages/seed-realm/components/grid.gts b/packages/seed-realm/components/grid.gts index 83d38b4169..18319f3b9e 100644 --- a/packages/seed-realm/components/grid.gts +++ b/packages/seed-realm/components/grid.gts @@ -5,7 +5,7 @@ import { Format, type CardContext } from 'https://cardstack.com/base/card-api'; import { type Query } from '@cardstack/runtime-common'; import { CardContainer } from '@cardstack/boxel-ui/components'; -import { eq, not } from '@cardstack/boxel-ui/helpers'; +import { eq } from '@cardstack/boxel-ui/helpers'; export type ViewOption = 'card' | 'strip' | 'grid'; @@ -57,7 +57,7 @@ export class CardsGrid extends GlimmerComponent { fieldName=undefined }} class='card' - @displayBoundaries={{not (eq @selectedView 'card')}} + @displayBoundaries={{true}} > From 175a4d134ea96ca5f2a33de3318f809bf23a74d2 Mon Sep 17 00:00:00 2001 From: tintinthong Date: Tue, 24 Dec 2024 18:16:10 +0100 Subject: [PATCH 2/3] add missing catalog entries for seed realm (#1981) --- .../seed-realm/CatalogEntry/hello-world.json | 20 +++++++++++++++++++ .../CatalogEntry/mortgage-calculator.json | 20 +++++++++++++++++++ .../seed-realm/CatalogEntry/product-list.json | 20 +++++++++++++++++++ .../CatalogEntry/product-with-video.json | 20 +++++++++++++++++++ packages/seed-realm/CatalogEntry/product.json | 20 +++++++++++++++++++ .../seed-realm/CatalogEntry/review-blog.json | 20 +++++++++++++++++++ packages/seed-realm/CatalogEntry/review.json | 20 +++++++++++++++++++ packages/seed-realm/CatalogEntry/seller.json | 20 +++++++++++++++++++ packages/seed-realm/CatalogEntry/skill.json | 20 +++++++++++++++++++ .../CatalogEntry/video-product.json | 20 +++++++++++++++++++ 10 files changed, 200 insertions(+) create mode 100644 packages/seed-realm/CatalogEntry/hello-world.json create mode 100644 packages/seed-realm/CatalogEntry/mortgage-calculator.json create mode 100644 packages/seed-realm/CatalogEntry/product-list.json create mode 100644 packages/seed-realm/CatalogEntry/product-with-video.json create mode 100644 packages/seed-realm/CatalogEntry/product.json create mode 100644 packages/seed-realm/CatalogEntry/review-blog.json create mode 100644 packages/seed-realm/CatalogEntry/review.json create mode 100644 packages/seed-realm/CatalogEntry/seller.json create mode 100644 packages/seed-realm/CatalogEntry/skill.json create mode 100644 packages/seed-realm/CatalogEntry/video-product.json diff --git a/packages/seed-realm/CatalogEntry/hello-world.json b/packages/seed-realm/CatalogEntry/hello-world.json new file mode 100644 index 0000000000..dc95c9c26f --- /dev/null +++ b/packages/seed-realm/CatalogEntry/hello-world.json @@ -0,0 +1,20 @@ +{ + "data": { + "type": "card", + "attributes": { + "title": "Hello World", + "description": "Catalog entry for Hello World card", + "isField": false, + "ref": { + "module": "../hello-world", + "name": "HelloWorld" + } + }, + "meta": { + "adoptsFrom": { + "module": "https://cardstack.com/base/catalog-entry", + "name": "CatalogEntry" + } + } + } +} diff --git a/packages/seed-realm/CatalogEntry/mortgage-calculator.json b/packages/seed-realm/CatalogEntry/mortgage-calculator.json new file mode 100644 index 0000000000..37742a1b12 --- /dev/null +++ b/packages/seed-realm/CatalogEntry/mortgage-calculator.json @@ -0,0 +1,20 @@ +{ + "data": { + "type": "card", + "attributes": { + "title": "Mortgage Calculator", + "description": "Catalog entry for Mortgage Calculator card", + "isField": false, + "ref": { + "module": "../mortgage-calculator", + "name": "MortgageCalculator" + } + }, + "meta": { + "adoptsFrom": { + "module": "https://cardstack.com/base/catalog-entry", + "name": "CatalogEntry" + } + } + } +} diff --git a/packages/seed-realm/CatalogEntry/product-list.json b/packages/seed-realm/CatalogEntry/product-list.json new file mode 100644 index 0000000000..a638a145e3 --- /dev/null +++ b/packages/seed-realm/CatalogEntry/product-list.json @@ -0,0 +1,20 @@ +{ + "data": { + "type": "card", + "attributes": { + "title": "Product List", + "description": "Catalog entry for Product List card", + "isField": false, + "ref": { + "module": "../product-list", + "name": "ProductList" + } + }, + "meta": { + "adoptsFrom": { + "module": "https://cardstack.com/base/catalog-entry", + "name": "CatalogEntry" + } + } + } +} diff --git a/packages/seed-realm/CatalogEntry/product-with-video.json b/packages/seed-realm/CatalogEntry/product-with-video.json new file mode 100644 index 0000000000..f0e8b75637 --- /dev/null +++ b/packages/seed-realm/CatalogEntry/product-with-video.json @@ -0,0 +1,20 @@ +{ + "data": { + "type": "card", + "attributes": { + "title": "Product with Video", + "description": "Catalog entry for Product with Video card", + "isField": false, + "ref": { + "module": "../product-with-video", + "name": "ProductWithVideo" + } + }, + "meta": { + "adoptsFrom": { + "module": "https://cardstack.com/base/catalog-entry", + "name": "CatalogEntry" + } + } + } +} diff --git a/packages/seed-realm/CatalogEntry/product.json b/packages/seed-realm/CatalogEntry/product.json new file mode 100644 index 0000000000..e248963649 --- /dev/null +++ b/packages/seed-realm/CatalogEntry/product.json @@ -0,0 +1,20 @@ +{ + "data": { + "type": "card", + "attributes": { + "title": "Product", + "description": "Catalog entry for Product card", + "isField": false, + "ref": { + "module": "../product", + "name": "Product" + } + }, + "meta": { + "adoptsFrom": { + "module": "https://cardstack.com/base/catalog-entry", + "name": "CatalogEntry" + } + } + } +} diff --git a/packages/seed-realm/CatalogEntry/review-blog.json b/packages/seed-realm/CatalogEntry/review-blog.json new file mode 100644 index 0000000000..0fa3f44b1d --- /dev/null +++ b/packages/seed-realm/CatalogEntry/review-blog.json @@ -0,0 +1,20 @@ +{ + "data": { + "type": "card", + "attributes": { + "title": "Review Blog", + "description": "Catalog entry for Review Blog card", + "isField": false, + "ref": { + "module": "../review-blog", + "name": "ReviewBlog" + } + }, + "meta": { + "adoptsFrom": { + "module": "https://cardstack.com/base/catalog-entry", + "name": "CatalogEntry" + } + } + } +} diff --git a/packages/seed-realm/CatalogEntry/review.json b/packages/seed-realm/CatalogEntry/review.json new file mode 100644 index 0000000000..e42b7ef8cb --- /dev/null +++ b/packages/seed-realm/CatalogEntry/review.json @@ -0,0 +1,20 @@ +{ + "data": { + "type": "card", + "attributes": { + "title": "Review", + "description": "Catalog entry for Review card", + "isField": false, + "ref": { + "module": "../review", + "name": "Review" + } + }, + "meta": { + "adoptsFrom": { + "module": "https://cardstack.com/base/catalog-entry", + "name": "CatalogEntry" + } + } + } +} diff --git a/packages/seed-realm/CatalogEntry/seller.json b/packages/seed-realm/CatalogEntry/seller.json new file mode 100644 index 0000000000..30fb06df7f --- /dev/null +++ b/packages/seed-realm/CatalogEntry/seller.json @@ -0,0 +1,20 @@ +{ + "data": { + "type": "card", + "attributes": { + "title": "Seller", + "description": "Catalog entry for Seller card", + "isField": false, + "ref": { + "module": "../seller", + "name": "Seller" + } + }, + "meta": { + "adoptsFrom": { + "module": "https://cardstack.com/base/catalog-entry", + "name": "CatalogEntry" + } + } + } +} diff --git a/packages/seed-realm/CatalogEntry/skill.json b/packages/seed-realm/CatalogEntry/skill.json new file mode 100644 index 0000000000..8da82b5309 --- /dev/null +++ b/packages/seed-realm/CatalogEntry/skill.json @@ -0,0 +1,20 @@ +{ + "data": { + "type": "card", + "attributes": { + "title": "Skill Card", + "description": "Catalog entry for Skill card", + "isField": false, + "ref": { + "module": "../skill-card", + "name": "SkillCard" + } + }, + "meta": { + "adoptsFrom": { + "module": "https://cardstack.com/base/catalog-entry", + "name": "CatalogEntry" + } + } + } +} diff --git a/packages/seed-realm/CatalogEntry/video-product.json b/packages/seed-realm/CatalogEntry/video-product.json new file mode 100644 index 0000000000..24d10394df --- /dev/null +++ b/packages/seed-realm/CatalogEntry/video-product.json @@ -0,0 +1,20 @@ +{ + "data": { + "type": "card", + "attributes": { + "title": "Video Product", + "description": "Catalog entry for Video Product card", + "isField": false, + "ref": { + "module": "../video-product", + "name": "VideoProduct" + } + }, + "meta": { + "adoptsFrom": { + "module": "https://cardstack.com/base/catalog-entry", + "name": "CatalogEntry" + } + } + } +} From c8941812c6aff9409e225c3edef7fcd9d6f8d1d3 Mon Sep 17 00:00:00 2001 From: tintinthong Date: Tue, 24 Dec 2024 18:24:22 +0100 Subject: [PATCH 3/3] Rename work tracker entities (#1980) * fix dragging within column to NOT save * Rename Task -> WorkTask * Rename TaskBase -> Task * Remove usage of Base** and just call it Task** * Remove usage of Base** and just call it Task** * TaskCollection -> KanbanResource * Forgot to change displayName * set a default title if no taskName is provided * require linksTo model * fix instance name * Rename instance directory names --- .../c0bf3231-435c-4363-ad92-a1d756aea8d9.json | 2 +- .../10402eaa-3826-4602-994b-60b7506fb98d.json | 4 +- .../186c797c-cee8-449c-a5a7-6624052deefc.json | 4 +- .../1b1fb4fd-d722-4cf9-a956-66fc64ccbc48.json | 4 +- .../20058a9d-3c2d-4b42-8430-a95b6183245c.json | 4 +- .../346cc7ac-eb65-41fd-a1d7-0400668da097.json | 4 +- .../3cd737c3-4157-46be-9880-6ead8ea60652.json | 4 +- .../48630c9d-2849-43d1-b356-890b016fffe9.json | 4 +- .../7d92636a-e306-4433-93c5-3b5d976986f3.json | 4 +- .../8ca45d40-adcb-437f-83ee-07ffd973cd17.json | 4 +- .../9b0425f9-ac54-44a4-8cfb-1774442490ea.json | 4 +- .../9e23b8b5-d541-48ef-a652-e7afefb29777.json | 4 +- .../b6263b50-18e7-4830-9049-44fb2a7b3e84.json | 4 +- .../bb4323d6-1ea4-40d0-a039-85d13e55d4a6.json | 4 +- .../c734e2c7-71d9-446e-a2c1-e6e930fcee55.json | 4 +- .../d21d407b-9c1c-4204-a3bb-7b91f9260017.json | 4 +- .../d8ce7466-3693-4d54-8931-8ccd25ca079f.json | 4 +- .../f81ea9a1-0b94-4e12-8e2e-c84fba78c551.json | 4 +- packages/experiments-realm/crm/task.gts | 4 +- ...cards-resource.gts => kanban-resource.gts} | 25 +++++---- .../experiments-realm/productivity/task.gts | 24 ++++----- packages/experiments-realm/task.gts | 51 ++++++++++--------- packages/experiments-realm/work-tracker.gts | 29 ++++++----- 23 files changed, 103 insertions(+), 100 deletions(-) rename packages/experiments-realm/{TaskBase => Task}/c0bf3231-435c-4363-ad92-a1d756aea8d9.json (96%) rename packages/experiments-realm/{Task => WorkTask}/10402eaa-3826-4602-994b-60b7506fb98d.json (97%) rename packages/experiments-realm/{Task => WorkTask}/186c797c-cee8-449c-a5a7-6624052deefc.json (98%) rename packages/experiments-realm/{Task => WorkTask}/1b1fb4fd-d722-4cf9-a956-66fc64ccbc48.json (97%) rename packages/experiments-realm/{Task => WorkTask}/20058a9d-3c2d-4b42-8430-a95b6183245c.json (98%) rename packages/experiments-realm/{Task => WorkTask}/346cc7ac-eb65-41fd-a1d7-0400668da097.json (97%) rename packages/experiments-realm/{Task => WorkTask}/3cd737c3-4157-46be-9880-6ead8ea60652.json (97%) rename packages/experiments-realm/{Task => WorkTask}/48630c9d-2849-43d1-b356-890b016fffe9.json (97%) rename packages/experiments-realm/{Task => WorkTask}/7d92636a-e306-4433-93c5-3b5d976986f3.json (97%) rename packages/experiments-realm/{Task => WorkTask}/8ca45d40-adcb-437f-83ee-07ffd973cd17.json (97%) rename packages/experiments-realm/{Task => WorkTask}/9b0425f9-ac54-44a4-8cfb-1774442490ea.json (97%) rename packages/experiments-realm/{Task => WorkTask}/9e23b8b5-d541-48ef-a652-e7afefb29777.json (97%) rename packages/experiments-realm/{Task => WorkTask}/b6263b50-18e7-4830-9049-44fb2a7b3e84.json (97%) rename packages/experiments-realm/{Task => WorkTask}/bb4323d6-1ea4-40d0-a039-85d13e55d4a6.json (97%) rename packages/experiments-realm/{Task => WorkTask}/c734e2c7-71d9-446e-a2c1-e6e930fcee55.json (97%) rename packages/experiments-realm/{Task => WorkTask}/d21d407b-9c1c-4204-a3bb-7b91f9260017.json (97%) rename packages/experiments-realm/{Task => WorkTask}/d8ce7466-3693-4d54-8931-8ccd25ca079f.json (97%) rename packages/experiments-realm/{Task => WorkTask}/f81ea9a1-0b94-4e12-8e2e-c84fba78c551.json (97%) rename packages/experiments-realm/{productivity/task-cards-resource.gts => kanban-resource.gts} (69%) diff --git a/packages/experiments-realm/TaskBase/c0bf3231-435c-4363-ad92-a1d756aea8d9.json b/packages/experiments-realm/Task/c0bf3231-435c-4363-ad92-a1d756aea8d9.json similarity index 96% rename from packages/experiments-realm/TaskBase/c0bf3231-435c-4363-ad92-a1d756aea8d9.json rename to packages/experiments-realm/Task/c0bf3231-435c-4363-ad92-a1d756aea8d9.json index b977382436..b784e01d0e 100644 --- a/packages/experiments-realm/TaskBase/c0bf3231-435c-4363-ad92-a1d756aea8d9.json +++ b/packages/experiments-realm/Task/c0bf3231-435c-4363-ad92-a1d756aea8d9.json @@ -34,7 +34,7 @@ "meta": { "adoptsFrom": { "module": "../task", - "name": "TaskBase" + "name": "Task" } } } diff --git a/packages/experiments-realm/Task/10402eaa-3826-4602-994b-60b7506fb98d.json b/packages/experiments-realm/WorkTask/10402eaa-3826-4602-994b-60b7506fb98d.json similarity index 97% rename from packages/experiments-realm/Task/10402eaa-3826-4602-994b-60b7506fb98d.json rename to packages/experiments-realm/WorkTask/10402eaa-3826-4602-994b-60b7506fb98d.json index 740b24eb9e..62f4111f4d 100644 --- a/packages/experiments-realm/Task/10402eaa-3826-4602-994b-60b7506fb98d.json +++ b/packages/experiments-realm/WorkTask/10402eaa-3826-4602-994b-60b7506fb98d.json @@ -60,8 +60,8 @@ "meta": { "adoptsFrom": { "module": "../productivity/task", - "name": "Task" + "name": "WorkTask" } } } -} \ No newline at end of file +} diff --git a/packages/experiments-realm/Task/186c797c-cee8-449c-a5a7-6624052deefc.json b/packages/experiments-realm/WorkTask/186c797c-cee8-449c-a5a7-6624052deefc.json similarity index 98% rename from packages/experiments-realm/Task/186c797c-cee8-449c-a5a7-6624052deefc.json rename to packages/experiments-realm/WorkTask/186c797c-cee8-449c-a5a7-6624052deefc.json index df9c1cf190..ac55ab1384 100644 --- a/packages/experiments-realm/Task/186c797c-cee8-449c-a5a7-6624052deefc.json +++ b/packages/experiments-realm/WorkTask/186c797c-cee8-449c-a5a7-6624052deefc.json @@ -59,8 +59,8 @@ "meta": { "adoptsFrom": { "module": "../productivity/task", - "name": "Task" + "name": "WorkTask" } } } -} \ No newline at end of file +} diff --git a/packages/experiments-realm/Task/1b1fb4fd-d722-4cf9-a956-66fc64ccbc48.json b/packages/experiments-realm/WorkTask/1b1fb4fd-d722-4cf9-a956-66fc64ccbc48.json similarity index 97% rename from packages/experiments-realm/Task/1b1fb4fd-d722-4cf9-a956-66fc64ccbc48.json rename to packages/experiments-realm/WorkTask/1b1fb4fd-d722-4cf9-a956-66fc64ccbc48.json index d9c37b9647..600cfb6248 100644 --- a/packages/experiments-realm/Task/1b1fb4fd-d722-4cf9-a956-66fc64ccbc48.json +++ b/packages/experiments-realm/WorkTask/1b1fb4fd-d722-4cf9-a956-66fc64ccbc48.json @@ -49,8 +49,8 @@ "meta": { "adoptsFrom": { "module": "../productivity/task", - "name": "Task" + "name": "WorkTask" } } } -} \ No newline at end of file +} diff --git a/packages/experiments-realm/Task/20058a9d-3c2d-4b42-8430-a95b6183245c.json b/packages/experiments-realm/WorkTask/20058a9d-3c2d-4b42-8430-a95b6183245c.json similarity index 98% rename from packages/experiments-realm/Task/20058a9d-3c2d-4b42-8430-a95b6183245c.json rename to packages/experiments-realm/WorkTask/20058a9d-3c2d-4b42-8430-a95b6183245c.json index 9f85881f77..46a2ea1e1c 100644 --- a/packages/experiments-realm/Task/20058a9d-3c2d-4b42-8430-a95b6183245c.json +++ b/packages/experiments-realm/WorkTask/20058a9d-3c2d-4b42-8430-a95b6183245c.json @@ -64,8 +64,8 @@ "meta": { "adoptsFrom": { "module": "../productivity/task", - "name": "Task" + "name": "WorkTask" } } } -} \ No newline at end of file +} diff --git a/packages/experiments-realm/Task/346cc7ac-eb65-41fd-a1d7-0400668da097.json b/packages/experiments-realm/WorkTask/346cc7ac-eb65-41fd-a1d7-0400668da097.json similarity index 97% rename from packages/experiments-realm/Task/346cc7ac-eb65-41fd-a1d7-0400668da097.json rename to packages/experiments-realm/WorkTask/346cc7ac-eb65-41fd-a1d7-0400668da097.json index eda5a050c7..93f9c71b89 100644 --- a/packages/experiments-realm/Task/346cc7ac-eb65-41fd-a1d7-0400668da097.json +++ b/packages/experiments-realm/WorkTask/346cc7ac-eb65-41fd-a1d7-0400668da097.json @@ -49,8 +49,8 @@ "meta": { "adoptsFrom": { "module": "../productivity/task", - "name": "Task" + "name": "WorkTask" } } } -} \ No newline at end of file +} diff --git a/packages/experiments-realm/Task/3cd737c3-4157-46be-9880-6ead8ea60652.json b/packages/experiments-realm/WorkTask/3cd737c3-4157-46be-9880-6ead8ea60652.json similarity index 97% rename from packages/experiments-realm/Task/3cd737c3-4157-46be-9880-6ead8ea60652.json rename to packages/experiments-realm/WorkTask/3cd737c3-4157-46be-9880-6ead8ea60652.json index 035ae0f688..0dd878f949 100644 --- a/packages/experiments-realm/Task/3cd737c3-4157-46be-9880-6ead8ea60652.json +++ b/packages/experiments-realm/WorkTask/3cd737c3-4157-46be-9880-6ead8ea60652.json @@ -49,8 +49,8 @@ "meta": { "adoptsFrom": { "module": "../productivity/task", - "name": "Task" + "name": "WorkTask" } } } -} \ No newline at end of file +} diff --git a/packages/experiments-realm/Task/48630c9d-2849-43d1-b356-890b016fffe9.json b/packages/experiments-realm/WorkTask/48630c9d-2849-43d1-b356-890b016fffe9.json similarity index 97% rename from packages/experiments-realm/Task/48630c9d-2849-43d1-b356-890b016fffe9.json rename to packages/experiments-realm/WorkTask/48630c9d-2849-43d1-b356-890b016fffe9.json index ace992a81f..473f27367d 100644 --- a/packages/experiments-realm/Task/48630c9d-2849-43d1-b356-890b016fffe9.json +++ b/packages/experiments-realm/WorkTask/48630c9d-2849-43d1-b356-890b016fffe9.json @@ -49,8 +49,8 @@ "meta": { "adoptsFrom": { "module": "../productivity/task", - "name": "Task" + "name": "WorkTask" } } } -} \ No newline at end of file +} diff --git a/packages/experiments-realm/Task/7d92636a-e306-4433-93c5-3b5d976986f3.json b/packages/experiments-realm/WorkTask/7d92636a-e306-4433-93c5-3b5d976986f3.json similarity index 97% rename from packages/experiments-realm/Task/7d92636a-e306-4433-93c5-3b5d976986f3.json rename to packages/experiments-realm/WorkTask/7d92636a-e306-4433-93c5-3b5d976986f3.json index 65bd0c612a..eff8e2620d 100644 --- a/packages/experiments-realm/Task/7d92636a-e306-4433-93c5-3b5d976986f3.json +++ b/packages/experiments-realm/WorkTask/7d92636a-e306-4433-93c5-3b5d976986f3.json @@ -49,8 +49,8 @@ "meta": { "adoptsFrom": { "module": "../productivity/task", - "name": "Task" + "name": "WorkTask" } } } -} \ No newline at end of file +} diff --git a/packages/experiments-realm/Task/8ca45d40-adcb-437f-83ee-07ffd973cd17.json b/packages/experiments-realm/WorkTask/8ca45d40-adcb-437f-83ee-07ffd973cd17.json similarity index 97% rename from packages/experiments-realm/Task/8ca45d40-adcb-437f-83ee-07ffd973cd17.json rename to packages/experiments-realm/WorkTask/8ca45d40-adcb-437f-83ee-07ffd973cd17.json index 1131010974..b1d9a6f316 100644 --- a/packages/experiments-realm/Task/8ca45d40-adcb-437f-83ee-07ffd973cd17.json +++ b/packages/experiments-realm/WorkTask/8ca45d40-adcb-437f-83ee-07ffd973cd17.json @@ -50,8 +50,8 @@ "meta": { "adoptsFrom": { "module": "../productivity/task", - "name": "Task" + "name": "WorkTask" } } } -} \ No newline at end of file +} diff --git a/packages/experiments-realm/Task/9b0425f9-ac54-44a4-8cfb-1774442490ea.json b/packages/experiments-realm/WorkTask/9b0425f9-ac54-44a4-8cfb-1774442490ea.json similarity index 97% rename from packages/experiments-realm/Task/9b0425f9-ac54-44a4-8cfb-1774442490ea.json rename to packages/experiments-realm/WorkTask/9b0425f9-ac54-44a4-8cfb-1774442490ea.json index 615c54d71b..823671c2be 100644 --- a/packages/experiments-realm/Task/9b0425f9-ac54-44a4-8cfb-1774442490ea.json +++ b/packages/experiments-realm/WorkTask/9b0425f9-ac54-44a4-8cfb-1774442490ea.json @@ -50,8 +50,8 @@ "meta": { "adoptsFrom": { "module": "../productivity/task", - "name": "Task" + "name": "WorkTask" } } } -} \ No newline at end of file +} diff --git a/packages/experiments-realm/Task/9e23b8b5-d541-48ef-a652-e7afefb29777.json b/packages/experiments-realm/WorkTask/9e23b8b5-d541-48ef-a652-e7afefb29777.json similarity index 97% rename from packages/experiments-realm/Task/9e23b8b5-d541-48ef-a652-e7afefb29777.json rename to packages/experiments-realm/WorkTask/9e23b8b5-d541-48ef-a652-e7afefb29777.json index fc91f068c0..1bd646ed54 100644 --- a/packages/experiments-realm/Task/9e23b8b5-d541-48ef-a652-e7afefb29777.json +++ b/packages/experiments-realm/WorkTask/9e23b8b5-d541-48ef-a652-e7afefb29777.json @@ -49,8 +49,8 @@ "meta": { "adoptsFrom": { "module": "../productivity/task", - "name": "Task" + "name": "WorkTask" } } } -} \ No newline at end of file +} diff --git a/packages/experiments-realm/Task/b6263b50-18e7-4830-9049-44fb2a7b3e84.json b/packages/experiments-realm/WorkTask/b6263b50-18e7-4830-9049-44fb2a7b3e84.json similarity index 97% rename from packages/experiments-realm/Task/b6263b50-18e7-4830-9049-44fb2a7b3e84.json rename to packages/experiments-realm/WorkTask/b6263b50-18e7-4830-9049-44fb2a7b3e84.json index c3c3cd13de..f5acd4cacd 100644 --- a/packages/experiments-realm/Task/b6263b50-18e7-4830-9049-44fb2a7b3e84.json +++ b/packages/experiments-realm/WorkTask/b6263b50-18e7-4830-9049-44fb2a7b3e84.json @@ -49,8 +49,8 @@ "meta": { "adoptsFrom": { "module": "../productivity/task", - "name": "Task" + "name": "WorkTask" } } } -} \ No newline at end of file +} diff --git a/packages/experiments-realm/Task/bb4323d6-1ea4-40d0-a039-85d13e55d4a6.json b/packages/experiments-realm/WorkTask/bb4323d6-1ea4-40d0-a039-85d13e55d4a6.json similarity index 97% rename from packages/experiments-realm/Task/bb4323d6-1ea4-40d0-a039-85d13e55d4a6.json rename to packages/experiments-realm/WorkTask/bb4323d6-1ea4-40d0-a039-85d13e55d4a6.json index 1aa1ebfd69..6ad7e6f336 100644 --- a/packages/experiments-realm/Task/bb4323d6-1ea4-40d0-a039-85d13e55d4a6.json +++ b/packages/experiments-realm/WorkTask/bb4323d6-1ea4-40d0-a039-85d13e55d4a6.json @@ -50,8 +50,8 @@ "meta": { "adoptsFrom": { "module": "../productivity/task", - "name": "Task" + "name": "WorkTask" } } } -} \ No newline at end of file +} diff --git a/packages/experiments-realm/Task/c734e2c7-71d9-446e-a2c1-e6e930fcee55.json b/packages/experiments-realm/WorkTask/c734e2c7-71d9-446e-a2c1-e6e930fcee55.json similarity index 97% rename from packages/experiments-realm/Task/c734e2c7-71d9-446e-a2c1-e6e930fcee55.json rename to packages/experiments-realm/WorkTask/c734e2c7-71d9-446e-a2c1-e6e930fcee55.json index f256d9fc7c..2f8a15ca1b 100644 --- a/packages/experiments-realm/Task/c734e2c7-71d9-446e-a2c1-e6e930fcee55.json +++ b/packages/experiments-realm/WorkTask/c734e2c7-71d9-446e-a2c1-e6e930fcee55.json @@ -50,8 +50,8 @@ "meta": { "adoptsFrom": { "module": "../productivity/task", - "name": "Task" + "name": "WorkTask" } } } -} \ No newline at end of file +} diff --git a/packages/experiments-realm/Task/d21d407b-9c1c-4204-a3bb-7b91f9260017.json b/packages/experiments-realm/WorkTask/d21d407b-9c1c-4204-a3bb-7b91f9260017.json similarity index 97% rename from packages/experiments-realm/Task/d21d407b-9c1c-4204-a3bb-7b91f9260017.json rename to packages/experiments-realm/WorkTask/d21d407b-9c1c-4204-a3bb-7b91f9260017.json index b4749f3aca..2116922dff 100644 --- a/packages/experiments-realm/Task/d21d407b-9c1c-4204-a3bb-7b91f9260017.json +++ b/packages/experiments-realm/WorkTask/d21d407b-9c1c-4204-a3bb-7b91f9260017.json @@ -50,8 +50,8 @@ "meta": { "adoptsFrom": { "module": "../productivity/task", - "name": "Task" + "name": "WorkTask" } } } -} \ No newline at end of file +} diff --git a/packages/experiments-realm/Task/d8ce7466-3693-4d54-8931-8ccd25ca079f.json b/packages/experiments-realm/WorkTask/d8ce7466-3693-4d54-8931-8ccd25ca079f.json similarity index 97% rename from packages/experiments-realm/Task/d8ce7466-3693-4d54-8931-8ccd25ca079f.json rename to packages/experiments-realm/WorkTask/d8ce7466-3693-4d54-8931-8ccd25ca079f.json index e684e9175e..7192343442 100644 --- a/packages/experiments-realm/Task/d8ce7466-3693-4d54-8931-8ccd25ca079f.json +++ b/packages/experiments-realm/WorkTask/d8ce7466-3693-4d54-8931-8ccd25ca079f.json @@ -49,8 +49,8 @@ "meta": { "adoptsFrom": { "module": "../productivity/task", - "name": "Task" + "name": "WorkTask" } } } -} \ No newline at end of file +} diff --git a/packages/experiments-realm/Task/f81ea9a1-0b94-4e12-8e2e-c84fba78c551.json b/packages/experiments-realm/WorkTask/f81ea9a1-0b94-4e12-8e2e-c84fba78c551.json similarity index 97% rename from packages/experiments-realm/Task/f81ea9a1-0b94-4e12-8e2e-c84fba78c551.json rename to packages/experiments-realm/WorkTask/f81ea9a1-0b94-4e12-8e2e-c84fba78c551.json index 2f83856a90..05a36139d0 100644 --- a/packages/experiments-realm/Task/f81ea9a1-0b94-4e12-8e2e-c84fba78c551.json +++ b/packages/experiments-realm/WorkTask/f81ea9a1-0b94-4e12-8e2e-c84fba78c551.json @@ -49,8 +49,8 @@ "meta": { "adoptsFrom": { "module": "../productivity/task", - "name": "Task" + "name": "WorkTask" } } } -} \ No newline at end of file +} diff --git a/packages/experiments-realm/crm/task.gts b/packages/experiments-realm/crm/task.gts index 4ed895f2d3..3886099e10 100644 --- a/packages/experiments-realm/crm/task.gts +++ b/packages/experiments-realm/crm/task.gts @@ -1,8 +1,8 @@ import { linksTo, field } from 'https://cardstack.com/base/card-api'; -import { TaskBase } from '../task'; +import { Task } from '../task'; import { Contact } from './contact'; -export class CrmTask extends TaskBase { +export class CrmTask extends Task { static displayName = 'CRM Task'; @field contact = linksTo(Contact); } diff --git a/packages/experiments-realm/productivity/task-cards-resource.gts b/packages/experiments-realm/kanban-resource.gts similarity index 69% rename from packages/experiments-realm/productivity/task-cards-resource.gts rename to packages/experiments-realm/kanban-resource.gts index fa57bbc5b0..b64a58cfd4 100644 --- a/packages/experiments-realm/productivity/task-cards-resource.gts +++ b/packages/experiments-realm/kanban-resource.gts @@ -7,17 +7,19 @@ import { Resource } from 'ember-resources'; interface Args { named: { cards: CardDef[]; - hasColumnKey: (card: any, key: string) => boolean; + hasColumnKey: (card: T, key: string) => boolean; columnKeys: string[]; }; } // This is a resource because we have to -// 1. to hold state of cards inside of the kanban board -// 2. to order cards that are newly added to the kanban board -class TaskCollection extends Resource { +// 1. to hold state of cards inside of the kanban board without a flickering/ loading +// 2. to maintain a natural order cards that are newly added to the kanban board +// Note: this resource assumes that you have already loaded the cards and is unsuitable for pre-rendered cards +class KanbanResource extends Resource { @tracked private data: Map = new Map(); - hasColumnKey?: (card: CardDef, key: string) => boolean = undefined; + hasColumnKey?: (card: T, key: string) => boolean = + undefined; commit(cards: CardDef[], columnKeys: string[]) { columnKeys.forEach((key: string) => { @@ -55,17 +57,20 @@ class TaskCollection extends Resource { } } -export default function getTaskCardsResource( +export default function getKanbanResource( parent: object, - cards: () => CardDef[], + cards: () => T[], columnKeys: () => string[], - hasColumnKey: () => (card: any, key: string) => boolean, + hasColumnKey: () => (card: T, key: string) => boolean, ) { - return TaskCollection.from(parent, () => ({ + return KanbanResource.from(parent, () => ({ named: { cards: cards(), columnKeys: columnKeys(), - hasColumnKey: hasColumnKey(), + hasColumnKey: hasColumnKey() as ( + card: T, + key: string, + ) => boolean, }, })); } diff --git a/packages/experiments-realm/productivity/task.gts b/packages/experiments-realm/productivity/task.gts index d255ab8796..ab071b297d 100644 --- a/packages/experiments-realm/productivity/task.gts +++ b/packages/experiments-realm/productivity/task.gts @@ -19,12 +19,7 @@ import UsersIcon from '@cardstack/boxel-icons/users'; import UserIcon from '@cardstack/boxel-icons/user'; import Calendar from '@cardstack/boxel-icons/calendar'; import { User } from '../user'; -import { - TaskBase, - BaseTaskStatusField, - BaseTaskPriority, - getDueDateStatus, -} from '../task'; +import { Task, TaskStatusField, getDueDateStatus } from '../task'; export class Team extends CardDef { static displayName = 'Team'; @@ -145,7 +140,7 @@ function shortenId(id: string): string { return decimal.toString(36).padStart(6, '0'); } -class TaskIsolated extends Component { +class TaskIsolated extends Component { get dueDate() { return this.args.model.dateRange?.end; } @@ -462,7 +457,7 @@ class TaskIsolated extends Component { } } -export class TaskStatusField extends BaseTaskStatusField { +export class WorkTaskStatusField extends TaskStatusField { static values = [ { index: 0, label: 'Not Started', color: '#B0BEC5', completed: false }, { @@ -504,17 +499,16 @@ export class TaskStatusField extends BaseTaskStatusField { ]; } -export class Task extends TaskBase { - static displayName = 'Task'; +export class WorkTask extends Task { + static displayName = 'Work Task'; static icon = CheckboxIcon; - @field priority = contains(BaseTaskPriority); @field project = linksTo(() => Project); @field team = linksTo(() => Team); - @field children = linksToMany(() => Task); - @field status = contains(TaskStatusField); + @field children = linksToMany(() => WorkTask); + @field status = contains(WorkTaskStatusField); @field title = contains(StringField, { - computeVia: function (this: Task) { + computeVia: function (this: WorkTask) { return this.taskName; }, }); @@ -523,7 +517,7 @@ export class Task extends TaskBase { @field assignee = linksTo(() => TeamMember); @field shortId = contains(StringField, { - computeVia: function (this: Task) { + computeVia: function (this: WorkTask) { if (this.id) { let id = shortenId(extractId(this.id)); let _shortId: string; diff --git a/packages/experiments-realm/task.gts b/packages/experiments-realm/task.gts index d24dd352d5..c3f08b4949 100644 --- a/packages/experiments-realm/task.gts +++ b/packages/experiments-realm/task.gts @@ -34,7 +34,7 @@ import { CheckMark } from '@cardstack/boxel-ui/icons'; type LooseyGooseyDataWithCompleted = LooseyGooseyData & { completed: boolean }; -export class BaseTaskStatusEdit extends Component { +export class TaskStatusEdit extends Component { @tracked label: string | undefined = this.args.model.label; } -class EditPriority extends Component { +class EditPriority extends Component { @tracked label = this.args.model.label; get priorities() { - return BaseTaskPriority.values; + return TaskPriority.values; } get selectedPriority() { @@ -451,7 +452,7 @@ class EditPriority extends Component { } -export class BaseTaskPriority extends LooseGooseyField { +export class TaskPriority extends LooseGooseyField { // loosey goosey pattern static values = [ { index: 0, label: 'Lowest', icon: ChevronsDown }, @@ -491,7 +492,7 @@ export class BaseTaskPriority extends LooseGooseyField { //TODO: Not static. Need to improve ability to extend field templates edit = EditPriority; - static embedded = class Embedded extends Component { + static embedded = class Embedded extends Component { @@ -499,7 +500,7 @@ export class BaseTaskPriority extends LooseGooseyField { static atom = class Atom extends Component { get selectedPriority() { - return BaseTaskPriority.values.find((priority) => { + return TaskPriority.values.find((priority) => { return priority.label === this.args.model.label; }); } @@ -524,24 +525,24 @@ export class BaseTaskPriority extends LooseGooseyField { }; } -export class TaskBase extends CardDef { - static displayName = 'Task Base'; +export class Task extends CardDef { + static displayName = 'Task'; @field taskName = contains(StringField); @field tags = linksToMany(() => Tag); @field dateRange = contains(DateRangeField); - @field status = contains(BaseTaskStatusField); + @field status = contains(TaskStatusField); @field taskDetail = contains(TextAreaCard); @field assignee = linksTo(() => User); - @field priority = contains(BaseTaskPriority); + @field priority = contains(TaskPriority); @field title = contains(StringField, { - computeVia: function (this: TaskBase) { - return this.taskName; + computeVia: function (this: Task) { + return this.taskName ?? `Untitled ${this.constructor.displayName}`; }, }); @field shortId = contains(StringField, { - computeVia: function (this: TaskBase) { + computeVia: function (this: Task) { if (this.id) { let id = shortenId(extractId(this.id)); return id.toUpperCase(); diff --git a/packages/experiments-realm/work-tracker.gts b/packages/experiments-realm/work-tracker.gts index a2f5902766..3e2c334605 100644 --- a/packages/experiments-realm/work-tracker.gts +++ b/packages/experiments-realm/work-tracker.gts @@ -26,11 +26,11 @@ import { LooseSingleCardDocument, getCards } from '@cardstack/runtime-common'; import { restartableTask } from 'ember-concurrency'; // @ts-expect-error path resolution issue import { AppCard } from '/experiments/app-card'; -import { TaskStatusField, Project, Task } from './productivity/task'; +import { WorkTaskStatusField, Project, WorkTask } from './productivity/task'; import { FilterDropdown } from './productivity/filter-dropdown'; import { StatusPill } from './productivity/filter-dropdown-item'; import { FilterTrigger } from './productivity/filter-trigger'; -import getTaskCardsResource from './productivity/task-cards-resource'; +import getKanbanResource from './kanban-resource'; import { FilterDisplay } from './productivity/filter-display'; import Checklist from '@cardstack/boxel-icons/checklist'; import RectangleEllipsis from '@cardstack/boxel-icons/rectangle-ellipsis'; @@ -64,7 +64,7 @@ class WorkTrackerIsolated extends Component { module: new URL('./productivity/task', import.meta.url).href, name: 'Status', }, - options: () => TaskStatusField.values, + options: () => WorkTaskStatusField.values, }, assignee: { searchKey: 'name', @@ -101,14 +101,14 @@ class WorkTrackerIsolated extends Component { if (!this.cards || !this.cards.instances) { return []; } - return this.cards.instances as Task[]; + return this.cards.instances as WorkTask[]; } get assigneeCards() { return this.assigneeQuery.instances; } - @action showTaskCard(card: Task): boolean { + @action showTaskCard(card: WorkTask): boolean { return this.filterTypes.every((filterType: FilterType) => { let selectedItems = this.selectedItems.get(filterType) ?? []; if (selectedItems.length === 0) return true; @@ -124,14 +124,14 @@ class WorkTrackerIsolated extends Component { }); } - hasColumnKey = (card: Task, key: string) => { + hasColumnKey = (card: WorkTask, key: string) => { return card.status?.label === key; }; - taskCollection = getTaskCardsResource( + taskCollection = getKanbanResource( this, () => this.cardInstances, - () => TaskStatusField.values.map((status) => status.label) ?? [], + () => WorkTaskStatusField.values.map((status) => status.label) ?? [], () => this.hasColumnKey, ); @@ -164,7 +164,7 @@ class WorkTrackerIsolated extends Component { get assignedTaskCodeRef() { return { module: new URL('./productivity/task', import.meta.url).href, - name: 'Task', + name: 'WorkTask', }; } @@ -224,7 +224,7 @@ class WorkTrackerIsolated extends Component { return; } - let index = TaskStatusField.values.find((value) => { + let index = WorkTaskStatusField.values.find((value) => { return value.label === statusLabel; })?.index; @@ -287,11 +287,14 @@ class WorkTrackerIsolated extends Component { let cardInNewCol = targetColumnAfterDrag.cards.find( (c: CardDef) => c.id === draggedCard.id, ); - if (cardInNewCol) { - let statusValue = TaskStatusField.values.find( + if ( + cardInNewCol && + cardInNewCol.status.label !== targetColumnAfterDrag.title //not dragging to the same column + ) { + let statusValue = WorkTaskStatusField.values.find( (value) => value.label === targetColumnAfterDrag.title, ); - cardInNewCol.status = new TaskStatusField(statusValue); + cardInNewCol.status = new WorkTaskStatusField(statusValue); await this.args.context?.actions?.saveCard?.(cardInNewCol); } }