Вопрос

Copy-Paste в мобильной версии

Странная конечно задача, но нашим техникам такое надо.

На странице Наряд есть поле НомерНаряда оно установлено как не редактируемое правилом:

        let vDisabled = !!record.get("Number");//если строка не пустая - блокируем поле

        record.changeProperty("Number", {disabled: vDisabled});



Однако, есть необходимость каким-то образом скопировать номер в буфер обмена.

Возможно нужна дополнительная кнопка рядом с номером "Скопировать",

может сделать что-то типа:

Terrasoft.sdk.RecordPage.configureColumn("Case", "PrimaryColumnSet", "Number", {

    viewType: Terrasoft.ViewTypes.Url

});



и делать какую-то специальную обработку по клику на поле....



Какие есть наиболее простые варианты?

Нравится

4 комментария

По этой доке:

https://academy.terrasoft.ru/documents/technic-sdkmob/7-16/dobavlenie-elementov-upravleniya-na-stranicu-razdela



добавил пимпочку с потенциалом делать копи-паст номера или что-то еще.

Сначала эмулятор выдавал какую-то странную ошибку.

После перекомпиляции ошибка пропала, сам модуль с кнопкой загрузился, самой кнопки на экране нет, ошибок то-ж нет ?

Думаю куда рулить дальше.



Этот файл грузится под именем "ButtonCopyNumber" и я его вижу в эмуляторе.

Ext.define("Terrasoft.controls.CustomRecordPanelItem", {

    extend: "Terrasoft.RecordPanelItem",

    xtype: "cfButtonCopyNumber",

    // Конфигурационный объект создаваемого элемента.

    config: {

        items: [

            {

                xtype: "container",

                layout: "hbox",

                items: [

                    {

                        xtype: "button",

                        id: "ButtonCopyNumber",

                        text: "Number to ClipBrd",

                        flex: 1

                    }

                ]

            }

        ]

    },

    // Метод инициализирует созданный элемент и добавляет метод-обработчик нажатия кнопки.

    initialize: function() {

        var clickMeButton = Ext.getCmp("ButtonCopyNumber");

        clickMeButton.element.on("tap", this.onClickMeButtonClick, this);

    },

    // Метод-обработчик нажатия кнопки.

    onButtonCopyNumberClick: function() {

        var record = this.getRecord();

        Terrasoft.MessageBox.showMessage(record.getPrimaryDisplayColumnValue());

    }

});



Манифест:

{

    "CustomSchemas": [

        "ButtonCopyNumber"

    ],

......

        "Case": {

            "RequiredModels": [...

            ],

            "ModelExtensions": [...

            ],

            "PagesExtensions": [

                "ButtonCopyNumber",

               ....

            ]

        }



Если смотреть исходник страницы обращения, то в самом начале светится строка:

<script type="text/javascript" src="filesystem:file:///persistent/BPMonline700/AppStructure/rev_2/src/ButtonCopyNumber.js?hash=f7bebef3-15d6-4cee-8d89-17f460b123dd"></script>



Те... вроде кнопка должна быть - но нет.

Где я накосячил?

Виктор, может, лучше сделать поле не disabled, а read only? Тогда из него можно будет копировать, как из обычного. А disabled заблокировано для копирования не только в мобильной, а и в браузерной версии.

Зверев Александр,

Спасибо за совет, поменяли на ReadOnly вроде запустилось.... странновато как-то правда, не сразу въехали как этот копи-паст должен срабатывать.

Похоже что и не на всех мобилках оно работает.... пока думаем.



Но с кнопкой-то вопрос остался (она мне еще под другую задачу нужна будет).

Есть мысли что не так и куда смотреть?

По кнопке есть статья тут.

Показать все комментарии