Skip to content

Commit 7c1e5d8

Browse files
authored
Merge pull request #312 from guardian/fronts-integration
slick 5:4 and 4:5 crop sharing from composer to fronts tool
2 parents 0d2d755 + d2c9e8d commit 7c1e5d8

23 files changed

+1088
-168
lines changed

bootstrapping-lambda/local/index.html

+48
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,20 @@
44
<meta charset="UTF-8" />
55
<title>PinBoard</title>
66
<script src="https://pinboard.local.dev-gutools.co.uk/pinboard.loader.js"></script>
7+
<style>
8+
body {
9+
display: flex;
10+
flex-direction: column;
11+
flex-wrap: wrap;
12+
height: 100vh;
13+
column-gap: 10px;
14+
}
15+
h3,
16+
h4 {
17+
margin-top: 10px;
18+
margin-bottom: 5px;
19+
}
20+
</style>
721
</head>
822

923
<body>
@@ -56,6 +70,40 @@ <h3>Override unread notifications bubble</h3>
5670
<button id="btn-unset-unread-notifications-bubble">Unset</button>
5771
</div>
5872

73+
<h3>Fronts Integration</h3>
74+
75+
<h4>Composer Buttons etc. (under trail image in furniture)</h4>
76+
<em>Requires preselected pinboard (like in composer)</em>
77+
<div
78+
style="background: #f6f6f6; padding-left: 420px; display: inline-block"
79+
>
80+
<div style="width: 195px">
81+
<pinboard-suggest-alternate-crops
82+
data-media-id="d6518ba44eb272830b779e4ed6356482007d4536"
83+
></pinboard-suggest-alternate-crops>
84+
</div>
85+
</div>
86+
87+
<div style="max-width: 180px">
88+
<h4>Fronts Clipboard Card:</h4>
89+
<pinboard-article-button
90+
data-url-path="uk-news/2024/oct/21/whats-my-scene-by-the-hoodoo-gurus-"
91+
></pinboard-article-button>
92+
</div>
93+
<h4>Fronts Article Cards [Collapsed]:</h4>
94+
<pinboard-article-button
95+
data-url-path="uk-news/2024/oct/21/whats-my-scene-by-the-hoodoo-gurus-"
96+
></pinboard-article-button>
97+
<br />
98+
<h4>Fronts Article Cards [Expanded]</h4>
99+
<pinboard-article-button
100+
data-url-path="uk-news/2024/oct/21/whats-my-scene-by-the-hoodoo-gurus-"
101+
data-with-draggable-thumbs-of-ratio="5:4"
102+
></pinboard-article-button>
103+
<pinboard-article-button
104+
data-url-path="uk-news/2024/oct/21/whats-my-scene-by-the-hoodoo-gurus-"
105+
data-with-draggable-thumbs-of-ratio="4:5"
106+
></pinboard-article-button>
59107
<h3><code>Add to 📌</code> button</h3>
60108
<ul id="button_section">
61109
<h4>present initially</h4>

cdk/lib/__snapshots__/stack.test.ts.snap

