BookYourPTO

Changelog

Stay up to date with the latest changes, improvements, and bug fixes in BookYourPTO.

BookYourPTO v1.1.2 release notes

Latest

v1.1.2

Highlights

Home — the page you land on after signing in

Signing in used to drop you on the Dashboard, a calendar grid built for planning team coverage. It answers "who is off when" well and almost nothing else, so anything waiting on you personally lived behind a sidebar entry you had to think to visit.

Home is now the landing page. It gathers what needs you, your own records, and — for people who manage or administer — their team and the organization. The Dashboard is unchanged and still in the sidebar; nothing was taken out of it.

What appears depends on your role, on whether anyone reports to you, and on which modules the organization has switched on:

CardWho sees it
Action Required — documents awaiting your signature, assessments you owe somebody, onboarding tasks and training past their date, expired certificationsEveryone. Cannot be switched off
Waiting on You — leave, expense and time requests routed to youAnyone requests are routed to
Time Off — your balances and your next booked leaveEveryone
Today's Hours — hours logged today and whether you are clocked inWhen time tracking is on
Next 1:1 — who you next speak to, and whenEveryone
My Stuff — goals, training, certifications, benefits and equipmentEveryone
Who's Out — who is away today, plus upcoming public holidays on your own calendarEveryone
Celebrations — birthdays and work anniversaries over the next two weeksEveryone
What's Happening — recent updates about your requests and documentsEveryone
Probation Reviews — reviews falling in the next two weeksThe employee, their manager, their department head, administrators and executives
My Team — your people, who is away, and when you next speak to eachAnyone with reports, by org chart rather than by role
Onboarding — onboarding and offboarding still runningAdministrators, executives, and department heads for their own department
Headcount, Review Cycles, Needs AttentionAdministrators and executives

Every row links to the page that shows exactly what it counts, so a count and the page behind it cannot disagree.

Arrange the board yourself

Customise turns the board into the editor. Each card gains a grip and a × on its corners, and an Add cards tray appears along the bottom. Drag a card to move it and the rest close up around it; arrow keys move the focused card too, so the board can be arranged without a mouse. Nothing is saved until you select Save, and Cancel puts it back.

The tray is not only the cards you have removed. There is a library of optional cards that start switched off, so Home does not open with twenty at once:

  • Company Holidays — the next public holidays on your own calendar.
  • Workforce Mix — headcount by division, work location or employment type.
  • Length of Service — how long people have been with the organization.
  • Profile Completeness — records missing a start date, department, job title, date of birth or mobile number, the fields leave accrual, approval routing and reminders depend on.

The last three are for administrators and executives. Each tile shows the card's own icon, so the tray says what you are about to add. Your layout is stored on your account rather than in the browser, so it follows you to another device, and a card added to the product later appears next to the cards it belongs with rather than at the bottom of a board you already arranged.

Switching a card off changes only what you see. It grants no access, and every endpoint behind a card still checks permission for itself.

Nothing on the Dashboard is missing from Home

Everything the Dashboard surfaces now has a home on the new page: upcoming absences for the next fortnight, upcoming public holidays resolved per person rather than per organization, and probation reviews. Probation visibility follows the same rule the Dashboard uses — self, their manager, their department head, administrators and executives — and that rule now lives in one place both pages read rather than being written out twice.

The org chart follows Reports To

The org chart was drawn from roles, not from the reporting structure. Department heads were handed to administrators round-robin and administrators to executives the same way, so the lines it drew were invented: the third person in a list reported to the first administrator purely because of their index. Anyone reading it as a reporting structure was being misled, and the Reports To field people had carefully filled in was ignored.

It is now built from Reports To and from nothing else:

  • An executive is no longer automatically at the top. If an executive reports to somebody — a founder, a board, a parent company — they appear beneath them. Role now affects only the order the top-level people are listed in.
  • Anyone who reports to nobody is a top-level person, so a chart can have several.
  • Somebody whose manager is deactivated, somebody recorded as their own manager, and a reporting loop each surface at the top rather than vanishing, so the record that needs fixing is visible.

Export on the chart offers a PNG of the chart as drawn, the same image as a PDF, and a .csv shaped for Visio, for Lucidchart, or unformatted for a spreadsheet. The files are built from the same Reports To field, so a download and the chart always agree.

Who can download is set separately from who can browse, under Download Access in Company Directory settings. It defaults to all employees. Somebody who cannot view the chart can never download it, whichever option is chosen — export can be narrower than viewing but never wider.


