History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: QB-3219
Type: Improvement Improvement
Status: Closed Closed
Resolution: Won't Fix
Priority: Major Major
Assignee: Robin Shen
Reporter: Robin Shen
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
QuickBuild

Able to change value of text field prompt dynamically

Created: 14/Jul/18 12:28 AM   Updated: 25/Jan/19 08:48 AM
Component/s: None
Affects Version/s: 8.0.10
Fix Version/s: None

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown
File Attachments: None
Image Attachments:

1. 201807131620882_OXWL2FHM.jpg
(419 kb)


 Description  « Hide
Tizen use rpm packages, so user have to select base rpm snapshot version to build thier own package.

snapshot information is dynamically changed.

So if user select snapshot info, then QB display possible build package list.

("BUILD_PKG_LIST" is 'repo_name commit_id')

==============================================

///// BUILD_PKG_LIST variable's Choices value. (multi-selection box)

${groovy:

def choice = "";
def snapshotinfo = new XmlParser().parse(new File("/home/build.qb/build_meta/snapshot_info"));
def url = snapshotinfo.reference[0].'@url';
def target = "";

if("${vars.get("BUILD_REFERENCE")\}" == "Ref. Snapshot"){
   target = snapshotinfo.reference[0].'@target';
\}else if("${vars.get("BUILD_REFERENCE")\}" == "Snapshot Number"){
   if(vars.get("SNAPSHOT_NUM").isEmpty() || vars.get("SNAPSHOT_NUM").getValue().equals("do not need select"))
      return choice;
   target = vars.get("SNAPSHOT_NUM").getValue();
\}else if ("${vars.get("BUILD_REFERENCE")\}" == "Live"){
   def manifest = new XmlParser().parse(new File("/home/build.qb/build_meta/manifest.xml"));
   manifest.project.each{ it->
      if(!it.'@groups'.equals("meta"))
         choice += it.'@name' + ' ' + it.'@revision' + '\n';
   \}
   return choice;
\}else{
   return choice;
\}

def String cmd = "curl " + url + target + "/builddata/manifest/" + target + "_standard.xml";
def String [] command = ["/bin/sh", "-c", cmd];
Process p = Runtime.getRuntime().exec(command, null, null);
def result = p.text;
def manifest = new XmlParser().parseText(result);
manifest.project.each{ it->
   choice += it.'@name' + ' ' + it.'@revision' + '\n';
\}
return choice;

}

=======================================

 

Problem situation is that user want to change commit_id in selected "BUILD_PKG_LIST",

As you know, prompt as multi-selection box's value cannot ne changed.

So, I made "BUILD_PKG_LIST_MODIFY" variable by prompt as a textbox.

 

Me : "If you write your own repo's path and commit information in BUILD_PKG_LIST_MODIFY field, then QB will override BUILD_PKG_LIST's selected info."

Test User 1 : "Hm... But 'Ctrl+C' is not work on selected field. Should I type full path on text box? it's very hard."

Test User 2 : "Number of package list is over 1,000. Is there no search function?"

 

If prompt as a textbox's value can be changed dynamically like prompt as a select box and multi-select box,

I can provide package list("BUILD_PKG_LIST") by textbox.

Then user just can modify or delete package which is not needed to build.

 

Sum up the my request,

1. Apply dynamic change function to 'prompt as a textbox' variable. (It is best case)

(If no.1 is impossible,)

2-1. Apply edit function on selected field to 'prompt as a multi-select' variable.

2-2. Apply Ctrl+C key can be work on selected field to 'prompt as a multi-select' variable.

(by the way,)

3. Apply search function to 'prompt as select' and 'prompt as a multi-select' variable.

 All   Comments   Work Log   Change History      Sort Order:
There are no comments yet on this issue.