source: trac/trunk/templates/macros.cs @ 2985

Revision 2590, 8.2 KB checked in by moschny, 8 years ago (diff)

Merging 0.8-1233 into main branch.

Line 
1<?cs def:hdf_select(options, name, selected) ?>
2 <select size="1" id="<?cs var:name ?>" name="<?cs var:name ?>"><?cs
3  each:option = options ?><?cs
4   if option.name == $selected ?>
5    <option selected="selected"><?cs var:option.name ?></option><?cs
6   else ?>
7    <option><?cs var:option.name ?></option><?cs
8   /if ?><?cs
9  /each ?>
10 </select><?cs
11/def?>
12
13<?cs def:hdf_select_multiple(options, name, size) ?>
14 <select size="<?cs var:size ?>" id="<?cs var:name ?>" name="<?cs
15   var:name ?>" multiple="multiple"><?cs
16  each:option = options ?>
17   <option<?cs if:option.selected ?> selected="selected"<?cs /if ?>><?cs
18    var:option.name ?></option><?cs
19  /each ?>
20 </select><?cs
21/def ?>
22
23<?cs def:browser_path_links(path, file) ?><?cs
24 set:first = #1 ?>
25 <h1><?cs
26  each:part = path ?><?cs
27   set:last = name(part) == len(path) - #1 ?><a<?cs
28   if:first ?> class="first" title="Go to root directory"<?cs
29    set:first = #0 ?><?cs
30   else ?> title="Go to directory"<?cs
31   /if ?> href="<?cs var:part.url ?>"><?cs var:part ?></a><?cs
32   if:file.filename || !last ?><span class="sep">/</span><?cs /if ?><?cs
33 /each ?><?cs
34 if:file.filename ?><span class="filename"><?cs var:file.filename ?></span><?cs
35 /if ?></h1>
36<?cs /def ?>
37
38<?cs def:diff_display(change, style) ?><?cs
39 if:style == 'sidebyside' ?><?cs
40  each:block = change.blocks ?><?cs
41   if:block.type == 'unmod' ?><tbody class="unmod"><?cs
42    each:line = block.base.lines ?><tr>
43     <th class="base"><?cs var:#block.base.offset + name(line) + 1 ?></th>
44     <td class="base"><span><?cs var:line ?></span>&nbsp;</td>
45     <th class="chg"><?cs var:#block.changed.offset + name(line) + 1 ?></th>
46     <td class="chg"><span><?cs var:line ?></span>&nbsp;</td>
47    </tr><?cs /each ?>
48   </tbody><?cs
49   elif:block.type == 'mod' ?><tbody class="mod"><?cs
50    if:len(block.base.lines) >= len(block.changed.lines) ?><?cs
51     each:line = block.base.lines ?><tr>
52      <th class="base"><?cs var:#block.base.offset + name(line) + 1 ?></th>
53      <td class="base"><?cs var:line ?>&nbsp;</td><?cs
54      if:len(block.changed.lines) >= name(line) + 1 ?><?cs
55       each:changedline = block.changed.lines ?><?cs
56        if:name(changedline) == name(line) ?>
57         <th class="chg"><?cs var:#block.changed.offset + name(changedline) + 1 ?></th>
58         <td class="chg"><?cs var:changedline ?>&nbsp;</td><?cs
59        /if ?><?cs
60       /each ?><?cs
61      else ?>
62       <th class="chg">&nbsp;</th>
63       <td class="chg">&nbsp;</td><?cs
64      /if ?>
65     </tr><?cs /each ?><?cs
66    else ?><?cs
67     each:line = block.changed.lines ?><tr><?cs
68      if:len(block.base.lines) >= name(line) + 1 ?><?cs
69       each:baseline = block.base.lines ?><?cs
70        if:name(baseline) == name(line) ?>
71         <th class="base"><?cs var:#block.base.offset + name(baseline) + 1 ?></th>
72         <td class="base"><?cs var:baseline ?>&nbsp;</td><?cs
73        /if ?><?cs
74       /each ?><?cs
75      else ?>
76       <th class="base">&nbsp;</th>
77       <td class="base">&nbsp;</td><?cs
78      /if ?>
79      <th class="chg"><?cs var:#block.changed.offset + name(line) + 1 ?></th>
80      <td class="chg"><?cs var:line ?>&nbsp;</td>
81     </tr><?cs /each ?><?cs
82    /if ?>
83   </tbody><?cs
84   elif:block.type == 'add' ?><tbody class="add"><?cs
85    each:line = block.changed.lines ?><tr>
86     <th class="base">&nbsp;</th>
87     <td class="base">&nbsp;</td>
88     <th class="chg"><?cs var:#block.changed.offset + name(line) + 1 ?></th>
89     <td class="chg"><ins><?cs var:line ?></ins>&nbsp;</td>
90    </tr><?cs /each ?><?cs
91   elif:block.type == 'rem' ?><tbody class="rem"><?cs
92    each:line = block.base.lines ?><tr>
93     <th class="base"><?cs var:#block.base.offset + name(line) + 1 ?></th>
94     <td class="base"><del><?cs var:line ?></del>&nbsp;</td>
95     <th class="chg">&nbsp;</th>
96     <td class="chg">&nbsp;</td>
97    </tr><?cs /each ?><?cs
98   /if ?>
99  </tbody><?cs
100  /each ?><?cs
101 else ?><?cs
102  each:block = change.blocks ?>
103   <?cs if:block.type == 'unmod' ?><tbody class="unmod"><?cs
104    each:line = block.base.lines ?><tr>
105     <th class="base"><?cs var:#block.base.offset + name(line) + #1 ?></th>
106     <th class="chg"><?cs var:#block.changed.offset + name(line) + #1 ?></th>
107     <td class="base"><span><?cs var:line ?></span>&nbsp;</td>
108    </tr><?cs /each ?>
109   </tbody>
110   <?cs elif:block.type == 'mod' ?><tbody class="mod"><?cs
111    each:line = block.base.lines ?><tr class="<?cs
112      if:name(line) == 0 ?>first<?cs /if ?>">
113     <th class="base"><?cs var:#block.base.offset + name(line) + #1 ?></th>
114     <th class="chg">&nbsp;</th>
115     <td class="base"><?cs var:line ?>&nbsp;</td>
116    </tr><?cs /each ?><?cs
117    each:line = block.changed.lines ?><tr class="<?cs
118      if:name(line) + 1 == len(block.changed.lines) ?> last<?cs /if ?>">
119     <th class="base">&nbsp;</th>
120     <th class="chg"><?cs var:#block.changed.offset + name(line) + #1 ?></th>
121     <td class="chg"><?cs var:line ?>&nbsp;</td>
122    </tr><?cs /each ?>
123   </tbody>
124   <?cs elif:block.type == 'add' ?><tbody class="add"><?cs
125    each:line = block.changed.lines ?><tr class="<?cs
126      if:name(line) == 0 ?>first<?cs /if ?><?cs
127      if:name(line) + 1 == len(block.changed.lines) ?> last ?><?cs /if ?>">
128     <th class="base">&nbsp;</th>
129     <th class="chg"><?cs var:#block.changed.offset + name(line) + #1 ?></th>
130     <td class="chg"><ins><?cs var:line ?></ins>&nbsp;</td>
131    </tr><?cs /each ?>
132   </tbody>
133   <?cs elif:block.type == 'rem' ?><tbody class="rem"><?cs
134    each:line = block.base.lines ?><tr class="<?cs
135      if:name(line) == 0 ?>first<?cs /if ?><?cs
136      if:name(line) + 1 == len(block.base.lines) ?> last ?><?cs /if ?>">
137     <th class="base"><?cs var:#block.base.offset + name(line) + 1 ?></th>
138     <th class="chg">&nbsp;</th>
139     <td class="base"><del><?cs var:line ?></del>&nbsp;</td>
140    </tr><?cs /each ?>
141   </tbody>
142   <?cs /if ?><?cs
143  /each ?><?cs
144 /if ?><?cs
145/def ?>
146
147<?cs def:session_name_email() ?><?cs
148  if trac.authname != "anonymous" ?><?cs
149     var:trac.authname ?><?cs
150  elif trac.session.var.name && trac.session.var.email ?><?cs
151     var:trac.session.var.name ?> &lt;<?cs var:trac.session.var.email ?>&gt;<?cs
152  elif !trac.session.var.name && trac.session.var.email ?><?cs
153     var:trac.session.var.email ?><?cs
154  else ?><?cs
155     var:trac.authname ?><?cs
156  /if ?><?cs
157  /def ?>
158
159<?cs def:ticket_custom_props(ticket) ?><?cs
160 each c=ticket.custom ?>
161  <div class="field custom_<?cs var c.name ?>"><?cs
162   if c.type == 'text' || c.type == 'select' ?>
163    <label for="custom_<?cs var c.name ?>"><?cs alt c.label ?><?cs
164      var c.name ?><?cs /alt ?></label>:<?cs
165   /if ?><?cs
166   if c.type == 'text' ?>
167    <input type="text" id="custom_<?cs var c.name ?>" name="custom_<?cs
168      var c.name ?>" value="<?cs var c.value ?>" /><?cs
169   elif c.type == 'textarea' ?>
170    <label for="custom_<?cs var c.name ?>"><?cs alt c.label ?><?cs
171      var c.name ?><?cs /alt ?></label>:<br />
172    <textarea cols="<?cs alt c.width ?>60<?cs /alt ?>" rows="<?cs
173      alt c.height ?>12<?cs /alt ?>" name="custom_<?cs var c.name ?>"><?cs
174      var c.value ?></textarea><?cs
175   elif c.type == 'checkbox' ?>
176    <input type="hidden" name="checkbox_<?cs var c.name ?>" value="custom_<?cs
177      var c.name ?>" />
178    <input type="checkbox" id="custom_<?cs var c.name ?>" name="custom_<?cs
179      var c.name ?>" value="1" <?cs if c.selected ?>checked="checked"<?cs /if ?> />
180    <label for="custom_<?cs var c.name ?>"><?cs alt c.label ?><?cs
181      var c.name ?><?cs /alt ?></label><?cs
182   elif c.type == 'select' ?>
183    <select name="custom_<?cs var c.name ?>"><?cs each v = c.option ?>
184     <option <?cs if v.selected ?>selected="selected"<?cs /if ?>><?cs
185       var v ?></option><?cs /each ?>
186    </select><?cs
187   elif c.type == 'radio' ?>
188    <fieldset class="radio">
189     <legend><?cs alt c.label ?><?cs var c.name ?><?cs /alt ?>:</legend><?cs
190     each v = c.option ?>
191      <input type="radio" id="custom_<?cs var c.name ?>_<?cs
192        var v ?>" name="custom_<?cs var c.name ?>"<?cs
193        if v.selected ?> checked="checked"<?cs /if ?> value="<?cs var v ?>"/>
194      <label for="custom_<?cs var c.name ?>_<?cs var v ?>"><?cs
195        var v ?></label><?cs
196     /each ?>
197    </fieldset><?cs
198   /if ?>
199  </div><?cs
200 /each ?><?cs
201/def ?>
202
203<?cs def:wiki_toolbar(textarea_id) ?>
204<script type='text/javascript'>
205 addWikiFormattingToolbar(document.getElementById("<?cs var:textarea_id ?>"));
206</script>
207<?cs /def ?>
Note: See TracBrowser for help on using the repository browser.