// v 7.2.0.2 // Hide Activity Fields - With Mutation Observer app.custom.formTasks.add('ServiceRequest', null, function(formObj, viewModel){ formObj.boundReady(function () { var targetFields = [ localization.Area, localization.Priority, localization.Stage, localization.ImpactedConfigurationIte, localization.LineManagerShouldReview, localization.ApprovalThreshold + "(%)" ] fn_HideActivityFields(targetFields); }); }); app.custom.formTasks.add('Incident', null, function(formObj, viewModel){ formObj.boundReady(function () { var targetFields = [ localization.Area, localization.Priority, localization.Stage, localization.ImpactedConfigurationIte ] fn_HideActivityFields(targetFields); }); }); app.custom.formTasks.add('ChangeRequest', null, function(formObj, viewModel){ formObj.boundReady(function () { var targetFields = [ localization.Area, localization.Priority, localization.Stage, localization.ImpactedConfigurationIte, localization.LineManagerShouldReview ] fn_HideActivityFields(targetFields); }); }); function fn_HideActivityFields (fields) { //The navigation node doesn't load immediately. Get the main div that definitely exists. var mainPageNode = document.getElementById('main_wrapper'); // create an observer instance var observer = new MutationObserver(function(mutations) { //The page changed. See if our element exists yet. var activitiesNav = $("span:contains('" + localization.ActivityImplementer + "')") if(activitiesNav.length > 0){ // configure the observer and start the instance. var observerConfig = { attributes: true, childList: true, subtree: true, characterData: true }; observer.observe(mainPageNode, observerConfig); for(var i=0; i < fields.length; i++){ var label = fields[i]; var item = $("div.activity-item-form").find("label span:contains(" + label + ")"); $(item).each(function () { var ctrl = $(this).parents("div")[2]; $(ctrl).hide(); }); } // Use the following to expand the Activity Implementer field to 100% of the column $("span:contains('" + localization.ActivityImplementer + "')").parent().parent().parent().parent().css("width","100%"); observer.disconnect(); } }); // configure the observer and start the instance. var observerConfig = { attributes: true, childList: true, subtree: true, characterData: true }; observer.observe(mainPageNode, observerConfig); }