Пример #1
0
 /**
  * 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);
 }
Пример #2
0
 /**
  * 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);
 }
Пример #3
0
 /**
  * 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);
 }