Подскажите, пожалуйста, как в мобильном приложении сделать цветной реестр для секции? (AccountSection).
Нравится
Через sdk можно добавлять произвольный html код в колонки. Аналогично для справочника делается.
Terrasoft.sdk.GridPage.setPrimaryColumn("Activity", { columns: [/*колонки*/], convertFunction: function(values) { var str = "мод html код"; return str; } })
Бершеда Д. Н.,
речь идет о css стилях в html? Какого вида текст там должен быть, "<style type="text/css"> ... </style>" такого? В декстопной версии есть метод, полностью окрашивающий строку реестра, тут требуется аналогично сделать.
В мобилке нет подобного. Нужно стилями прописывать или конкретными тегами. Например, так.
<div style = "background-color: red">текст</div>
Артём, также обратите внимание на публикацию. Она довольно старая, по 7.9, указанной там схемы уже нет, но все актуально. Метод writeStyles - это утилитный метод, который не расположен в указанной схеме. Его можно использовать везде.
В современных версиях использование writeStyles есть в MobileActivityGridPageViewV2, но там это использовано не для цвета. В конце скрипта:
}, function() { Terrasoft.util.writeStyles( "#ActivityGridPage .x-navigation-panel .x-title.cf-multi-modes .x-innerhtml:after {", Terrasoft.util.getImageStyleByImageId("MobileActivityGridPageViewV2IconArrowDown"), "}" ); if (!Terrasoft.ApplicationUtils.isOnlineMode()) { Terrasoft.util.writeStyles( ".x-navigation-panel.x-toolbar .x-button.x-activity-grid-owner-button.x-button-pressing {", "opacity: 1 !important;", "}" ); } });
Ещё пример реализации есть в этой теме.
Зверев Александр,
Сделал раскраску списка контрагентов
Terrasoft.util.writeStyles(".x-unsized .x-list-item .x-list-item-tpl .x-list-item-relative {", "background-color: red !important;","}");
Но все строчки имеют такой класс...
Можно ли как-нибудь делать условия на записи (к примеру у записи OwnerId = ... то цвет зеленый, иначе белый)?
Артём, посмотрите ещё по второй ссылке, там именно этот случай.
Зверев Александр,
Спасибо, в манифесте:
"Account": { "Grid": "NavMobileAccountGridPage" ...
копирнул в NavMobileAccountGridPage
Ext.define("Terrasoft.configuration.MyList", { extend: "Ext.Terrasoft.List", xtype: "cfmylist", getApplyItemTplPrimaryColumnFn: function() { return function(values) { var config = this.primaryColumnConfig; var value = this.getValueByConfig(config, values); var typeId = values["Type"]; var isRed = false; if (typeId === "some_type_value") { isRed = true; } if (value) { return "<div class=\"x-list-title\" " + isRed ? "style=\"color: red;\"" : "" + ">" + value + "</div>"; } return ""; }; } });
и в Controller добавил:
Ext.define("AccountGridPage.Controller", { extend: "Terrasoft.controller.BaseGridPage", statics: { Model: Account }, config: { refs: { view: "#AccountGridPage" }, grid: { xtype: "cfmylist" } }, ...
Но при дебаге в getApplyItemTplPrimaryColumnFn не заходит, подскажите, пожалуйста, что нужно исправить?
Сравните с примерами аналогичной функции в стандартной схеме MobileFeedList, может, что-то забыли?