Как отвязать модуль !css - этот css модуль был удалён из проекта, но при замещение страница пытается его вытянуть и получаю ошибку: fused to apply style from 'http://locahost:89/0/ConnectedDetailCSS.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
Я заместил страницу, но не могу найти отвязки модуля css!ConnectedDeatailCSS
И чтоб они не наезжали друг на друга при уменьшении странички, а текст переносился бы по словам. Проще говоря как в дизайнере страницы. Но это пока утопия, сделать бы хоть что либо. Помогите...
Стоит задача расширить поле "Решение" статьи БЗ от "края до края" для мониторов с разрешением 1920x1080. В принципе можно подключить свой модуль с CSS, и указать
Вы можете переопределить базовый для нужного раздела, только укажите дополнительный селектор, чтобы не перекрыть логику ВСЕХ карточек. Например: data-item-marker="KnowledgeBasePageGeneralBlock"
Спасибо за ответ. Такой вариант почему-то не срабатывает. Я нашел немного другое решение, но в таком случае приходится задавать ширину под определенное разрешение
Здравствуйте,
Вам нужно классу grid-layout-row ts-box-sizing
Во вложенности под id KnowledgeBasePageV2KnowledgeBasePageGeneralBlockGridLayout
Сбросить стиль max-width в none;
Тогда нужное поле будет во всю ширину на любых разрешениях.
Сбросил max-width в none, теперь не нужно указывать конкретное разрешение. Приведите пожалуйста пример как переопределить свойство класса во вложенности по id? Не смог разобраться, и сделал пока так:
Извиняюсь, под #KnowledgeBasePageV2KnowledgeBasePageGeneralBlockGridLayout и нет id, так что вариант с #KnowledgeBasePageV2KnowledgeBasePageGeneralBlockGridLayout > div идеальный :twisted:
Если Вам требуется на всю ширину экрана, можете не заморачиваться с @media селекторами
Используйте специальные CSS единицы измерения Viewport Units:vw (1/100 процентное отношение к текущей ширине окна браузера) и vh (1/100 процентное отношение к текущей высоте окна браузера).
width: 100vw
В таком случае вне зависимости от размера экрана - элемент будет занимать всю доступную ширину окна, будьте внимательны с текущим значением box-sizing от чего будет зависеть будут ли в размер элемента включаться его border и margin в зависимости от этого иногда установка 100vw может привести к появлению горизонтальной полосы прокрутки, в таком случае необходимо будет или дополнительно скорректировать отсуты/границы или установить чуть меньшее значение в vw (98 - исходя из практики решает вопросы с типовыми проблемами)
Добрый день! При расположении объектов с помощью css-разметки через подключение своего модуля с соответствующим кодом возник вопрос. Необходимо двигать ActionButtonsContainer и SectionContainer находясь в новом разделе. При этом SectionContainer должен находиться справа. Переопределив SectionContainer через исходный код с BaseSectionV2 получилось сделать последнее (сделал для него "wrapClass": ["section", "right-el"]).
Но, при переходе в любой другой раздел (без перезагрузки страницы или сброса кэша) продолжает отрабатывать мой css-модуль. Т.о. в других разделах разметка ActionButtonsContainer и SectionContainer начинает "плыть".
При переопределении базовых css-классов изменения применяются ко всем элементам разметки, использующих эти классы. Для избежания необходимо в Вашем модуле определить уникальные классы и использовать их вместо базовых или совместно с базовыми, чтобы не затрагивать остальные элементы.
"Лабьяк Олег Игоревич" написал:
Для избежания необходимо в Вашем модуле определить уникальные классы и использовать их вместо базовых или совместно с базовыми, чтобы не затрагивать остальные элементы.
Олег,спасибо! Если мне нужно добавить в свой раздел модуль карты и расписания, то мне нужно в блоке diff делать insert соответствующих объектов и указывать в свойстве "values" какие мне угодно значения в поле "wrapClass"?
Рассмотрим пример, как можно легко и просто поменять css-стили в bpm'online. Например, нам необходимо изменить цвет левой панели с разделами.
Большинство css-стилей в bpm'online 7.3 и выше вынесены в отдельный модуль - CommonCSSV2. Кроме стилей в нем ничего нет, поэтому его легко заместить, чтобы поменять какие-либо из базовых стилей.
Для того, чтобы понять, какие стили применяются к тем или иным компонентам можно воспользоваться консолью браузера и сразу попробовать применить другие стили:
Попробуем изменить цвет:
Уже неплохо, но хотелось бы также поменять и цвета элементов списка. Вот они:
Итак, определились, какие css-классы нужно менять:
Добрый день! Хочу поделиться опытом работы с JS в проектах на bpm’online 5. Статья будет полезна тем, кто не знает с какой стороны подойти к этому вопросу и с чего начать. Умение работать с JS применительно к bpm’online открывает богатые возможности настройки функциональности. В статье будет рассмотрено:
как добавлять js-скрипты на страницы bpm’online
как подписываться на события "onclick", "onkeydown" и пр.
как генерировать сигналы для страницы
показан пример использования jQuery
использование js-библиотек
Основы
Добавление JS скрипта на страницу выполняется с помощью метода:
Page.AddScript(string script)
Добавим на «страницу карточки задачи» кнопку и напишем код обработки:
Page.AddScript("alert('Hello!')");
В результате нажатия на кнопку произойдёт следующее:
Чтобы упростить себе жизнь и не мучиться с экранированием символов, текст JS-скрипта в исходном виде можно записать в параметр бизнес-процесса.
А затем добавить скрипт, передавая в качестве текста скрипта параметр JS_FirstScript:
Page.AddScript(JS_FirstScript);
Немного модифицируем этот способ: в параметр JS_FirstScript запишем:
alert('%message%');
Добавим в Usings пространство имен System.Text.RegularExpressions
В коде пишем:
После нажатия на нашу красную кнопку, на страницу добавятся обработчики нажатия кнопок «Стрелка влево» и «Стрелка вправо». Нажимая на стрелки, получаем:
Само собой, если добавить этот скрипт в "Init", то обработчики появятся уже после открытия страницы.
Пример №2
Добавим обработку клика по изображению. Дизайнер bpm'online не позволяет добавить обработчик события «click» на элемент «Область изображения», но мы можем сделать это с помощью JS. Добавим картинку на страницу:
Мы будем искать html-элемент этой картинки по id, поэтому посмотрим на него:
Для того, чтобы не изобретать велосипеды, у нас есть возможность использовать JQuery в своем коде. Причём, JQuery уже добавлен в ресурсы страницы. На момент написания статьи, обычно это jQuery v1.7.1
Приведу пример анимации с помощью jQuery.
Добавим в процесс параметр «scriptAnimation». Пишем его значение:
В результате, при нажатии на изображение, оно будет сдвигаться влево на 100 пикселей и постепенно исчезать. После чего начнётся обратная анимация.
Изменив id элемента в параметре «scriptAnimation», можно подвигать, например, поле ввода автора активности:
Добавление библиотек JS на страницу
Что делать, если нам нужно подключить какой-то js-код, который просто неприлично в нормальном обществе засовывать в параметр процесса? Рассмотрим на примере добавления маски ввода к текстовому полю.
Добавим на страницу текстовое поле, назовём его MaskedTextEdit
Все круто, только не понял, почему для обращения к TextEdit'у с клиента Вы используете свойтсво "ClientID", а для картинки смотрите ее Id в HTML-коде.
Думаю, что оптимальнее везде использовать ClientID.
Добрый день, Андрей!
На то это и примеры, чтобы показать все способы получения идентификатора. Например, понадобилось вдруг нам подвигать какое-нибудь поле, то тут ClientID нам не поможет:
Получив ClientID = PageContainer_HouseCategoryEdit мы будем двигать только текст контрола, в то время как "прямоугольник" контрола будет стоять на месте. Чтобы двигать прямоугольник, нам нужно посмотреть его Id в html:
т.е. нам нужен id div'а, а именно "ext-gen1052", или вообще "ext-gen1070", чтобы подвигать поле вместе с меткой.
Евгений, в таком случае это будет довольно небезопасно, так как после внесения изменений в дизайн страницы автогенерируемый Id уже может быть не тот_) Думаю, если нужно двигать весь контрол, то его можно поместить в контейнер и двигать контейнер. Хотя, я не пробовал, могу ошибаться.
Доброго времени суток! Есть задача расположить 2 элемента управления в одну строку: поле справочника "Страна" и булево "Резидент" в карточке модуля (наподобие элементов напоминания автору и ответственному в активности). CSS-правило для этого не проблема, проблема в другом - где его расположить, ведь в схеме карточки css'ы не хранятся. Замещать только ради этого CardModule - не вариант. Пробовал создать свой модуль, в котором определил нужные правила. В нужной карточке подгружаю его
sandbox.loadModule('MyUtilsModule');
НО! оказалось тоже не выход - при первой загрузке все отлично, но если зайти в эту же карточку 2й раз либо в дизайнер страницы - элемент теряет правило, и начинает отображаться правильно лишь после перезагрузки страницы.
Каким образом можно решить проблему?
Добрый день!
К сожалению на текущий момент не существует возможности расшаривать стили или добавлять стили в схему карточки редактирования.
Реализация данного функционала в планах.
Этим способом я изначально пробовал сделать, когда создавал схему карточки - итог нулевой.
Ну скажем так, для контрола нулевой, для группы - все прекрасно.
this.bindings."имя элемента, для которого нужно применить стили"={
styles:{
wrapStyle:{float:'right'}}}
итог - inline-стиль элемента.
Вариант, конечно, кривоват и удобен, если только нужно "накинуть" 1-2 правила на 1-2 элемента, но все же имеет место жить