<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">var CM_FORM = '';
var CM_SEND_BTN = '';
var CM_RECEIVERS_NUM = 0;
var CM_MESSAGES_PORTION = 10; // Кол-во сообщений, отправляемых за раз (порция отправки)

// вызывает диалог редактирование новостей в ленте
function unkms_webcore_edit_news(_options) {
    if ($('.unkms-dialog').length &gt; 0)
        return false;

    var options = $.extend({
        rootpath: "~/",        
        newsId: 0, // идентификатор редактируемой новости
        url: "",
        title: "Редактирование новости",
        redirectPage: "Index",  // страница, на которую необходимо перенаправиться после сохранения результатов
        pageNum: null, // для пейджинга ленты новостей
        language: {
            ButtonSaveName: "Сохранить", //Наименование кнопки Сохранить            
            ButtonCancelName: "Отмена"
        },        
        fnOnEscape: null // fnOnEscape() - функция, которая вызывается перед закрытием диалога редактирования.        
    }, _options);    
     
    var dlg = bootbox.dialog({
        show: false,
        closeButton: false,
        className: "unkms-dialog",
        message: '&lt;div id="NewsEditModalContainer"&gt;'
            //+ '&lt;div class="waitcounter" style="text-align:center;"&gt;&lt;img src="' + options.rootpath + 'Content/Images/loader_small.gif"))" /&gt;Подождите, идёт загрузка...&lt;/div&gt;'
            + '&lt;div class="waitcounter text-center"&gt;&lt;i class="fa fa-spin fa-spinner"&gt;&lt;/i&gt; ' + jQuery.i18n.prop('msg_app_loading') + '&lt;/div&gt;'
            + '&lt;/div&gt;',
        size: 'large',
        title: '&lt;div class="pull-left"&gt;' + options.title + '&lt;/div&gt;&lt;div class="pull-right"&gt;&lt;button type="button" onclick="fn_OnSaveNewsBtClick(' + options.pageNum + ', \'' + options.redirectPage + '\');" class="btn blue-hoki btn-unkms btnSaveNews btn-primary"&gt;Сохранить&lt;/button&gt;' +
            '&lt;button type="button" onclick="fn_OnNewsEditCloseBtClick();" class="btn btClose blue-hoki btn-unkms"&gt;Отмена&lt;/button&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;',
        buttons: {
            main: {
                label: options.language.ButtonSaveName,
                className: "btnSaveNews blue-hoki btn-unkms btn-primary",
                callback: function () {
                    fn_OnSaveNewsBtClick(options.pageNum, options.redirectPage);
                }
            },
            cancel: {
                label: options.language.ButtonCancelName,
                className: "blue-hoki btn-unkms btn-cancel",
                callback: function () {

                }
            }
        }
    });

    dlg.on("show.bs.modal", function () {
        $("div.modal-dialog", $(this)).css("width", "95%");
    });

    dlg.on("shown.bs.modal", function () {
        doDialogDraggable();
        $.post(options.url, { Id: options.newsId }, function (data) {
            $('#NewsEditModalContainer', dlg).html(data);
            dlg.off("shown.bs.modal");
        }, "html");
    });
    
    dlg.modal('show');    
}

function unkms_webcore_stopBubble(event) {
    event = event || window.event // кросс-браузерно
    if (event.stopPropagation) {
        // Вариант стандарта W3C:
        event.stopPropagation()
    } else {
        // Вариант Internet Explorer:
        event.cancelBubble = true
    }

}

function fn_OnSaveNewsBtClick(pageNum, redirectPage) {
    var jpanel = $("#NewsEditForm");
    //$("#inputText").val($(".SummernoteNewsEditor", jpanel).code());
    $("#inputText").val($(".SummernoteNewsEditor", jpanel).summernote('code'));
    jpanel.append('&lt;input type="text" name="redirectPage" id="redirectPage" value="' + redirectPage + '" hidden /&gt;');
    if (pageNum != null)
        jpanel.append('&lt;input type="text" name="pageNum" id="pageNum" value="' + pageNum + '" hidden /&gt;');    
    // Дата важности публикации
    if ($(".dtCheckbox", jpanel).hasClass("checked")) {
        var date = $(".dateComponent").val() || "";
        var time = $(".timeComponent").val() || "";
        if (date &gt; "") {            
            // добавить проверки на date и time
            jpanel.append('&lt;input type="text" name="DateImportant" id="DateImportant" value="' + (date + " " + time) + '" hidden /&gt;');
        }
    }
    jpanel.submit();
}

