/** * Override method to output our custom HTML with JavaScript * * @param Varien_Data_Form_Element_Abstract $element * * @return String */ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element) { // Only do validation if module is installed and active if ($this->helper('bronto_common')->isModuleInstalled('Bronto_Verify')) { $_html = array(); // Create form object to grab scope details $form = new Mage_Adminhtml_Block_System_Config_Form(); $scope = $form->getScope(); $scopeId = $form->getScopeId(); $element->setData('onchange', "validateToken(this.form, this);"); $element->setData('after_element_html', "\n <span id=\"loadingMask\" style=\"display: none; width: 100px;\">\n <span class=\"loader\" id=\"loading-mask-loader\" style=\"background: url(" . $this->getSkinUrl('bronto/images/ajax-loader-tr.gif') . ") no-repeat 0 50%; background-size: 20px; padding:3px 0 3px 25px;\">" . $this->__(' Verifying...') . "</span>\n <span id=\"loading-mask\"></span>\n </span>\n <script>\n /**\n * Function to Toggle Form Elements Disabled Status Based On Token Status\n */\n function toggleDisabled(form, element) {\n // Get Status Text Element\n var statusText = \$('bronto-validation-status-text');\n // If Status Text Element has Class of 'invalid' or empty, set boolean disabled value\n var disabled = (statusText.className == 'invalid' || statusText.className == '');\n\n // Cycle through form elements and disable/enable elements\n for (i = 0; i < form.length; i++) {\n if (form.elements[i].id != '{$element->getId()}' &&\n form.elements[i].id != 'bronto_settings_enabled' &&\n form.elements[i].id != 'verify-button' &&\n form.elements[i].type != 'hidden' &&\n form.elements[i].name.indexOf('groups') == 0) {\n form.elements[i].disabled = disabled;\n }\n }\n\n // Get Last Element of Form, and if the class name is 'note', empty the html value\n var last = element.parentNode.lastChild;\n if (last.className == 'note') {\n last.innerHTML = '';\n }\n }\n\n function trim1 (str) {\n return str.replace(/^\\s\\s*/, '').replace(/\\s\\s*\$/, '');\n }\n\n function validateToken(form, element) {\n var token = trim1(\$('{$element->getId()}').value);\n var statusText = \$('bronto-validation-status');\n var reloadUrl = '{$this->getUrl('*/apitoken/ajaxvalidation')}';\n\n statusText.innerHTML = \$('loadingMask').innerHTML;\n statusText.removeClassName('valid').removeClassName('invalid');\n\n new Ajax.Request(reloadUrl, {\n method: 'post',\n parameters: {token: token, scope: '{$scope}', scopeid: '{$scopeId}'},\n onComplete: function(transport) {\n Element.hide('loadingMask');\n statusText.innerHTML = transport.responseText;\n\n toggleDisabled(form, element);\n }\n });\n\n return false;\n }\n </script>\n "); if (!$this->helper('bronto_common')->getApiToken()) { $element->setComment('<span style="color:red;font-weight:bold">Please enter your Bronto API key here.</span>'); $buttonHtml = ""; } else { $button = $this->getLayout()->createBlock('bronto_verify/adminhtml_widget_button_runtoken')->toHtml(); $buttonHtml = "<p class=\"form-buttons\" id=\"verify-button\">{$button}</p>"; } // Show Roundtrip Install Verification Status $_html[] = $buttonHtml . '<style>' . ' #bronto-validation-status { color:grey; font-weight:bold; }' . ' #bronto-validation-status .valid { color: green; }' . ' #bronto-validation-status .invalid { color: red; }' . '</style>' . '<strong style="float: left; width: 80px">Last Status:</strong> ' . '<span id="bronto-validation-status">' . $this->helper('bronto_verify/apitoken')->getAdminScopedApitokenStatusText() . '</span>'; // Show everything Else if (!empty($_html)) { $elementHtml = $element->getElementHtml(); if ($element->getComment()) { $elementHtml .= '<p class="note"><span>' . $element->getComment() . '</span></p>'; $element->setComment(null); } $elementHtml .= '<div style="margin-top:10px">'; $elementHtml .= implode('<br />', $_html); $elementHtml .= '</div>'; return $elementHtml; } } return parent::_getElementHtml($element); }
/** * Override method to output our custom HTML with JavaScript * * @param Varien_Data_Form_Element_Abstract $element * * @return String */ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element) { $_html = array(); // Create form object to grab scope details $form = new Mage_Adminhtml_Block_System_Config_Form(); $scope = $form->getScope(); $scopeId = $form->getScopeId(); $script = "\n <span id=\"roundtrip_loadingmask\" style=\"display: none; width: 100px;\">\n <span class=\"loader\" id=\"roundtrip-loading-mask-loader\" style=\"background: url(" . $this->getSkinUrl('bronto/images/ajax-loader-tr.gif') . ") no-repeat 0 50%; background-size: 20px; padding:3px 0 3px 25px;\">" . $this->__(' Validating...') . "</span>\n <span id=\"roundtrip-loading-mask\"></span>\n </span>\n <script>\n function validateRoundtrip() {\n var statusText = \$('bronto-roundtrip-status');\n var reloadurl = '{$this->getUrl('*/roundtrip/ajaxvalidation')}';\n \n statusText.innerHTML = \$('roundtrip_loadingmask').innerHTML;\n statusText.removeClassName('valid').removeClassName('invalid');\n\n new Ajax.Request(reloadurl, {\n method: 'post',\n parameters: {scope: '{$scope}', scopeid: '{$scopeId}'},\n onComplete: function(transport) {\n Element.hide('roundtrip_loadingmask');\n if (transport.responseText == '\"Passed Verification\"') {\n statusText.innerHTML = 'Passed Verification';\n statusText.addClassName('valid');\n } else if (transport.responseText == '\"Failed Verification\"') {\n statusText.innerHTML = 'Failed Verification';\n statusText.addClassName('invalid');\n } else {\n statusText.innerHTML = 'Failed Verification';\n statusText.addClassName('invalid');\n }\n }\n });\n \n return false;\n }\n </script>\n "; $statusText = '<span style="color:grey;font-weight:bold">' . $this->helper('bronto_verify/roundtrip')->getAdminScopedRoundtripStatusText() . '</span>'; $button = $this->getLayout()->createBlock('bronto_verify/adminhtml_widget_button_runroundtrip')->toHtml(); $buttonHtml = "<p class=\"form-buttons\" id=\"roundtrip-verify-button\">{$button}</p>"; // Show Roundtrip Install Verification Status $_html[] = '<style>' . '#bronto-roundtrip-status { color:grey; font-weight:bold; }' . '#bronto-roundtrip-status.valid { color: green; }' . '#bronto-roundtrip-status.invalid { color: red; }' . '</style>' . $statusText . $buttonHtml; $_html[] = $script; // Show everything Else if (!empty($_html)) { $elementHtml = implode('<br />', $_html); return $elementHtml; } return parent::_getElementHtml($element); }
/** * Override method to output our custom HTML with JavaScript * * @param Varien_Data_Form_Element_Abstract $element * * @return String */ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element) { $_html = array(); // Create form object to grab scope details $form = new Mage_Adminhtml_Block_System_Config_Form(); $scope = $form->getScope(); $scopeId = $form->getScopeId(); $token = Mage::helper('bronto_verify/apitoken')->getApiToken(); $script = "\r\n <span id=\"loadingmask\" style=\"display: none; width: 100px;\">\r\n <span class=\"loader\" id=\"loading-mask-loader\" style=\"background: url(" . $this->getSkinUrl('bronto/images/ajax-loader-tr.gif') . ") no-repeat 0 50%; background-size: 20px; padding:3px 0 3px 25px;\">" . $this->__(' Validating...') . "</span>\r\n <span id=\"loading-mask\"></span>\r\n </span>\r\n <script>\r\n function trim1 (str) {\r\n return str.replace(/^\\s\\s*/, '').replace(/\\s\\s*\$/, '');\r\n }\r\n\r\n function validateToken() {\r\n var token = trim1('{$token}');\r\n var statusText = \$('bronto-validation-status');\r\n var reloadurl = '{$this->getUrl('*/apitoken/ajaxvalidation')}';\r\n \r\n statusText.innerHTML = \$('loadingmask').innerHTML;\r\n statusText.removeClassName('valid').removeClassName('invalid');\r\n\r\n new Ajax.Request(reloadurl, {\r\n method: 'post',\r\n parameters: {token: token, scope: '{$scope}', scopeid: '{$scopeId}'},\r\n onComplete: function(transport) {\r\n Element.hide('loadingmask');\r\n statusText.innerHTML = transport.responseText;\r\n }\r\n });\r\n \r\n return false;\r\n }\r\n </script>\r\n "; $button = $this->getLayout()->createBlock('bronto_verify/adminhtml_widget_button_runtoken')->toHtml(); $buttonHtml = "<p class=\"form-buttons\" id=\"verify-button\">{$button}</p>"; // Show API Token Verification Status $_html[] = $buttonHtml . '<style>' . ' #bronto-validation-status { color:grey; font-weight:bold; }' . ' #bronto-validation-status .valid { color: green; }' . ' #bronto-validation-status .invalid { color: red; }' . '</style>' . '<span id="bronto-validation-status">' . $this->helper('bronto_verify/apitoken')->setApiToken($token)->getAdminScopedApitokenStatusText() . '</span>'; $_html[] = $script; // Show everything Else if (!empty($_html)) { $elementHtml = implode('<br />', $_html); return $elementHtml; } return parent::_getElementHtml($element); }