Это самое странное требование, о котором я когда-либо слышал. Вы, конечно, можете это сделать, но это не имело особого смысла делать это в масштабе всей системы, поскольку один автор может чувствовать диалог одним способом, а другим совершенно другим. Единственное разумное решение - использовать javascript для изменения порядка вкладок так, как этого хочет автор, и затем сохранить настройки для этого указанного c компонента в его профиле пользователя. Вы можете начать реализовывать это, создав клиентскую библиотеку с категорией cq.authoring.dialog . В вашем JS вы должны прослушать указанное c событие загрузки диалога, как показано ниже. Я думаю, этого должно быть достаточно, и это хорошая отправная точка.
// necessary as no granite or coral ui event is triggered, when the dialog is opened
// in a fullscreen mode the dialog is opened under specific url for serving devices with low screen resolution
if (location.href.match(/mnt\/override/)) {
$(window).on('load', function(e) {
setTimeout(doSomething, 100);
});
} else {
$(document).on('dialog-ready', function(e) {
Coral.commons.ready(function(){
setTimeout(doSomething, 100);
});
});
}
Вы можете использовать granite: rel, чтобы определить специфические c идентификаторы в определении диалога и использовать их позже в пользовательских настройках. Вы можете определить события перетаскивания, используя селектор вкладок [role = "tab"] .