динамически заполнять конфиг javascript, администратор фляги. - PullRequest
0 голосов
/ 21 декабря 2018

Хотите знать, если есть возможность динамически изменить JavaScript или HTML-файл в зависимости от того, кто вошел в систему?Это фляга админ-сервер.Я хочу заполнить свой конфигурационный файл javascript ckeditor именем пользователя или адресом электронной почты, чтобы использовать его.

https://ckeditor.com/cke4/addon/lite

Так что я могу назначить автора изменений в ckeditor тем, кто вошел в систему.в. В настоящее время я могу установить его в шаблоне страниц администратора, используя этот код:

   CKEDITOR.on('instanceCreated', function (event) {
        var editor = event.editor,
            element = editor.element;
            editor.on('configLoaded', function () {
                var conf = CKEDITOR.config;
                var lt = conf.lite = conf.lite || {};
                lt.isTracking = true;
                lt.userName = "John";
                lt.userId = 2;
                lt.tooltipTemplate = "%a by- %u  ,Time:  %d-%m-%yy: (%t)";

            });
    });

Я хочу изменить it.userName на любого, кто вошел в систему.

Спасибо.

1 Ответ

0 голосов
/ 14 января 2019

Вы должны передать эти данные из вашего представления в сценарий.

В вашем классе представления переопределить шаблон редактирования, сделайте то же самое для создания шаблона, если вы встраиваете свой редактор там:

    class MyView(ModelView):
        edit_template = "my_edit.html"
        create_template = "my_create.html"

Код шаблона:

    {# extend base edit template #}
    {% extends 'admin/model/edit.html' %}
    {# to extend base create template - use 'admin/model/edit.html' above #}
    {% block tail_js %}
        {# print your data before scripts output, assign to window object #}
        {# presume you are using Flask-Login, it exposes current_user to the view #}
           window.APP_USER_NAME = "{{ current_user.name }}";
        {# print the rest of scripts #}
        {{ super() }}
    {% endblock %}

Теперь вы можете получить доступ к имени из скрипта:

   CKEDITOR.on('instanceCreated', function (event) {
        var editor = event.editor,
            element = editor.element;
            editor.on('configLoaded', function () {
                var conf = CKEDITOR.config;
                var lt = conf.lite = conf.lite || {};
                lt.isTracking = true;
                lt.userName = window.APP_USER_NAME;
                lt.userId = 2;
                lt.tooltipTemplate = "%a by- %u  ,Time:  %d-%m-%yy: (%t)";

            });
    });
...