Viewing File: /usr/local/cpanel/whostmgr/docroot/cgi/cwaf/js/cwaf.js

// CWAF plugin actions
// global tmp var
var cwaf_plugin_tmp_data = {};
// main handler URL
var cwaf_main_handler_url = "cwaf_main.cgi";
// plugin first run flag
var plugin_firstrun = false;

// get catalog data with ajax request
// or from local cache
function get_cwaf_remote_data(url_handler, data, type) {
  // check parameters and set default if need
  var data = typeof data !== 'undefined' ? data : {};
  var type = typeof type !== 'undefined' ? type : 'post';

  // create overlay
  create_overlay();

  if(! data.action) {
    show_error_msg('no action, break request');
    return false;
    }

  // ajax request
  $.ajax({
      url: url_handler,
      data: data,
      type: type,
      statusCode: {
                  412: function() { show_error_msg('action is undefined'); },
                  400: function() { show_error_msg('unknown action'); }
                  }
      })
      .done(function(msg) {
        // success
        if(msg.status == 1) {
          // parse data and send needed function
          parse_cwaf_remote_data(data.action, msg);
          }
        // some error during request processing
        else {
          if(cwaf_plugin_tmp_data[data.action]) {
            cwaf_plugin_tmp_data[data.action] = false;
            }
          show_error_msg(msg.errmsg);
          }
        })
      .fail(function() {
         if(cwaf_plugin_tmp_data[data.action]) {
            cwaf_plugin_tmp_data[data.action] = false;
            }
         show_error_msg("request to server failed!");
         });

  return true;
  }

// postprocessing an successful ajax request
function parse_cwaf_remote_data(action, msg) {
  // remove overlay
  remove_overlay();

  switch(action) {
    case 'update_config':
      // we saved main config
      show_info_msg('Main config has been updated successfully.<br>Please wait until page will be reloaded.');
      create_overlay();
      setTimeout(function() {location.reload();}, 2000);
      break;
    case 'update_msconfig':
      // modsec config saved
      show_info_msg('Mod Security config has been updated successfully. HTTPD server restarted.');
      //setTimeout(function() {location.reload();}, 2000);
      break;
    case 'get_rules_excludelist':
      // we got exclude list (array of string)
      $('#modsec_textarea').val(msg.data);
      break;
    case 'set_rules_excludelist':
      // we saved exclude list, show info
      show_info_msg('Exclude list has been updated successfully.');
      show_info_msg('Note!<br/>You should restart HTTPD server to apply changes.');
      break;
    case 'set_userdata':
      // we saved userdata files, show info
      show_info_msg('Userdata files has been updated successfully.<br/> Note! You should restart HTTPD server to apply changes.');
      break;
    case 'run_feedbacksend':
      // we sent feedback, clean field and show info
      //$("#fb_rules_version").val('');
      $("#fb_short").val('');
      $("#fb_msg").val('');
      $("#fb_rule_id").val('');
      show_info_msg('Feedback has been sent successfully.');
      break;
    case 'run_rules_restore':
      // previous version was restored
      show_info_msg(msg.data + '.<br>Please wait until page will be reloaded.');
      create_overlay();
      setTimeout(function() {location.reload();}, 2000);
      break;
    case 'run_updater':
      // updater (script) was started
      // prepare window and start to show log
      $("#dialog").dialog({  title: "LOGGING" });
      $("#dialog_caption").text("Updating rules...");
      // set #updater_textarea READ ONLY and set empty default content
      $("#updater_textarea").prop("disabled", true);
      $("#updater_textarea").val("Please wait...");
      $("#dialog").dialog("open");

      cwaf_plugin_tmp_data.counter = 60;
      cwaf_plugin_tmp_data.update_finished = false;
      cwaf_plugin_tmp_data['get_updater_log'] = true;
      show_updater_log_action();
      break;
    case 'run_client_updater':
      // updater (script) was started
      // prepare window and start to show log
      $("#dialog").dialog({  title: "LOGGING" });
      $("#dialog_caption").text("Updating client...");
      // set #updater_textarea READ ONLY and set empty default content
      $("#updater_textarea").prop("disabled", true);
      $("#updater_textarea").val("Please wait...");
      $("#dialog").dialog("open");

      cwaf_plugin_tmp_data.counter = 60;
      cwaf_plugin_tmp_data.update_finished = false;
      cwaf_plugin_tmp_data['get_updater_log'] = true;
      show_updater_log_action();
      break;
    case 'get_updater_log':
      // we got an new logs
      $('#updater_textarea').val(msg.data.join(''));
      $('#updater_textarea').scrollTop($('#updater_textarea')[0].scrollHeight);
      if(/update process finished!/i.test(msg.data)) {
        $("#dialog" ).on( "dialogclose", function( event, ui ) {
          show_info_msg('Please wait until page will be reloaded.');
          create_overlay();
          setTimeout(function() {location.reload();}, 2000);
          });
        cwaf_plugin_tmp_data.update_finished = true;
        show_info_msg('Update has been finished.');
        }
      break;
    case 'update_disabled_domains':
        show_info_msg('Update of disabled domains has been finished. HTTPD server restarted.');
      break;
    case 'user_conf_backup':
        show_info_msg('Backup of user data completed.');
        create_overlay();
        setTimeout(function() {location.reload();}, 2000);
      break;
    case 'user_conf_restore':
        show_info_msg('Restore of user data completed.');
        create_overlay();
        setTimeout(function() {location.reload();}, 2000);
      break;
    default:
      show_error_msg('unknown request (internal)');
      return false;
    }
  return true;
  }

