- Created by svitlana (Deactivated), last modified by Artem Ohanjanyan (Deactivated) on Mar 06, 2020
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 16 Next »
JAVA API for the Table Grid Next Generation
Check the javadoc for TGNG JAVA API.
JAVA API Examples
readFieldData usage example Expand source
// This script reads all data from a Grid custom field with default // configuration named "API sample" in issue TEST-1 import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.CustomFieldManager import com.atlassian.jira.issue.Issue import com.atlassian.jira.issue.IssueManager import com.atlassian.jira.issue.fields.CustomField import com.atlassian.plugin.PluginAccessor import com.atlassian.jira.user.ApplicationUser // Get issue id IssueManager issueManager = ComponentAccessor.getOSGiComponentInstanceOfType(IssueManager.class) Issue issue = issueManager.getIssueObject("TEST-1") Long issueId = issue.getId() // Get TGNG custom field id CustomFieldManager customFieldManager = ComponentAccessor.getOSGiComponentInstanceOfType(CustomFieldManager.class) CustomField tgngCustomField = customFieldManager.getCustomFieldObjectsByName("API sample").get(0) Long tgngCustomFieldId = tgngCustomField.getIdAsLong() ApplicationUser user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser() // Get GridService PluginAccessor pluginAccessor = ComponentAccessor.getPluginAccessor() Class apiServiceClass = pluginAccessor.getClassLoader().findClass("com.idalko.tgng.jira.server.api.GridService") def gridService = ComponentAccessor.getOSGiComponentInstanceOfType(apiServiceClass) // Read field data def fieldData = gridService.readFieldData(issueId, tgngCustomFieldId, user, null) def gridRows = fieldData.getRows() StringBuilder result = new StringBuilder() for (row in gridRows) { def columns = row.getColumns() result.append("Order: ${columns.get("jseq")}, ") result.append("Summary: ${columns.get("jsummary")}, ") def assignee = columns.get("jassignee") result.append("Assignee: ${assignee == null ? "null" : assignee.get("username")}, ") result.append("Status: ${columns.get("jstatus")};<br>") } return result
addRows usage example Expand source
// This script adds two rows to Grid custom field with default configuration // named "API sample" in issue TEST-1 import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.CustomFieldManager import com.atlassian.jira.issue.Issue import com.atlassian.jira.issue.IssueManager import com.atlassian.jira.issue.fields.CustomField import com.atlassian.plugin.PluginAccessor import com.atlassian.jira.user.ApplicationUser // Get issue id IssueManager issueManager = ComponentAccessor.getOSGiComponentInstanceOfType(IssueManager.class) Issue issue = issueManager.getIssueObject("TEST-1") Long issueId = issue.getId() // Get TGNG custom field id CustomFieldManager customFieldManager = ComponentAccessor.getOSGiComponentInstanceOfType(CustomFieldManager.class) CustomField tgngCustomField = customFieldManager.getCustomFieldObjectsByName("API sample").get(0) Long tgngCustomFieldId = tgngCustomField.getIdAsLong() ApplicationUser user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser() // Get GridService PluginAccessor pluginAccessor = ComponentAccessor.getPluginAccessor() Class apiServiceClass = pluginAccessor.getClassLoader().findClass("com.idalko.tgng.jira.server.api.GridService") def gridService = ComponentAccessor.getOSGiComponentInstanceOfType(apiServiceClass) // Add a row // Only "key" is required for userlist columns gridService.addRows(issueId, tgngCustomFieldId, user, [ ["jsummary": "Buy groceries", "jassignee": ["key": user.getKey()], "jstatus": "Open"], ["jsummary": "Plan vacation", "jassignee": ["key": user.getKey()], "jstatus": "In Progress"] ])
updateRows usage example Expand source
// This script moves all rows assigned to a current user in status "In Review" // to status "Closed" in a Grid custom field with default configuration named // "API sample" in issue TEST-1 import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.CustomFieldManager import com.atlassian.jira.issue.Issue import com.atlassian.jira.issue.IssueManager import com.atlassian.jira.issue.fields.CustomField import com.atlassian.plugin.PluginAccessor import com.atlassian.jira.user.ApplicationUser // Get issue id IssueManager issueManager = ComponentAccessor.getOSGiComponentInstanceOfType(IssueManager.class) Issue issue = issueManager.getIssueObject("TEST-1") Long issueId = issue.getId() // Get TGNG custom field id CustomFieldManager customFieldManager = ComponentAccessor.getOSGiComponentInstanceOfType(CustomFieldManager.class) CustomField tgngCustomField = customFieldManager.getCustomFieldObjectsByName("API sample").get(0) Long tgngCustomFieldId = tgngCustomField.getIdAsLong() ApplicationUser user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser() // Get GridService PluginAccessor pluginAccessor = ComponentAccessor.getPluginAccessor() Class apiServiceClass = pluginAccessor.getClassLoader().findClass("com.idalko.tgng.jira.server.api.GridService") def gridService = ComponentAccessor.getOSGiComponentInstanceOfType(apiServiceClass) // Get GridRow class Class gridRowClass = pluginAccessor.getClassLoader().findClass("com.idalko.tgng.jira.server.api.GridRow") // Read field data def fieldData = gridService.readFieldData(issueId, tgngCustomFieldId, user, null) def gridRows = fieldData.getRows() // Update rows def updates = new ArrayList() for (row in gridRows) { def columns = row.getColumns() def assignee = columns.get("jassignee") if (assignee != null && assignee.get("key") == user.getKey() && columns.get("jstatus") == "In Review") { def update = gridRowClass.newInstance() update.setRowId(row.getRowId()) // We need to specify only the columns which are being updated update.setColumns(["jstatus": "Closed"]) updates.add(update) } } gridService.updateRows(issueId, tgngCustomFieldId, user, updates)
deleteRows usage example Expand source
// This script deletes all rows assigned to a current user in status "Closed" in // a Grid custom field with default configuration named "API sample" in issue // TEST-1 import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.CustomFieldManager import com.atlassian.jira.issue.Issue import com.atlassian.jira.issue.IssueManager import com.atlassian.jira.issue.fields.CustomField import com.atlassian.plugin.PluginAccessor import com.atlassian.jira.user.ApplicationUser // Get issue id IssueManager issueManager = ComponentAccessor.getOSGiComponentInstanceOfType(IssueManager.class) Issue issue = issueManager.getIssueObject("TEST-1") Long issueId = issue.getId() // Get TGNG custom field id CustomFieldManager customFieldManager = ComponentAccessor.getOSGiComponentInstanceOfType(CustomFieldManager.class) CustomField tgngCustomField = customFieldManager.getCustomFieldObjectsByName("API sample").get(0) Long tgngCustomFieldId = tgngCustomField.getIdAsLong() ApplicationUser user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser() // Get GridService PluginAccessor pluginAccessor = ComponentAccessor.getPluginAccessor() Class apiServiceClass = pluginAccessor.getClassLoader().findClass("com.idalko.tgng.jira.server.api.GridService") def gridService = ComponentAccessor.getOSGiComponentInstanceOfType(apiServiceClass) // Read field data def fieldData = gridService.readFieldData(issueId, tgngCustomFieldId, user, null) def gridRows = fieldData.getRows() // Ids of rows to delete def toDelete = new ArrayList() for (row in gridRows) { def columns = row.getColumns() def assignee = columns.get("jassignee") if (assignee != null && assignee.get("key") == user.getKey() && columns.get("jstatus") == "Closed") { toDelete.add(row.getRowId()) } } gridService.deleteRows(issueId, tgngCustomFieldId, user, toDelete)
- No labels