$templates.shared.doctype
{= expand(templates.shared.content_type); =}
{=
string profile_name = internal.profile_name;
string form_type = volatile.form_type;
string log_source_name;
string log_source_type = volatile.log_source_type;
node log_source_node;
# -------------------
# if "new log source"
# -------------------
# generate a new log source name, which is a number >= 1
if (form_type eq "new") then (
node log_sources_node = "profiles." . profile_name . ".log.source";
node log_source;
bool duplicate_name_exists = true;
int i = 0;
string new_log_source_name;
while (duplicate_name_exists) (
duplicate_name_exists = false;
i++;
new_log_source_name = i;
foreach log_source log_sources_node (
log_source_name = node_name(log_source);
if (new_log_source_name eq log_source_name) then (
duplicate_name_exists = true;
);
);
);
log_source_name = new_log_source_name;
);
# --------------------
# if "edit log source"
# --------------------
# delete the existing log source node, it will be replaced with the edited log source values
if (form_type eq "edit") then (
log_source_name = volatile.log_source_name;
node log_source_node = "profiles." . profile_name . ".log.source." . log_source_name;
delete_node(log_source_node);
);
# -----------------------------------
# set edited or new log source values
# -----------------------------------
string log_source_node = "profiles." . profile_name . ".log.source." . log_source_name;
# -------
# local
# -------
if (log_source_type eq "local") then (
string local_pathname = volatile.local_pathname;
local_pathname = convert_utf8_to_local_code_page(local_pathname);
log_source_node . ".type" = log_source_type;
log_source_node . ".pathname" = local_pathname;
log_source_node . ".pattern_is_regular_expression" = volatile.local_pattern_is_reg_expr;
log_source_node . ".process_subdirectories" = volatile.local_process_subdir;
);
# -------
# ftp
# -------
if (log_source_type eq "ftp") then (
log_source_node . ".type" = log_source_type;
log_source_node . ".username" = volatile.ftp_username;
log_source_node . ".password" = volatile.ftp_password;
log_source_node . ".hostname" = volatile.ftp_hostname;
log_source_node . ".pathname" = volatile.ftp_pathname;
log_source_node . ".pattern_is_regular_expression" = volatile.ftp_pattern_is_reg_expr;
log_source_node . ".use_passive" = volatile.ftp_use_passive;
);
# -------
# http
# -------
if (log_source_type eq "http") then (
log_source_node . ".type" = log_source_type;
log_source_node . ".hostname" = volatile.http_hostname;
log_source_node . ".pathname" = volatile.http_pathname;
);
# -------
# command
# -------
if (log_source_type eq "command") then (
log_source_node . ".type" = log_source_type;
log_source_node . ".command" = volatile.command;
);
save_changes();
=}