$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(); =}