FORUM
<namespace name="naml_tools"/> <macro name="current_macro_source" dot_parameter="do" requires="naml_tools"> <n.if.command_exists id="[n.current_command_id/]"> <then> <n.macro_source. id="[n.current_command_id/]" base="[n.current_base_classes/]" breadcrumbs="[n.current_breadcrumbs/]" > <n.do/> </n.macro_source.> </then> <else> <n.invalid_command_html/> </else> </n.if.command_exists> </macro> <macro name="macro_viewer_header" dot_parameter="text"> <n.put_in_head.> <script type="text/javascript"> function openVideo() { $('#demo-video').slideDown(); }; function closeVideo() { $('#demo-video').slideUp(); }; </script> </n.put_in_head.> <div style="clear:both;padding-top:1em"> <div style="float:left;margin-top:1.1em"> <n.macro_options_dropdown/> </div> <h1 style="margin:.5em 0 1em"><n.text/></h1> </div> <div class="second-font" style="font-size:80%;float:right;margin-top:-4.3em;padding:.3em 0"> <a href="http://naml.nabble.com/" target="_top">NAML documentation</a> <n.naml_video_link/> </div> </macro> <macro name="naml_video_link"> <a href="#" onclick="openVideo()">Watch a video</a> <div id="demo-video" style="display:none;text-align:center;position:fixed;z-index:1001;width:100%;top:3em"> <div class="shaded-bg-color rounded drop-shadow" style="width:450px;height:400px;margin:0 auto;text-align:center"> <div style="text-align:right;padding:.3em .9em"> <a href="#" onclick="closeVideo()"><t>Close</t></a> </div> <iframe width="425" height="349" src="http://www.youtube.com/embed/06hd0keRN80" frameborder="0" allowfullscreen="true"></iframe> </div> </div> </macro> <macro name="macro_viewer" requires="servlet"> <n.naml_tools.> <n.current_macro_source.> <n.html> <head> <meta name="robots" content="noindex,nofollow"/> <n.title.><n.name/></n.title.> <n.macro_viewer_stylesheet/> <n.redirect_if_overridden/> <n.codemirror_shared_head/> <n.macro_viewer_js/> </head> <body> <n.macro_viewer_header.> <n.name/> </n.macro_viewer_header.> <n.important_notices/> <n.source_panel/> </body> </n.html> </n.current_macro_source.> </n.naml_tools.> </macro> <macro name="title" dot_parameter="text" requires="macro_source"> <title><n.root_node.subject/> | NAML - <n.text/></title> </macro> <macro name="breadcrumbs_content" requires="macro_source, naml_tools"> <n.root_node.node_breadcrumbs /> | NAML<sup class="important">alpha</sup> | <n.naml_breadcrumbs/> </macro> <macro name="breadcrumbs_content" requires="naml_tools"> <n.root_node.node_breadcrumbs /> | NAML<sup class="important">alpha</sup> </macro> <macro name="naml_breadcrumbs"> <n.navigation_breadcrumbs.loop.parts.> <n.if.has_more_elements> <then> <a href="[n.part_path/]"><n.name/></a> <span class="weak-color breadcrumbs-arrow" style="padding:0 .25em"> › </span> </then> <else.name/> </n.if.has_more_elements> </n.navigation_breadcrumbs.loop.parts.> </macro> <macro name="codemirror_shared_head"> <style type="text/css"> .CodeMirror-line-numbers { font-family: verdana, arial, sans-serif; font-size: 11pt; width: 2.2em; text-align: right; padding-right: .3em; line-height: normal; border-right-width:2px; border-right-style:solid; } #resizebar { height:8px; background:url('/images/grip.png') #d8d8d8 repeat; border:1px solid #aaa; cursor:n-resize; } </style> <script src="/util/codemirror/js/codemirror.js"></script> <script src="/util/codemirror/js/highlight.js"></script> <script src="/util/codemirror/js/stringstream.js"></script> <script src="/util/codemirror/js/tokenize.js"></script> <script src="/util/codemirror/js/parsexml.js"></script> <script type="text/javascript"> <![CDATA[ function newEditor(height) { var e = CodeMirror.fromTextArea('txt_basic', { parserfile: "parsexml.js", stylesheet: "/util/codemirror/css/xmlcolors.css", path: "/util/codemirror/js/", lineNumbers: true, height: height, indentUnit: 4, }); var $wrapping = $('#txt_basic').next(); $wrapping.attr('id', 'wrapping_basic'); $wrapping.css('margin-top', '.4em'); $wrapping.addClass('medium-border-color border1'); addResizeBar($wrapping); $('div.CodeMirror-line-numbers', $wrapping).addClass('shaded-bg-color medium-border-color'); return e; }; function addResizeBar($wrapping) { $wrapping.after('<div id="resizebar"></div>'); var dragging = false; function startDrag(e) { if ($(e.target).attr('id') == 'resizebar') dragging = true; if (dragging && typeof e.preventDefault != 'undefined') e.preventDefault(); }; function endDrag(e) { dragging = false; }; function drag(e, x, y) { e.stopPropagation(); if (dragging) { var h = y - $wrapping.offset().top - 5; $wrapping.height(h < 100? 100 : h); } }; function onSelectStart() { if (dragging) return false; }; var frame = window.frames[1]; $(frame.document) .mousemove(function(e) { var x = e.pageX + $wrapping.offset().left; var y = e.pageY + $wrapping.offset().top; drag(e, x, y); }) .mouseup(function(e) { endDrag(e); }) .select(onSelectStart); $(document) .mousemove(function(e) { drag(e, e.pageX, e.pageY); }) .mousedown(function(e) { startDrag(e); }) .mouseup(function(e) { endDrag(e); }) .select(onSelectStart); }; var basicEditor; function inlineEditor(height, line, col) { if (!basicEditor) basicEditor = newEditor(height); function showCaret() { var $lines = $('#wrapping_basic div.CodeMirror-line-numbers').children(); if (basicEditor.editor && $lines.size() > 5) { if (line) { if (col) { var ln = basicEditor.nthLine(line); basicEditor.selectLines(ln, col); } else basicEditor.jumpToLine(line); } else basicEditor.jumpToLine(1); } else setTimeout(showCaret, 200); }; showCaret(); }; function getLineNumber(s, token) { var line = 1; var pos = s.indexOf(token); for (var i=0; i < pos; i++) { if (s.charAt(i) == '\n') line++; } return line; }; ]]> </script> </macro> <macro name="macro_viewer_js"> <script type="text/javascript"> var isCustomTweak = <n.is_custom_tweak/>; var pBase = '&base=<n.hide_null.current_base_classes/>'; var pBreadcrumbs = '<n.hide_null.current_breadcrumbs/>'; pBreadcrumbs = pBreadcrumbs == ''? '' : '&breadcrumbs=' + pBreadcrumbs; var isSiteAdmin = <n.visitor.is_site_admin/>; var tweakFileContents = "<n.javascript_string_encode.hide_null.tweak_file_contents/>"; var macroOpeningTag = "<n.javascript_string_encode.hide_null.macro_opening_tag/>"; $(document).ready(function() { function lineSelector(e) { return 'div.line'+e.id.substring(8); }; var $lineDivs = $('table.code div.line-contents'); $lineDivs.hover( function() { $(lineSelector(this), $(this).parent().prev()).css('font-weight','bold').addClass('dark-bg-color'); }, function() { $(lineSelector(this), $(this).parent().prev()).css('font-weight','normal').removeClass('dark-bg-color'); } ); function fixHeights() { $lineDivs.each(function() { var h = $(this).outerHeight(); var $table = $(this).parents('table'); $(lineSelector(this), $table).height(h); }); } $(window).resize(fixHeights); fixHeights(); var $textarea = $('#txt_basic'); var textareaValue = $textarea.val().replace(/\s*/g, ''); var originalFileContents = tweakFileContents.replace(/\s*/g, ''); if (textareaValue != originalFileContents) { showEditor(); } window.onbeforeunload = function() { $textarea.val(basicEditor.getCode()); }; }); function openNamlLogin() { $('#naml-login').slideDown(); }; function showEditor() { if (!isSiteAdmin) { openNamlLogin(); return; } $('#saveButton,#cancelButton,#wrapping_basic,#resizebar').show(); $('#editButton,#removeButton').hide(); if (isCustomTweak) $('#current-source').hide(); else $('#overrides-arrow').show(); var line = getLineNumber(tweakFileContents, macroOpeningTag); inlineEditor('20em', line); }; function saveChanges() { notice('Saving...'); var call = '/template/NamlServlet.jtp?macro=save_tweak&id=<n.id/>' + pBase + pBreadcrumbs + Nabble.getClientID(); var code = basicEditor.getCode(); if (code.match(/^\s*$/) != null) { notice('Error Found', 3000, 1500); var msg = "Error: invalid macro code."; $('#error-box').html(formatError(msg)).show(); return; } var params = { contents: code }; $.post(call, params, function(data) { if (data.indexOf('Error:') == 0) { notice('Error Found', 3000, 1500); data = data.replace(/\n/g, "<br/>"); data = data.replace(/\t/g, "<span style='padding:0 2em'> </span>"); data = '<img src="/images/icon_alert_sm.png" class="image16"/> ' + data; var $errorBox = $('#error-box'); $errorBox.html(data).show(); if ($errorBox.height() > 150) { $errorBox.css('overflow-y','scroll').height(150); } } else { var url = '/template/NamlServlet.jtp?macro=macro_viewer&id=' + String(data) + pBase + pBreadcrumbs + Nabble.getClientID(); window.location = url; } } ); }; function cancelChanges() { $('#saveButton,#cancelButton,#wrapping_basic,#resizebar,#error-box').hide(); $('#editButton,#removeButton').show(); if (isCustomTweak) $('#current-source').show(); else $('#overrides-arrow').hide(); basicEditor.setCode(tweakFileContents); }; function removeOverride() { if (!isSiteAdmin) { openNamlLogin(); return; } <n.if.is_override> <then> var confirmQuestion = "Do you really want to remove this override?"; var nextUrl = "<n.use_text_encoder.path_to_overridden_macro/>"; </then> <else> var confirmQuestion = "Do you really want to remove this macro?"; var nextUrl = "<n.use_text_encoder.macro_deleted_path/>"; </else> </n.if.is_override> if( !confirm(confirmQuestion) ) return; var call = '/template/NamlServlet.jtp?macro=revert_tweak&id=<n.id/>' + pBase + pBreadcrumbs + Nabble.getClientID(); $.get(call, function(data) { if (Nabble.trim(data) == 'ok') window.location = nextUrl + Nabble.getClientID(); }); }; </script> </macro> <macro name="macro_viewer_stylesheet"> <style type="text/css"> table.code { width: 100%; font-family: verdana, arial, sans-serif; font-size: 11pt; border-collapse:collapse; margin:.35em 0; } table.code tr { vertical-align:top; } table.code td { padding: 0; } table.code td.line-number { width: 2em; text-align:right; padding-right:.3em; border-right-width:2px; border-right-style:solid; } table.code td.line-contents { padding-left: .5em; } table.code a { text-decoration:none; } table.code a:hover { text-decoration:underline; } </style> </macro> <macro name="source_panel" requires="macro_source"> <n.editor_left_controls/> <n.documentation/> <div style="clear:both"> <n.source_contents/> <n.overridden_macro_source/> </div> </macro> <macro name="source_contents"> <n.if.not.is_binary> <then> <div id="error-box" class="error-message" style="padding:.5em;display:none"></div> <textarea id="txt_basic" style="display:none"><n.encode.tweak_file_contents/></textarea> <div id="current-source"> <div id="overrides-arrow" style="display:none"> <n.overrides_arrow/> </div> <n.show_notice_if_not_compiled/> <table class="code"> <n.source_row/> <tr> <n.line_numbers_column/> <n.line_contents_column/> </tr> </table> </div> </then> </n.if.not.is_binary> </macro> <macro name="show_notice_if_not_compiled"> <n.if.not.is_compiled> <then> <div class="info-message rounded" style="padding:.4em; margin:.2em 0"> The source code below doesn't have navigation links because no usage has been compiled yet. You can <a href="[n.current_find_usages_path/]">try finding all usages of "<n.name/>"</a>. </div> </then> </n.if.not.is_compiled> </macro> <macro name="line_numbers_column"> <td class="line-number weak-color medium-border-color shaded-bg-color"> <n.rows.loop.> <div class="line[n.file_line_number/]"><n.file_line_number/></div> </n.rows.loop.> </td> </macro> <macro name="line_contents_column"> <td class="line-contents"> <n.rows.loop.> <div id="contents[n.file_line_number/]" class="line-contents"> <n.current_row_contents/> </div> </n.rows.loop.> </td> </macro> <macro name="current_row_contents" requires="macro_row_list"> <n.current_row.> <n.if.is_blank> <then> </then> <else> <n.loop.parts.> <n.if.not.is_null.id> <then> <n.remove_spaces_between_tags.> <a href="[n.part_path/]"><n.tag/></a> <n.part_tooltip/> </n.remove_spaces_between_tags.> </then> <else.name/> </n.if.not.is_null.id> </n.loop.parts.> </else> </n.if.is_blank> </n.current_row.> </macro> <macro name="part_tooltip" requires="command_info"> <n.tooltip.> <n.if.is_binary> <then> <div class="bold">Binary</div> <n.tooltip_small_row.><b>Namespace:</b> <n.namespace_class/></n.tooltip_small_row.> <n.tooltip_parameters/> </then> <else> <div class="bold">Macro</div> <n.if.not.is_empty.required_namespaces> <then> <n.tooltip_small_row.><b>Requires:</b> <n.required_namespaces/></n.tooltip_small_row.> </then> </n.if.not.is_empty.required_namespaces> <n.tooltip_parameters/> </else> </n.if.is_binary> </n.tooltip.> </macro> <macro name="tooltip_parameters"> <n.if.has_parameters> <then> <n.tooltip_small_row.> <b>Parameters:</b> <n.remove_spaces.parameter_names.loop.> <n.current_string/> <n.if.has_more_strings> <then>, </then> </n.if.has_more_strings> </n.remove_spaces.parameter_names.loop.> </n.tooltip_small_row.> </then> </n.if.has_parameters> </macro> <macro name="important_notices"> <n.if.has_tweak_exception> <then> <div class="weak-color info-message rounded" style="margin:.3em 0;padding:.3em .2em"> <table style="width:100%;table-layout:fixed"> <tr style="vertical-align:top"> <td style="width:32px"><img src="/images/icon_alert.png" style="width:32px;height:32px"/></td> <td> <b>Error Found</b><br/> An error was found in the NAML code of this application – <span class="view-exception-details"> <a href="#" onclick="showExceptionDetails(true)">View Details</a> </span> <span class="hide-exception-details invisible"> <a href="#" onclick="showExceptionDetails(false)">Hide Details</a> </span> | <n.advanced_editor_link text="[t]Go to NAML Editor[/t]"/> <n.put_in_head.> <style type="text/css"> div.stacktrace { width:100%; overflow:auto; white-space:nowrap; display:none; margin-top:.5em; font-size:80%; } </style> <script type="text/javascript"> function showExceptionDetails(show) { if (show) { $('div.stacktrace').slideDown(function() { $(this).show() }); $('span.view-exception-details').hide(); $('span.hide-exception-details').show(); } else { $('div.stacktrace').hide(); $('span.view-exception-details').show(); $('span.hide-exception-details').hide(); } }; </script> </n.put_in_head.> <div class="stacktrace"> <n.regex_replace_all. pattern="\t+" replacement=" "> <n.regex_replace_all. pattern="\n+" replacement="[br/]"> <n.use_html_encoder.encode.tweak_exception_message/> </n.regex_replace_all.> </n.regex_replace_all.> </div> </td> </tr> </table> </div> </then> </n.if.has_tweak_exception> </macro> <macro name="path_to_overridden_macro"> <n.macro_viewer_path id="[n.macro_overridden_id/]" base="[n.current_base_classes/]" breadcrumbs="[n.current_breadcrumbs/]"/> </macro> <macro name="path_to_macro_which_overrides"> <n.macro_viewer_path id="[n.macro_which_overrides_id/]" base="[n.current_base_classes/]" breadcrumbs="[n.current_breadcrumbs/]"/> </macro> <macro name="save_button" requires="macro_source"> <button id="saveButton" class="toolbar" style="font-weight:bold;display:none" onclick="saveChanges()"> Save Changes </button> </macro> <macro name="cancel_button" requires="macro_source"> <button id="cancelButton" class="toolbar" style="font-weight:bold;display:none" onclick="cancelChanges()"> Cancel </button> </macro> <macro name="edit_button" requires="macro_source"> <button id="editButton" class="toolbar" style="font-weight:bold" onclick="showEditor()"> <img src="/images/tool.png" style="width:16px;height:17px;vertical-align:-25%"/> <n.if.is_custom_tweak> <then> <n.if.is_override> <then>Edit this override</then> <else>Edit this macro</else> </n.if.is_override> </then> <else>Override this macro</else> </n.if.is_custom_tweak> </button> </macro> <macro name="remove_button" requires="macro_source"> <n.if.is_custom_tweak> <then> <button id="removeButton" class="toolbar" style="font-weight:bold" onclick="removeOverride()"> <img src="/images/remove_sm.png" style="width:15px;height:15px;vertical-align:-25%"/> <n.if.is_override> <then>Remove override</then> <else>Remove macro</else> </n.if.is_override> </button> </then> </n.if.is_custom_tweak> </macro> <macro name="editor_left_controls"> <div style="margin:.5em 0"> <n.if.not.is_binary> <then> <n.save_button/> <n.cancel_button/> <n.edit_button/> <n.remove_button/> <n.usages_link/> </then> </n.if.not.is_binary> </div> <n.if.not.visitor.is_site_admin> <then> <div id="naml-login" class="border1 medium-border-color" style="padding:1em; display:none"> <div class="bold">You must login as an administrator of <n.root_node.subject/>.</div> <div class="weak-color" style="margin-bottom:1em"> If you are not the administrator, you can <n.nabble_homepage_link.>create your own Nabble app</n.nabble_homepage_link.> and customize its NAML code! </div> <n.nextUrl_field.set_value value="[n.use_text_encoder.current_url/]"/> <n.login_form/> </div> </then> </n.if.not.visitor.is_site_admin> </macro> <macro name="usages_link" requires="macro_source"> <a href="[n.current_find_usages_path/]" onclick="waitAnimation()">Usages of this macro</a> </macro> <macro name="macro_options_dropdown"> <n.dropdown. id="macrodropdown" element="[n.options_button/]" loadOnClick="/template/NamlServlet.jtp?macro=macro_dropdown_later" > <n.menu_custom_macros/> <n.menu_configuration_macros/> <n.menu_create_macro/> <n.menu_macro_search/> <n.menu_view_logs/> <n.menu_separator/> <n.menu_open_advanced_editor/> </n.dropdown.> <n.custom_macros_contents/> <n.configuration_macros_contents/> </macro> <macro name="options_button"> <button class="toolbar" style="font-weight:bold" title="[t]Click for more options[/t]"> <img src="/images/gear.png" class="image16"/> <img src="/images/more.png" width="10" height="10"/> </button> </macro> <macro name="macro_dropdown_later" requires="servlet"> <n.javascript_response/> <n.menu_create_macro/> <n.menu_open_advanced_editor/> </macro> <macro name="menu_custom_macros"> dropdown.addCustomSubmenu('Customized macros', 'custom-macros-box'); </macro> <macro name="menu_configuration_macros"> <n.if.has_configuration_macros> <then>dropdown.addCustomSubmenu('Macros overridden by configurations', 'configuration-macros-box');</then> </n.if.has_configuration_macros> </macro> <macro name="custom_macros_contents"> <n.custom_macros.list_macros_available id="custom-macros-box"/> </macro> <macro name="configuration_macros_contents"> <n.if.has_configuration_macros> <then.configuration_macros.list_macros_available id="configuration-macros-box"/> </n.if.has_configuration_macros> </macro> <macro name="list_macros_available" parameters="id" requires="command_list"> <n.put_in_head.> <style type="text/css"> ul.dropdown-submenu { max-height:20em; overflow-y:auto; } ul.dropdown-submenu li { padding-right:1em; } </style> </n.put_in_head.> <ul id="[n.id/]" class="dropdown-submenu light-bg-color medium-border-color drop-shadow"> <n.if.has_more_elements> <then> <n.loop.current_command.> <li class="nowrap"> <a href="[n.command_path/]"><n.name/></a> <n.if.not.is_empty.required_namespaces> <then> <n.tooltip. delay="50" position="right">Requires <n.required_namespaces/></n.tooltip.> </then> </n.if.not.is_empty.required_namespaces> </li> </n.loop.current_command.> </then> <else> <li class="weak-color" style="padding:.4em .8em">None</li> </else> </n.if.has_more_elements> </ul> </macro> <macro name="find_usages_link"> <a href="[n.current_find_usages_path/]">Find all usages of <n.name/></a> </macro> <macro name="menu_macro_search"> dropdown.add('searchMacros', '<n.javascript_string_encode.macro_search_link/>'); </macro> <macro name="macro_search_link"> <a href="[n.macro_search_path/]">Search macros</a> </macro> <macro name="macro_search_path"> <n.encode_url.> /template/NamlServlet.jtp?macro=macro_search_page </n.encode_url.> </macro> <macro name="menu_view_logs"> dropdown.add('viewLogs', '<n.javascript_string_encode.root_node.view_logs_link/>'); </macro> <macro name="menu_create_macro"> <n.if.is_in_command name="dropdown"> <then> dropdown.add('createMacro', '<n.javascript_string_encode.create_macro_link/>', 'display:none'); </then> <else> <n.if.visitor.is_site_admin> <then> NabbleDropdown.show('createMacro'); </then> </n.if.visitor.is_site_admin> </else> </n.if.is_in_command> </macro> <macro name="menu_open_advanced_editor"> <n.if.is_in_command name="dropdown"> <then> dropdown.add('openAdvEditor', '<n.javascript_string_encode.advanced_editor_link/>', 'display:none'); </then> <else> <n.if.visitor.is_site_admin> <then> NabbleDropdown.show('openAdvEditor'); </then> </n.if.visitor.is_site_admin> </else> </n.if.is_in_command> </macro> <macro name="advanced_editor_link" dot_parameter="text" parameters="title, class"> <a href="[n.current_advanced_editor_path/]" class="[n.class/]" rel="nofollow" title="[n.title/]" target="_top"> <n.default. to="[t]Go to Advanced Editor[/t]"><n.text/></n.default.> </a> </macro> <macro name="current_advanced_editor_path"> <n.advanced_editor_path prev_url="[n.current_url/]"/> </macro> <macro name="create_macro_link"> <a href="[n.create_macro_path/]">Create new macro</a> </macro> <macro name="macro_viewer_path" parameters="id,base,breadcrumbs"> <n.encode_url.remove_spaces.> /template/NamlServlet.jtp?macro=macro_viewer &id=<n.encode_text.id/> <n.add_to_path name="base" value="[n.base/]" /> <n.add_to_path name="breadcrumbs" value="[n.breadcrumbs/]" /> </n.encode_url.remove_spaces.> </macro> <macro name="part_path" requires="command_info"> <n.macro_viewer_path> <id><n.id/></id> <base><n.base/></base> <breadcrumbs><n.naml_breadcrumbs/></breadcrumbs> </n.macro_viewer_path> </macro> <macro name="macro_viewer_page_link"> <a href="[n.macro_viewer_page_path/]" rel="nofollow">See how NAML generates this page</a> </macro> <macro name="macro_viewer_page_path"> <n.macro_viewer_path> <id><n.page_template_command_id/></id> <base><n.page_base_classes/></base> </n.macro_viewer_path> </macro> <macro name="find_usages_path" parameters="id,base,breadcrumbs"> <n.encode_url.remove_spaces.> /template/NamlServlet.jtp?macro=find_usages_page &id=<n.encode_text.id/> <n.add_to_path name="base" value="[n.base/]" /> <n.add_to_path name="breadcrumbs" value="[n.breadcrumbs/]" /> </n.encode_url.remove_spaces.> </macro> <macro name="current_find_usages_path"> <n.find_usages_path> <id><n.current_command_id/></id> <base><n.current_base_classes/></base> <breadcrumbs><n.current_breadcrumbs/></breadcrumbs> </n.find_usages_path> </macro> <macro name="find_usages_page" requires="servlet"> <n.if.command_exists id="[n.current_command_id/]"> <then> <n.macro_source. id="[n.current_command_id/]" base="[n.current_base_classes/]" breadcrumbs="[n.current_breadcrumbs/]" > <n.find_usages_html/> </n.macro_source.> </then> <else> <n.invalid_command_html/> </else> </n.if.command_exists> </macro> <macro name="find_usages_html" requires="macro_source"> <n.compile_if_needed/> <n.naml_tools.> <n.html> <head> <meta name="robots" content="noindex,nofollow"/> <n.title.>Usages of <n.name/></n.title.> <style type="text/css"> div.usage-path { padding: .5em; } </style> </head> <body> <n.macro_viewer_header.> Usages of <n.name/> </n.macro_viewer_header.> <n.macro_usages.> <n.if.not.has_more_elements> <then> <b>No usages found.</b> Some possible reasons are: <ul> <li>This macro is called directly from the URL or from the java code;</li> <li>This macro is not used at all;</li> </ul> « <a href="javascript:void history.back()">Go Back</a> </then> </n.if.not.has_more_elements> <n.loop.> <div class="[n.alternate var='usages' first_value='usage-path' second_value='usage-path light-bg-color'/]"> <n.remove_spaces_between_tags.> <n.current_usage.loop.> <a href="[n.current_command.command_path/]"><n.current_command.name/></a> <n.if.has_more_elements> <then><span style="padding:0 .5em">›</span></then> </n.if.has_more_elements> </n.current_usage.loop.> </n.remove_spaces_between_tags.> </div> </n.loop.> </n.macro_usages.> </body> </n.html> </n.naml_tools.> </macro> <macro name="redirect_if_overridden" requires="macro_source"> <n.if.has_macro_which_overrides> <then> <script type="text/javascript"> location = '<n.use_text_encoder.path_to_macro_which_overrides/>'; </script> </then> </n.if.has_macro_which_overrides> </macro> <subroutine name="overridden_macro_source" requires="basic,nabble,servlet,html,macro_source"> <n.if.has_macro_overridden> <then> <n.macro_source. id="[n.macro_overridden_id/]" base="[n.current_base_classes/]" breadcrumbs="[n.current_breadcrumbs/]"> <n.overrides_arrow/> <table class="code"> <n.source_row/> <tr> <n.line_numbers_column/> <n.line_contents_column/> </tr> </table> <n.overridden_macro_source/> </n.macro_source.> </then> </n.if.has_macro_overridden> </subroutine> <macro name="overrides_arrow" requires="macro_source"> <div style="font-weight:bold;margin:.5em"> <span style="font-size:300%;font-family:Arial,Sans-serif;line-height:.9em;vertical-align:-15%">↓</span> <n.if.is_custom_tweak> <then>Overrides administrator change</then> <else> <n.if.is_configuration_tweak> <then>Overrides configuration</then> <else>Overrides default macro</else> </n.if.is_configuration_tweak> </else> </n.if.is_custom_tweak> </div> </macro> <macro name="source_row" requires="macro_source"> <tr> <td class="line-number weak-color medium-border-color shaded-bg-color" style="font-size:75%;padding-bottom:.4em">...</td> <td class="line-contents weak-color" style="font-size:75%;padding-bottom:.4em"> in <a href="[n.source_path/]"><n.clean_source_name.source/></a> </td> </tr> </macro> <macro name="clean_source_name" dot_parameter="source"> <n.regex_replace_all. pattern="^.+:" replacement=""> <n.source/> </n.regex_replace_all.> </macro> <macro name="revert_tweak" requires="servlet"> <n.if.visitor.is_site_admin> <then.macro_editor. id="[n.current_command_id/]" base="[n.current_base_classes/]" breadcrumbs="[n.current_breadcrumbs/]"> <n.revert/> ok </then.macro_editor.> </n.if.visitor.is_site_admin> </macro> <macro name="save_tweak" requires="servlet"> <n.if.visitor.is_site_admin> <then.macro_editor. id="[n.current_command_id/]" base="[n.current_base_classes/]" breadcrumbs="[n.current_breadcrumbs/]"> <n.save contents="[n.get_parameter name='contents'/]"/> </then.macro_editor.> </n.if.visitor.is_site_admin> </macro> <macro name="command_path" requires="command_info"> <n.macro_viewer_path> <id><n.use_text_encoder.id/></id> <base><n.base/></base> <breadcrumbs><n.naml_breadcrumbs/></breadcrumbs> </n.macro_viewer_path> </macro> <macro name="invalid_command_html"> <n.naml_tools.> <n.html> <head> <meta name="robots" content="noindex,nofollow"/> <n.title.>Invalid Command</n.title.> </head> <body> <n.macro_viewer_header.> Invalid Command </n.macro_viewer_header.> <n.if.command_is_binary id="[n.current_command_id/]"> <then> <h2>Command Not Found</h2> Meaning ID: <n.current_command_id/> </then> <else> <n.set_var. name="macro_name"> <n.command_name id="[n.current_command_id/]"/> </n.set_var.> The macro you are looking for could not be found (it may have been modified recently): <div style="font-size:120%;margin:.6em"> <n.bold.var name="macro_name"/> in <i><n.command_source_name id="[n.current_command_id/]"/></i> </div> <n.macro_search. query="[n.var name='macro_name'/]" search_by="name"> <n.if.has_more_elements> <then> <div style="margin:1.5em 0 0"> Here you can find other related macros: </div> <n.macro_results_table/> </then> </n.if.has_more_elements> </n.macro_search.> </else> </n.if.command_is_binary> </body> </n.html> </n.naml_tools.> </macro> <macro name="macro_search_page" requires="servlet"> <n.naml_tools.> <n.html> <head> <meta name="robots" content="noindex,follow"/> <n.title.>Search Macros</n.title.> <script type="text/javascript"> $(document).ready(function() { var $input = $('#search_field'); $input.keydown(function(event) { if (event.keyCode == 13) { event.preventDefault(); $('form').submit(); } }); $input.focus(); }); </script> </head> <body> <n.macro_viewer_header.> Macro Search </n.macro_viewer_header.> <n.if.is_empty.search_by_field.value> <then.search_by_field.set_value value="name"/> </n.if.is_empty.search_by_field.value> <n.form. macro="macro_search_page" method="GET"> <img src="/images/search.png" class="image16"/> <input id="search_field" type="text" size="25" name="query" value="[n.hide_null.macro_search_query/]"/> <input class="toolbar action-button" type="submit" value="[t]Search[/t]"/> <div style="clear:both;padding:.3em 0 0 1em"> <n.search_by_field.radio id="by_name" option_value="name"/> <label for="by_name">Macro by name</label><br/> <n.search_by_field.radio id="by_text" option_value="text"/> <label for="by_text">Macro source contains</label><br/> </div> </n.form.> <div style="margin-top:1em"> <n.macro_search_results query="[n.macro_search_query/]" search_by="[n.search_by_field.value/]"/> </div> </body> </n.html> </n.naml_tools.> </macro> <macro name="macro_search_results" parameters="query, search_by"> <n.macro_search. query="[n.query/]" search_by="[n.search_by/]"> <n.if.not.has_more_elements> <then> <n.if.not.is_null.macro_search_query> <then> <div class="big-title second-font">No macros found.</div> </then> </n.if.not.is_null.macro_search_query> </then> <else> <div class="big-title second-font"> <n.element_count/> macro(s) found. </div> <n.macro_results_table/> </else> </n.if.not.has_more_elements> </n.macro_search.> </macro> <macro name="macro_results_table" requires="command_list"> <n.put_in_head.> <style type="text/css"> table.macro-results { margin-top:.5em; border-spacing: 0; } table.macro-results td { padding: .4em 1.2em; } </style> </n.put_in_head.> <n.zebra_table_javascript table_selector="#macro-results"/> <table id="macro-results" class="macro-results weak-color"> <tr class="shaded-bg-color bold"> <td>Macro Name</td> <td>Requires</td> <td>Source File</td> </tr> <n.loop.current_command.> <tr style="[n.if.is_custom_tweak][then]font-weight:bold[/then][/n.if.is_custom_tweak]"> <td><a href="[n.command_path/]"><n.name/></a></td> <td><em><n.hide_null.required_namespaces/></em></td> <td><n.clean_source_name.source/></td> </tr> </n.loop.current_command.> </table> </macro> <macro name="macro_search_query"> <n.get_parameter name="query"/> </macro> <macro name="current_command_id"> <n.get_parameter name="id"/> </macro> <macro name="current_base_classes"> <n.get_parameter name="base"/> </macro> <macro name="current_breadcrumbs"> <n.get_parameter name="breadcrumbs"/> </macro> <macro name="search_by_field" dot_parameter="do"> <n.field. name="search_by"><n.do/></n.field.> </macro> <macro name="compile_if_needed"> <n.if.not.is_compiled_all> <then.run_compile_all/> </n.if.not.is_compiled_all> </macro> <macro name="create_macro_page" requires="servlet"> <n.naml_tools.> <n.html> <head> <meta name="robots" content="noindex,nofollow"/> <n.title.>Create New Macro</n.title.> <n.codemirror_shared_head/> <script type="text/javascript"> <![CDATA[ var defaultMacroBody = '<macro name="">\n\n</'+'macro>'; $(document).ready(function() { var $textarea = $('#txt_basic'); if ($textarea.val() == '') $textarea.val(defaultMacroBody); var canGoBack = history.length > 1; if (canGoBack) $('#go-back').show().before('<t>or</t> '); inlineEditor('27em', 1, 13); window.onbeforeunload = function() { $textarea.val(basicEditor.getCode()); }; }); function formatError(msg) { msg = msg.replace(/\n/g, "<br/>"); msg = msg.replace(/\t/g, "<span style='padding:0 2em'> </span>"); msg = '<img src="/images/icon_alert_sm.png" class="image16"/> ' + msg; return msg; }; function saveChanges() { notice('Saving...'); var call = '/template/NamlServlet.jtp?macro=save_tweak' + Nabble.getClientID(); var code = basicEditor.getCode(); if (code.match(/^\s*$/) != null) { notice('Error Found', 3000, 1500); var msg = "Error: invalid macro code."; var $errorBox = $('#error-box'); $errorBox.html(formatError(msg)).show(); if ($errorBox.height() > 150) { $errorBox.css('overflow-y','scroll').height(150); } return; } var params = { contents: code }; $.post(call, params, function(data) { if (data.indexOf('Error:') == 0) { notice('Error Found', 3000, 1500); $('#error-box').html(formatError(data)).show(); } else { var url = '/template/NamlServlet.jtp?macro=macro_viewer&id=' + String(data) + Nabble.getClientID(); window.location = url; } } ); }; ]]> </script> </head> <body> <n.macro_viewer_header.> Create New Macro </n.macro_viewer_header.> <n.important_notices/> <div style="clear:both"> <n.macro_options_dropdown/> <button id="saveButton" class="toolbar" style="font-weight:bold" onclick="saveChanges()"> Save Changes </button> <a id="go-back" href="javascript: void history.back()" style="display:none"><t>Go back</t></a> <div style="clear:both"> <div id="error-box" class="error-message" style="padding:.5em;display:none"></div> <textarea id="txt_basic" style="display:none"></textarea> </div> </div> </body> </n.html> </n.naml_tools.> </macro> <macro name="macro_deleted_page" requires="servlet"> <n.naml_tools.> <n.html> <head> <meta name="robots" content="noindex,nofollow"/> <n.title.>Macro Deleted</n.title.> </head> <body> <n.macro_viewer_header.> Macro Deleted </n.macro_viewer_header.> <n.important_notices/> <div style="clear:both"> <h2 style="padding-bottom:1em"> <img src="/images/success.png" class="image16"/> Macro successfully deleted. </h2> <n.macro_options_dropdown/> </div> <br/> <br/> </body> </n.html> </n.naml_tools.> </macro> <macro name="create_macro_path"> <n.encode_url.> /template/NamlServlet.jtp?macro=create_macro_page </n.encode_url.> </macro> <macro name="macro_deleted_path"> <n.encode_url.> /template/NamlServlet.jtp?macro=macro_deleted_page </n.encode_url.> </macro>
Read Users' Comments (0)