Вопрос

Переопределить кнопку копировать

Добрый день, коллеги. Подскажите, пожалуйста, как переопределить кнопку копировать в реестре и определить какая именно запись была скопирована? Заранее благодарен за помощь.

Нравится

3 комментария
Лучший ответ

Данный метод отвечает за саму кнопку Копировать, само копирование реализовано в copyRecord 

getCopyRecordMenuItem: function() {
return this.getButtonMenuItem({
	Caption: {"bindTo": "Resources.Strings.CopyMenuCaption"},
	Click: {"bindTo": "copyRecord"},
	Enabled: {bindTo: "getCopyRecordMenuEnabled"},
	Visible: {bindTo: "IsEnabled"}
});
},

Сам copyRecord

copyRecord: function(editPageUId) {
	if (!this.isAnySelected()) {
		return;
	}
	var copyPageUid = this._getCopyPageUid();
	editPageUId = editPageUId || copyPageUid;
	if (!editPageUId) {
		return;
	}
	if (!this.getIsCardValid()) {
		return;
	}
	var selectedItems = this.getSelectedItems();
	var copiedRecordId = selectedItems[0];
	var isNewCard = this.getIsCardNewRecordState();
	var isCardChanged = this.getIsCardChanged();
	this.setLastActiveRow(copiedRecordId);
	if (isNewCard || isCardChanged) {
		this.set("CardState", enums.CardStateV2.COPY);
		this.set("EditPageUId", editPageUId);
		this.set("PrimaryValueUId", copiedRecordId);
		var args = {
			isSilent: true,
			messageTags: [this.sandbox.id]
		};
		this.sandbox.publish("SaveRecord", args, [this.sandbox.id]);
	} else {
		this.openCard(enums.CardStateV2.COPY, editPageUId, copiedRecordId);
	}
},

 

Данный метод отвечает за саму кнопку Копировать, само копирование реализовано в copyRecord 

getCopyRecordMenuItem: function() {
return this.getButtonMenuItem({
	Caption: {"bindTo": "Resources.Strings.CopyMenuCaption"},
	Click: {"bindTo": "copyRecord"},
	Enabled: {bindTo: "getCopyRecordMenuEnabled"},
	Visible: {bindTo: "IsEnabled"}
});
},

Сам copyRecord

copyRecord: function(editPageUId) {
	if (!this.isAnySelected()) {
		return;
	}
	var copyPageUid = this._getCopyPageUid();
	editPageUId = editPageUId || copyPageUid;
	if (!editPageUId) {
		return;
	}
	if (!this.getIsCardValid()) {
		return;
	}
	var selectedItems = this.getSelectedItems();
	var copiedRecordId = selectedItems[0];
	var isNewCard = this.getIsCardNewRecordState();
	var isCardChanged = this.getIsCardChanged();
	this.setLastActiveRow(copiedRecordId);
	if (isNewCard || isCardChanged) {
		this.set("CardState", enums.CardStateV2.COPY);
		this.set("EditPageUId", editPageUId);
		this.set("PrimaryValueUId", copiedRecordId);
		var args = {
			isSilent: true,
			messageTags: [this.sandbox.id]
		};
		this.sandbox.publish("SaveRecord", args, [this.sandbox.id]);
	} else {
		this.openCard(enums.CardStateV2.COPY, editPageUId, copiedRecordId);
	}
},

 

Литвинко Павел,

Спасибо, попробую разобраться)

 

Henkal Vadym пишет:

Литвинко Павел,

Спасибо, попробую разобраться)

Тут в принципе все должно быть понятно, если что-то конкретное нужно будет спросите, посмотреть методы, которые вызываются здесь, вы можете в BaseGridDetailV2 пакета NUI

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