Bene has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/159103

Change subject: Use checkboxes instead of multiselect to edit badges
......................................................................

Use checkboxes instead of multiselect to edit badges

Bug: 70333
Change-Id: I7093c95fec6405b9930eeb6f63d7db2c4f023b93
---
M repo/includes/specials/SpecialSetSiteLink.php
1 file changed, 25 insertions(+), 23 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/03/159103/1

diff --git a/repo/includes/specials/SpecialSetSiteLink.php 
b/repo/includes/specials/SpecialSetSiteLink.php
index 3386c01..d692088 100644
--- a/repo/includes/specials/SpecialSetSiteLink.php
+++ b/repo/includes/specials/SpecialSetSiteLink.php
@@ -121,7 +121,12 @@
 
                $this->page = $request->getVal( 'page' );
 
-               $this->badges = $request->getArray( 'badges', array() );
+               $this->badges = array();
+               foreach ( $this->badgeItems as $badgeId => $value ) {
+                       if ( $request->getVal( 'badge-' . $badgeId ) ) {
+                               $this->badges[] = $badgeId;
+                       }
+               }
        }
 
        /**
@@ -240,22 +245,11 @@
                        . Html::element(
                                'label',
                                array(
-                                       'for' => 'wb-setsitelink-badges',
                                        'class' => 'wb-label'
                                ),
                                $this->msg( 'wikibase-setsitelink-badges' 
)->text()
                        )
-                       . Html::openElement(
-                               'select',
-                               array(
-                                       'name' => 'badges[]',
-                                       'class' => 'wb-input',
-                                       'id' => 'wb-setsitelink-badges',
-                                       'multiple' => true
-                               )
-                       )
-                       . $this->getBadgesOptionsHtml()
-                       . Html::closeElement( 'select' );
+                       . $this->getHtmlForBadges();
                }
 
                $site = $this->siteStore->getSite( $this->site );
@@ -311,23 +305,31 @@
        }
 
        /**
-        * Returns the HTML containing an option tag for each badge.
+        * Returns the HTML containing a checkbox for each badge.
         *
         * @return string
         */
-       private function getBadgesOptionsHtml() {
+       private function getHtmlForBadges() {
                $options = '';
 
                foreach ( $this->badgeItems as $badgeId => $value ) {
-                       $attrs = array( 'value' => $badgeId );
-                       if ( in_array( $badgeId, $this->badges ) ) {
-                               $attrs['selected'] = true;
-                       }
+                       $name = 'badge-' . $badgeId;
+                       $title = $this->getTitleForBadge( new ItemId( $badgeId 
) );
 
-                       $options .= Html::element(
-                               'option',
-                               $attrs,
-                               $this->getTitleForBadge( new ItemId( $badgeId ) 
)
+                       $options .= Html::rawElement(
+                               'label',
+                               array(
+                                       'for' => $name,
+                                       'class' => 'wb-label'
+                               ),
+                               Html::check(
+                                       $name,
+                                       in_array( $badgeId, $this->badges ),
+                                       array(
+                                               'id' => $name
+                                       )
+                               )
+                               . htmlspecialchars( $title )
                        );
                }
 

-- 
To view, visit https://gerrit.wikimedia.org/r/159103
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7093c95fec6405b9930eeb6f63d7db2c4f023b93
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Bene <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to