+49-23
Original file line numberDiff line numberDiff line change
@@ -2449,7 +2449,7 @@ Object {
24492449
24502450
type Query {
24512451
# database-bridge-lambda queries
2452-
listItems(pinboardId: String!): [Item]
2452+
listItems(pinboardId: String!, maybeAspectRatioFilter: String): [Item]
24532453
listLastItemSeenByUsers(pinboardId: String!): [LastItemSeenByUser]
24542454
getMyUser: MyUser
24552455
searchMentionableUsers(prefix: String!): UsersAndGroups
@@ -2459,6 +2459,7 @@ type Query {
24592459
# workflow-bridge-lambda queries
24602460
listPinboards(searchText: String): [WorkflowStub]
24612461
getPinboardsByIds(ids: [String!]!): [WorkflowStub]
2462+
getPinboardsByPaths(paths: [String!]!): [WorkflowStub]
24622463
getPinboardByComposerId(composerId: String!): WorkflowStub
24632464
# grid-bridge-lambda queries
24642465
getGridSearchSummary(apiUrl: String!): GridSearchSummary
@@ -2563,6 +2564,7 @@ type WorkflowStub {
25632564
title: String
25642565
headline: String
25652566
composerId: String
2567+
path: String
25662568
status: String
25672569
trashed: Boolean
25682570
isNotFound: Boolean
@@ -2628,6 +2630,9 @@ type PinboardIdWithItemCounts {
26282630
pinboardId: String!
26292631
unreadCount: Int!
26302632
totalCount: Int!
2633+
totalCropCount: Int!
2634+
fiveByFourCount: Int!
2635+
fourByFiveCount: Int!
26312636
}
26322637
",
26332638
},
@@ -2675,7 +2680,7 @@ type PinboardIdWithItemCounts {
26752680
"DataSourceName": "database_bridge_lambda_ds",
26762681
"FieldName": "addManuallyOpenedPinboardIds",
26772682
"Kind": "UNIT",
2678-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
2683+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
26792684
$util.toJson($ctx.result)",
26802685
"TypeName": "Mutation",
26812686
},
@@ -2696,7 +2701,7 @@ $util.toJson($ctx.result)",
26962701
"DataSourceName": "database_bridge_lambda_ds",
26972702
"FieldName": "changeFeatureFlag",
26982703
"Kind": "UNIT",
2699-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
2704+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
27002705
$util.toJson($ctx.result)",
27012706
"TypeName": "Mutation",
27022707
},
@@ -2717,7 +2722,7 @@ $util.toJson($ctx.result)",
27172722
"DataSourceName": "database_bridge_lambda_ds",
27182723
"FieldName": "claimItem",
27192724
"Kind": "UNIT",
2720-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
2725+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
27212726
$util.toJson($ctx.result)",
27222727
"TypeName": "Mutation",
27232728
},
@@ -2738,7 +2743,7 @@ $util.toJson($ctx.result)",
27382743
"DataSourceName": "database_bridge_lambda_ds",
27392744
"FieldName": "createItem",
27402745
"Kind": "UNIT",
2741-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
2746+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
27422747
$util.toJson($ctx.result)",
27432748
"TypeName": "Mutation",
27442749
},
@@ -2759,7 +2764,7 @@ $util.toJson($ctx.result)",
27592764
"DataSourceName": "database_bridge_lambda_ds",
27602765
"FieldName": "deleteItem",
27612766
"Kind": "UNIT",
2762-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
2767+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
27632768
$util.toJson($ctx.result)",
27642769
"TypeName": "Mutation",
27652770
},
@@ -2780,7 +2785,7 @@ $util.toJson($ctx.result)",
27802785
"DataSourceName": "database_bridge_lambda_ds",
27812786
"FieldName": "editItem",
27822787
"Kind": "UNIT",
2783-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
2788+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
27842789
$util.toJson($ctx.result)",
27852790
"TypeName": "Mutation",
27862791
},
@@ -2801,7 +2806,7 @@ $util.toJson($ctx.result)",
28012806
"DataSourceName": "database_bridge_lambda_ds",
28022807
"FieldName": "removeManuallyOpenedPinboardIds",
28032808
"Kind": "UNIT",
2804-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
2809+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
28052810
$util.toJson($ctx.result)",
28062811
"TypeName": "Mutation",
28072812
},
@@ -2822,7 +2827,7 @@ $util.toJson($ctx.result)",
28222827
"DataSourceName": "database_bridge_lambda_ds",
28232828
"FieldName": "seenItem",
28242829
"Kind": "UNIT",
2825-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
2830+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
28262831
$util.toJson($ctx.result)",
28272832
"TypeName": "Mutation",
28282833
},
@@ -2843,7 +2848,7 @@ $util.toJson($ctx.result)",
28432848
"DataSourceName": "database_bridge_lambda_ds",
28442849
"FieldName": "setWebPushSubscriptionForUser",
28452850
"Kind": "UNIT",
2846-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
2851+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
28472852
$util.toJson($ctx.result)",
28482853
"TypeName": "Mutation",
28492854
},
@@ -2864,7 +2869,7 @@ $util.toJson($ctx.result)",
28642869
"DataSourceName": "database_bridge_lambda_ds",
28652870
"FieldName": "visitTourStep",
28662871
"Kind": "UNIT",
2867-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
2872+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
28682873
$util.toJson($ctx.result)",
28692874
"TypeName": "Mutation",
28702875
},
@@ -2885,7 +2890,7 @@ $util.toJson($ctx.result)",
28852890
"DataSourceName": "database_bridge_lambda_ds",
28862891
"FieldName": "getGroupPinboardIds",
28872892
"Kind": "UNIT",
2888-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
2893+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
28892894
$util.toJson($ctx.result)",
28902895
"TypeName": "Query",
28912896
},
@@ -2906,7 +2911,7 @@ $util.toJson($ctx.result)",
29062911
"DataSourceName": "database_bridge_lambda_ds",
29072912
"FieldName": "getItemCounts",
29082913
"Kind": "UNIT",
2909-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
2914+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
29102915
$util.toJson($ctx.result)",
29112916
"TypeName": "Query",
29122917
},
@@ -2927,7 +2932,7 @@ $util.toJson($ctx.result)",
29272932
"DataSourceName": "database_bridge_lambda_ds",
29282933
"FieldName": "getMyUser",
29292934
"Kind": "UNIT",
2930-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
2935+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
29312936
$util.toJson($ctx.result)",
29322937
"TypeName": "Query",
29332938
},
@@ -2948,7 +2953,7 @@ $util.toJson($ctx.result)",
29482953
"DataSourceName": "database_bridge_lambda_ds",
29492954
"FieldName": "getUsers",
29502955
"Kind": "UNIT",
2951-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
2956+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
29522957
$util.toJson($ctx.result)",
29532958
"TypeName": "Query",
29542959
},
@@ -2969,7 +2974,7 @@ $util.toJson($ctx.result)",
29692974
"DataSourceName": "database_bridge_lambda_ds",
29702975
"FieldName": "listItems",
29712976
"Kind": "UNIT",
2972-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
2977+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
29732978
$util.toJson($ctx.result)",
29742979
"TypeName": "Query",
29752980
},
@@ -2990,7 +2995,7 @@ $util.toJson($ctx.result)",
29902995
"DataSourceName": "database_bridge_lambda_ds",
29912996
"FieldName": "listLastItemSeenByUsers",
29922997
"Kind": "UNIT",
2993-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
2998+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
29942999
$util.toJson($ctx.result)",
29953000
"TypeName": "Query",
29963001
},
@@ -3011,7 +3016,7 @@ $util.toJson($ctx.result)",
30113016
"DataSourceName": "database_bridge_lambda_ds",
30123017
"FieldName": "searchMentionableUsers",
30133018
"Kind": "UNIT",
3014-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
3019+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
30153020
$util.toJson($ctx.result)",
30163021
"TypeName": "Query",
30173022
},
@@ -3140,7 +3145,7 @@ $util.toJson($ctx.result)",
31403145
"DataSourceName": "grid_bridge_lambda_ds",
31413146
"FieldName": "asGridPayload",
31423147
"Kind": "UNIT",
3143-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
3148+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
31443149
$util.toJson($ctx.result)",
31453150
"TypeName": "Query",
31463151
},
@@ -3161,7 +3166,7 @@ $util.toJson($ctx.result)",
31613166
"DataSourceName": "grid_bridge_lambda_ds",
31623167
"FieldName": "getGridSearchSummary",
31633168
"Kind": "UNIT",
3164-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
3169+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
31653170
$util.toJson($ctx.result)",
31663171
"TypeName": "Query",
31673172
},
@@ -3290,7 +3295,7 @@ $util.toJson($ctx.result)",
32903295
"DataSourceName": "workflow_bridge_lambda_ds",
32913296
"FieldName": "getPinboardByComposerId",
32923297
"Kind": "UNIT",
3293-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
3298+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
32943299
$util.toJson($ctx.result)",
32953300
"TypeName": "Query",
32963301
},
@@ -3311,7 +3316,28 @@ $util.toJson($ctx.result)",
33113316
"DataSourceName": "workflow_bridge_lambda_ds",
33123317
"FieldName": "getPinboardsByIds",
33133318
"Kind": "UNIT",
3314-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
3319+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
3320+
$util.toJson($ctx.result)",
3321+
"TypeName": "Query",
3322+
},
3323+
"Type": "AWS::AppSync::Resolver",
3324+
},
3325+
"pinboardappsyncapiworkflowbridgelambdadsQuerygetPinboardsByPathsResolver98DFC3B6": Object {
3326+
"DependsOn": Array [
3327+
"pinboardappsyncapiSchema868D9F5B",
3328+
"pinboardappsyncapiworkflowbridgelambdadsD8193E3E",
3329+
],
3330+
"Properties": Object {
3331+
"ApiId": Object {
3332+
"Fn::GetAtt": Array [
3333+
"pinboardappsyncapi9D519400",
3334+
"ApiId",
3335+
],
3336+
},
3337+
"DataSourceName": "workflow_bridge_lambda_ds",
3338+
"FieldName": "getPinboardsByPaths",
3339+
"Kind": "UNIT",
3340+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
33153341
$util.toJson($ctx.result)",
33163342
"TypeName": "Query",
33173343
},
@@ -3332,7 +3358,7 @@ $util.toJson($ctx.result)",
33323358
"DataSourceName": "workflow_bridge_lambda_ds",
33333359
"FieldName": "listPinboards",
33343360
"Kind": "UNIT",
3335-
"ResponseMappingTemplate": "## schema checksum : 117bac3c96ba985bef3ad1486ee0eb07
3361+
"ResponseMappingTemplate": "## schema checksum : da5ab4d1435d8fb629c068ee4933d29c
33363362
$util.toJson($ctx.result)",
33373363
"TypeName": "Query",
33383364
},