// first init tabs after loading
function cwaf_plugin_activate_button_events() {
  // tabID: tabs-main, redirect button to tabs-upd
  //$("#new_version_avail").on('click', function(e) {
  //  $("#tabs").tabs("option", "selected", 2);
  //  e.preventDefault();
  //  return true;
  //  });

  //$("#new_client_avail").on('click', function(e) {
  //  $("#tabs").tabs("option", "selected", 2);
  //  e.preventDefault();
  //  return true;
  //  });

  // tabID: tabs-conf, update main config
    // init validation
  //$("#cwaf_login").on('keyup', function(){ validateName(validation_rules('auth'), "#cwaf_login", "#config_update","#conf_warn","Login"); });
  //$("#cwaf_password").on('keyup', function(){ validateName(validation_rules('auth'), "#cwaf_password", "#config_update","#conf_warn","Password"); });
  $("#log_dir").on('keyup', function(){ validateName(validation_rules('path'), "#log_dir", "#config_update","#conf_warn","Logs Directory"); });
  $("#utils_log").on('keyup', function(){ validateName(validation_rules('filename'), "#utils_log", "#config_update","#conf_warn","Log Filename"); });
  $("#cwaf_path").on('keyup', function(){ validateName(validation_rules('path'), "#cwaf_path", "#config_update","#conf_warn","Rules Directory Path"); });
  $("#cwaf_exclude_config").on('keyup', function(){ validateName(validation_rules('path'), "#cwaf_exclude_config", "#config_update","#conf_warn","Exclude Filename"); });
    // activate click event
  $("#config_update").unbind('click').bind('click', function(e) {
    $.confirm(
      "CONFIRM", //title
      "Do you really want to save changes?", //message
      "Save", //button text
      update_cwaf_main_config,
      300
      );
    e.preventDefault();
    return true;
    });

  // tabID: tabs-upd, button "RESTORE RULES"
  $("#restore_rules").unbind('click').bind('click', function(e) {
    $.confirm(
      "CONFIRM", //title
      "Do you really want to restore previous version of protection rules?", //message
      "Restore", //button text
      restore_rules_action,
      350
      );
    e.preventDefault();
    return true;
    });

  // tabID: tabs-upd, button "UPDATE RULES", get new version if available
  $("#start_update").unbind('click').bind('click', function(e) {
    $.confirm(
      "CONFIRM", //title
      "Do you really want to update current rules version?", //message
      "Update", //button text
      update_cwaf_rules_action,
      350
      );
    e.preventDefault();
    return true;
    });

  $("#start_update_client").unbind('click').bind('click', function(e) {
    $.confirm(
      "CONFIRM", //title
      "Do you really want to update client?", //message
      "Update", //button text
      update_cwaf_client_action,
      350
      );
    e.preventDefault();
    return true;
    });

  // tabID: tabs-excl, update exclide list
  $("#save_config").css("display","inline");  // ????????
  $("#modsec_textarea").prop("disabled", false); // ??????

    // save button click
  $("#save_config").unbind('click').bind('click', function(e) {
    $.confirm(
      "CONFIRM", //title
      "Do you really want to save changes?", //message
      "Save", //button text
      update_cwaf_exclude_config,
      300
      );
    e.preventDefault();
    return true;
  });

  // tabID: tabs-conf, button "BACKUP USER CONF"
  $("#start_user_backup").unbind('click').bind('click', function(e) {
    $.confirm(
      "CONFIRM", //title
      "Do you really want to backup user configuration?", //message
      "Backup", //button text
      user_backup_action,
      350
      );
    e.preventDefault();
    return true;
    });

  // tabID: tabs-conf, button "RESTORE USER CONF"
  $("#start_user_restore").unbind('click').bind('click', function(e) {
    $.confirm(
      "CONFIRM", //title
      "Do you really want to restore user configuration?", //message
      "Restore", //button text
      user_restore_action,
      350
      );
    e.preventDefault();
    return true;
    });


  // tabID: tabs-fdb, send feedback
    // init validation
  $("#fb_rules_version").on('keyup', function(){ validateName(validation_rules('version'), "#fb_rules_version", "#send_feedback","#feedback_warn","Rules Version"); });
  $("#fb_rule_id").on('keyup', function(){ validateName(validation_rules('ids'), "#fb_rule_id", "#send_feedback","#feedback_warn","Rule ID"); });
  $("#fb_msg").on('keyup', function(){ validateName(validation_rules('text'), "#fb_msg", "#send_feedback","#feedback_warn","Feedback Message Too Short"); });

    // init click event
  $("#send_feedback").unbind('click').bind('click', function(e) {
    $.confirm(
      "CONFIRM", //title
      "Do you really want to send feedback?", //message
      "Send", //button text
      send_feedback_message,
      300
      );
    e.preventDefault();
    return true;
    });

  // tabID: tabs-modsec, mod_security configuration
    // init validation
  $("#audit_log").on('keyup', function(){ validateName(validation_rules('path'), "#audit_log", "#modsec_update","#modsec_warn","Audit Log"); });
  $("#debug_log").on('keyup', function(){ validateName(validation_rules('path'), "#debug_log", "#modsec_update","#modsec_warn","Debug Log"); });
  $("#debug_level").on('keyup', function(){ validateName(validation_rules('dbglev'), "#debug_level", "#modsec_update","#modsec_warn","Debug Level"); });
  $("#data_dir").on('keyup', function(){ validateName(validation_rules('path'), "#data_dir", "#modsec_update","#modsec_warn","Data Directory"); });
  $("#match_limit").on('keyup', function(){ validateName(validation_rules('int'), "#match_limit", "#modsec_update","#modsec_warn","PCRE Match Limit"); });
  $("#match_recursion").on('keyup', function(){ validateName(validation_rules('int'), "#match_recursion", "#modsec_update","#modsec_warn","PCRE Match Recursion"); });

    // init click event
  $("#modsec_update").unbind('click').bind('click', function(e) {
    $.confirm(
      "CONFIRM", //title
      "Do you really want to update Mod Security config?", //message
      "Save", //button text
      update_cwaf_modsec_config,
      300
      );
    e.preventDefault();
    return true;
    });

  // save userdata button click
  $("#save_userdata").unbind('click').bind('click', function(e) {
    $.confirm(
      "CONFIRM", //title
      "Do you really want to save changes?", //message
      "Save", //button text
      update_cwaf_userdata,
      300
      );
    e.preventDefault();
    return true;
  });

  // disable domains buttons
  $("#disable_domains_button").unbind('click').bind('click', function(e) {
    cwaf_disabled_domains();
    e.preventDefault();
    return true;
  });

  $("#domain_disable_button").unbind('click').bind('click', function(e) {
      var ddomains = $("#enabled_domains_list :selected");
      $.each(ddomains, function (idx, val) {
          if($("#disabled_domains_list option[value='"+val.value+"']").length == 0) {
              $("#disabled_domains_list").append('<option value="'+val.value+'">'+val.text+'</option>');
          }
       });
       $('#enabled_domains_list :selected').remove(); 

    e.preventDefault();
    return true;
  });

  $("#domain_enable_button").unbind('click').bind('click', function(e) {
      var ddomains = $("#disabled_domains_list :selected");
      $.each(ddomains, function (idx, val) {
          if($("#enabled_domains_list option[value='"+val.value+"']").length == 0) {
              $("#enabled_domains_list").append('<option value="'+val.value+'">'+val.text+'</option>');
          }
       });
       $('#disabled_domains_list :selected').remove(); 

    e.preventDefault();
    return true;
  });

  $("#domains_update_button").unbind('click').bind('click', function(e) {
      if($('#enabled_domains_list option').length == 0) {
        $.confirm(
          "CONFIRM", //title
          "All domains will be disabled. For performance it's better to turn off security engine instead. Do you really want to use disabled domains?", //message
          "Update", //button text
          update_cwaf_disabled_domains,
          300
          );
      } else {
        update_cwaf_disabled_domains();
      }
    e.preventDefault();
    return true;
  });

  }

