alecpl
2011-01-17 e81a30752b244394b03cbcaa0df254c93b379782
- Fix impossible to subscribe to protected folders (#1487656)


3 files modified
26 ■■■■ changed files
CHANGELOG 1 ●●●● patch | view | raw | blame | history
program/js/app.js 8 ●●●●● patch | view | raw | blame | history
program/steps/settings/folders.inc 17 ●●●● patch | view | raw | blame | history
CHANGELOG
@@ -5,6 +5,7 @@
- Require PHP 5.2.1 or greater
- Fix %h/%z variables in username_domain option (#1487701)
- Workaround for setting charset in case of malformed bodystructure response (#1487700)
- Fix impossible to subscribe to protected folders (#1487656)
RELEASE 0.5
-----------
program/js/app.js
@@ -4309,6 +4309,14 @@
    }
  };
  // disables subscription checkbox (for protected folder)
  this.disable_subscription = function(folder)
  {
    var id = this.get_folder_row_id(folder);
    if (id)
      $('input[name="_subscribed[]"]', $('#'+id)).attr('disabled', true);
  };
  this.folder_size = function(folder)
  {
    var lock = this.set_busy(true, 'loading');
program/steps/settings/folders.inc
@@ -42,8 +42,16 @@
            }
        }
        if ($result)
        if ($result) {
            // Handle subscription of protected folder (#1487656)
            if ($CONFIG['protect_default_folders'] == true
                && in_array($mbox, $CONFIG['default_imap_folders'])
            ) {
                $OUTPUT->command('disable_subscription', $mbox);
            }
            $OUTPUT->show_message('foldersubscribed', 'confirmation');
        }
        else
            rcmail_display_server_error('errorsaving');
    }
@@ -294,13 +302,16 @@
            $noselect = in_array('\\Noselect', $opts);
        }
        $disabled = (($protected && $subscribed) || $noselect);
        $table->add_row(array('id' => 'rcmrow'.$idx, 'class' => join(' ', $classes)));
    
        $table->add('name', $display_folder);
        $table->add('subscribed', $checkbox_subscribe->show(($subscribed ? $folder_utf8 : ''),
            array('value' => $folder_utf8, 'disabled' => ($protected || $noselect) ? 'disabled' : '')));
            array('value' => $folder_utf8, 'disabled' => $disabled ? 'disabled' : '')));
        $a_js_folders['rcmrow'.$idx] = array($folder_utf8, Q($display_folder), $protected || $folder['virtual']);
        $a_js_folders['rcmrow'.$idx] = array($folder_utf8,
            Q($display_folder), $protected || $folder['virtual']);
    }
    $RCMAIL->plugins->exec_hook('folders_list', array('table' => $table));