Высота waDialog Не принято

1

Если не ошибка, прошу подсказать где я напортачил.

Вызываю waDialog c параметрами

$(mydialog).waDialog({
	'height' : '400px',
	'width' : '660px',
	'onClose' : function(f) {
		$(this).remove;
	},
	'esc' : true,
});

Сам mydialog имеет такую структуру


<div id="wadlg_new" style="display: block;">
	<div class="dialog-content" id="db-dialog">
	<div class="block">
		<ul class="tabs" id="bf-tabs">
      		    <li class="selected" mydiv="bf1"><a href="#">Первая вкладка</a></li>
                    <li mydiv="bf2"><a href="#">Вторая вкладка</a></li>
	   	</ul>
                <div class="tab-content ">
			<div class="fieldgroup bf1" style="max-height:300px; overflow:auto;">
                             Очень длинный по вертикали бла-бла-бла
                        </div>
			<div class="fieldgroup bf2">
                             Короткий по вертикали бла-бла-бла
                        </div>
                </div>
        </div>
        </div>
        <div class="dialog-buttons">
	    <input type="submit" value="Ок" class="button blue"> или <a class="cancel" href="javascript:void(0);">отмена</a>
	</div>
</div>

Суть проблемы: при загрузке страницы и клике на элементе открывающем waDialog он открывается нормально, т.е. нормальных размеров, на активной вкладке вертикальный скролл. Но если его закрыть по ESC и открыть снова, то его размер по вертикали стремится к полному размеру div'а с длинным по вертикали содержимым. Т.е. получается что между окончанием div со скроллом (div class="fieldgroup bf1") и <div class="dialog-buttons"> возникает значительный кусок пустого пространства. Глянув в html визуально обратил внимание что между первым и вторым кликом разнится размер по высоте <div class="dialog-window">, который, как я понимаю, генерится в недрах фреймворка.

10 комментариев

  • +1
    waResearchLab waResearchLab 18 ноября 2016 14:36 #

    Нет, похоже все-таки я где-то напортачил, потому как по похожему принципу штатный waDialog (настройка столбцов в разделе Товары) отрабатывает нормально. Тему удалить не смог т.к. видимо слишком мало времени в настройках выставлено для редактирования/удаления. Но если кто навскидку увидит ошибку - буду признателен. Ну а нет - так сам поищу.

  • +1
    waResearchLab waResearchLab 18 ноября 2016 15:40 #

    И все же проблема имеет место быть. В дополнение к вышеприведенному примеру, div c очень длинным бла-бла-бла должен быть напичкан структурами вида

    <div class="field" style="display: block;">
    	<div class="name">Название</div>
    	<div class="value no-shift">
    		<input type="text" name="name">
    	</div>
    </div>

    Тогда при первом вызове высота <div class="dialog-window"> корректная, а при закрытии по ESC и последующих вызовах его высота стремится к высоте div с очень длинным бла-бла-бла.

  • +1
    info@ravencode.ru info@ravencode.ru 19 ноября 2016 13:33 #

    Eсть более удачные решения диалоговых окон да еще и с шаблонизаторами, кривой js\css от wa стараюсь использовать по минимуму т.к. пару раз попадал в подобные ситуации - исправление\поиск проблемы отнимал больше времени чем сама разработка плагина.

  • +1
    waResearchLab waResearchLab 19 ноября 2016 13:57 #

    Стараюсь поступать строго наоборот :) Если есть решение от WA - использую его. Если встречаются проблемы, которые не удается обойти - тогда да. Но таких пока не встречалось. Эта, пожалуй, первая, да и то интерфейсно порешать можно. А можно и так оставить, благо на практике такая последовательность действий не часто встречаться будет. Ну а если кто и пожалуется - на WA свалить можно ))) (про "свалить" шутка, если что) :)

    • +1
      info@ravencode.ru info@ravencode.ru 19 ноября 2016 22:14 #

      Вот и еще один баг всплыл:

      по логике если в методе waFiles::convert не указан параметр $target, то его значение должно совпадать с $file, а хрен там, а кроме того $target = $file вызывает ошибку.

      • +1
        waResearchLab waResearchLab 19 ноября 2016 22:38 #

        Да ошибок-то везде хватает. Без них не бывает. Вопрос как к ним относиться - философский, не более. Я спокойно отношусь. Не, ну иногда можно конечно психануть, слюной побрызгать. Но если только иногда, и слюней не много. Так, для профилактики :) Убежден, что грамотное, лишенное эмоциональной составляющей описание ошибки, а в идеале и ее причин, намного более действенный способ воздействия на разработчика, и, как следствие, получения нужного результата (т.е. её исправления).

        Вот только с Хабом что-то эта теория сбой дает ))))

        • +1
          info@ravencode.ru info@ravencode.ru 19 ноября 2016 22:42 #

          Ну я так понимаю Вы филосовскими копаниями в коде занимаетесь, а не зарабатыванием денег, тогда такой подход уместен.

          • 0
            waResearchLab waResearchLab 19 ноября 2016 22:58 #

            Одно другому не мешает

          • +1
            Михаил Ушенин Михаил Ушенин 21 ноября 2016 14:57 #

            Спасибо за сообщение — проверим. Но лучше в виде отдельной темы в разделе баг-репортов, пожалуйста. Просто в комментариях можем и пропустить, а не хотелось бы.

          • +1
            waResearchLab waResearchLab 19 ноября 2016 21:43 #

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

            Добавление новых комментариев к этой теме отключено.