includes/clientside/static/acl.js
author Dan
Mon, 16 Feb 2009 17:01:56 -0500
changeset 833 16054ea5b525
parent 823 4596c40aaa94
child 907 44851d7e9bda
permissions -rw-r--r--
Damn, forgot to add the version insertion back into schema
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
     1
// Javascript routines for the ACL editor
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
     2
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
     3
var aclManagerID = 'enano_aclmanager_' + Math.floor(Math.random() * 1000000);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
     4
var aclPermList = false;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
     5
var aclDataCache = false;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
     6
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
     7
function ajaxOpenACLManager(page_id, namespace)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
     8
{
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
     9
  if(IE)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    10
    return true;
585
35e91d16ecf5 Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Dan
parents: 582
diff changeset
    11
  
787
b0d0d429d8cf Fixed: autocomplete got broken somehow
Dan
parents: 779
diff changeset
    12
  load_component(['l10n', 'messagebox', 'fadefilter', 'template-compiler', 'jquery', 'jquery-ui', 'autofill']);
582
a38876c0793c Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents: 568
diff changeset
    13
  
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    14
  if(!page_id || !namespace)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    15
  {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    16
    var data = strToPageID(title);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    17
    var page_id = data[0];
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    18
    var namespace = data[1];
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    19
  }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    20
  var params = {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    21
      'mode' : 'listgroups',
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    22
      'page_id' : page_id,
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    23
      'namespace' : namespace
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    24
    };
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    25
  params = toJSONString(params);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    26
  params = ajaxEscape(params);
823
4596c40aaa94 AJAX core library: possible breaking change, readystatechange functions are now called with the XHR instance as the first parameter, to allow requests to run in parallel. This means much better stability but may break some applets (compatibility hack is included)
Dan
parents: 787
diff changeset
    27
  ajaxPost(stdAjaxPrefix+'&_mode=acljson', 'acl_params='+params, function(ajax) {
407
35d94240a197 Mass-fixed all AJAX functions to also check the HTTP status code before parsing the response
Dan
parents: 377
diff changeset
    28
      if ( ajax.readyState == 4 && ajax.status == 200 )
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    29
      {
327
c2f4c900c507 The merge of acl.js failed so re-merged manually
Dan
parents: 326
diff changeset
    30
        var response = String(ajax.responseText + '');
651
ce9d78d7251d Improved JSON validation and error interface when validation fails; made rank manager support custom CSS
Dan
parents: 586
diff changeset
    31
        if ( !check_json_response(response) )
327
c2f4c900c507 The merge of acl.js failed so re-merged manually
Dan
parents: 326
diff changeset
    32
        {
c2f4c900c507 The merge of acl.js failed so re-merged manually
Dan
parents: 326
diff changeset
    33
          handle_invalid_json(ajax.responseText);
c2f4c900c507 The merge of acl.js failed so re-merged manually
Dan
parents: 326
diff changeset
    34
          return false;
c2f4c900c507 The merge of acl.js failed so re-merged manually
Dan
parents: 326
diff changeset
    35
        }
c2f4c900c507 The merge of acl.js failed so re-merged manually
Dan
parents: 326
diff changeset
    36
        try {
512
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    37
          var groups = parseJSON(ajax.responseText);
327
c2f4c900c507 The merge of acl.js failed so re-merged manually
Dan
parents: 326
diff changeset
    38
        } catch(e) {
c2f4c900c507 The merge of acl.js failed so re-merged manually
Dan
parents: 326
diff changeset
    39
          handle_invalid_json(ajax.responseText);
c2f4c900c507 The merge of acl.js failed so re-merged manually
Dan
parents: 326
diff changeset
    40
        }
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    41
        __aclBuildWizardWindow();
40
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
    42
        if ( groups.mode == 'error' )
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
    43
        {
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
    44
          alert(groups.error);
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
    45
          killACLManager();
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
    46
          return false;
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
    47
        }
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    48
        aclDataCache = groups;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    49
        __aclBuildSelector(groups);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    50
      }
335
67bd3121a12e Replaced TinyMCE 2.x with 3.0 beta 3. Supports everything but IE. Also rewrote the editor interface completely from the ground up.
Dan
parents: 327
diff changeset
    51
    }, true);
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    52
  return false;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    53
}
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
    54
512
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    55
function ajaxOpenDirectACLRule(rule_id)
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    56
{
779
609e35845ec3 load_component() now accepts an array, and most JS components are loaded all in one request now. Totally modular baby. And failsafe too.
Dan
parents: 763
diff changeset
    57
  load_component(['l10n', 'messagebox', 'fadefilter', 'template-compiler', 'autofill']);
694
43367c66d869 Couple of fixes (hacks) for Opera and the aftermath of that z-index change to darken() and enlighten() fadefilters; added ajaxOpenDirectACLRule() to placeholder list
Dan
parents: 679
diff changeset
    58
  
512
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    59
  var params = {
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    60
    target_id: rule_id,
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    61
    mode: 'seltarget_id'
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    62
  };
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    63
  params = ajaxEscape(toJSONString(params));
823
4596c40aaa94 AJAX core library: possible breaking change, readystatechange functions are now called with the XHR instance as the first parameter, to allow requests to run in parallel. This means much better stability but may break some applets (compatibility hack is included)
Dan
parents: 787
diff changeset
    64
  ajaxPost(stdAjaxPrefix+'&_mode=acljson', 'acl_params='+params, function(ajax) {
512
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    65
      if ( ajax.readyState == 4 && ajax.status == 200 )
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    66
      {
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    67
        var response = String(ajax.responseText + '');
651
ce9d78d7251d Improved JSON validation and error interface when validation fails; made rank manager support custom CSS
Dan
parents: 586
diff changeset
    68
        if ( !check_json_response(response) )
512
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    69
        {
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    70
          handle_invalid_json(ajax.responseText);
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    71
          return false;
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    72
        }
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    73
        try
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    74
        {
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    75
          response = parseJSON(response);
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    76
        }
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    77
        catch(e)
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    78
        {
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    79
          handle_invalid_json(response);
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    80
        }
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    81
        if ( !document.getElementById(aclManagerID) )
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    82
        {
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    83
          __aclBuildWizardWindow();
513
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
    84
          var main = document.getElementById(aclManagerID + '_main');
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
    85
          main.style.padding = '10px';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
    86
        }
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
    87
        else
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
    88
        {
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
    89
          var main = document.getElementById(aclManagerID + '_main');
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
    90
          main.style.backgroundImage = 'none';
512
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    91
        }
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    92
        if ( response.mode == 'error' )
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    93
        {
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    94
          alert(response.error);
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    95
          killACLManager();
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    96
          return false;
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    97
        }
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
    98
        aclDataCache = response;
513
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
    99
        aclBuildRuleEditor(response, true);
512
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   100
      }
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   101
    }, true);
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   102
}
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   103
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   104
function ajaxACLSwitchToSelector()
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   105
{
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   106
  params = {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   107
      'mode' : 'listgroups'
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   108
    };
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   109
  if ( aclDataCache.page_id && aclDataCache.namespace )
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   110
  {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   111
    params.page_id   = aclDataCache.page_id;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   112
    params.namespace = aclDataCache.namespace;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   113
  }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   114
  params = toJSONString(params);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   115
  params = ajaxEscape(params);
823
4596c40aaa94 AJAX core library: possible breaking change, readystatechange functions are now called with the XHR instance as the first parameter, to allow requests to run in parallel. This means much better stability but may break some applets (compatibility hack is included)
Dan
parents: 787
diff changeset
   116
  ajaxPost(stdAjaxPrefix+'&_mode=acljson', 'acl_params='+params, function(ajax) {
407
35d94240a197 Mass-fixed all AJAX functions to also check the HTTP status code before parsing the response
Dan
parents: 377
diff changeset
   117
      if ( ajax.readyState == 4 && ajax.status == 200 )
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   118
      {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   119
        document.getElementById(aclManagerID+'_main').innerHTML = '';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   120
        document.getElementById(aclManagerID + '_back').style.display = 'none';
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   121
        document.getElementById(aclManagerID + '_next').value = $lang.get('etc_wizard_next');
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   122
        groups = parseJSON(ajax.responseText);
40
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   123
        if ( groups.mode == 'error' )
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   124
        {
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   125
          alert(groups.error);
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   126
          killACLManager();
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   127
          return false;
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   128
        }
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   129
        aclDataCache = groups;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   130
        thispage = strToPageID(title);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   131
        groups.page_id = thispage[0];
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   132
        groups.namespace = thispage[1];
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   133
        __aclBuildSelector(groups);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   134
      }
335
67bd3121a12e Replaced TinyMCE 2.x with 3.0 beta 3. Supports everything but IE. Also rewrote the editor interface completely from the ground up.
Dan
parents: 327
diff changeset
   135
    }, true);
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   136
}
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   137
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   138
function __aclBuildSelector(groups)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   139
{
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   140
  thispage = strToPageID(title);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   141
  do_scopesel = ( thispage[0] == groups.page_id && thispage[1] == groups.namespace );
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   142
  
513
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   143
  document.getElementById(aclManagerID + '_next').style.display = 'inline';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   144
  
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   145
  seed = Math.floor(Math.random() * 1000000);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   146
        
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   147
  main = document.getElementById(aclManagerID + '_main');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   148
  main.style.padding = '10px';
513
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   149
  main.style.backgroundImage = 'none';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   150
  
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   151
  // the "edit existing" button
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   152
  var editbtn_wrapper = document.createElement('div');
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   153
  editbtn_wrapper.style.styleFloat = 'right';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   154
  editbtn_wrapper.style.cssFloat = 'right';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   155
  editbtn_wrapper.style.fontSize = 'smaller';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   156
  var editbtn = document.createElement('a');
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   157
  editbtn.href = '#';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   158
  editbtn.innerHTML = $lang.get('acl_btn_show_existing');
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   159
  editbtn_wrapper.appendChild(editbtn);
729
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   160
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   161
  // tracer button
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   162
  var tracebtn = document.createElement('a');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   163
  tracebtn.href = '#';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   164
  tracebtn.innerHTML = $lang.get('acl_btn_view_effective');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   165
  editbtn_wrapper.appendChild(document.createElement('br'));
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   166
  editbtn_wrapper.appendChild(tracebtn);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   167
  
513
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   168
  main.appendChild(editbtn_wrapper);
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   169
  
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   170
  editbtn.onclick = function()
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   171
  {
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   172
    aclSetViewListExisting();
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   173
    return false;
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   174
  }
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   175
  
729
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   176
  tracebtn.onclick = function()
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   177
  {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   178
    aclSetViewDebugTools();
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   179
    return false;
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   180
  }
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   181
  
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   182
  selector = document.createElement('div');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   183
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   184
  grpsel = __aclBuildGroupsHTML(groups);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   185
  grpsel.name = 'group_id';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   186
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   187
  span = document.createElement('div');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   188
  span.id = "enACL_grpbox_"+seed+"";
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   189
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   190
  // Build the selector
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   191
  grpb = document.createElement('input');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   192
  grpb.type = 'radio';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   193
  grpb.name  = 'target_type';
40
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   194
  grpb.value = '1'; // ACL_TYPE_GROUP
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   195
  grpb.checked = 'checked';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   196
  grpb.className = seed;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   197
  grpb.onclick = function() { seed = this.className; document.getElementById('enACL_grpbox_'+seed).style.display = 'block'; document.getElementById('enACL_usrbox_'+seed).style.display = 'none'; };
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   198
  lbl = document.createElement('label');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   199
  lbl.appendChild(grpb);
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   200
  lbl.appendChild(document.createTextNode($lang.get('acl_radio_usergroup')));
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   201
  lbl.style.display = 'block';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   202
  span.appendChild(grpsel);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   203
  
42
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
   204
  anoninfo = document.createElement('div');
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
   205
  anoninfo.className = 'info-box-mini';
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   206
  anoninfo.appendChild(document.createTextNode($lang.get('acl_msg_guest_howto')));
42
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
   207
  span.appendChild(document.createElement('br'));
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
   208
  span.appendChild(anoninfo);
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
   209
  
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   210
  usrb = document.createElement('input');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   211
  usrb.type = 'radio';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   212
  usrb.name  = 'target_type';
40
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   213
  usrb.value = '2'; // ACL_TYPE_USER
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   214
  usrb.className = seed;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   215
  usrb.onclick = function() { seed = this.className; document.getElementById('enACL_grpbox_'+seed).style.display = 'none'; document.getElementById('enACL_usrbox_'+seed).style.display = 'block'; };
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   216
  lbl2 = document.createElement('label');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   217
  lbl2.appendChild(usrb);
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   218
  lbl2.appendChild(document.createTextNode($lang.get('acl_radio_user')));
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   219
  lbl2.style.display = 'block';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   220
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   221
  usrsel = document.createElement('input');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   222
  usrsel.type = 'text';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   223
  usrsel.name = 'username';
677
2a263b598a2b Improved miniPrompt and fadefilter to properly overlap parent modal windows. MessageBox() is next. Fixed pref_disable_js_fx not working due to wrong type (number instead of boolean).
Dan
parents: 651
diff changeset
   224
  usrsel.className = 'autofill username';
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   225
  usrsel.id = 'userfield_' + aclManagerID;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   226
  try {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   227
    usrsel.setAttribute("autocomplete","off");
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   228
  } catch(e) {};
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   229
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   230
  span2 = document.createElement('div');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   231
  span2.id = "enACL_usrbox_"+seed+"";
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   232
  span2.style.display = 'none';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   233
  span2.appendChild(usrsel);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   234
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   235
  // Scope selector
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   236
  if(do_scopesel)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   237
  {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   238
    scopediv1 = document.createElement('div');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   239
    scopediv2 = document.createElement('div');
73
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   240
    scopediv3 = document.createElement('div');
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   241
    scopeRadioPage = document.createElement('input');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   242
      scopeRadioPage.type = 'radio';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   243
      scopeRadioPage.name = 'scope';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   244
      scopeRadioPage.value = 'page';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   245
      scopeRadioPage.checked = 'checked';
73
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   246
      scopeRadioPage.className = '1048576';
76
608dee512bf0 Work started on page tags, still aways to go, but syncing to Nighthawk
Dan
parents: 74
diff changeset
   247
      if ( groups.page_groups.length > 0 ) scopeRadioPage.onclick = function() { var id = 'enACL_pgsel_' + this.className; document.getElementById(id).style.display = 'none'; };
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   248
    scopeRadioGlobal = document.createElement('input');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   249
      scopeRadioGlobal.type = 'radio';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   250
      scopeRadioGlobal.name = 'scope';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   251
      scopeRadioGlobal.value = 'global';
73
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   252
      scopeRadioGlobal.className = '1048576';
76
608dee512bf0 Work started on page tags, still aways to go, but syncing to Nighthawk
Dan
parents: 74
diff changeset
   253
      if ( groups.page_groups.length > 0 ) scopeRadioGlobal.onclick = function() { var id = 'enACL_pgsel_' + this.className; document.getElementById(id).style.display = 'none'; };
73
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   254
    scopeRadioGroup = document.createElement('input');
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   255
      scopeRadioGroup.type = 'radio';
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   256
      scopeRadioGroup.name = 'scope';
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   257
      scopeRadioGroup.value = 'group';
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   258
      scopeRadioGroup.className = '1048576';
76
608dee512bf0 Work started on page tags, still aways to go, but syncing to Nighthawk
Dan
parents: 74
diff changeset
   259
      if ( groups.page_groups.length > 0 ) scopeRadioGroup.onclick = function() { var id = 'enACL_pgsel_' + this.className; document.getElementById(id).style.display = 'block'; };
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   260
    lblPage = document.createElement('label');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   261
      lblPage.style.display = 'block';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   262
      lblPage.appendChild(scopeRadioPage);
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   263
      lblPage.appendChild(document.createTextNode($lang.get('acl_radio_scope_thispage')));
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   264
    lblGlobal = document.createElement('label');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   265
      lblGlobal.style.display = 'block';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   266
      lblGlobal.appendChild(scopeRadioGlobal);
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   267
      lblGlobal.appendChild(document.createTextNode($lang.get('acl_radio_scope_wholesite')));
73
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   268
    lblGroup = document.createElement('label');
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   269
      lblGroup.style.display = 'block';
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   270
      lblGroup.appendChild(scopeRadioGroup);
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   271
      lblGroup.appendChild(document.createTextNode($lang.get('acl_radio_scope_pagegroup')));
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   272
    scopediv1.appendChild(lblPage);
73
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   273
    scopediv2.appendChild(lblGroup);
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   274
    scopediv3.appendChild(lblGlobal);
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   275
    
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   276
    scopedesc = document.createElement('p');
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   277
    scopedesc.appendChild(document.createTextNode($lang.get('acl_lbl_scope')));
73
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   278
    
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   279
    scopePGrp = document.createElement('select');
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   280
    scopePGrp.style.marginLeft = '13px';
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   281
    scopePGrp.style.display = 'none';
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   282
    scopePGrp.id = "enACL_pgsel_1048576";
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   283
    
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   284
    var opt;
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   285
    for ( var i = 0; i < groups.page_groups.length; i++ )
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   286
    {
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   287
      opt = document.createElement('option');
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   288
      opt.value = groups.page_groups[i].id;
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   289
      opt.appendChild(document.createTextNode(groups.page_groups[i].name));
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   290
      scopePGrp.appendChild(opt);
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   291
    }
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   292
    
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   293
    scopediv2.appendChild(scopePGrp);
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   294
    
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   295
  }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   296
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   297
  // Styles
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   298
  span.style.marginLeft = '13px';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   299
  span.style.padding = '5px 0';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   300
  span2.style.marginLeft = '13px';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   301
  span2.style.padding = '5px 0';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   302
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   303
  selector.appendChild(lbl);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   304
  selector.appendChild(span);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   305
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   306
  selector.appendChild(lbl2);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   307
  selector.appendChild(span2);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   308
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   309
  container = document.createElement('div');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   310
  container.style.margin = 'auto';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   311
  container.style.width = '360px';
73
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   312
  container.style.paddingTop = '50px';
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   313
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   314
  head = document.createElement('h2');
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   315
  head.appendChild(document.createTextNode($lang.get('acl_lbl_welcome_title')));
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   316
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   317
  desc = document.createElement('p');
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   318
  desc.appendChild(document.createTextNode($lang.get('acl_lbl_welcome_body')));
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   319
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   320
  container.appendChild(head);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   321
  container.appendChild(desc);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   322
  container.appendChild(selector);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   323
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   324
  if(do_scopesel)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   325
  {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   326
    container.appendChild(scopedesc);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   327
    container.appendChild(scopediv1);
76
608dee512bf0 Work started on page tags, still aways to go, but syncing to Nighthawk
Dan
parents: 74
diff changeset
   328
    if ( groups.page_groups.length > 0 )
608dee512bf0 Work started on page tags, still aways to go, but syncing to Nighthawk
Dan
parents: 74
diff changeset
   329
    {
608dee512bf0 Work started on page tags, still aways to go, but syncing to Nighthawk
Dan
parents: 74
diff changeset
   330
      container.appendChild(scopediv2);
608dee512bf0 Work started on page tags, still aways to go, but syncing to Nighthawk
Dan
parents: 74
diff changeset
   331
    }
73
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   332
    container.appendChild(scopediv3);
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   333
  }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   334
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   335
  main.appendChild(container);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   336
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   337
  var mode = document.createElement('input');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   338
  mode.name = 'mode';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   339
  mode.type = 'hidden';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   340
  mode.id = aclManagerID + '_mode';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   341
  mode.value = 'seltarget';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   342
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   343
  var theform = document.getElementById(aclManagerID + '_formobj_id');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   344
  if ( !theform.mode )
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   345
  {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   346
    theform.appendChild(mode);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   347
  }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   348
  else
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   349
  {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   350
    theform.removeChild(theform.mode);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   351
    theform.appendChild(mode);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   352
  }
677
2a263b598a2b Improved miniPrompt and fadefilter to properly overlap parent modal windows. MessageBox() is next. Fixed pref_disable_js_fx not working due to wrong type (number instead of boolean).
Dan
parents: 651
diff changeset
   353
  
2a263b598a2b Improved miniPrompt and fadefilter to properly overlap parent modal windows. MessageBox() is next. Fixed pref_disable_js_fx not working due to wrong type (number instead of boolean).
Dan
parents: 651
diff changeset
   354
  autofill_init_element(usrsel, {
2a263b598a2b Improved miniPrompt and fadefilter to properly overlap parent modal windows. MessageBox() is next. Fixed pref_disable_js_fx not working due to wrong type (number instead of boolean).
Dan
parents: 651
diff changeset
   355
      allow_anon: true
2a263b598a2b Improved miniPrompt and fadefilter to properly overlap parent modal windows. MessageBox() is next. Fixed pref_disable_js_fx not working due to wrong type (number instead of boolean).
Dan
parents: 651
diff changeset
   356
    });
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   357
}
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   358
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   359
var aclDebugWin = false;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   360
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   361
function aclDebug(text)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   362
{
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   363
  if(!aclDebugWin)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   364
    aclDebugWin = pseudoWindowOpen("data:text/html;plain,<html><head><title>debug win</title></head><body><h1>Debug window</h1></body></html>", "aclDebugWin");
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   365
    setTimeout(function() {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   366
  aclDebugWin.pre = aclDebugWin.document.createElement('pre');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   367
  aclDebugWin.pre.appendChild(aclDebugWin.document.createTextNode(text));
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   368
  aclDebugWin.b = aclDebugWin.document.getElementsByTagName('body')[0];
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   369
    aclDebugWin.b.appendChild(aclDebugWin.pre);}, 1000);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   370
}
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   371
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   372
var pseudoWindows = new Object();
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   373
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   374
function pseudoWindowOpen(url, id)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   375
{
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   376
  if(pseudoWindows[id])
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   377
  {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   378
    document.getElementById('pseudowin_ifr_'+id).src = url;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   379
  }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   380
  else
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   381
  {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   382
    win = document.createElement('iframe');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   383
    win.style.position='fixed';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   384
    win.style.width = '640px';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   385
    win.style.height = '480px';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   386
    win.style.top = '0px';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   387
    win.style.left = '0px';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   388
    win.style.zIndex = getHighestZ() + 1;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   389
    win.style.backgroundColor = '#FFFFFF';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   390
    win.name = 'pseudo_ifr_'+id;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   391
    win.id = 'pseudowindow_ifr_'+id;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   392
    win.src = url;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   393
    body = document.getElementsByTagName('body')[0];
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   394
    body.appendChild(win);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   395
  }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   396
  win_obj = eval("( pseudo_ifr_"+id+" )");
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   397
  return win_obj;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   398
}
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   399
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   400
function __aclJSONSubmitAjaxHandler(params)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   401
{
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   402
  params = toJSONString(params);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   403
  params = ajaxEscape(params);
823
4596c40aaa94 AJAX core library: possible breaking change, readystatechange functions are now called with the XHR instance as the first parameter, to allow requests to run in parallel. This means much better stability but may break some applets (compatibility hack is included)
Dan
parents: 787
diff changeset
   404
  ajaxPost(stdAjaxPrefix+'&_mode=acljson', 'acl_params='+params, function(ajax) {
407
35d94240a197 Mass-fixed all AJAX functions to also check the HTTP status code before parsing the response
Dan
parents: 377
diff changeset
   405
      if ( ajax.readyState == 4 && ajax.status == 200 )
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   406
      {
327
c2f4c900c507 The merge of acl.js failed so re-merged manually
Dan
parents: 326
diff changeset
   407
        var response = String(ajax.responseText + '');
651
ce9d78d7251d Improved JSON validation and error interface when validation fails; made rank manager support custom CSS
Dan
parents: 586
diff changeset
   408
        if ( !check_json_response(response) )
327
c2f4c900c507 The merge of acl.js failed so re-merged manually
Dan
parents: 326
diff changeset
   409
        {
c2f4c900c507 The merge of acl.js failed so re-merged manually
Dan
parents: 326
diff changeset
   410
          handle_invalid_json(ajax.responseText);
c2f4c900c507 The merge of acl.js failed so re-merged manually
Dan
parents: 326
diff changeset
   411
          return false;
c2f4c900c507 The merge of acl.js failed so re-merged manually
Dan
parents: 326
diff changeset
   412
        }
513
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   413
        try
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   414
        {
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   415
          var data = parseJSON(ajax.responseText);
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   416
        }
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   417
        catch(e)
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   418
        {
327
c2f4c900c507 The merge of acl.js failed so re-merged manually
Dan
parents: 326
diff changeset
   419
          handle_invalid_json(ajax.responseText);
513
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   420
          return false;
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   421
        }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   422
        aclDataCache = data;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   423
        switch(data.mode)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   424
        {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   425
          case 'seltarget':
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   426
            
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   427
            // Build the ACL edit form
512
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   428
            aclBuildRuleEditor(data);
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   429
            
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   430
            break;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   431
          case 'success':
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   432
            var note = document.createElement('div');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   433
            note.className = 'info-box';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   434
            note.style.marginLeft = '0';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   435
            var b = document.createElement('b');
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   436
            b.appendChild(document.createTextNode($lang.get('acl_lbl_save_success_title')));
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   437
            note.appendChild(b);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   438
            note.appendChild(document.createElement('br'));
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   439
            note.appendChild(document.createTextNode($lang.get('acl_lbl_save_success_body', { target_name: data.target_name })));
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   440
            note.appendChild(document.createElement('br'));
472
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   441
            
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   442
            /*
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   443
            var a = document.createElement('a');
335
67bd3121a12e Replaced TinyMCE 2.x with 3.0 beta 3. Supports everything but IE. Also rewrote the editor interface completely from the ground up.
Dan
parents: 327
diff changeset
   444
            a.href = '#';
419
b8b4e38825db Unsuccessful attempt at fixing "dismiss"/"close manager" buttons in ACL editor; non-breaking change to template API to allow plugins to add "normal" sidebar widgets in addition to the special "raw" block type, specified as the third parameter to $template->sidebar_widget(). Defaults to false, which is old behavior; new behavior (enabled by passing TRUE as the 3rd param) means that the content of the block is primarily block-level links.
Dan
parents: 407
diff changeset
   445
            a.id = aclManagerID + '_btn_dismiss';
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   446
            a.appendChild(document.createTextNode('[ ' + $lang.get('acl_btn_success_dismiss') + ' :'));
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   447
            note.appendChild(a);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   448
            var a2 = document.createElement('a');
335
67bd3121a12e Replaced TinyMCE 2.x with 3.0 beta 3. Supports everything but IE. Also rewrote the editor interface completely from the ground up.
Dan
parents: 327
diff changeset
   449
            a2.href = '#';
419
b8b4e38825db Unsuccessful attempt at fixing "dismiss"/"close manager" buttons in ACL editor; non-breaking change to template API to allow plugins to add "normal" sidebar widgets in addition to the special "raw" block type, specified as the third parameter to $template->sidebar_widget(). Defaults to false, which is old behavior; new behavior (enabled by passing TRUE as the 3rd param) means that the content of the block is primarily block-level links.
Dan
parents: 407
diff changeset
   450
            a.id = aclManagerID + '_btn_close';
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   451
            a2.appendChild(document.createTextNode(': ' + $lang.get('acl_btn_success_close') + ' ]'));
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   452
            note.appendChild(a2);
472
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   453
            */
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   454
            
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   455
            var a_dismiss = document.createElement('a');
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   456
            a_dismiss.href = '#';
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   457
            a_dismiss.appendChild(document.createTextNode('[ ' + $lang.get('acl_btn_success_dismiss') + ' :'));
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   458
            note.appendChild(a_dismiss);
42
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
   459
            
472
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   460
            var a_close = document.createElement('a');
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   461
            a_close.href = '#';
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   462
            a_close.appendChild(document.createTextNode(': ' + $lang.get('acl_btn_success_close') + ' ]'));
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   463
            note.appendChild(a_close);
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   464
            
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   465
            document.getElementById(aclManagerID + '_main').insertBefore(note, document.getElementById(aclManagerID + '_main').firstChild);
419
b8b4e38825db Unsuccessful attempt at fixing "dismiss"/"close manager" buttons in ACL editor; non-breaking change to template API to allow plugins to add "normal" sidebar widgets in addition to the special "raw" block type, specified as the third parameter to $template->sidebar_widget(). Defaults to false, which is old behavior; new behavior (enabled by passing TRUE as the 3rd param) means that the content of the block is primarily block-level links.
Dan
parents: 407
diff changeset
   466
            
472
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   467
            a_dismiss.setAttribute('onclick', 'var parent = this.parentNode.parentNode; parent.removeChild(this.parentNode); return false;');
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   468
            a_close.setAttribute('onclick', 'killACLManager(); return false;');
419
b8b4e38825db Unsuccessful attempt at fixing "dismiss"/"close manager" buttons in ACL editor; non-breaking change to template API to allow plugins to add "normal" sidebar widgets in addition to the special "raw" block type, specified as the third parameter to $template->sidebar_widget(). Defaults to false, which is old behavior; new behavior (enabled by passing TRUE as the 3rd param) means that the content of the block is primarily block-level links.
Dan
parents: 407
diff changeset
   469
            
472
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   470
            if ( !document.getElementById(aclManagerID+'_deletelnk') )
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   471
              document.getElementById(aclManagerID + '_main').innerHTML += '<p id="'+aclManagerID+'_deletelnk" style="text-align: right;"><a href="#delete_acl_rule" onclick="if(confirm(\'' + $lang.get('acl_msg_deleterule_confirm') + '\')) __aclDeleteRule(); return false;" style="color: red;">' + $lang.get('acl_lbl_deleterule') + '</a></p>';
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   472
            
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   473
            document.getElementById(aclManagerID+'_main').scrollTop = 0;
513
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   474
            document.getElementById(aclManagerID+'_main').style.backgroundImage = 'none';
472
bc4b58034f4d Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Dan
parents: 419
diff changeset
   475
                        
42
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
   476
            aclDataCache.mode = 'save_edit';
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   477
            break;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   478
          case 'delete':
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   479
            
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   480
            params = {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   481
              'mode' : 'listgroups'
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   482
            };
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   483
          params = toJSONString(params);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   484
          params = ajaxEscape(params);
823
4596c40aaa94 AJAX core library: possible breaking change, readystatechange functions are now called with the XHR instance as the first parameter, to allow requests to run in parallel. This means much better stability but may break some applets (compatibility hack is included)
Dan
parents: 787
diff changeset
   485
          ajaxPost(stdAjaxPrefix+'&_mode=acljson', 'acl_params='+params, function(ajax) {
407
35d94240a197 Mass-fixed all AJAX functions to also check the HTTP status code before parsing the response
Dan
parents: 377
diff changeset
   486
              if ( ajax.readyState == 4 && ajax.status == 200 )
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   487
              {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   488
                document.getElementById(aclManagerID+'_main').innerHTML = '';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   489
                document.getElementById(aclManagerID + '_back').style.display = 'none';
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   490
                document.getElementById(aclManagerID + '_next').value = $lang.get('etc_wizard_next');
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   491
                var thispage = strToPageID(title);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   492
                groups.page_id = thispage[0];
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   493
                groups.namespace = thispage[1];
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   494
                __aclBuildSelector(groups);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   495
                
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   496
                note = document.createElement('div');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   497
                note.className = 'info-box';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   498
                note.style.marginLeft = '0';
42
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
   499
                note.style.position = 'absolute';
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
   500
                note.style.width = '558px';
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
   501
                note.id = 'aclSuccessNotice_' + Math.floor(Math.random() * 100000);
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   502
                b = document.createElement('b');
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   503
                b.appendChild(document.createTextNode($lang.get('acl_lbl_delete_success_title')));
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   504
                note.appendChild(b);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   505
                note.appendChild(document.createElement('br'));
336
bfa2e9c23f03 Added ability to require CAPTCHA for guests when editing pages (AJAX INTERFACE ONLY)
Dan
parents: 335
diff changeset
   506
                note.appendChild(document.createTextNode($lang.get('acl_lbl_delete_success_body', { target_name: aclDataCache.target_name })));
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   507
                note.appendChild(document.createElement('br'));
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   508
                a = document.createElement('a');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   509
                a.href = '#';
42
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
   510
                a.onclick = function() { opacity(this.parentNode.id, 100, 0, 1000); setTimeout('var div = document.getElementById("' + this.parentNode.id + '"); div.parentNode.removeChild(div);', 1100); return false; };
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   511
                a.appendChild(document.createTextNode('[ ' + $lang.get('acl_btn_success_dismiss') + ' :'));
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   512
                note.appendChild(a);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   513
                a = document.createElement('a');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   514
                a.href = '#';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   515
                a.onclick = function() { killACLManager(); return false; };
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   516
                a.appendChild(document.createTextNode(': ' + $lang.get('acl_btn_success_close') + ' ]'));
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   517
                note.appendChild(a);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   518
                document.getElementById(aclManagerID + '_main').insertBefore(note, document.getElementById(aclManagerID + '_main').firstChild);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   519
                //fadeInfoBoxes();
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   520
                
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   521
              }
335
67bd3121a12e Replaced TinyMCE 2.x with 3.0 beta 3. Supports everything but IE. Also rewrote the editor interface completely from the ground up.
Dan
parents: 327
diff changeset
   522
            }, true);
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   523
            
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   524
            break;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   525
          case 'error':
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   526
            alert("Server side processing error:\n"+data.error);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   527
            break;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   528
          case 'debug':
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   529
            aclDebug(data.text);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   530
            break;
513
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   531
          case 'list_existing':
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   532
            aclSetViewListExistingRespond(data);
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   533
            break;
729
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   534
          case 'trace':
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   535
            aclDrawTraceWrapper(data);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   536
            break;
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   537
          default:
327
c2f4c900c507 The merge of acl.js failed so re-merged manually
Dan
parents: 326
diff changeset
   538
            handle_invalid_json(ajax.responseText);
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   539
            break;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   540
        }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   541
      }
335
67bd3121a12e Replaced TinyMCE 2.x with 3.0 beta 3. Supports everything but IE. Also rewrote the editor interface completely from the ground up.
Dan
parents: 327
diff changeset
   542
    }, true);
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   543
}
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   544
513
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   545
function aclBuildRuleEditor(data, from_direct)
512
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   546
{
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   547
  var act_desc = ( data.type == 'new' ) ? $lang.get('acl_lbl_editwin_title_create') : $lang.get('acl_lbl_editwin_title_edit');
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   548
  var target_type_t = ( data.target_type == 1 ) ? $lang.get('acl_target_type_group') : $lang.get('acl_target_type_user');
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   549
  var target_name_t = data.target_name;
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   550
  var scope_type = ( data.page_id == false && data.namespace == false ) ? $lang.get('acl_scope_type_wholesite') : ( data.namespace == '__PageGroup' ) ? $lang.get('acl_scope_type_pagegroup') : $lang.get('acl_scope_type_thispage');
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   551
  
513
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   552
  document.getElementById(aclManagerID + '_next').style.display = 'inline';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   553
  
512
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   554
  html = '<h2>'+act_desc+'</h2>';
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   555
  html += '<p>' + $lang.get('acl_lbl_editwin_body', { target_type: target_type_t, target: target_name_t, scope_type: scope_type }) + '</p>';
679
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
   556
  
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
   557
  // preset management
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
   558
  var load_flags = 'href="#" onclick="aclShowPresetLoader(); return false;"';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
   559
  var save_flags = 'href="#" onclick="aclShowPresetSave(); return false;"';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
   560
  html += '<div style="float: right;">';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
   561
  html += $lang.get('acl_btn_edit_presets', { load_flags: load_flags, save_flags: save_flags });
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
   562
  html += '</div>';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
   563
  html += '<div style="clear: both;"></div>';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
   564
  
512
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   565
  parser = new templateParser(data.template.acl_field_begin);
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   566
  html += parser.run();
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   567
  
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   568
  cls = 'row2';
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   569
  for(var i in data.acl_types)
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   570
  {
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   571
    if(typeof(data.acl_types[i]) == 'number')
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   572
    {
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   573
      cls = ( cls == 'row1' ) ? 'row2' : 'row1';
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   574
      p = new templateParser(data.template.acl_field_item);
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   575
      vars = new Object();
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   576
      if ( data.acl_descs[i].match(/^([a-z0-9_]+)$/) )
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   577
      {
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   578
        vars['FIELD_DESC'] = $lang.get(data.acl_descs[i]);
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   579
      }
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   580
      else
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   581
      {
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   582
        vars['FIELD_DESC'] = data.acl_descs[i];
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   583
      }
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   584
      vars['FIELD_INHERIT_CHECKED'] = '';
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   585
      vars['FIELD_DENY_CHECKED'] = '';
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   586
      vars['FIELD_DISALLOW_CHECKED'] = '';
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   587
      vars['FIELD_WIKIMODE_CHECKED'] = '';
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   588
      vars['FIELD_ALLOW_CHECKED'] = '';
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   589
      vars['FIELD_NAME'] = i;
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   590
      if ( !data.current_perms[i] )
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   591
      {
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   592
        data.current_perms[i] = 'i';
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   593
      }
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   594
      switch(data.current_perms[i])
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   595
      {
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   596
        case 'i':
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   597
        default:
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   598
          vars['FIELD_INHERIT_CHECKED'] = 'checked="checked"';
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   599
          break;
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   600
        case 1:
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   601
          vars['FIELD_DENY_CHECKED'] = 'checked="checked"';
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   602
          break;
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   603
        case 2:
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   604
          vars['FIELD_DISALLOW_CHECKED'] = 'checked="checked"';
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   605
          break;
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   606
        case 3:
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   607
          vars['FIELD_WIKIMODE_CHECKED'] = 'checked="checked"';
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   608
          break;
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   609
        case 4:
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   610
          vars['FIELD_ALLOW_CHECKED'] = 'checked="checked"';
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   611
          break;
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   612
      }
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   613
      vars['ROW_CLASS'] = cls;
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   614
      p.assign_vars(vars);
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   615
      html += p.run();
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   616
    }
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   617
  }
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   618
  
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   619
  var parser = new templateParser(data.template.acl_field_end);
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   620
  html += parser.run();
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   621
  
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   622
  if(data.type == 'edit')
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   623
    html += '<p id="'+aclManagerID+'_deletelnk" style="text-align: right;"><a href="#delete_acl_rule" onclick="if(confirm(\'' + $lang.get('acl_msg_deleterule_confirm') + '\')) __aclDeleteRule(); return false;" style="color: red;">' + $lang.get('acl_lbl_deleterule') + '</a></p>';
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   624
  
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   625
  var main = document.getElementById(aclManagerID + '_main');
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   626
  main.innerHTML = html;
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   627
  
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   628
  var form = document.getElementById(aclManagerID + '_formobj_id');
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   629
  
513
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   630
  if ( from_direct )
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   631
  {
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   632
    var modeobj = document.getElementById(aclManagerID + '_mode');
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   633
    modeobj.value = 'save_edit';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   634
  }
512
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   635
  else
513
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   636
  {
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   637
    var modeobj = form_fetch_field(form, 'mode');
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   638
    if ( modeobj )
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   639
      modeobj.value = 'save_' + data.type;
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   640
    else
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   641
      alert('modeobj is invalid: '+modeobj);
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
   642
  }
512
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   643
  
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   644
  aclPermList = array_keys(data.acl_types);
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   645
  
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   646
  document.getElementById(aclManagerID + '_back').style.display = 'inline';
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   647
  document.getElementById(aclManagerID + '_next').value = $lang.get('etc_save_changes');
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   648
}
13532b0a223f ACL: Added API call to edit rule based only on numeric rule ID; to be used later with lister for existing rules and effective permissions viewer
Dan
parents: 511
diff changeset
   649
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   650
function __aclBuildGroupsHTML(groups)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   651
{
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   652
  groups = groups.groups;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   653
  select = document.createElement('select');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   654
  for(var i in groups)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   655
  {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   656
    if(typeof(groups[i]['name']) == 'string' && i != 'toJSONString')
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   657
    {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   658
      o = document.createElement('option');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   659
      o.value = groups[i]['id'];
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   660
      t = document.createTextNode(groups[i]['name']);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   661
      o.appendChild(t);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   662
      select.appendChild(o);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   663
    }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   664
  }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   665
  return select;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   666
}
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   667
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   668
function __aclBuildWizardWindow()
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   669
{
729
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   670
  darken(aclDisableTransitionFX, 70, 'acldarkener');
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   671
  box = document.createElement('div');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   672
  box.style.width = '640px'
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   673
  box.style.height = '440px';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   674
  box.style.position = 'fixed';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   675
  width = getWidth();
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   676
  height = getHeight();
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   677
  box.style.left = ( width / 2 - 320 ) + 'px';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   678
  box.style.top = ( height / 2 - 250 ) + 'px';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   679
  box.style.backgroundColor = 'white';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   680
  box.style.zIndex = getHighestZ() + 1;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   681
  box.id = aclManagerID;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   682
  box.style.opacity = '0';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   683
  box.style.filter = 'alpha(opacity=0)';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   684
  box.style.display = 'none';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   685
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   686
  mainwin = document.createElement('div');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   687
  mainwin.id = aclManagerID + '_main';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   688
  mainwin.style.clip = 'rect(0px,640px,440px,0px)';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   689
  mainwin.style.overflow = 'auto';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   690
  mainwin.style.width = '620px';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   691
  mainwin.style.height = '420px';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   692
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   693
  panel = document.createElement('div');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   694
  panel.style.width = '620px';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   695
  panel.style.padding = '10px';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   696
  panel.style.lineHeight = '40px';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   697
  panel.style.textAlign = 'right';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   698
  panel.style.position = 'fixed';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   699
  panel.style.left = ( width / 2 - 320 ) + 'px';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   700
  panel.style.top = ( height / 2 + 190 ) + 'px';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   701
  panel.style.backgroundColor = '#D0D0D0';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   702
  panel.style.opacity = '0';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   703
  panel.style.filter = 'alpha(opacity=0)';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   704
  panel.id = aclManagerID + '_panel';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   705
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   706
  form = document.createElement('form');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   707
  form.method = 'post';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   708
  form.action = 'javascript:void(0)';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   709
  form.onsubmit = function() { if(this.username && !submitAuthorized) return false; __aclSubmitManager(this); return false; };
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   710
  form.name = aclManagerID + '_formobj';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   711
  form.id   = aclManagerID + '_formobj_id';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   712
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   713
  back = document.createElement('input');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   714
  back.type = 'button';
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   715
  back.value = $lang.get('etc_wizard_back');
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   716
  back.style.fontWeight = 'normal';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   717
  back.onclick = function() { ajaxACLSwitchToSelector(); return false; };
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   718
  back.style.display = 'none';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   719
  back.id = aclManagerID + '_back';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   720
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   721
  saver = document.createElement('input');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   722
  saver.type = 'submit';
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   723
  saver.value = $lang.get('etc_wizard_next');
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   724
  saver.style.fontWeight = 'bold';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   725
  saver.id = aclManagerID + '_next';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   726
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   727
  closer = document.createElement('input');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   728
  closer.type = 'button';
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   729
  closer.value = $lang.get('etc_cancel_changes');
541
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   730
  closer.onclick = function()
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   731
  {
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   732
    miniPromptMessage({
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   733
      title: $lang.get('acl_msg_closeacl_confirm_title'),
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   734
      message: $lang.get('acl_msg_closeacl_confirm_body'),
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   735
      buttons: [
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   736
        {
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   737
          text: $lang.get('acl_btn_close'),
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   738
          color: 'red',
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   739
          style: {
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   740
            fontWeight: 'bold'
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   741
          },
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   742
          onclick: function(e)
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   743
          {
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   744
            killACLManager();
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   745
            miniPromptDestroy(this);
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   746
          }
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   747
        },
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   748
        {
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   749
          text: $lang.get('etc_cancel'),
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   750
          onclick: function(e)
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   751
          {
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   752
            miniPromptDestroy(this);
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   753
          }
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   754
        }
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   755
      ]
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   756
    });
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   757
    return false;
acb7e23b6ffa Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents: 535
diff changeset
   758
  }
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   759
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   760
  spacer1 = document.createTextNode('  ');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   761
  spacer2 = document.createTextNode('  ');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   762
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   763
  panel.appendChild(back);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   764
  panel.appendChild(spacer1);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   765
  panel.appendChild(saver);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   766
  panel.appendChild(spacer2);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   767
  panel.appendChild(closer);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   768
  form.appendChild(mainwin);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   769
  form.appendChild(panel);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   770
  box.appendChild(form);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   771
  
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   772
  body = document.getElementsByTagName('body')[0];
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   773
  body.appendChild(box);
151
824821224153 Added a new Javascript variable, aclDisableTransitionFX, that will switch off effects on message boxes and the ACL editor when set to true
Dan
parents: 76
diff changeset
   774
  if ( aclDisableTransitionFX )
824821224153 Added a new Javascript variable, aclDisableTransitionFX, that will switch off effects on message boxes and the ACL editor when set to true
Dan
parents: 76
diff changeset
   775
  {
824821224153 Added a new Javascript variable, aclDisableTransitionFX, that will switch off effects on message boxes and the ACL editor when set to true
Dan
parents: 76
diff changeset
   776
    document.getElementById(aclManagerID).style.display = 'block';
824821224153 Added a new Javascript variable, aclDisableTransitionFX, that will switch off effects on message boxes and the ACL editor when set to true
Dan
parents: 76
diff changeset
   777
    changeOpac(100, aclManagerID);
824821224153 Added a new Javascript variable, aclDisableTransitionFX, that will switch off effects on message boxes and the ACL editor when set to true
Dan
parents: 76
diff changeset
   778
    changeOpac(100, aclManagerID + '_panel');
824821224153 Added a new Javascript variable, aclDisableTransitionFX, that will switch off effects on message boxes and the ACL editor when set to true
Dan
parents: 76
diff changeset
   779
  }
824821224153 Added a new Javascript variable, aclDisableTransitionFX, that will switch off effects on message boxes and the ACL editor when set to true
Dan
parents: 76
diff changeset
   780
  else
824821224153 Added a new Javascript variable, aclDisableTransitionFX, that will switch off effects on message boxes and the ACL editor when set to true
Dan
parents: 76
diff changeset
   781
  {
824821224153 Added a new Javascript variable, aclDisableTransitionFX, that will switch off effects on message boxes and the ACL editor when set to true
Dan
parents: 76
diff changeset
   782
    setTimeout("document.getElementById('"+aclManagerID+"').style.display = 'block'; opacity('"+aclManagerID+"', 0, 100, 500); opacity('"+aclManagerID + '_panel'+"', 0, 100, 500);", 1000);
824821224153 Added a new Javascript variable, aclDisableTransitionFX, that will switch off effects on message boxes and the ACL editor when set to true
Dan
parents: 76
diff changeset
   783
  }
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   784
}
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   785
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   786
function killACLManager()
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   787
{
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   788
  el = document.getElementById(aclManagerID);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   789
  if(el)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   790
  {
151
824821224153 Added a new Javascript variable, aclDisableTransitionFX, that will switch off effects on message boxes and the ACL editor when set to true
Dan
parents: 76
diff changeset
   791
    if ( aclDisableTransitionFX )
824821224153 Added a new Javascript variable, aclDisableTransitionFX, that will switch off effects on message boxes and the ACL editor when set to true
Dan
parents: 76
diff changeset
   792
    {
729
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   793
      enlighten(true, 'acldarkener');
151
824821224153 Added a new Javascript variable, aclDisableTransitionFX, that will switch off effects on message boxes and the ACL editor when set to true
Dan
parents: 76
diff changeset
   794
      el.parentNode.removeChild(el);
824821224153 Added a new Javascript variable, aclDisableTransitionFX, that will switch off effects on message boxes and the ACL editor when set to true
Dan
parents: 76
diff changeset
   795
    }
824821224153 Added a new Javascript variable, aclDisableTransitionFX, that will switch off effects on message boxes and the ACL editor when set to true
Dan
parents: 76
diff changeset
   796
    else
824821224153 Added a new Javascript variable, aclDisableTransitionFX, that will switch off effects on message boxes and the ACL editor when set to true
Dan
parents: 76
diff changeset
   797
    {
824821224153 Added a new Javascript variable, aclDisableTransitionFX, that will switch off effects on message boxes and the ACL editor when set to true
Dan
parents: 76
diff changeset
   798
      opacity(aclManagerID, 100, 0, 500);
729
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   799
      setTimeout('var el = document.getElementById(aclManagerID); el.parentNode.removeChild(el); enlighten(false, "acldarkener");', 750);
151
824821224153 Added a new Javascript variable, aclDisableTransitionFX, that will switch off effects on message boxes and the ACL editor when set to true
Dan
parents: 76
diff changeset
   800
    }
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   801
  }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   802
}
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   803
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   804
function __aclSubmitManager(form)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   805
{
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   806
  var thefrm = document.forms[form.name];
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   807
  var modeobj = form_fetch_field(thefrm, 'mode');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   808
  if ( typeof(modeobj) == 'object' )
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   809
  {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   810
    var mode = (thefrm.mode.value) ? thefrm.mode.value : 'cant_get';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   811
  }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   812
  else
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   813
  {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   814
    var mode = '';
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   815
  }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   816
  switch(mode)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   817
  {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   818
    case 'cant_get':
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   819
      alert('BUG: can\'t get the state value from the form field.');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   820
      break;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   821
    case 'seltarget':
40
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   822
      var target_type = parseInt(getRadioState(thefrm, 'target_type', ['1', '2']));
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   823
      if(isNaN(target_type))
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   824
      {
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   825
        alert($lang.get('acl_err_pleaseselect_targettype'));
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   826
        return false;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   827
      }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   828
      target_id = ( target_type == 1 ) ? parseInt(thefrm.group_id.value) : thefrm.username.value;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   829
      
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   830
      obj = { 'mode' : mode, 'target_type' : target_type, 'target_id' : target_id };
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   831
      
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   832
      thispage = strToPageID(title);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   833
      do_scopesel = ( thispage[0] == aclDataCache.page_id && thispage[1] == aclDataCache.namespace );
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   834
      
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   835
      if(do_scopesel)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   836
      {
535
b31eb2b6c137 Fixed selector stage in ACL editor under Safari
Dan
parents: 513
diff changeset
   837
        scope = getRadioState(thefrm, 'scope', ['page', 'group', 'global']);
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   838
        if(scope == 'page')
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   839
        {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   840
          pageid = strToPageID(title);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   841
          obj['page_id'] = pageid[0];
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   842
          obj['namespace'] = pageid[1];
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   843
        }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   844
        else if(scope == 'global')
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   845
        {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   846
          obj['page_id'] = false;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   847
          obj['namespace'] = false;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   848
        }
73
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   849
        else if(scope == 'group')
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   850
        {
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   851
          obj['page_id'] = document.getElementById('enACL_pgsel_1048576').value;
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   852
          obj['namespace'] = '__PageGroup';
0a74676a2f2f Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
parents: 42
diff changeset
   853
        }
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   854
        else
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   855
        {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   856
          alert('Invalid scope');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   857
          return false;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   858
        }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   859
      }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   860
      else
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   861
      {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   862
        obj['page_id'] = aclDataCache.page_id;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   863
        obj['namespace'] = aclDataCache.namespace;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   864
      }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   865
      if(target_id == '')
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   866
      {
218
e878bcf0227e Javascripted ACL editor interface localized
Dan
parents: 184
diff changeset
   867
        alert($lang.get('acl_err_pleaseselect_username'));
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   868
        return false;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   869
      }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   870
      __aclJSONSubmitAjaxHandler(obj);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   871
      break;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   872
    case 'save_edit':
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   873
    case 'save_new':
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   874
      var form = document.forms[aclManagerID + '_formobj'];
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   875
      selections = new Object();
40
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   876
      var dbg = '';
511
f88c8c79d784 Made some improvements to ACL system including: warning on setting Deny for Everyone on the entire site, added ACL_ALWAYS_ALLOW_ADMIN_EDIT_ACL, and changed behavior as noted in the docs so that Deny for Everyone is no longer able to be overridden
Dan
parents: 472
diff changeset
   877
      var warned_everyone = false;
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   878
      for(var i in aclPermList)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   879
      {
679
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
   880
        selections[aclPermList[i]] = getRadioState(form, aclPermList[i], ['i', 1, 2, 3, 4]);
511
f88c8c79d784 Made some improvements to ACL system including: warning on setting Deny for Everyone on the entire site, added ACL_ALWAYS_ALLOW_ADMIN_EDIT_ACL, and changed behavior as noted in the docs so that Deny for Everyone is no longer able to be overridden
Dan
parents: 472
diff changeset
   881
        // If we're editing permissions for everyone on the entire site and the
f88c8c79d784 Made some improvements to ACL system including: warning on setting Deny for Everyone on the entire site, added ACL_ALWAYS_ALLOW_ADMIN_EDIT_ACL, and changed behavior as noted in the docs so that Deny for Everyone is no longer able to be overridden
Dan
parents: 472
diff changeset
   882
        // admin selected to deny privileges, give a stern warning about it.
f88c8c79d784 Made some improvements to ACL system including: warning on setting Deny for Everyone on the entire site, added ACL_ALWAYS_ALLOW_ADMIN_EDIT_ACL, and changed behavior as noted in the docs so that Deny for Everyone is no longer able to be overridden
Dan
parents: 472
diff changeset
   883
        if ( selections[aclPermList[i]] == 1 && aclDataCache.target_type == 1 /* ACL_TYPE_GROUP */ && aclDataCache.target_id == 1 && !warned_everyone )
f88c8c79d784 Made some improvements to ACL system including: warning on setting Deny for Everyone on the entire site, added ACL_ALWAYS_ALLOW_ADMIN_EDIT_ACL, and changed behavior as noted in the docs so that Deny for Everyone is no longer able to be overridden
Dan
parents: 472
diff changeset
   884
        {
f88c8c79d784 Made some improvements to ACL system including: warning on setting Deny for Everyone on the entire site, added ACL_ALWAYS_ALLOW_ADMIN_EDIT_ACL, and changed behavior as noted in the docs so that Deny for Everyone is no longer able to be overridden
Dan
parents: 472
diff changeset
   885
          warned_everyone = true;
f88c8c79d784 Made some improvements to ACL system including: warning on setting Deny for Everyone on the entire site, added ACL_ALWAYS_ALLOW_ADMIN_EDIT_ACL, and changed behavior as noted in the docs so that Deny for Everyone is no longer able to be overridden
Dan
parents: 472
diff changeset
   886
          if ( !confirm($lang.get('acl_msg_deny_everyone_confirm')) )
f88c8c79d784 Made some improvements to ACL system including: warning on setting Deny for Everyone on the entire site, added ACL_ALWAYS_ALLOW_ADMIN_EDIT_ACL, and changed behavior as noted in the docs so that Deny for Everyone is no longer able to be overridden
Dan
parents: 472
diff changeset
   887
          {
f88c8c79d784 Made some improvements to ACL system including: warning on setting Deny for Everyone on the entire site, added ACL_ALWAYS_ALLOW_ADMIN_EDIT_ACL, and changed behavior as noted in the docs so that Deny for Everyone is no longer able to be overridden
Dan
parents: 472
diff changeset
   888
            return false;
f88c8c79d784 Made some improvements to ACL system including: warning on setting Deny for Everyone on the entire site, added ACL_ALWAYS_ALLOW_ADMIN_EDIT_ACL, and changed behavior as noted in the docs so that Deny for Everyone is no longer able to be overridden
Dan
parents: 472
diff changeset
   889
          }
f88c8c79d784 Made some improvements to ACL system including: warning on setting Deny for Everyone on the entire site, added ACL_ALWAYS_ALLOW_ADMIN_EDIT_ACL, and changed behavior as noted in the docs so that Deny for Everyone is no longer able to be overridden
Dan
parents: 472
diff changeset
   890
        }
40
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   891
        dbg += aclPermList[i] + ': ' + selections[aclPermList[i]] + "\n";
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   892
        if(!selections[aclPermList[i]])
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   893
        {
40
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   894
          alert("Invalid return from getRadioState: "+i+": "+selections[i]+" ("+typeof(selections[i])+")");
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   895
          return false;
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   896
        }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   897
      }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   898
      obj = new Object();
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   899
      obj['perms'] = selections;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   900
      obj['mode'] = mode;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   901
      obj['target_type'] = aclDataCache.target_type;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   902
      obj['target_id'] = aclDataCache.target_id;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   903
      obj['target_name'] = aclDataCache.target_name;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   904
      obj['page_id'] = aclDataCache.page_id;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   905
      obj['namespace'] = aclDataCache.namespace;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   906
      __aclJSONSubmitAjaxHandler(obj);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   907
      break;
729
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   908
    case 'trace':
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   909
      var params = {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   910
        mode: 'trace',
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   911
        user: document.getElementById(aclManagerID + 'trace_user').value,
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   912
        page: document.getElementById(aclManagerID + 'trace_page').value
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   913
      };
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   914
      __aclJSONSubmitAjaxHandler(params);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
   915
      break;
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   916
    default:
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   917
      alert("JSON form submit: invalid mode string "+mode+", stopping execution");
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   918
      return false;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   919
      break;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   920
  }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   921
}
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   922
40
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   923
function getRadioState(form, name, valArray)
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   924
{
40
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   925
  // Konqueror/Safari fix
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   926
  if ( form[name] )
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   927
  {
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   928
    var formitem = form[name];
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   929
    if ( String(formitem) == '[object DOMNamedNodesCollection]' || is_Safari )
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   930
    {
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   931
      var i = 0;
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   932
      var radios = new Array();
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   933
      var radioids = new Array();
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   934
      while(true)
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   935
      {
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   936
        var elem = formitem[i];
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   937
        if ( !elem )
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   938
          break;
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   939
        radios.push(elem);
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   940
        if ( !elem.id )
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   941
        {
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   942
          elem.id = 'autoRadioBtn_' + Math.floor(Math.random() * 1000000);
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   943
        }
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   944
        radioids.push(elem.id);
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   945
        i++;
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   946
      }
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   947
      var cr;
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   948
      for ( var i = 0; i < radios.length; i++ )
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   949
      {
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   950
        cr = document.getElementById(radioids[i]);
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   951
        if ( cr.value == 'on' || cr.checked == true )
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   952
        {
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   953
          try {
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   954
            return ( typeof ( valArray[i] ) != 'undefined' ) ? valArray[i] : false;
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   955
          } catch(e) {
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   956
            // alert('Didn\'t get value for index: ' + i);
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   957
            return false;
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   958
          }
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   959
        }
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   960
      }
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   961
      return false;
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   962
    }
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   963
  }
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   964
  inputs = form.getElementsByTagName('input');
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   965
  radios = new Array();
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   966
  for(var i in inputs)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   967
  {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   968
    if(inputs[i]) if(inputs[i].type == 'radio')
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   969
      radios.push(inputs[i]);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   970
  }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   971
  for(var i in radios)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   972
  {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   973
    if(radios[i].checked && radios[i].name == name)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   974
      return radios[i].value;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   975
  }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   976
  return false;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   977
}
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   978
40
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   979
function __aclSetAllRadios(val, valArray)
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   980
{
40
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   981
  val = String(val);
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   982
  var form = document.forms[aclManagerID + '_formobj'];
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   983
  if (!form)
40
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   984
  {
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   985
    return false;
40
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   986
  }
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   987
  var inputs = form.getElementsByTagName('input');
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   988
  var radios = new Array();
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   989
  var dbg = '';
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   990
  for(var i = 0; i < inputs.length; i++)
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   991
  {
40
723bb7acf914 Fixed a lot of bugs with Safari and Konqueror; improved Opera compatibility
Dan
parents: 1
diff changeset
   992
    dbg += String(inputs[i]) + "\n";
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   993
    if(inputs[i].type == 'radio')
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   994
      radios.push(inputs[i]);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   995
  }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   996
  for(var i in radios)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   997
  {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   998
    if(radios[i].value == val)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
   999
      radios[i].checked = true;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1000
    else
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1001
      radios[i].checked = false;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1002
  }
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1003
}
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1004
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1005
function __aclDeleteRule()
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1006
{
42
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
  1007
  if(!aclDataCache) 
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
  1008
  {
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
  1009
    if ( window.console )
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
  1010
    {
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
  1011
      try{ console.error('ACL editor: can\'t load data cache on delete'); } catch(e) {};
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
  1012
    }
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
  1013
    return false;
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
  1014
  }
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
  1015
  if(aclDataCache.mode != 'seltarget' && aclDataCache.mode != 'save_new' && aclDataCache.mode != 'save_edit')
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
  1016
  {
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
  1017
    if ( window.console )
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
  1018
    {
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
  1019
      try{ console.error('ACL editor: wrong mode on aclDataCache: ' + aclDataCache.mode); } catch(e) {};
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
  1020
    }
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
  1021
    return false;
45ebe475ff75 I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
parents: 40
diff changeset
  1022
  }
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1023
  parms = {
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1024
    'target_type' : aclDataCache.target_type,
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1025
    'target_id' : aclDataCache.target_id,
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1026
    'target_name' : aclDataCache.target_name,
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1027
    'page_id' : aclDataCache.page_id,
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1028
    'namespace' : aclDataCache.namespace,
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1029
    'mode' : 'delete'
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1030
  };
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1031
  __aclJSONSubmitAjaxHandler(parms);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1032
}
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1033
513
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1034
function aclSetViewListExisting()
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1035
{
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1036
  if ( !document.getElementById(aclManagerID) )
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1037
  {
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1038
    return false;
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1039
  }
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1040
  
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1041
  var main = document.getElementById(aclManagerID + '_main');
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1042
  main.innerHTML = '';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1043
  main.style.backgroundImage = 'url(' + scriptPath + '/images/loading-big.gif)';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1044
  main.style.backgroundRepeat = 'no-repeat';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1045
  main.style.backgroundPosition = 'center center';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1046
  
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1047
  var parms = {
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1048
    'mode' : 'list_existing'
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1049
  };
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1050
  __aclJSONSubmitAjaxHandler(parms);
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1051
}
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1052
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1053
function aclSetViewListExistingRespond(data)
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1054
{
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1055
  var main = document.getElementById(aclManagerID + '_main');
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1056
  main.style.padding = '10px';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1057
  main.innerHTML = '';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1058
  
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1059
  var heading = document.createElement('h3');
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1060
  heading.appendChild(document.createTextNode($lang.get('acl_msg_scale_intro_title')));
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1061
  main.appendChild(heading);
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1062
  
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1063
  var p = document.createElement('p');
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1064
  p.appendChild(document.createTextNode($lang.get('acl_msg_scale_intro_body')));
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1065
  main.appendChild(p);
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1066
  
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1067
  
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1068
  main.innerHTML += data.key;
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1069
  main.style.backgroundImage = 'none';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1070
  
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1071
  document.getElementById(aclManagerID + '_back').style.display = 'inline';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1072
  document.getElementById(aclManagerID + '_next').style.display = 'none';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1073
  
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1074
  for ( var i = 0; i < data.rules.length; i++ )
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1075
  {
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1076
    var rule = data.rules[i];
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1077
    // build the rule, this is just more boring DOM crap.
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1078
    var div = document.createElement('div');
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1079
    div.style.padding = '5px 3px';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1080
    div.style.backgroundColor = '#' + rule.color;
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1081
    div.style.cursor = 'pointer';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1082
    div.rule_id = rule.rule_id;
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1083
    div.onclick = function()
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1084
    {
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1085
      var main = document.getElementById(aclManagerID + '_main');
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1086
      main.innerHTML = '';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1087
      main.style.backgroundImage = 'url(' + scriptPath + '/images/loading-big.gif)';
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1088
      ajaxOpenDirectACLRule(parseInt(this.rule_id));
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1089
    }
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1090
    div.innerHTML = rule.score_string;
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1091
    main.appendChild(div);
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1092
  }
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1093
}
c15fbf197a54 AJAX interface for listing ACL rules implemented
Dan
parents: 512
diff changeset
  1094
729
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1095
function aclSetViewDebugTools()
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1096
{
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1097
  // selection window for viewing effective permissions
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1098
  var main = document.getElementById(aclManagerID + '_main');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1099
  main.innerHTML = '';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1100
 
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1101
  // set the submission handler to trace
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1102
  var thefrm = document.forms[form.name];
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1103
  var modeobj = form_fetch_field(thefrm, 'mode');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1104
  modeobj.value = 'trace';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1105
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1106
  // show the back button
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1107
  document.getElementById(aclManagerID + '_back').style.display = 'inline';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1108
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1109
  //
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1110
  // start building
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1111
  //
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1112
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1113
  // selection interface
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1114
  var selector = document.createElement('div');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1115
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1116
    var table = document.createElement('table');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1117
    
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1118
    // username
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1119
    var tr_user = document.createElement('tr');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1120
    var td_user_l = document.createElement('td');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1121
    var lbl_user = document.createElement('label');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1122
    lbl_user.setAttribute('for', aclManagerID + 'trace_user');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1123
    lbl_user.appendChild(document.createTextNode($lang.get('acl_lbl_trace_user')));
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1124
    td_user_l.appendChild(lbl_user);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1125
    tr_user.appendChild(td_user_l);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1126
    
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1127
    var td_user_i = document.createElement('td');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1128
    var i_user = document.createElement('input');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1129
    i_user.type = 'text';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1130
    i_user.id = aclManagerID + 'trace_user';
763
a03406756fdd [Minor] Enabled anonymous user autocompletion in ACL tracer
Dan
parents: 749
diff changeset
  1131
    i_user.onkeyup = function() { new AutofillUsername(this, true); };
729
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1132
    i_user.size = '20';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1133
    td_user_i.appendChild(i_user);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1134
    tr_user.appendChild(td_user_i);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1135
    
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1136
    table.appendChild(tr_user);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1137
    
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1138
    // page
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1139
    var tr_page = document.createElement('tr');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1140
    var td_page_l = document.createElement('td');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1141
    var lbl_page = document.createElement('label');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1142
    lbl_page.setAttribute('for', aclManagerID + 'trace_page');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1143
    lbl_page.appendChild(document.createTextNode($lang.get('acl_lbl_trace_page')));
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1144
    td_page_l.appendChild(lbl_page);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1145
    tr_page.appendChild(td_page_l);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1146
    
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1147
    var td_page_i = document.createElement('td');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1148
    var i_page = document.createElement('input');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1149
    i_page.type = 'text';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1150
    i_page.id = aclManagerID + 'trace_page';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1151
    i_page.onkeyup = function() { new AutofillPage(this); };
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1152
    i_page.size = '20';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1153
    td_page_i.appendChild(i_page);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1154
    tr_page.appendChild(td_page_i);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1155
    
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1156
    table.appendChild(tr_page);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1157
    
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1158
    selector.appendChild(table);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1159
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1160
  // wrapper
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1161
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1162
  var container = document.createElement('div');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1163
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1164
    container.style.margin = 'auto';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1165
    container.style.width = '360px';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1166
    container.style.paddingTop = '90px';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1167
    
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1168
    var head = document.createElement('h2');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1169
    head.appendChild(document.createTextNode($lang.get('acl_lbl_trace_title')));
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1170
    
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1171
    var desc = document.createElement('p');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1172
    desc.innerHTML = $lang.get('acl_lbl_trace_body');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1173
    
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1174
    container.appendChild(head);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1175
    container.appendChild(desc);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1176
    container.appendChild(selector);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1177
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1178
  main.appendChild(container);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1179
}
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1180
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1181
function aclTraceKey()
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1182
{
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1183
  var div = document.createElement('div');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1184
  $(div).addClass('tblholder');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1185
  var table = document.createElement('table');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1186
  $(table).attr('cellspacing', '1').attr('cellpadding', '4');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1187
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1188
  var inherit_list = ['enano_default', 'global_everyone', 'global_group', 'global_user', 'pg_everyone', 'pg_group', 'pg_user', 'local_everyone', 'local_group', 'local_user'];
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1189
  for ( var i = 0; i < inherit_list.length; i++ )
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1190
  {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1191
    var t = inherit_list[i];
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1192
    var tr = document.createElement('tr');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1193
    var td_key = document.createElement('td');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1194
    $(td_key).addClass('acl_' + t).addClass('acl_inherit_key');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1195
    tr.appendChild(td_key);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1196
    var td_explain = document.createElement('td');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1197
    $(td_explain).addClass(i % 2 == 0 ? 'row1' : 'row2');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1198
    td_explain.appendChild(document.createTextNode($lang.get('acl_inherit_key_' + t)));
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1199
    tr.appendChild(td_explain);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1200
    table.appendChild(tr);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1201
  }
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1202
  div.appendChild(table);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1203
  return div;
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1204
}
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1205
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1206
function aclTraceModalKey()
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1207
{
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1208
  load_component('messagebox');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1209
  miniPrompt(function(parent)
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1210
    {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1211
      // heading
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1212
      var h3 = document.createElement('h3');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1213
      h3.appendChild(document.createTextNode($lang.get('acl_msg_trace_key')));
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1214
      parent.appendChild(h3);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1215
      
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1216
      var key = aclTraceKey();
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1217
      parent.appendChild(key);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1218
      
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1219
      var p = document.createElement('p');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1220
      $(p).css('text-align', 'center');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1221
      
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1222
      var closer = document.createElement('a');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1223
      $(closer).addClass('abutton').addClass('abutton_red').css('font-weight', 'bold');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1224
      closer.appendChild(document.createTextNode($lang.get('etc_close')));
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1225
      closer.href = '#';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1226
      $(closer).click(function(e)
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1227
        {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1228
          miniPromptDestroy(this);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1229
          return false;
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1230
        });
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1231
      
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1232
      p.appendChild(closer);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1233
      parent.appendChild(p);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1234
    });
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1235
}
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1236
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1237
function aclDrawTraceWrapper(data)
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1238
{
730
b09cb1dab505 [minor] fixed non-hidden next button in ACL trace view
Dan
parents: 729
diff changeset
  1239
  // hide the next button
b09cb1dab505 [minor] fixed non-hidden next button in ACL trace view
Dan
parents: 729
diff changeset
  1240
  document.getElementById(aclManagerID + '_next').style.display = 'none';
b09cb1dab505 [minor] fixed non-hidden next button in ACL trace view
Dan
parents: 729
diff changeset
  1241
  
729
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1242
  var trace_by_perm = aclDrawTraceByPerm(data);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1243
  var trace_by_rule = aclDrawTraceByRule(data);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1244
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1245
  trace_by_perm.id = 'aclDebugTraceViewPerm';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1246
  trace_by_rule.id = 'aclDebugTraceViewRule';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1247
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1248
  var start_with_rule = ( readCookie('acl_trace_view') == 'rule' );
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1249
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1250
  if ( start_with_rule )
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1251
  {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1252
    trace_by_perm.style.display = 'none';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1253
  }
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1254
  else
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1255
  {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1256
    trace_by_rule.style.display = 'none';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1257
  }
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1258
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1259
  // selection window for viewing effective permissions
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1260
  var main = document.getElementById(aclManagerID + '_main');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1261
  main.innerHTML = '';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1262
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1263
  var wrapper = document.createElement('div');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1264
  $(wrapper).css('padding-bottom', '20px');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1265
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1266
  var floatlink = document.createElement('div');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1267
  $(floatlink).css('float', 'right').css('margin-left', '20px').css('margin-bottom', '20px').css('text-align', 'right');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1268
  var a_toggle = document.createElement('a');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1269
  $(a_toggle).attr('id', 'aclDebugTraceViewToggle');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1270
  a_toggle.innerHTML = '&raquo; ';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1271
  a_toggle.innerHTML += start_with_rule ? $lang.get('acl_btn_sort_perm') : $lang.get('acl_btn_sort_rule');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1272
  a_toggle.href = '#';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1273
  floatlink.appendChild(a_toggle);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1274
  floatlink.appendChild(document.createElement('br'));
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1275
  var a_key = document.createElement('a');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1276
  $(a_key).css('font-size', 'smaller');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1277
  a_key.innerHTML = '&raquo; ';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1278
  a_key.innerHTML += $lang.get('acl_btn_view_key');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1279
  a_key.href = '#';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1280
  floatlink.appendChild(a_key);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1281
  wrapper.appendChild(floatlink);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1282
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1283
  var h3 = document.createElement('h3');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1284
  h3.appendChild(document.createTextNode($lang.get('acl_msg_debug_main_title')));
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1285
  wrapper.appendChild(h3);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1286
  var p = document.createElement('p');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1287
  p.appendChild(document.createTextNode($lang.get('acl_msg_debug_main_body')));
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1288
  wrapper.appendChild(p);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1289
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1290
  wrapper.appendChild(trace_by_perm);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1291
  wrapper.appendChild(trace_by_rule);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1292
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1293
  main.appendChild(wrapper);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1294
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1295
  $(a_toggle).click(function(e)
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1296
    {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1297
      aclTraceToggleViews();
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1298
      return false;
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1299
    });
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1300
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1301
  $(a_key).click(function(e)
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1302
    {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1303
      aclTraceModalKey();
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1304
      return false;
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1305
    });
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1306
}
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1307
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1308
function aclTraceToggleViews()
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1309
{
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1310
  var trace_by_perm = document.getElementById('aclDebugTraceViewPerm');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1311
  var trace_by_rule = document.getElementById('aclDebugTraceViewRule');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1312
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1313
  var toggler = document.getElementById('aclDebugTraceViewToggle');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1314
  var newtext;
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1315
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1316
  if ( trace_by_perm.style.display == 'none' )
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1317
  {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1318
    newtext = $lang.get('acl_btn_sort_rule');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1319
    $(trace_by_rule).hide('blind', {}, 750, function()
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1320
      {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1321
        $(trace_by_perm).show('blind', {}, 750);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1322
      });
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1323
    createCookie('acl_trace_view', 'perm');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1324
  }
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1325
  else
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1326
  {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1327
    newtext = $lang.get('acl_btn_sort_perm');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1328
    $(trace_by_perm).hide('blind', {}, 750, function()
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1329
      {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1330
        $(trace_by_rule).show('blind', {}, 750);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1331
      });
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1332
    createCookie('acl_trace_view', 'rule');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1333
  }
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1334
  $(toggler).fadeOut(500, function()
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1335
    {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1336
      this.innerHTML = '&raquo; ' + newtext;
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1337
      $(this).fadeIn(500);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1338
    });
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1339
}
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1340
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1341
function aclDrawTraceByPerm(data)
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1342
{
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1343
  var wrapper = document.createElement('div');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1344
  // wrapper.style.display = 'none';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1345
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1346
  // temporarily append wrapper to body to allow onclick to work
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1347
  // var body = document.getElementsByTagName('body')[0];
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1348
  // body.appendChild(wrapper);  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1349
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1350
  for ( var i in data.perms )
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1351
  {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1352
    var perm = data.perms[i];
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1353
    var item = document.createElement('div');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1354
    item.className = perm.divclass;
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1355
    
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1356
    // first row - permission name + current setting
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1357
    // use innerHTML here to allow for HTML in localized permission types
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1358
    item.innerHTML += '<b>' + perm.perm_name + ' - ' + perm.perm_value + '</b>';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1359
    item.appendChild(document.createElement('br'));
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1360
    
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1361
    // second row - permission localized name + rule ID
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1362
    var sm = document.createElement('small');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1363
    sm.innerHTML = perm.perm_src;
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1364
    
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1365
    item.appendChild(sm);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1366
    
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1367
    wrapper.appendChild(item);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1368
    
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1369
    // whole row is now in the document
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1370
    if ( perm.rule_id != -1 )
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1371
    {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1372
      sm.innerHTML += ' [';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1373
      // rule is editable
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1374
      var editlink = document.createElement('a');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1375
      editlink.href = 'javascript:ajaxOpenDirectACLRule(' + perm.rule_id + ');';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1376
      editlink.appendChild(document.createTextNode($lang.get('acl_btn_edit_rule')));
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1377
      sm.appendChild(editlink);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1378
      sm.innerHTML += ']';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1379
    }
749
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1380
    
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1381
    if ( perm.bad_deps.length > 0 )
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1382
    {
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1383
      var bd = document.createElement('span');
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1384
      $(bd).addClass('acl_failed_deps');
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1385
      var failed_deps = '';
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1386
      for ( var i = 0; i < perm.bad_deps.length; i++ )
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1387
      {
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1388
        if ( i > 0 )
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1389
          failed_deps += ', ';
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1390
        failed_deps += data.perms[perm.bad_deps[i]].perm_name;
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1391
      }
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1392
      var title = document.createElement('span');
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1393
      $(title).addClass('title');
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1394
      title.appendChild(document.createTextNode($lang.get('acl_msg_failed_deps')));
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1395
      bd.appendChild(title);
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1396
      bd.appendChild(document.createTextNode(failed_deps));
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1397
      
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1398
      item.appendChild(document.createElement('br'));
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1399
      item.appendChild(bd);
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1400
    }
729
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1401
  }
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1402
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1403
  // var ret = wrapper.cloneNode(true);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1404
  // body.removeChild(wrapper);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1405
  // wrapper = false;
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1406
  // ret.style.display = 'block';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1407
  // console.debug(ret);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1408
  // return ret;
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1409
  return wrapper;
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1410
}
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1411
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1412
function aclDrawTraceByRule(data)
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1413
{
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1414
  var wrapper = document.createElement('div');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1415
  var groupdata = {};
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1416
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1417
  for ( var i in data.perms )
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1418
  {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1419
    var perm = data.perms[i];
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1420
    if ( !groupdata[perm['rule_id']] )
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1421
    {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1422
      groupdata[perm['rule_id']] = {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1423
        meta: {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1424
          divclass: perm.divclass,
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1425
          perm_src: perm.perm_src,
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1426
          rule_id: perm.rule_id
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1427
        },
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1428
        rules: {}
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1429
      };
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1430
    }
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1431
    groupdata[perm['rule_id']]['rules'][i] = perm;
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1432
  }
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1433
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1434
  for ( var i in groupdata )
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1435
  {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1436
    var group = groupdata[i];
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1437
    var grp = document.createElement('div');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1438
    var head = document.createElement('div');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1439
    head.className = group.meta.divclass;
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1440
    var span = document.createElement('span');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1441
    span.style.fontSize = 'larger';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1442
    span.appendChild(document.createTextNode(group.meta.perm_src));
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1443
    head.appendChild(span);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1444
    if ( group.meta.rule_id != -1 )
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1445
    {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1446
      head.innerHTML += ' [';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1447
      // rule is editable
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1448
      var editlink = document.createElement('a');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1449
      editlink.href = 'javascript:ajaxOpenDirectACLRule(' + group.meta.rule_id + ');';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1450
      editlink.appendChild(document.createTextNode($lang.get('acl_btn_edit_rule')));
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1451
      head.appendChild(editlink);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1452
      head.innerHTML += ']';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1453
    }
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1454
    grp.appendChild(head);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1455
    for ( var i in group.rules )
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1456
    {
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1457
      var rule = group.rules[i];
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1458
      var rulediv = document.createElement('div');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1459
      rulediv.style.padding = '3px 12px';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1460
      rulediv.innerHTML += rule.perm_name + ': ';
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1461
      var b = document.createElement('strong');
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1462
      b.appendChild(document.createTextNode(rule.perm_value));
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1463
      rulediv.appendChild(b);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1464
      grp.appendChild(rulediv);
749
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1465
      
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1466
      if ( rule.bad_deps.length > 0 )
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1467
      {
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1468
        var bd = document.createElement('span');
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1469
        $(bd).addClass('acl_failed_deps');
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1470
        var failed_deps = '';
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1471
        for ( var i = 0; i < rule.bad_deps.length; i++ )
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1472
        {
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1473
          if ( i > 0 )
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1474
            failed_deps += ', ';
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1475
          failed_deps += data.perms[rule.bad_deps[i]].perm_name;
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1476
        }
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1477
        var title = document.createElement('span');
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1478
        $(title).addClass('title');
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1479
        title.appendChild(document.createTextNode($lang.get('acl_msg_failed_deps')));
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1480
        bd.appendChild(title);
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1481
        bd.appendChild(document.createTextNode(failed_deps));
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1482
        
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1483
        rulediv.appendChild(document.createElement('br'));
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1484
        rulediv.appendChild(bd);
ea3045a3bcbd Added dependency checking in ACL tracer
Dan
parents: 730
diff changeset
  1485
      }
729
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1486
    }
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1487
    wrapper.appendChild(grp);
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1488
  }
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1489
  
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1490
  return wrapper;
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1491
}
ebac7eeb89eb Merging in the past three months' work on ACL tracing tools.
Dan
parents: 694
diff changeset
  1492
