1 <?xml version="1.0" encoding="utf-8"?>
7 <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" height="100%" paddingTop="10">
9 <mx:Image source="{bugImage}" width="32" height="32" />
10 <mx:Text text="{bugTitle}" fontWeight="bold" fontSize="18" />
13 <mx:Text text="Created: " />
14 <mx:Text text="{bugCreated.toLocaleString()}" />
17 <mx:Text text="Updated:" />
18 <mx:Text text="{bugUpdated.toLocaleString()}" />
21 <mx:Text text="Type of bug: " />
22 <mx:Text text="{bugType}" fontWeight="bold"/>
24 <mx:HBox id="bugDetailsHbox" visible="false">
25 <mx:Text fontWeight="bold" text="View full details on website..." click="navigateToURL(new URLRequest(bugDetails), 'potlatch_browse')" />
27 <mx:TextArea editable="false" text="{bugDescription}" width="100%" fontSize="14" minHeight="100" maxHeight="400"/>
29 <mx:ViewStack id="bugControlStack" resizeToContent="true" width="100%">
30 <mx:HBox id="bugFixed" backgroundColor="#ddffdd" width="100%">
31 <mx:Text text="This bug has been marked as Fixed" width="100%"/>
34 <mx:HBox id="bugInvalid" backgroundColor="#dddddd" width="100%">
35 <mx:Text text="This bug has been marked as Invalid" width="100%"/>
38 <mx:HBox id="bugControl" horizontalAlign="right" width="100%">
39 <mx:LinkButton label="Add Comment" enabled="false" />
40 <mx:LinkButton label="Close Bug" click="bugControlStack.selectedChild=closeBugVBox;" />
43 <mx:VBox id="closeBugVBox" visible="false">
44 <mx:Text><mx:text>Add your comment and close the bug</mx:text></mx:Text>
45 <mx:Label><mx:text>Your NickName (3-16 chars):</mx:text></mx:Label>
46 <mx:TextInput id="nickName" restrict="a-zA-Z0-9.\-_" width="100%"/>
47 <mx:Text><mx:text>Comment:</mx:text></mx:Text>
48 <mx:TextArea id="closeComment" width="100%"/>
49 <mx:Text text="Mark bug as:"/>
50 <mx:RadioButton groupName="status" id="option_fixed" label="Fixed" selected="true"/>
51 <mx:RadioButton groupName="status" id="option_invalid" label="Invalid" />
52 <mx:HBox horizontalAlign="right" width="100%">
53 <mx:LinkButton label="Cancel" click="bugControlStack.selectedChild=bugControl;" />
54 <mx:LinkButton label="Close Bug" click="closeBug()" />
61 import net.systemeD.halcyon.connection.*;
62 import net.systemeD.halcyon.VectorLayer;
63 import net.systemeD.potlatch2.BugLayer;
64 import mx.collections.*;
65 import com.adobe.utils.DateUtil;
67 private var selectedEntity:Entity;
68 private var layer:VectorLayer;
70 [Bindable] private var bugId:String;
71 [Bindable] private var bugStatus:String;
72 [Bindable] private var bugDescription:String;
73 [Bindable] private var bugType:String;
74 [Bindable] private var bugImage:String;
75 [Bindable] private var bugTitle:String;
76 [Bindable] private var bugCreated:Date;
77 [Bindable] private var bugUpdated:Date;
78 [Bindable] private var bugDetails:String;
80 public function init(entity:Entity, layer:VectorLayer):void {
82 selectedEntity=entity;
84 bugId = selectedEntity.getTag("bug_id");
85 bugTitle = "Bug "+bugId;
86 bugStatus = selectedEntity.getTag("status");
87 bugDescription = selectedEntity.getTag("description");
88 bugType = selectedEntity.getTag("type").replace(/_/g, " ");
89 bugImage = 'features/bugs/'+bugStatus+'.png';
90 bugCreated = DateUtil.parseW3CDTF(selectedEntity.getTag("date_created"));
91 bugUpdated = DateUtil.parseW3CDTF(selectedEntity.getTag("date_updated"));
93 if ( bugStatus == BugLayer.status[int(BugLayer.BUG_STATUS_FIXED)] ) {
94 bugControlStack.selectedChild = bugFixed;
95 } else if ( bugStatus == BugLayer.status[int(BugLayer.BUG_STATUS_INVALID)] ) {
96 bugControlStack.selectedChild = bugInvalid;
98 bugControlStack.selectedChild = bugControl;
101 var u:String = BugLayer(layer).bugDetailsUrl(Marker(selectedEntity));
104 bugDetailsHbox.visible=true;
108 private function closeBug():void {
109 var status:String = option_invalid.selected ? BugLayer.BUG_STATUS_INVALID : BugLayer.BUG_STATUS_FIXED;
111 BugLayer(layer).closeBug(selectedEntity as Marker, nickName.text, closeComment.text, status);
112 bugStatus = selectedEntity.getTag("status");
113 // this should really be a 'saving...' state, with a callback depending on the server result
114 bugControlStack.selectedChild = option_invalid.selected ? bugInvalid : bugFixed;