Fix Form sections and Home pages for iService
// FIX HOMEPAGES
var portalPageRec = new GlideRecord('sys_portal_page');
// portalPageRec.addEncodedQuery('sys_name=ITIL Homepage^sys_domain=d9d371ad84d2c90020a7674064f0011c');
portalPageRec.addEncodedQuery('sys_domain!=global');
portalPageRec.query();
while (portalPageRec.next()) {
gs.print('Title: ' + portalPageRec.title + ': View: ' + portalPageRec.view.getDisplayValue() + ' Domain: ' + portalPageRec.sys_domain.getDisplayValue());
var portalRec = new GlideRecord('sys_portal');
portalRec.addQuery('page', portalPageRec.sys_id);
// portalRec.addQuery('element', '!=', 'activity.xml');
// portalRec.addNullQuery('sys_domain');
portalRec.query();
while (portalRec.next()) {
gs.print('No domain for dropzone: ' + portalRec.dropzone + ': Offset' + portalRec.offset + ' Domain: ' + portalRec.sys_domain.getDisplayValue());
portalRec.sys_domain = portalPageRec.sys_domain;
portalRec.update();
var portalPreferencesRec = new GlideRecord('sys_portal_preferences');
portalPreferencesRec.addQuery('portal_section', portalRec.sys_id);
portalPreferencesRec.query();
while (portalPreferencesRec.next()) {
portalPreferencesRec.sys_domain = portalPageRec.sys_domain;
gs.print('No domain for portal pref: ' + portalPreferencesRec.name + ' Domain: ' + portalPreferencesRec.sys_domain.getDisplayValue());
portalPreferencesRec.update();
}
}
}
// FIX FORM SECTIONS
var domains = ['Codan','Callista','eftpos','FrankstonToyota','GoldC','Grocon','Ideal','Intalock','Rexel HA','Yusen'];
var tables = ['task_sla'];
for (domain in domains) {
var dr = new GlideRecord('u_domain');
if (dr.get('name', domains[domain])) {
for (table in tables) {
gs.print('Domain: ' + dr.name + ' Table: ' + tables[table]);
// Check if there is a form section for this table
var fs = new GlideRecord('sys_ui_section');
fs.addQuery('sys_domain', dr.sys_id);
fs.addQuery('name', tables[table]);
fs.addQuery('view.tile', 'Default view');
fs.query();
if (!fs.next()) {
gs.print('No form section found');
getGlobalFormSection(tables[table], dr.sys_id, dr.name);
} else {
gs.print('Form section found');
}
}
}
}
function getGlobalFormSection(_table, _domain, _domainName) {
var fs = new GlideRecord('sys_ui_section');
fs.addQuery('sys_domain', 'global');
fs.addQuery('name', _table);
fs.addQuery('view.tile', 'Default view');
fs.query();
if (fs.next()) {
gs.print('Global form section found');
var newFS = new GlideRecord('sys_ui_section');
newFS.newRecord();
newFS.caption = fs.caption;
newFS.header = fs.header;
newFS.name = fs.name;
newFS.roles = fs.roles;
newFS.sys_domain = _domain;
newFS.sys_user = fs.sys_user;
newFS.title = fs.title;
newFS.view = fs.view;
newFS.view_name = fs.view_name;
var id = newFS.insert();
gs.print('Created form section for ' + _domainName);
var fseRec = new GlideRecord('sys_ui_element');
fseRec.addQuery('sys_ui_section', fs.sys_id);
fseRec.query();
while (fseRec.next()) {
var newfseRec = new GlideRecord('sys_ui_element');
newfseRec.newRecord();
newfseRec.element = fseRec.element;
newfseRec.position = fseRec.position;
newfseRec.sys_ui_formatter = fseRec.sys_ui_formatter;
newfseRec.sys_ui_section = id;
newfseRec.sys_user = fseRec.sys_user;
newfseRec.type = fseRec.type;
newfseRec.sys_domain = _domain;
newfseRec.insert();
}
}
}
// FIX EMPTY FORM SECTIONS (no fields)
var uiSectionRec = new GlideRecord('sys_ui_section');
// uiSectionRec.addEncodedQuery('caption=Closure details^name=incident^sys_domain=2afef8856870e4802e2ee30c674239e1');
uiSectionRec.addEncodedQuery('sys_domain!=global');
uiSectionRec.query();
while (uiSectionRec.next()) {
gs.print('Table: ' + uiSectionRec.name + ': Caption' + uiSectionRec.caption + ' View: ' + uiSectionRec.view.getDisplayValue() + ' ' + uiSectionRec.sys_domain.getDisplayValue());
var uiElementRec = new GlideRecord('sys_ui_element');
uiElementRec.addQuery('sys_ui_section', uiSectionRec.sys_id);
uiElementRec.addQuery('element', '!=', 'activity.xml');
uiElementRec.addNullQuery('sys_domain');
uiElementRec.query();
while (uiElementRec.next()) {
gs.print('No domain for element: ' + uiElementRec.element + ': ' + uiElementRec.position + ' Domain: ' + uiElementRec.sys_domain.getDisplayValue());
uiElementRec.sys_domain = uiSectionRec.sys_domain;
uiElementRec.update();
}
}