Полезности под рукой: Приятные SharePoint уведомления для пользователя

Очень часто при работе над проектом, сталкиваешься с необходимостью уведомлять пользователя и в большинстве случаев мы используем SP.UI.Notify.addNotification("ТЕКСТ сообщения") и для того чтобы сказать пользователю что мы думаем SP.UI.Notify.showLoadingNotification() с ним все в порядке, но для первого вариант есть хорошая альтернатива, класс SP.UI.Notify.Notification




Из интересного:

В конструкторе данного класса Notification, можно передавать onclickHandler и вешать дополнительную логику на клик по уведомлению и кастомизировать.

Можете воспользоваться функцией (для примера) ниже, чтобы сразу посмотреть в действие данные уведомления. Только не забудьте положить свои картинки на типы уведомления в папку images на вашем SPWeb.

var logger=logger||{};
logger = function () {
        var logName = "UI Notification", log = function (message, showNotification) {
            writeLog(message, showNotification, "info");
        }, logError = function (message, showNotification) {
            writeLog(message, showNotification, "error");
        }, logSuccess = function (message, showNotification) {
            writeLog(message, showNotification, "success");
        }, logWarning = function (message, showNotification) {
            writeLog(message, showNotification, "warning");
        }, logWithCallback = function (message, showNotification, clickHandler) {
            writeLogWithCallback(message, showNotification, "info", clickHandler);
        }, logErrorWithCallback = function (message, showNotification, clickHandler) {
            writeLogWithCallback(message, showNotification, "error", clickHandler);
        }, logSuccessWithCallback = function (message, showNotification, clickHandler) {
            writeLogWithCallback(message, showNotification, "success", clickHandler);
        }, logWarningWithCallback = function (message, showNotification, clickHandler) {
            writeLogWithCallback(message, showNotification, "warning", clickHandler);
        }, writeLog = function (message, showNotification, notificationType) {
            var iconUrl, notificationTitle = "";
            showNotification = showNotification || true;
            if (showNotification) {
                if (notificationType === 'info') {
                    iconUrl = _spPageContextInfo.webAbsoluteUrl + "/images/info.png";
                    notificationTitle = logName + ": INFO";
                }
                else if (notificationType === 'error') {
                    iconUrl = _spPageContextInfo.webAbsoluteUrl + "/images/error.png";
                    notificationTitle = logName + ": ERROR";
                }
                else if (notificationType === 'warning') {
                    iconUrl = _spPageContextInfo.webAbsoluteUrl + "/images/warning.png";
                    notificationTitle = logName + ": WARNING";
                }
                else if (notificationType === 'success') {
                    iconUrl = _spPageContextInfo.webAbsoluteUrl + "/images/success.png";
                    notificationTitle = logName;
                }
                var notificationData = new SPStatusNotificationData("", STSHtmlEncode(message), iconUrl, null);
                var notification = new SP.UI.Notify.Notification(SPNotifications.ContainerID.Status, STSHtmlEncode(notificationTitle), false, null, null, notificationData);
                notification.Show(false);
            }
        }, writeLogWithCallback = function (message, showNotification, notificationType, clickHandler) {
            var iconUrl, notificationTitle = "";
            showNotification = showNotification || true;
            if (showNotification) {
                if (notificationType === 'info') {
                    iconUrl = _spPageContextInfo.webAbsoluteUrl + "/images/info.png";
                    notificationTitle = logName + ": INFO";
                }
                else if (notificationType === 'error') {
                    iconUrl = _spPageContextInfo.webAbsoluteUrl + "/images/error.png";
                    notificationTitle = logName + ": ERROR";
                }
                else if (notificationType === 'warning') {
                    iconUrl = _spPageContextInfo.webAbsoluteUrl + "/images/warning.png";
                    notificationTitle = logName + ": WARNING";
                }
                else if (notificationType === 'success') {
                    iconUrl = _spPageContextInfo.webAbsoluteUrl + "/images/success.png";
                    notificationTitle = logName;
                }
                var notificationData = new SPStatusNotificationData("", STSHtmlEncode(message), iconUrl, null);
                var notification = new SP.UI.Notify.Notification(SPNotifications.ContainerID.Status, STSHtmlEncode(notificationTitle), false, null, clickHandler, notificationData);
                notification.Show(false);
            }
        };
        return {
            log: log,
            logError: logError,
            logSuccess: logSuccess,
            logWarning: logWarning,
            logWithCallback: logWithCallback,
            logErrorWithCallback: logErrorWithCallback,
            logSuccessWithCallback: logSuccessWithCallback,
            logWarningWithCallback: logWarningWithCallback
        };
    }();

Хороших проектов! =)

Комментарии

  1. PlayOJO Casino & Sportsbook Promo Codes | JtmHub
    JTV is 경산 출장안마 the world's 광주광역 출장마사지 leading casino and sports betting operator 오산 출장마사지 with over 700 slots, 포항 출장마사지 bingo, poker, blackjack, 용인 출장마사지 bingo and live dealer games.

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

Полезности под рукой: Отправка писем при помощи REST API в SharePoint 2013