Goal
Extend the Classic UI create page dialog to create & open in scaffolding view. A similar post on extending the dialog to provide create & viewis here
Demo | Package Install
Solution
1) Login to CRXDE Lite, create folder (nt:folder) /apps/create-page-open-scaffolding-view
2) Create clientlib (type cq:ClientLibraryFolder) /apps/create-page-open-scaffolding-view/clientlib and set a property categories of String type to cq.widgets
3) Create file ( type nt:file ) /apps/create-page-open-scaffolding-view/clientlib/js.txt, add the following
open.js
4) Create file ( type nt:file ) /apps/create-page-open-scaffolding-view/clientlib/open.js, add the following code
(function(){
var cqCreatePageDialog = CQ.wcm.Page.getCreatePageDialog;
CQ.wcm.Page.getCreatePageDialog = function(parentPath){
var dialog = cqCreatePageDialog(parentPath);
var panel = dialog.findBy(function(comp){
return comp["jcr:primaryType"] == "cq:Panel";
}, dialog);
if(!panel || panel.length == 0){
return;
}
dialog.buttons.splice(0,0,new CQ.Ext.Button( {
text: "Scaffolding View",
width: 140,
tooltip: 'Create page and open in scaffolding view',
handler: function(button){
dialog.ok(button, function(form, resp){
try{
var text = resp.response.responseText;
var loc = text.substring(text.indexOf("\"", text.indexOf("href=")) + 1);
loc = "/cf#" + loc.substr(0, loc.indexOf("\"")) + ".scaffolding.html";
window.location = loc;
}catch(err){
console.log("page create and scaffolding view - error parsing html response");
}
});
}}
));
return dialog;
}
})();