Skip to content

Conversation

@SebastianKrupinski
Copy link
Contributor

@SebastianKrupinski SebastianKrupinski commented Jul 1, 2025

Summary

Resolves: nextcloud/server#50084

Proposal Editor
image

Proposal Overview
image

Proposal Participant Availability
image

Proposal Status and List
image

@codecov
Copy link

codecov bot commented Jul 1, 2025

Codecov Report

❌ Patch coverage is 0% with 771 lines in your changes missing coverage. Please review.
✅ Project coverage is 13.67%. Comparing base (11fc845) to head (4a948f0).
⚠️ Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
src/views/Proposal/ProposalEditor.vue 0.00% 424 Missing ⚠️
src/components/Proposal/ProposalResponseMatrix.vue 0.00% 114 Missing ⚠️
src/views/Proposal/ProposalPublic.vue 0.00% 84 Missing ⚠️
...components/AppNavigation/Proposal/ProposalList.vue 0.00% 79 Missing ⚠️
...rc/components/Proposal/ProposalParticipantItem.vue 0.00% 37 Missing ⚠️
src/components/Proposal/ProposalDateItem.vue 0.00% 31 Missing ⚠️
src/views/Calendar.vue 0.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #7072      +/-   ##
==========================================
- Coverage   14.84%   13.67%   -1.18%     
==========================================
  Files         212      218       +6     
  Lines       10297    11180     +883     
  Branches     2474     2704     +230     
==========================================
  Hits         1529     1529              
- Misses       8418     9301     +883     
  Partials      350      350              
