Example #1
0
function print_conditional_row($row, $action, $msg)
{
    global $connection_id;
    global $user;
    global $op;
    global $dsleft;
    global $attrleft;
    global $dsright;
    global $const_or_ds;
    global $include_cond;
    global $and_or_op;
    print "<table border=0>\n";
    //this row displays checkbox options for rows 1 through n
    print "<tr align=left valign=top bgcolor=\"#eeeeee\">\n";
    // The first row is mandatory as every trigger needs at least one condition
    // (we do not allow when true triggers in Vigilert Pro)
    if ($row == 0) {
        print "<td colspan=5></td>\n";
    } else {
        // Print the checkbox for the user to optionally exclude/include
        // any trigger condition other than the first(topmost one)
        // By default, the check boxes are not checked.
        print "<td>\n";
        print "<input type=hidden name=check{$row} value=\"\">\n";
        if (strcmp($action, "initial") == 0) {
            print "<input type=checkbox name=check{$row} value=\"checked\">&nbsp;&nbsp;Include Condition\n";
        } else {
            $check_sel = $include_cond[$row];
            if (strcmp($check_sel, "checked") == 0) {
                print "<input type=checkbox name=check{$row} value=\"checked\" checked>&nbsp;&nbsp;Include Condition\n";
            } else {
                print "<input type=checkbox name=check{$row} value=\"checked\">&nbsp;&nbsp;Include Condition\n";
            }
        }
        print "</td>\n";
        // Print the radio button for the AND/OR operator to bind two trigger conditions
        // By default, the radio buttons are not checked.
        print "<td>\n";
        print "<input type=hidden name=cond{$row} value=\"\">\n";
        if (strcmp($action, "initial") != 0) {
            $and_or_sel = $and_or_op[$row];
        }
        if (strcmp($action, "initial") == 0 || strcmp($and_or_sel, "and") != 0 && strcmp($and_or_sel, "or") != 0) {
            print "<input type=radio name=cond{$row} value=\"and\">&nbsp;And&nbsp;&nbsp;\n";
            print "<input type=radio name=cond{$row} value=\"or\">&nbsp;Or\n";
        } else {
            $and_or_sel = $and_or_op[$row];
            if (strcmp($and_or_sel, "and") == 0) {
                print "<input type=radio name=cond{$row} value=\"and\" checked>&nbsp;And&nbsp;&nbsp;\n";
                print "<input type=radio name=cond{$row} value=\"or\">&nbsp;Or\n";
            } else {
                if (strcmp($and_or_sel, "or") == 0) {
                    print "<input type=radio name=cond{$row} value=and>&nbsp;And&nbsp;&nbsp;\n";
                    print "<input type=radio name=cond{$row} value=or checked>&nbsp;Or\n";
                }
            }
        }
        print "</td>\n";
        print "<td colspan=3>\n";
        print "</td>\n";
    }
    print "</tr>\n";
    // Differentiate between the first row (the mandatory trigger condition)
    // and the rest of optional trigger conditions.
    if ($row == 0) {
        print "<tr align=center valign=top>\n";
    } else {
        print "<tr align=center valign=top bgcolor=\"#eeeeee\">\n";
    }
    // Displays left hand side datasource select box
    $side = "left";
    print "<td>";
    get_datasrc($side, $row, $action);
    print "</td>";
    // Displays left hand side attribute select box
    print "<td>";
    if (strcmp($action, "initial") == 0) {
        $datasrc = "not selected";
    } else {
        $datasrc = $dsleft[$row];
    }
    get_attr($side, $row, $datasrc);
    print "</td>\n";
    // Displays the comparison operator box
    print "<td>\n";
    print "<table align=center border=0 width=150>\n";
    if (strcmp($row, "0") == 0) {
        print "<tr><td><div class=heading5><div style=\"text-align: center\">Comparison</div></div></td></tr>\n";
    }
    print "<tr><td align=center>\n";
    print "<select name=op{$row}>\n";
    $op_sel = $op[$row];
    if (strcmp($action, "initial") == 0 || strcmp($op_sel, "") == 0) {
        print "<option value=\"\">Operator</option>\n";
        print "<option value=\"=\">=</option>\n";
        print "<option value=\">\">></option>\n";
        print "<option value=\"<\"><</option>\n";
        print "<option value=\">=\">>=</option>\n";
        print "<option value=\"<=\"><=</option>\n";
        print "<option value=\"<>\">!=</option>\n";
        print "<option value=\"like\">like</option>\n";
        print "<option value=\"contains\">contains</option>\n";
    } else {
        switch ($op[$row]) {
            case "=":
                print "<option value=\"\">Operator</option>\n";
                print "<option value=\"=\" selected=\"selected\">=</option>\n";
                print "<option value=\">\">></option>\n";
                print "<option value=\"<\"><</option>\n";
                print "<option value=\">=\">>=</option>\n";
                print "<option value=\"<=\"><=</option>\n";
                print "<option value=\"<>\">!=</option>\n";
                print "<option value=\"like\">like</option>\n";
                print "<option value=\"contains\">contains</option>\n";
                break;
            case ">":
                print "<option value=\"\">Operator</option>\n";
                print "<option value=\"=\">=</option>\n";
                print "<option value=\">\" selected=\"selected\">></option>\n";
                print "<option value=\"<\"><</option>\n";
                print "<option value=\">=\">>=</option>\n";
                print "<option value=\"<=\"><=</option>\n";
                print "<option value=\"<>\">!=</option>\n";
                print "<option value=\"like\">like</option>\n";
                print "<option value=\"contains\">contains</option>\n";
                break;
            case "<":
                print "<option value=\"\">Operator</option>\n";
                print "<option value=\"=\">=</option>\n";
                print "<option value=\">\">></option>\n";
                print "<option value=\"<\" selected=\"selected\"><</option>\n";
                print "<option value=\">=\">>=</option>\n";
                print "<option value=\"<=\"><=</option>\n";
                print "<option value=\"<>\">!=</option>\n";
                print "<option value=\"like\">like</option>\n";
                print "<option value=\"contains\">contains</option>\n";
                break;
            case ">=":
                print "<option value=\"\">Operator</option>\n";
                print "<option value=\"=\">=</option>\n";
                print "<option value=\">\">></option>\n";
                print "<option value=\"<\"><</option>\n";
                print "<option value=\">=\" selected=\"selected\">>=</option>\n";
                print "<option value=\"<=\"><=</option>\n";
                print "<option value=\"<>\">!=</option>\n";
                print "<option value=\"like\">like</option>\n";
                print "<option value=\"contains\">contains</option>\n";
                break;
            case "<=":
                print "<option value=\"\">Operator</option>\n";
                print "<option value=\"=\">=</option>\n";
                print "<option value=\">\">></option>\n";
                print "<option value=\"<\"><</option>\n";
                print "<option value=\">=\">>=</option>\n";
                print "<option value=\"<=\" selected=\"selected\"><=</option>\n";
                print "<option value=\"<>\">!=</option>\n";
                print "<option value=\"like\">like</option>\n";
                print "<option value=\"contains\">contains</option>\n";
                break;
            case "<>":
                print "<option value=\"\">Operator</option>\n";
                print "<option value=\"=\">=</option>\n";
                print "<option value=\">\">></option>\n";
                print "<option value=\"<\"><</option>\n";
                print "<option value=\">=\">>=</option>\n";
                print "<option value=\"<=\"><=</option>\n";
                print "<option value=\"<>\" selected=\"selected\">!=</option>\n";
                print "<option value=\"like\">like</option>\n";
                print "<option value=\"contains\">contains</option>\n";
                break;
            case "like":
                print "<option value=\"\">Operator</option>\n";
                print "<option value=\"=\">=</option>\n";
                print "<option value=\">\">></option>\n";
                print "<option value=\"<\"><</option>\n";
                print "<option value=\">=\">>=</option>\n";
                print "<option value=\"<=\"><=</option>\n";
                print "<option value=\"<>\">!=</option>\n";
                print "<option value=\"like\" selected=\"selected\">like</option>\n";
                print "<option value=\"contains\">contains</option>\n";
                break;
            case "contains":
                print "<option value=\"\">Operator</option>\n";
                print "<option value=\"=\">=</option>\n";
                print "<option value=\">\">></option>\n";
                print "<option value=\"<\"><</option>\n";
                print "<option value=\">=\">>=</option>\n";
                print "<option value=\"<=\"><=</option>\n";
                print "<option value=\"<>\">!=</option>\n";
                print "<option value=\"like\">like</option>\n";
                print "<option value=\"contains\" selected=\"selected\">contains</option>\n";
                break;
        }
    }
    print "</select>\n";
    print "</td>\n";
    print "</tr>\n";
    print "</table>\n";
    print "</td>\n";
    // Displays the right hand side of the trigger condition row
    $side = "right";
    print "<td rowspan=2>\n";
    print "<table border=0>\n";
    print "<tr>\n";
    // Radio selection button to select if the left hand side
    // attribute is going to be compared with a constant or another attribute
    // belonging to the same or different data source that is compatible
    // By default, the radio buttons are not selected
    // Displays the radio button to select the data source option
    print "<input type=hidden name=constOrDS{$row} value=\"\">\n";
    if (strcmp($action, "initial") != 0) {
        $const_or_ds_sel = $const_or_ds[$row];
    }
    print "<td>\n";
    if (strcmp($action, "initial") == 0 || strcmp($const_or_ds_sel, "ds") != 0) {
        print "<input type=radio name=constOrDS{$row} value=ds>\n";
    } else {
        print "<input type=radio name=constOrDS{$row} value=ds checked>\n";
    }
    print "</td>\n";
    // Displays right hand side datasource select box
    print "<td>\n";
    get_datasrc($side, $row, $action);
    print "</td>\n";
    // Displays right hand side attribute select box
    print "<td>\n";
    if (strcmp($action, "initial") == 0) {
        $datasrc = "not selected";
    } else {
        $datasrc = $dsright[$row];
    }
    get_attr($side, $row, $datasrc);
    print "</td>\n";
    print "</tr>\n";
    print "<tr>\n";
    print "<td>\n";
    // Displays the radio button to select the constant value option
    if (strcmp($action, "initial") == 0 || strcmp($const_or_ds_sel, "constant") != 0) {
        print "<input type=radio name=constOrDS{$row} value=constant>\n";
    } else {
        print "<input type=radio name=constOrDS{$row} value=constant checked>\n";
    }
    print "</td>\n";
    // Print the constant value
    print "<td colspan=2>\n";
    print "<div class=heading5>Constant:</div>\n";
    print_constant($row, $action);
    print "</td>\n";
    print "</tr>\n";
    print "<tr>\n";
    print "<td colspan=3>\n";
    // If the user has just selected an attribute on the left hand side,
    // then help him by displaying a message on the compatible
    // data types that can be selected on the right hand side.
    if (strcmp($action, "refresh_help_msg") == 0) {
        $refresh_help_row = $_REQUEST['refresh_row_num'];
        if ($refresh_help_row == $row) {
            if (strcmp($dsleft[$row], "") != 0 && strcmp($attrleft[$row], "") != 0) {
                // Get the attribute type for the attribute selected on the left hand side.
                $attr_type = get_attr_type($connection_id, $dsleft[$row], $attrleft[$row]);
                // Get the message to help the user choose the right type of attribute on the
                // right hand side or enter the right type of constant value.
                $help_msg = get_attr_help_msg($attr_type);
                print "{$help_msg}";
            }
        }
    }
    print "</td>\n";
    print "</tr>\n";
    print "</table>\n";
    print "</td>\n";
    print "</tr>\n";
    // Display the error message if there is any for this particular row (that corresponds to
    // a trigger condition - like invalid constant values, incompatible attributes, empty fields etc.)
    print "<tr>\n";
    print "<td colspan=3>\n";
    if (strcmp($msg, "") != 0) {
        print "{$msg}\n";
    }
    print "</td>\n";
    print "</tr>\n";
    print "</table>\n";
}
                print "<td align=right valign=top>";
                print "<form action=\"usergroup_datasrc_privileges.php?phase=modify_ds_attr&user_group={$php_user_group}&data_source={$php_datasrc}\" method=\"post\" onsubmit=\"return validate(this, 'attr')\">";
                get_attr($connection_id, $php_phase, $php_user_group, $php_datasrc);
                print "</form>";
                print "</td>";
            } else {
                if (strcmp($php_phase, "modify_ds_attr") == 0) {
                    print "<td align=left valign=top>";
                    $php_user_group = $_REQUEST['user_group'];
                    $php_datasrc = $_REQUEST['data_source'];
                    modify_ds_attr($connection_id, $php_phase, $php_user_group, $php_datasrc);
                    get_usergroup($connection_id, $php_phase);
                    print "</td>";
                    print "<td align=center valign=top>";
                    print "<form action=\"usergroup_datasrc_privileges.php?phase=modify_ds&user_group={$php_user_group}\" method=\"post\" onsubmit=\"return validate(this, 'ds')\">";
                    get_datasrc($connection_id, $php_phase, $php_user_group);
                    print "</form>";
                    print "</td>";
                    print "<td align=right valign=top>";
                    print "<form action=\"usergroup_datasrc_privileges.php?phase=modify_ds_attr&user_group={$php_user_group}&data_source={$php_datasrc}\" method=\"post\" onsubmit=\"return validate(this, 'attr')\">";
                    get_attr($connection_id, $php_phase, $php_user_group, $php_datasrc);
                    print "</form>";
                    print "</td>";
                }
            }
        }
    }
}
//End of outer table
print "</tr>";
print "</table>";