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

Ticket #2047 - Possibility to change Buttons in default popups.

AntonLV 7 лет назад
Родитель
Сommit
9e229d6518

+ 21 - 18
inc/js/functions.js

@@ -1001,31 +1001,34 @@ function bx_autocomplete_fields(iId, sUrl, sName, bShowImg, bOnlyOnce, onSelect)
 		$('#' + iId + '.bx-form-input-autotoken input').outerWidth('100%');
 };
 
-function bx_alert(sMessage, fOnClickOk)
+function bx_alert(sMessage, fOnClickOk, oParams)
 {
-	$(document).dolPopupAlert({
-		message: sMessage,
-		onClickOk: fOnClickOk
-	});
+    $(document).dolPopupAlert({
+        message: sMessage,
+        onClickOk: fOnClickOk,
+        params: oParams
+    });
 }
 
-function bx_confirm(sMessage, fOnClickYes, fOnClickNo)
+function bx_confirm(sMessage, fOnClickYes, fOnClickNo, oParams)
 {
-	$(document).dolPopupConfirm({
-		message: sMessage,
-		onClickYes: fOnClickYes,
-		onClickNo: fOnClickNo
-	});
+    $(document).dolPopupConfirm({
+        message: sMessage,
+        onClickYes: fOnClickYes,
+        onClickNo: fOnClickNo,
+        params: oParams
+    });
 }
 
-function bx_prompt(sMessage, sValue, fOnClickOk, fOnClickCancel)
+function bx_prompt(sMessage, sValue, fOnClickOk, fOnClickCancel, oParams)
 {
-	$(document).dolPopupPrompt({
-		message: sMessage,
-		value: sValue,
-		onClickOk: fOnClickOk,
-		onClickCancel: fOnClickCancel
-	});
+    $(document).dolPopupPrompt({
+        message: sMessage,
+        value: sValue,
+        onClickOk: fOnClickOk,
+        onClickCancel: fOnClickCancel,
+        params: oParams
+    });
 }
 
 function bx_get_scripts (aFiles, fCallback) 

+ 140 - 58
inc/js/jquery.dolPopup.js

