Вопрос

Разноцветные записи реестра в мобильном приложении

Подскажите, пожалуйста, как в мобильном приложении сделать цветной реестр для секции? (AccountSection).

Нравится

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

Через sdk можно добавлять произвольный html код в колонки. Аналогично для справочника делается.

Terrasoft.sdk.GridPage.setPrimaryColumn("Activity", {
	columns: [/*колонки*/],
	convertFunction: function(values) {
		var str = "мод html код";
		return str;
	}
})

 

Бершеда Д. Н.,

речь идет о css стилях в html? Какого вида текст там должен быть, "<style type="text/css"> ... </style>" такого? В декстопной версии есть метод, полностью окрашивающий строку реестра, тут требуется аналогично сделать.

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

&lt;div style = "background-color: red"&gt;текст&lt;/div&gt;

 

Артём, также обратите внимание на публикацию. Она довольно старая, по 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 "&lt;div class=\"x-list-title\" " + isRed ? "style=\"color: red;\"" : "" + "&gt;" + value + "&lt;/div&gt;";
         }
         return "";
      };
   }
 
});

и в Controller добавил:

Ext.define("AccountGridPage.Controller", {
	extend: "Terrasoft.controller.BaseGridPage",
	statics: {
		Model: Account
	},
	config: {
		refs: {
			view: "#AccountGridPage"
		},
       	grid: {
       	  	xtype: "cfmylist"
      	}
	},
...

Но при дебаге в getApplyItemTplPrimaryColumnFn не заходит, подскажите, пожалуйста, что нужно исправить?

Сравните с примерами аналогичной функции в стандартной схеме MobileFeedList, может, что-то забыли?

Показать все комментарии