Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Плагин "Table". Не работает редактирование таблицы. #121

Open
Stuyev opened this issue Jan 30, 2018 · 15 comments
Labels

Comments

@Stuyev
Copy link

Stuyev commented Jan 30, 2018

Добрый день.
Возникла необходимость в плагине "table". Таблица добавляется , с указанным кол-вом строк и колонок, но в дальнейшем при необходимости добавить или удалить поле (любая функция редактирования ) возникает ошибка :

Uncaught TypeError: $table.size is not a function
at init.getTable (table.js:267)
at init.addRow (table.js:399)
at init.addRowAbove (table.js:383)
at init.onClickCallback (eval at (redactor.min.js:12), :1:27037)
at init.onClick (eval at (redactor.min.js:12), :1:26954)
at init.eval (eval at (redactor.min.js:12), :1:56498)
at HTMLAnchorElement.proxy (jquery.js:496)
at HTMLAnchorElement.dispatch (jquery.js:5206)
at HTMLAnchorElement.elemData.handle (jquery.js:5014)
eror

@Stuyev
Copy link
Author

Stuyev commented Jan 30, 2018

Нашел решение. Может кому понадобится.
В файле table.js

  1. $table.size() заменяем на $table.length
    Далее почти всё работает отлично, кроме добавления заголовка.
  2. В функции add head:
    if ($table.find('thead').size() !== 0) заменяем на if ($table.find('thead').length !=0)
    Так же убрал удаление this.table.deleteHead(); при повторном добавлении заголовка.

3.В функции removehead:
if ($thead.size() === 0) return; заменил на if (!$thead) return;

@vova07
Copy link
Owner

vova07 commented Jan 30, 2018

Спасибо @Stuyev !
Я попробую на днях подготовить фикс по вашему коду.

@vova07 vova07 added the bug label Jan 30, 2018
@sinergycode
Copy link

Добрый день.
Если не сложно скажите как подключить в Yii2 плагин TABLE.
До этого момента в AppAsset добавил:
public $js = [
'js/table.min.js'
]
также добавил и скаченный файл js в указанную выше папку.
А дальше не знаю что делать...

@vova07
Copy link
Owner

vova07 commented Mar 19, 2018

Приветствую @sinergycode !
Ниже самый минимальный код для того чтобы подключить плагин таблиц:

# some-view.php

<?= \vova07\imperavi\Widget::widget([
    'name' => 'redactor',
    'settings' => [
        'plugins' => ['table'],
    ],
]); ?>

Ничего кроме виджета редактировать не надо.

Надеюсь комментарий будет для вас полезен!

@sinergycode
Copy link

Работает, БЛАГОДАРЮ!

@sinergycode
Copy link

sinergycode commented Mar 20, 2018

Уважаемый @vova07 скажите пожалуйста как найти информацию по поводу вывода таблицы в виде (CRUD: index.php, view.php).
Если нужно оформлять таблицу в виде через css, то скажите как при помощи " 'options' => [ " или других настроек присваивать таблице class.

@vova07
Copy link
Owner

vova07 commented Mar 20, 2018

@sinergycode приветствую!
Если честно я не уверен что понял вашего вопроса.

Вы хотите использовать таблицу редактора для вывода данных из базы и непосредственное редактирование этих данных внутри таблицы?

Можете либо перефразировать, либо привести какой-то скриншот для примера.

Спасибо!

@sinergycode
Copy link

Спасибо за ответ:
Далее скриншот:

vova

Пользуюсь моментом хотел бы спросить еще как сделать редактор фиксированным (т.е. при прокрутке страницы, чтобы редактор оставалься на месте),

@vova07
Copy link
Owner

vova07 commented Mar 20, 2018

Из приведенного скрина могу предположить что вы в БД сохраняете только текст без HTML тэгов, из-за этого в момент редактирования ваша модель подставляет обычный текст вместо полного HTML что и приводит к такому результату. (Пока другой причины я не могу придумать ибо проверил на локалке в своем тестовом проекте и все работает как предполагается) (Хочу заметить что сам редактор не требует классы бустрапа или сторонних библиотек чтобы рендерить корректно простую таблицу)

Касательно фиксированного редактора если вы подразумеваете вот это: https://imperavi.com/redactor/examples/toolbars/fixed-top-offset/ то подобный результат можно получить таким кодом:

# some-view.php

<?= \vova07\imperavi\Widget::widget([
    'name' => 'redactor',
    'settings' => [
        'toolbarFixedTopOffset' => 100,
    ],
]); ?>

Для справки полная документация по старой версии редактора можно найти вот здесь: https://imperavi.com/assets/pdf/redactor-documentation-10.pdf

@sinergycode
Copy link

sinergycode commented Mar 20, 2018

Спасибо за toolbarFixedTopOffset, очень удобно.

На счет сохранения в базе данных: сохраняется корректно (table tr td ...).
Чтобы решить данную проблему в css написал стили для td: border и padding.
Если найду проблему напишу.

Спасибо!

@vova07
Copy link
Owner

vova07 commented Mar 20, 2018

Тогда проблема в ваших CSS стилях.
Вероятнее всего у вас редактор находится в блоке который наследует стили перекрывающие дефолтное оформление редактора.
Попробуйте временно отключить глобальные стили и проверить результат в редакторе, если что-то изменится то вы нашли источник, если нет то надо будет копать дальше.
Удачи!

@sinergycode
Copy link

sinergycode commented Mar 20, 2018

Сделал как вы сказали, буду копать дальше... Спасибо!

@sinergycode
Copy link

Добрый день
@vova07,
@Stuyev

Сделал изменения в table.js,
но в консоли остались те же ошибки (table.size уже нету, а ошибка на него есть).
Скажите пожалуйста что еще надо сделать чтобы заработало?

@vova07
Copy link
Owner

vova07 commented Mar 29, 2018

Добрый день @sinergycode !
К сожалению я еще не смотрел этот баг очень плотно, и подсказать точно что еще надо сделать не могу.
Вроде по словам @Stuyev он привел примеры которые надо подправить.

@temirfe
Copy link

temirfe commented Jan 8, 2019

2. length

До сих пор не исправили

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants