Вопрос

Добрый день. Нужно переопределить(заместить схему)метода генерации данных кнопок.

Добрый день.

Нужно переопределить(или заместить схему) метода генерации данных кнопок в секции для наложения дополнительной логики.

Подскажите где генерируются данные кнопки?

Прикрепленные файлы

У меня такой же вопрос

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

Все намного проще, обычно определяется (меняется в diff)

{
        "operation": "merge",
        "name": "DataGrid",
        "values": {
                "activeRowAction": {"bindTo": "onActiveRowAction"},
                "activeRowActions": [
                        {
                                "className": "Terrasoft.Button",
                                "style":this.Terrasoft.controls.ButtonEnums.style.BLUE,
                                "markerValue": "myButtonAction",
                                "tag": "myAction",
                                "caption": "MyButton"
                        }
                ]
        }
}

Подробнее тут

Григорий Чех пишет:

Григорий Чех у меня нет цели засорять код дифтами.

У меня будет 100 секций в которой будет такая же задача и я буду в каждой дифт делать? 

Мне проще заместить схему и внести свою логику.

Казанцев, 

см в ConfigurationGrid метод renderRowActions

Но его нет при генерации секции

Этот метод перебирает значения из массива activeRowActions:

  renderRowActions: function(renderTo, id) {
   var rowActions = Ext.clone(this.activeRowActions);
   var self = this;
   var isGridEnabled = this.model.get("IsEnabled");
 
   function actionHandler() {
    self.onActionItemClick(this.tag, id);
   }
 
   for (var i = 0, c = rowActions.length; i < c; i += 1) {
    var action = rowActions[i];
    if (isGridEnabled === false && action.tag !== "card") {
     continue;
    }
    action = Ext.apply({}, action, {
     renderTo: renderTo,
     handler: actionHandler,
     classes: {
      wrapperClass: ["configuration-grid-action-button"]
     }
    });
    var actionItem = Ext.create(action.className, action);
    var selectedViewModel = this.getActiveRowViewModel(id);
    actionItem.bind(selectedViewModel);
    actionItem.setEnabled(this.enabled);
    this.actionItems.push(actionItem);
   }
  },

Соответственно, в схемах с дополнительными кнопками в него добавляются элементы. Например, в схеме ContactOpenCasesDetail:

{
	"operation": "merge",
	"name": "DataGrid",
	"values": {
		"activeRowAction": {"bindTo": "onActiveRowAction"},
		"activeRowActions": []
	}
},
{
	"operation": "insert",
	"name": "OpenRecordButton",
	"parentName": "DataGrid",
	"propertyName": "activeRowActions",
	"values": {
		"className": "Terrasoft.Button",
		"style": Terrasoft.controls.ButtonEnums.style.BLUE,
		//TODO localizablestring
		"caption": "Open",//{ "bindTo": "Resources.Strings.OpenButtonCaption"},
		"tag": "open"
	}
},
{
	"operation": "insert",
	"name": "MergeRecordButton",
	"parentName": "DataGrid",
	"propertyName": "activeRowActions",
	"values": {
		"className": "Terrasoft.Button",
		"style": Terrasoft.controls.ButtonEnums.style.GREY,
		//TODO localizablestring
		"caption": "Merge doubles",//{ "bindTo": "Resources.Strings.MergeCaption"},
		"tag": "merge"
	}
}

 

Войдите или зарегистрируйтесь, чтобы комментировать