This is mostly an usability related request for the panels_common_settings form defined in panels/includes/common.inc. This form is specially annoying when you have a lot of CCK fields, Views, mini-panels, etc. The form is really endless and hard to manage.

Here's a few ideas to enhance this form:

  1. Hide checkboxes for content selection when content is not enabled in "New content behavior".

    When content type groups are not enabled in the "New content behavior" option, the corresponding sections in the form could be removed.

    Here's a quick fix for this.

         foreach ($available_content_types as $id => $types) {
           foreach ($types as $type => $info) {
             $key = $id . '-' . $type;
             $checkboxes = empty($content_types[$id]['single']) ? $id : 'other';
    +        if (in_array($checkboxes, $form['panels_common_default']['#default_value'])) {
               $options[$checkboxes][$key] = $info['title'];
               if (!isset($allowed_content_types[$key])) {
                 $allowed[$checkboxes][$key] = isset($default_types[$id]) ? $default_types[$id] : $default_types['other'];
               }
               else {
                 $allowed[$checkboxes][$key] = $allowed_content_types[$key];
               }
    +        }
           }
         }
    
  2. Add support for Checkall module. It should not affect anything if this module is not present, but it helps a lot when it is. All the form needs is add the '#checkall' attribute to elements of type checkboxes.
       $form['panels_common_default'] = array(
         '#type' => 'checkboxes',
         '#title' => t('New content behavior'),
    +    '#checkall' => TRUE,
    
             $form['content_types'][$id] = array(
               '#prefix' => '<div class="panels-page-type-container">',
               '#suffix' => '</div>',
               '#type' => 'checkboxes',
    +          '#checkall' => TRUE,
               '#title' => t('Allowed @s content', array('@s' => $info['title'])),
               '#options' => $options[$id],
               '#default_value' => array_keys(array_filter($allowed[$id])),
             );
    
       $form['layouts'] = array(
         '#type' => 'checkboxes',
         '#title' => t('Select allowed layouts'),
    +    '#checkall' => TRUE,
    

    * The Checkall module adds quick links between the field label and the options to check all / toggle / uncheck all.

  3. Wrap content types checkboxes into collapsed fieldsets. This one would make it easy to focus on things one need to review in the form.

If the idea is ok, then I would be glad to provide a patch for these changes.

Comments

merlinofchaos’s picture

#2 and #3 both sound reasonable, though I worry #3 actually will provide a usability barrier by obscuring where things are. Perhaps a tabbed interface would work better. (I'm anti-lots-of-fieldsets in general).

#1 I am concerned about, because just because you don't wnat new content to appear does not mean you do not want some existing content to be usable.

merlinofchaos’s picture

Were you going to work on this? =)

markus_petrux’s picture

I lack the time right now. :(

merlinofchaos’s picture

Status: Active » Fixed

Ok, #2 done. I am not doing #1 or #3.

Status: Fixed » Closed (fixed)

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