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">&nbsp;<n.page_node.priority/>&nbsp;</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">&nbsp;<n.priority/>&nbsp;</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">&nbsp;<n.priority/>&nbsp;</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>