Commit Graph

500 Commits

Author SHA1 Message Date
David Heinemeier Hansson aefbac9c14 Get rid of single-use and slight awkward model scope
Really dont like that raw Arel.sql wrapping that is required.
2025-04-05 13:17:42 +02:00
Andy Smith 81d4972d90 Merge branch 'main' into cascade-layers-2 2025-04-04 11:40:51 -05:00
Andy Smith 65252afbd2 Remove relative utility class from tray items 2025-04-04 11:19:09 -05:00
Jorge Manrubia c33d95c47c Show stages only when in doing 2025-04-04 17:52:47 +02:00
Jorge Manrubia 4ac2511771 Remove turbo frame for editing stages 2025-04-04 16:59:51 +02:00
Jorge Manrubia 8698d0b368 Move perma templates to its own place 2025-04-04 16:08:17 +02:00
Jorge Manrubia 300787bd80 Remove the clunky preview system 2025-04-04 15:56:58 +02:00
Jason Zimdars 1ea70d7d3b Merge branch 'main' into two-columns-refactor
* main:
  Fix image icons
  Revert "Merge pull request #345 from basecamp/cascade-layers"
  Fine tune notifications states
  Remove empty helper
  Use an icon for the button
  Show button on collection page and notif settings
  Add involvement types to accesses
  Extract a couple components
  Add cascade layers to all CSS files
2025-04-03 19:30:37 -05:00
Andy Smith 2d2a38a40a Fix image icons 2025-04-03 17:56:55 -05:00
Jason Zimdars 4734ae5b61 Fine tune notifications states 2025-04-03 17:07:18 -05:00
Kevin McConnell 7eee5ce705 Remove empty helper 2025-04-03 16:37:58 +01:00
Kevin McConnell b1803e9853 Use an icon for the button 2025-04-03 16:37:22 +01:00
Kevin McConnell e7d9259828 Show button on collection page and notif settings 2025-04-03 16:37:20 +01:00
Kevin McConnell 0820badcc3 Add involvement types to accesses
This provides a way to set the level of involvement that a user has with
a collection, and from which we determine the level of notifications to
send. Users can be access-only, watching, or being notified about
everything.