@@ -567,104 +567,186 @@
 
     $.fn.dolPopupAlert = function(options) {
     	var oAPopup = $('#bx-popup-alert');
+        var sDefMessage, sDefBtnOkTitle;
 
-    	if(options.message != undefined && options.message.length > 0)
-    		oAPopup.find('.popup_alert_text').html(options.message);
+        var oMessage = null;
+    	if(options.message != undefined && options.message.length > 0) {
+            oMessage = oAPopup.find('.popup_alert_text');
 
-    	oAPopup.find('.popup_alert_ok').bind('click', function() {
-			if(options.onClickOk && typeof(options.onClickOk) == 'function')
-				options.onClickOk(oAPopup);
+            sDefMessage = oMessage.html();
+            oMessage.html(options.message);
+        }
 
-			oAPopup.dolPopupHide();
-		});
+        var oBtnOk = oAPopup.find('.popup_alert_ok');
+        if(options.params.ok.title != undefined && options.params.ok.title.length > 0) {
+            sDefBtnOkTitle = oBtnOk.html();
+            oBtnOk.html(options.params.ok.title);
+        }
 
-		var fOnHide = options.onHide;
-		options.onHide = function(oPopup) {
-			if(typeof(fOnHide) == 'function')
-				fOnHide(oAPopup);
+    	oBtnOk.bind('click', function() {
+            if(options.onClickOk && typeof(options.onClickOk) == 'function')
+                options.onClickOk(oAPopup);
 
-			oAPopup.find('.bx-btn').unbind('click');
-		};
+            oAPopup.dolPopupHide();
+        });
 
-		oAPopup.dolPopup(options);
+        var fOnHide = options.onHide;
+        options.onHide = function(oPopup) {
+            if(typeof(fOnHide) == 'function')
+                fOnHide(oAPopup);
+
+            /**
+             * Restore default functions and layout 
+             * if the last one was customized.
+             */
+            oAPopup.find('.bx-btn').unbind('click');
+            if(sDefMessage.length > 0)
+                oMessage.html(sDefMessage);
+            if(sDefBtnYesTitle.length > 0)
+                oBtnYes.html(sDefBtnYesTitle);
+        };
+
+        oAPopup.dolPopup(options);
     };
 
     $.fn.dolPopupConfirm = function(options) {
     	var oCPopup = $('#bx-popup-confirm');
+        var sDefMessage, sDefBtnYesTitle, sDefBtnNoTitle;
 
-    	if(options.message != undefined && options.message.length > 0)
-    		oCPopup.find('.popup_confirm_text').html(options.message);
+        var oMessage = null;
+    	if(options.message != undefined && options.message.length > 0) {
+            oMessage = oCPopup.find('.popup_confirm_text');
 
-    	oCPopup.find('.popup_confirm_yes').bind('click', function(event) {
-            event.stopPropagation();
+            sDefMessage = oMessage.html();
+            oMessage.html(options.message);
+        }
 
-			if(options.onClickYes && typeof(options.onClickYes) == 'function')
-				options.onClickYes(oCPopup);
+        var oBtnYes = oCPopup.find('.popup_confirm_yes');
+        if(options.params.yes.title != undefined && options.params.yes.title.length > 0) {
+            sDefBtnYesTitle = oBtnYes.html();
+            oBtnYes.html(options.params.yes.title);
+        }
 
-			oCPopup.dolPopupHide();
-		});
+        var oBtnNo = oCPopup.find('.popup_confirm_no');
+        if(options.params.no.title != undefined && options.params.no.title.length > 0) {
+            sDefBtnNoTitle = oBtnNo.html();
+            oBtnNo.html(options.params.no.title);
+        }
 
-		oCPopup.find('.popup_confirm_no').bind('click', function(event) {
+    	oBtnYes.bind('click', function(event) {
             event.stopPropagation();
 
-			if (options.onClickNo && typeof(options.onClickNo) == 'function')
-				options.onClickNo(oCPopup);
+            if(options.onClickYes && typeof(options.onClickYes) == 'function')
+                options.onClickYes(oCPopup);
 
-			oCPopup.dolPopupHide();
-		});
+            oCPopup.dolPopupHide();
+        });
 
-		var fOnHide = options.onHide;
-		options.onHide = function(oPopup) {
-			if(typeof(fOnHide) == 'function')
-				fOnHide(oCPopup);
+        oBtnNo.bind('click', function(event) {
+            event.stopPropagation();
 
-			oCPopup.find('.bx-btn').unbind('click');
-		};
+            if (options.onClickNo && typeof(options.onClickNo) == 'function')
+                options.onClickNo(oCPopup);
+
+            oCPopup.dolPopupHide();
+        });
 
-		oCPopup.dolPopup(options);
+        var fOnHide = options.onHide;
+        options.onHide = function(oPopup) {
+            if(typeof(fOnHide) == 'function')
+                fOnHide(oCPopup);
+
+            /**
+             * Restore default functions and layout 
+             * if the last one was customized.
+             */
+            oCPopup.find('.bx-btn').unbind('click');
+            if(sDefMessage.length > 0)
+                oMessage.html(sDefMessage);
+            if(sDefBtnYesTitle.length > 0)
+                oBtnYes.html(sDefBtnYesTitle);
+            if(sDefBtnNoTitle.length > 0)
+                oBtnNo.html(sDefBtnNoTitle);
+        };
+
+        oCPopup.dolPopup(options);
     };
 
     $.fn.dolPopupPrompt = function(options) {
     	var oPPopup = $('#bx-popup-prompt');
+        var sDefMessage, sDefValue, sDefBtnOkTitle, sDefBtnCancelTitle;
 
     	oPPopup.setValue = function(mixedValue) {
-    		return oPPopup.find('[name="bx-popup-prompt-value"]').val(mixedValue);
+            return oPPopup.find('[name="bx-popup-prompt-value"]').val(mixedValue);
     	};
 
     	oPPopup.getValue = function() {
-    		return oPPopup.find('[name="bx-popup-prompt-value"]').val();
+            return oPPopup.find('[name="bx-popup-prompt-value"]').val();
     	};   		
 
-    	if(options.message != undefined && options.message.length > 0)
-    		oPPopup.find('.popup_prompt_text').html(options.message);
+        var oMessage = null;
+    	if(options.message != undefined && options.message.length > 0) {
+            oMessage = oPPopup.find('.popup_prompt_text');
 
-    	if(options.value != undefined && options.value.length > 0)
-    		oPPopup.setValue(options.value);
+            sDefMessage = oMessage.html();
+            oMessage.html(options.message);
+        }
 
-    	oPPopup.find('.popup_prompt_ok').bind('click', function() {
-			if(options.onClickOk && typeof(options.onClickOk) == 'function')
-				options.onClickOk(oPPopup);
+    	if(options.value != undefined && options.value.length > 0) {
+            sDefValue = oPPopup.getValue();
+            oPPopup.setValue(options.value);
+        }
 
-			oPPopup.dolPopupHide();
-		});
+        var oBtnOk = oPPopup.find('.popup_prompt_ok');
+        if(options.params.ok.title != undefined && options.params.ok.title.length > 0) {
+            sDefBtnOkTitle = oBtnOk.html();
+            oBtnOk.html(options.params.ok.title);
+        }
+
+        var oBtnCancel = oPPopup.find('.popup_prompt_cancel');
+        if(options.params.cancel.title != undefined && options.params.cancel.title.length > 0) {
+            sDefBtnCancelTitle = oBtnCancel.html();
+            oBtnCancel.html(options.params.cancel.title);
+        }
+        
+    	oBtnOk.bind('click', function() {
+            if(options.onClickOk && typeof(options.onClickOk) == 'function')
+                options.onClickOk(oPPopup);
 
-		oPPopup.find('.popup_prompt_cancel').bind('click', function() {
-			if(options.onClickCancel && typeof(options.onClickCancel) == 'function')
-				options.onClickCancel(oPPopup);
+            oPPopup.dolPopupHide();
+        });
 
-			oPPopup.dolPopupHide();
-		});
+        oBtnCancel.bind('click', function() {
+            if(options.onClickCancel && typeof(options.onClickCancel) == 'function')
+                options.onClickCancel(oPPopup);
 
-		var fOnHide = options.onHide;
-		options.onHide = function(oPopup) {
-			if(typeof(fOnHide) == 'function')
-				fOnHide(oPPopup);
+            oPPopup.dolPopupHide();
+        });
 
-			oPPopup.setValue('');
-			oPPopup.find('.bx-btn').unbind('click');
-		};
+        var fOnHide = options.onHide;
+        options.onHide = function(oPopup) {
+            if(typeof(fOnHide) == 'function')
+                fOnHide(oPPopup);
 
-		oPPopup.dolPopup(options);
+            
+            /**
+             * Restore default functions and layout 
+             * if the last one was customized.
+             */
+            oPPopup.find('.bx-btn').unbind('click');
+            if(sDefMessage.length > 0)
+                oMessage.html(sDefMessage);
+            if(sDefValue.length > 0)
+                oPPopup.setValue(sDefValue);
+            else
+                oPPopup.setValue('');
+            if(sDefBtnOkTitle.length > 0)
+                oBtnOk.html(sDefBtnOkTitle);
+            if(sDefBtnCancelTitle.length > 0)
+                oBtnCancel.html(sDefBtnCancelTitle);
+        };
+
+        oPPopup.dolPopup(options);
     };
 
     $.fn._dolPopupSetPosition = function(options) {

+ 5 - 1
modules/boonex/payment/classes/BxPaymentGridSbsAdministration.php

@@ -77,7 +77,11 @@ class BxPaymentGridSbsAdministration extends BxBaseModPaymentGridOrders
     {
         parent::_addJsCss();
 
-        $this->_oTemplate->addJsTranslation('_bx_payment_msg_confirm_cancelation');
+        $this->_oTemplate->addJsTranslation(array(
+            '_bx_payment_msg_confirm_cancelation',
+            '_bx_payment_txt_unsubscribe_yes',
+            '_bx_payment_txt_unsubscribe_no'
+        ));
     }
 }
 