679
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1493
function aclShowPresetLoader()
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1494
{
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1495
  var prompt = miniPrompt(function(parent)
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1496
    {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1497
      parent.innerHTML = '<img style="display: block; margin: 0 auto;" src="' + cdnPath + '/images/loading-big.gif" />';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1498
    });
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1499
  var request = toJSONString({
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1500
      mode: 'list_presets'
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1501
    });
823
4596c40aaa94 AJAX core library: possible breaking change, readystatechange functions are now called with the XHR instance as the first parameter, to allow requests to run in parallel. This means much better stability but may break some applets (compatibility hack is included)
Dan
parents: 787
diff changeset
  1502
  ajaxPost(stdAjaxPrefix + '&_mode=acljson', 'acl_params=' + ajaxEscape(request), function(ajax)
679
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1503
    {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1504
      if ( ajax.readyState == 4 && ajax.status == 200 )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1505
      {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1506
        if ( !check_json_response(ajax.responseText) )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1507
        {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1508
          miniPromptDestroy(prompt);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1509
          return handle_invalid_json(ajax.responseText);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1510
        }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1511
        var response = parseJSON(ajax.responseText);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1512
        if ( response.mode == 'error' )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1513
        {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1514
          alert(response.error);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1515
          miniPromptDestroy(prompt);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1516
          return false;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1517
        }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1518
        prompt = prompt.firstChild.nextSibling;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1519
        prompt.style.textAlign = 'center';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1520
        prompt.innerHTML = '<h3>' + $lang.get('acl_lbl_preset_load_title') + '</h3>';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1521
        
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1522
        if ( response.presets.length > 0 )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1523
        {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1524
          // selection box
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1525
          var para = document.createElement('p');
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1526
          var select = document.createElement('select');
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1527
          
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1528
          var option = document.createElement('option');
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1529
          option.value = '0';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1530
          option.appendChild(document.createTextNode($lang.get('acl_lbl_preset_load')));
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1531
          select.appendChild(option);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1532
          
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1533
          for ( var i = 0; i < response.presets.length; i++ )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1534
          {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1535
            var preset = response.presets[i];
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1536
            var option = document.createElement('option');
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1537
            option.value = preset.rule_id;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1538
            option.preset_data = preset;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1539
            option.appendChild(document.createTextNode($lang.get(preset.preset_name)));
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1540
            select.appendChild(option);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1541
          }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1542
          
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1543
          para.appendChild(select);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1544
          prompt.appendChild(para);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1545
          
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1546
          // buttons
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1547
          var buttons = document.createElement('p');
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1548
          
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1549
          // load button
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1550
          var btn_load = document.createElement('a');
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1551
          btn_load.className = 'abutton abutton_green';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1552
          btn_load.style.fontWeight = 'bold';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1553
          btn_load.appendChild(document.createTextNode($lang.get('acl_btn_load_preset')));
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1554
          btn_load.selectobj = select;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1555
          btn_load.onclick = function()
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1556
          {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1557
            if ( this.selectobj.value == '0' )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1558
            {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1559
              alert($lang.get('acl_err_select_preset'));
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1560
              return false;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1561
            }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1562
            // retrieve preset data
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1563
            for ( var i = 0; i < this.selectobj.childNodes.length; i++ )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1564
            {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1565
              if ( this.selectobj.childNodes[i].tagName == 'OPTION' )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1566
              {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1567
                var node = this.selectobj.childNodes[i];
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1568
                if ( node.value == this.selectobj.value )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1569
                {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1570
                  aclSetRulesAbsolute(node.preset_data.rules);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1571
                  break;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1572
                }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1573
              }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1574
            }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1575
            miniPromptDestroy(this);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1576
            return false;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1577
          }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1578
          btn_load.href = '#';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1579
          buttons.appendChild(btn_load);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1580
          
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1581
          buttons.appendChild(document.createTextNode(' '));
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1582
          
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1583
          // cancel button
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1584
          var btn_cancel = document.createElement('a');
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1585
          btn_cancel.className = 'abutton';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1586
          btn_cancel.appendChild(document.createTextNode($lang.get('etc_cancel')));
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1587
          btn_cancel.onclick = function()
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1588
          {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1589
            miniPromptDestroy(this);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1590
            return false;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1591
          }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1592
          btn_cancel.href = '#';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1593
          buttons.appendChild(btn_cancel);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1594
          
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1595
          prompt.appendChild(buttons);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1596
        }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1597
        else
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1598
        {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1599
          // "no presets"
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1600
          prompt.innerHTML += '<p>' + $lang.get('acl_msg_no_presets', { close_flags: 'href="#" onclick="miniPromptDestroy(this); return false;"' }) + '</p>';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1601
        }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1602
      }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1603
    });
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1604
}
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1605
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1606
function aclSetRulesAbsolute(rules)
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1607
{
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1608
  __aclSetAllRadios('i');
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1609
  
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1610
  var form = document.forms[aclManagerID + '_formobj'];
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1611
  if (!form)
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1612
  {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1613
    return false;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1614
  }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1615
  var inputs = form.getElementsByTagName('input');
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1616
  var radios = new Array();
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1617
  var dbg = '';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1618
  for(var i = 0; i < inputs.length; i++)
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1619
  {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1620
    if(inputs[i].type == 'radio')
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1621
      radios.push(inputs[i]);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1622
  }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1623
  for(var i in radios)
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1624
  {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1625
    if ( typeof(rules[ radios[i]['name'] ]) == 'number' )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1626
    {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1627
      radios[i].checked = ( rules[radios[i]['name']] == radios[i].value );
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1628
    }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1629
  }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1630
}
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1631
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1632
function aclShowPresetSave()
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1633
{
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1634
  miniPrompt(function(parent)
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1635
    {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1636
      parent.style.textAlign = 'center';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1637
      
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1638
      parent.innerHTML = '<h3>' + $lang.get('acl_lbl_preset_save_title') + '</h3>';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1639
      var input = document.createElement('input');
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1640
      input.id = aclManagerID + '_preset_save';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1641
      input.type = 'text';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1642
      input.size = '30';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1643
      input.onkeypress = function(e)
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1644
      {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1645
        // javascript sucks. IE and several others throw myriad errors unless it's done this way.
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1646
        if ( e )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1647
        if ( e.keyCode )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1648
        if ( e.keyCode == 13 )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1649
        {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1650
          if ( aclSavePreset() )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1651
          {
694
43367c66d869 Couple of fixes (hacks) for Opera and the aftermath of that z-index change to darken() and enlighten() fadefilters; added ajaxOpenDirectACLRule() to placeholder list
Dan
parents: 679
diff changeset
  1652
            if ( window.opera )
43367c66d869 Couple of fixes (hacks) for Opera and the aftermath of that z-index change to darken() and enlighten() fadefilters; added ajaxOpenDirectACLRule() to placeholder list
Dan
parents: 679
diff changeset
  1653
            {
43367c66d869 Couple of fixes (hacks) for Opera and the aftermath of that z-index change to darken() and enlighten() fadefilters; added ajaxOpenDirectACLRule() to placeholder list
Dan
parents: 679
diff changeset
  1654
              // damn weird opera bug.
43367c66d869 Couple of fixes (hacks) for Opera and the aftermath of that z-index change to darken() and enlighten() fadefilters; added ajaxOpenDirectACLRule() to placeholder list
Dan
parents: 679
diff changeset
  1655
              var input = this;
43367c66d869 Couple of fixes (hacks) for Opera and the aftermath of that z-index change to darken() and enlighten() fadefilters; added ajaxOpenDirectACLRule() to placeholder list
Dan
parents: 679
diff changeset
  1656
              setTimeout(function()
43367c66d869 Couple of fixes (hacks) for Opera and the aftermath of that z-index change to darken() and enlighten() fadefilters; added ajaxOpenDirectACLRule() to placeholder list
Dan
parents: 679
diff changeset
  1657
                {
43367c66d869 Couple of fixes (hacks) for Opera and the aftermath of that z-index change to darken() and enlighten() fadefilters; added ajaxOpenDirectACLRule() to placeholder list
Dan
parents: 679
diff changeset
  1658
                  miniPromptDestroy(input);
43367c66d869 Couple of fixes (hacks) for Opera and the aftermath of that z-index change to darken() and enlighten() fadefilters; added ajaxOpenDirectACLRule() to placeholder list
Dan
parents: 679
diff changeset
  1659
                }, 10);
43367c66d869 Couple of fixes (hacks) for Opera and the aftermath of that z-index change to darken() and enlighten() fadefilters; added ajaxOpenDirectACLRule() to placeholder list
Dan
parents: 679
diff changeset
  1660
            }
43367c66d869 Couple of fixes (hacks) for Opera and the aftermath of that z-index change to darken() and enlighten() fadefilters; added ajaxOpenDirectACLRule() to placeholder list
Dan
parents: 679
diff changeset
  1661
            else
43367c66d869 Couple of fixes (hacks) for Opera and the aftermath of that z-index change to darken() and enlighten() fadefilters; added ajaxOpenDirectACLRule() to placeholder list
Dan
parents: 679
diff changeset
  1662
            {
43367c66d869 Couple of fixes (hacks) for Opera and the aftermath of that z-index change to darken() and enlighten() fadefilters; added ajaxOpenDirectACLRule() to placeholder list
Dan
parents: 679
diff changeset
  1663
              miniPromptDestroy(this);
43367c66d869 Couple of fixes (hacks) for Opera and the aftermath of that z-index change to darken() and enlighten() fadefilters; added ajaxOpenDirectACLRule() to placeholder list
Dan
parents: 679
diff changeset
  1664
            }
679
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1665
          }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1666
        }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1667
        else if ( e.keyCode == 27 )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1668
        {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1669
          miniPromptDestroy(this);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1670
        }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1671
      }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1672
      var para = document.createElement('p');
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1673
      para.appendChild(input);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1674
      
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1675
      parent.appendChild(para);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1676
      
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1677
      // buttons
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1678
      var buttons = document.createElement('p');
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1679
      
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1680
      // save button
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1681
      var btn_save = document.createElement('a');
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1682
      btn_save.className = 'abutton abutton_green';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1683
      btn_save.style.fontWeight = 'bold';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1684
      btn_save.appendChild(document.createTextNode($lang.get('acl_btn_save_preset')));
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1685
      btn_save.selectobj = select;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1686
      btn_save.onclick = function()
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1687
      {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1688
        if ( aclSavePreset() )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1689
        {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1690
          miniPromptDestroy(this);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1691
        }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1692
        return false;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1693
      }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1694
      btn_save.href = '#';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1695
      buttons.appendChild(btn_save);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1696
      
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1697
      buttons.appendChild(document.createTextNode(' '));
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1698
      
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1699
      // cancel button
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1700
      var btn_cancel = document.createElement('a');
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1701
      btn_cancel.className = 'abutton';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1702
      btn_cancel.appendChild(document.createTextNode($lang.get('etc_cancel')));
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1703
      btn_cancel.onclick = function()
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1704
      {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1705
        miniPromptDestroy(this);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1706
        return false;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1707
      }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1708
      btn_cancel.href = '#';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1709
      buttons.appendChild(btn_cancel);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1710
      
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1711
      parent.appendChild(buttons);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1712
      
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1713
      var timeout = ( aclDisableTransitionFX ) ? 10 : 1000;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1714
      setTimeout(function()
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1715
        {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1716
          input.focus();
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1717
        }, timeout);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1718
    });
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1719
}
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1720
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1721
function aclSavePreset()
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1722
{
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1723
  var input = document.getElementById(aclManagerID + '_preset_save');
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1724
  if ( trim(input.value) == '' )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1725
  {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1726
    alert($lang.get('acl_err_preset_name_empty'));
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1727
    return false;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1728
  }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1729
  var form = document.forms[aclManagerID + '_formobj'], selections = {};
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1730
  var dbg = '';
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1731
  var warned_everyone = false;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1732
  for(var i in aclPermList)
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1733
  {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1734
    selections[aclPermList[i]] = getRadioState(form, aclPermList[i], ['i', 1, 2, 3, 4]);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1735
    // If we're editing permissions for everyone on the entire site and the
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1736
    // admin selected to deny privileges, give a stern warning about it.
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1737
    if ( selections[aclPermList[i]] == 1 && aclDataCache.target_type == 1 /* ACL_TYPE_GROUP */ && aclDataCache.target_id == 1 && !warned_everyone )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1738
    {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1739
      warned_everyone = true;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1740
      if ( !confirm($lang.get('acl_msg_deny_everyone_confirm')) )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1741
      {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1742
        return false;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1743
      }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1744
    }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1745
    dbg += aclPermList[i] + ': ' + selections[aclPermList[i]] + "\n";
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1746
    if(!selections[aclPermList[i]])
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1747
    {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1748
      alert("Invalid return from getRadioState: "+i+": "+selections[i]+" ("+typeof(selections[i])+")");
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1749
      return false;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1750
    }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1751
  }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1752
  
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1753
  var packet = toJSONString({
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1754
      mode: 'save_preset',
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1755
      preset_name: input.value,
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1756
      perms: selections
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1757
    });
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1758
  
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1759
  var whitey = whiteOutElement(document.getElementById(aclManagerID));
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1760
  
823
4596c40aaa94 AJAX core library: possible breaking change, readystatechange functions are now called with the XHR instance as the first parameter, to allow requests to run in parallel. This means much better stability but may break some applets (compatibility hack is included)
Dan
parents: 787
diff changeset
  1761
  ajaxPost(stdAjaxPrefix + '&_mode=acljson', 'acl_params=' + ajaxEscape(packet), function(ajax)
679
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1762
    {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1763
      if ( ajax.readyState == 4 && ajax.status == 200 )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1764
      {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1765
        if ( !check_json_response(ajax.responseText) )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1766
        {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1767
          whitey.parentNode.removeChild(whitey);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1768
          return handle_invalid_json(ajax.responseText);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1769
        }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1770
        var response = parseJSON(ajax.responseText);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1771
        if ( response.mode == 'error' )
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1772
        {
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1773
          whitey.parentNode.removeChild(whitey);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1774
          alert(response.error);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1775
          return false;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1776
        }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1777
        whiteOutReportSuccess(whitey);
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1778
      }
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1779
    });
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1780
  
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1781
  return true;
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1782
}
80bf9b8fe6aa Added preliminary support for ACL presets. Yay!
Dan
parents: 677
diff changeset
  1783
1
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1784
function array_keys(obj)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1785
{
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1786
  keys = new Array();
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1787
  for(var i in obj)
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1788
    keys.push(i);
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1789
  return keys;
fe660c52c48f Adding /includes
dan@scribus.fuhry.local.fuhry.local
parents:
diff changeset
  1790
}