diff --git a/files/lib/action/AddConversationParticipantDialogAction.class.php b/files/lib/action/AddConversationParticipantDialogAction.class.php index 60f032a8..9de94264 100644 --- a/files/lib/action/AddConversationParticipantDialogAction.class.php +++ b/files/lib/action/AddConversationParticipantDialogAction.class.php @@ -15,8 +15,6 @@ use wcf\system\conversation\TConversationForm; use wcf\system\exception\IllegalLinkException; use wcf\system\exception\PermissionDeniedException; -use wcf\system\form\builder\field\BooleanFormField; -use wcf\system\form\builder\field\dependency\NonEmptyFormFieldDependency; use wcf\system\form\builder\field\MultipleSelectionFormField; use wcf\system\form\builder\field\RadioButtonFormField; use wcf\system\form\builder\field\user\UserFormField; @@ -126,18 +124,12 @@ private function getForm(Conversation $conversation): Psr15DialogForm ->maximumMultiples(WCF::getSession()->getPermission('user.conversation.maxParticipants') - $conversation->participants) ->addValidator($this->getParticipantsValidator()) ->addValidator($this->getMaximumParticipantsValidator(invisibleParticipantGroupsFieldId: null)), - BooleanFormField::create('addGroupParticipants') - ->label('wcf.conversation.addGroupParticipants') - ->available(\count($groupParticipants) > 0), MultipleSelectionFormField::create('participantGroups') ->label('wcf.conversation.participantGroups') - ->available(WCF::getSession()->getPermission('user.conversation.canAddGroupParticipants')) - ->filterable() - ->options($groupParticipants) - ->addDependency( - NonEmptyFormFieldDependency::create('addGroupParticipantsDependency') - ->fieldId('addGroupParticipants') - ), + ->available(WCF::getSession()->getPermission('user.conversation.canAddGroupParticipants') + && \count($groupParticipants) > 0) + ->filterable(\count($groupParticipants) > 20) + ->options($groupParticipants), RadioButtonFormField::create('messageVisibility') ->label('wcf.conversation.visibility') ->available(!$conversation->isDraft && $conversation->canAddParticipantsUnrestricted()) diff --git a/files/lib/form/ConversationAddForm.class.php b/files/lib/form/ConversationAddForm.class.php index bf4129a6..66d81432 100644 --- a/files/lib/form/ConversationAddForm.class.php +++ b/files/lib/form/ConversationAddForm.class.php @@ -16,9 +16,7 @@ use wcf\system\form\builder\container\FormContainer; use wcf\system\form\builder\container\wysiwyg\WysiwygFormContainer; use wcf\system\form\builder\data\processor\CustomFormDataProcessor; -use wcf\system\form\builder\data\processor\VoidFormDataProcessor; use wcf\system\form\builder\field\BooleanFormField; -use wcf\system\form\builder\field\dependency\NonEmptyFormFieldDependency; use wcf\system\form\builder\field\MultipleSelectionFormField; use wcf\system\form\builder\field\TextFormField; use wcf\system\form\builder\field\user\UserFormField; @@ -125,18 +123,12 @@ static function (UserGroup $group) { ->addValidator($this->getParticipantsValidator()) ->addValidator($this->getMaximumParticipantsValidator()) ->value($this->user ? [$this->user->userID] : []), - BooleanFormField::create('addGroupParticipants') - ->label('wcf.conversation.addGroupParticipants') - ->available(\count($groupParticipants) > 0), MultipleSelectionFormField::create('participantGroups') ->label('wcf.conversation.participantGroups') - ->available(WCF::getSession()->getPermission('user.conversation.canAddGroupParticipants')) - ->filterable() - ->options($groupParticipants) - ->addDependency( - NonEmptyFormFieldDependency::create('addGroupParticipantsDependency') - ->fieldId('addGroupParticipants') - ), + ->available(WCF::getSession()->getPermission('user.conversation.canAddGroupParticipants') + && \count($groupParticipants) > 0) + ->filterable(\count($groupParticipants) > 20) + ->options($groupParticipants), UserFormField::create('invisibleParticipants') ->label('wcf.conversation.invisibleParticipants') ->description('wcf.conversation.invisibleParticipants.description') @@ -174,24 +166,15 @@ static function (UserFormField $formField) { } ) ), - BooleanFormField::create('addInvisibleGroupParticipants') - ->label('wcf.conversation.addInvisibleGroupParticipants') - ->available( - \count($groupParticipants) > 0 - && WCF::getSession()->getPermission('user.conversation.canAddInvisibleParticipants') - ), MultipleSelectionFormField::create('invisibleParticipantGroups') ->label('wcf.conversation.invisibleParticipantGroups') ->available( WCF::getSession()->getPermission('user.conversation.canAddInvisibleParticipants') && WCF::getSession()->getPermission('user.conversation.canAddGroupParticipants') + && \count($groupParticipants) > 0 ) - ->filterable() - ->options($groupParticipants) - ->addDependency( - NonEmptyFormFieldDependency::create('addInvisibleGroupParticipantsDependency') - ->fieldId('addInvisibleGroupParticipants') - ), + ->filterable(\count($groupParticipants) > 20) + ->options($groupParticipants), BooleanFormField::create('participantCanInvite') ->label('wcf.conversation.participantCanInvite') ->available(WCF::getSession()->getPermission('user.conversation.canSetCanInvite')), @@ -224,8 +207,6 @@ protected function finalizeForm() parent::finalizeForm(); $this->form->getDataHandler() - ->addProcessor(new VoidFormDataProcessor('addGroupParticipants')) - ->addProcessor(new VoidFormDataProcessor('addInvisibleGroupParticipants')) ->addProcessor( new CustomFormDataProcessor('messageProcessor', static function (IFormDocument $document, array $parameters) { unset($parameters['data']['message']); diff --git a/language/de.xml b/language/de.xml index f43474a2..52dbcf9d 100644 --- a/language/de.xml +++ b/language/de.xml @@ -97,12 +97,9 @@ - getSession()->getPermission('user.conversation.maxParticipants')} Teilnehmern.]]> - - {$participant->username} wirklich aus dieser Konversation entfernen?]]> @@ -131,10 +128,8 @@ {time time=$notBefore type='plainTime'}, bevor {if LANGUAGE_USE_INFORMAL_VARIANT}du{else}Sie{/if} eine neue Konversation {if LANGUAGE_USE_INFORMAL_VARIANT}startest{else}starten{/if}.]]> getSession()->getPermission('user.conversation.floodControlTime') 1='Sekunde' other='# Sekunden'} versendet. {if LANGUAGE_USE_INFORMAL_VARIANT}Du kannst{else}Sie können{/if} erst in {plural value=$waitTime 1='einer Sekunde' other='# Sekunden'} eine neue Nachricht verfassen.]]> - - - - + + diff --git a/language/en.xml b/language/en.xml index 9d775a5d..988cd760 100644 --- a/language/en.xml +++ b/language/en.xml @@ -97,12 +97,9 @@ - getSession()->getPermission('user.conversation.maxParticipants')} participants.]]> - - {$participant->username} from this conversation?]]> @@ -131,10 +128,8 @@ {time time=$notBefore type='plainTime'} before you start a new conversation.]]> getSession()->getPermission('user.conversation.floodControlTime') 1='second' other='# seconds'}. You must wait at least {plural value=$waitTime 1='one second' other='# seconds'} before attempting to write a new message.]]> - - - - + +