function create_rule_form()

in server/site/js/blocky.js [1888:1937]


function create_rule_form(form, rid) {
  if (!rid || rid == '') {
    rid = 'new';
    rule_json['new'] = {
      name: '',
      type: '',
      span: 24,
      limit: '',
      query: [],
    }
  }
  let n = _input({type: 'text', style: {width: '300px'}, id: "%s_name".format(rid), value: rule_json[rid].name});
  form.inject("Name of rule: ");
  form.inject(n);
  form.inject(br());
  
  // type
  let s = _select({id: "%s_type".format(rid)});
  s.inject(_option({value: 'httpd_traffic', selected: rule_json[rid].type == 'httpd_traffic' ? 'selected' : null}, 'HTTPd traffic (bytes)'));
  s.inject(_option({value: 'httpd_visits', selected: rule_json[rid].type == 'httpd_visits' ? 'selected' : null}, 'HTTPd visits (requests)'));
  form.inject("Type of rule: ");
  form.inject(s);
  form.inject(br());
  
  // span
  let sp = _select({id: "%s_span".format(rid)});
  sp.inject(_option({value: 1, selected: rule_json[rid].span == 1 ? 'selected' : null}, '1 hour'));
  sp.inject(_option({value: 6, selected: rule_json[rid].span == 6 ? 'selected' : null}, '6 hours'));
  sp.inject(_option({value: 12, selected: rule_json[rid].span == 12 ? 'selected' : null}, '12 hours'));
  sp.inject(_option({value: 24, selected: rule_json[rid].span == 24 ? 'selected' : null}, '24 hours'));
  sp.inject(_option({value: (24*7), selected: rule_json[rid].span == (24*7) ? 'selected' : null}, 'one week'));
  sp.inject(_option({value: (24*30), selected: rule_json[rid].span == (24*30) ? 'selected' : null}, 'one month'));
  
  form.inject("Time span: ");
  form.inject(sp);
  form.inject(br());
  
  let l = _input({type: 'number', style: {width: '120px'}, id: "%s_limit".format(rid), value: rule_json[rid].limit || 0});
  form.inject("Traffic/Request limit: ");
  form.inject(l);
  form.inject(br());
  
  let q = _textarea({style: {width: '300px', height: '120px'},id: "%s_query".format(rid)}, rule_json[rid].query.join("\n"));
  form.inject("Query parameters: ");
  form.inject(q);
  form.inject(br());
  
  form.inject(_input({type: 'submit', value: 'Save rule'}))
  
}