Mercurial > genshi > mirror
diff examples/trac/templates/macros.cs @ 39:93b4dcbafd7b trunk
Copy Trac to main branch.
author | cmlenz |
---|---|
date | Mon, 03 Jul 2006 18:53:27 +0000 |
parents | |
children |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/examples/trac/templates/macros.cs @@ -0,0 +1,197 @@ +<?cs def:hdf_select(options, name, selected, optional) ?> + <select size="1" id="<?cs var:name ?>" name="<?cs var:name ?>"><?cs + if:optional ?><option></option><?cs /if ?><?cs + each:option = options ?> + <option<?cs if:option == selected ?> selected="selected"<?cs /if ?>><?cs + var:option ?></option><?cs + /each ?> + </select><?cs +/def?><?cs + +def:labelled_hdf_select(label, options, name, selected, optional) ?><?cs + if:len(options) > #0 ?> + <label for="<?cs var:name ?>"><?cs var:label ?></label><?cs + call:hdf_select(options, name, selected, optional) ?> + </label> + <br /><?cs + /if ?><?cs +/def ?><?cs + +def:browser_path_links(path, file) ?><?cs + set:first = #1 ?><?cs + each:part = path ?><?cs + set:last = name(part) == len(path) - #1 ?><a<?cs + if:first ?> class="first" title="Go to root directory"<?cs + set:first = #0 ?><?cs + else ?> title="View <?cs var:part.name ?>"<?cs + /if ?> href="<?cs var:part.href ?>"><?cs var:part.name ?></a><?cs + if:!last ?><span class="sep">/</span><?cs /if ?><?cs + /each ?><?cs +/def ?><?cs + +def:diff_line_class(block, line) ?><?cs + set:first = name(line) == 0 ?><?cs + set:last = name(line) + 1 == len(block.lines) ?><?cs + if:first || last ?> class="<?cs + if:first ?>first<?cs /if ?><?cs + if:first && last ?> <?cs /if ?><?cs + if:last ?>last<?cs /if ?>"<?cs + /if ?><?cs +/def ?><?cs + +def:diff_display(diff, style) ?><?cs + if:style == 'sidebyside' ?><?cs + each:block = diff ?><?cs + if:block.type == 'unmod' ?><tbody><?cs + each:line = block.base.lines ?><tr><th><?cs + var:#block.base.offset + name(line) + 1 ?></th><td class="l"><span><?cs + var:line ?></span> </td><th><?cs + var:#block.changed.offset + name(line) + 1 ?></th><td class="r"><span><?cs + var:block.changed.lines[name(line)] ?></span> </td></tr><?cs + /each ?></tbody><?cs + elif:block.type == 'mod' ?><tbody class="mod"><?cs + if:len(block.base.lines) >= len(block.changed.lines) ?><?cs + each:line = block.base.lines ?><tr><th><?cs + var:#block.base.offset + name(line) + 1 ?></th><td class="l"><?cs + var:line ?> </td><?cs + if:len(block.changed.lines) >= name(line) + 1 ?><?cs + each:changedline = block.changed.lines ?><?cs + if:name(changedline) == name(line) ?><th><?cs + var:#block.changed.offset + name(changedline) + 1 ?></th><td class="r"><?cs + var:changedline ?> </td><?cs + /if ?><?cs + /each ?><?cs + else ?><th> </th><td class="r"> </td><?cs + /if ?></tr><?cs + /each ?><?cs + else ?><?cs + each:line = block.changed.lines ?><tr><?cs + if:len(block.base.lines) >= name(line) + 1 ?><?cs + each:baseline = block.base.lines ?><?cs + if:name(baseline) == name(line) ?><th><?cs + var:#block.base.offset + name(baseline) + 1 ?></th><td class="l"><?cs + var:baseline ?> </td><?cs + /if ?><?cs + /each ?><?cs + else ?><th> </th><td class="l"> </td><?cs + /if ?> + <th><?cs var:#block.changed.offset + name(line) + 1 ?></th> + <td class="r"><?cs var:line ?> </td></tr><?cs + /each ?><?cs + /if ?></tbody><?cs + elif:block.type == 'add' ?><tbody class="add"><?cs + each:line = block.changed.lines ?><tr><th> </th><td class="l"> </td><th><?cs + var:#block.changed.offset + name(line) + 1 ?></th><td class="r"><ins><?cs + var:line ?></ins> </td></tr><?cs + /each ?><?cs + elif:block.type == 'rem' ?><tbody class="rem"><?cs + each:line = block.base.lines ?><tr><th><?cs + var:#block.base.offset + name(line) + 1 ?></th><td class="l"><del><?cs + var:line ?></del> </td><th> </th><td class="r"> </td></tr><?cs + /each ?><?cs + /if ?></tbody><?cs + /each ?><?cs + else ?><?cs + each:block = diff ?><?cs + if:block.type == 'unmod' ?><tbody><?cs + each:line = block.base.lines ?><tr><th><?cs + var:#block.base.offset + name(line) + #1 ?></th><th><?cs + var:#block.changed.offset + name(line) + #1 ?></th><td class="l"><span><?cs + var:line ?></span> </td></tr><?cs + /each ?></tbody><?cs + elif:block.type == 'mod' ?><tbody class="mod"><?cs + each:line = block.base.lines ?><tr<?cs + if:name(line) == 0 ?> class="first"<?cs /if ?>><th><?cs + var:#block.base.offset + name(line) + #1 ?></th><th> </th><td class="l"><?cs + var:line ?> </td></tr><?cs + /each ?><?cs + each:line = block.changed.lines ?><tr<?cs + if:name(line) + 1 == len(block.changed.lines) ?> class="last"<?cs /if ?>><th> </th><th><?cs + var:#block.changed.offset + name(line) + #1 ?></th><td class="r"><?cs + var:line ?> </td></tr><?cs + /each ?></tbody><?cs + elif:block.type == 'add' ?><tbody class="add"><?cs + each:line = block.changed.lines ?><tr<?cs + call:diff_line_class(block.changed, line) ?>><th> </th><th><?cs + var:#block.changed.offset + name(line) + #1 ?></th><td class="r"><ins><?cs + var:line ?></ins> </td></tr><?cs + /each ?></tbody><?cs + elif:block.type == 'rem' ?><tbody class="rem"><?cs + each:line = block.base.lines ?><tr<?cs + call:diff_line_class(block.base, line) ?>><th><?cs + var:#block.base.offset + name(line) + 1 ?></th><th> </th><td class="l"><del><?cs + var:line ?></del> </td></tr><?cs + /each ?></tbody><?cs + /if ?><?cs + /each ?><?cs + /if ?><?cs +/def ?><?cs + +def:ticket_custom_props(ticket) ?><?cs + each c=ticket.custom ?> + <div class="field custom_<?cs var c.name ?>"><?cs + if c.type == 'text' ?> + <label> + <?cs alt c.label ?><?cs var c.name ?><?cs /alt ?>: + <input type="text" name="custom_<?cs var c.name ?>" value="<?cs var c.value ?>" /> + </label><?cs + elif c.type == 'textarea' ?> + <label> + <?cs alt c.label ?><?cs var c.name ?><?cs /alt ?>:<br /> + <textarea cols="<?cs alt c.width ?>60<?cs /alt ?>" rows="<?cs + alt c.height ?>12<?cs /alt ?>" name="custom_<?cs var c.name ?>"><?cs + var c.value ?></textarea> + </label><?cs + elif c.type == 'checkbox' ?> + <input type="hidden" name="checkbox_<?cs var c.name ?>" /> + <label> + <input type="checkbox" name="custom_<?cs var c.name ?>" value="1"<?cs + if c.selected ?> checked="checked"<?cs /if ?> /> + <?cs alt c.label ?><?cs var c.name ?><?cs /alt ?> + </label><?cs + elif c.type == 'select' ?> + <label> + <?cs alt c.label ?><?cs var c.name ?><?cs /alt ?>: + <select name="custom_<?cs var c.name ?>"><?cs each v = c.option ?> + <option<?cs if v.selected ?> selected="selected"<?cs /if ?>><?cs + var v ?></option><?cs /each ?> + </select> + </label><?cs + elif c.type == 'radio' ?> + <fieldset class="radio"> + <legend><?cs alt c.label ?><?cs var c.name ?><?cs /alt ?>:</legend><?cs + each v = c.option ?> + <label><input type="radio" name="custom_<?cs var c.name ?>" value="<?cs + var v ?>"<?cs if v.selected ?> checked="checked"<?cs /if ?> /> <?cs + var v ?></label><?cs + /each ?> + </fieldset><?cs + /if ?> + </div><?cs + /each ?><?cs +/def ?><?cs + +def:list_of_attachments(attachments, attach_href) ?> +<h2>Attachments</h2><?cs + if:len(attachments) ?><div id="attachments"> + <dl class="attachments"><?cs each:attachment = attachments ?> + <dt><a href="<?cs var:attachment.href ?>" title="View attachment"><?cs + var:attachment.filename ?></a> (<?cs var:attachment.size ?>) - added by <em><?cs + var:attachment.author ?></em> on <?cs + var:attachment.time ?>.</dt><?cs + if:attachment.description ?> + <dd><?cs var:attachment.description ?></dd><?cs + /if ?><?cs + /each ?></dl><?cs + /if ?><?cs + if:attach_href ?> + <form method="get" action="<?cs var:attach_href ?>"><div> + <input type="hidden" name="action" value="new" /> + <input type="submit" value="Attach File" /> + </div></form><?cs + /if ?><?cs if:len(attachments) ?></div><?cs /if ?><?cs +/def ?><?cs + +def:plural(base, count) ?><?cs + var:base ?><?cs if:count != 1 ?>s<?cs /if ?><?cs +/def ?>