Close bug as either fixed or invalid
[potlatch2.git] / net / systemeD / potlatch2 / panels / BugPanel.mxml
1 <?xml version="1.0" encoding="utf-8"?>
2
3 <!--
4     Bug Panel
5 -->
6
7 <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" height="100%" paddingTop="10">
8   <mx:HBox>
9     <mx:Image source="{bugImage}" width="32" height="32" />
10     <mx:Text text="{bugTitle}" fontWeight="bold" fontSize="18" />
11   </mx:HBox>
12   <mx:HBox>
13     <mx:Text text="Created:" />
14     <mx:Text text="{bugCreated}" />
15   </mx:HBox>
16   <mx:HBox>
17     <mx:Text text="Updated:" />
18     <mx:Text text="{bugUpdated}" />
19   </mx:HBox>
20   <mx:HBox>
21     <mx:Text text="Type of bug: " />
22     <mx:Text text="{bugType}" fontWeight="bold"/>
23   </mx:HBox>
24   <mx:TextArea editable="false" text="{bugDescription}" width="100%" fontSize="14" minHeight="100" maxHeight="400"/>
25
26   <mx:ViewStack id="bugControlStack" resizeToContent="true" width="100%">
27     <mx:HBox id="bugFixed" backgroundColor="#ddffdd" width="100%">
28       <mx:Text text="This bug has been marked as Fixed" width="100%"/>
29     </mx:HBox>
30
31     <mx:HBox id="bugInvalid" backgroundColor="#dddddd" width="100%">
32       <mx:Text text="This bug has been marked as Invalid" width="100%"/>
33     </mx:HBox>
34
35     <mx:HBox id="bugControl" horizontalAlign="right" width="100%">
36       <mx:LinkButton label="Add Comment" enabled="false" />
37       <mx:LinkButton label="Close Bug" click="bugControlStack.selectedChild=closeBugVBox;" />
38     </mx:HBox>
39
40     <mx:VBox id="closeBugVBox" visible="false">
41       <mx:Text><mx:text>Add your comment and close the bug</mx:text></mx:Text>
42       <mx:Label><mx:text>Your NickName (3-16 chars):</mx:text></mx:Label>
43       <mx:TextInput id="nickName" restrict="a-zA-Z0-9.\-_" width="100%"/>
44       <mx:Text><mx:text>Comment:</mx:text></mx:Text>
45       <mx:TextArea id="closeComment" width="100%"/>
46       <mx:Text text="Mark bug as:"/>
47       <mx:RadioButton groupName="status" id="option_fixed" label="Fixed" selected="true"/>
48       <mx:RadioButton groupName="status" id="option_invalid" label="Invalid" />
49       <mx:HBox horizontalAlign="right" width="100%">
50           <mx:LinkButton label="Cancel" click="bugControlStack.selectedChild=bugControl;" />
51           <mx:LinkButton label="Close Bug" click="closeBug()" />
52       </mx:HBox>
53     </mx:VBox>
54   </mx:ViewStack>
55
56   <mx:Script><![CDATA[
57
58       import net.systemeD.halcyon.connection.*;
59       import net.systemeD.halcyon.VectorLayer;
60       import net.systemeD.potlatch2.BugLayer;
61       import mx.collections.*;
62
63       private var selectedEntity:Entity;
64       private var layer:VectorLayer;
65
66       [Bindable] private var bugId:String;
67       [Bindable] private var bugStatus:String;
68       [Bindable] private var bugDescription:String;
69       [Bindable] private var bugType:String;
70       [Bindable] private var bugImage:String;
71       [Bindable] private var bugTitle:String;
72       [Bindable] private var bugCreated:String;
73       [Bindable] private var bugUpdated:String;
74
75       public function init(entity:Entity, layer:VectorLayer):void {
76             this.layer = layer;
77             selectedEntity=entity;
78
79             bugId = selectedEntity.getTag("bug_id");
80             bugTitle = "Bug "+bugId;
81             bugStatus = selectedEntity.getTag("status");
82             bugDescription = selectedEntity.getTag("description");
83             bugType = selectedEntity.getTag("type").replace(/_/g, " ");
84             bugImage = 'features/bugs/'+bugStatus+'.png';
85             bugCreated = selectedEntity.getTag("date_created");
86             bugUpdated = selectedEntity.getTag("date_updated");
87
88             if ( bugStatus == BugLayer.status[int(BugLayer.BUG_STATUS_FIXED)] ) {
89               bugControlStack.selectedChild = bugFixed;
90             } else if ( bugStatus == BugLayer.status[int(BugLayer.BUG_STATUS_INVALID)] ) {
91               bugControlStack.selectedChild = bugInvalid;
92             } else {
93               bugControlStack.selectedChild = bugControl;
94             }
95       }
96
97       private function closeBug():void {
98             var status:String = option_invalid.selected ? BugLayer.BUG_STATUS_INVALID : BugLayer.BUG_STATUS_FIXED;
99             trace(status);
100             BugLayer(layer).closeBug(selectedEntity as Marker, nickName.text, closeComment.text, status);
101             bugStatus = selectedEntity.getTag("status");
102             // this should really be a 'saving...' state, with a callback depending on the server result
103             bugControlStack.selectedChild = option_invalid.selected ? bugInvalid : bugFixed;
104       }
105
106       ]]>
107   </mx:Script>
108 </mx:VBox>