If you're access-only, you won't get an notifications. If you're
watching, you'll only get notifications for the items you're watching
(which includes the items you've been assigned, have commented on, etc).
If you're set to everything you'll get notifications about all activity
in that collection.

This change replaces our previous concept of subscriptions. Where
previously you'd subscribe to a collection to get notifications in it,
now you'll simply set the notification level on your access.
2025-04-03 16:35:13 +01:00
Jorge Manrubia 17c1b2051f Add toggles to switch between doing/considering 2025-04-03 13:46:29 +02:00
Jorge Manrubia 796ee44158 Tidy up header templates for listing buckets 2025-04-03 12:53:19 +02:00
Andy Smith edf7b60f17 Remove unused class 2025-04-02 14:41:25 -05:00
Andy Smith 24427644a2 Replace remaining image_tags with icon_tag 2025-04-02 14:38:30 -05:00
Andy Smith b8a1acefd8 Use mask icons everywhere 2025-04-02 14:22:42 -05:00
Andy Smith f662c9aa0f Add mask icon helper 2025-04-02 13:19:51 -05:00
Jorge Manrubia 6d716fa932 Prevent turbo frames from loading edit forms when previwing cards in collections
To render N cards we were loading 3xN turbo frames. I suspect this makes staging choke.
2025-04-02 11:21:30 +02:00
David Heinemeier Hansson de6f782ca3 Extract icon_tag helper to reduce repetition 2025-03-29 17:22:51 +01:00
Jason Zimdars c7aba17303 Massive refactor for better font sizing and responsive layout 2025-03-26 11:45:14 -05:00
Mike Dalessio 91de604815 Move event activity loading into Events::DaysController 2025-03-26 07:46:56 -04:00
Jason Zimdars 3bde5fdc1c Comments, list and font improvements 2025-03-25 16:59:13 -05:00
Jason Zimdars 403a328ef8 Walk-back two-column comments design 2025-03-24 17:43:43 -05:00
Jason Zimdars 9b9e09601e Introduce text-based UI 2025-03-24 11:33:04 -05:00
Jason Zimdars cbc9567966 Smaller tray cards 2025-03-21 14:54:26 -05:00
Jason Zimdars eaf927f1a8 Refactor tray styles 2025-03-20 17:54:24 -05:00
Jason Zimdars e92995b5e5 Account for untitled bubbles 2025-03-20 11:41:02 -05:00
Jason Zimdars f4b1c0593b Missing summary 2025-03-19 17:50:26 -05:00
Jason Zimdars 4370281f67 Add a missing event, adjust icons 2025-03-19 17:02:05 -05:00
Jason Zimdars 572428bfbc Improved comments and events layout 2025-03-19 16:33:03 -05:00
Jason Zimdars 714ae9d317 Differentiate events with an icon 2025-03-19 13:35:17 -05:00
Jason Zimdars 8e26106a07 Reorder and rename activity columns; include system popped events 2025-03-19 13:35:17 -05:00
Jason Zimdars 28a569c49b Tickets 2025-03-17 21:24:08 -05:00
Bruno Prieto 10cdb8c1a8 Improve accessibility of comments and reactions 2025-03-14 02:29:44 +01:00
Kevin McConnell 16a80ff3a6 More dynamic activity scores
This introduces a more dynamic system of activity scoring, to improve
the way bubbles "bubble up" due to their activity. There are a few
different parts we can tune here, and it's likely we'll need to make
adjustments once we get a feel for how this works in practice.

The basic idea here is:

- We assign points for certain types of event that happen on a bubble. A
  boost gets 1 point, a comment gets 10 points, and so on.
- These points decay over time, at a rate of 50% per day. So old
  activity is worth much less than new activity. Bubbles should rise up
  quickly when acted upon, bit will float back down if left idle.
- Some comments can score higher than others: the first comment from
  each person on a bubble is worth more (20) because it signals that
  more people are getting involved; and comments that follow a comment
  by a different author are also worth more (15) because that signals
  there's ongoing conversation between people, not just a series of
  notes being left by one individual.

In terms of implementation, we persist the score on the bubble
whenever it changes, but we handle the decay on the client side. That
allows us to cache the bubble representation without having to
continually change it while its activity decays.

We also keep a separate `activity_score_order` attribute on the model.
This can be used to sort the bubbles in order of "most active", without
having to think about the decay.
2025-03-05 17:16:31 +00:00
Jason Zimdars 256edbfa96 Special case self-assignment 2025-02-24 16:25:24 -06:00
Jason Zimdars 0045fb2af2 Fix overflowing notifications content 2025-02-21 17:03:58 -06:00
Jason Zimdars 28bdc531b0 Mark individual notifications as read 2025-02-21 16:39:50 -06:00
Jason Zimdars fb01444a88 "Added by…" is a more useful filter than "Assigned by…" 2025-02-20 16:07:07 -06:00
Jason Zimdars 1ad6a9adb8 Introduce quick filters on the page so the dialog becomes advanced filtering 2025-02-20 15:20:30 -06:00
Jason Zimdars 8cde1883a6 Filter activity by bucket 2025-02-19 18:05:12 -06:00
Jason Zimdars b3b881da17 Try a more Basecamp style activity event card 2025-02-19 14:02:07 -06:00
Jason Zimdars 66489f01eb Only display events visible to the current user 2025-02-19 11:55:22 -06:00
Jason Zimdars 7c3c3f6998 Don't count popped by system 2025-02-12 16:12:05 -06:00
Kevin McConnell 81197bfb49 Don't set a default title 2025-02-11 14:34:39 +00:00
Jason Zimdars 8ee1e670f9 Remove Hotwire Combobox, adjust related styles 2025-02-10 17:01:42 -06:00
Jason Zimdars d5b13a8030 Display counts for Added and Popped columns 2025-02-10 12:57:49 -06:00