Bulk Select provides both a Form API Element and a Field API Widget with nested checkboxes. This design paradigm is a good choice when your requirements match this list of features:

  • Multiple select
  • Hierarchical structure
  • Only lowest-level elements selected
  • Collapsible hierarchy to save space
  • Quick, intuitive interface
  • Graceful degradation when JavaScript is not available

Included in this package is a demo module which is an example of how to:

  1. Use the "bulk_select" form element in your own forms.
  2. Use the "bulk_select" widget for a list field on an entity (e.g. user, node, etc)

Comparison with Similar Modules

  • Hierarchical Select uses select elements and an add button. It is a slower method for doing bulk selection, but a better choice if you need parent levels to be selectable.
  • Client-side hierarchical select also uses select elements, and is designed for selecting a single-value, not multiple values. It is tied to "taxonomy".
  • Simple hierarchical select also uses select elements, is tied to "taxonomy", and is designed for selecting a single-value, not multiple values.
  • Dropdown Checkboxes is not for nested options. It is a UI improvement for a standard multiple select element.
  • Sexy Exposed is not for nested options. It is a UI improvement for a standard multiple select element.
  • Chosen is for autocomplete-style select elements. It is not for nested options.
  • Multiselect is for the two-list method of selection. It is not for nested options.
  • Speedboxes uses mouse-drag to bulk select a matrix of checkboxes like on the drupal permissions page. It is not an element for outputting nested options.
  • Multi-column checkboxes radios is a way of displaying options in columns. It is not for nested options.
  • Checkall allows toggling of all checkboxes in a list. It is not for nested options.

Links

  • Project page
  • Git Clone Command: git clone --branch 7.x-1.x http://git.drupal.org/sandbox/ChrisGillis/2512634.git bulk_select

Comments

Chris Gillis’s picture

Status: Active » Needs review
PA robot’s picture

Status: Needs review » Needs work

There are some errors reported by automated review tools, did you already check them? See http://pareview.sh/pareview/httpgitdrupalorgsandboxChrisGillis2512634git

We are currently quite busy with all the project applications and we prefer projects with a review bonus. Please help reviewing and put yourself on the high priority list, then we will take a look at your project right away :-)

Also, you should get your friends, colleagues or other community members involved to review this application. Let them go through the review checklist and post a comment that sets this issue to "needs work" (they found some problems with the project) or "reviewed & tested by the community" (they found no major flaws).

I'm a robot and this is an automated message from Project Applications Scraper.

rajeshwari10’s picture

Hi,
Automated Review
Used Coder Module.
Manual Review
Individual user account
Yes : Follows
No duplication
Yes : Follows
Master Branch
Yes: Follows
3rd party assets/code
No: Not applicable
README.txt
Yes: Follows
Issues
Feature: Collapsible doesn't work.
Same Collapsible issue is happening in your demo module as well. "Client 1 is not getting displayed properly". When we click on it, it should show the children, which is not happening.

Chris Gillis’s picture

Hi raje1021,

Thanks for your feedback, I would love to fix the issue you encountered, but need some more info as I'm not able to replicate that on my end. I wonder if you could answer the following points.

1) Do you have any other contrib modules installed? Or is this a clean Drupal install?
2) Which browser and version are you using?
3) If you check your browser's javascript console, are any errors being displayed?
4) Are standard Drupal collapsibles working elsewhere in the site?

I appreciate any feedback you can give me to help identify and resolve your issue.

Regards,
Chris

PA robot’s picture

Status: Needs work » Closed (won't fix)

Closing due to lack of activity. If you are still working on this application, you should fix all known problems and then set the status to "Needs review". (See also the project application workflow).

I'm a robot and this is an automated message from Project Applications Scraper.

Chris Gillis’s picture

Status: Closed (won't fix) » Needs review
adam_’s picture

Status: Needs review » Needs work
StatusFileSize
new67.6 KB

Individual User Account?
Yes: Poster is following the guidelines for an individual user account.
No duplication?
Not really, it looks like the author has put posted in detail how the module contrasts against currently available projects, he’s definitely researched it.
Master Branch?
Yes: Default branch is set to 7.x-1.x
Licensing?
Licensing looks to be correct.
3rd party assets/code?
No, I don’t see any 3rd party assets or code.
README.txt/README.md?
README.txt is present.
Code long/complex enough for review?
Yes, there’s definitely enough code here to meet the guidelines for project length and complexity.
Secure code?

Coding style & Drupal API usage?

(+) Issue: Provided example is not functioning properly for me either (ChromeOS Pixel Laptop, Chrome). Client 1 is a link but does not expand, Client 2 is expanded but is not a link to contract (Screenshot attached). I have a couple of other project applications installed but nothing too complicated.

Recommendation: I was really confused on how to achieve the hierarchy when I tried to enter a select field using this widget. I would recommend putting some commenting in both the README and the example to describe how this is done.

I'm marking as needs work due to the broken example and not having clear direction on achieving the same results of the example on a custom field.

I like the idea, this is definitely going to be a useful module.

zendka’s picture

There's a javascript error for those who don't have jquery_update. This could be added as a dependency.

Chris Gillis’s picture

Status: Needs work » Needs review

Thank you, you're correct. I have added jquery_update as a dependency and it has resolved that issue.

@hook_awesome As soon as this becomes a proper project, I would make a handbook page discussing various ways of implementing it. For now, I'm allowing the example module to do the explaining for me. It shows off both methods - Form API and Field API. I'd prefer to have detailed configuration options in a wiki page than in a readme, so people can easily extend it.

LGLC’s picture

Status: Needs review » Reviewed & tested by the community
StatusFileSize
new53.84 KB

This is really nice little widget that I can see being very handy! The demo module shows both the Form API element and the Field Widget (in the install file), both of which give clear examples of how to use this. I agree that once this is a proper module, some documentation would make this a little easier to find.

One suggestion for an improvement is that if #expand_selected is set to TRUE and you then click on a parent option, it feels like it should open up all the way to the lowest children. Currently, it only goes one level deep with the expansion (see attachment) and not to, say, its grandchildren.

I won't re-iterate what has been said above in terms of reviewing, except to add that I've had a brief look through the code and it looks pretty tight.

Good work!

web4pro_co’s picture

Hi,
1. Please check coding standard - http://pareview.sh/pareview/httpgitdrupalorgsandboxchrisgillis2512634git
2. bulk_select.module:129 - This code is required here?

    if ($key === 0) {
      $key = '0';
    }

3. How i can add field with hierarchy using this widget from admin panel?

Thanks for your work!

Chris Gillis’s picture

Hi web4pro_co,

1) I believe the code sniffer result are false positives.
2) Yes, it is required.
3) I'm sorry, this module is for developers... it provides an element for the Form API and the Field API. It is not able to be implemented solely in the admin UI.

Regards,
Chris

damienmckenna’s picture

Status: Reviewed & tested by the community » Fixed

Thanks for your contribution, Chris!

I updated your account so you can promote this to a full project and also create new projects as either a sandbox or a "full" project.

Here are some recommended readings to help with excellent maintainership:

You can find lots more contributors chatting on IRC in #drupal-contribute. So, come hang out and stay involved!

Thanks, also, for your patience with the review process. Anyone is welcome to participate in the review process. Please consider reviewing other projects that are pending review. I encourage you to learn more about that process and join the group of reviewers.

Thanks to the dedicated reviewer(s) as well.

Chris Gillis’s picture

Thank you very much Damien. I appreciate that!

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.