abp.sweet-alert.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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, callback, options) {
  33. options = options || {};
  34. var messageContent = {};
  35. if(title){
  36. messageContent.title = title;
  37. }
  38. if (options.isHtml) {
  39. var el = document.createElement('div');
  40. //https://github.com/t4t5/sweetalert/issues/842
  41. el.style = 'position: relative;';
  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 (isConfirmed) {
  56. callback && callback(isConfirmed);
  57. $dfd.resolve(isConfirmed);
  58. });
  59. });
  60. };
  61. abp.message.info = function (message, title, options) {
  62. return showMessage('info', message, title, null, options);
  63. };
  64. abp.message.success = function (message, title, options) {
  65. return showMessage('success', message, title, null, options);
  66. };
  67. abp.message.warn = function (message, title, options) {
  68. return showMessage('warn', message, title, null, options);
  69. };
  70. abp.message.error = function (message, title, options) {
  71. return showMessage('error', message, title, null, options);
  72. };
  73. abp.message.confirm = function (message, title, callback, options) {
  74. return showMessage('confirm', message, title, callback, options);
  75. };
  76. abp.event.on('abp.dynamicScriptsInitialized', function () {
  77. abp.libs.sweetAlert.config.confirm.title = abp.localization.abpWeb('AreYouSure');
  78. abp.libs.sweetAlert.config.confirm.buttons = [abp.localization.abpWeb('Cancel'), abp.localization.abpWeb('Yes')];
  79. });
  80. })(jQuery);