// collection main config data
function update_cwaf_main_config() {
  // create config object
  var conf = {};

  conf.cwaf_login           = $("#cwaf_login").val();
  conf.cwaf_passwd          = $("#cwaf_passwd").val();
  conf.log_dir              = $("#log_dir").val();
  conf.utils_log            = $("#utils_log").val();
  conf.rules_dir            = $("#rules_dir").val();
  conf.cwaf_exclude_config  = $("#cwaf_exclude_config").val();
  conf.debug                = $("#debug").slider( "option", "value" );
  conf.cwaf_subdomains      = $("#cwaf_subdomains").prop('checked') ? 1 : 0;
  conf.tname                = $("#cwaf_autoupdate_scheme option:selected").val();
  conf.action = 'update_config';

  get_cwaf_remote_data(cwaf_main_handler_url, conf);
  return true;
  }

// collection exclude config data
function update_cwaf_exclude_config() {
  var conf = {action: 'set_rules_excludelist', modsec_textarea: $("#modsec_textarea").val()};
  get_cwaf_remote_data(cwaf_main_handler_url, conf);
  return true;
  }

// collection userdata
function update_cwaf_userdata() {
  var conf = {};
  conf.action = 'set_userdata';
  // get all values from userdata_ textareas
  // f.e. conf.userdata_wl_agents = $("#userdata_wl_agents").val();
  $("[id*='userdata_']").each(function()
  {
      conf[$(this).attr("id")] = $(this).val();
  });

  get_cwaf_remote_data(cwaf_main_handler_url, conf);
  return true;
  }