+ 2 - 0
modules/boonex/payment/install/langs/en.xml

@@ -254,6 +254,8 @@
 	<string name="_bx_payment_txt_name_manual"><![CDATA[Manually]]></string>
 	<string name="_bx_payment_txt_yes"><![CDATA[Yes]]></string>
 	<string name="_bx_payment_txt_no"><![CDATA[No]]></string>
+        <string name="_bx_payment_txt_unsubscribe_yes"><![CDATA[Cancel automatically]]></string>
+        <string name="_bx_payment_txt_unsubscribe_no"><![CDATA[Do not cancel]]></string>
 
 	<!-- PayPal payment provider -->
 	<string name="_bx_payment_pp_cpt"><![CDATA[PayPal]]></string>

+ 8 - 1
modules/boonex/payment/js/subscriptions.js

@@ -53,7 +53,14 @@ BxPaymentSubscriptions.prototype.cancel = function(oLink, iId, sGrid) {
 
 	bx_confirm(_t('_bx_payment_msg_confirm_cancelation'), function() {
             $this._performRequest(oLink, iId, 'subscription_cancel', oParams);
-	});
+	}, function() {}, {
+            yes: {
+                title: _t('_bx_payment_txt_unsubscribe_yes')
+            },
+            no: {
+                title: _t('_bx_payment_txt_unsubscribe_no')
+            }
+        });
 };
 
 BxPaymentSubscriptions.prototype._performRequest = function(oLink, iId, sUri, oParams) {

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

@@ -253,7 +253,9 @@
 	<string name="_bx_payment_txt_none"><![CDATA[нет]]></string>
 	<string name="_bx_payment_txt_name_manual"><![CDATA[Вручную]]></string>
 	<string name="_bx_payment_txt_yes"><![CDATA[Да]]></string>
-    <string name="_bx_payment_txt_no"><![CDATA[Нет]]></string>
+        <string name="_bx_payment_txt_no"><![CDATA[Нет]]></string>
+        <string name="_bx_payment_txt_unsubscribe_yes"><![CDATA[Отменить автоматически]]></string>
+        <string name="_bx_payment_txt_unsubscribe_no"><![CDATA[Не отменять]]></string>
 
 	<!-- PayPal payment provider -->
 	<string name="_bx_payment_pp_cpt"><![CDATA[PayPal]]></string>