Wiki source code of NewTaskGroup

Last modified by XWikiGuest on 2011/11/12 01:35

Show last authors
1 <style>
2 #includeInContext("TasksCode.Skin")
3 </style>
4 #set($sql = "select max(prop.value)+1 from BaseObject as obj, IntegerProperty as prop where obj.className='TasksCode.IssueClass' and obj.id=prop.id.id and prop.id.name='id'")
5 #set($id = $xwiki.search($sql).get(0))
6 #if(!$id)
7 #set($id = 1)
8 #end
9 #if($request.page&&($request.page!=""))
10 #set($newTaskDoc = $xwiki.getDocument("${request.page}TaskGroup${id}"))
11 #else
12 #set($newTaskDoc = $xwiki.getDocument("TaskGroup${id}"))
13 #end
14 #if($request.assignees)
15 #set($notif = $xwiki.parseGroovyFromPage("TasksCode.TasksNotifications"))
16 #set($ok = $notif.setContext($context,$xwiki))
17 #set($ok = $newTaskDoc.newObject("TasksCode.IssueClass"))
18 #set($ok = $newTaskDoc.updateObjectFromRequest("TasksCode.IssueClass"))
19 #set($ok = $newTaskDoc.use("TasksCode.IssueClass"))
20 $newTaskDoc.set("id", $id)
21 $newTaskDoc.set("status", "new")
22 $newTaskDoc.set("resolution", "none")
23 $newTaskDoc.set("reporter", $context.localUser)
24 $newTaskDoc.set("taskgroup", "1")
25 $newTaskDoc.setContent($xwiki.getDocument("TasksCode.IssueClassTemplate").content)
26 $newTaskDoc.save()
27 $notif.sendNotification($newTaskDoc, "create")
28
29 $msg.get("its_taskgroup_created", [$newTaskDoc.display("title"),$newTaskDoc.fullName])
30
31 #set($assignees = $request.assignees.split(","))
32 #set($subtaskid = $id)
33 #foreach($assignee in $assignees)
34 #if($assignee!="")
35 #set($subtaskid = 1 + $subtaskid)
36 #if($request.page&&($request.page!=""))
37 #set($newSubTaskDoc = $xwiki.getDocument("${request.page}Task${subtaskid}"))
38 #else
39 #set($newSubTaskDoc = $xwiki.getDocument("Task${subtaskid}"))
40 #end
41 $newSubTaskDoc.use($newSubTaskDoc.newObject("TasksCode.IssueClass"))
42 #set($subtasktitle = $request.get("assignee_${assignee}"))
43 $newSubTaskDoc.set("id", $subtaskid)
44 $newSubTaskDoc.set("status", "new")
45 $newSubTaskDoc.set("resolution", "none")
46 $newSubTaskDoc.set("reporter", $context.localUser)
47 $newSubTaskDoc.set("taskgroup", "0")
48 $newSubTaskDoc.set("assignee", $assignee)
49 $newSubTaskDoc.set("title", $subtasktitle)
50 $newSubTaskDoc.set("description", "")
51 $newSubTaskDoc.set("dueDate", $newTaskDoc.getValue("dueDate"))
52 $newSubTaskDoc.set("severity", $newTaskDoc.getValue("severity"))
53 $newSubTaskDoc.set("page", $newTaskDoc.fullName)
54 $newSubTaskDoc.setContent($xwiki.getDocument("TasksCode.IssueClassTemplate").content)
55 $newSubTaskDoc.save()
56 $notif.sendNotification($newSubTaskDoc, "create")
57 $msg.get("its_taskgroup_created_subtask", [$newSubTaskDoc.display("title"),$newSubTaskDoc.fullName,$newSubTaskDoc.getValue("assignee")])
58 #end
59 #end
60
61 $msg.its_taskgroup_created_endmessage
62 #else
63 $newTaskDoc.use($newTaskDoc.getObject("TasksCode.IssueClass", true))
64 $newTaskDoc.set("status", "new")
65 $newTaskDoc.set("resolution", "none")
66 $newTaskDoc.set("severity", "major")
67 $newTaskDoc.set("reporter", $context.localUser)
68 $newTaskDoc.set("assignee", $context.localUser)
69 $newTaskDoc.set("dueDate", "01/01/2008")
70 $newTaskDoc.set("taskgroup", "1")
71 #if($request.page)
72 $newTaskDoc.set("page", $request.page)
73 #else
74 $newTaskDoc.set("page", "Tasks.WebHome")
75 #end
76 #set($pagedoc = $xwiki.getDocument($doc.getValue("page")))
77 1 $msg.its_taskgroup_title #if($request.page) $msg.its_taskgroup_onpage [$pagedoc.displayTitle>$pagedoc.fullName] #end
78
79 <form action="" method="get" onsubmit="return updateAssignees(this);">
80 $newTaskDoc.display("page", "hidden")
81
82 <div class="box" id="task">
83
84 1.1 $msg.its_taskgroup_newtask $newTaskDoc.display("title", "edit")
85
86 <table>
87 <tr><td> $msg.its_task_reporter : </td><td> $newTaskDoc.display("reporter", "view") </td></tr>
88 <tr><td>$msg.its_task_assignee : </td><td> $newTaskDoc.display("assignee", "edit") </td></tr>
89 <tr><td>$msg.its_task_dueDate : </td><td> $newTaskDoc.display("dueDate", "edit") </td></tr>
90 <tr><td>$msg.its_task_severity : </td><td> $newTaskDoc.display("severity", "edit") </td></tr>
91 </table>
92
93 <fieldset>
94 <legend class="fieldset">$msg.its_task_description</legend>
95
96 $newTaskDoc.display("description", "edit")
97 </fieldset>
98 <fieldset>
99 <legend class="fieldset">$msg.its_taskgroup_subtasks</legend>
100 $msg.its_taskgroup_subtaskexplanation <br />
101 {pre}
102 <script type="text/javascript">
103 var currentUsers = {};
104 function addUser(user, userprettyname, title) {
105 if (currentUsers[user]&&currentUsers[user]=="1") {
106 alert("already added");
107 } else {
108 // alert(user);
109 if (!$(user)) {
110 userel = document.createElement("div");
111 userel.id = user;
112 userel.innerHTML = getAssigneeHTML(user, userprettyname, title);
113 $("subtasksassignees").appendChild(userel);
114 } else {
115 $(user).innerHTML = getAssigneeHTML(user, userprettyname, title);
116 }
117 currentUsers[user] = "1";
118 }
119 }
120 function getAssigneeHTML(user, userprettyname, title) {
121 return "<div class'subtaskline'><div class'subtaskname'>" + userprettyname + "</div><div class'subtaskfield'>"
122 + "<input type=\"text\" size=\"60\" id=\"assignee_" + user + "\" name=\"assignee_" + user + "\" value=\"" + title + "\" /></div><div class'subtaskremove'>"
123 + "<a href=\"javascript:void()\" onclick=\"removeUser('" + user + "'); return false;\">remove</a></div></div>";
124 }
125 function removeUser(user) {
126 if (currentUsers[user]) {
127 currentUsers[user] = "0";
128 $(user).innerHTML = "";
129 }
130 }
131 function updateAssignees(form) {
132 var assignees = "";
133 var title = form['TasksCode.IssueClass_0_title'].value;
134 if (title=="") {
135 alert('$msg.its_taskgroup_titlemissing');
136 return false;
137 }
138 for(user in currentUsers) {
139 if (currentUsers[user]=="1") {
140 if (assignees=="")
141 assignees = user;
142 else
143 assignees = assignees + "," + user;
144
145 var field = form['assignee_' + user];
146 if (field.value=="")
147 field.value = title;
148 }
149 }
150 form.assignees.value = assignees;
151 return true;
152 }
153 function getPrettyName(selectField) {
154 return selectField.options[selectField.selectedIndex].text;
155 }
156 </script>
157 <input type="hidden" name="assignees" value="" />
158 <select style="margin-top: 8px; margin-bottom: 8px;" id="subtasksassignee" onchange="addUser(this.value, getPrettyName(this), this.form['TasksCode.IssueClass_0_title'].value);">
159 <option value="">$msg.its_taskgroup_addsubtaskassignee</option>
160 #set($sql = ",BaseObject as obj where doc.fullName=obj.name and obj.className='XWiki.XWikiUsers'")
161 #foreach($item in $xwiki.searchDocuments($sql))
162 #set($itemdoc = $xwiki.getDocument($item))
163 <option value="$item">$itemdoc.first_name $itemdoc.last_name</option>
164 #end
165 </select>
166 {/pre}
167 <div id="subtasksassignees">
168 </div>
169 </fieldset>
170 <input type="submit" value="$msg.its_taskgroup_createsubtasks" />
171 <div class="clearfloats"><br /></div>
172 </form>
173 </div>
174 #end
175 #set($showcomments = "no")
176 #set($showattachments = "no")