Flag Coverage Δ
javascript 13.67% <0.00%> (-1.18%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@SebastianKrupinski
Copy link
Contributor Author

Only 3.2K of lines... I can do better 😆

@SebastianKrupinski SebastianKrupinski marked this pull request as draft July 1, 2025 17:34
Copy link
Member

@ChristophWurst ChristophWurst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extract the typescript introduction into a separate PR

@SebastianKrupinski SebastianKrupinski force-pushed the feat/meeting-proposals branch 2 times, most recently from e2ff222 to 49a6962 Compare July 4, 2025 20:31
@SebastianKrupinski SebastianKrupinski changed the title [WIP] Meeting Proposals [WIP] feat: Meeting Proposals Jul 5, 2025
@SebastianKrupinski
Copy link
Contributor Author

Basic functionality is implemented.

  • Proposal Creation
  • Proposal Modification
  • Proposal Deletion
  • Proposal Management (List of proposals)
  • Proposal Response (Participant date selection)
  • Mail notifications on Create / Modify / Delete
  • iMip Messaging to internal users on Create / Modify / Delete (Time blockers in calendar)

@SebastianKrupinski
Copy link
Contributor Author

SebastianKrupinski commented Jul 5, 2025

Remain Tasks,

@SebastianKrupinski SebastianKrupinski force-pushed the feat/meeting-proposals branch 2 times, most recently from ef031fb to 0430fcf Compare July 7, 2025 23:25
@ChristophWurst
Copy link
Member

ChristophWurst commented Jul 8, 2025

  • Mail notifications on Create / Modify / Delete

  • iMip Messaging to internal users on Create / Modify / Delete (Time blockers in calendar)

These two sound optional. Does it bring your PR closer to a reviewable size when you split them off?

@SebastianKrupinski
Copy link
Contributor Author

  • Mail notifications on Create / Modify / Delete
  • iMip Messaging to internal users on Create / Modify / Delete (Time blockers in calendar)

These two sound optional. Does it bring your PR closer to a reviewable size when you split them off?

Those two where part of the original spec, also they are part of the feature that we are trying to replicate, and kind of necessary. The one thing we could drop is the iMip messaging but that is only 100 lines so not a huge amount of code.

@SebastianKrupinski
Copy link
Contributor Author

SebastianKrupinski commented Jul 8, 2025

Completed initial review with @nimishavijay @jancborchardt @hamza221 today

@nimishavijay
Copy link
Member

nimishavijay commented Jul 8, 2025

Notes from the design review:

Overall

  • When you fill in users list them vertically using listitems instead of userbubbles
  • Fullcalendar buttons should be adjusted to match NC design
  • remove zoom buttons? unintuitive. instead make default snapto to 15 mins and bring up default editor to adjust
  • Instead of showing a blank block for past dates, show just the heading
  • Instead of showing available blocks, show busy blocks with the same striked out pattern as in new free/busy
  • Show a close button on a selected time in the fullcalendar
  • When you click on a date,
  • Don't show delete button if it can't be deleted
  • Don't show close or cancel button
  • Track who voted
  • Follow up for next versions: Once you fill out organizers and duration, automatically suggest a few timeslots based on free/busy

Navigation

  • Show list of proposals in the left navigation below appointment schedules in a new section
  • Similar to apppointment schedules show a plus button next to the navigation caption which opens the create new proposals
  • Each item can have an icon or 2 to indicate responses

Papercuts

  • "Create Meeting Proposal" --> "Create meeting proposal" use sentence case, not title case
  • Also similar for buttons in the bottom row
  • "today" "week" "day" --> "Today" "Week" "Day" in fullcalendar component
  • Move all the buttons to the right, and follow the order of having the primary button at the end, and then the rest of the buttons

Voting screen

  • Always show organizer with avatar and name
  • Show other participants if possible?
  • Make the dates nicer, use the full words
    • If it is the current year, don't show the year
  • Possibly copy exactly the appointment voting screen
    • Show a list of dates in the middle column, possibly arranged in a a clearer way (eg divide into sections based on month)
    • On the left column show all the info about the proposal
    • Add a timezone picker!
    • Possibly show who already responded to a date like in MS

Email

  • Title, description, location, duration, organizer for first version
  • Participants and proposed times as a follow up?

To do for Nim:

  • Design of time slots inside the proposal creation/update view
  • Design of showing who responded to what inside the proposal view
  • Layout improvements to the voting page

@ChristophWurst
Copy link
Member

Those two where part of the original spec, also they are part of the feature that we are trying to replicate, and kind of necessary. The one thing we could drop is the iMip messaging but that is only 100 lines so not a huge amount of code.

Okay. Thank you for the insights.

@jancborchardt jancborchardt moved this to 🏗️ At engineering in 🖍 Design team Jul 9, 2025
Copy link
Member

@st3iny st3iny left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested this and found some issues:

  1. Attendee emails: Date is always Thursday, January 1, 1970
  2. Avatars are not working in the modal and on the public page (probably due to display name being used instead of user id).
  3. Creating an event is not working properly (after attendees reacted).

@st3iny st3iny dismissed their stale review August 22, 2025 14:22

Blockers have been addressed.

@SebastianKrupinski
Copy link
Contributor Author

@nimishavijay @st3iny thank you, I will make the changes later today

@SebastianKrupinski
Copy link
Contributor Author

SebastianKrupinski commented Aug 23, 2025

Tested this and found some issues:

1. Attendee emails: Date is always `Thursday, January 1, 1970`

2. Avatars are not working in the modal and on the public page (probably due to display name being used instead of user id).

3. Creating an event is not working properly (after attendees reacted).

Fixed.

  1. Attendee email dates now show properly with time span and no longer are bulleted
  2. Avatars now show properly
  3. Converting a meeting to a proposal now works properly, although the is a issue, that will need to be addresses in a followup
  4. Fixed timezone selector on public view , it now changes the times properly
  5. Fixed selected time slot drag and drop

@SebastianKrupinski SebastianKrupinski force-pushed the feat/meeting-proposals branch 2 times, most recently from adbad1d to f5afa52 Compare August 24, 2025 21:03
Copy link
Member

@st3iny st3iny left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Creating the event is still not working.

I can see network requests and the proposal being deleted. However, there is no calendar event being created in the organizer's calendar.

The rest seems to be fixed now.

@SebastianKrupinski
Copy link
Contributor Author

Creating the event is still not working.

I can see network requests and the proposal being deleted. However, there is no calendar event being created in the organizer's calendar.

The rest seems to be fixed now.

Yeah that was the glitch I mentioned in the last comment. It resolved.

@st3iny
Copy link
Member

st3iny commented Sep 1, 2025

Let's drop support for Nextcloud < 32 and merge this to circumvent the iMip API incompatibilties on Nextcloud < 32 (and < 31 respectively).

@st3iny st3iny dismissed stale reviews from jancborchardt and ChristophWurst September 1, 2025 15:09

Design feedback has been addressed.

@SebastianKrupinski SebastianKrupinski force-pushed the feat/meeting-proposals branch 3 times, most recently from dddc05f to c0906ba Compare September 1, 2025 16:16
@SebastianKrupinski SebastianKrupinski changed the title [WIP] feat: Meeting Proposals feat: Meeting Proposals Sep 1, 2025
Signed-off-by: SebastianKrupinski <[email protected]>
@SebastianKrupinski SebastianKrupinski marked this pull request as ready for review September 1, 2025 16:24
@SebastianKrupinski SebastianKrupinski merged commit a94c1c7 into main Sep 1, 2025
52 of 54 checks passed
@SebastianKrupinski SebastianKrupinski deleted the feat/meeting-proposals branch September 1, 2025 16:25
@github-project-automation github-project-automation bot moved this from 🏗️ In progress to ☑️ Done in 💌 📅 👥 Groupware team Sep 1, 2025
@github-project-automation github-project-automation bot moved this from 🏗️ At engineering to 🎉 Done in 🖍 Design team Sep 1, 2025
@SebastianKrupinski
Copy link
Contributor Author

Temporarily removed the time blocking part of this feature (iMip Sending) due to missing changes in server.

Will be added in:

#7315

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2. developing Work in progress

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

Calendar invitation time proposals

7 participants