jenkins-bot has submitted this change and it was merged.

Change subject: Use jquery.chosen for the project filter
......................................................................


Use jquery.chosen for the project filter

A giant array of hidden checkboxes hidden by default isn't a great
way to display the project filter. Using chosen we can always show
the filter and the list will be searchable as users type.

Change-Id: If0bcf013e20079b2bd2d3aba626997829b1d3ee6
---
M special/SpecialNova.php
M special/SpecialNovaAddress.php
M special/SpecialNovaInstance.php
M special/SpecialNovaProject.php
M special/SpecialNovaPuppetGroup.php
M special/SpecialNovaSecurityGroup.php
M special/SpecialNovaSudoer.php
M special/SpecialNovaVolume.php
8 files changed, 11 insertions(+), 32 deletions(-)

Approvals:
  Andrew Bogott: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/special/SpecialNova.php b/special/SpecialNova.php
index 9d87f34..dbc66be 100644
--- a/special/SpecialNova.php
+++ b/special/SpecialNova.php
@@ -108,7 +108,7 @@
                return array();
        }
 
-       function showProjectFilter( $projects, $showbydefault=false, 
$tocmode=true ) {
+       function showProjectFilter( $projects ) {
                if ( $this->getRequest()->wasPosted() && 
$this->getRequest()->getVal( 'action' ) !== 'setprojectfilter' ) {
                        return null;
                }
@@ -121,14 +121,7 @@
                $defaults = array();
                foreach ( $projects as $project ) {
                        $projectName = $project->getProjectName();
-                       if ( $tocmode && in_array( $projectName, 
$currentProjects ) ) {
-                               # If the project is currently visible and toc 
mode is turned on,
-                               #  link the filter entry to an appropriate 
anchor further on down
-                               $projectLink = Html::element( 'a', array('href' 
=> "#$projectName"), $projectName );
-                       } else {
-                               $projectLink = $projectName;
-                       }
-                       $project_keys[$projectLink] = $projectName;
+                       $project_keys[$projectName] = $projectName;
                        if ( in_array( $projectName, $currentProjects ) ) {
                                $defaults[$projectName] = $projectName;
                        }
@@ -140,6 +133,7 @@
                        'section' => 'projectfilter',
                        'options' => $project_keys,
                        'default' => $defaults,
+                       'cssclass' => 'mw-chosen',
                        'name' => 'projects',
                );
                $projectFilter['action'] = array(
@@ -149,13 +143,6 @@
                );
                $projectFilterForm = new HTMLForm( $projectFilter, 
'openstackmanager-novaprojectfilter' );
                $projectFilterForm->setTitle( $this->getTitle() );
-               if ( $showbydefault ) {
-                       $classes = "mw-collapsible";
-               } else {
-                       $classes = "mw-collapsible mw-collapsed";
-               }
-               $projectFilterForm->addHeaderText( '<div class="' . $classes 
.'" data-expandtext="Show project filter" data-collapsetext="Hide project 
filter">' );
-               $projectFilterForm->addFooterText( '</div>' );
                $projectFilterForm->setSubmitID( 
'novaproject-form-setprojectfiltersubmit' );
                $projectFilterForm->setSubmitCallback( array( $this, 
'trySetProjectFilter' ) );
                $projectFilterForm->show();
@@ -306,12 +293,11 @@
 
                if ( !$formData['projects'] ) {
                        $wgRequest->response()->setCookie( 'projectfilter', '', 
time() - 86400 );
-                       $this->getOutput()->redirect( 
$this->getTitle()->getFullUrl() );
                } else {
                        $projects = implode( ',', $formData['projects'] );
                        $wgRequest->response()->setCookie( 'projectfilter', 
$projects );
-                       $this->getOutput()->redirect( 
$this->getTitle()->getFullUrl( 'showmsg=setfilter' ) );
                }
+               $this->getOutput()->redirect( $this->getTitle()->getFullUrl() );
 
                return true;
        }
diff --git a/special/SpecialNovaAddress.php b/special/SpecialNovaAddress.php
index cd651b4..3cfb470 100644
--- a/special/SpecialNovaAddress.php
+++ b/special/SpecialNovaAddress.php
@@ -398,13 +398,12 @@
                } else {
                        $projects = OpenStackNovaProject::getProjectsByName( 
$this->userLDAP->getProjects() );
                }
+               $this->showProjectFilter( $projects );
                $projectfilter = $this->getProjectFilter();
                if ( !$projectfilter ) {
                        $this->getOutput()->addWikiMsg( 
'openstackmanager-setprojectfilter' );
-                       $this->showProjectFilter( $projects, true );
                        return null;
                }
-               $this->showProjectFilter( $projects );
 
                $out = '';
 
diff --git a/special/SpecialNovaInstance.php b/special/SpecialNovaInstance.php
index 0bbf74c..5848c7e 100644
--- a/special/SpecialNovaInstance.php
+++ b/special/SpecialNovaInstance.php
@@ -484,13 +484,12 @@
                } else {
                        $projects = OpenStackNovaProject::getProjectsByName( 
$this->userLDAP->getProjects() );
                }
