workgroup.naml

<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">&nbsp;<n.page_node.priority/>&nbsp;</div> (<n.page_node.priority_name/>)
			</div>
		</then>
	</n.if.both>
</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">&nbsp;<n.priority/>&nbsp;</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">&nbsp;<n.priority/>&nbsp;</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>