From e60243ae5713557ecfbf83c5542af84af1f3cdba Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Sat, 19 Jun 2021 17:07:07 +0200 Subject: [PATCH] FormValidator: Add addMultiSelect, use array for attributes --- public/main/admin/course_edit.php | 3 +-- public/main/admin/user_edit.php | 2 +- public/main/announcements/announcements.php | 3 +-- public/main/group/member_settings.php | 3 +-- public/main/group/tutor_settings.php | 3 +-- public/main/inc/lib/course.lib.php | 5 ++--- public/main/inc/lib/display.lib.php | 2 +- .../main/inc/lib/formvalidator/FormValidator.class.php | 5 +++++ .../inc/lib/pear/HTML/QuickForm/advmultiselect.php | 4 ++-- public/main/lp/lp_subscribe_users.php | 9 +++------ public/main/lp/lp_subscribe_users_to_category.php | 9 +++------ public/main/session/session_course_user.php | 3 +-- public/main/social/group_invitation.php | 3 +-- public/main/ticket/categories_add_user.php | 6 ++---- .../Repository/SysAnnouncementRepository.php | 10 +++++----- 15 files changed, 30 insertions(+), 40 deletions(-) diff --git a/public/main/admin/course_edit.php b/public/main/admin/course_edit.php index bd4bdff1a1..bce479193f 100644 --- a/public/main/admin/course_edit.php +++ b/public/main/admin/course_edit.php @@ -210,8 +210,7 @@ if (!empty($coursesInSession) && $allowEditSessionCoaches) { $groupName = 'session_coaches_'.$sessionId; $sessionUrl = api_get_path(WEB_CODE_PATH).'session/resume_session.php?id_session='.$sessionId; - $form->addElement( - 'advmultiselect', + $form->addMultiSelect( $groupName, Display::url( $session['name'], diff --git a/public/main/admin/user_edit.php b/public/main/admin/user_edit.php index 27624fc6ff..a0611bb3e6 100644 --- a/public/main/admin/user_edit.php +++ b/public/main/admin/user_edit.php @@ -321,7 +321,7 @@ if (!empty($studentBossList)) { } $user_data['student_boss'] = array_values($studentBossList); -$form->addElement('advmultiselect', 'student_boss', get_lang('Superior (n+1)'), $studentBossToSelect); +$form->addMultiSelect('student_boss', get_lang('Superior (n+1)'), $studentBossToSelect); // EXTRA FIELDS $extraField = new ExtraField('user'); diff --git a/public/main/announcements/announcements.php b/public/main/announcements/announcements.php index d9b4ccf654..4bbc434c06 100644 --- a/public/main/announcements/announcements.php +++ b/public/main/announcements/announcements.php @@ -582,8 +582,7 @@ switch ($action) { } $defaults['email_ann'] = true; - $form->addElement( - 'text', + $form->addText( 'title', get_lang('Subject'), ['onkeypress' => 'return event.keyCode != 13;'] diff --git a/public/main/group/member_settings.php b/public/main/group/member_settings.php index 72c5b44f93..6eba202ede 100644 --- a/public/main/group/member_settings.php +++ b/public/main/group/member_settings.php @@ -159,8 +159,7 @@ if (!empty($group_member_list)) { } } -$group_members_element = $form->addElement( - 'advmultiselect', +$group_members_element = $form->addMultiSelect( 'group_members', get_lang('Group members'), $possible_users diff --git a/public/main/group/tutor_settings.php b/public/main/group/tutor_settings.php index 297cc0939f..47135c1836 100644 --- a/public/main/group/tutor_settings.php +++ b/public/main/group/tutor_settings.php @@ -145,8 +145,7 @@ if (!empty($complete_user_list)) { } } -$group_tutors_element = $form->addElement( - 'advmultiselect', +$group_tutors_element = $form->addMultiSelect( 'group_tutors', get_lang('Coaches'), $possible_users, diff --git a/public/main/inc/lib/course.lib.php b/public/main/inc/lib/course.lib.php index 3ca3c3b68a..0cff169fee 100644 --- a/public/main/inc/lib/course.lib.php +++ b/public/main/inc/lib/course.lib.php @@ -5796,8 +5796,7 @@ class CourseManager $result[$content['value']] = $content['content']; } - $multiple = $form->addElement( - 'advmultiselect', + $multiple = $form->addMultiSelect( 'users', get_lang('Users'), $result, @@ -5894,7 +5893,7 @@ class CourseManager $result[$content['value']] = $content['content']; } - return $form->addElement('advmultiselect', 'users', get_lang('Users'), $result); + return $form->addMultiSelect( 'users', get_lang('Users'), $result); } /** diff --git a/public/main/inc/lib/display.lib.php b/public/main/inc/lib/display.lib.php index a5e4f73007..bcedfd97d7 100644 --- a/public/main/inc/lib/display.lib.php +++ b/public/main/inc/lib/display.lib.php @@ -2419,7 +2419,7 @@ class Display $fixWidth = false, $additionalClass = '' ) { - $className = "fa fa-$name"; + $className = "mdi mdi-$name"; if ($fixWidth) { $className .= ' fa-fw'; diff --git a/public/main/inc/lib/formvalidator/FormValidator.class.php b/public/main/inc/lib/formvalidator/FormValidator.class.php index b132b2cc46..250a0f4eac 100644 --- a/public/main/inc/lib/formvalidator/FormValidator.class.php +++ b/public/main/inc/lib/formvalidator/FormValidator.class.php @@ -934,6 +934,11 @@ EOT; return $this->addElement('select', $name, $label, $options, $attributes); } + public function addMultiSelect(string $name, $label, array $options, array $attributes = []) + { + $this->addElement('advmultiselect', $name, $label, $options, $attributes); + } + /** * @param string $label * @param string $text diff --git a/public/main/inc/lib/pear/HTML/QuickForm/advmultiselect.php b/public/main/inc/lib/pear/HTML/QuickForm/advmultiselect.php index 838938acf3..d3c774f217 100644 --- a/public/main/inc/lib/pear/HTML/QuickForm/advmultiselect.php +++ b/public/main/inc/lib/pear/HTML/QuickForm/advmultiselect.php @@ -217,14 +217,14 @@ class HTML_QuickForm_advmultiselect extends HTML_QuickForm_select $elementName = null, $elementLabel = null, $options = null, - $attributes = null, + array $attributes = [], $sort = null ) { $opts = $options; $options = null; // prevent to use the default select element load options parent::__construct($elementName, $elementLabel, $options, $attributes); - $this->selectAllCheckBox = isset($attributes['select_all_checkbox']) ? $attributes['select_all_checkbox'] : false; + $this->selectAllCheckBox = $attributes['select_all_checkbox'] ?? false; // allow to load options at once and take care of fancy attributes $this->load($opts); diff --git a/public/main/lp/lp_subscribe_users.php b/public/main/lp/lp_subscribe_users.php index 833b029b57..c202220c07 100644 --- a/public/main/lp/lp_subscribe_users.php +++ b/public/main/lp/lp_subscribe_users.php @@ -101,8 +101,7 @@ foreach ($subscribedUsersInLp as $itemProperty) { $formUsers = new FormValidator('lp_edit', 'post', $url); $formUsers->addElement('hidden', 'user_form', 1); -$userMultiSelect = $formUsers->addElement( - 'advmultiselect', +$userMultiSelect = $formUsers->addMultiSelect( 'users', get_lang('Users'), $choices @@ -143,8 +142,7 @@ foreach ($subscribedGroupsInLp as $itemProperty) { $selectedGroupChoices[] = $itemProperty->getGroup()->getId(); } -$groupMultiSelect = $form->addElement( - 'advmultiselect', +$groupMultiSelect = $form->addMultiSelect( 'groups', get_lang('Groups'), $groupChoices @@ -172,8 +170,7 @@ if ($allowUserGroups) { } } - $userGroupMultiSelect = $formUserGroup->addElement( - 'advmultiselect', + $userGroupMultiSelect = $formUserGroup->addMultiSelect( 'usergroups', get_lang('Classes'), $allOptions diff --git a/public/main/lp/lp_subscribe_users_to_category.php b/public/main/lp/lp_subscribe_users_to_category.php index ec52060004..1ddff62790 100644 --- a/public/main/lp/lp_subscribe_users_to_category.php +++ b/public/main/lp/lp_subscribe_users_to_category.php @@ -82,8 +82,7 @@ foreach ($links as $link) { } } -$groupMultiSelect = $form->addElement( - 'advmultiselect', +$groupMultiSelect = $form->addMultiSelect( 'groups', get_lang('Groups'), $groupChoices @@ -112,8 +111,7 @@ if ($allowUserGroups) { } } - $userGroupMultiSelect = $formUserGroup->addElement( - 'advmultiselect', + $userGroupMultiSelect = $formUserGroup->addMultiSelect( 'usergroups', get_lang('Classes'), $allOptions @@ -252,8 +250,7 @@ $formUsers = new FormValidator('lp_edit', 'post', $url); $formUsers->addElement('hidden', 'user_form', 1); $formUsers->addLabel('', $message); -$userMultiSelect = $formUsers->addElement( - 'advmultiselect', +$userMultiSelect = $formUsers->addMultiSelect( 'users', get_lang('Users'), $choices diff --git a/public/main/session/session_course_user.php b/public/main/session/session_course_user.php index c59eae3d37..5b288d8a94 100644 --- a/public/main/session/session_course_user.php +++ b/public/main/session/session_course_user.php @@ -40,8 +40,7 @@ $form = new FormValidator( 'post', api_get_self().'?id_user='.$user->getId().'&id_session='.$session->getId() ); -$form->addElement( - 'advmultiselect', +$form->addMultiSelect( 'courses_to_avoid', $tool_name, getSessionCourseList($session) diff --git a/public/main/social/group_invitation.php b/public/main/social/group_invitation.php index e1936486d5..a9da783e67 100644 --- a/public/main/social/group_invitation.php +++ b/public/main/social/group_invitation.php @@ -162,8 +162,7 @@ $form = new FormValidator('frm_invitation', 'post', api_get_self().'?id='.$group $form->addHidden('form_sent', 1); $form->addHidden('id', $group_id); -$group_members_element = $form->addElement( - 'advmultiselect', +$group_members_element = $form->addMultiSelect( 'invitation', get_lang('Friends'), $nosessionUsersList diff --git a/public/main/ticket/categories_add_user.php b/public/main/ticket/categories_add_user.php index 29852833f1..799a1b9d0e 100644 --- a/public/main/ticket/categories_add_user.php +++ b/public/main/ticket/categories_add_user.php @@ -25,12 +25,10 @@ $form->addHeader($categoryInfo['name']); $users = UserManager::get_user_list([], ['firstname']); $users = array_column($users, 'complete_name', 'user_id'); -$form->addElement( - 'advmultiselect', +$form->addMultiSelect( 'users', get_lang('Users'), - $users, - 'style="width: 280px;"' + $users ); $usersAdded = TicketManager::getUsersInCategory($categoryId); diff --git a/src/CoreBundle/Repository/SysAnnouncementRepository.php b/src/CoreBundle/Repository/SysAnnouncementRepository.php index d7e6b4b93b..d54cb3bd92 100644 --- a/src/CoreBundle/Repository/SysAnnouncementRepository.php +++ b/src/CoreBundle/Repository/SysAnnouncementRepository.php @@ -189,11 +189,6 @@ class SysAnnouncementRepository extends ServiceEntityRepository } } - protected function getOrCreateQueryBuilder(QueryBuilder $qb = null, string $alias = 's'): QueryBuilder - { - return $qb ?: $this->createQueryBuilder($alias); - } - public function delete($id): void { $announcement = $this->find($id); @@ -203,4 +198,9 @@ class SysAnnouncementRepository extends ServiceEntityRepository $em->flush(); } } + + protected function getOrCreateQueryBuilder(QueryBuilder $qb = null, string $alias = 's'): QueryBuilder + { + return $qb ?: $this->createQueryBuilder($alias); + } }