Mercurial Hosting > nabble
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/nabble/modules/workgroup/workgroup.naml Thu Mar 21 19:15:52 2019 -0600 @@ -0,0 +1,704 @@ +<override_macro name="view_app_canonical_path" requires="http_request"> + <n.get_node_from_parameter.path + template="[n.get_parameter name='macro'/]" + priority="[n.get_parameter name='priority'/]" + assignee="[n.get_parameter name='assignee'/]" + index_record="[n.get_parameter name='index_record'/]" + date="[n.get_parameter name='date'/]" + /> +</override_macro> + +<override_macro name="url" parameters="template,priority,assignee,index_record,date" requires="node"> + <n.remove_spaces.> + <n.base_url/> + <n.path + template="[n.template/]" + priority="[n.priority/]" + assignee="[n.assignee/]" + index_record="[n.index_record/]" + date="[n.date/]" + /> + </n.remove_spaces.> +</override_macro> + +<override_macro name="app_url" parameters="template,priority,assignee,index_record,date" requires="node"> + <n.base_url/><n.app_path + template="[n.template/]" + priority="[n.priority/]" + assignee="[n.assignee/]" + index_record="[n.index_record/]" + date="[n.date/]" + /> +</override_macro> + +<override_macro name="path" parameters="template,priority,assignee,index_record,date" requires="node"> + <n.if.is_app> + <then> + <n.app_path + template="[n.template/]" + priority="[n.priority/]" + assignee="[n.assignee/]" + index_record="[n.index_record/]" + date="[n.date/]" + /> + </then> + <else> + <n.post_path /> + </else> + </n.if.is_app> +</override_macro> + +<override_macro name="app_paged_url" requires="paging_page,node_page,servlet"> + <n.page_node.path + template="[n.app_template/]" + priority="[n.app_priority/]" + assignee="[n.app_assignee/]" + date="[n.app_date/]" + index_record="[n.page_row/]" + /> +</override_macro> + +<override_macro name="app_path" parameters="template,priority,assignee,index_record,date" requires="node"> + <n.encode_url.remove_spaces.> + <n.set_var. name="index_record"> + <n.to_null_if. equals="0"> + <n.index_record/> + </n.to_null_if.> + </n.set_var.> + <n.set_var. name="template"> + <n.to_null_if. equals="[n.app_default_template/]"> + <n.template/> + </n.to_null_if.> + </n.set_var.> + <n.if.not.is_null.var name="template"> + <then> + <n.if.not.starts_with prefix="view_" text="[n.var name='template'/]"> + <then> + <n.throw_runtime_exception.> + template = <n.var name='template'/> + </n.throw_runtime_exception.> + </then> + </n.if.not.starts_with> + <n.set_var. name="template"> + <n.substring text="[n.var name='template'/]" begin="5" /> + </n.set_var.> + </then> + </n.if.not.is_null.var> + / + <n.if> + <condition> + <n.not.all_true.> + <n.is_root/> + <n.is_null.var name='template'/> + <n.is_null.date/> + <n.is_null.priority/> + <n.is_null.assignee/> + <n.is_null.var name='index_record'/> + </n.not.all_true.> + </condition> + <then> + <n.url_encoded_subject/> + -f<n.id/> + <n.hide_null.prepend. prefix="p"><n.priority/></n.hide_null.prepend.> + <n.hide_null.prepend. prefix="a"><n.assignee/></n.hide_null.prepend.> + <n.hide_null.prepend. prefix="i"><n.var name="index_record"/></n.hide_null.prepend.> + <n.hide_null.prepend. prefix="d"><n.date/></n.hide_null.prepend.> + <n.hide_null.prepend. prefix="."><n.var name="template"/></n.hide_null.prepend.> + .html + </then> + </n.if> + </n.encode_url.remove_spaces.> +</override_macro> + +<override_macro name="app_path_by_date" parameters="date" requires="node"> + <n.app_path + template="[n.app_template/]" + index_record="[n.app_index_record/]" + priority="[n.app_priority/]" + assignee="[n.app_assignee/]" + date="[n.date/]" + /> +</override_macro> + +<macro name="app_priority" requires="servlet"> + <n.get_parameter name="priority"/> +</macro> + +<macro name="app_assignee" requires="servlet"> + <n.get_parameter name="assignee"/> +</macro> + +<override_macro name="app_title_ending" requires="node"> + <n.overridden/> + <n.if.not.is_null.app_priority> + <then>| <t>Filter: priority <t.priority.app_priority/></t></then> + </n.if.not.is_null.app_priority> + <n.if.not.is_null.app_assignee> + <then>| <t>Filter: assignee <t.author.app_assignee/></t></then> + </n.if.not.is_null.app_assignee> +</override_macro> + +<override_macro name="compile_all"> + <n.overridden /> + <n.compile macro="can_be_assigned_to" namespaces="[n.standard_classes/],[n.user_namespace_class/]" /> +</override_macro> + +<override_macro name="save_post" requires="node_editor,servlet"> + <n.overridden /> + <n.save_assignment /> +</override_macro> + +<override_macro name="edit_post_form"> + <n.overridden /> + <n.page_node.assignment_controls/> +</override_macro> + +<override_macro name="reply_form"> + <n.overridden /> + <n.page_node.> + <n.assignment_controls> + <guessed_assignee> + <n.if> + <condition.both> + <condition1.not.page_node.is_app/> + <condition2.visitor.equals.page_node.topic_node.assignee/> + </condition.both> + <then.page_node.owner.id/> + <else.null/> + </n.if> + </guessed_assignee> + </n.assignment_controls> + </n.page_node.> +</override_macro> + +<override_macro name="instant_emails" requires="instant_mail,node_page"> + <n.if.page_node.has_topic_node> + <then.if.page_node.topic_node.is_assigned> + <then> + <n.remove_from_instant_mail.page_node.topic_assignee/> + <n.if.page_node.topic_assignee.should_get_instant_mail> + <then.send_assign_email/> + </n.if.page_node.topic_assignee.should_get_instant_mail> + </then> + </then.if.page_node.topic_node.is_assigned> + </n.if.page_node.has_topic_node> + <n.overridden /> +</override_macro> + +<override_macro name="all_permissions_list"> + <n.overridden /> + <n.assignment_permission/>, +</override_macro> + +<override_macro name="permission_rows"> + <n.overridden /> + <n.permission_row + permission = "[n.assignment_permission/]" + description="[t]Who can be assigned topics (in workgroups only)[/t]" + anyone_cell = "" + authors_cell = "" + /> +</override_macro> + +<override_macro name="children_list" parameters="start,length,filter,sort" dot_parameter="do" requires="node"> + <n.if.equal value1="[n.sort/]" value2="priority"> + <then.children_list_by_priority start="[n.start/]" length="[n.length/]" filter="[n.filter/]" do="[n.do/]" /> + <else.overridden start="[n.start/]" length="[n.length/]" filter="[n.filter/]" sort="[n.sort/]" do="[n.do/]" /> + </n.if.equal> +</override_macro> + +<override_macro name="topics_list" parameters="start,length,filter,sort" dot_parameter="do" requires="node"> + <n.if.equal value1="[n.sort/]" value2="priority"> + <then.topics_list_by_priority start="[n.start/]" length="[n.length/]" filter="[n.filter/]" do="[n.do/]" /> + <else.overridden start="[n.start/]" length="[n.length/]" filter="[n.filter/]" sort="[n.sort/]" do="[n.do/]" /> + </n.if.equal> +</override_macro> + +<override_macro name="calc_app_topic_filter" requires="node_page,servlet"> + <n.if.app_is_by_priority> + <then> + <n.compress.> + <n.separate> + <text1> + <n.page_node.assignment_filter assignee="[n.app_assignee/]" priority="[n.app_priority/]" /> + </text1> + <separator> + and + </separator> + <text2> + <n.hide_null.overridden /> + </text2> + </n.separate> + </n.compress.> + </then> + <else.overridden /> + </n.if.app_is_by_priority> +</override_macro> + + +<override_macro name="call_view_mixed"> + <n.if.get_node_from_parameter.is_workgroup> + <then.view_mixed_workgroup /> + <else.overridden /> + </n.if.get_node_from_parameter.is_workgroup> +</override_macro> + +<subroutine name="view_mixed_workgroup" requires="basic,nabble,servlet"> + <n.apply_workgroup_app_namespace.view_mixed_page /> +</subroutine> + +<macro name="mixed_table_columns" requires="workgroup_app_namespace"> + <n.pin_column/> + <n.mixed_topics_column/> + <n.replies_column/> + <n.last_post_column white_space="nowrap"/> + <n.priority_column clickable="false"/> + <n.assignee_column clickable="false"/> +</macro> + +<macro name="mixed_table_columns" requires="workgroup_narrow_app_namespace"> + <n.pin_column/> + <n.mixed_topics_column/> + <n.replies_column/> + <n.last_post_column white_space="nowrap"/> + <n.priority_column clickable="false"/> + <n.assignee_column clickable="false"/> +</macro> + + +<override_macro name="call_view_standard"> + <n.if.get_node_from_parameter.is_workgroup> + <then.view_standard_workgroup /> + <else.overridden /> + </n.if.get_node_from_parameter.is_workgroup> +</override_macro> + +<subroutine name="view_standard_workgroup" requires="basic,nabble,servlet"> + <n.apply_workgroup_app_namespace.view_standard_page /> +</subroutine> + +<macro name="standard_table_columns" requires="workgroup_app_namespace"> + <n.pin_column/> + <n.topics_column title="[n.standard_topics_column_title/]" count="[n.page_node.child_count/]"/> + <n.replies_column/> + <n.last_post_column white_space="nowrap"/> + <n.priority_column/> + <n.assignee_column/> +</macro> + +<macro name="standard_table_columns" requires="workgroup_narrow_app_namespace"> + <n.pin_column/> + <n.topics_summary_column title="[n.standard_topics_column_title/]" count="[n.page_node.child_count/]" width="50%"/> + <n.last_post_column white_space="nowrap" width="50%"/> + <n.priority_column/> + <n.assignee_column/> +</macro> + + +<override_subroutine name="view_topics" requires="basic,nabble,servlet"> + <n.if.get_node_from_parameter.is_workgroup> + <then.view_topics_workgroup /> + <else.overridden /> + </n.if.get_node_from_parameter.is_workgroup> +</override_subroutine> + +<subroutine name="view_topics_workgroup" requires="basic,nabble,servlet"> + <n.apply_workgroup_app_namespace.view_topics_page /> +</subroutine> + +<macro name="topics_table_columns" requires="workgroup_app_namespace"> + <n.pin_column/> + <n.topics_column count="[n.app_topic_count/]"/> + <n.replies_column/> + <n.last_post_column white_space="nowrap"/> + <n.priority_column/> + <n.assignee_column/> + <n.subapp_column/> +</macro> + +<macro name="topics_table_columns" requires="workgroup_narrow_app_namespace"> + <n.pin_column/> + <n.topics_summary_column count="[n.app_topic_count/]" width="40%"/> + <n.last_post_column white_space="nowrap" width="40%"/> + <n.priority_column/> + <n.assignee_column/> +</macro> + +<override_macro name="topics_table_sort"> + <n.if.app_is_by_priority> + <then>priority</then> + <else.overridden /> + </n.if.app_is_by_priority> +</override_macro> + + + + +<macro name="app_is_by_priority" requires="node_page,servlet"> + <n.cache. var="app_is_by_priority"> + <n.either> + <condition1> + <n.not.is_null.app_priority/> + </condition1> + <condition2> + <n.both> + <condition1> + <n.not.is_null.app_assignee/> + </condition1> + <condition2> + <n.if.not.equal value1="[n.app_assignee/]" value2="0" > + <then> + <n.check_user.app_assignee/> + <n.true/> + </then> + <else> + <n.false/> + </else> + </n.if.not.equal> + </condition2> + </n.both> + </condition2> + </n.either> + </n.cache.> +</macro> + +<override_macro name="topic_controls_left" requires="forum_topic_namespace"> + <n.overridden/> + <n.workgroup_assignment_status /> +</override_macro> + +<macro name="workgroup_assignment_status"> + <n.if.both condition1="[n.page_node.app_or_root.is_workgroup/]" condition2="[n.page_node.is_assigned/]"> + <then> + <div class="weak-color light-bg-color rounded" style="padding:.5em;margin:.5em 0"> + Assigned to <n.page_node.assignee.user_link/> at priority + <div class="priority-[n.page_node.priority/] priority"> <n.page_node.priority/> </div> (<n.page_node.priority_name/>) + </div> + </then> + </n.if.both> +</macro> + +<override_macro name="save_post_by_email" requires="post_by_email" unindent="true"> + <n.overridden /> + <n.if.posted_node.topic_or_app.is_assigned> + <then.if.posted_node.topic_node.assignee.equals.posted_node.owner> + <then.if.replied_to_node.owner.can_be_assigned_to.posted_node.topic_node> + <then.posted_node.topic_node.assign assignee="[n.replied_to_node.owner/]" priority="[n.posted_node.topic_node.priority/]" /> + </then.if.replied_to_node.owner.can_be_assigned_to.posted_node.topic_node> + </then.if.posted_node.topic_node.assignee.equals.posted_node.owner> + </n.if.posted_node.topic_or_app.is_assigned> +</override_macro> + + +// from permissions + +<macro name="assignment_permission"> + Assignment +</macro> + +<macro name="can_be_assigned_to" requires="user" dot_parameter="node_attr"> + <n.set_local_user.this_user /> + <n.set_local_node.node_attr/> + <n.both> + <condition1.not.local_user.is_anonymous/> + <condition2.local_user.has_permission node="[n.local_node/]" permission_node="[n.local_node.app_or_root/]" permission="[n.assignment_permission/]" /> + </n.both> +</macro> + +<macro name="assignee_list" requires="node" dot_parameter="do"> + <n.app_or_root.users_with_permission. permission="[n.assignment_permission/]"> + <n.sort_by_name/> + <n.do/> + </n.app_or_root.users_with_permission.> +</macro> + +<macro name="is_workgroup" requires="node"> + <n.has_groups_with_permission.assignment_permission/> +</macro> + + +<macro name="priority_column" parameters="clickable"> + <n.table_column> + <head> + <td class="medium-border-color priority-column nowrap"> + <n.if.equal value1="[n.default. to='true'][n.clickable/][/n.default.]" value2="true"> + <then><n.priority_dropdown/></then> + <else><t>Priority</t></else> + </n.if.equal> + </td> + </head> + <body> + <td class="medium-border-color" align="center"><n.current_node.show_priority/></td> + </body> + </n.table_column> +</macro> + +<macro name="assignee_column" parameters="width,title,clickable"> + <n.table_column> + <head> + <td class="medium-border-color assignee-column nowrap" style="[n.width_style.width/]"> + <n.if.equal value1="[n.default. to='true'][n.clickable/][/n.default.]" value2="true"> + <then><n.assignee_dropdown/></then> + <else><t>Assignee</t></else> + </n.if.equal> + </td> + </head> + <body> + <td class="medium-border-color nowrap"><n.current_node.show_assignee/></td> + </body> + </n.table_column> +</macro> + +<macro name="priority_dropdown"> + <n.if.not.is_null.app_priority> + <then><img src="/images/check.png" width="11" height="11"/></then> + </n.if.not.is_null.app_priority> + <n.dropdown. id="prioritydropdown" text="[t]Priority[/t]" title="[t]Click to filter[/t]"> + <n.no_priority_filter_option/> + <n.menu_separator/> + <n.priority_option priority="1" label="[t]Highest[/t]"/> + <n.priority_option priority="2" label="[t]High[/t]"/> + <n.priority_option priority="3" label="[t]Normal[/t]"/> + <n.priority_option priority="4" label="[t]Low[/t]"/> + <n.priority_option priority="5" label="[t]Lowest[/t]"/> + </n.dropdown.> +</macro> + +<macro name="assignee_dropdown"> + <n.if.not.is_null.app_assignee> + <then><img src="/images/check.png" width="11" height="11"/></then> + </n.if.not.is_null.app_assignee> + <n.dropdown. id="assigneedropdown" text="[t]Assignee[/t]" title="[t]Click to filter[/t]"> + <n.no_assignee_filter_option/> + <n.menu_separator/> + <n.page_node.assignee_list.loop.> + <n.assignee_option assignee="[n.current_user.id/]" label="[n.current_user.name/]"/> + </n.page_node.assignee_list.loop.> + </n.dropdown.> +</macro> + +<macro name="priority_option" parameters="priority,label"> + <n.set_var. name="p-url"><n.app_url_by_priority priority="[n.priority/]"/></n.set_var.> + <n.set_var. name="style"> + <n.compress.> + padding-left:14px; + padding-right:11px; + <n.if.equal value1="[n.priority/]" value2="[n.app_priority/]"> + <then> + font-weight:bold; + background-image:url(/images/check.png); + background-repeat:no-repeat; + background-position:left center; + </then> + <else>font-weight:normal</else> + </n.if.equal> + </n.compress.> + </n.set_var.> + 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>'; + dropdown.add('priority-<n.priority/>', text); +</macro> + +<macro name="assignee_option" parameters="assignee,label"> + <n.set_var. name="a-url"><n.app_url_by_assignee assignee="[n.assignee/]"/></n.set_var.> + <n.set_var. name="style"> + <n.compress.> + padding-left:14px; + padding-right:11px; + <n.if.equal value1="[n.assignee/]" value2="[n.app_assignee/]"> + <then> + background-image:url(/images/check.png); + background-repeat:no-repeat; + background-position:left center; + </then> + <else>font-weight:normal</else> + </n.if.equal> + </n.compress.> + </n.set_var.> + var text = '<a href="[n.var name='a-url'/]" style="[n.hide_null.var name='style'/]"><n.javascript_string_encode.label/></a>'; + dropdown.add('assignee-<n.assignee/>', text); +</macro> + +<macro name="no_priority_filter_option"> + <n.set_var. name="p-url"><n.app_url_by_priority/></n.set_var.> + var text = '<a href="[n.var name='p-url'/]" style="padding:.3em 14px;font-weight:normal"><t>No Filter</t></a>'; + dropdown.add('no-priority-filter', text); +</macro> + +<macro name="no_assignee_filter_option"> + <n.set_var. name="a-url"><n.app_url_by_assignee/></n.set_var.> + var text = '<a href="[n.var name='a-url'/]" style="padding:.3em 14px;font-weight:normal"><t>No Filter</t></a>'; + dropdown.add('no-assignee-filter', text); +</macro> + +<macro name="app_url_by_priority" parameters="priority"> + <n.page_node.url + template="[n.app_template/]" + priority="[n.priority/]" + assignee="[n.app_assignee/]" + date="[n.app_date/]" + index_record="0" + /> +</macro> + +<macro name="app_url_by_assignee" parameters="assignee"> + <n.page_node.url + template="[n.app_template/]" + priority="[n.app_priority/]" + assignee="[n.assignee/]" + date="[n.app_date/]" + index_record="0" + /> +</macro> + +<macro name="show_priority" requires="node"> + <n.if.is_assigned> + <then> + <div class="priority-[n.priority/] priority"> <n.priority/> </div> + </then> + </n.if.is_assigned> +</macro> + +<macro name="show_assignee" requires="node"> + <n.if.is_assigned> + <then.assignee.name /> + </n.if.is_assigned> +</macro> + +<macro name="assignment_controls" parameters="guessed_assignee" requires="node,servlet"> + <n.set_local_node.topic_or_app/> + <n.block.> + <n.if.visitor.can_be_assigned_to.local_node> + <then.local_node.show_assignment_controls guessed_assignee="[n.guessed_assignee/]" /> + </n.if.visitor.can_be_assigned_to.local_node> + </n.block.> +</macro> + +<macro name="show_assignment_controls" parameters="guessed_assignee" requires="node,servlet"> + <n.set_local_node.this_node/> + <n.block.> + <n.if.not.is_submitted_form> + <then.if.local_node.is_assigned> + <then> + <n.assignment_field.set_value value="true" /> + <n.assignment_priority_field.set_value.local_node.priority /> + <n.set_var name="currentAssignee" value="[n.local_node.assignee.id/]" /> + <n.assignment_assignee_field.set_value.> + <n.if.not.is_null.guessed_assignee> + <then.guessed_assignee/> + <else.local_node.assignee.id/> + </n.if.not.is_null.guessed_assignee> + </n.assignment_assignee_field.set_value.> + </then> + <else> + <n.assignment_field.set_value value="false" /> + <n.assignment_priority_field.set_value value="3" /> + </else> + </then.if.local_node.is_assigned> + </n.if.not.is_submitted_form> + <script type="text/javascript"> + function updateFields() { + var $controls = $('#assignee-1,#assignee-2, #assignee-3'); + if ($('#assignment').val() == 'true') + $controls.show(); + else + $controls.hide(); + }; + + $(document).ready(updateFields); + </script> + <div class="field-box light-border-color"> + <div class="second-font field-title"><t>Assignment</t></div> + <table style="border-collapse:collapse"> + <tr> + <td class="nowrap"> + <n.assignment_field.select. onchange="updateFields()"> + <n.select_option. value="false" selectedValue="[n.assignment_field.value/]"><t>Unassigned</t></n.select_option.> + <n.select_option. value="true" selectedValue="[n.assignment_field.value/]"><t>Assign</t></n.select_option.> + </n.assignment_field.select.> + </td> + <td id="assignee-1"> + <n.assignment_assignee_field.select.> + <n.local_node.assignee_list.> + <n.sort_by_name /> + <n.loop.> + <n.assignment_option + value = "[n.current_user.id/]" + selectedValue = "[n.assignment_assignee_field.value/]" + highlightValue = "[n.var name='currentAssignee'/]" + text = "[n.current_user.name/]" + /> + </n.loop.> + </n.local_node.assignee_list.> + </n.assignment_assignee_field.select.> + </td> + <td class="nowrap"> + <span id="assignee-3" style="display:none"> + <t>at priority</t> + <n.assignment_priority_field.select.> + <n.assignment_priority_option. value="1" selectedValue="[n.assignment_priority_field.value/]">1. <t>Highest</t></n.assignment_priority_option.> + <n.assignment_priority_option. value="2" selectedValue="[n.assignment_priority_field.value/]">2. <t>High</t></n.assignment_priority_option.> + <n.assignment_priority_option. value="3" selectedValue="[n.assignment_priority_field.value/]">3. <t>Normal</t></n.assignment_priority_option.> + <n.assignment_priority_option. value="4" selectedValue="[n.assignment_priority_field.value/]">4. <t>Low</t></n.assignment_priority_option.> + <n.assignment_priority_option. value="5" selectedValue="[n.assignment_priority_field.value/]">5. <t>Lowest</t></n.assignment_priority_option.> + </n.assignment_priority_field.select.> + </span> + </td> + </tr> + </table> + </div> + </n.block.> +</macro> + +<macro name="assignment_priority_option" parameters="value,selectedValue" dot_parameter="text"> + <n.assignment_option value="[n.value/]" selectedValue="[n.selectedValue/]" highlightValue="[n.selectedValue/]" text="[n.text/]" /> +</macro> + +<macro name="assignment_option" parameters="value,selectedValue,highlightValue" dot_parameter="text"> + <n.select_option value="[n.value/]" selectedValue="[n.selectedValue/]" text="[n.text/]"> + <class> + <n.if.equal value1="[n.value/]" value2="[n.highlightValue/]"> + <then>highlight</then> + <else.null/> + </n.if.equal> + </class> + </n.select_option> +</macro> + +<macro name="assignment_field" dot_parameter="do"> + <n.field. name="assignment"><n.do/></n.field.> +</macro> + +<macro name="assignment_priority_field" dot_parameter="do"> + <n.field. name="priority"><n.do/></n.field.> +</macro> + +<macro name="assignment_assignee_field" dot_parameter="do"> + <n.field. name="assignee"><n.do/></n.field.> +</macro> + +<macro name="save_assignment" requires="node_editor,servlet"> + <n.set_local_node.edited_node.topic_or_app/> + <n.if.visitor.can_be_assigned_to.local_node> + <then.if.assignment_field.value> + <then.local_node.> + <n.assign> + <assignee><n.get_user_from_id user_id="[n.assignment_assignee_field.value/]" /></assignee> + <priority><n.assignment_priority_field.value/></priority> + </n.assign> + </then.local_node.> + <else.local_node.unassign/> + </then.if.assignment_field.value> + </n.if.visitor.can_be_assigned_to.local_node> +</macro> + +<macro name="priority_name" requires="node"> + <n.if.is_assigned> + <then.switch. value="[n.priority/]"> + <n.case value="1" do="[t]Highest[/t]" /> + <n.case value="2" do="[t]High[/t]" /> + <n.case value="3" do="[t]Normal[/t]" /> + <n.case value="4" do="[t]Low[/t]" /> + <n.case value="5" do="[t]Lowest[/t]" /> + </then.switch.> + </n.if.is_assigned> +</macro>