From b3633e8032c557f5e83050c97b60a1c17feb7d32 Mon Sep 17 00:00:00 2001 From: Sudeep Ghatak Date: Sat, 14 Mar 2026 19:55:53 +1300 Subject: [PATCH] Initial draft --- view-samples/flight-boarding-card/README.md | 62 +++ .../assets/Create List.ps1 | 29 ++ .../assets/screenshot.png | Bin 0 -> 47930 bytes .../flight-boarding-card/boarding-card.json | 402 ++++++++++++++++++ 4 files changed, 493 insertions(+) create mode 100644 view-samples/flight-boarding-card/README.md create mode 100644 view-samples/flight-boarding-card/assets/Create List.ps1 create mode 100644 view-samples/flight-boarding-card/assets/screenshot.png create mode 100644 view-samples/flight-boarding-card/boarding-card.json diff --git a/view-samples/flight-boarding-card/README.md b/view-samples/flight-boarding-card/README.md new file mode 100644 index 000000000..aa1c65bad --- /dev/null +++ b/view-samples/flight-boarding-card/README.md @@ -0,0 +1,62 @@ +# Flight Boarding Card + +## Summary + +This SharePoint JSON view formatting sample transforms list items into realistic flight boarding cards. Each card mimics a physical airline boarding pass with a main ticket section and a tear-off stub, displaying passenger name, flight details, seat, terminal, gate, boarding time, and boarding group. + +![screenshot of the sample](./assets/screenshot.png) + + +## View requirements + +### Recommended SharePoint List Columns + +| Column Name | Internal Name | Type | Description | +| ----------------- | -------------- | ------------------- | ------------------------------------------------ | +| Title | Title | Single line of text | Passenger full name (e.g. CHAKRABORTY DONA) | +| Airline | Airline | Single line of text | Airline name (e.g. SINGAPORE AIRLINES) | +| Travel Class | TravelClass | Choice | Cabin class (Economy Class, Business Class, etc) | +| Flight Number | FlightNumber | Single line of text | Flight number (e.g. SQ 295) | +| Departure Code | DepartureCode | Single line of text | 3-letter IATA departure airport code (e.g. SIN) | +| Departure City | DepartureCity | Single line of text | Departure city name (e.g. SINGAPORE) | +| Arrival Code | ArrivalCode | Single line of text | 3-letter IATA arrival airport code (e.g. CHC) | +| Arrival City | ArrivalCity | Single line of text | Arrival city name (e.g. CHRISTCHURCH) | +| Flight Date | FlightDate | Single line of text | Flight date formatted as DDMMMYY (e.g. 30JAN26) | +| Boarding Time | BoardingTime | Single line of text | Boarding time (e.g. 08:00 AM) | +| Seat | Seat | Single line of text | Seat number (e.g. 60D) | +| Boarding Group | BoardingGroup | Number | Boarding group number (e.g. 4) | +| Terminal | Terminal | Single line of text | Departure terminal (e.g. 3) | +| Gate | Gate | Single line of text | Departure gate (e.g. B12) | +| Issued From | IssuedFrom | Single line of text | City code where ticket was issued (e.g. DEL) | +| Booking Reference | BookingRef | Single line of text | Booking/PNR reference number (e.g. 00105) | + +A PowerShell script has been provided in the [assets](./assets/Create%20List.ps1) folder to provision the list for you. + +**Note:** This script uses [PnP PowerShell](https://pnp.github.io/powershell/) and requires an environment ready for PnP PowerShell. + +## Sample + +Solution|Author +--------|--------- +boarding-card.json | [Sudeep Ghatak](https://github.com/sudeepghatak) ([LinkedIn](https://www.linkedin.com/in/sudeepghatak/)) + +## Version history + +Version|Date|Comments +-------|----|-------- +1.0|March 14, 2026|Initial release + +## Disclaimer + +**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.** + +--- + +## Additional notes + +- The **Title** column is used as the passenger name. +- **FlightDate** is stored as text in `DDMMMYY` format (e.g. `30JAN26`) to match the printed style on a real boarding pass. +- The **IssuedFrom** field renders as `EX ` on the card (e.g. `EX DEL`). Leave blank if not applicable. +- The "GATE CLOSES 15 MINS BEFORE DEPARTURE" message is static and always displayed. + + diff --git a/view-samples/flight-boarding-card/assets/Create List.ps1 b/view-samples/flight-boarding-card/assets/Create List.ps1 new file mode 100644 index 000000000..214a952b1 --- /dev/null +++ b/view-samples/flight-boarding-card/assets/Create List.ps1 @@ -0,0 +1,29 @@ +# Connect to SharePoint +Connect-PnPOnline -Url "https://sudeepghatakdemos.sharepoint.com/sites/ashishghatak" -ClientId "8ea8bc4f-15fa-477f-8d17-27821e8be665" -Tenant "sudeepghatakdemos.onmicrosoft.com" -DeviceLogin + +# Create the List +$listName = "BoardingPasses" +New-PnPList -Title $listName -Template GenericList -OnQuickLaunch + +# Set list description +Set-PnPList -Identity $listName -Description "A list to store flight boarding pass details." + +# Add Columns +Add-PnPField -List $listName -DisplayName "Airline" -InternalName "Airline" -Type Text -AddToDefaultView +Add-PnPField -List $listName -DisplayName "Travel Class" -InternalName "TravelClass" -Type Choice -AddToDefaultView ` + -Choices @("Economy Class", "Business Class", "First Class") +Add-PnPField -List $listName -DisplayName "Flight Number" -InternalName "FlightNumber" -Type Text -AddToDefaultView +Add-PnPField -List $listName -DisplayName "Departure Code" -InternalName "DepartureCode" -Type Text -AddToDefaultView +Add-PnPField -List $listName -DisplayName "Departure City" -InternalName "DepartureCity" -Type Text -AddToDefaultView +Add-PnPField -List $listName -DisplayName "Arrival Code" -InternalName "ArrivalCode" -Type Text -AddToDefaultView +Add-PnPField -List $listName -DisplayName "Arrival City" -InternalName "ArrivalCity" -Type Text -AddToDefaultView +Add-PnPField -List $listName -DisplayName "Flight Date" -InternalName "FlightDate" -Type Text -AddToDefaultView +Add-PnPField -List $listName -DisplayName "Boarding Time" -InternalName "BoardingTime" -Type Text -AddToDefaultView +Add-PnPField -List $listName -DisplayName "Seat" -InternalName "Seat" -Type Text -AddToDefaultView +Add-PnPField -List $listName -DisplayName "Boarding Group" -InternalName "BoardingGroup" -Type Number -AddToDefaultView +Add-PnPField -List $listName -DisplayName "Terminal" -InternalName "Terminal" -Type Text -AddToDefaultView +Add-PnPField -List $listName -DisplayName "Gate" -InternalName "Gate" -Type Text -AddToDefaultView +Add-PnPField -List $listName -DisplayName "Issued From" -InternalName "IssuedFrom" -Type Text -AddToDefaultView +Add-PnPField -List $listName -DisplayName "Booking Reference" -InternalName "BookingRef" -Type Text -AddToDefaultView + +Write-Host "List '$listName' created successfully with all columns!" -ForegroundColor Green diff --git a/view-samples/flight-boarding-card/assets/screenshot.png b/view-samples/flight-boarding-card/assets/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..b99b9b175dea45579164092b04dfaa4ec39a4f92 GIT binary patch literal 47930 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 literal 0 HcmV?d00001 diff --git a/view-samples/flight-boarding-card/boarding-card.json b/view-samples/flight-boarding-card/boarding-card.json new file mode 100644 index 000000000..ef20f5682 --- /dev/null +++ b/view-samples/flight-boarding-card/boarding-card.json @@ -0,0 +1,402 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/sp/view-formatting.schema.json", + "hideSelection": true, + "hideColumnHeader": true, + "rowFormatter": { + "elmType": "div", + "style": { + "display": "flex", + "flex-direction": "row", + "background-color": "#f5f0eb", + "border": "1px solid #ccc", + "border-radius": "10px", + "box-shadow": "0 4px 16px rgba(0,0,0,0.25)", + "margin": "16px auto", + "max-width": "820px", + "overflow": "hidden", + "color": "#111", + "font-family": "Arial, sans-serif" + }, + "children": [ + { + "elmType": "div", + "style": { + "flex-grow": "3", + "padding": "14px 16px", + "border-right": "2px dashed #aaa", + "display": "flex", + "flex-direction": "column" + }, + "children": [ + { + "elmType": "div", + "style": { + "display": "flex", + "justify-content": "space-between", + "align-items": "center", + "border-bottom": "2px solid #111", + "padding-bottom": "6px", + "margin-bottom": "6px" + }, + "children": [ + { + "elmType": "div", + "style": { "display": "flex", "align-items": "center" }, + "children": [ + { + "elmType": "span", + "txtContent": "[$Airline]", + "style": { + "font-size": "10px", + "font-weight": "bold", + "margin-right": "8px" + } + }, + { + "elmType": "span", + "txtContent": "[$TravelClass]", + "style": { + "font-size": "15px", + "font-weight": "bold" + } + } + ] + }, + { + "elmType": "div", + "style": { "font-size": "22px", "color": "#003366" }, + "attributes": { "iconName": "AirplaneSolid" } + } + ] + }, + { + "elmType": "div", + "txtContent": "[$Title]", + "style": { + "font-size": "20px", + "font-weight": "bold", + "margin-bottom": "10px" + } + }, + { + "elmType": "div", + "style": { + "display": "flex", + "align-items": "stretch", + "margin-bottom": "8px" + }, + "children": [ + { + "elmType": "div", + "style": { "flex-grow": "1", "display": "flex", "flex-direction": "column" }, + "children": [ + { + "elmType": "div", + "style": { "text-align": "right", "font-size": "11px", "font-weight": "bold", "margin-bottom": "4px" }, + "txtContent": "=if([$IssuedFrom]!='','EX '+[$IssuedFrom],'')" + }, + { + "elmType": "div", + "style": { + "display": "flex", + "align-items": "center", + "border-top": "1px solid #111", + "border-bottom": "1px solid #111", + "padding-top": "4px", + "padding-bottom": "4px", + "font-size": "11px", + "margin-bottom": "8px" + }, + "children": [ + { + "elmType": "span", + "txtContent": "Flight", + "style": { "color": "#555", "margin-right": "4px" } + }, + { + "elmType": "span", + "txtContent": "[$FlightNumber]", + "style": { "font-weight": "bold", "margin-right": "12px" } + }, + { + "elmType": "span", + "txtContent": "From", + "style": { "color": "#555", "margin-right": "4px" } + }, + { + "elmType": "span", + "txtContent": "[$DepartureCode]", + "style": { "font-weight": "bold", "margin-right": "12px" } + }, + { + "elmType": "span", + "txtContent": "To", + "style": { "color": "#555", "margin-right": "4px" } + }, + { + "elmType": "span", + "txtContent": "[$ArrivalCode]", + "style": { "font-weight": "bold", "margin-right": "12px" } + }, + { + "elmType": "span", + "txtContent": "Date", + "style": { "color": "#555", "margin-right": "4px" } + }, + { + "elmType": "span", + "txtContent": "[$FlightDate]", + "style": { "font-weight": "bold" } + } + ] + }, + { + "elmType": "div", + "style": { "display": "flex", "align-items": "flex-end" }, + "children": [ + { + "elmType": "div", + "style": { "margin-right": "14px" }, + "children": [ + { + "elmType": "div", + "txtContent": "Terminal", + "style": { "font-size": "9px", "color": "#555" } + }, + { + "elmType": "div", + "txtContent": "[$Terminal]", + "style": { "font-size": "26px", "font-weight": "bold", "line-height": "26px" } + } + ] + }, + { + "elmType": "div", + "style": { "margin-right": "14px" }, + "children": [ + { + "elmType": "div", + "txtContent": "Gate", + "style": { "font-size": "9px", "color": "#555" } + }, + { + "elmType": "div", + "txtContent": "[$Gate]", + "style": { "font-size": "26px", "font-weight": "bold", "line-height": "26px" } + } + ] + }, + { + "elmType": "div", + "style": { "flex-grow": "1", "text-align": "center", "margin-right": "14px" }, + "children": [ + { + "elmType": "div", + "txtContent": "Boarding time", + "style": { "font-size": "9px", "color": "#555" } + }, + { + "elmType": "div", + "txtContent": "[$BoardingTime]", + "style": { "font-size": "15px", "font-weight": "bold" } + }, + { + "elmType": "div", + "txtContent": "[$FlightDate]", + "style": { "font-size": "10px", "color": "#444" } + } + ] + }, + { + "elmType": "div", + "style": { "text-align": "center", "margin-right": "14px" }, + "children": [ + { + "elmType": "div", + "txtContent": "Seat", + "style": { "font-size": "9px", "color": "#555" } + }, + { + "elmType": "div", + "txtContent": "[$Seat]", + "style": { "font-size": "30px", "font-weight": "bold", "line-height": "30px" } + } + ] + }, + { + "elmType": "div", + "style": { "text-align": "center" }, + "children": [ + { + "elmType": "div", + "txtContent": "Boarding Group", + "style": { "font-size": "9px", "color": "#555" } + }, + { + "elmType": "div", + "txtContent": "[$BoardingGroup]", + "style": { "font-size": "30px", "font-weight": "bold", "line-height": "30px" } + } + ] + } + ] + } + ] + } + ] + }, + { + "elmType": "div", + "style": { + "display": "flex", + "justify-content": "space-between", + "font-size": "9px", + "border-top": "1px solid #bbb", + "padding-top": "6px" + }, + "children": [ + { + "elmType": "span", + "txtContent": "GATE CLOSES 15 MINS BEFORE DEPARTURE" + }, + { + "elmType": "span", + "txtContent": "[$BookingRef]", + "style": { "font-weight": "bold" } + } + ] + } + ] + }, + { + "elmType": "div", + "style": { + "flex-grow": "1", + "min-width": "160px", + "padding": "14px 12px", + "display": "flex", + "flex-direction": "column" + }, + "children": [ + { + "elmType": "div", + "style": { + "display": "flex", + "justify-content": "space-between", + "align-items": "center", + "border-bottom": "2px solid #111", + "padding-bottom": "4px", + "margin-bottom": "8px" + }, + "children": [ + { + "elmType": "span", + "txtContent": "[$TravelClass]", + "style": { "font-size": "12px", "font-weight": "bold" } + }, + { + "elmType": "div", + "style": { "font-size": "16px", "color": "#003366" }, + "attributes": { "iconName": "AirplaneSolid" } + } + ] + }, + { + "elmType": "div", + "txtContent": "[$Title]", + "style": { "font-weight": "bold", "font-size": "12px", "margin-bottom": "8px" } + }, + { + "elmType": "div", + "style": { "display": "flex", "margin-bottom": "2px" }, + "children": [ + { + "elmType": "span", + "txtContent": "From", + "style": { "color": "#555", "font-size": "10px", "min-width": "30px", "margin-right": "4px" } + }, + { + "elmType": "span", + "txtContent": "[$DepartureCity]", + "style": { "font-weight": "bold", "font-size": "11px" } + } + ] + }, + { + "elmType": "div", + "style": { "display": "flex", "margin-bottom": "10px" }, + "children": [ + { + "elmType": "span", + "txtContent": "To", + "style": { "color": "#555", "font-size": "10px", "min-width": "30px", "margin-right": "4px" } + }, + { + "elmType": "span", + "txtContent": "[$ArrivalCity]", + "style": { "font-weight": "bold", "font-size": "11px" } + } + ] + }, + { + "elmType": "div", + "style": { "display": "flex", "justify-content": "space-between", "align-items": "flex-end", "margin-bottom": "8px" }, + "children": [ + { + "elmType": "div", + "children": [ + { + "elmType": "div", + "txtContent": "Flight", + "style": { "font-size": "9px", "color": "#555" } + }, + { + "elmType": "div", + "txtContent": "[$FlightNumber]", + "style": { "font-weight": "bold", "font-size": "12px" } + } + ] + }, + { + "elmType": "div", + "style": { "text-align": "right" }, + "children": [ + { + "elmType": "div", + "txtContent": "Seat", + "style": { "font-size": "9px", "color": "#555" } + }, + { + "elmType": "div", + "txtContent": "[$Seat]", + "style": { "font-size": "24px", "font-weight": "bold", "line-height": "24px" } + } + ] + } + ] + }, + { + "elmType": "div", + "txtContent": "[$FlightDate]", + "style": { "font-weight": "bold", "font-size": "13px", "margin-bottom": "8px" } + }, + { + "elmType": "div", + "txtContent": "[$BookingRef]", + "style": { "font-size": "10px", "font-weight": "bold", "margin-bottom": "6px" } + }, + { + "elmType": "div", + "style": { + "font-size": "9px", + "color": "#555", + "border-top": "1px solid #bbb", + "padding-top": "4px" + }, + "txtContent": "A STAR ALLIANCE MEMBER" + } + ] + } + ] + } +}