Wiki source code of NewTaskGroup
Last modified by XWikiGuest on 2011/11/12 01:35
Show last authors
author | version | line-number | content |
---|---|---|---|
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]&¤tUsers[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") |