<?php
/*
** Copyright (C) 2001-2026 Zabbix SIA
**
** This program is free software: you can redistribute it and/or modify it under the terms of
** the GNU Affero General Public License as published by the Free Software Foundation, version 3.
**
** This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
** without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
** See the GNU Affero General Public License for more details.
**
** You should have received a copy of the GNU Affero General Public License along with this program.
** If not, see <https://www.gnu.org/licenses/>.
**/
?>


<script type="text/javascript">
	const view = new class {

		init({default_inventory_mode, iframe_sandboxing_enabled, iframe_sandboxing_exceptions, login_attempts,
				login_block, snmptrap_logging, uri_valid_schemes, url, validate_uri_schemes, vault_provider,
				proxy_secrets_provider, x_frame_options}) {
			const $form = jQuery('#miscconfig-form');

			$('#validate_uri_schemes').change(function() {
				$('#uri_valid_schemes').prop('disabled', !this.checked);
			});

			$('#x_frame_header_enabled').change(function() {
				$('#x_frame_options').prop('disabled', !this.checked);
			});

			$('#iframe_sandboxing_enabled').change(function() {
				$('#iframe_sandboxing_exceptions').prop('disabled', !this.checked);
			});

			$form.on('submit', () => {
				$form.trimValues(['#url', '#login_block', '#uri_valid_schemes', '#x_frame_options',
					'#iframe_sandboxing_exceptions'
				]);
			});

			$("#resetDefaults").click(function() {
				overlayDialogue({
					title: <?= json_encode(_('Reset confirmation')) ?>,
					content: $('<span>').text(<?= json_encode(_('Reset all fields to default values?')) ?>),
					buttons: [
						{
							title: <?= json_encode(_('Cancel')) ?>,
							cancel: true,
							class: '<?= ZBX_STYLE_BTN_ALT ?>',
							action: function() {}
						},
						{
							title: <?= json_encode(_('Reset defaults')) ?>,
							focused: true,
							action: function() {
								$('main')
									.prev('.msg-bad')
									.remove();

								$('#url').val(url);
								$('#discovery_groupid').multiSelect('clean');
								$(`#default_inventory_mode input[value=${default_inventory_mode}]`)
									.prop('checked', true);
								$('#alert_usrgrpid').multiSelect('clean');
								$('#snmptrap_logging').prop('checked', snmptrap_logging == 0 ? 'false' : 'true');

								// Authorization.
								$('#login_attempts').val(login_attempts);
								$('#login_block').val(login_block);

								// Storage of secrets.
								$(`#vault_provider input[value=${vault_provider}]`).prop('checked', true);
								$(`#proxy_secrets_provider input[value=${proxy_secrets_provider}]`)
									.prop('checked', true);

								// Security.
								$('#validate_uri_schemes')
									.prop('checked', validate_uri_schemes == 0 ? 'false' : 'true')
									.change();
								$('#uri_valid_schemes').val(uri_valid_schemes);
								$('#x_frame_header_enabled')
									.prop('checked', x_frame_options !== 'null')
									.change();
								$('#x_frame_options').val(x_frame_options);
								$('#iframe_sandboxing_enabled')
									.prop('checked', iframe_sandboxing_enabled == 0 ? 'false' : 'true')
									.change();
								$('#iframe_sandboxing_exceptions').val(iframe_sandboxing_exceptions);
							}
						}
					]
				}, {
					position: Overlay.prototype.POSITION_CENTER,
					trigger_element: this
				});
			});
		}
	}
</script>
