LaravelRUS / SleepingOwlAdmin

🦉 Administrative interface builder for Laravel (Laravel admin)
http://sleepingowladmin.ru/
MIT License
800 stars 216 forks source link

AdminColumnEditable::text #689

Closed mavsan closed 7 years ago

mavsan commented 7 years ago

Версия в композере

"laravelrus/sleepingowl": "4.*@dev" вот эта версия, если быть точным

Что надо сделать что бы увидеть ошибку?

  1. В секции $display = AdminDisplay::datatables();
  2. Где-то в описании столбцов AdminColumnEditable::text('column', 'Label'),

Что должно сработать?

  1. В таблице в соответствующем поле при клике по значению должен появиться блок с возможностью изменить значение.

Что сработало?

  1. Выглядит вот так: image

  2. При клике по полю иногда выглядит вот так (иногда только 1 блок появляется): image

Что не сработало?

  1. В базу новое значение не было сохранено.

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

  1. Увы, до этого не дошло, достаточно таблицу определить вот так: AdminDisplay::datatablesAsync(). С другими типами не пробовал, только AdminDisplay::datatables() (не работает) и AdminDisplay::datatablesAsync().
ghost commented 7 years ago

@mavsan расписывай как добавляешь - лунатик на всех браузерах потестил - все ок.

mavsan commented 7 years ago

Ubuntu chrome, более нигде не тестировал. composer update, обновление ассетов прописано в composer.json, на всякий случай вручную запустил (после того, как увидел это дело). Нажал Ctrl+F5, результат тот-же. После этого полез в демо, там работает. Скачал, посмотрел исходники, там AdminDisplay::datatablesAsync(), а у меня - AdminDisplay::datatables(), поменял - все стало отлично. Вот и создал issue.

mavsan commented 7 years ago

Вот, сейчас опять сделал AdminDisplay::datatables() и потестил на Opera и Mozilla (все для linux) Mozilla: image Еще бывает так: image

Opera: image

image

mavsan commented 7 years ago

Вот так - не верно работает:

public function onDisplay()
    {
        $display = AdminDisplay::datatables();

        $display->setColumns([
            AdminColumn::link('title', 'Заголовок'),
            AdminColumn::custom('Раздел',
                function (\Illuminate\Database\Eloquent\Model $model) {

                    switch ($model->position) {
                        case 'about':
                            $data = 'О нас';
                            break;

                        case 'buyers':
                            $data = 'Покупателям';
                            break;

                        default:
                            $data = 'ошибка';
                    }

                    return $data;
                }),
            AdminColumnEditable::text('sort',
                'Сортировка вывода в пределах раздела'),
            AdminColumn::text('uri', 'Ссылка'),
        ]);

        return $display;
    }

А вот так - верно:

public function onDisplay()
    {
        $display = AdminDisplay::datatablesAsync();

        $display->setColumns([
            AdminColumn::link('title', 'Заголовок'),
            AdminColumn::custom('Раздел',
                function (\Illuminate\Database\Eloquent\Model $model) {

                    switch ($model->position) {
                        case 'about':
                            $data = 'О нас';
                            break;

                        case 'buyers':
                            $data = 'Покупателям';
                            break;

                        default:
                            $data = 'ошибка';
                    }

                    return $data;
                }),
            AdminColumnEditable::text('sort',
                'Сортировка вывода в пределах раздела'),
            AdminColumn::text('uri', 'Ссылка'),
        ]);

        return $display;
    }

image

mavsan commented 7 years ago

На всякий случай исходник в браузере: image

Lunatig commented 7 years ago

опа. так откуда на td нападает класс editable. вот и причина засора

mavsan commented 7 years ago

@Lunatig, я не добавлял, оно само! :)

Lunatig commented 7 years ago

не. эт мой косяк. я поправлю.

Lunatig commented 7 years ago

@mavsan то есть учитывая что сейчас datatables алиас datatablesAsync проблема больше не появляется ?

ghost commented 7 years ago

d5767d29c82c5272efbb временно пофиксили вот этим коммитом.

mavsan commented 7 years ago

Прикольно: "временно пофиксили", т.е. когда решат вернуть datatables - кто-то тоже отловится?.. Ну да ладно, хозяин-барин, хотя я такого не понимаю.

ghost commented 7 years ago

@mavsan я думаю что datatables простые - не вернутся уже никогда.