ntopng/httpdocs/templates/config_list.html
2020-01-24 11:11:01 +01:00

112 lines
5.4 KiB
HTML

<!--page container-->
<div class='container-fluid mt-3'>
<div class='row'>
<div class='col-md-12 col-lg-12'>
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<i class="fab fa-superpowers"></i>
{{ i18n("about.user_scripts", {}) }}
</li>
{# print current page on the breadcrumb #}
<li class="breadcrumb-item active">{{ config_list.hooks_localizated[config_list.subdir] }}</li>
</ol>
</nav>
<ul class="nav nav-pills">
<li class='nav-item pt-2 pb-2 pr-1'>{{ i18n('config_scripts.config_entities') }}:</li>
{% for _, hooks_subdir in ipairs(config_list.user_scripts.listSubdirs()) do %}
<li class="nav-item">
<a class="nav-link {{ (hooks_subdir.id == config_list.subdir and 'active' or '') }}" href="?subdir={{hooks_subdir.id}}">
{{config_list.hooks_localizated[hooks_subdir.id]}}
</a>
</li>
{% end %}
</ul>
<table id="config-list" class='table w-100 table-bordered table-striped table-hover mt-3'>
<thead>
<tr>
<th class='w-25'>{{ i18n("config_scripts.config_name", {}) }}</th>
{% if config_list.subdir ~= "system" and config_list.subdir ~= "syslog" then %}
<th>{{ i18n("config_scripts.applied_to", {}) }}</th>
{% end %}
<th class='w-25'>{{ i18n("actions", {}) }}</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
<div>
<form action="/lua/rest/get/scripts/config.lua" class="form-inline" method="GET">
<button type="submit" class="btn btn-secondary"><span>{{ i18n('config_scripts.config_export') }}</span></button>
</form><button id="import-modal-btn" data-toggle="modal" data-target="#import-modal" class="btn btn-secondary"><span>{{ i18n('config_scripts.config_import') }}</span></button>
<button id="reset-modal-btn" data-toggle="modal" data-target="#reset-modal" class="btn btn-secondary"><span>{{ i18n('config_scripts.config_reset') }}</span></button>
</div>
<br>
<div>
<b>{{ i18n('notes') }}</b>
<ul>
<li>{* i18n('user_scripts.note_what_are_user_scripts',
{user_scripts_url = "https://www.ntop.org/guides/ntopng/api/user_scripts/index.html#user-scripts-api",
user_scripts_external = "<i class=\"fas fa-external-link-alt\"></i>"}) *}</li>
<li>{* i18n('user_scripts.note_configsets') *}</li>
<li>{* i18n('user_scripts.note_apply_to_default') *}</li>
</ul>
</div>
</div>
{# include modals for config_list.lua #}
{* config_list.template_utils.gen("config_list_components/clone_modal.html") *}
{* config_list.template_utils.gen("config_list_components/rename_modal.html") *}
{* config_list.template_utils.gen("config_list_components/delete_modal.html") *}
{* config_list.template_utils.gen("modal_confirm_dialog.html", {
dialog={
id = "reset-modal",
action = "resetConfig()",
title = i18n("config_scripts.config_reset"),
message = i18n("config_scripts.config_reset_confirm"),
confirm = i18n("reset")
}
}) *}
{* config_list.template_utils.gen("config_list_components/apply_modal.html", {
subdir = config_list.subdir
}) *}
{* config_list.template_utils.gen("config_list_components/import_modal.html") *}
{# include css and javascript code for the page #}
<link href="{{ ntop.getHttpPrefix() }}/datatables/datatables.min.css" rel="stylesheet"/>
<script type='text/javascript'>
// hold a csrf token for apply targets
let import_csrf = '{{ ntop.getRandomCSRFValue() }}';
let apply_csrf = '{{ ntop.getRandomCSRFValue() }}';
let clone_csrf = '{{ ntop.getRandomCSRFValue() }}';
let rename_csrf = '{{ ntop.getRandomCSRFValue() }}';
let reset_csrf = '{{ ntop.getRandomCSRFValue() }}';
const delete_csrf = '{{ ntop.getRandomCSRFValue() }}';
const default_config_only = {{ config_list.default_config_only_subdir }};
const subdir = '{{ config_list.subdir }}';
i18n.warning ="{{ i18n('warning', {}) }}";
i18n.no_targets_applied = "{{ i18n('config_scripts.no_targets_applied', {}) }}";
i18n.empty_value_message = "{{ i18n('config_scripts.empty_value_message', {}) }}";
i18n.empty_target_message = "{{ i18n('config_scripts.empty_target_message', {}) }}";
i18n.expired_csrf = "{{ i18n('expired_csrf') }}";
i18n.invalid_characters = "{{ i18n('config_scripts.invalid_characters') }}";
i18n.max_input_length = "{{ i18n('config_scripts.max_input_length') }}";
i18n.rename = "{{ i18n('config_scripts.actions.rename') }}";
i18n.delete = "{{ i18n('config_scripts.actions.delete') }}";
i18n.clone = "{{ i18n('config_scripts.actions.clone') }}";
i18n.edit = "{{ i18n('config_scripts.actions.edit') }}";
i18n.apply_to = "{{ i18n('config_scripts.actions.apply_to') }}";
i18n.invalid_file = "{{ i18n('config_scripts.invalid_file') }}";
i18n.no_file = "{{ i18n('config_scripts.no_file') }}";
i18n.default = "{{ i18n('policy_presets.default') }}";
</script>
<script type='text/javascript' src='{{ ntop.getHttpPrefix() }}/js/config_callbacks/config-list-utils.js?{{ ntop.getStartupEpoch() }}'></script>