0
|
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
|
|
382 // from permissions
|
|
383
|
|
384 <macro name="assignment_permission">
|
|
385 Assignment
|
|
386 </macro>
|
|
387
|
|
388 <macro name="can_be_assigned_to" requires="user" dot_parameter="node_attr">
|
|
389 <n.set_local_user.this_user />
|
|
390 <n.set_local_node.node_attr/>
|
|
391 <n.both>
|
|
392 <condition1.not.local_user.is_anonymous/>
|
|
393 <condition2.local_user.has_permission node="[n.local_node/]" permission_node="[n.local_node.app_or_root/]" permission="[n.assignment_permission/]" />
|
|
394 </n.both>
|
|
395 </macro>
|
|
396
|
|
397 <macro name="assignee_list" requires="node" dot_parameter="do">
|
|
398 <n.app_or_root.users_with_permission. permission="[n.assignment_permission/]">
|
|
399 <n.sort_by_name/>
|
|
400 <n.do/>
|
|
401 </n.app_or_root.users_with_permission.>
|
|
402 </macro>
|
|
403
|
|
404 <macro name="is_workgroup" requires="node">
|
|
405 <n.has_groups_with_permission.assignment_permission/>
|
|
406 </macro>
|
|
407
|
|
408
|
|
409 <macro name="priority_column" parameters="clickable">
|
|
410 <n.table_column>
|
|
411 <head>
|
|
412 <td class="medium-border-color priority-column nowrap">
|
|
413 <n.if.equal value1="[n.default. to='true'][n.clickable/][/n.default.]" value2="true">
|
|
414 <then><n.priority_dropdown/></then>
|
|
415 <else><t>Priority</t></else>
|
|
416 </n.if.equal>
|
|
417 </td>
|
|
418 </head>
|
|
419 <body>
|
|
420 <td class="medium-border-color" align="center"><n.current_node.show_priority/></td>
|
|
421 </body>
|
|
422 </n.table_column>
|
|
423 </macro>
|
|
424
|
|
425 <macro name="assignee_column" parameters="width,title,clickable">
|
|
426 <n.table_column>
|
|
427 <head>
|
|
428 <td class="medium-border-color assignee-column nowrap" style="[n.width_style.width/]">
|
|
429 <n.if.equal value1="[n.default. to='true'][n.clickable/][/n.default.]" value2="true">
|
|
430 <then><n.assignee_dropdown/></then>
|
|
431 <else><t>Assignee</t></else>
|
|
432 </n.if.equal>
|
|
433 </td>
|
|
434 </head>
|
|
435 <body>
|
|
436 <td class="medium-border-color nowrap"><n.current_node.show_assignee/></td>
|
|
437 </body>
|
|
438 </n.table_column>
|
|
439 </macro>
|
|
440
|
|
441 <macro name="priority_dropdown">
|
|
442 <n.if.not.is_null.app_priority>
|
|
443 <then><img src="/images/check.png" width="11" height="11"/></then>
|
|
444 </n.if.not.is_null.app_priority>
|
|
445 <n.dropdown. id="prioritydropdown" text="[t]Priority[/t]" title="[t]Click to filter[/t]">
|
|
446 <n.no_priority_filter_option/>
|
|
447 <n.menu_separator/>
|
|
448 <n.priority_option priority="1" label="[t]Highest[/t]"/>
|
|
449 <n.priority_option priority="2" label="[t]High[/t]"/>
|
|
450 <n.priority_option priority="3" label="[t]Normal[/t]"/>
|
|
451 <n.priority_option priority="4" label="[t]Low[/t]"/>
|
|
452 <n.priority_option priority="5" label="[t]Lowest[/t]"/>
|
|
453 </n.dropdown.>
|
|
454 </macro>
|
|
455
|
|
456 <macro name="assignee_dropdown">
|
|
457 <n.if.not.is_null.app_assignee>
|
|
458 <then><img src="/images/check.png" width="11" height="11"/></then>
|
|
459 </n.if.not.is_null.app_assignee>
|
|
460 <n.dropdown. id="assigneedropdown" text="[t]Assignee[/t]" title="[t]Click to filter[/t]">
|
|
461 <n.no_assignee_filter_option/>
|
|
462 <n.menu_separator/>
|
|
463 <n.page_node.assignee_list.loop.>
|
|
464 <n.assignee_option assignee="[n.current_user.id/]" label="[n.current_user.name/]"/>
|
|
465 </n.page_node.assignee_list.loop.>
|
|
466 </n.dropdown.>
|
|
467 </macro>
|
|
468
|
|
469 <macro name="priority_option" parameters="priority,label">
|
|
470 <n.set_var. name="p-url"><n.app_url_by_priority priority="[n.priority/]"/></n.set_var.>
|
|
471 <n.set_var. name="style">
|
|
472 <n.compress.>
|
|
473 padding-left:14px;
|
|
474 padding-right:11px;
|
|
475 <n.if.equal value1="[n.priority/]" value2="[n.app_priority/]">
|
|
476 <then>
|
|
477 font-weight:bold;
|
|
478 background-image:url(/images/check.png);
|
|
479 background-repeat:no-repeat;
|
|
480 background-position:left center;
|
|
481 </then>
|
|
482 <else>font-weight:normal</else>
|
|
483 </n.if.equal>
|
|
484 </n.compress.>
|
|
485 </n.set_var.>
|
|
486 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>';
|
|
487 dropdown.add('priority-<n.priority/>', text);
|
|
488 </macro>
|
|
489
|
|
490 <macro name="assignee_option" parameters="assignee,label">
|
|
491 <n.set_var. name="a-url"><n.app_url_by_assignee assignee="[n.assignee/]"/></n.set_var.>
|
|
492 <n.set_var. name="style">
|
|
493 <n.compress.>
|
|
494 padding-left:14px;
|
|
495 padding-right:11px;
|
|
496 <n.if.equal value1="[n.assignee/]" value2="[n.app_assignee/]">
|
|
497 <then>
|
|
498 background-image:url(/images/check.png);
|
|
499 background-repeat:no-repeat;
|
|
500 background-position:left center;
|
|
501 </then>
|
|
502 <else>font-weight:normal</else>
|
|
503 </n.if.equal>
|
|
504 </n.compress.>
|
|
505 </n.set_var.>
|
|
506 var text = '<a href="[n.var name='a-url'/]" style="[n.hide_null.var name='style'/]"><n.javascript_string_encode.label/></a>';
|
|
507 dropdown.add('assignee-<n.assignee/>', text);
|
|
508 </macro>
|
|
509
|
|
510 <macro name="no_priority_filter_option">
|
|
511 <n.set_var. name="p-url"><n.app_url_by_priority/></n.set_var.>
|
|
512 var text = '<a href="[n.var name='p-url'/]" style="padding:.3em 14px;font-weight:normal"><t>No Filter</t></a>';
|
|
513 dropdown.add('no-priority-filter', text);
|
|
514 </macro>
|
|
515
|
|
516 <macro name="no_assignee_filter_option">
|
|
517 <n.set_var. name="a-url"><n.app_url_by_assignee/></n.set_var.>
|
|
518 var text = '<a href="[n.var name='a-url'/]" style="padding:.3em 14px;font-weight:normal"><t>No Filter</t></a>';
|
|
519 dropdown.add('no-assignee-filter', text);
|
|
520 </macro>
|
|
521
|
|
522 <macro name="app_url_by_priority" parameters="priority">
|
|
523 <n.page_node.url
|
|
524 template="[n.app_template/]"
|
|
525 priority="[n.priority/]"
|
|
526 assignee="[n.app_assignee/]"
|
|
527 date="[n.app_date/]"
|
|
528 index_record="0"
|
|
529 />
|
|
530 </macro>
|
|
531
|
|
532 <macro name="app_url_by_assignee" parameters="assignee">
|
|
533 <n.page_node.url
|
|
534 template="[n.app_template/]"
|
|
535 priority="[n.app_priority/]"
|
|
536 assignee="[n.assignee/]"
|
|
537 date="[n.app_date/]"
|
|
538 index_record="0"
|
|
539 />
|
|
540 </macro>
|
|
541
|
|
542 <macro name="show_priority" requires="node">
|
|
543 <n.if.is_assigned>
|
|
544 <then>
|
|
545 <div class="priority-[n.priority/] priority"> <n.priority/> </div>
|
|
546 </then>
|
|
547 </n.if.is_assigned>
|
|
548 </macro>
|
|
549
|
|
550 <macro name="show_assignee" requires="node">
|
|
551 <n.if.is_assigned>
|
|
552 <then.assignee.name />
|
|
553 </n.if.is_assigned>
|
|
554 </macro>
|
|
555
|
|
556 <macro name="assignment_controls" parameters="guessed_assignee" requires="node,servlet">
|
|
557 <n.set_local_node.topic_or_app/>
|
|
558 <n.block.>
|
|
559 <n.if.visitor.can_be_assigned_to.local_node>
|
|
560 <then.local_node.show_assignment_controls guessed_assignee="[n.guessed_assignee/]" />
|
|
561 </n.if.visitor.can_be_assigned_to.local_node>
|
|
562 </n.block.>
|
|
563 </macro>
|
|
564
|
|
565 <macro name="show_assignment_controls" parameters="guessed_assignee" requires="node,servlet">
|
|
566 <n.set_local_node.this_node/>
|
|
567 <n.block.>
|
|
568 <n.if.not.is_submitted_form>
|
|
569 <then.if.local_node.is_assigned>
|
|
570 <then>
|
|
571 <n.assignment_field.set_value value="true" />
|
|
572 <n.assignment_priority_field.set_value.local_node.priority />
|
|
573 <n.set_var name="currentAssignee" value="[n.local_node.assignee.id/]" />
|
|
574 <n.assignment_assignee_field.set_value.>
|
|
575 <n.if.not.is_null.guessed_assignee>
|
|
576 <then.guessed_assignee/>
|
|
577 <else.local_node.assignee.id/>
|
|
578 </n.if.not.is_null.guessed_assignee>
|
|
579 </n.assignment_assignee_field.set_value.>
|
|
580 </then>
|
|
581 <else>
|
|
582 <n.assignment_field.set_value value="false" />
|
|
583 <n.assignment_priority_field.set_value value="3" />
|
|
584 </else>
|
|
585 </then.if.local_node.is_assigned>
|
|
586 </n.if.not.is_submitted_form>
|
|
587 <script type="text/javascript">
|
|
588 function updateFields() {
|
|
589 var $controls = $('#assignee-1,#assignee-2, #assignee-3');
|
|
590 if ($('#assignment').val() == 'true')
|
|
591 $controls.show();
|
|
592 else
|
|
593 $controls.hide();
|
|
594 };
|
|
595
|
|
596 $(document).ready(updateFields);
|
|
597 </script>
|
|
598 <div class="field-box light-border-color">
|
|
599 <div class="second-font field-title"><t>Assignment</t></div>
|
|
600 <table style="border-collapse:collapse">
|
|
601 <tr>
|
|
602 <td class="nowrap">
|
|
603 <n.assignment_field.select. onchange="updateFields()">
|
|
604 <n.select_option. value="false" selectedValue="[n.assignment_field.value/]"><t>Unassigned</t></n.select_option.>
|
|
605 <n.select_option. value="true" selectedValue="[n.assignment_field.value/]"><t>Assign</t></n.select_option.>
|
|
606 </n.assignment_field.select.>
|
|
607 </td>
|
|
608 <td id="assignee-1">
|
|
609 <n.assignment_assignee_field.select.>
|
|
610 <n.local_node.assignee_list.>
|
|
611 <n.sort_by_name />
|
|
612 <n.loop.>
|
|
613 <n.assignment_option
|
|
614 value = "[n.current_user.id/]"
|
|
615 selectedValue = "[n.assignment_assignee_field.value/]"
|
|
616 highlightValue = "[n.var name='currentAssignee'/]"
|
|
617 text = "[n.current_user.name/]"
|
|
618 />
|
|
619 </n.loop.>
|
|
620 </n.local_node.assignee_list.>
|
|
621 </n.assignment_assignee_field.select.>
|
|
622 </td>
|
|
623 <td class="nowrap">
|
|
624 <span id="assignee-3" style="display:none">
|
|
625 <t>at priority</t>
|
|
626 <n.assignment_priority_field.select.>
|
|
627 <n.assignment_priority_option. value="1" selectedValue="[n.assignment_priority_field.value/]">1. <t>Highest</t></n.assignment_priority_option.>
|
|
628 <n.assignment_priority_option. value="2" selectedValue="[n.assignment_priority_field.value/]">2. <t>High</t></n.assignment_priority_option.>
|
|
629 <n.assignment_priority_option. value="3" selectedValue="[n.assignment_priority_field.value/]">3. <t>Normal</t></n.assignment_priority_option.>
|
|
630 <n.assignment_priority_option. value="4" selectedValue="[n.assignment_priority_field.value/]">4. <t>Low</t></n.assignment_priority_option.>
|
|
631 <n.assignment_priority_option. value="5" selectedValue="[n.assignment_priority_field.value/]">5. <t>Lowest</t></n.assignment_priority_option.>
|
|
632 </n.assignment_priority_field.select.>
|
|
633 </span>
|
|
634 </td>
|
|
635 </tr>
|
|
636 </table>
|
|
637 </div>
|
|
638 </n.block.>
|
|
639 </macro>
|
|
640
|
|
641 <macro name="assignment_priority_option" parameters="value,selectedValue" dot_parameter="text">
|
|
642 <n.assignment_option value="[n.value/]" selectedValue="[n.selectedValue/]" highlightValue="[n.selectedValue/]" text="[n.text/]" />
|
|
643 </macro>
|
|
644
|
|
645 <macro name="assignment_option" parameters="value,selectedValue,highlightValue" dot_parameter="text">
|
|
646 <n.select_option value="[n.value/]" selectedValue="[n.selectedValue/]" text="[n.text/]">
|
|
647 <class>
|
|
648 <n.if.equal value1="[n.value/]" value2="[n.highlightValue/]">
|
|
649 <then>highlight</then>
|
|
650 <else.null/>
|
|
651 </n.if.equal>
|
|
652 </class>
|
|
653 </n.select_option>
|
|
654 </macro>
|
|
655
|
|
656 <macro name="assignment_field" dot_parameter="do">
|
|
657 <n.field. name="assignment"><n.do/></n.field.>
|
|
658 </macro>
|
|
659
|
|
660 <macro name="assignment_priority_field" dot_parameter="do">
|
|
661 <n.field. name="priority"><n.do/></n.field.>
|
|
662 </macro>
|
|
663
|
|
664 <macro name="assignment_assignee_field" dot_parameter="do">
|
|
665 <n.field. name="assignee"><n.do/></n.field.>
|
|
666 </macro>
|
|
667
|
|
668 <macro name="save_assignment" requires="node_editor,servlet">
|
|
669 <n.set_local_node.edited_node.topic_or_app/>
|
|
670 <n.if.visitor.can_be_assigned_to.local_node>
|
|
671 <then.if.assignment_field.value>
|
|
672 <then.local_node.>
|
|
673 <n.assign>
|
|
674 <assignee><n.get_user_from_id user_id="[n.assignment_assignee_field.value/]" /></assignee>
|
|
675 <priority><n.assignment_priority_field.value/></priority>
|
|
676 </n.assign>
|
|
677 </then.local_node.>
|
|
678 <else.local_node.unassign/>
|
|
679 </then.if.assignment_field.value>
|
|
680 </n.if.visitor.can_be_assigned_to.local_node>
|
|
681 </macro>
|
|
682
|
|
683 <macro name="priority_name" requires="node">
|
|
684 <n.if.is_assigned>
|
|
685 <then.switch. value="[n.priority/]">
|
|
686 <n.case value="1" do="[t]Highest[/t]" />
|
|
687 <n.case value="2" do="[t]High[/t]" />
|
|
688 <n.case value="3" do="[t]Normal[/t]" />
|
|
689 <n.case value="4" do="[t]Low[/t]" />
|
|
690 <n.case value="5" do="[t]Lowest[/t]" />
|
|
691 </then.switch.>
|
|
692 </n.if.is_assigned>
|
|
693 </macro>
|