function fn_OnNewsEditCloseBtClick() {
    $('.unkms-dialog').remove();
    return false;
}

function unkms_webcore_show_user_info(_url, user_id) {
    var postfix = Date.now();
    var contetSelector = 'html-dialog-'+postfix;
    var HtmlDlg = bootbox.dialog({
        message: '&lt;div id="'+contetSelector+'"&gt;'
        //+ '&lt;div class="text-center"&gt;&lt;img src="' + rootpath + 'Content/Images/loader_small.gif"))" /&gt;' + jQuery.i18n.prop('msg_app_loading') + '&lt;/div&gt;'
        + '&lt;div class="text-center"&gt;&lt;i class="fa fa-spin fa-spinner"&gt;&lt;/i&gt; ' + jQuery.i18n.prop('msg_app_loading') + '&lt;/div&gt;'
        + '&lt;/div&gt;',
        title: jQuery.i18n.prop('head_user_info_modal'),
        className: "unkms-dialog",
        buttons: {
            cancel: {
                label: jQuery.i18n.prop('btn_close'),
                className: "blue-hoki btn-cancel btn-unkms"
            }
        }
    });
    HtmlDlg.modal('show');

    var ajaxData = "";
    HtmlDlg.on("shown.bs.modal", function () {
        doDialogDraggable();
        $.ajax({
            url: _url,
            data: { UserId: user_id },
            success: function (data) {
                ajaxData = data;
            },
            error: function (xhr) {
                ajaxData = jQuery.i18n.prop('msg_app_loading_error', xhr.status, xhr.statusText);
            },
            complete: function (data) {
                $('#' + contetSelector, HtmlDlg).html(ajaxData);
            }
        });
    });
}

function unkms_webcore_show_user_infov2(user_id) {
    unkms_webapp_dialog({
        title: jQuery.i18n.prop('head_user_info_modal'),
        url: APP_ROOT_URL + 'CoreUser/UserInfoModal',
        params: { UserId: user_id },
        size: null,
        buttons: {
            cancel: {
                label: jQuery.i18n.prop('btn_close'),
                className: "blue-hoki btn-cancel btn-unkms"
            }
        }
    });
}

// открыть всплывающий диалог авторизации
function unkms_webcore_open_logon(redirectUrl) {

    var doLoginCallback = function () {
        // берем форму из LogOnDiv
        var $loginForm = $("#loginForm");
        // всё содержимое модального окна
        var $modalContent = $loginForm.closest(".modal-content");

        unkms_webapp_block_element($modalContent);
        $.ajax({
            type: "POST",
            dataType: "json",
            url: APP_ROOT_URL + 'CoreAccount/LogOnAjax',
            data: $loginForm.serialize(),
            success: function (response) {
                if (response.result) {
                    //unkms_webapp_notie_append('info', response.msg);
                    // перенаправляем на нужную страницу
                    if (typeof redirectUrl != 'undefined' &amp;&amp; redirectUrl != '') {
                        unkms_webapp_redirect(redirectUrl);
                    } else {
                        unkms_webapp_redirect(APP_ROOT_URL);
                    }
                } else {
                    unkms_webapp_notie_append('error', response.msg);
                    unkms_webapp_unblock_element($modalContent);
                }
            },
            error: function (xhr) {
                unkms_webapp_notie_append('error', xhr.status + ". " + xhr.statusText);
                unkms_webapp_unblock_element($modalContent);
            },
            //complete: function () {
            //    unkms_webapp_unblock_element($modalContent);
            //}
        });
        // stops modal from closing
        return false;
    }
    unkms_webapp_dialog({
        title: jQuery.i18n.prop('head_logon_modal'),
        url: APP_ROOT_URL + 'CoreAccount/LogOnDiv',
        params: { inJS: true },
        size: null,
        ownActionElement: '#loginForm', // идентификатор элемента в диалоге, по событию ownActionEvent у которого выполнится функция ownActionFunc
        ownActionEvent: "keydown",
        ownActionFunc: function (e) {
            if (e.which == 13) {
                doLoginCallback();
                $(e.target).blur();
            }
        },
        buttons: {
            main: {
                label: jQuery.i18n.prop('btn_login'),
                className: "btn-unkms",
                callback: doLoginCallback
            }
        }
    });
}