+               $this->showProjectFilter( $projects );
                $projectfilter = $this->getProjectFilter();
                if ( !$projectfilter ) {
                        $this->getOutput()->addWikiMsg( 
'openstackmanager-setprojectfilter' );
-                       $this->showProjectFilter( $projects, true );
                        return null;
                }
-               $this->showProjectFilter( $projects );
 
                $out = '';
                foreach ( $projects as $project ) {
diff --git a/special/SpecialNovaProject.php b/special/SpecialNovaProject.php
index 12296e1..b13cfe4 100644
--- a/special/SpecialNovaProject.php
+++ b/special/SpecialNovaProject.php
@@ -268,13 +268,12 @@
                } else {
                        $projects = OpenStackNovaProject::getProjectsByName( 
$this->userLDAP->getProjects() );
                }
+               $this->showProjectFilter( $projects );
                $projectfilter = $this->getProjectFilter();
                if ( !$projectfilter ) {
                        $this->getOutput()->addWikiMsg( 
'openstackmanager-setprojectfilter' );
-                       $this->showProjectFilter( $projects, true );
                        return null;
                }
-               $this->showProjectFilter( $projects );
 
                $out = '';
 
diff --git a/special/SpecialNovaPuppetGroup.php 
b/special/SpecialNovaPuppetGroup.php
index aa9d132..90c0472 100644
--- a/special/SpecialNovaPuppetGroup.php
+++ b/special/SpecialNovaPuppetGroup.php
@@ -592,13 +592,12 @@
                } else {
                        $projects =  OpenStackNovaProject::getProjectsByName( 
$this->userLDAP->getProjects() );
                }
+               $this->showProjectFilter( $projects );
                $projectfilter = $this->getProjectFilter();
                if ( !$projectfilter ) {
                        $this->getOutput()->addWikiMsg( 
'openstackmanager-setprojectfilter' );
-                       $this->showProjectFilter( $projects, true );
                        return null;
                }
-               $this->showProjectFilter( $projects );
 
                $out = '';
                foreach ( $projects as $project ) {
diff --git a/special/SpecialNovaSecurityGroup.php 
b/special/SpecialNovaSecurityGroup.php
index e3c410e..a52c650 100644
--- a/special/SpecialNovaSecurityGroup.php
+++ b/special/SpecialNovaSecurityGroup.php
@@ -173,13 +173,12 @@
                } else {
                        $projects = OpenStackNovaProject::getProjectsByName( 
$this->userLDAP->getProjects() );
                }
+               $this->showProjectFilter( $projects );
                $projectfilter = $this->getProjectFilter();
                if ( !$projectfilter ) {
                        $this->getOutput()->addWikiMsg( 
'openstackmanager-setprojectfilter' );
-                       $this->showProjectFilter( $projects, true );
                        return null;
                }
-               $this->showProjectFilter( $projects );
 
                $out = '';
                foreach ( $projects as $project ) {
diff --git a/special/SpecialNovaSudoer.php b/special/SpecialNovaSudoer.php
index 3429ce2..2838010 100644
--- a/special/SpecialNovaSudoer.php
+++ b/special/SpecialNovaSudoer.php
@@ -412,13 +412,12 @@
                } else {
                        $projects = OpenStackNovaProject::getProjectsByName( 
$this->userLDAP->getProjects() );
                }
+               $this->showProjectFilter( $projects );
                $projectfilter = $this->getProjectFilter();
                if ( !$projectfilter ) {
                        $this->getOutput()->addWikiMsg( 
'openstackmanager-setprojectfilter' );
-                       $this->showProjectFilter( $projects, true );
                        return null;
                }
-               $this->showProjectFilter( $projects );
 
                $out = '';
 
diff --git a/special/SpecialNovaVolume.php b/special/SpecialNovaVolume.php
index 456bfa7..1b5853f 100644
--- a/special/SpecialNovaVolume.php
+++ b/special/SpecialNovaVolume.php
@@ -325,13 +325,12 @@
                } else {
                        $projects = OpenStackNovaProject::getProjectsByName( 
$this->userLDAP->getProjects() );
                }
+               $this->showProjectFilter( $projects );
                $projectfilter = $this->getProjectFilter();
                if ( !$projectfilter ) {
                        $this->getOutput()->addWikiMsg( 
'openstackmanager-setprojectfilter' );
-                       $this->showProjectFilter( $projects, true );
                        return null;
                }
-               $this->showProjectFilter( $projects );
 
                $out = '';
                foreach ( $projects as $project ) {

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

Gerrit-MessageType: merged
Gerrit-Change-Id: If0bcf013e20079b2bd2d3aba626997829b1d3ee6
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/OpenStackManager
Gerrit-Branch: master
Gerrit-Owner: Ryan Lane <[email protected]>
Gerrit-Reviewer: Andrew Bogott <[email protected]>
Gerrit-Reviewer: jenkins-bot

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

Reply via email to