PluginProbe
WebTotem Security / 2.4.1
WebTotem Security v2.4.1
3.0.2 3.0.1 3.0.0 trunk 1.0 1.1 1.2 1.3 1.3.1 1.3.2 1.3.3 2.0 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.1 2.2.2 2.2.3 All 110 releases
wt-security / includes / js / main.js

main.js in WebTotem Security 2.4.1, at includes/js/main.js

211 lines 7.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1
2 jQuery(document).ready(function ($) {
3
4 $('#wtotem-dos').on('change', function () {
5 let checked = $(this).prop('checked');
6 toggleLimits($('#wtotem-dos-limit'), $('#wtotem-dos-limit input'), checked);
7 });
8
9 $('#wtotem-login-attempts').on('change', function () {
10 let checked = $(this).prop('checked');
11 toggleLimits($('#wtotem-login-attempts-limit'), $('#wtotem-login-attempts-limit input'), checked);
12 });
13
14 function toggleLimits(limitWrap, limitInput, checked) {
15 (checked) ? limitWrap.removeClass('visually-hidden') : limitWrap.addClass('visually-hidden');
16 (checked) ? limitInput.removeAttr('disabled') : limitInput.attr('disabled', 'disabled');
17 }
18
19 $('ul.wtotem-tabs__caption').on('click', 'li:not(.active)', function () {
20 $(this)
21 .addClass('active').siblings().removeClass('active')
22 .closest('div.wtotem-tabs').find('div.wtotem-tabs__content').removeClass('active').eq($(this).index()).addClass('active');
23 });
24
25 $('body').on('click', '#wtotem_ps_settings', function () {
26 $('.popup-overlay').removeClass('d-none');
27 }).on('click', '.port-scanner-list__header--close', function (e) {
28 $('.popup-overlay').addClass('d-none');
29 }).on('click', '.popup-overlay', function (e) {
30 if (e.target.className.includes('popup-overlay')) {
31 $('.popup-overlay').addClass('d-none');
32 }
33 }).on('click', '.firewall-configuration__multi-adding', function () {
34 $('#wtotem-ip-list-type').val($(this).attr('data-list'));
35 }).on('click', '.wtotem_reports-accordion__title', function () {
36 $(this).next('div').toggleClass('visually-hidden')
37 }).on('click', '.wtotem_alert__close', function () {
38 $(this).parent('.wtotem_alert').remove();
39 });
40 });
41
42
43 // Hamburger menu.
44 const burgerEl = document.querySelector(".wtotem_burger");
45 const menuEl = document.querySelector(".wtotem_nav");
46 const bodyEl = document.getElementsByTagName("body")[0];
47
48 if (burgerEl) {
49 burgerEl.addEventListener("click", () => {
50 burgerEl.classList.toggle("active");
51 menuEl.classList.toggle("active");
52 // Adds body overflow hidden when the menu is open.
53 bodyEl.classList.toggle("lock");
54 });
55 }
56
57 // Report generate Modal.
58 const reportsBtn = document.querySelectorAll(".add_report");
59 const reportsModal = document.querySelector(".wtotem_reports-modal");
60 const reportsModalClose = document.querySelector(".wtotem_reports-modal__close");
61 const reportsModalMessage = document.querySelector("#wtotem_reports_form-messages");
62
63 if (reportsBtn) {
64 for (let elem of reportsBtn) {
65 elem.addEventListener("click", () => {
66 reportsModal.classList.add("wtotem_reports-modal--active");
67 bodyEl.classList.add("lock");
68 });
69 }
70 }
71
72 if (reportsModalClose) {
73 reportsModalClose.addEventListener("click", () => {
74 reportsModal.classList.remove("wtotem_reports-modal--active");
75 bodyEl.classList.remove("lock");
76 reportsModalMessage.innerHTML = '';
77 });
78 }
79
80
81 const addSideModal = (modal, openButton, closeButton, form) => {
82
83 const overlay = document.querySelector(".side-modal__overlay");
84 const message = document.querySelector(".wtotem_input__messages");
85 const toggleClassName = "side-modal--opened";
86
87 const showModal = () => {
88 modal.classList.add(toggleClassName);
89 };
90
91 const closeModal = () => {
92 modal.classList.remove(toggleClassName);
93 if (form) {
94 form.reset();
95 message.innerHTML = '';
96 }
97 };
98
99 openButton.addEventListener("click", showModal);
100 closeButton.addEventListener("click", closeModal);
101 overlay.addEventListener("click", closeModal);
102 };
103
104 (function () {
105 const modal = document.querySelector(".firewall-multi-adding");
106 const openButton = document.querySelector(".firewall-configuration__multi-adding");
107 const openButton2 = document.querySelector(".multi-adding-deny_list");
108 const closeButton = document.querySelector(".firewall-multi-adding__close");
109 const form = document.querySelector("#wtotem-allow-deny-multi-add-form");
110
111 if (modal) {
112 addSideModal(modal, openButton, closeButton, form);
113 addSideModal(modal, openButton2, closeButton, form);
114 }
115 })();
116
117 window.addEventListener('DOMContentLoaded', function () {
118
119 function tlite(t) {
120 document.addEventListener("mouseover", function (e) {
121 var i = e.target, n = t(i);
122 n || (n = (i = i.parentElement) && t(i)), n && tlite.show(i, n, !0)
123 })
124 }
125
126 tlite.show = function (t, e, i) {
127 var n = "data-tlite";
128 e = e || {}, (t.tooltip || function (t, e) {
129 function o() {
130 tlite.hide(t, !0)
131 }
132
133 function l() {
134 r || (r = function (t, e, i) {
135 function n() {
136 o.className = "tlite tlite-" + r + s;
137 var e = t.offsetTop, i = t.offsetLeft;
138 o.offsetParent === t && (e = i = 0);
139 var n = t.offsetWidth, l = t.offsetHeight, d = o.offsetHeight, f = o.offsetWidth, a = i + n / 2;
140 o.style.top = ("s" === r ? e - d - 10 : "n" === r ? e + l + 10 : e + l / 2 - d / 2) + "px", o.style.left = ("w" === s ? i : "e" === s ? i + n - f : "w" === r ? i + n + 10 : "e" === r ? i - f - 10 : a - f / 2) + "px"
141 }
142
143 var o = document.createElement("span"), l = i.grav || t.getAttribute("data-tlite") || "n";
144 o.innerHTML = e, t.appendChild(o);
145 var r = l[0] || "", s = l[1] || "";
146 n();
147 var d = o.getBoundingClientRect();
148 return "s" === r && d.top < 0 ? (r = "n", n()) : "n" === r && d.bottom > window.innerHeight ? (r = "s", n()) : "e" === r && d.left < 0 ? (r = "w", n()) : "w" === r && d.right > window.innerWidth && (r = "e", n()), o.className += " tlite-visible", o
149 }(t, d, e))
150 }
151
152 var r, s, d;
153 return t.addEventListener("mousedown", o), t.addEventListener("mouseleave", o), t.tooltip = {
154 show: function () {
155 d = t.title || t.getAttribute(n) || d, t.title = "", t.setAttribute(n, ""), d && !s && (s = setTimeout(l, i ? 150 : 1))
156 }, hide: function (t) {
157 if (i === t) {
158 s = clearTimeout(s);
159 var e = r && r.parentNode;
160 e && e.removeChild(r), r = void 0
161 }
162 }
163 }
164 }(t, e)).show()
165 }, tlite.hide = function (t, e) {
166 t.tooltip && t.tooltip.hide(e)
167 }, "undefined" != typeof module && module.exports && (module.exports = tlite);
168
169 // init tooltip with class js--tooltip
170 tlite(el => {
171 return {
172 el: el.classList.contains('js--tooltip'), grav: 'sw',
173 }
174 });
175
176 });
177
178 /**
179 * Calendar init
180 *
181 * @param element
182 * Input selector element with the start date of the period.
183 * @param dateFromSelector
184 * Input selector with the start date of the period.
185 * @param dateToSelector
186 * Input selector with the end date of the period.
187 * @param toggler
188 * Selector element of the wrapper of the elements that open the calendar when clicked.
189 * @returns {*}
190 * @private
191 */
192 const setFlatpickr_ = (element, dateFromSelector, dateToSelector, toggler) => {
193 const calendar = flatpickr(element,
194 {
195 mode: "range",
196 dateFormat: "j M, Y",
197 onChange: function (selectedDates) {
198 debugger;
199 const dates = selectedDates.map(date => this.formatDate(date, "j M, Y"));
200 document.querySelector(dateFromSelector).value = dates[0];
201 if (dates[1]) {
202 document.querySelector(dateToSelector).value = dates[1];
203 }
204 }
205 });
206
207 toggler.addEventListener("click", calendar.open);
208
209 return calendar;
210 };
211