Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 
 

76 строки
2.0 KiB

  1. /**
  2. * Copyright © Magento, Inc. All rights reserved.
  3. * See COPYING.txt for license details.
  4. */
  5. /**
  6. * @api
  7. */
  8. define([
  9. 'jquery',
  10. 'Magento_Ui/js/modal/alert',
  11. 'jquery/ui'
  12. ], function ($, alert) {
  13. 'use strict';
  14. $.widget('mage.testConnection', {
  15. options: {
  16. url: '',
  17. elementId: '',
  18. successText: '',
  19. failedText: '',
  20. fieldMapping: ''
  21. },
  22. /**
  23. * Bind handlers to events
  24. */
  25. _create: function () {
  26. this._on({
  27. 'click': $.proxy(this._connect, this)
  28. });
  29. },
  30. /**
  31. * Method triggers an AJAX request to check search engine connection
  32. * @private
  33. */
  34. _connect: function () {
  35. var result = this.options.failedText,
  36. element = $('#' + this.options.elementId),
  37. self = this,
  38. params = {},
  39. msg = '',
  40. fieldToCheck = this.options.fieldToCheck || 'success';
  41. element.removeClass('success').addClass('fail');
  42. $.each(JSON.parse(this.options.fieldMapping), function (key, el) {
  43. params[key] = $('#' + el).val();
  44. });
  45. $.ajax({
  46. url: this.options.url,
  47. showLoader: true,
  48. data: params,
  49. headers: this.options.headers || {}
  50. }).done(function (response) {
  51. if (response[fieldToCheck]) {
  52. element.removeClass('fail').addClass('success');
  53. result = self.options.successText;
  54. } else {
  55. msg = response.errorMessage;
  56. if (msg) {
  57. alert({
  58. content: msg
  59. });
  60. }
  61. }
  62. }).always(function () {
  63. $('#' + self.options.elementId + '_result').text(result);
  64. });
  65. }
  66. });
  67. return $.mage.testConnection;
  68. });