ntopng/httpdocs/templates/config_list.html
2020-01-22 11:53:16 +00:00

93 lines
4.3 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}}">
{{hooks_subdir.label}}
</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>
<th>{{ i18n("config_scripts.applied_to", {}) }}</th>
<th class='w-25'>{{ i18n("actions", {}) }}</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
<div class="row">
<div class="col-md-2">
<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>
</div>
<div class="col-md-2">
<button id="import-modal-btn" data-toggle="modal" data-target="#import-modal" class="btn btn-secondary"><span>{{ i18n('config_scripts.config_import') }}</span></button>
</div>
</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("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() }}';
const delete_csrf = '{{ ntop.getRandomCSRFValue() }}';
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>