Confluence has been updated to version 6.15.9

Page tree
Skip to end of metadata
Go to start of metadata


Grid Rows Count
import com.atlassian.crowd.embedded.api.User
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.security.JiraAuthenticationContext
import com.atlassian.plugin.PluginAccessor
import com.atlassian.jira.user.ApplicationUser
  
// get an issue
IssueManager issueManager = ComponentAccessor.getOSGiComponentInstanceOfType(IssueManager.class);
Issue issue = issueManager.getIssueObject("TEST-1");
  
// find TGE custom fields
PluginAccessor pluginAccessor = ComponentAccessor.getPluginAccessor();
Class tgeConfigManagerClass = pluginAccessor.getClassLoader().findClass("com.idalko.jira.plugins.igrid.api.config.grid.TGEGridConfigManager");
def tgeConfigManager = ComponentAccessor.getOSGiComponentInstanceOfType(tgeConfigManagerClass);
List<Long> tgeCustomFieldIds = tgeConfigManager.getGridCustomFieldIds();
  
// get current user
JiraAuthenticationContext jiraAuthenticationContext = ComponentAccessor.getOSGiComponentInstanceOfType(JiraAuthenticationContext.class);
Object userObject = jiraAuthenticationContext.getLoggedInUser();
User user = userObject instanceof ApplicationUser ? ((ApplicationUser) userObject).getDirectoryUser() : (User) userObject;
  
// get row count
Class dataManagerClass = pluginAccessor.getClassLoader().findClass("com.idalko.jira.plugins.igrid.api.data.TGEGridTableDataManager");
def tgeGridDataManager = ComponentAccessor.getOSGiComponentInstanceOfType(dataManagerClass);
  
StringBuilder result = new StringBuilder();
result.append(tgeCustomFieldIds.size() + " TGE field found. Their configuration:\n");
for (Long tgeFieldId : tgeCustomFieldIds) {
  
    def rowCount = tgeGridDataManager.getRowCount(null, tgeFieldId, user);
    result.append("Grid ID=" + tgeFieldId + " has " + rowCount + " row(s) across all issues\n");
  
    try {
        rowCount = tgeGridDataManager.getRowCount(issue.getId(), tgeFieldId, user);
        result.append("TEST-1 issue has " + rowCount + " row(s) in grid ID=" + tgeFieldId + "\n");
    } catch (Exception e) {
        result.append("Rows of grid with ID=" + tgeFieldId + " cannot be counted: " + e.getMessage() + "\n");
    }
    result.append("\n");
}
  
println(result.toString());
return result.toString();
  • No labels