abp.sweet-alert.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. var abp = abp || {};
  2. (function ($) {
  3. if (!sweetAlert || !$) {
  4. return;
  5. }
  6. /* DEFAULTS *************************************************/
  7. abp.libs = abp.libs || {};
  8. abp.libs.sweetAlert = {
  9. config: {
  10. 'default': {
  11. },
  12. info: {
  13. icon: 'info'
  14. },
  15. success: {
  16. icon: 'success'
  17. },
  18. warn: {
  19. icon: 'warning'
  20. },
  21. error: {
  22. icon: 'error'
  23. },
  24. confirm: {
  25. icon: 'warning',
  26. title: 'Are you sure?',
  27. buttons: ['Cancel', 'Yes']
  28. }
  29. }
  30. };
  31. /* MESSAGE **************************************************/
  32. var showMessage = function (type, message, title, isHtml) {
  33. if (!title) {
  34. title = message;
  35. message = undefined;
  36. }
  37. var messageContent = {
  38. title: title
  39. };
  40. if (isHtml) {
  41. var el = document.createElement('div');
  42. el.innerHTML = message;
  43. messageContent.content = el;
  44. } else {
  45. messageContent.text = message;
  46. }
  47. var opts = $.extend(
  48. {},
  49. abp.libs.sweetAlert.config['default'],
  50. abp.libs.sweetAlert.config[type],
  51. messageContent
  52. );
  53. return $.Deferred(function ($dfd) {
  54. sweetAlert(opts).then(function () {
  55. $dfd.resolve();
  56. });
  57. });
  58. };
  59. abp.message.info = function (message, title, isHtml) {
  60. return showMessage('info', message, title, isHtml);
  61. };
  62. abp.message.success = function (message, title, isHtml) {
  63. return showMessage('success', message, title, isHtml);
  64. };
  65. abp.message.warn = function (message, title, isHtml) {
  66. return showMessage('warn', message, title, isHtml);
  67. };
  68. abp.message.error = function (message, title, isHtml) {
  69. return showMessage('error', message, title, isHtml);
  70. };
  71. abp.message.confirm = function (message, titleOrCallback, callback, isHtml) {
  72. var messageContent;
  73. if (isHtml) {
  74. var el = document.createElement('div');
  75. el.innerHTML = message;
  76. messageContent = {
  77. content: el
  78. }
  79. } else {
  80. messageContent = {
  81. text: message
  82. }
  83. }
  84. if ($.isFunction(titleOrCallback)) {
  85. callback = titleOrCallback;
  86. } else if (titleOrCallback) {
  87. messageContent.title = titleOrCallback;
  88. };
  89. var opts = $.extend(
  90. {},
  91. abp.libs.sweetAlert.config['default'],
  92. abp.libs.sweetAlert.config.confirm,
  93. messageContent
  94. );
  95. return $.Deferred(function ($dfd) {
  96. sweetAlert(opts).then(function (isConfirmed) {
  97. if (isConfirmed) {
  98. $('button.swal2-confirm').prop('disabled', true);
  99. setTimeout(() => { $('button.swal2-confirm').prop('disabled', false); }, 2000);
  100. }
  101. callback && callback(isConfirmed);
  102. $dfd.resolve(isConfirmed);
  103. });
  104. });
  105. };
  106. abp.event.on('abp.dynamicScriptsInitialized', function () {
  107. abp.libs.sweetAlert.config.confirm.title = abp.localization.abpWeb('AreYouSure');
  108. abp.libs.sweetAlert.config.confirm.buttons = [abp.localization.abpWeb('Cancel'), abp.localization.abpWeb('Yes')];
  109. });
  110. })(jQuery);