What This Screen Does
This screen lists all punch card membership types available in your gym. A punch card works like a pre-paid ticket book – the member buys a set number of visits or sessions and “punches” one off each time they come in. From this screen you can browse, search, filter, sort, export, and manage every punch card type in the system.
How to Get There
Open the dashboard.
In the left-hand menu, click Punch card type.
You are now on the Punch Card Type List screen.
Step-by-Step Guide
1. Browse the Table
When the page loads, the system fetches punch card types for the currently selected gym and displays them in a table. By default, only Active punch cards are shown.
Each row shows the following information:
Column | What It Shows |
Name | The punch card name along with its cover image. Click the name to open the details page. |
Publicly available | Whether the punch card is visible to the public (Yes or No). |
Created at | The date and time the punch card was created. |
Available seats | A progress bar showing seat availability (sold out, low, or available). |
2. Filter the List
Use the toolbar above the table to narrow down what you see:
Filter | Required | What to Enter |
Valid on | No | Pick a date from the date picker. Only punch cards valid on that date will appear. |
Status | No | Select one or more statuses: Active, Inactive, or Expired. Defaults to Active. |
Publicly available | No | Choose Yes, No, or All to filter by public visibility. Defaults to All. |
Search | No | Type part of a punch card name to find it quickly. |
When you change any filter, the table resets to page 1 and refreshes automatically.
If you have active filters, a results summary bar appears below the toolbar showing the current filters. Click the X next to a filter chip to remove it, or click Reset to clear all filters.
3. Sort the Table
Click any column header to sort the table by that column.
Click the same header again to toggle between ascending and descending order.
Your sort preference is saved in the URL, so you can bookmark or share it.
4. Paginate
At the bottom of the table, use the pagination controls to change the page or the number of rows per page.
You can also toggle Dense mode on or off to make rows more compact.
5. Row Actions
Click the three-dot menu icon on the right side of any row to see the available actions:
Action | What It Does |
View | Opens the punch card details page. |
Edit | Opens the punch card edit form. |
Purchase link | Generates a unique purchase link for this punch card. A dialog appears with the link, and you can click Copy to copy it to your clipboard. |
Delete | Opens a confirmation dialog. If you confirm, the punch card is permanently removed. |
You can also click anywhere on the row (outside the action menu) to open the details page.
6. Create a New Punch Card
Click the New punch card button in the top-right corner of the page.
This takes you to the punch card creation form.
7. Export to CSV
Open the toolbar popover menu and click Export.
The system downloads a CSV file named
result.csvcontaining all punch cards matching your current filters (not just the current page).
What Happens Behind the Scenes
Page loads
|
v
Read filters from URL query parameters (status, public, search, validOn, page, sort)
|
v
API call: getPunchCards({ pageSize, pageNumber, sortBy, direction, status, isPublic, validOn, search })
|
v
Table displays the returned punch card types
|
v
(When you change a filter, sort, or page)
URL is updated with the new parameters
|
v
API call fires again with updated parameters
|
v
Table refreshes with new data
Deleting a punch card:
You click "Delete" in the row action menu
|
v
Confirmation dialog appears: "Are you sure want to delete?"
|
v
You click "Delete" to confirm
|
v
API call: VoucherTypesService.deleteVoucherType({ id })
|
v
Success notification: "Punch card removed!"
|
v
Table refreshes to reflect the change
Generating a purchase link:
You click "Purchase link" in the row action menu
|
v
API call: VoucherTypesService.createPurchaseLink({ id })
|
v
Dialog appears with the generated link
|
v
You click "Copy"
|
v
Link is copied to your clipboard
|
v
Success notification: "Link copied to clipboard!"
Troubleshooting
“I do not see any punch cards in the list”
By default, the list only shows Active punch cards. If your punch cards are inactive or expired, change the Status filter to include those statuses.
Make sure you have the correct gym selected in the global gym selector at the top of the dashboard. Punch cards are gym-specific.
“The table is loading forever and never shows data”
Check your internet connection. The page needs to reach the server to fetch punch card data.
Try refreshing the page. If the problem continues, the API may be temporarily unavailable – contact your administrator.
“I deleted a punch card by mistake”
Unfortunately, deletion is permanent. There is no undo.
You will need to recreate the punch card from scratch using the New punch card button.
To avoid accidental deletions, always read the confirmation dialog carefully before clicking Delete.
“The export file is empty or missing data”
The export uses the same filters you currently have active. If your filters are too restrictive, the exported file will contain fewer rows.
Try resetting all filters before exporting to get the full list.
If the file does not download at all, check that your browser is not blocking downloads.
“My filters disappeared after refreshing the page”
Filters are saved in the URL. If you navigated away and came back using the left-hand menu (instead of the browser back button), the URL may have been reset.
Bookmark the filtered URL if you want to return to a specific filter combination later.
“I cannot find the Export button”
The Export option is inside a popover menu in the toolbar area. Look for a small icon button near the search field and click it to reveal the export option.
“The purchase link dialog shows an error or is empty”
This can happen if the server could not generate a link. Make sure the punch card is still active and has not been deleted.
Try again after a few seconds. If the problem persists, contact your administrator.
