FriendsOfFlarum / byobu

Well integrated, advanced private discussions for your Flarum forum.
https://discuss.flarum.org/d/4762-flagrow-by-bu-well-integrated-advanced-private-discussions
MIT License
54 stars 33 forks source link

Complete rewrite of byobu #134

Closed luceos closed 3 years ago

luceos commented 3 years ago

I've noticed some inconsistencies in code, logic and how things have grown over time. This PR will trim down on features, provide a more opinionated version of Byobu with the following features:

askvortsov1 commented 3 years ago

When next working on this, could you remove dist changes so it's a bit clearer to review?

askvortsov1 commented 3 years ago

I gotta say, I'm really loving this! Looking forward to reviewing it :D

imorland commented 3 years ago

Eagerly starting to look at this now :+1:

Running on a clean beta 14 base, which had not had bybobu installed before, I am able to enable the extension. Migrations do run, including the new unified index migration against users.

Then, on both forum and admin, (debug on), error:

SQLSTATE[HY000]: General error: 1096 No tables used (SQL: select * from `notifications` where `notifications`.`user_id` = 1 and `notifications`.`user_id` is not null and `type` in (discussionRenamed, postLiked, discussionLocked, postMentioned, userMentioned, newPost, userSuspended, userUnsuspended, byobuPrivateDiscussionCreated, byobuPrivateDiscussionReplied, byobuRecipientRemoved, byobuPrivateDiscussionAdded) and `read_at` is null and `is_deleted` = 0 and ((`type` in (discussionRenamed, discussionLocked, newPost, byobuPrivateDiscussionCreated, byobuPrivateDiscussionReplied, byobuRecipientRemoved, byobuPrivateDiscussionAdded) and exists (select 1 from `discussions` where `id` = `subject_id` and (`discussions`.`id` not in (select `discussion_id` from `discussion_tag` where 0 = 1)) and (`discussions`.`is_private` = 0 or (`discussions`.`is_approved` = 0 or (`discussions`.`id` in (select `recipients`.`discussion_id` from `recipients` where (`recipients`.`removed_at` is null and (`recipients`.`user_id` in (1) or `recipients`.`group_id` in (1)))) or `discussions`.`id` in (select *)))))) or (`type` in (postLiked, postMentioned, userMentioned) and exists (select 1 from `posts` where `id` = `subject_id` and exists (select * from `discussions` where `posts`.`discussion_id` = `discussions`.`id` or ((`discussions`.`id` in (select `recipients`.`discussion_id` from `recipients` where (`recipients`.`removed_at` is null and (`recipients`.`user_id` in (1) or `recipients`.`group_id` in (1)))) or `discussions`.`id` in (select *)))) and exists (select 1 from `discussions` where `discussions`.`id` = `posts`.`discussion_id` and (`discussions`.`id` not in (select `discussion_id` from `discussion_tag` where 0 = 1)) and (`discussions`.`is_private` = 0 or (`discussions`.`is_approved` = 0 or (`discussions`.`id` in (select `recipients`.`discussion_id` from `recipients` where (`recipients`.`removed_at` is null and (`recipients`.`user_id` in (1) or `recipients`.`group_id` in (1)))) or `discussions`.`id` in (select *))))) and (`posts`.`is_private` = 0 or (`posts`.`is_approved` = 0)))) or (`type` in (userSuspended, userUnsuspended) and exists (select 1 from `users` where `id` = `subject_id`))))
Previous exceptions

    SQLSTATE[HY000]: General error: 1096 No tables used (HY000)
    SQLSTATE[HY000]: General error: 1096 No tables used (HY000)
luceos commented 3 years ago

Unread count on left hand side is a pickle, it is probably best implemented with one of the websocket extensions.

sibidharan commented 3 years ago

Why did you detach from flarum/tags? I was relying on that feature.. Is there a way to sort the private discussions now?