abp.sweet-alert.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  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, options) {
  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. options
  53. );
  54. return $.Deferred(function ($dfd) {
  55. sweetAlert(opts).then(function () {
  56. $dfd.resolve();
  57. });
  58. });
  59. };
  60. abp.message.info = function (message, title, isHtml, options) {
  61. return showMessage('info', message, title, isHtml, options);
  62. };
  63. abp.message.success = function (message, title, isHtml, options) {
  64. return showMessage('success', message, title, isHtml, options);
  65. };
  66. abp.message.warn = function (message, title, isHtml, options) {
  67. return showMessage('warn', message, title, isHtml, options);
  68. };
  69. abp.message.error = function (message, title, isHtml, options) {
  70. return showMessage('error', message, title, isHtml, options);
  71. };
  72. abp.message.confirm = function (message, titleOrCallback, callback, isHtml, options) {
  73. var messageContent;
  74. if (isHtml) {
  75. var el = document.createElement('div');
  76. el.innerHTML = message;
  77. messageContent = {
  78. content: el
  79. }
  80. } else {
  81. messageContent = {
  82. text: message
  83. }
  84. }
  85. if ($.isFunction(titleOrCallback)) {
  86. callback = titleOrCallback;
  87. } else if (titleOrCallback) {
  88. messageContent.title = titleOrCallback;
  89. };
  90. var opts = $.extend(
  91. {},
  92. abp.libs.sweetAlert.config['default'],
  93. abp.libs.sweetAlert.config.confirm,
  94. messageContent,
  95. options
  96. );
  97. return $.Deferred(function ($dfd) {
  98. sweetAlert(opts).then(function (isConfirmed) {
  99. callback && callback(isConfirmed);
  100. $dfd.resolve(isConfirmed);
  101. });
  102. });
  103. };
  104. abp.event.on('abp.dynamicScriptsInitialized', function () {
  105. abp.libs.sweetAlert.config.confirm.title = abp.localization.abpWeb('AreYouSure');
  106. abp.libs.sweetAlert.config.confirm.buttons = [abp.localization.abpWeb('Cancel'), abp.localization.abpWeb('Yes')];
  107. });
  108. })(jQuery);