Hide Activity, Worklog, or other tabs in the Jira DC issue view screen
Platform Notice: Data Center Only - This article only applies to Atlassian apps on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Summary
While there are no official methods to hide user interface (UI) elements in Jira Data Center, we can work around this limitation in two different ways.
In this article, we hide a few of the elements (The Activity, History, or Worklog tabs) present on the issue view screen. You may require to hide all tabs except the Comment tab and this article will help for such scenarios.
Solution
Please note that the customizations mentioned in this article lie outside of Atlassian Support scope. The approach taken in this article is not recommended or supported by Atlassian. Please perform thorough testing before implementing it in your Jira instance.
There are two ways to hide UI elements. The first method modifies the Jira system's "Issue tab panels plugin." The second method injects Javascript code to hide UI elements via the Jira Announcement banner.
Modify Issue Tab Panels plugin
This system plugin allows you to selectively enable or disable modules related to the Worklog, History, and Comment tabs on the issue view screen. To edit the plugin's settings:
Navigate to Jira administration > Manage Apps
Search for "Issue Tab Panels"
In the plugin section, enable or disable the modules of your choice, as seen in the following screenshot:

Based on the configuration from the screenshot, the History and All tabs panels are disabled. Now, these two tabs won't be visible in the issue view screen:

If you want to disable the Activity tab, you can modify the JIRA Activity Stream Plugin to disable the Activity Stream Issue Tab Panel module. Disabling this module will remove the Activity tab from the issue view screen.
Inject Javascript via the Jira Announcement Banner
An alternative method is to inject Javascript code which will hide the relevant UI elements. Jira's Announcement Banner allows for this injection.
Here are the elements that correspond to the buttons in the Jira issue view:
Worklog button:
worklog-tabpanel
History button:
changehistory-tabpanel
Activity button:
activity-stream-issue-tab
All button:
all-tabpanel
Below is a sample script that will hide all of those buttons for issues in the SCRUM project. Paste it in the announcement banner and save it to implement.
<script type="module">
setTimeout(function () {
AJS.toInit(function() {
if(document.URL.indexOf("/SCRUM-") >= 0){
document.getElementById('worklog-tabpanel').style.display = 'none';
document.getElementById('changehistory-tabpanel').style.display = 'none';
document.getElementById('activity-stream-issue-tab').style.display = 'none';
document.getElementById('all-tabpanel').style.display = 'none';
}
});
}, 1000);
</script>
Please note that the above script can be modified to hide fewer buttons, or to select different projects.
Only Hide the worklog entries in the History tab
Sometimes, users may have requirement that they would want other entries in the History tab to be visible but only worklogs to be hidden. In such cases, we can completely hide the worklog tab using any of the approaches discussed above and worklog entries from History tab can be made hidden using the below script:
<script>
function hideActionContainers() {
document.querySelectorAll('td.activity-name').forEach(function(td) {
const text = td.textContent.trim();
if (text === "Time Spent" || text === "Remaining Estimate") {
const actionContainer = td.closest('.actionContainer');
if (actionContainer) {
actionContainer.style.display = 'none';
}
}
});
}
hideActionContainers();const observer = new MutationObserver(function(mutationsList) {
for (const mutation of mutationsList) {
if (mutation.type === 'childList' || mutation.type === 'subtree') {
hideActionContainers();
break;
}
}
});observer.observe(document.body, {
childList: true,
subtree: true
});
</script>
Was this helpful?