Improvements

  • The New menu — starts the things you can start: a time off request, an expense report, a time entry, an employee, a signature request, a report. Entries appear only for actions you have permission to complete, and each opens the form rather than merely landing you on the page.
  • "Other departments: Hidden" is honoured — with that setting on, Who's Out and Celebrations are limited to a non-administrator's own department, matching the Dashboard. Administrators and executives are exempt, as the setting says.
  • Private leave types read as "Private" to anyone not entitled to the detail, through the same helper the calendar and the digest emails use.
  • Who's Out sends only what it draws — a name, a date range and a leave type. The reason somebody gave for being off, their notes and any approver comment stay on the server.
  • Onboarding and offboarding runs follow the existing rule — administrators, executives, and a department head for their own department. Having somebody report to you is not enough: that a colleague is being offboarded is not something their reporting line should learn from a card.
  • Compensation and demographic breakdowns were considered and left out. Pay figures do not belong on a landing page, and a demographic split over a small team identifies individuals.
  • Balance visibility follows the organization setting — the Time Off card respects the calendar balance-display choice in General settings, so an organization that hides the sick bucket does not have it reappear on Home.
  • Deep links into create forms — ?new=1 on the calendar, expenses and users pages opens the create form on arrival and then clears itself from the URL, so a refresh or a shared link does not reopen it.
  • One landing route — where a signed-in session begins is now a single constant rather than a literal repeated across eight files, so a password sign-in, a Google sign-in, email verification and the end of first-run setup cannot land people in different places. Permission-denied redirects deliberately still go to the Dashboard: where a session starts and where somebody is bounced to are different decisions.
  • A guided tour for Home, replayable from Settings → Guided Tours.
  • Expenses and Documents cards. My Expenses shows your own claims by where they have got to — drafts, awaiting approval, approved but unpaid, sent back — with what the organization still owes you, and appears only when the expenses module is switched on. My Documents shows what is waiting on your signature, what is expiring, and what is waiting on somebody ahead of you in a signing order. Both link straight to the filtered list.
  • The first-run setup checklist has moved to Home. It was on the Dashboard, which is no longer where a signed-in session lands, so an administrator who had just created an organization had to navigate away from their landing page to find the one thing asking them to finish setting it up. It still shows only to administrators and executives, and still disappears once dismissed or completed.
  • Four more cards for the Home tray. Leave Balance gives the full picture the calendar sidebar shows — allowance, carry-over, used and remaining per bucket, with a bar for each. Deductible Leave and Non-deductible Leave split the per-type breakdown into two cards, because "what has my allowance gone on" and "what have I taken that costs me nothing" are different questions. Leave Balance follows the organization's Calendar Balance Display setting, so a bucket hidden on the calendar stays hidden here; the two breakdown cards list exactly what the calendar's Deductible and Non-deductible lists show.
  • Organization Time, for anyone whose own timezone differs from the organization's: both clocks side by side with how far apart they are right now, computed from the actual instant so it stays right across daylight saving. It is not offered at all when the two match — a second clock showing the same time is noise.
  • Home respects the Time Tracking & Projects switch. With the module off, Today's Hours no longer appears and cannot be added from the tray, and the approvals card drops its Time entries row and leaves those requests out of its total. The page now reads the organization's switch directly rather than inferring it from whether a clock request happened to succeed.
  • Download Access — a new Company Directory setting controlling who can export the org chart, independent of who can browse it. An export is a roster in a file: it leaves the product, outlives the session, and forwards like any other attachment.
  • Employee # is now an optional column on the People list, switched off by default and offered to administrators and executives. It used to be on for everyone and blank for everyone: the page reads the directory view of each person, which carried the employee number for nobody, so the column took width from the name and job title beside it and showed a dash. The directory view now carries the number for those two roles, which is what makes the column work at all. Employee numbers remain searchable for everyone, and still appear on the profile.
  • Home names what it counts. The My Expenses and My Documents cards used to give a status and a number — "Awaiting approval: 1" — and leave you to open the list to find out which. Each row now names the most recent reports or documents under it, each opening the record itself, with "and N more" when there are others. A document waiting on your signature opens straight into signing.
  • Who's Out says who. The Coming up list read "1 person away" against each day. It now lists the people whose time off begins that day, with their photo and the type of leave, drawn the same way as the people out today. Private leave types still read as "Private" to anyone not entitled to the detail, and nothing beyond a name, a date and a leave type leaves the server.
  • Work anniversaries name the organization. Celebrations read "2 years with the team"; it now reads "2 years with" followed by the organization's name, falling back to "the team" only when the organization has no name set.

