function rule_tr()

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
}