client/gql.ts

+12-3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ const pinboardReturnFields = `
88
headline
99
trashed
1010
isNotFound
11+
path
1112
`;
1213
export const gqlListPinboards = gql`
1314
query MyQuery($searchText: String!) {
@@ -24,6 +25,11 @@ export const gqlGetPinboardsByIds = gql`
2425
getPinboardsByIds(ids: $ids) { ${pinboardReturnFields} }
2526
}
2627
`;
28+
export const gqlGetPinboardsByPaths = gql`
29+
query MyQuery($paths: [String!]!) {
30+
getPinboardsByPaths(paths: $paths) { ${pinboardReturnFields} }
31+
}
32+
`;
2733
export const gqlGetGroupPinboardIds = gql`
2834
query MyQuery {
2935
getGroupPinboardIds {
@@ -43,6 +49,9 @@ export const gqlGetItemCounts = gql`
4349
pinboardId
4450
totalCount
4551
unreadCount
52+
totalCropCount
53+
fiveByFourCount
54+
fourByFiveCount
4655
}
4756
}
4857
`;
@@ -71,9 +80,9 @@ const itemReturnFields = `
7180
`;
7281

7382
// TODO: consider updating the resolver (cdk/stack.ts) to use a Query with a secondary index (if performance degrades when we have lots of items)
74-
export const gqlGetInitialItems = (pinboardId: string) => gql`
75-
query MyQuery {
76-
listItems(pinboardId: "${pinboardId}") {
83+
export const gqlGetInitialItems = gql`
84+
query MyQuery($pinboardId: String!, $maybeAspectRatioFilter: String) {
85+
listItems(pinboardId: $pinboardId, maybeAspectRatioFilter: $maybeAspectRatioFilter) {
7786
${itemReturnFields}
7887
}
7988
}

0 commit comments

Comments
 (0)