Bug fixes

  • A failed load printed the server's error. When a database query failed, that meant the full column list of the User table — every field name, including the sensitive ones — rendered on the landing page in place of an explanation. Home now shows one neutral line and writes the real failure to the console, and the three endpoints behind it replace any unexpected error with a clean refusal before it leaves the server. Deliberate refusals (not signed in, not permitted) still say what they mean.
  • A department head with no department could see probation data for every employee who also had no department, because the two empty values matched each other. Both sides must now be set for the department rule to apply.
  • Celebrations could never show a photo. Birthdays and work anniversaries drew a cake or a medal where the person's face belongs, and the query behind the card fetched neither the photo nor the person's id, so no amount of styling could have fixed it. The card now shows profile photos, keeping the colour that distinguishes a birthday from an anniversary as a ring and moving the glyph to a corner badge. People without a photo still show their initials.
  • Cards were invisible in dark mode — they were painted with the page background. They now use the same card surface and border treatment as the calendar and profile pages.
  • The board collapsed into a single column while editing. The corner controls were positioned to overhang each card, and a control that overflows its column makes the browser abandon column balancing for the whole board. Cards now keep an identical layout whether or not you are editing.
  • A heading repeated the card beneath it. The board was split by section headings, one reading My Team directly above a card whose own header also read My Team, and one announcing the organization's name to the only person who already knew it. The board is now one continuous run of cards, flowing in columns so a short card sits under a tall one instead of leaving a gap.
  • Three cards could render as an empty box — a header and a border with nothing in them — when the section they summarised had no entries. They are now left out until they have something to say. Action Required still says so when you are clear, which is the point of that card.
  • The org chart invented reporting lines — see the highlight above. It is now built from the Reports To field rather than from roles.
  • The org chart could not be exported at all. It now downloads as a PNG, a PDF or one of three CSV shapes.
  • Everyone could see everyone's work anniversary. The dashboard sent each colleague's hire date to every viewer, so the whole organization saw the whole organization's anniversaries — and a department head saw into departments they have no part in. The daily and weekly digests mailed them just as widely. A work anniversary is derived from the hire date, which is employment information: it reveals tenure, relative seniority and who is new.
    It is now limited to the employee themselves, their manager, their department head and administrators and executives, on the dashboard, on Home and in both digests. Birthdays are unchanged — they carry no employment information and the year is never sent.
  • Security advisories cleared in axios, @grpc/grpc-js, devalue and dompurify. npm audit reports no vulnerabilities.
  • The greeting and the date came from different clocks. "Good afternoon" was read from the browser while the date beside it was resolved in the viewer's own timezone, so somebody whose profile says Asia/Calcutta reading from Vancouver could be greeted for an afternoon that, by the date in the same sentence, had already ended. Both now use the viewer's timezone.
  • The monthly anniversary email ignored its own rule. It narrowed to a department only when the recipient was a department head with a department assigned; a head who had not been given one yet fell through the condition and was mailed every anniversary in the organization. It now uses the same rule as the dashboard, Home and the digests, and so also reaches a head's direct reports outside their department, which it previously missed.
  • An onboarding task assigned to you opened your own profile. Action Required linked every onboarding task to your own Onboarding tab, but a task assigned to you is usually part of somebody else's onboarding and lives on their profile — so the link opened an empty tab. The card now lists one row per person, named, opening the Onboarding or Offboarding tab on their profile, which is where the onboarding notifications already pointed.
  • Time Off disagreed with the calendar. The card read each leave type's default allowance and ignored the person's own allowance and anything carried over, so somebody with 15 days plus 5 carried and 20 used saw "-10, 10 over allowance" on Home and 0 remaining on their calendar. It now shows the Annual and Sick balances the calendar shows, from the same figures.
  • My Documents counted a different set from the page it links to. "N in total" counted every signature request ever sent to you, while All documents opens your folder, which lists the documents filed to you. The two now share one definition of what a folder holds, so the number in the header is the number of documents you find when you follow the link.
  • Non-deductible Leave on Home was always empty. The card looked for non-deductible types among the deductible ones, where by definition there are none, so it said "No non-deductible leave yet" to everybody. It now lists the same types and days as the calendar's Non-deductible leave panel.
  • Deductible Leave on Home left out some leave. A type that draws down a balance without an allowance of its own — Sick Leave - Paid, typically — was dropped, so the card could read 20 days where the calendar read 22. It was also narrowed by the Calendar Balance Display setting, which the calendar's own list does not apply, so an organization showing only the annual balance lost its sick leave from the card. It now lists every deductible type with days taken, in the calendar's order, with each type's own icon, and shows a capped non-deductible type as "6 / 5 days" as the calendar does.