Open Closed

Is it possible to add a link in a user friendly error which is thrown in domain or appservice ? #1582


User avatar
0
learnabp created

We want to embed a link in a userfriendlymessage message which is thrown in a AppService

how can we achive this?


9 Answer(s)
  • User Avatar
    0
    liangshiwei created
    Support Team Fullstack Developer

    Hi,

    ABP using the SweetAlert library by default. but seems SweetAlert does not support html content.

    You can use sweetAlert2 to replace it.

  • User Avatar
    0
    learnabp created

    can you please let me know how i can do this ??

  • User Avatar
    0
    liangshiwei created
    Support Team Fullstack Developer

    package.json

    {
      "version": "1.0.0",
      "name": "my-app",
      "private": true,
      "dependencies": {
        ......
        "sweetalert2": "^11.0.18"
      }
    }
    
    

    abp.resourcemapping.js

    module.exports = {
        aliases: {
    
        },
        mappings: {
            "@node_modules/sweetalert2/dist/sweetalert2.all.min.js": "@libs/sweetalert2/dist"
        }
    };
    

    Add global.js to wwwroot

    var abp = abp || {};
    
    abp.libs = abp.libs || {};
    abp.libs.sweetAlert = {
        config: {
            'default': {
    
            },
            info: {
                icon: 'info'
            },
            success: {
                icon: 'success'
            },
            warn: {
                icon: 'warning'
            },
            error: {
                icon: 'error'
            },
            confirm: {
                icon: 'warning',
                title: 'Are you sure?',
                buttons: ['Cancel', 'Yes']
            }
        }
    };
    
    var showMessage = function (type, message, title) {
        if (!title) {
            title = message;
            message = undefined;
        }
    
        var opts = $.extend(
            {},
            abp.libs.sweetAlert.config['default'],
            abp.libs.sweetAlert.config[type],
            {
                title: title,
                html: message
            }
        );
    
        return $.Deferred(function ($dfd) {
            Swal.fire(opts).then(function () {
                $dfd.resolve();
            });
            // sweetAlert(opts).then(function () {
            //     $dfd.resolve();
            // });
        });
    };
    
    abp.message.info = function (message, title) {
        return showMessage('info', message, title);
    };
    
    abp.message.success = function (message, title) {
        return showMessage('success', message, title);
    };
    
    abp.message.warn = function (message, title) {
        return showMessage('warn', message, title);
    };
    
    abp.message.error = function (message, title) {
        return showMessage('error', message, title);
    };
    
    

    WebModule

    private void ConfigureBundles()
    {
        Configure<AbpBundlingOptions>(options =>
        {
            options.StyleBundles.Configure(
                BasicThemeBundles.Styles.Global,
                bundle =>
                {
                    bundle.AddFiles("/global-styles.css");
                }
            );
            options.ScriptBundles.Configure(
                BasicThemeBundles.Scripts.Global,
                bundle =>
                {
                    bundle.AddFiles("/libs/sweetalert2/dist/sweetalert2.all.min.js");
                    bundle.AddFiles("/global.js");
                }
            );
        });
    }
    

  • User Avatar
    0
    learnabp created

    I am getting the following error and i dont see the sweetalert2.all.min.js in the folder /libs/sweetalert2/dist/sweetalert2.all.min.js

    do i have to copy it in there manually?

    AbpException: Could not find the bundle file '/libs/sweetalert2/dist/sweetalert2.all.min.js' for the bundle 'Lepton.Global'!

  • User Avatar
    0
    learnabp created

    i ran gulp and looks like its working

  • User Avatar
    0
    learnabp created

    lot of things break when using SweetAlert2

    i am getting the folowing errors

  • User Avatar
    0
    liangshiwei created
    Support Team Fullstack Developer

    I thinik this is no related to SweetAlert2

  • User Avatar
    0
    learnabp created

    I am not trying to show you that error i am trying to show you the warnings i am getting

    Unknown Parameter closeOnEsc and Unknown Paramter buttons

    problem is with the way Confirm is implemented, i have tried to implement confirm see below

    var abp = abp || {};
    
    (function ($) {
        if (!sweetAlert || !$) {
            return;
        }
    
        /* DEFAULTS *************************************************/
    
        abp.libs = abp.libs || {};
        abp.libs.sweetAlert = {
            config: {
                'default': {
    
                },
                info: {
                    icon: 'info'
                },
                success: {
                    icon: 'success'
                },
                warn: {
                    icon: 'warning'
                },
                error: {
                    icon: 'error'
                },
                confirm: {
                    icon: 'warning',
                    title: 'Are you sure?',
                    showCancelButton: true,
                    confirmButtonText: "Yes",
                    cancelButtonText: "Cancel",
                    reverseButtons: true
                    //buttons: ['Cancel', 'Yes']
                }
            }
        };
    
        /* MESSAGE **************************************************/
    
        var showMessage = function (type, message, title) {
            if (!title) {
                title = message;
                message = undefined;
            }
    
            var opts = $.extend(
                {},
                abp.libs.sweetAlert.config['default'],
                abp.libs.sweetAlert.config[type],
                {
                    title: title,
                    html: message
                }
            );
    
            return $.Deferred(function ($dfd) {
                Swal.fire(opts).then(function () {
                    $dfd.resolve();
                });
            });
        };
    
        abp.message.info = function (message, title) {
            return showMessage('info', message, title);
        };
    
        abp.message.success = function (message, title) {
            return showMessage('success', message, title);
        };
    
        abp.message.warn = function (message, title) {
            return showMessage('warn', message, title);
        };
    
        abp.message.error = function (message, title) {
            return showMessage('error', message, title);
        };
    
        abp.message.confirm = function (message, titleOrCallback, callback) {
    
            var userOpts = {
                html: message
            };
    
            if ($.isFunction(titleOrCallback)) {
                //closeOnEsc = callback;
                callback = titleOrCallback;
            } else if (titleOrCallback) {
                userOpts.title = titleOrCallback;
            };
    
           // userOpts.closeOnEsc = closeOnEsc;
    
            var opts = $.extend(
                {},
                abp.libs.sweetAlert.config['default'],
                abp.libs.sweetAlert.config.confirm,
                userOpts
            );
    
            return $.Deferred(function ($dfd) {
                Swal.fire(opts).then(function (result) {
                    callback && callback(result.isConfirmed);
                    $dfd.resolve(result.isConfirmed);
                });
            });
        };
    
        abp.event.on('aburationInitialized', function () {
            var l = abp.localization.getResource('AbpUi');
    
            abp.libs.sweetAlert.config.confirm.title = l('AreYouSure');
            abp.libs.sweetAlert.config.confirm.buttons = [l('Cancel'), l('Yes')];
        });
    
    })(jQuery);
    
  • User Avatar
    0
    liangshiwei created
    Support Team Fullstack Developer

    Hi,

    Seems it work for you. I will close the ticket, please open again if you still have problem.

Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.0.0-preview. Updated on June 20, 2025, 11:20