Commit Graph

61 Commits

Author SHA1 Message Date
Mike Dalessio 0da5f8101e User belongs to Signal::User 2025-06-20 15:16:56 -04:00
Jorge Manrubia 2dbb53da1f Add prompts to the rest of rich text editors 2025-06-19 13:34:44 +02:00
Jorge Manrubia cda20600b1 Show mentions in the editor 2025-06-19 12:16:32 +02:00
Jorge Manrubia 65d809dd8d Basic models for Fizzy do and searches working with them 2025-05-06 06:42:33 +02:00
Jorge Manrubia 13b0c0fc41 First pass to tidy up activity time rendering 2025-04-24 12:28:16 +02:00
Jorge Manrubia 3793718e72 Fix concern I lost during merge 2025-04-23 17:25:36 +02:00
Jorge Manrubia b08326ccbe Merge branch 'main' into plain-text-mentions
* main: (48 commits)
  Improve layout and truncation
  This is annoying
  Fix summary
  Remove index columns
  Same treatment for the events index
  New menu filters and navigates
  Don't test for _Added by_ events
  Indention
  @collection is always available when card scoped
  Style
  Remove check for _Added by..._ line
  The placeholder attribute is on the `house-md` element
  Duh, no before destroy commit, but this is still not right!
  No long transactions!
  Don't display published event in threads
  But feels more essentially part of the User, so list first
  Not related to the other two
  Missing controller
  Style
  Errant `bubbles` => `cards` replacement
  ...

# Conflicts:
#	app/models/card.rb
#	app/models/user.rb
#	db/schema.rb
#	db/schema_cache.yml
2025-04-23 17:24:01 +02:00
David Heinemeier Hansson 7124835e60 No long transactions!
If you intend to deactivate someone, and the process fails mid process,
so you only delete some sessions, or some accesses, you are actually
fine. The system is never left in an incomplete state. And that's really
the only time we should be using transactions with sqlite3 -- to prevent
actual data integrity issues.

The rest of the time, we should optimize for each transaction to be as
quick as possible. The sqlite3 writer lock is the one bottleneck that we
cant afford to overload.
2025-04-22 21:29:03 +02:00
David Heinemeier Hansson 90f05b7310 But feels more essentially part of the User, so list first 2025-04-22 21:25:30 +02:00
David Heinemeier Hansson 72d1d0baee Not related to the other two 2025-04-22 21:24:51 +02:00
David Heinemeier Hansson 6cd8d54bf7 We werent using any of the other avatar methods 2025-04-22 21:20:18 +02:00
Jorge Manrubia aa3acfeaa8 Add plain text mentions 2025-04-22 11:26:56 +02:00
David Heinemeier Hansson 6bbf68a4f9 The tenanted db is the account scope 2025-04-12 20:06:34 +02:00
Jorge Manrubia 723e6d94f5 Rename bubbles => cards 2025-04-09 14:50:58 +02:00
Jorge Manrubia 9b4169c7ca Scope data by account
With a single database this problem is not as bad, but it feels
safer to do things right. Also, not everyone in an account has access
to all the bubbles.
2025-04-07 13:09:49 +02:00
David Heinemeier Hansson f063116df4 Group related associations together 2025-04-05 13:19:30 +02:00
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
David Heinemeier Hansson 821f4c43d8 Excess CR 2025-04-05 12:49:19 +02:00
David Heinemeier Hansson 1463fa68f4 Sessions only depend on user and have no callback, so use the faster delete_all 2025-04-05 12:48:52 +02:00
David Heinemeier Hansson 8ff017fc5b Only one invocation of this, not carrying the worth of its indirection
Generally I am wary of including global state checks in the belly of
models. It is one thing to do it as a default parameter, but I think it
is too far to do it inside an actual method.
2025-04-05 12:40:08 +02:00
David Heinemeier Hansson d237885bd4 Extract User::Assignee role
Keep slimming down that User
2025-04-05 12:37:18 +02:00
David Heinemeier Hansson 17bdfb5df5 Already included in the Avatar concern 2025-04-05 12:35:41 +02:00
David Heinemeier Hansson 92ce80cc32 Extract User::Accessor concern
Our User model is getting overloaded
2025-04-05 12:34:39 +02:00
Jorge Manrubia 05fc73e2ae Merge pull request #334 from basecamp/user-admins
Add admin role and animate admin toggle
2025-04-04 08:29:03 +02:00
Jorge Manrubia cfe91c25c9 Add admin role, make sure only admins can remove and promote other users 2025-04-03 17:43:29 +02: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
Kevin McConnell bc5e32e737 Only "published" notifies collection subscribers
The other notifications are only sent to the watchers of the bubble.
2025-03-18 17:46:57 +00:00
Jason Zimdars 28a569c49b Tickets 2025-03-17 21:24:08 -05:00
Kevin McConnell 49fa8b21a6 Move current user check to controller
This is necessary to a) ensure people can't edit/delete comments they
don't own, and b) make the comment partial cacheable.
2025-03-03 17:04:16 +00:00
Kevin McConnell ab27371115 Include self in watcher list 2025-02-27 10:51:59 +00:00
Kevin McConnell d29e999552 Make Buckets subscribable 2025-02-26 10:53:03 +00:00
Kevin McConnell 485a056ba2 Add a "system" role & specific user 2025-02-12 13:19:53 +00:00
Jason Zimdars 8ee1e670f9 Remove Hotwire Combobox, adjust related styles 2025-02-10 17:01:42 -06:00
Kevin McConnell d0ae5b4bdc Add notification model 2025-01-13 14:21:47 +00:00
Jason Zimdars 295d8ce088 Upload user avatar 2024-12-18 14:44:05 -06:00
Jason Zimdars 592c88e639 Add session transfer feature 2024-12-18 12:38:53 -06:00
Jose Farias 688f812336 Unnecessary parens 2024-12-10 19:52:42 -06:00
Jose Farias 59c66923f0 Implement all_access buckets 2024-12-10 19:46:40 -06:00
Jose Farias acac683b3e Do combobox filtering client-side 2024-11-25 16:25:42 -06:00
Jose Farias f266e46b57 Wire up comboboxes 2024-11-21 19:58:21 -06:00
Jose Farias f2706d0f74 Unnest bubble filters 2024-11-05 13:04:05 -06:00
Jose Farias f4b5210ca1 Spike persisted filters 2024-10-16 16:41:11 -06:00
Jose Farias dd1752de2a Implement bucket access form 2024-10-09 11:53:05 -04:00
Jason Zimdars 9e28359587 Add proper avatars for users 2024-10-04 10:54:11 -05:00
Kevin McConnell e50144d97f Add modelling for "popped" bubbles 2024-10-03 12:54:13 +01:00
Jeffrey Hardy da21a071b8 Introduce scopes for finding bubbles assigned to or by someone 2024-10-02 15:49:36 -04:00
Jeffrey Hardy 497906010b Track assignment assignees 2024-10-02 12:45:34 -04:00
Jeffrey Hardy ee67d485c4 Forbid account self-removal 2024-09-24 15:48:29 -04:00
Jeffrey Hardy 4e579e5a34 Rename Project to Bucket 2024-09-24 15:32:44 -04:00
Jeffrey Hardy 5516bd024a Match non-ASCII characters when extracting initials 2024-09-20 14:53:02 -04:00