in webui/js/blocky4.js [327:414]
function rule_tr(rule) {
let tr = _tr();
// Description
let t_desc = _td();
let x_desc = document.createElement('input');
x_desc.setAttribute('type', 'text');
x_desc.setAttribute('id', `desc_${rule.id}`);
x_desc.style.width = "95%";
if (rule.description) {
x_desc.value = rule.description;
} else {
x_desc.placeholder = "Create a new rule here...";
}
t_desc.appendChild(x_desc);
tr.appendChild(t_desc);
// AggType
let t_agg = _td();
let x_agg = document.createElement('select');
x_agg.setAttribute('id', `agg_${rule.id}`);
for (let opt of ['requests', 'bytes']) {
let x_opt = document.createElement('option');
x_opt.value = opt;
x_opt.textContent = opt;
if (opt == rule.aggtype) x_opt.setAttribute('selected', 'selected');
x_agg.appendChild(x_opt);
}
t_agg.appendChild(x_agg);
tr.appendChild(t_agg);
// Limit
let t_limit = _td();
let x_limit = document.createElement('input');
x_limit.setAttribute('type', 'number');
x_limit.value = rule.limit;
x_limit.setAttribute('id', `limit_${rule.id}`);
x_limit.style.width = "95%";
t_limit.appendChild(x_limit);
tr.appendChild(t_limit);
// Timespan
let t_time = _td();
let x_time = document.createElement('input');
x_time.setAttribute('type', 'text');
x_time.setAttribute('id', `time_${rule.id}`);
x_time.style.width = "95%";
x_time.value = rule.duration;
t_time.appendChild(x_time);
tr.appendChild(t_time);
// Filters
let t_filters = _td();
let x_filters = document.createElement('textarea');
x_filters.setAttribute('id', `filters_${rule.id}`);
x_filters.style.width = "95%";
x_filters.textContent = rule.filters;
t_filters.appendChild(x_filters)
tr.appendChild(t_filters);
// Actions
let t_actions = _td();
t_actions.style.textAlign = 'center';
tr.appendChild(t_actions);
if (rule.description) {
let x_save = document.createElement('button');
x_save.innerText = 'Save';
x_save.addEventListener('click', () => patch_rule(rule));
t_actions.appendChild(x_save);
let x_delete = document.createElement('button');
x_delete.style.marginLeft = '32px';
x_delete.innerText = 'Delete';
x_delete.addEventListener('click', () => delete_rule(rule));
t_actions.appendChild(x_delete);
} else {
let x_save = document.createElement('button');
x_save.innerText = 'Create Rule';
x_save.addEventListener('click', () => create_rule(rule));
t_actions.appendChild(x_save);
}
return tr
}