// открыть всплывающий диалог с формой поддержки пользователей
function unkms_webcore_open_support() {
    unkms_webapp_dialog({
        title: jQuery.i18n.prop('head_support_modal'),//'@("MENU.CORE.SUPPORT".I18nGet())',
        url: APP_ROOT_URL + 'Core/SupportDialog',
        ownActionElement: '#SupportSend #DialogActionRun',
        ownActionEvent: 'change',
        ownActionCloseDlg: true,
        size: 'large'
    });
}

// открыть всплывающий диалог с указанной новостью
function unkms_webcore_open_news(id) {
    if (typeof id != 'undefined' &amp;&amp; id &gt; 0) {
        unkms_webapp_dialog({
            title: jQuery.i18n.prop('head_news_modal'),//'@("MENU.CORE.SUPPORT".I18nGet())',
            url: APP_ROOT_URL + 'CoreNews/NewsViewDialog',
            params: { Id: id },
            size: null
        });
    }
}

// диалог удаления документа из ДБЗ
function unkms_web_core_remove_doc(id, title, catId, fromCat) {
    unkms_webapp_dialog({
        title: title,
        url: APP_ROOT_URL + 'Catalog/DocReferenceDiv',
        params: {
            Id: id,
            ContainerId: catId,
            fromCat: fromCat
        },
        size: 'null'
    });
}

// вызов диалога редактирования элемента справочника "Дисциплины"
function unkms_webcore_db_dsp_edit(id, structureId, func) {
    unkms_webapp_dialog({
        title: jQuery.i18n.prop('CORE_DB_DSP_EDIT_DLG'),
        url: APP_ROOT_URL + 'CoreDb/AdminDSPEditDiv',
        params: {
            Id: id,
            StructureId: structureId,
            isAjax: true
        },
        size: 'null',
        ownActionElement: '#core-db-dsp-form #DialogActionRun',
        ownActionEvent: 'change',
        ownActionFunc: func,
        ownActionCloseDlg: true
    });
}

// сохранение изменений для элемента справочника "Дисциплины"
function unkms_webcore_db_dsp_update($form) {
    unkms_webapp_block_element($form);
    $.ajax({
        url: APP_ROOT_URL + 'CoreDb/AdminDSPEditAjax',
        method: 'POST',
        data: $form.serialize(),
        success: function (response) {
            if (response.success) {
                unkms_webapp_notie_append("info", response.msg);
                $('#DialogActionRun', $form).trigger('change');
            } else {
                unkms_webapp_notie_append("error", response.msg);
            }
        },
        error: function (xhr) {
            unkms_webapp_notie_append("error", jQuery.i18n.prop('msg_app_loading_error', xhr.status, xhr.statusText));
        },
        complete: function (data) {
            unkms_webapp_unblock_element($form);
        }
    });
}

// добавить получателей в список пользователей для отправки сообщения
function unkms_webcore_send_message_add_receivers(uIds, uNames) {
    var $form = $(CM_FORM);
    //Запоминаем имя-&gt;id
    for (var i = 0; i &lt; uIds.length; i++) {
        $("#MessageReceivers", $form).append($("&lt;option&gt;&lt;/option&gt;").attr("value", uIds[i]).text(uNames[i]));
    }
    $("#MessageReceivers", $form).select2();
}

// добавить получателей в список пользователей для отправки сообщения и выбрать их
function unkms_webcore_send_message_select_receivers(uIds, uNames) {
    var $form = $(CM_FORM);
    //Запоминаем имя-&gt;id
    for (var i = 0; i &lt; uIds.length; i++) {
        $("#MessageReceivers", $form).append($("&lt;option selected&gt;&lt;/option&gt;").attr("value", uIds[i]).text(uNames[i]));
    }
    $("#MessageReceivers", $form).select2();
}