// collection feedback data
function send_feedback_message() {
  var conf = {};

  conf.fb_rules_version   = $("#fb_rules_version").val();
  conf.fb_short           = $("#fb_short").val();
  conf.fb_msg             = $("#fb_msg").val();
  conf.fb_rule_id         = $("#fb_rule_id").val();
  conf.fb_client_version  = $("#fb_client_version").val();
  conf.action = 'run_feedbacksend';

  get_cwaf_remote_data(cwaf_main_handler_url, conf);
  return true;
  }

// send request to restore previous version of rules
function restore_rules_action() {
  var conf = {};
  conf.action = 'run_rules_restore';
  get_cwaf_remote_data(cwaf_main_handler_url, conf);
  return true;
  }

// send request to update rules version
function update_cwaf_rules_action() {
  var conf = {};
  conf.action = 'run_updater';
  get_cwaf_remote_data(cwaf_main_handler_url, conf);
  return true;
  }

// send request to backup user data
function user_backup_action() {
  var conf = {};
  conf.action = 'user_conf_backup';
  get_cwaf_remote_data(cwaf_main_handler_url, conf);
  return true;
  }

// send request to restore user backup
function user_restore_action() {
  var conf = {};
  conf.action = 'user_conf_restore';
  get_cwaf_remote_data(cwaf_main_handler_url, conf);
  return true;
  }

// send request to update client
function update_cwaf_client_action() {
  var conf = {};
  conf.action = 'run_client_updater';
  get_cwaf_remote_data(cwaf_main_handler_url, conf);
  return true;
  }

// send request to update modsec config data
function update_cwaf_modsec_config() {
  var conf = {};

  conf.SecRuleEngine              = $("#secengine option:selected").val();
  conf.SecAuditEngine             = $("#auditengine option:selected").val();
  conf.SecServerSignature         = $("#server_signature").prop('checked') ? 1 : 0;
  conf.SecResponseBodyLimit       = $("#response_body_limit").val();
  conf.SecAuditLog                = $("#audit_log").val();
  conf.SecAuditLogStorageDir      = $("#audit_log_storage").val();
  conf.SecAuditLogType            = $("#audit_log_type option:selected").val();
  conf.SecDebugLog                = $("#debug_log").val();
  conf.SecDebugLogLevel           = $("#debug_level").slider( "option", "value" );
  conf.SecRequestBodyAccess       = $("#body_access option:selected").val();
  conf.SecDataDir                 = $("#data_dir").val();
  conf.SecTmpDir                  = $("#temp_dir").val();
  conf.SecPcreMatchLimit          = $("#match_limit").val();
  conf.SecPcreMatchLimitRecursion = $("#match_recursion").val();
  conf.action = 'update_msconfig';

  get_cwaf_remote_data(cwaf_main_handler_url, conf);
  return true;
  }

// collection of disabled domains
function cwaf_disabled_domains() {
  // ajax request
  $.ajax({
      url: cwaf_main_handler_url,
      data: { 'action': 'disabled_domains' },
      type: 'POST',
      statusCode: {
            412: function() { show_error_msg('action is undefined'); },
            400: function() { show_error_msg('unknown action'); }
            }
      })
      .done(function(msg) {
        if(msg.status == 1) {
          $('#enabled_domains_list option').remove();
          $('#disabled_domains_list option').remove();
          // prepare html form
          $.each(msg.list, function(index, value) {
             if($.inArray(value, msg.disabled) < 0) {
                $('#enabled_domains_list').append("<option value='" + value + "'>" + value + "</option>");
              } else {
                $('#disabled_domains_list').append("<option value='" + value + "'>" + value + "</option>");
              }
            });
           // open dialog
           $("#disabled_domains_dialog").dialog({  title: "Disable domains" });
           $("#disabled_domains_dialog").dialog("open");
          }
        else { show_error_msg(msg.errmsg); }
        })
      .fail(function() { show_error_msg("request to server failed!"); });
  return true;
  }

// send request to update disabled domains
function update_cwaf_disabled_domains() {
  var conf = {};
  var ddomains = [];
  $("#disabled_domains_list option").each(function()
  {
      ddomains.push( $(this).val() );
  });
  conf.action = 'update_disabled_domains';
  conf.disabled = JSON.stringify(ddomains);
  get_cwaf_remote_data(cwaf_main_handler_url, conf);
  $("#disabled_domains_dialog").dialog("close");
  return true;
  }

//
function show_updater_log_action() {
  var conf = {};
  conf.action = 'get_updater_log';

  var task_queue = setInterval( function() {
      if( !cwaf_plugin_tmp_data[conf.action]) {
        // ajax failed
        clearInterval(task_queue);
        return true;
        }
      if(cwaf_plugin_tmp_data.update_finished) {
        // update was finished
        clearInterval(task_queue);
        return true;
        }
      // update counter
      cwaf_plugin_tmp_data.counter = cwaf_plugin_tmp_data.counter - 1;

      if(! cwaf_plugin_tmp_data.counter > 0) {
        // limit is off
        show_error_msg('time limit is over');
        clearInterval(task_queue);
        return true;
        }

      // send request to show log
      get_cwaf_remote_data(cwaf_main_handler_url, conf);
      }, 3000);
  return true;
  }

// select needed REGEXP by type
function validation_rules(rulename) {
  // list of validation rules
  var db =  {
              // ids may contains digits, - and ,
              'ids'   :   /^[1-9]{1}[0-9\-\,]+$/,
              'int'   :   /^[1-9]{1}[0-9]+$/,
              'url'   :   /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/,
              'path'  :   /\//,
              'filename'  :   /^[0-9a-zA-Z\^\&\'\@\{\}\[\]\,\$\=\!\-\#\(\)\.\%\+\~\_ ]+$/,
              // auth - simple string with digits and literals
              'auth'  :   /^[a-zA-Z0-9-_]+$/,
              'text' : /[a-zA-Z0-9-_]{3,}/,
              'version' : /^\d+\.\d+$/
            };

  // if rulename found - return regexp
  if(rulename in db) {  return db[rulename];  }

  return undefined;
  }

// control string input by REGEXP
function validateName(regex,selector,hide_el,warn_id,warn_msg) {
  if(!regex.test( $(selector).val() ))  {
    $(selector + ":focus").css( {'border-color':'#f00', 'box-shadow':'0 0 10px #f00'} );
    $(warn_id).text("Invalid input: "+warn_msg);
    //$(hide_el).css('display' , 'none');
    }
  else {
    $(selector + ":focus").removeAttr( 'style' );
    $(warn_id).text("");
    $(hide_el).css('display','inline');
    }
  }

// slider value in digit -> text
function get_debug_status(val)  {
  var debug_text;

  if (val == 0)        { debug_text = 'None';     }
  if (val>0 && val<=3) { debug_text = 'Critical'; }
  if (val>3 && val<=7) { debug_text = 'Warning';  }
  if (val>7 && val<=9) { debug_text = 'Notice';   }
  if(val == 10)        { debug_text = 'All';      }

  return val + " ("+ debug_text +")";
  }
function get_msdebug_status(val)  {
  var debug_text;

  if (val == 0)        { debug_text = 'None';     }
  if (val == 1)        { debug_text = 'Errors'; }
  if (val == 2)        { debug_text = 'Warnings'; }
  if (val == 3)        { debug_text = 'Notices'; }
  if (val == 4)        { debug_text = 'Transactions'; }
  if (val == 5)        { debug_text = 'Detailed Transactions'; }
  if (val>5 && val<=9) { debug_text = 'All';  }

  return val + " ("+ debug_text +")";
  }

// first run actions
function cwaf_plugin_firstrun(firstrun, rules_local_version) {
  // set global flag (default: false)
  plugin_firstrun = typeof  firstrun !== 'undefined' ?  firstrun : false;

  // return if not first run
  if(!plugin_firstrun) {
    return true;
  }

  if(rules_local_version == 0) {
    $.confirm_yesno(
      "Welcome to COMODO Web Application Firewall!", //title
      "Do you want to download latest COMODO Rules and run Protection Wizard?", //message
      "Yes, I do", //button yes text
      update_cwaf_rules_action,
      "No, thanks", //button no text
      update_firstrun,
      350
      );
    } else {
      $("#tabs").tabs("option", "selected", 6);
      wiz_show_questionnaire();
    }

  return true;
}

function update_firstrun() {
 $.ajax({
    type: 'POST',
    url: wiz_handler_url,
    data: {action:'update_firstrun'}
 });
  return true;
}

function onload_DOM(conf_debug_value, conf_msdebug_value, rules_installed) {
  var conf = {};

  //load tabs from JQuery UI
  $("#tabs").tabs({
    activate: function( event, ui ) {
      if(ui.newPanel.attr('id') == 'tabs-ctlg') {
          if(rules_installed == 0) {
              show_error_msg("No COMODO rules found!<br>Please load latest ruleset from '<b>Main</b>' tab.");
          } else {
              activate_catalog();
          }
        }
      else if(ui.newPanel.attr('id') == 'tabs-wizard') {
          wiz_show_questionnaire();
        }
      else if(ui.newPanel.attr('id') == 'tabs-cwatch') {
          cwatch_show();
        }
      }
    });

  // show short help
  $(document).tooltip();

  // window for updater logs
  $("#dialog") .dialog({
                        autoOpen: false,
                        modal: true,
                        width: '650px',
                        dialogClass: 'alert',
                        position: ['center', 'center']
                  });

  // window for disabled domains
  $("#disabled_domains_dialog") .dialog({
                        autoOpen: false,
                        modal: true,
                        width: '700px',
                        dialogClass: 'alert',
                        position: ['center', 'center']
                  });

  // init slider (cwaf main config)
  $("#debug").slider({
    value:0,
    min: 0,
    max: 10,
    step: 1,

    slide: function( event, ui ) {
      $("#amount").val( get_debug_status(ui.value) );
      }

    });

  // init input field (cwaf main config)
  $("#amount").val($("#debug").slider("value", conf_debug_value));
  $("#amount").val(get_debug_status(conf_debug_value));

  // init slider (cwaf modsec config)
  $("#debug_level").slider({
    value:0,
    min: 0,
    max: 9,
    step: 1,

    slide: function( event, ui ) {
      $("#msamount").val( get_msdebug_status(ui.value) );
      }

    });

  // init input field (cwaf modsec config)
  $("#msamount").val($("#debug_level").slider("value", conf_msdebug_value));
  $("#msamount").val(get_msdebug_status(conf_msdebug_value));


  // activate events
  cwaf_plugin_activate_button_events();

  return true;
  }
Back to Directory File Manager