[ Index ]
 

Code source de b2evolution 2.1.0-beta

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/blogs/rsc/js/ -> collectionperms.js (source)

   1  /**

   2   * Javascript for Blog permission forms (backoffice).

   3   *

   4   * b2evolution - {@link http://b2evolution.net/}

   5   * Released under GNU GPL License - {@link http://b2evolution.net/about/license.html}

   6   * @copyright (c)2003-2006 by Francois PLANQUE - {@link http://fplanque.net/}

   7   *

   8   * Parts of this file are copyright (c)2004-2006 by Daniel HAHLER - {@link http://daniel.hahler.de/}.

   9   */
  10  
  11  
  12  /**

  13   * Toggles all checkboxes of the wide layout

  14   *

  15   * @param form the form

  16   * @param integer the checkbox group id

  17   * @param integer optional force set/unset

  18   */
  19  function toggleall_wide( the_form, id, set )
  20  {
  21      if( typeof(set) != 'undefined' )
  22      {
  23          allchecked[id] = Boolean(set);
  24      }
  25      else
  26      {
  27          allchecked[id] = allchecked[id] ? false : true;
  28      }
  29  
  30      // Trigger click() on all checkboxes that need to change.

  31      // This also triggers the bozo validator, if activated!

  32      var options = new Array(
  33              "blog_ismember_", "blog_perm_published_", "blog_perm_protected_", "blog_perm_private_", "blog_perm_draft_", "blog_perm_deprecated_", "blog_perm_redirected_", "blog_perm_delpost_", "blog_perm_comments_", "blog_perm_media_upload_", "blog_perm_media_browse_", "blog_perm_media_change_", "blog_perm_cats_", "blog_perm_properties_", "blog_perm_admin_"
  34          );
  35      for( var i = 0; i < options.length; i++ )
  36      {
  37          var option = options[i]+String(id);
  38          if( the_form.elements[option].checked != allchecked[id] )
  39          {
  40              the_form.elements[option].click();
  41          }
  42      }
  43  
  44      // Select

  45      the_form.elements['blog_perm_edit_'+String(id)].value = allchecked[id] ? 'all' : 'no';
  46  }
  47  
  48  
  49  /**

  50   * Switches UI layouts by applying CSS style.display

  51   */
  52  function blogperms_switch_layout( layout )
  53  {
  54      if( layout == 'all' )
  55      {
  56          $("#userlist_default").show();
  57          $("#userlist_wide").show();
  58      }
  59      else if( layout == 'wide' )
  60      {
  61          $('#userlist_default').hide();
  62          $('#userlist_wide').show();
  63      }
  64      else
  65      {
  66          $('#userlist_default').show();
  67          $('#userlist_wide').hide();
  68      }
  69  
  70      // Update form hidden field:

  71      $('#blogperm_checkchanges').attr('layout', layout);
  72  
  73      // Update $UserSettings through async JS request:

  74      $.get( htsrv_url+'async.php', {
  75              action: 'admin_blogperms_set_layout',
  76              layout: layout
  77      });
  78  }
  79  
  80  
  81  /**

  82   * Updates other UI layouts when "easy UI" changes

  83   */
  84  function merge_from_easy( source, userid )
  85  {
  86      if( source.name.indexOf( 'blog_perm_easy_' ) != 0 )
  87      {
  88          return;
  89      }
  90  
  91      if( source.value == 'custom' )
  92      { // don't change anything
  93          return;
  94      }
  95  
  96      // reset all checkboxes / selects

  97      toggleall_wide( source.form, userid, 0 );
  98  
  99      // Select option

 100      switch( source.value )
 101      {
 102          case 'admin':
 103          case 'owner':
 104              source.form.elements['blog_perm_edit_'+String(userid)].value = 'all';
 105              break;
 106  
 107          case 'moderator':
 108              source.form.elements['blog_perm_edit_'+String(userid)].value = 'lt';
 109              break;
 110  
 111          case 'editor':
 112          case 'contrib':
 113              source.form.elements['blog_perm_edit_'+String(userid)].value = 'own';
 114              break;
 115  
 116          case 'member':
 117          default:
 118              source.form.elements['blog_perm_edit_'+String(userid)].value = 'no';
 119              break;
 120      }
 121  
 122      switch( source.value )
 123      {
 124          case 'admin':
 125              source.form.elements['blog_perm_admin_'+String(userid)].checked = 1;
 126          case 'owner':
 127              source.form.elements['blog_perm_properties_'+String(userid)].checked = 1;
 128              source.form.elements['blog_perm_cats_'+String(userid)].checked = 1;
 129              source.form.elements['blog_perm_delpost_'+String(userid)].checked = 1;
 130          case 'moderator':
 131              source.form.elements['blog_perm_comments_'+String(userid)].checked = 1;
 132              source.form.elements['blog_perm_redirected_'+String(userid)].checked = 1;
 133              source.form.elements['blog_perm_media_change_'+String(userid)].checked = 1;
 134          case 'editor':    // publisher
 135              source.form.elements['blog_perm_published_'+String(userid)].checked = 1;
 136              source.form.elements['blog_perm_protected_'+String(userid)].checked = 1;
 137              source.form.elements['blog_perm_deprecated_'+String(userid)].checked = 1;
 138          case 'contrib':
 139              source.form.elements['blog_perm_private_'+String(userid)].checked = 1;
 140              source.form.elements['blog_perm_draft_'+String(userid)].checked = 1;
 141              source.form.elements['blog_perm_media_browse_'+String(userid)].checked = 1;
 142              source.form.elements['blog_perm_media_upload_'+String(userid)].checked = 1;
 143          case 'member':
 144              source.form.elements['blog_ismember_'+String(userid)].click();
 145      }
 146  }
 147  
 148  
 149  function merge_from_wide( source, userid )
 150  {
 151      if( typeof(source.checked) != 'undefined' )
 152      { // source is checkbox
 153          f = source.form;
 154  
 155          if( source.id.indexOf( idprefix+'_state_'+String(userid) ) == 0 )
 156          { // state-checkbox
 157              if( !source.checked ){ toggleall_wide( f, userid, 0 ) }
 158              setcheckallspan(userid, source.checked);
 159          }
 160          else if( source.checked && !f.elements[idprefix+'_state_'+String(userid)].checked )
 161          {
 162              f.elements['checkallspan_state_'+String(userid)].click();
 163          }
 164      }
 165      else if( source.nodeName.toLowerCase() == 'select' )
 166      {
 167          f = source.form;
 168      }
 169      else
 170      {
 171          f = source;
 172      }
 173  
 174      var toeasy = '';
 175      if( ! f.elements['blog_ismember_'+String(userid)].checked )
 176      {
 177          toeasy = 'nomember';
 178      }
 179      else
 180      {
 181          var perms_contrib = Number(f.elements['blog_perm_draft_'+String(userid)].checked)
 182                                          +Number(f.elements['blog_perm_private_'+String(userid)].checked)
 183                                          +Number(f.elements['blog_perm_media_upload_'+String(userid)].checked)
 184                                          +Number(f.elements['blog_perm_media_browse_'+String(userid)].checked);
 185  
 186          var perms_editor = Number(f.elements['blog_perm_deprecated_'+String(userid)].checked)
 187                                          +Number(f.elements['blog_perm_protected_'+String(userid)].checked)
 188                                          +Number(f.elements['blog_perm_published_'+String(userid)].checked);
 189  
 190          var perm_moderator = Number(f.elements['blog_perm_redirected_'+String(userid)].checked)
 191                                          +Number(f.elements['blog_perm_comments_'+String(userid)].checked)
 192                                          +Number(f.elements['blog_perm_media_change_'+String(userid)].checked);
 193  
 194          var perms_owner = Number(f.elements['blog_perm_properties_'+String(userid)].checked)
 195                                          +Number(f.elements['blog_perm_cats_'+String(userid)].checked)
 196                                          +Number(f.elements['blog_perm_delpost_'+String(userid)].checked);
 197  
 198          var perms_admin = Number(f.elements['blog_perm_admin_'+String(userid)].checked);
 199  
 200          var perm_edit = f.elements['blog_perm_edit_'+String(userid)].value;
 201  
 202          // alert( perms_contrib+' '+perms_editor+' '+perm_moderator+' '+perms_admin+' '+perm_edit );

 203  
 204          if( perms_contrib == 4 && perms_editor == 3 && perm_moderator == 3 && perms_owner == 3 && perms_admin == 1 && perm_edit == 'all' )
 205          { // has full admin rights
 206              toeasy = 'admin';
 207          }
 208          else if( perms_contrib == 4 && perms_editor == 3 && perm_moderator == 3 && perms_owner == 3 && perms_admin == 0 && perm_edit == 'all' )
 209          { // has full editor rights
 210              toeasy = 'owner';
 211          }
 212          else if( perms_contrib == 4 && perms_editor == 3 && perm_moderator == 3 && perms_owner == 0 && perms_admin == 0 && perm_edit == 'lt' )
 213          { // moderator
 214              toeasy = 'moderator';
 215          }
 216          else if( perms_contrib == 4 && perms_editor == 3 && perm_moderator == 0 && perms_owner == 0 && perms_admin == 0 && perm_edit == 'own' )
 217          { // publisher
 218              toeasy = 'editor';
 219          }
 220          else if( perms_contrib == 4 && perms_editor == 0 && perm_moderator == 0 && perms_owner == 0 && perms_admin == 0 && perm_edit == 'own' )
 221          { // contributor
 222              toeasy = 'contrib';
 223          }
 224          else if( perms_contrib == 0 && perms_editor == 0 && perm_moderator == 0 && perms_owner == 0 && perms_admin == 0 && perm_edit == 'no' )
 225          {
 226              toeasy = 'member';
 227          }
 228          else
 229          {
 230              toeasy = 'custom';
 231          }
 232      }
 233  
 234      for( i = 0; i < f.elements['blog_perm_easy_'+String(userid)].length; i++ )
 235      {
 236          if( f.elements['blog_perm_easy_'+String(userid)][i].value == toeasy )
 237          {
 238              f.elements['blog_perm_easy_'+String(userid)][i].checked = 1;
 239              break;
 240          };
 241      }
 242  }
 243  


Généré le : Thu Nov 29 23:58:50 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics