Using Blitz Actions and the power of SIL, you can do a lot of things with your JIRA. For example, you may want to log work on behalf of another user.
For this, I configured a button with a single step:
The button will be always enabled and it's script simply asks for the confirmation that we want to log work for another user.
The action will be enabled if we answer with "yes" to the question from the first screen and disabled otherwise.
So the button only contains a confirmation question and on it's action screen we only save the selected value:
the screen script:
BA_setActionTitle("Are you sure?"); BA_createRadioGroup("Sure?", {"yes", "no"}, "yes", false, true, "You are about to log work on behalf of another user. This may have some consequences. Are you sure you want to do this?"); BA_setExecuteButtonText("Submit");
the action script:
string option = BA_getSingleValue(argv, "Sure?"); BA_setBlitzAttribute("option", option);
The action will be available only if "yes" has been answered on the first screen.
the condition script for the action would look like this:
number ENABLED = 1; number DISABLED = 2; number HIDDEN = 3; string option = BA_getBlitzAttribute("option"); return option == "yes" ? ENABLED : HIDDEN;
on the screen script we configure the fields we need in order to log the work:
BA_setActionTitle("Log work as user"); BA_createUserPicker("User", currentUser(), false, true, ""); BA_createInput("Time Spent", "", false, true, "(eg 3w 4d 12h)"); BA_createDateTimePicker("Date Started", currentDate(), false, false, ""); BA_createRadioGroup("Remaining Estimate", {"Adjust automatically", "Use existing estimate"},"Adjust automatically", false); BA_createTextArea("Work Description", "", false); BA_setExecuteButtonText("Done");
in the action script we retrieve the values from the screen and add the worklog:
string user = BA_getSingleValue(argv, "User"); interval timeSpent = BA_getSingleValue(argv, "Time Spent"); date startDate = BA_getDateValue(argv, "Date Started"); string estimate = BA_getSingleValue(argv, "Remaining Estimate"); string comment = BA_getSingleValue(argv, "Work Description"); if (estimate == "Adjust automatically") { addWorklogAdjustEstimate(key, user, timeSpent, startDate, comment); } else { addWorklogExistingEstimate(key, user, timeSpent, startDate, comment); }
That's how the implementation looks like in the issue: