Skip to content

Commit

Permalink
Merge pull request #59 from Delo-Design/dev
Browse files Browse the repository at this point in the history
v. 3.0.1
  • Loading branch information
progreccor authored Dec 20, 2020
2 parents 1e1a389 + bb2bdf6 commit 3611e25
Show file tree
Hide file tree
Showing 9 changed files with 114 additions and 24 deletions.
16 changes: 16 additions & 0 deletions historyradicalform.php
Original file line number Diff line number Diff line change
Expand Up @@ -176,13 +176,29 @@ function getInput() {
{
$extrainfo.=JText::_('PLG_RADICALFORM_USERAGENT').'<b>'.$json["rfUserAgent"]."</b><br>";
}
if(isset($json["rf-time"]))
{
$extrainfo.=JText::_('PLG_RADICALFORM_USER_TIME').'<b>'.$json["rf-time"]."</b><br>";
}
if(isset($json["rf-duration"]))
{
$extrainfo.=JText::sprintf('PLG_RADICALFORM_FORM_DURATION', $json["rf-duration"]);
}

}
$extrainfo.="</div>";
if(isset($json["url"]))
{
unset($json["url"]);
}
if(isset($json["rf-duration"]))
{
unset($json["rf-duration"]);
}
if(isset($json["rf-time"]))
{
unset($json["rf-time"]);
}
if(isset($json["reffer"]))
{
unset($json["reffer"]);
Expand Down
4 changes: 3 additions & 1 deletion language/en-GB/en-GB.plg_system_radicalform.ini
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,6 @@ PLG_RADICALFORM_HISTORY_TARGET="TargetID"
PLG_RADICALFORM_HISTORY_IP="IP address"
PLG_RADICALFORM_HISTORY_MESSAGE="Sent data"
PLG_RADICALFORM_HISTORY_FORMID="Form ID"
PLG_RADICALFORM_HISTORY_EXTRA="Visitor Information"
PLG_RADICALFORM_HISTORY_EXTRA="Visitor Information"
PLG_RADICALFORM_USER_TIME="Send time on user device: "
PLG_RADICALFORM_FORM_DURATION="Form sent %s sec. after page load"
6 changes: 4 additions & 2 deletions language/en-GB/en-GB.plg_system_radicalform.sys.ini
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ PLG_RADICALFORM_CUSTOMCODEON_DESCRIPTION = "You can enable the execution of your
PLG_RADICALFORM_CUSTOMCODE_LABEL = "Enter the name of your file"
PLG_RADICALFORM_CUSTOMCODE_DESC = "Enter the name of your file located in the /templates/your_template/html/plg_system_radicalform folder here"
PLG_RADICALFORM_KEEPALIVE="Keep alive user session"
PLG_RADICALFORM_KEEPALIVE_DESC="If user spends more time on your page than set in Joomla settings for user session, he will receive message about wrong CSRF token when trying to send form. This option allows you to avoid this situation, but will load a number of additional scripts on your page. You can turn it off and simply increase session time to a higher value (for example 3-4 hours)."
PLG_RADICALFORM_KEEPALIVE_DESC="If a user spends more time on your page than what is set in the Joomla settings for the user session, when trying to submit a form, he will receive a message about the wrong CSRF token. This option allows you to avoid this situation. You can disable it and just increase the session time to a larger value (for example 3-4 hours)."
PLG_RADICALFORM_SHOWTARGET_DONTFORGET="Don't forget to save your changes!"
PLG_RADICALFORM_SHOWTARGET_DONTFORGET_DESCRIPTION= "Changes to the settings you make will not be applied until you press the 'Save' button."
PLG_RADICALFORM_VERBOX_LABEL="Enable Verbox"
Expand Down Expand Up @@ -124,4 +124,6 @@ PLG_RADICALFORM_TOTALDANGER="Free space allocated to the storage exceeds the tot
PLG_RADICALFORM_BUTTONDELETECOLOR="Background color of the delete button"
PLG_RADICALFORM_BUTTONDELETECOLORBACKGROUND="Color of the delete button"
PLG_RADICALFORM_BUTTONDELETECOLORBACKGROUND_DESCRIPTION="The hexadecimal code of the background color of the file deletion button that appears next to the files uploaded by the user. You can also change the appearance of the button using the CSS class rf-button-delete"
PLG_RADICALFORM_BUTTONDELETECOLOR_DESCRIPTION="The hexadecimal code of the color of the file deletion button that appears next to the files uploaded by the user. You can also change the appearance of the button using the CSS class rf-button-delete"
PLG_RADICALFORM_BUTTONDELETECOLOR_DESCRIPTION="The hexadecimal code of the color of the file deletion button that appears next to the files uploaded by the user. You can also change the appearance of the button using the CSS class rf-button-delete"
PLG_RADICALFORM_USER_TIME="Send time on user device: "
PLG_RADICALFORM_FORM_DURATION="Form sent %s sec. after page load"
2 changes: 2 additions & 0 deletions language/ru-RU/ru-RU.plg_system_radicalform.ini
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,5 @@ PLG_RADICALFORM_HISTORY_IP="IP адрес"
PLG_RADICALFORM_HISTORY_MESSAGE="Отправленные данные"
PLG_RADICALFORM_HISTORY_FORMID="Form ID"
PLG_RADICALFORM_HISTORY_EXTRA="Информация о посетителе"
PLG_RADICALFORM_USER_TIME="Время отправки на устройстве пользователя: "
PLG_RADICALFORM_FORM_DURATION="Форма отправлена спустя %s сек. после загрузки страницы"
8 changes: 5 additions & 3 deletions language/ru-RU/ru-RU.plg_system_radicalform.sys.ini
Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,13 @@ PLG_RADICALFORM_PROXYADDRESS_LABEL="Адрес прокси"
PLG_RADICALFORM_PROXYADDRESS_DESCRIPTION="Адрес вашего прокси сервера"
PLG_RADICALFORM_PROXYPORT_LABEL="Порт прокси"
PLG_RADICALFORM_PROXYPORT_DESCRIPTION="Порт вашего прокси сервера"
PLG_RADICALFORM_WRONG_JOOMLA="Ваша версия Joomla слишком старая. Плагин будет работать только на Joomla с версии 3.8.1. Не включайте плагин!"
PLG_RADICALFORM_WRONG_JOOMLA="Ваша версия Joomla слишком старая. Плагин будет работать только на Joomla с версии 3.8.1 и старше. Не включайте плагин!"
PLG_RADICALFORM_CUSTOMCODEON_LABEL="Использовать свой код"
PLG_RADICALFORM_CUSTOMCODEON_DESCRIPTION="Можно использовать выполнение своего кода для всех форм на сайте или только для указанных с помощью Target ID. Создайте файл со своим кодом в папке /templates/your_template/html/plg_system_radicalform и укажите его имя в качестве Layout"
PLG_RADICALFORM_CUSTOMCODE_LABEL="Укажите имя вашего файла"
PLG_RADICALFORM_CUSTOMCODE_DESC="Здесь укажите имя вашего файла, расположенного в папке /templates/your_template/html/plg_system_radicalform"
PLG_RADICALFORM_KEEPALIVE="Поддерживать сессию пользователя"
PLG_RADICALFORM_KEEPALIVE_DESC="Если пользователь проводит на вашей странице больше времени, чем установлено в настройках Joomla для сессии пользователя, то при попытке отправить форму он получит сообщение о неверном CSRF токене. Этот параметр позволяет избежать такой ситуации,но загружает ряд дополнительных скриптов на страницу. Вы можете его отключить и просто увеличить время сессии до большего значения (например 3-4 часа)."
PLG_RADICALFORM_KEEPALIVE_DESC="Если пользователь проводит на вашей странице больше времени, чем установлено в настройках Joomla для сессии пользователя, то при попытке отправить форму он получит сообщение о неверном CSRF токене. Этот параметр позволяет избежать такой ситуации. Вы можете его отключить и просто увеличить время сессии до большего значения (например 3-4 часа)."
PLG_RADICALFORM_SHOWTARGET_DONTFORGET="Не забудьте сохранить изменения!"
PLG_RADICALFORM_SHOWTARGET_DONTFORGET_DESCRIPTION="Изменения параметров, которые вы вносите не будут применены до тех пор, пока вы не нажмете кнопку 'Сохранить'."
PLG_RADICALFORM_VERBOX_LABEL="Включить Verbox"
Expand Down Expand Up @@ -124,4 +124,6 @@ PLG_RADICALFORM_TOTALDANGER="Свободное пространство, выд
PLG_RADICALFORM_BUTTONDELETECOLORBACKGROUND="Фон кнопки удаления"
PLG_RADICALFORM_BUTTONDELETECOLORBACKGROUND_DESCRIPTION="Шестнадцатеричный код фона цвета кнопки удаления файлов, которая появляется рядом с загруженными пользователем файлами. Так же вид кнопки можно существенно изменить используя CSS класс rf-button-delete."
PLG_RADICALFORM_BUTTONDELETECOLOR="Цвет кнопки удаления"
PLG_RADICALFORM_BUTTONDELETECOLOR_DESCRIPTION="Шестнадцатеричный код цвета кнопки удаления файлов, которая появляется рядом с загруженными пользователем файлами. Так же вид кнопки можно существенно изменить используя CSS класс rf-button-delete."
PLG_RADICALFORM_BUTTONDELETECOLOR_DESCRIPTION="Шестнадцатеричный код цвета кнопки удаления файлов, которая появляется рядом с загруженными пользователем файлами. Так же вид кнопки можно существенно изменить используя CSS класс rf-button-delete."
PLG_RADICALFORM_USER_TIME="Время отправки на устройстве пользователя: "
PLG_RADICALFORM_FORM_DURATION="Форма отправлена спустя %s сек. после загрузки страницы"
60 changes: 47 additions & 13 deletions media/js/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,22 @@ RadicalFormClass = function () {
*/
this.init = function(container) {

if(typeof container === 'string') {
container = document.querySelector(container);
} else {
if(container === null || container === undefined) {
container = document.querySelector('body')
}
}

//here we initialize all forms without .rf-form class and those don't have .rf-form inside - we added this class so they have it
//only forms with this class is used in our work
var allForms= Array.from(document.querySelectorAll('form:not(.rf-form)')),
formsWithClass,
var allForms= Array.from(container.querySelectorAll('form:not(.rf-form)')),
filteredForms;
filteredForms = allForms.filter(function(el) {
if(el.querySelector(".rf-form"))
{
// we don't add rf-form class to forms with our form inside
return false;
}
return (el.querySelector(".rf-button-send"));
Expand All @@ -62,13 +70,22 @@ RadicalFormClass = function () {
el.classList.add('rf-form');
});

if(typeof container === 'string') {
container = document.querySelector(container);
} else {
if(container === null || container === undefined) {
container = document.querySelector('body')
var request1 = new XMLHttpRequest();
var AjaxFormDataforToken = new FormData();
AjaxFormDataforToken.append('gettoken', '1');
request1.open('POST', RadicalForm.Base + '/index.php?option=com_ajax&plugin=radicalform&format=json&group=system', true);

request1.onload = function() {
if (this.status >= 200 && this.status < 400) {
// Success!
var data = JSON.parse(this.response);
[].forEach.call(container.querySelectorAll('.rf-form .rf-button-send'), function (el) {
el.insertAdjacentHTML('afterend', '<input type="hidden" name="'+data.data[0]+'" value="1" />');
});
}
}

};
request1.send(AjaxFormDataforToken);

this.on(container, ".rf-form ." + selfClass.danger_classes.join('.'), 'keypress', function (target, e) {
selfClass.danger_classes.forEach(function (item) {
Expand Down Expand Up @@ -118,9 +135,6 @@ RadicalFormClass = function () {
[].forEach.call(container.querySelectorAll("input[type='file'].rf-upload-button"), function (el) {
el.addEventListener('change', selfClass.fileSend);
});



};

/**
Expand All @@ -133,7 +147,7 @@ RadicalFormClass = function () {
form = selfClass.closest(this, '.rf-form');

var numberOfInputsWithNames=form.querySelectorAll('input[name], select[name], textarea[name]').length - form.querySelectorAll('input[type="file"]').length;
if (numberOfInputsWithNames < 1) {
if (numberOfInputsWithNames < 2) {
alert("There is no input tags in your form with 'name' attribute!\r\n Please add 'name' attribute to your input tags!");
needReturn = true;
}
Expand Down Expand Up @@ -202,8 +216,9 @@ RadicalFormClass = function () {
AjaxFormData.append('rfFormID', form.getAttribute('id'));
}
AjaxFormData.append('uniq', selfClass.uniq);
AjaxFormData.append(RadicalForm.TokenValue, '1');
AjaxFormData.append('url', window.location.href);
AjaxFormData.append('rf-time', selfClass.showTime());
AjaxFormData.append('rf-duration', (performance.now()/1000).toFixed(2));
AjaxFormData.append('reffer', document.referrer);
AjaxFormData.append('resolution', screen.width + 'x' + screen.height);
AjaxFormData.append('pagetitle', document.title.replace(/&/g, "&amp;")
Expand Down Expand Up @@ -574,6 +589,25 @@ RadicalFormClass = function () {
}
}
}
this.showTime = function () {
var monthsArr = ["01", "02", "03", "04", "05", "06",
"07", "08", "09", "10", "11", "12"];
var dateObj = new Date();
var year = dateObj.getFullYear();
var month = dateObj.getMonth();
var numDay = dateObj.getDate();
var hour = dateObj.getHours();
var minute = dateObj.getMinutes();
var second = dateObj.getSeconds();

if (minute < 10) minute = "0" + minute;

if (second < 10) second = "0" + second;

var out = hour + ":" + minute + ":" + second + ", " + numDay + "." + monthsArr[month]
+ "." + year ;
return out;
}

};

Expand Down
Loading

0 comments on commit 3611e25

Please sign in to comment.