Skip to end of metadata
Go to start of metadata

Scenario

  • You want to further limit the number of characters a user may enter into a single-line text or multi-line text field
  • You want to provide feedback to the user with how many characters remain and if the maximum is exceeded

We'll show you how to do all of this using Power Scripts™ for Jira, a powerful scripting tool to help automate your Jira.

What These Scripts Do

  • The listener script listens to the Summary field, and runs the executor script on any character entry or removal
  • The executor script checks the number of characters against a declared maximum and disables the create/submit button if it is exceeded

Prerequisites

  1. You have Jira Core or Jira Software installed
  2. You have Power Scripts™ for Jira installed

Configure Live Field Listener

You should configure this script as a Live Field script for the relevant project.

/*
This Live Field script will listen to the Summary field and provide feedback
for how many characters the user has entered by invoking
lfExecutor_CharacterLimitSummary.sil
*/

if(argv["screen"] == "create" || argv["screen"] == "edit") {
  lfWatch("summary", {"summary"}, "lfExecutor_CharacterLimitSummary.sil" , {"keyup"});
}

Listener References Live Field Executor

/*
This Live Field script checks how many characters have been entered in
the Summary field, and gives feedback. It also disables the ability to
create or edit the issue if the number of characters exceeds an arbitrary value
(we'll use 140 characters as an example)
*/

number sumLength = length(argv["summary"]);
number maxLength = 140;
number remLength = maxLength - sumLength;

string showRem = remLength;

if (sumLength<=maxLength) {
    lfShowFieldMessage("summary", showRem+" characters remaining", "INFO");
    lfEnable("editSubmit");
    lfEnable("transitionSubmit");
    lfEnable("createIssueSubmit");
    lfEnable("issueCreateSubmit");
}
else {
    lfShowFieldMessage("summary", "Character count exceeded!", "ERROR");
    lfDisable("editSubmit");
    lfDisable("transitionSubmit");
    lfDisable("createIssueSubmit");
    lfDisable("issueCreateSubmit");
}

See also