Просмотр исходного кода

Ticket #4518 - Forms: Add possibility to completely disable leave page notification.

AntonLV 3 лет назад
Родитель
Сommit
4017fb4027

+ 4 - 2
inc/js/classes/BxDolForm.js

@@ -18,6 +18,7 @@ function BxDolForm(oOptions)
 
     this._sActionsUri = 'form.php';
     this._sActionsUrl = oOptions.sRootUrl + this._sActionsUri; // actions url address
+    this._bLeavePageConfirmation = oOptions.bLeavePageConfirmation == undefined ? false : oOptions.bLeavePageConfirmation;
     this._sTxtLeavePageConfirmation = oOptions.sTxtLeavePageConfirmation === undefined ? _t('_sys_leave_page_confirmation') : oOptions.sTxtLeavePageConfirmation;
 
     this._bChanged = false;
@@ -26,10 +27,11 @@ function BxDolForm(oOptions)
     this._iAnimationSpeed = 'slow';
     this._aHtmlIds = oOptions.aHtmlIds;
 
-    this.init();
+    if(this._bLeavePageConfirmation)
+        this.initLeavePageConfirmation();
 }
 
-BxDolForm.prototype.init = function()
+BxDolForm.prototype.initLeavePageConfirmation = function()
 {
     var $this = this;
 

+ 3 - 1
install/sql/system.sql

@@ -375,7 +375,9 @@ INSERT INTO `sys_options`(`category_id`, `name`, `caption`, `value`, `type`, `ex
 (@iCategoryId, 'sys_files_ext_imagevideo', '_adm_stg_cpt_option_sys_files_ext_imagevideo', 'jpg,jpeg,jpe,gif,png,svg,webp,avi,flv,mpg,mpeg,wmv,mp4,m4v,mov,qt,divx,xvid,3gp,3g2,webm,mkv,ogv,ogg,rm,rmvb,asf,drc,ts', 'digit', '', '', '', '', 230),
 (@iCategoryId, 'sys_files_ext_dangerous', '_adm_stg_cpt_option_sys_files_ext_dangerous', 'action,apk,app,bat,bin,cmd,com,command,cpl,csh,exe,gadget,inf,ins,inx,ipa,isu,job,jse,ksh,lnk,msc,msi,msp,mst,osx,out,paf,pif,prg,ps1,reg,rgs,run,sct,shb,shs,u3p,vb,vbe,vbs,vbscript,workflow,ws,wsf', 'digit', '', '', '', '', 240),
 
-(@iCategoryId, 'sys_viewport_meta_tag', '_adm_stg_cpt_option_sys_viewport_meta_tag', 'width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0', 'digit', '', '', '', '', 250);
+(@iCategoryId, 'sys_viewport_meta_tag', '_adm_stg_cpt_option_sys_viewport_meta_tag', 'width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0', 'digit', '', '', '', '', 250),
+
+(@iCategoryId, 'sys_form_lpc_enable', '_adm_stg_cpt_option_sys_form_lpc_enable', 'on', 'checkbox', '', '', '', '', 260);
 
 --
 -- CATEGORY (HIDDEN): System

+ 1 - 0
modules/boonex/english/data/langs/system/en.xml

@@ -1605,6 +1605,7 @@
     <string name="_adm_stg_cpt_option_sys_player_default_quality"><![CDATA[Default video quality]]></string>
     <string name="_adm_stg_cpt_option_sys_pt_default_visitor"><![CDATA[Default page type for visitor]]></string>
     <string name="_adm_stg_cpt_option_sys_pt_default_member"><![CDATA[Default page type for member]]></string>
+    <string name="_adm_stg_cpt_option_sys_form_lpc_enable"><![CDATA[Enable leave page confirmation for pages with forms]]></string>
     <string name="_adm_stg_cpt_option_sys_format_date"><![CDATA[<a target="_blank" href="https://momentjs.com/docs/#/displaying/format/">Date Format</a>]]></string>
     <string name="_adm_stg_cpt_option_sys_format_datetime"><![CDATA[<a target="_blank" href="https://momentjs.com/docs/#/displaying/format/">Date And Time Format</a>]]></string>
     <string name="_adm_stg_cpt_option_sys_format_time"><![CDATA[<a target="_blank" href="https://momentjs.com/docs/#/displaying/format/">Time Format</a>]]></string>

+ 1 - 1
modules/boonex/russian/data/langs/system/ru.xml

@@ -1582,12 +1582,12 @@
     <string name="_adm_stg_cpt_option_sys_player_default_quality"><![CDATA[Качество видео по умолчанию]]></string>
     <string name="_adm_stg_cpt_option_sys_pt_default_visitor"><![CDATA[Тип страницы, используемый по умолчанию для посетителя]]></string>
     <string name="_adm_stg_cpt_option_sys_pt_default_member"><![CDATA[Тип страницы, используемый по умолчанию для пользователя]]></string>
+    <string name="_adm_stg_cpt_option_sys_form_lpc_enable"><![CDATA[Включить подтверждение ухода со страницы для страниц с формами]]></string>
     <string name="_adm_stg_cpt_option_sys_format_date"><![CDATA[<a target="_blank" href="https://momentjs.com/docs/#/displaying/format/">Формат даты</a>]]></string>
     <string name="_adm_stg_cpt_option_sys_format_datetime"><![CDATA[<a target="_blank" href="https://momentjs.com/docs/#/displaying/format/">Формат даты и времени</a>]]></string>
     <string name="_adm_stg_cpt_option_sys_format_time"><![CDATA[<a target="_blank" href="https://momentjs.com/docs/#/displaying/format/">Формат времени</a>]]></string>
     <string name="_adm_stg_cpt_option_sys_format_timeago"><![CDATA[Использовать формат 'времени назад' для дат, меньших чем данное количество секунд]]></string>
     <string name="_adm_stg_cpt_option_sys_format_input_24h"><![CDATA[Использовать 24ч формат времени в каледаре ввода времени]]></string>
-
     <string name="_adm_stg_cpt_option_sys_ftp_dir"><![CDATA[Путь к скрипту на FTP-сервере]]></string>
     <string name="_adm_stg_cpt_option_sys_ftp_login"><![CDATA[FTP-сервер - Логин]]></string>
     <string name="_adm_stg_cpt_option_sys_ftp_password"><![CDATA[FTP-сервер - Пароль]]></string>

+ 1 - 0
template/scripts/BxBaseFormView.php

@@ -393,6 +393,7 @@ class BxBaseFormView extends BxDolForm
             'sDisplay' => isset($this->aParams['display']) ? $this->aParams['display'] : '',
             'sRootUrl' => BX_DOL_URL_ROOT,
             'aHtmlIds' => $this->_aHtmlIds,
+            'bLeavePageConfirmation' => getParam('sys_form_lpc_enable') == 'on',
             'sTxtLeavePageConfirmation' => _t('_sys_leave_page_confirmation')
         )) . ");";