// отправка сообщений
function unkms_webcore_send_messages() {
    var $form = $(CM_FORM);
    var $sendBtn = $(CM_SEND_BTN, $form);
    $sendBtn.prop("disabled", true);

    var recievers = [];
    $("#MessageReceivers &gt; option:selected", $form).each(function () {
        recievers.push($(this).val());
    });

    if (
        (recievers.length == 0 &amp;&amp; $("#Groups", $form).val() == "")
        ||
        $('textarea[name="Body"]', $form).val() == "" || $("#Caption", $form).val() == ""
    ) {
        //Выводим уведомление
        unkms_webapp_notie_append("error", jQuery.i18n.prop('CORE_MSG_FILL_ALL_FIELDS'));
        $sendBtn.prop("disabled", false);
        return;
    }

    $('#sending', $form).show(150);
    $('#sending-progress', $form).show(150);
    $.ajax({
        type: "post",
        url: APP_ROOT_URL + "CoreMessage/SendAjax",
        data: new FormData($form[0]),
        processData: false,
        contentType: false,
        success: function (response) {
            if (response.success) {
                CM_RECEIVERS_NUM = response.number;
                unkms_webcore_send_message_portion(0, CM_MESSAGES_PORTION);
            } else {
                unkms_webcore_send_message_hide_progress();
                $sendBtn.prop("disabled", false);
                unkms_webapp_notie_append('error', response.msg);
            }
        },
        error: function (xhr) {
            unkms_webcore_send_message_hide_progress();
            $sendBtn.prop("disabled", false);
            unkms_webapp_notie_append('error', xhr.status + ". " + xhr.statusText);
        }
    });
}

// отправка порции сообщений
function unkms_webcore_send_message_portion(from, number) {
    $.ajax({
        type: "post",
        url: APP_ROOT_URL + "CoreMessage/SendPartsAjax",
        data: { From: from, Number: number },
        asynch: false,
        success: function (response) {
            if (response.status == "info") {
                if (response.finish) {
                    unkms_webcore_send_message_hide_progress();
                    unkms_webapp_notie_append(response.status, response.msg);
                    var $form = $(CM_FORM);
                    $("#DialogActionRun", $form).trigger('change');
                    $(CM_SEND_BTN, $form).prop("disabled", false);
                }else{
                    unkms_webcore_send_message_portion(from + number, number);
                }
                $('.progress-bar', $form).css("width", 100 * (from + number) / CM_RECEIVERS_NUM + "%");
            }else{
                unkms_webcore_send_message_hide_progress();
                unkms_webapp_notie_append('error', response.msg);
            }
        },
        error: function (xhr) {
            unkms_webcore_send_message_hide_progress();
            unkms_webapp_notie_append('error', xhr.status + ". " + xhr.statusText);
        }
    });
}

// работа с прогрессом отправки сообщений (скрыть по завершению)
function unkms_webcore_send_message_hide_progress() {
    var $form = $(CM_FORM);
    $('#sending', $form).hide(150);
    $('#sending-progress', $form).hide(150);
    $('.progress-bar', $form).css("width", "0%");
    $('#MessageSend', $form).prop("disabled", false);
}

// отображение портлета новостей в одну строку
function unkms_webbcore_news_one_row_formatter(value, row, index) {
    var result = '&lt;i class="fa fa-star-o fa-2x icon-portlet-news"&gt;&lt;/i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;';
    result += '&lt;label class="label label-default label-news-title"&gt;' + row.name + '&lt;/label&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;';
    result += '&lt;a href="javascript:;"&gt;' + jQuery.i18n.prop('CORE_NEWS_READ_MORE') + '&lt;/a&gt;';
    return result;
}
function unkms_webcore_dateFormatter(value, row, index, options) {
    var _format = (options == null || options == "") ? 'dd/MM/yyyy' : options;
    return ('{0:df(' + _format + ')}').format(value);
}
function unkms_webcore_jsonDateFormatter(value, row, index, options) {
    var d = new Date(parseInt(value.substring(6), 10));
    return unkms_webcore_dateFormatter(d, row, index, options);
}
</pre></body></html>