Mercurial Hosting > nabble
comparison src/nabble/modules/workgroup/workgroup.naml @ 0:7ecd1a4ef557
add content
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 21 Mar 2019 19:15:52 -0600 |
parents | |
children | cc5b7d515580 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:7ecd1a4ef557 |
---|---|
1 <override_macro name="view_app_canonical_path" requires="http_request"> | |
2 <n.get_node_from_parameter.path | |
3 template="[n.get_parameter name='macro'/]" | |
4 priority="[n.get_parameter name='priority'/]" | |
5 assignee="[n.get_parameter name='assignee'/]" | |
6 index_record="[n.get_parameter name='index_record'/]" | |
7 date="[n.get_parameter name='date'/]" | |
8 /> | |
9 </override_macro> | |
10 | |
11 <override_macro name="url" parameters="template,priority,assignee,index_record,date" requires="node"> | |
12 <n.remove_spaces.> | |
13 <n.base_url/> | |
14 <n.path | |
15 template="[n.template/]" | |
16 priority="[n.priority/]" | |
17 assignee="[n.assignee/]" | |
18 index_record="[n.index_record/]" | |
19 date="[n.date/]" | |
20 /> | |
21 </n.remove_spaces.> | |
22 </override_macro> | |
23 | |
24 <override_macro name="app_url" parameters="template,priority,assignee,index_record,date" requires="node"> | |
25 <n.base_url/><n.app_path | |
26 template="[n.template/]" | |
27 priority="[n.priority/]" | |
28 assignee="[n.assignee/]" | |
29 index_record="[n.index_record/]" | |
30 date="[n.date/]" | |
31 /> | |
32 </override_macro> | |
33 | |
34 <override_macro name="path" parameters="template,priority,assignee,index_record,date" requires="node"> | |
35 <n.if.is_app> | |
36 <then> | |
37 <n.app_path | |
38 template="[n.template/]" | |
39 priority="[n.priority/]" | |
40 assignee="[n.assignee/]" | |
41 index_record="[n.index_record/]" | |
42 date="[n.date/]" | |
43 /> | |
44 </then> | |
45 <else> | |
46 <n.post_path /> | |
47 </else> | |
48 </n.if.is_app> | |
49 </override_macro> | |
50 | |
51 <override_macro name="app_paged_url" requires="paging_page,node_page,servlet"> | |
52 <n.page_node.path | |
53 template="[n.app_template/]" | |
54 priority="[n.app_priority/]" | |
55 assignee="[n.app_assignee/]" | |
56 date="[n.app_date/]" | |
57 index_record="[n.page_row/]" | |
58 /> | |
59 </override_macro> | |
60 | |
61 <override_macro name="app_path" parameters="template,priority,assignee,index_record,date" requires="node"> | |
62 <n.encode_url.remove_spaces.> | |
63 <n.set_var. name="index_record"> | |
64 <n.to_null_if. equals="0"> | |
65 <n.index_record/> | |
66 </n.to_null_if.> | |
67 </n.set_var.> | |
68 <n.set_var. name="template"> | |
69 <n.to_null_if. equals="[n.app_default_template/]"> | |
70 <n.template/> | |
71 </n.to_null_if.> | |
72 </n.set_var.> | |
73 <n.if.not.is_null.var name="template"> | |
74 <then> | |
75 <n.if.not.starts_with prefix="view_" text="[n.var name='template'/]"> | |
76 <then> | |
77 <n.throw_runtime_exception.> | |
78 template = <n.var name='template'/> | |
79 </n.throw_runtime_exception.> | |
80 </then> | |
81 </n.if.not.starts_with> | |
82 <n.set_var. name="template"> | |
83 <n.substring text="[n.var name='template'/]" begin="5" /> | |
84 </n.set_var.> | |
85 </then> | |
86 </n.if.not.is_null.var> | |
87 / | |
88 <n.if> | |
89 <condition> | |
90 <n.not.all_true.> | |
91 <n.is_root/> | |
92 <n.is_null.var name='template'/> | |
93 <n.is_null.date/> | |
94 <n.is_null.priority/> | |
95 <n.is_null.assignee/> | |
96 <n.is_null.var name='index_record'/> | |
97 </n.not.all_true.> | |
98 </condition> | |
99 <then> | |
100 <n.url_encoded_subject/> | |
101 -f<n.id/> | |
102 <n.hide_null.prepend. prefix="p"><n.priority/></n.hide_null.prepend.> | |
103 <n.hide_null.prepend. prefix="a"><n.assignee/></n.hide_null.prepend.> | |
104 <n.hide_null.prepend. prefix="i"><n.var name="index_record"/></n.hide_null.prepend.> | |
105 <n.hide_null.prepend. prefix="d"><n.date/></n.hide_null.prepend.> | |
106 <n.hide_null.prepend. prefix="."><n.var name="template"/></n.hide_null.prepend.> | |
107 .html | |
108 </then> | |
109 </n.if> | |
110 </n.encode_url.remove_spaces.> | |
111 </override_macro> | |
112 | |
113 <override_macro name="app_path_by_date" parameters="date" requires="node"> | |
114 <n.app_path | |
115 template="[n.app_template/]" | |
116 index_record="[n.app_index_record/]" | |
117 priority="[n.app_priority/]" | |
118 assignee="[n.app_assignee/]" | |
119 date="[n.date/]" | |
120 /> | |
121 </override_macro> | |
122 | |
123 <macro name="app_priority" requires="servlet"> | |
124 <n.get_parameter name="priority"/> | |
125 </macro> | |
126 | |
127 <macro name="app_assignee" requires="servlet"> | |
128 <n.get_parameter name="assignee"/> | |
129 </macro> | |
130 | |
131 <override_macro name="app_title_ending" requires="node"> | |
132 <n.overridden/> | |
133 <n.if.not.is_null.app_priority> | |
134 <then>| <t>Filter: priority <t.priority.app_priority/></t></then> | |
135 </n.if.not.is_null.app_priority> | |
136 <n.if.not.is_null.app_assignee> | |
137 <then>| <t>Filter: assignee <t.author.app_assignee/></t></then> | |
138 </n.if.not.is_null.app_assignee> | |
139 </override_macro> | |
140 | |
141 <override_macro name="compile_all"> | |
142 <n.overridden /> | |
143 <n.compile macro="can_be_assigned_to" namespaces="[n.standard_classes/],[n.user_namespace_class/]" /> | |
144 </override_macro> | |
145 | |
146 <override_macro name="save_post" requires="node_editor,servlet"> | |
147 <n.overridden /> | |
148 <n.save_assignment /> | |
149 </override_macro> | |
150 | |
151 <override_macro name="edit_post_form"> | |
152 <n.overridden /> | |
153 <n.page_node.assignment_controls/> | |
154 </override_macro> | |
155 | |
156 <override_macro name="reply_form"> | |
157 <n.overridden /> | |
158 <n.page_node.> | |
159 <n.assignment_controls> | |
160 <guessed_assignee> | |
161 <n.if> | |
162 <condition.both> | |
163 <condition1.not.page_node.is_app/> | |
164 <condition2.visitor.equals.page_node.topic_node.assignee/> | |
165 </condition.both> | |
166 <then.page_node.owner.id/> | |
167 <else.null/> | |
168 </n.if> | |
169 </guessed_assignee> | |
170 </n.assignment_controls> | |
171 </n.page_node.> | |
172 </override_macro> | |
173 | |
174 <override_macro name="instant_emails" requires="instant_mail,node_page"> | |
175 <n.if.page_node.has_topic_node> | |
176 <then.if.page_node.topic_node.is_assigned> | |
177 <then> | |
178 <n.remove_from_instant_mail.page_node.topic_assignee/> | |
179 <n.if.page_node.topic_assignee.should_get_instant_mail> | |
180 <then.send_assign_email/> | |
181 </n.if.page_node.topic_assignee.should_get_instant_mail> | |
182 </then> | |
183 </then.if.page_node.topic_node.is_assigned> | |
184 </n.if.page_node.has_topic_node> | |
185 <n.overridden /> | |
186 </override_macro> | |
187 | |
188 <override_macro name="all_permissions_list"> | |
189 <n.overridden /> | |
190 <n.assignment_permission/>, | |
191 </override_macro> | |
192 | |
193 <override_macro name="permission_rows"> | |
194 <n.overridden /> | |
195 <n.permission_row | |
196 permission = "[n.assignment_permission/]" | |
197 description="[t]Who can be assigned topics (in workgroups only)[/t]" | |
198 anyone_cell = "" | |
199 authors_cell = "" | |
200 /> | |
201 </override_macro> | |
202 | |
203 <override_macro name="children_list" parameters="start,length,filter,sort" dot_parameter="do" requires="node"> | |
204 <n.if.equal value1="[n.sort/]" value2="priority"> | |
205 <then.children_list_by_priority start="[n.start/]" length="[n.length/]" filter="[n.filter/]" do="[n.do/]" /> | |
206 <else.overridden start="[n.start/]" length="[n.length/]" filter="[n.filter/]" sort="[n.sort/]" do="[n.do/]" /> | |
207 </n.if.equal> | |
208 </override_macro> | |
209 | |
210 <override_macro name="topics_list" parameters="start,length,filter,sort" dot_parameter="do" requires="node"> | |
211 <n.if.equal value1="[n.sort/]" value2="priority"> | |
212 <then.topics_list_by_priority start="[n.start/]" length="[n.length/]" filter="[n.filter/]" do="[n.do/]" /> | |
213 <else.overridden start="[n.start/]" length="[n.length/]" filter="[n.filter/]" sort="[n.sort/]" do="[n.do/]" /> | |
214 </n.if.equal> | |
215 </override_macro> | |
216 | |
217 <override_macro name="calc_app_topic_filter" requires="node_page,servlet"> | |
218 <n.if.app_is_by_priority> | |
219 <then> | |
220 <n.compress.> | |
221 <n.separate> | |
222 <text1> | |
223 <n.page_node.assignment_filter assignee="[n.app_assignee/]" priority="[n.app_priority/]" /> | |
224 </text1> | |
225 <separator> | |
226 and | |
227 </separator> | |
228 <text2> | |
229 <n.hide_null.overridden /> | |
230 </text2> | |
231 </n.separate> | |
232 </n.compress.> | |
233 </then> | |
234 <else.overridden /> | |
235 </n.if.app_is_by_priority> | |
236 </override_macro> | |
237 | |
238 | |
239 <override_macro name="call_view_mixed"> | |
240 <n.if.get_node_from_parameter.is_workgroup> | |
241 <then.view_mixed_workgroup /> | |
242 <else.overridden /> | |
243 </n.if.get_node_from_parameter.is_workgroup> | |
244 </override_macro> | |
245 | |
246 <subroutine name="view_mixed_workgroup" requires="basic,nabble,servlet"> | |
247 <n.apply_workgroup_app_namespace.view_mixed_page /> | |
248 </subroutine> | |
249 | |
250 <macro name="mixed_table_columns" requires="workgroup_app_namespace"> | |
251 <n.pin_column/> | |
252 <n.mixed_topics_column/> | |
253 <n.replies_column/> | |
254 <n.last_post_column white_space="nowrap"/> | |
255 <n.priority_column clickable="false"/> | |
256 <n.assignee_column clickable="false"/> | |
257 </macro> | |
258 | |
259 <macro name="mixed_table_columns" requires="workgroup_narrow_app_namespace"> | |
260 <n.pin_column/> | |
261 <n.mixed_topics_column/> | |
262 <n.replies_column/> | |
263 <n.last_post_column white_space="nowrap"/> | |
264 <n.priority_column clickable="false"/> | |
265 <n.assignee_column clickable="false"/> | |
266 </macro> | |
267 | |
268 | |
269 <override_macro name="call_view_standard"> | |
270 <n.if.get_node_from_parameter.is_workgroup> | |
271 <then.view_standard_workgroup /> | |
272 <else.overridden /> | |
273 </n.if.get_node_from_parameter.is_workgroup> | |
274 </override_macro> | |
275 | |
276 <subroutine name="view_standard_workgroup" requires="basic,nabble,servlet"> | |
277 <n.apply_workgroup_app_namespace.view_standard_page /> | |
278 </subroutine> | |
279 | |
280 <macro name="standard_table_columns" requires="workgroup_app_namespace"> | |
281 <n.pin_column/> | |
282 <n.topics_column title="[n.standard_topics_column_title/]" count="[n.page_node.child_count/]"/> | |
283 <n.replies_column/> | |
284 <n.last_post_column white_space="nowrap"/> | |
285 <n.priority_column/> | |
286 <n.assignee_column/> | |
287 </macro> | |
288 | |
289 <macro name="standard_table_columns" requires="workgroup_narrow_app_namespace"> | |
290 <n.pin_column/> | |
291 <n.topics_summary_column title="[n.standard_topics_column_title/]" count="[n.page_node.child_count/]" width="50%"/> | |
292 <n.last_post_column white_space="nowrap" width="50%"/> | |
293 <n.priority_column/> | |
294 <n.assignee_column/> | |
295 </macro> | |
296 | |
297 | |
298 <override_subroutine name="view_topics" requires="basic,nabble,servlet"> | |
299 <n.if.get_node_from_parameter.is_workgroup> | |
300 <then.view_topics_workgroup /> | |
301 <else.overridden /> | |
302 </n.if.get_node_from_parameter.is_workgroup> | |
303 </override_subroutine> | |
304 | |
305 <subroutine name="view_topics_workgroup" requires="basic,nabble,servlet"> | |
306 <n.apply_workgroup_app_namespace.view_topics_page /> | |
307 </subroutine> | |
308 | |
309 <macro name="topics_table_columns" requires="workgroup_app_namespace"> | |
310 <n.pin_column/> | |
311 <n.topics_column count="[n.app_topic_count/]"/> | |
312 <n.replies_column/> | |
313 <n.last_post_column white_space="nowrap"/> | |
314 <n.priority_column/> | |
315 <n.assignee_column/> | |
316 <n.subapp_column/> | |
317 </macro> | |
318 | |
319 <macro name="topics_table_columns" requires="workgroup_narrow_app_namespace"> | |
320 <n.pin_column/> | |
321 <n.topics_summary_column count="[n.app_topic_count/]" width="40%"/> | |
322 <n.last_post_column white_space="nowrap" width="40%"/> | |
323 <n.priority_column/> | |
324 <n.assignee_column/> | |
325 </macro> | |
326 | |
327 <override_macro name="topics_table_sort"> | |
328 <n.if.app_is_by_priority> | |
329 <then>priority</then> | |
330 <else.overridden /> | |
331 </n.if.app_is_by_priority> | |
332 </override_macro> | |
333 | |
334 | |
335 | |
336 | |
337 <macro name="app_is_by_priority" requires="node_page,servlet"> | |
338 <n.cache. var="app_is_by_priority"> | |
339 <n.either> | |
340 <condition1> | |
341 <n.not.is_null.app_priority/> | |
342 </condition1> | |
343 <condition2> | |
344 <n.both> | |
345 <condition1> | |
346 <n.not.is_null.app_assignee/> | |
347 </condition1> | |
348 <condition2> | |
349 <n.if.not.equal value1="[n.app_assignee/]" value2="0" > | |
350 <then> | |
351 <n.check_user.app_assignee/> | |
352 <n.true/> | |
353 </then> | |
354 <else> | |
355 <n.false/> | |
356 </else> | |
357 </n.if.not.equal> | |
358 </condition2> | |
359 </n.both> | |
360 </condition2> | |
361 </n.either> | |
362 </n.cache.> | |
363 </macro> | |
364 | |
365 <override_macro name="topic_controls_left" requires="forum_topic_namespace"> | |
366 <n.overridden/> | |
367 <n.workgroup_assignment_status /> | |
368 </override_macro> | |
369 | |
370 <macro name="workgroup_assignment_status"> | |
371 <n.if.both condition1="[n.page_node.app_or_root.is_workgroup/]" condition2="[n.page_node.is_assigned/]"> | |
372 <then> | |
373 <div class="weak-color light-bg-color rounded" style="padding:.5em;margin:.5em 0"> | |
374 Assigned to <n.page_node.assignee.user_link/> at priority | |
375 <div class="priority-[n.page_node.priority/] priority"> <n.page_node.priority/> </div> (<n.page_node.priority_name/>) | |
376 </div> | |
377 </then> | |
378 </n.if.both> | |
379 </macro> | |
380 | |
381 <override_macro name="save_post_by_email" requires="post_by_email" unindent="true"> | |
382 <n.overridden /> | |
383 <n.if.posted_node.topic_or_app.is_assigned> | |
384 <then.if.posted_node.topic_node.assignee.equals.posted_node.owner> | |
385 <then.if.replied_to_node.owner.can_be_assigned_to.posted_node.topic_node> | |
386 <then.posted_node.topic_node.assign assignee="[n.replied_to_node.owner/]" priority="[n.posted_node.topic_node.priority/]" /> | |
387 </then.if.replied_to_node.owner.can_be_assigned_to.posted_node.topic_node> | |
388 </then.if.posted_node.topic_node.assignee.equals.posted_node.owner> | |
389 </n.if.posted_node.topic_or_app.is_assigned> | |
390 </override_macro> | |
391 | |
392 | |
393 // from permissions | |
394 | |
395 <macro name="assignment_permission"> | |
396 Assignment | |
397 </macro> | |
398 | |
399 <macro name="can_be_assigned_to" requires="user" dot_parameter="node_attr"> | |
400 <n.set_local_user.this_user /> | |
401 <n.set_local_node.node_attr/> | |
402 <n.both> | |
403 <condition1.not.local_user.is_anonymous/> | |
404 <condition2.local_user.has_permission node="[n.local_node/]" permission_node="[n.local_node.app_or_root/]" permission="[n.assignment_permission/]" /> | |
405 </n.both> | |
406 </macro> | |
407 | |
408 <macro name="assignee_list" requires="node" dot_parameter="do"> | |
409 <n.app_or_root.users_with_permission. permission="[n.assignment_permission/]"> | |
410 <n.sort_by_name/> | |
411 <n.do/> | |
412 </n.app_or_root.users_with_permission.> | |
413 </macro> | |
414 | |
415 <macro name="is_workgroup" requires="node"> | |
416 <n.has_groups_with_permission.assignment_permission/> | |
417 </macro> | |
418 | |
419 | |
420 <macro name="priority_column" parameters="clickable"> | |
421 <n.table_column> | |
422 <head> | |
423 <td class="medium-border-color priority-column nowrap"> | |
424 <n.if.equal value1="[n.default. to='true'][n.clickable/][/n.default.]" value2="true"> | |
425 <then><n.priority_dropdown/></then> | |
426 <else><t>Priority</t></else> | |
427 </n.if.equal> | |
428 </td> | |
429 </head> | |
430 <body> | |
431 <td class="medium-border-color" align="center"><n.current_node.show_priority/></td> | |
432 </body> | |
433 </n.table_column> | |
434 </macro> | |
435 | |
436 <macro name="assignee_column" parameters="width,title,clickable"> | |
437 <n.table_column> | |
438 <head> | |
439 <td class="medium-border-color assignee-column nowrap" style="[n.width_style.width/]"> | |
440 <n.if.equal value1="[n.default. to='true'][n.clickable/][/n.default.]" value2="true"> | |
441 <then><n.assignee_dropdown/></then> | |
442 <else><t>Assignee</t></else> | |
443 </n.if.equal> | |
444 </td> | |
445 </head> | |
446 <body> | |
447 <td class="medium-border-color nowrap"><n.current_node.show_assignee/></td> | |
448 </body> | |
449 </n.table_column> | |
450 </macro> | |
451 | |
452 <macro name="priority_dropdown"> | |
453 <n.if.not.is_null.app_priority> | |
454 <then><img src="/images/check.png" width="11" height="11"/></then> | |
455 </n.if.not.is_null.app_priority> | |
456 <n.dropdown. id="prioritydropdown" text="[t]Priority[/t]" title="[t]Click to filter[/t]"> | |
457 <n.no_priority_filter_option/> | |
458 <n.menu_separator/> | |
459 <n.priority_option priority="1" label="[t]Highest[/t]"/> | |
460 <n.priority_option priority="2" label="[t]High[/t]"/> | |
461 <n.priority_option priority="3" label="[t]Normal[/t]"/> | |
462 <n.priority_option priority="4" label="[t]Low[/t]"/> | |
463 <n.priority_option priority="5" label="[t]Lowest[/t]"/> | |
464 </n.dropdown.> | |
465 </macro> | |
466 | |
467 <macro name="assignee_dropdown"> | |
468 <n.if.not.is_null.app_assignee> | |
469 <then><img src="/images/check.png" width="11" height="11"/></then> | |
470 </n.if.not.is_null.app_assignee> | |
471 <n.dropdown. id="assigneedropdown" text="[t]Assignee[/t]" title="[t]Click to filter[/t]"> | |
472 <n.no_assignee_filter_option/> | |
473 <n.menu_separator/> | |
474 <n.page_node.assignee_list.loop.> | |
475 <n.assignee_option assignee="[n.current_user.id/]" label="[n.current_user.name/]"/> | |
476 </n.page_node.assignee_list.loop.> | |
477 </n.dropdown.> | |
478 </macro> | |
479 | |
480 <macro name="priority_option" parameters="priority,label"> | |
481 <n.set_var. name="p-url"><n.app_url_by_priority priority="[n.priority/]"/></n.set_var.> | |
482 <n.set_var. name="style"> | |
483 <n.compress.> | |
484 padding-left:14px; | |
485 padding-right:11px; | |
486 <n.if.equal value1="[n.priority/]" value2="[n.app_priority/]"> | |
487 <then> | |
488 font-weight:bold; | |
489 background-image:url(/images/check.png); | |
490 background-repeat:no-repeat; | |
491 background-position:left center; | |
492 </then> | |
493 <else>font-weight:normal</else> | |
494 </n.if.equal> | |
495 </n.compress.> | |
496 </n.set_var.> | |
497 var text = '<a href="[n.var name='p-url'/]" style="[n.hide_null.var name='style'/]"><div class="priority-[n.priority/] priority"> <n.priority/> </div> <n.javascript_string_encode.label/></a>'; | |
498 dropdown.add('priority-<n.priority/>', text); | |
499 </macro> | |
500 | |
501 <macro name="assignee_option" parameters="assignee,label"> | |
502 <n.set_var. name="a-url"><n.app_url_by_assignee assignee="[n.assignee/]"/></n.set_var.> | |
503 <n.set_var. name="style"> | |
504 <n.compress.> | |
505 padding-left:14px; | |
506 padding-right:11px; | |
507 <n.if.equal value1="[n.assignee/]" value2="[n.app_assignee/]"> | |
508 <then> | |
509 background-image:url(/images/check.png); | |
510 background-repeat:no-repeat; | |
511 background-position:left center; | |
512 </then> | |
513 <else>font-weight:normal</else> | |
514 </n.if.equal> | |
515 </n.compress.> | |
516 </n.set_var.> | |
517 var text = '<a href="[n.var name='a-url'/]" style="[n.hide_null.var name='style'/]"><n.javascript_string_encode.label/></a>'; | |
518 dropdown.add('assignee-<n.assignee/>', text); | |
519 </macro> | |
520 | |
521 <macro name="no_priority_filter_option"> | |
522 <n.set_var. name="p-url"><n.app_url_by_priority/></n.set_var.> | |
523 var text = '<a href="[n.var name='p-url'/]" style="padding:.3em 14px;font-weight:normal"><t>No Filter</t></a>'; | |
524 dropdown.add('no-priority-filter', text); | |
525 </macro> | |
526 | |
527 <macro name="no_assignee_filter_option"> | |
528 <n.set_var. name="a-url"><n.app_url_by_assignee/></n.set_var.> | |
529 var text = '<a href="[n.var name='a-url'/]" style="padding:.3em 14px;font-weight:normal"><t>No Filter</t></a>'; | |
530 dropdown.add('no-assignee-filter', text); | |
531 </macro> | |
532 | |
533 <macro name="app_url_by_priority" parameters="priority"> | |
534 <n.page_node.url | |
535 template="[n.app_template/]" | |
536 priority="[n.priority/]" | |
537 assignee="[n.app_assignee/]" | |
538 date="[n.app_date/]" | |
539 index_record="0" | |
540 /> | |
541 </macro> | |
542 | |
543 <macro name="app_url_by_assignee" parameters="assignee"> | |
544 <n.page_node.url | |
545 template="[n.app_template/]" | |
546 priority="[n.app_priority/]" | |
547 assignee="[n.assignee/]" | |
548 date="[n.app_date/]" | |
549 index_record="0" | |
550 /> | |
551 </macro> | |
552 | |
553 <macro name="show_priority" requires="node"> | |
554 <n.if.is_assigned> | |
555 <then> | |
556 <div class="priority-[n.priority/] priority"> <n.priority/> </div> | |
557 </then> | |
558 </n.if.is_assigned> | |
559 </macro> | |
560 | |
561 <macro name="show_assignee" requires="node"> | |
562 <n.if.is_assigned> | |
563 <then.assignee.name /> | |
564 </n.if.is_assigned> | |
565 </macro> | |
566 | |
567 <macro name="assignment_controls" parameters="guessed_assignee" requires="node,servlet"> | |
568 <n.set_local_node.topic_or_app/> | |
569 <n.block.> | |
570 <n.if.visitor.can_be_assigned_to.local_node> | |
571 <then.local_node.show_assignment_controls guessed_assignee="[n.guessed_assignee/]" /> | |
572 </n.if.visitor.can_be_assigned_to.local_node> | |
573 </n.block.> | |
574 </macro> | |
575 | |
576 <macro name="show_assignment_controls" parameters="guessed_assignee" requires="node,servlet"> | |
577 <n.set_local_node.this_node/> | |
578 <n.block.> | |
579 <n.if.not.is_submitted_form> | |
580 <then.if.local_node.is_assigned> | |
581 <then> | |
582 <n.assignment_field.set_value value="true" /> | |
583 <n.assignment_priority_field.set_value.local_node.priority /> | |
584 <n.set_var name="currentAssignee" value="[n.local_node.assignee.id/]" /> | |
585 <n.assignment_assignee_field.set_value.> | |
586 <n.if.not.is_null.guessed_assignee> | |
587 <then.guessed_assignee/> | |
588 <else.local_node.assignee.id/> | |
589 </n.if.not.is_null.guessed_assignee> | |
590 </n.assignment_assignee_field.set_value.> | |
591 </then> | |
592 <else> | |
593 <n.assignment_field.set_value value="false" /> | |
594 <n.assignment_priority_field.set_value value="3" /> | |
595 </else> | |
596 </then.if.local_node.is_assigned> | |
597 </n.if.not.is_submitted_form> | |
598 <script type="text/javascript"> | |
599 function updateFields() { | |
600 var $controls = $('#assignee-1,#assignee-2, #assignee-3'); | |
601 if ($('#assignment').val() == 'true') | |
602 $controls.show(); | |
603 else | |
604 $controls.hide(); | |
605 }; | |
606 | |
607 $(document).ready(updateFields); | |
608 </script> | |
609 <div class="field-box light-border-color"> | |
610 <div class="second-font field-title"><t>Assignment</t></div> | |
611 <table style="border-collapse:collapse"> | |
612 <tr> | |
613 <td class="nowrap"> | |
614 <n.assignment_field.select. onchange="updateFields()"> | |
615 <n.select_option. value="false" selectedValue="[n.assignment_field.value/]"><t>Unassigned</t></n.select_option.> | |
616 <n.select_option. value="true" selectedValue="[n.assignment_field.value/]"><t>Assign</t></n.select_option.> | |
617 </n.assignment_field.select.> | |
618 </td> | |
619 <td id="assignee-1"> | |
620 <n.assignment_assignee_field.select.> | |
621 <n.local_node.assignee_list.> | |
622 <n.sort_by_name /> | |
623 <n.loop.> | |
624 <n.assignment_option | |
625 value = "[n.current_user.id/]" | |
626 selectedValue = "[n.assignment_assignee_field.value/]" | |
627 highlightValue = "[n.var name='currentAssignee'/]" | |
628 text = "[n.current_user.name/]" | |
629 /> | |
630 </n.loop.> | |
631 </n.local_node.assignee_list.> | |
632 </n.assignment_assignee_field.select.> | |
633 </td> | |
634 <td class="nowrap"> | |
635 <span id="assignee-3" style="display:none"> | |
636 <t>at priority</t> | |
637 <n.assignment_priority_field.select.> | |
638 <n.assignment_priority_option. value="1" selectedValue="[n.assignment_priority_field.value/]">1. <t>Highest</t></n.assignment_priority_option.> | |
639 <n.assignment_priority_option. value="2" selectedValue="[n.assignment_priority_field.value/]">2. <t>High</t></n.assignment_priority_option.> | |
640 <n.assignment_priority_option. value="3" selectedValue="[n.assignment_priority_field.value/]">3. <t>Normal</t></n.assignment_priority_option.> | |
641 <n.assignment_priority_option. value="4" selectedValue="[n.assignment_priority_field.value/]">4. <t>Low</t></n.assignment_priority_option.> | |
642 <n.assignment_priority_option. value="5" selectedValue="[n.assignment_priority_field.value/]">5. <t>Lowest</t></n.assignment_priority_option.> | |
643 </n.assignment_priority_field.select.> | |
644 </span> | |
645 </td> | |
646 </tr> | |
647 </table> | |
648 </div> | |
649 </n.block.> | |
650 </macro> | |
651 | |
652 <macro name="assignment_priority_option" parameters="value,selectedValue" dot_parameter="text"> | |
653 <n.assignment_option value="[n.value/]" selectedValue="[n.selectedValue/]" highlightValue="[n.selectedValue/]" text="[n.text/]" /> | |
654 </macro> | |
655 | |
656 <macro name="assignment_option" parameters="value,selectedValue,highlightValue" dot_parameter="text"> | |
657 <n.select_option value="[n.value/]" selectedValue="[n.selectedValue/]" text="[n.text/]"> | |
658 <class> | |
659 <n.if.equal value1="[n.value/]" value2="[n.highlightValue/]"> | |
660 <then>highlight</then> | |
661 <else.null/> | |
662 </n.if.equal> | |
663 </class> | |
664 </n.select_option> | |
665 </macro> | |
666 | |
667 <macro name="assignment_field" dot_parameter="do"> | |
668 <n.field. name="assignment"><n.do/></n.field.> | |
669 </macro> | |
670 | |
671 <macro name="assignment_priority_field" dot_parameter="do"> | |
672 <n.field. name="priority"><n.do/></n.field.> | |
673 </macro> | |
674 | |
675 <macro name="assignment_assignee_field" dot_parameter="do"> | |
676 <n.field. name="assignee"><n.do/></n.field.> | |
677 </macro> | |
678 | |
679 <macro name="save_assignment" requires="node_editor,servlet"> | |
680 <n.set_local_node.edited_node.topic_or_app/> | |
681 <n.if.visitor.can_be_assigned_to.local_node> | |
682 <then.if.assignment_field.value> | |
683 <then.local_node.> | |
684 <n.assign> | |
685 <assignee><n.get_user_from_id user_id="[n.assignment_assignee_field.value/]" /></assignee> | |
686 <priority><n.assignment_priority_field.value/></priority> | |
687 </n.assign> | |
688 </then.local_node.> | |
689 <else.local_node.unassign/> | |
690 </then.if.assignment_field.value> | |
691 </n.if.visitor.can_be_assigned_to.local_node> | |
692 </macro> | |
693 | |
694 <macro name="priority_name" requires="node"> | |
695 <n.if.is_assigned> | |
696 <then.switch. value="[n.priority/]"> | |
697 <n.case value="1" do="[t]Highest[/t]" /> | |
698 <n.case value="2" do="[t]High[/t]" /> | |
699 <n.case value="3" do="[t]Normal[/t]" /> | |
700 <n.case value="4" do="[t]Low[/t]" /> | |
701 <n.case value="5" do="[t]Lowest[/t]" /> | |
702 </then.switch.> | |
703 </n.if.is_assigned> | |
704 </macro> |