0
|
1 <macro name="app_dropdown" requires="node">
|
|
2 <n.dropdown.
|
|
3 id="appdropdown"
|
|
4 text="[t]Options[/t]"
|
|
5 title="[t]Click for more options[/t]"
|
|
6 loadOnClick="/template/NamlServlet.jtp?macro=app_dropdown_later&node=[n.id/]"
|
|
7 >
|
|
8 <n.menu_subscription/>
|
|
9 <n.menu_post_by_email/>
|
|
10
|
|
11 <n.menu_separator/>
|
|
12
|
|
13 <n.menu_group. text="[t]Application[/t]">
|
|
14 <n.menu_edit_name_and_description/>
|
|
15 <n.menu_change_type/>
|
|
16 <n.menu_change_appearance/>
|
|
17 <n.menu_change_domain_name/>
|
|
18 <n.menu_mailing_list_archive_settings/>
|
|
19 <n.menu_change_language/>
|
|
20 <n.menu_change_title_and_meta_tags/>
|
|
21 <n.menu_extras_and_addons/>
|
|
22 <n.menu_use_google_analytics/>
|
|
23 </n.menu_group.>
|
|
24
|
|
25 <n.menu_group. text="[t]Structure[/t]">
|
|
26 <n.menu_create_sub_app/>
|
|
27 <n.menu_manage_pinned_topics/>
|
|
28 <n.menu_manage_sub_apps/>
|
|
29 <n.menu_parent_options/>
|
|
30 </n.menu_group.>
|
|
31
|
|
32 <n.menu_group. text="[t]Users[/t]">
|
|
33 <n.menu_change_permissions/>
|
|
34 <n.menu_manage_users_and_groups/>
|
|
35 <n.menu_manage_subscribers/>
|
|
36 <n.menu_manage_banned_users/>
|
|
37 </n.menu_group.>
|
|
38
|
|
39 <n.menu_separator/>
|
|
40
|
|
41 <n.menu_embedding_options/>
|
|
42 <n.menu_download_backup/>
|
|
43 <n.menu_delete/>
|
|
44
|
|
45 <n.other_menu_entries/>
|
|
46
|
|
47 <n.menu_sysadmin_options/>
|
|
48 </n.dropdown.>
|
|
49 </macro>
|
|
50
|
|
51 <macro name="app_dropdown_later" requires="servlet">
|
|
52 <n.javascript_response/>
|
|
53 <n.get_node_from_parameter.>
|
|
54 <n.menu_subscription/>
|
|
55 <n.menu_post_by_email/>
|
|
56
|
|
57 <n.menu_edit_name_and_description/>
|
|
58 <n.menu_change_type/>
|
|
59 <n.menu_change_appearance/>
|
|
60 <n.menu_change_domain_name/>
|
|
61 <n.menu_mailing_list_archive_settings/>
|
|
62 <n.menu_change_language/>
|
|
63 <n.menu_change_title_and_meta_tags/>
|
|
64 <n.menu_extras_and_addons/>
|
|
65 <n.menu_use_google_analytics/>
|
|
66
|
|
67 <n.menu_create_sub_app/>
|
|
68 <n.menu_manage_pinned_topics/>
|
|
69 <n.menu_manage_sub_apps/>
|
|
70 <n.menu_parent_options/>
|
|
71
|
|
72 <n.menu_change_permissions/>
|
|
73 <n.menu_manage_users_and_groups/>
|
|
74 <n.menu_manage_subscribers/>
|
|
75 <n.menu_manage_banned_users/>
|
|
76
|
|
77 <n.menu_embedding_options/>
|
|
78 <n.menu_download_backup/>
|
|
79 <n.menu_delete/>
|
|
80
|
|
81 <n.other_menu_entries/>
|
|
82
|
|
83 <n.menu_sysadmin_options/>
|
|
84 </n.get_node_from_parameter.>
|
|
85 </macro>
|
|
86
|
|
87 <macro name="topic_dropdown" requires="node">
|
|
88 <n.dropdown.
|
|
89 id="topicdropdown"
|
|
90 text="[t]Options[/t]"
|
|
91 title="[t]Click for more options[/t]"
|
|
92 loadOnClick="/template/NamlServlet.jtp?macro=topic_dropdown_later&node=[n.page_node.id/]"
|
|
93 >
|
|
94 <n.menu_topic_subscription/>
|
|
95 <n.menu_separator/>
|
|
96 <n.menu_move_topic/>
|
|
97 <n.menu_pin_topic/>
|
|
98 <n.menu_unpin_topic/>
|
|
99 <n.menu_lock_topic/>
|
|
100 <n.menu_unlock_topic/>
|
|
101 <n.menu_delete_topic/>
|
|
102 <n.menu_change_title_and_meta_tags/>
|
|
103 <n.menu_embed_post/>
|
|
104 <n.menu_permalink/>
|
|
105 </n.dropdown.>
|
|
106 </macro>
|
|
107
|
|
108 <macro name="topic_dropdown_later" requires="servlet">
|
|
109 <n.javascript_response/>
|
|
110 <n.get_node_from_parameter.>
|
|
111 <n.menu_topic_subscription/>
|
|
112 <n.menu_delete_topic/>
|
|
113 <n.menu_move_topic/>
|
|
114 <n.menu_pin_topic/>
|
|
115 <n.menu_unpin_topic/>
|
|
116 <n.menu_lock_topic/>
|
|
117 <n.menu_unlock_topic/>
|
|
118 <n.menu_change_title_and_meta_tags/>
|
|
119 </n.get_node_from_parameter.>
|
|
120 </macro>
|
|
121
|
|
122 <macro name="post_dropdown" requires="node">
|
|
123 <n.dropdown.
|
|
124 id="postdropdown[n.id/]"
|
|
125 text="[t]More[/t]"
|
|
126 title="[t]Click for more options[/t]"
|
|
127 loadOnClick="/template/NamlServlet.jtp?macro=post_dropdown_later&node=[n.id/]"
|
|
128 >
|
|
129 <n.menu_reply_to_author/>
|
|
130 <n.menu_edit_post/>
|
|
131 <n.menu_move_post/>
|
|
132 <n.menu_delete_post/>
|
|
133 <n.menu_change_post_date/>
|
|
134 <n.menu_print_post/>
|
|
135 <n.menu_permalink/>
|
|
136 <n.menu_raw_mail/>
|
|
137 </n.dropdown.>
|
|
138 </macro>
|
|
139
|
|
140 <macro name="post_dropdown_later" requires="servlet">
|
|
141 <n.javascript_response/>
|
|
142 <n.get_node_from_parameter.>
|
|
143 <n.menu_reply_to_author/>
|
|
144 <n.menu_edit_post/>
|
|
145 <n.menu_move_post/>
|
|
146 <n.menu_delete_post/>
|
|
147 <n.menu_change_post_date/>
|
|
148 <n.menu_raw_mail/>
|
|
149 </n.get_node_from_parameter.>
|
|
150 </macro>
|
|
151
|
|
152 <macro name="root_post_dropdown" requires="node">
|
|
153 <n.dropdown.
|
|
154 id="rootdropdown[n.id/]"
|
|
155 text="[t]Options[/t]"
|
|
156 title="[t]Click for more options[/t]"
|
|
157 loadOnClick="/template/NamlServlet.jtp?macro=root_post_dropdown_later&node=[n.id/]"
|
|
158 >
|
|
159 <n.menu_topic_subscription/>
|
|
160 <n.menu_reply_to_author/>
|
|
161 <n.menu_edit_post/>
|
|
162 <n.menu_move_post/>
|
|
163 <n.menu_delete_topic/>
|
|
164 <n.menu_pin_topic/>
|
|
165 <n.menu_unpin_topic/>
|
|
166 <n.menu_lock_topic/>
|
|
167 <n.menu_unlock_topic/>
|
|
168 <n.menu_change_post_date/>
|
|
169 <n.menu_change_title_and_meta_tags/>
|
|
170 <n.menu_embed_post/>
|
|
171 <n.menu_print_post/>
|
|
172 <n.menu_permalink/>
|
|
173 <n.menu_raw_mail/>
|
|
174 </n.dropdown.>
|
|
175 </macro>
|
|
176
|
|
177 <macro name="root_post_dropdown_later" requires="servlet">
|
|
178 <n.javascript_response/>
|
|
179 <n.get_node_from_parameter.>
|
|
180 <n.menu_topic_subscription/>
|
|
181 <n.menu_reply_to_author/>
|
|
182 <n.menu_edit_post/>
|
|
183 <n.menu_move_post/>
|
|
184 <n.menu_delete_topic/>
|
|
185 <n.menu_pin_topic/>
|
|
186 <n.menu_unpin_topic/>
|
|
187 <n.menu_lock_topic/>
|
|
188 <n.menu_unlock_topic/>
|
|
189 <n.menu_change_post_date/>
|
|
190 <n.menu_change_title_and_meta_tags/>
|
|
191 <n.menu_raw_mail/>
|
|
192 </n.get_node_from_parameter.>
|
|
193 </macro>
|
|
194
|
|
195 <macro name="menu_subscription" requires="node">
|
|
196 <n.if.is_in_command name="dropdown">
|
|
197 <then>
|
|
198 dropdown.add('subscriptionLink', '<n.javascript_string_encode.subscribe_link/>');
|
|
199 </then>
|
|
200 <else>
|
|
201 <n.set_local_node.this_node/>
|
|
202 <n.if.local_node.visitor_is_subscribed>
|
|
203 <then>
|
|
204 var text = '<b><t>Your subscription</t></b>: <n.javascript_string_encode.local_node.subject/> ';
|
|
205 text += '(<a href="[n.local_node.visitor_subscription.edit_path/]" ignore="y"><t>edit</t></a>)';
|
|
206 NabbleDropdown.replaceContents('subscriptionLink',text);
|
|
207 </then>
|
|
208 </n.if.local_node.visitor_is_subscribed>
|
|
209 </else>
|
|
210 </n.if.is_in_command>
|
|
211 </macro>
|
|
212
|
|
213 <macro name="menu_topic_subscription" requires="node">
|
|
214 <n.if.is_in_command name="dropdown">
|
|
215 <then>
|
|
216 dropdown.add('topicSubscriptionLink', '<n.javascript_string_encode.subscribe_link/>');
|
|
217 </then>
|
|
218 <else>
|
|
219 <n.set_local_node.this_node/>
|
|
220 <n.if.local_node.visitor_is_subscribed>
|
|
221 <then>
|
|
222 var text = '<b>You are subscribed</b> ';
|
|
223 text += '(<a href="[n.local_node.unsubscribe_path/]" ignore="y">unsubscribe</a>)';
|
|
224 NabbleDropdown.replaceContents('topicSubscriptionLink',text);
|
|
225 </then>
|
|
226 </n.if.local_node.visitor_is_subscribed>
|
|
227 </else>
|
|
228 </n.if.is_in_command>
|
|
229 </macro>
|
|
230
|
|
231 <macro name="menu_post_by_email" requires="node">
|
|
232 <n.if.not.is_associated_with_mailing_list_archive>
|
|
233 <then>
|
|
234 <n.if.is_in_command name="dropdown">
|
|
235 <then>
|
|
236 dropdown.add('postByEmail', '<n.javascript_string_encode.post_by_email_link/>', 'display:none');
|
|
237 </then>
|
|
238 <else>
|
|
239 <n.set_local_node.this_node/>
|
|
240 <n.if.visitor.can_create_topic_in.local_node>
|
|
241 <then>
|
|
242 NabbleDropdown.show('postByEmail');
|
|
243 </then>
|
|
244 </n.if.visitor.can_create_topic_in.local_node>
|
|
245 </else>
|
|
246 </n.if.is_in_command>
|
|
247 </then>
|
|
248 </n.if.not.is_associated_with_mailing_list_archive>
|
|
249 </macro>
|
|
250
|
|
251 <macro name="menu_edit_name_and_description" requires="node">
|
|
252 <n.if.is_in_command name="dropdown">
|
|
253 <then>
|
|
254 dropdown.add('editNameDescription', '<n.javascript_string_encode.edit_subject_and_message_link/>', 'display:none');
|
|
255 </then>
|
|
256 <else>
|
|
257 <n.set_local_node.this_node/>
|
|
258 <n.if.visitor.can_edit.local_node>
|
|
259 <then>
|
|
260 NabbleDropdown.show('editNameDescription');
|
|
261 </then>
|
|
262 </n.if.visitor.can_edit.local_node>
|
|
263 </else>
|
|
264 </n.if.is_in_command>
|
|
265 </macro>
|
|
266
|
|
267 <macro name="menu_change_appearance" requires="node">
|
|
268 <n.if.is_in_command name="dropdown">
|
|
269 <then>
|
|
270 dropdown.add('changeAppearance', '<n.javascript_string_encode.change_appearance_link/>', 'display:none');
|
|
271 </then>
|
|
272 <else>
|
|
273 <n.set_local_node.this_node/>
|
|
274 <n.if.both condition1="[n.local_node.is_root/]" condition2="[n.visitor.can_edit.local_node/]">
|
|
275 <then>
|
|
276 function hasChangeAppearanceToolbar() {
|
|
277 try {
|
|
278 if (parent.isChangeAppearance)
|
|
279 return true
|
|
280 } catch (err) {}
|
|
281 return false;
|
|
282 };
|
|
283 /* Avoid duplicate toolbars */
|
|
284 if (!hasChangeAppearanceToolbar())
|
|
285 NabbleDropdown.show('changeAppearance');
|
|
286 </then>
|
|
287 </n.if.both>
|
|
288 </else>
|
|
289 </n.if.is_in_command>
|
|
290 </macro>
|
|
291
|
|
292 <macro name="menu_change_language" requires="node">
|
|
293 <n.if.is_in_command name="dropdown">
|
|
294 <then>
|
|
295 dropdown.add('changeLanguage', '<n.javascript_string_encode.change_language_link/>', 'display:none');
|
|
296 </then>
|
|
297 <else>
|
|
298 <n.set_local_node.this_node/>
|
|
299 <n.if.both condition1="[n.local_node.is_root/]" condition2="[n.visitor.can_edit.local_node/]">
|
|
300 <then>
|
|
301 NabbleDropdown.show('changeLanguage');
|
|
302 </then>
|
|
303 </n.if.both>
|
|
304 </else>
|
|
305 </n.if.is_in_command>
|
|
306 </macro>
|
|
307
|
|
308 <macro name="menu_extras_and_addons" requires="node">
|
|
309 <n.if.is_in_command name="dropdown">
|
|
310 <then>
|
|
311 dropdown.add('addons', '<n.javascript_string_encode.extras_and_addons_link/>', 'display:none');
|
|
312 </then>
|
|
313 <else>
|
|
314 <n.set_local_node.this_node/>
|
|
315 <n.if.both condition1="[n.local_node.is_root/]" condition2="[n.visitor.can_edit.local_node/]">
|
|
316 <then>
|
|
317 NabbleDropdown.show('addons');
|
|
318 </then>
|
|
319 </n.if.both>
|
|
320 </else>
|
|
321 </n.if.is_in_command>
|
|
322 </macro>
|
|
323
|
|
324 <macro name="menu_change_title_and_meta_tags" requires="node">
|
|
325 <n.if.is_in_command name="dropdown">
|
|
326 <then>
|
|
327 dropdown.add('changeMetaTags', '<n.javascript_string_encode.change_title_and_meta_tags_link/>', 'display:none');
|
|
328 </then>
|
|
329 <else>
|
|
330 <n.set_local_node.this_node/>
|
|
331 <n.if.visitor.is_site_admin>
|
|
332 <then>
|
|
333 NabbleDropdown.show('changeMetaTags');
|
|
334 </then>
|
|
335 </n.if.visitor.is_site_admin>
|
|
336 </else>
|
|
337 </n.if.is_in_command>
|
|
338 </macro>
|
|
339
|
|
340 <macro name="menu_change_type" requires="node">
|
|
341 <n.if.is_in_command name="dropdown">
|
|
342 <then>
|
|
343 dropdown.add('changeType', '<n.javascript_string_encode.change_type_link/>', 'display:none');
|
|
344 </then>
|
|
345 <else>
|
|
346 <n.set_local_node.this_node/>
|
|
347 <n.if.visitor.can_edit.local_node>
|
|
348 <then>
|
|
349 NabbleDropdown.show('changeType');
|
|
350 </then>
|
|
351 </n.if.visitor.can_edit.local_node>
|
|
352 </else>
|
|
353 </n.if.is_in_command>
|
|
354 </macro>
|
|
355
|
|
356 <macro name="menu_change_domain_name" requires="node">
|
|
357 <n.if.is_in_command name="dropdown">
|
|
358 <then>
|
|
359 dropdown.add('changeDomainName', '<n.javascript_string_encode.change_domain_name_link/>', 'display:none');
|
|
360 </then>
|
|
361 <else>
|
|
362 <n.set_local_node.this_node/>
|
|
363 <n.if.both condition1="[n.visitor.can_edit.local_node/]" condition2="[n.local_node.is_root/]">
|
|
364 <then>
|
|
365 NabbleDropdown.show('changeDomainName');
|
|
366 </then>
|
|
367 </n.if.both>
|
|
368 </else>
|
|
369 </n.if.is_in_command>
|
|
370 </macro>
|
|
371
|
|
372 <macro name="menu_use_google_analytics" requires="node">
|
|
373 <n.if.is_in_command name="dropdown">
|
|
374 <then>
|
|
375 dropdown.add('useGoogleAnalytics', '<n.javascript_string_encode.use_google_analytics_link/>', 'display:none');
|
|
376 </then>
|
|
377 <else>
|
|
378 <n.set_local_node.this_node/>
|
|
379 <n.if.both condition1="[n.visitor.can_edit.local_node/]" condition2="[n.local_node.is_root/]">
|
|
380 <then>
|
|
381 NabbleDropdown.show('useGoogleAnalytics');
|
|
382 </then>
|
|
383 </n.if.both>
|
|
384 </else>
|
|
385 </n.if.is_in_command>
|
|
386 </macro>
|
|
387
|
|
388 <macro name="menu_create_sub_app" requires="node">
|
|
389 <n.if.is_in_command name="dropdown">
|
|
390 <then>
|
|
391 dropdown.add('createChildForum', '<n.javascript_string_encode.create_sub_app_link/>', 'display:none');
|
|
392 </then>
|
|
393 <else>
|
|
394 <n.set_local_node.this_node/>
|
|
395 <n.if.visitor.can_create_sub_apps_under.local_node>
|
|
396 <then>
|
|
397 NabbleDropdown.show('createChildForum');
|
|
398 </then>
|
|
399 </n.if.visitor.can_create_sub_apps_under.local_node>
|
|
400 </else>
|
|
401 </n.if.is_in_command>
|
|
402 </macro>
|
|
403
|
|
404 <macro name="menu_manage_pinned_topics" requires="node">
|
|
405 <n.if.is_in_command name="dropdown">
|
|
406 <then>
|
|
407 dropdown.add('managePinnedTopics', '<n.javascript_string_encode.manage_pinned_topics_link/>', 'display:none');
|
|
408 </then>
|
|
409 <else>
|
|
410 <n.set_local_node.this_node/>
|
|
411 <n.if>
|
|
412 <condition>
|
|
413 <n.both>
|
|
414 <condition1.not.regex_matches text="[n.local_node.type/]" pattern="board|category" />
|
|
415 <condition2.visitor.can_manage_pinned_topics_in.local_node/>
|
|
416 </n.both>
|
|
417 </condition>
|
|
418 <then>
|
|
419 NabbleDropdown.show('managePinnedTopics');
|
|
420 </then>
|
|
421 </n.if>
|
|
422 </else>
|
|
423 </n.if.is_in_command>
|
|
424 </macro>
|
|
425
|
|
426 <macro name="menu_manage_sub_apps" requires="node">
|
|
427 <n.if.is_in_command name="dropdown">
|
|
428 <then>
|
|
429 dropdown.add('manageSubApps', '<n.javascript_string_encode.manage_sub_apps_link/>', 'display:none');
|
|
430 </then>
|
|
431 <else>
|
|
432 <n.set_local_node.this_node/>
|
|
433 <n.if.visitor.can_edit.local_node>
|
|
434 <then>
|
|
435 NabbleDropdown.show('manageSubApps');
|
|
436 </then>
|
|
437 </n.if.visitor.can_edit.local_node>
|
|
438 </else>
|
|
439 </n.if.is_in_command>
|
|
440 </macro>
|
|
441
|
|
442 <macro name="menu_parent_options" requires="node">
|
|
443 <n.if.is_in_command name="dropdown">
|
|
444 <then>
|
|
445 dropdown.add('parentOptions', '<n.javascript_string_encode.parent_options_link/>', 'display:none');
|
|
446 </then>
|
|
447 <else>
|
|
448 <n.set_local_node.this_node/>
|
|
449 <n.if.visitor.can_move.local_node>
|
|
450 <then>
|
|
451 NabbleDropdown.show('parentOptions');
|
|
452 </then>
|
|
453 </n.if.visitor.can_move.local_node>
|
|
454 </else>
|
|
455 </n.if.is_in_command>
|
|
456 </macro>
|
|
457
|
|
458 <macro name="menu_change_permissions" requires="node">
|
|
459 <n.if.is_in_command name="dropdown">
|
|
460 <then>
|
|
461 dropdown.add('changePermissions', '<n.javascript_string_encode.change_permissions_link/>', 'display:none');
|
|
462 </then>
|
|
463 <else>
|
|
464 <n.set_local_node.this_node/>
|
|
465 <n.if.visitor.can_change_permissions_of.local_node>
|
|
466 <then>
|
|
467 NabbleDropdown.show('changePermissions');
|
|
468 </then>
|
|
469 </n.if.visitor.can_change_permissions_of.local_node>
|
|
470 </else>
|
|
471 </n.if.is_in_command>
|
|
472 </macro>
|
|
473
|
|
474 <macro name="menu_manage_users_and_groups" requires="node">
|
|
475 <n.if.is_in_command name="dropdown">
|
|
476 <then>
|
|
477 dropdown.add('manageGroups', '<n.javascript_string_encode.manage_users_and_groups_link/>', 'display:none');
|
|
478 </then>
|
|
479 <else>
|
|
480 <n.set_local_node.this_node/>
|
|
481 <n.if.both condition1="[n.local_node.is_root/]" condition2="[n.visitor.can_manage_users_and_groups/]">
|
|
482 <then>
|
|
483 NabbleDropdown.show('manageGroups');
|
|
484 </then>
|
|
485 </n.if.both>
|
|
486 </else>
|
|
487 </n.if.is_in_command>
|
|
488 </macro>
|
|
489
|
|
490 <macro name="menu_manage_subscribers" requires="node">
|
|
491 <n.if.is_in_command name="dropdown">
|
|
492 <then>
|
|
493 dropdown.add('manageSubscribers', '<n.javascript_string_encode.manage_subscribers_link/>', 'display:none');
|
|
494 </then>
|
|
495 <else>
|
|
496 <n.set_local_node.this_node/>
|
|
497 <n.if.visitor.can_manage_subscribers_of.local_node>
|
|
498 <then>
|
|
499 NabbleDropdown.show('manageSubscribers');
|
|
500 </then>
|
|
501 </n.if.visitor.can_manage_subscribers_of.local_node>
|
|
502 </else>
|
|
503 </n.if.is_in_command>
|
|
504 </macro>
|
|
505
|
|
506 <macro name="menu_manage_banned_users" requires="node">
|
|
507 <n.if.is_in_command name="dropdown">
|
|
508 <then>
|
|
509 dropdown.add('manageBannedUsers', '<n.javascript_string_encode.manage_banned_users_link/>', 'display:none');
|
|
510 </then>
|
|
511 <else>
|
|
512 <n.set_local_node.this_node/>
|
|
513 <n.if.both condition1="[n.local_node.is_root/]" condition2="[n.visitor.can_manage_banned_users/]">
|
|
514 <then>
|
|
515 NabbleDropdown.show('manageBannedUsers');
|
|
516 </then>
|
|
517 </n.if.both>
|
|
518 </else>
|
|
519 </n.if.is_in_command>
|
|
520 </macro>
|
|
521
|
|
522 <macro name="menu_mailing_list_archive_settings" requires="node">
|
|
523 <n.if.is_in_command name="dropdown">
|
|
524 <then>
|
|
525 dropdown.add('mailingListSettings', '<n.javascript_string_encode.mailing_list_archive_settings_link/>', 'display:none');
|
|
526 </then>
|
|
527 <else>
|
|
528 <n.set_local_node.this_node/>
|
|
529 <n.if>
|
|
530 <condition>
|
|
531 <n.both>
|
|
532 <condition1>
|
|
533 <n.visitor.can_edit.local_node/>
|
|
534 </condition1>
|
|
535 <condition2>
|
|
536 <n.either>
|
|
537 <condition1><n.local_node.is_a_mailing_list_archive/></condition1>
|
|
538 <condition2><n.not.local_node.has_sub_archive/></condition2>
|
|
539 </n.either>
|
|
540 </condition2>
|
|
541 </n.both>
|
|
542 </condition>
|
|
543 <then>
|
|
544 NabbleDropdown.show('mailingListSettings');
|
|
545 </then>
|
|
546 </n.if>
|
|
547 </else>
|
|
548 </n.if.is_in_command>
|
|
549 </macro>
|
|
550
|
|
551 <macro name="menu_embedding_options" requires="node">
|
|
552 <n.if.is_in_command name="dropdown">
|
|
553 <then>
|
|
554 dropdown.add('embeddingOptions', '<n.javascript_string_encode.embedding_options_link/>', 'display:none');
|
|
555 </then>
|
|
556 <else>
|
|
557 <n.set_local_node.this_node/>
|
|
558 <n.if.visitor.can_edit.local_node>
|
|
559 <then>
|
|
560 NabbleDropdown.show('embeddingOptions');
|
|
561 </then>
|
|
562 </n.if.visitor.can_edit.local_node>
|
|
563 </else>
|
|
564 </n.if.is_in_command>
|
|
565 </macro>
|
|
566
|
|
567 <macro name="menu_download_backup" requires="node">
|
|
568 <n.if.is_in_command name="dropdown">
|
|
569 <then>
|
|
570 dropdown.add('downloadBackup', '<n.javascript_string_encode.download_backup_link/>', 'display:none');
|
|
571 </then>
|
|
572 <else>
|
|
573 <n.set_local_node.this_node/>
|
|
574 <n.if.both condition1="[n.local_node.is_root/]" condition2="[n.visitor.is_site_admin/]">
|
|
575 <then>
|
|
576 NabbleDropdown.show('downloadBackup');
|
|
577 </then>
|
|
578 </n.if.both>
|
|
579 </else>
|
|
580 </n.if.is_in_command>
|
|
581 </macro>
|
|
582
|
|
583 <macro name="menu_delete" requires="node">
|
|
584 <n.if.is_in_command name="dropdown">
|
|
585 <then>
|
|
586 dropdown.add('deleteApp', '<n.javascript_string_encode.delete_link/>', 'display:none');
|
|
587 </then>
|
|
588 <else>
|
|
589 <n.set_local_node.this_node/>
|
|
590 <n.if.visitor.can_edit.local_node>
|
|
591 <then>
|
|
592 NabbleDropdown.show('deleteApp');
|
|
593 </then>
|
|
594 </n.if.visitor.can_edit.local_node>
|
|
595 </else>
|
|
596 </n.if.is_in_command>
|
|
597 </macro>
|
|
598
|
|
599 <macro name="menu_delete_topic" requires="node">
|
|
600 <n.if.is_in_command name="dropdown">
|
|
601 <then>
|
|
602 dropdown.add('deleteRecursively', '<n.javascript_string_encode.delete_recursively_link text="[t]Delete this topic[/t]"/>', 'display:none');
|
|
603 dropdown.add('deletePost', '<n.javascript_string_encode.delete_post_link text="[t]Delete this topic[/t]"/>', 'display:none');
|
|
604 </then>
|
|
605 <else>
|
|
606 <n.set_local_node.this_node/>
|
|
607 <n.if.visitor.can_delete_recursively.local_node>
|
|
608 <then>
|
|
609 NabbleDropdown.show('deleteRecursively');
|
|
610 </then>
|
|
611 <else.if.visitor.can_delete.local_node>
|
|
612 <then>
|
|
613 NabbleDropdown.show('deletePost');
|
|
614 </then>
|
|
615 </else.if.visitor.can_delete.local_node>
|
|
616 </n.if.visitor.can_delete_recursively.local_node>
|
|
617 </else>
|
|
618 </n.if.is_in_command>
|
|
619 </macro>
|
|
620
|
|
621 <macro name="menu_delete_post" requires="node">
|
|
622 <n.if.is_in_command name="dropdown">
|
|
623 <then>
|
|
624 dropdown.add('deletePost<n.id/>', '<n.javascript_string_encode.delete_post_link/>', 'display:none');
|
|
625 dropdown.add('deleteRecursively<n.id/>', '<n.javascript_string_encode.delete_recursively_link/>', 'display:none');
|
|
626 </then>
|
|
627 <else>
|
|
628 <n.set_local_node.this_node/>
|
|
629 <n.if.visitor.can_delete.local_node>
|
|
630 <then>
|
|
631 NabbleDropdown.show('deletePost<n.local_node.id/>');
|
|
632 </then>
|
|
633 </n.if.visitor.can_delete.local_node>
|
|
634 <n.if.visitor.can_delete_recursively.local_node>
|
|
635 <then>
|
|
636 NabbleDropdown.show('deleteRecursively<n.local_node.id/>');
|
|
637 </then>
|
|
638 </n.if.visitor.can_delete_recursively.local_node>
|
|
639 </else>
|
|
640 </n.if.is_in_command>
|
|
641 </macro>
|
|
642
|
|
643 <macro name="menu_edit_post" requires="node">
|
|
644 <n.if.is_in_command name="dropdown">
|
|
645 <then>
|
|
646 dropdown.add('editPost<n.id/>', '<n.javascript_string_encode.edit_post_link/>', 'display:none');
|
|
647 </then>
|
|
648 <else>
|
|
649 <n.set_local_node.this_node/>
|
|
650 <n.if.visitor.can_edit.local_node>
|
|
651 <then>
|
|
652 NabbleDropdown.show('editPost<n.local_node.id/>');
|
|
653 </then>
|
|
654 </n.if.visitor.can_edit.local_node>
|
|
655 </else>
|
|
656 </n.if.is_in_command>
|
|
657 </macro>
|
|
658
|
|
659 <macro name="menu_move_post" requires="node">
|
|
660 <n.if.is_in_command name="dropdown">
|
|
661 <then>
|
|
662 dropdown.add('movePost<n.id/>', '<n.javascript_string_encode.move_post_link/>', 'display:none');
|
|
663 </then>
|
|
664 <else>
|
|
665 <n.set_local_node.this_node/>
|
|
666 <n.if.visitor.can_move.local_node>
|
|
667 <then>
|
|
668 NabbleDropdown.show('movePost<n.local_node.id/>');
|
|
669 </then>
|
|
670 </n.if.visitor.can_move.local_node>
|
|
671 </else>
|
|
672 </n.if.is_in_command>
|
|
673 </macro>
|
|
674
|
|
675 <macro name="menu_move_topic" requires="node">
|
|
676 <n.if.is_in_command name="dropdown">
|
|
677 <then>
|
|
678 dropdown.add('moveTopic', '<n.javascript_string_encode.move_post_link text="[t]Move topic[/t]"/>', 'display:none');
|
|
679 </then>
|
|
680 <else>
|
|
681 <n.set_local_node.this_node/>
|
|
682 <n.if.visitor.can_move.local_node>
|
|
683 <then>
|
|
684 NabbleDropdown.show('moveTopic');
|
|
685 </then>
|
|
686 </n.if.visitor.can_move.local_node>
|
|
687 </else>
|
|
688 </n.if.is_in_command>
|
|
689 </macro>
|
|
690
|
|
691 <macro name="menu_pin_topic" requires="node">
|
|
692 <n.if.is_in_command name="dropdown">
|
|
693 <then>
|
|
694 dropdown.add('pinTopic', '<n.javascript_string_encode.pin_topic_link/>', 'display:none');
|
|
695 </then>
|
|
696 <else>
|
|
697 <n.set_local_node.this_node/>
|
|
698 <n.if.both condition1="[n.not.local_node.is_pinned/]" condition2="[n.visitor.can_manage_pinned_topics_in.local_node/]">
|
|
699 <then>
|
|
700 NabbleDropdown.show('pinTopic');
|
|
701 </then>
|
|
702 </n.if.both>
|
|
703 </else>
|
|
704 </n.if.is_in_command>
|
|
705 </macro>
|
|
706
|
|
707 <macro name="menu_unpin_topic" requires="node">
|
|
708 <n.if.is_in_command name="dropdown">
|
|
709 <then>
|
|
710 dropdown.add('unpinTopic', '<n.javascript_string_encode.unpin_topic_link/>', 'display:none');
|
|
711 </then>
|
|
712 <else>
|
|
713 <n.set_local_node.this_node/>
|
|
714 <n.if.both condition1="[n.local_node.is_pinned/]" condition2="[n.visitor.can_manage_pinned_topics_in.local_node/]">
|
|
715 <then>
|
|
716 NabbleDropdown.show('unpinTopic');
|
|
717 </then>
|
|
718 </n.if.both>
|
|
719 </else>
|
|
720 </n.if.is_in_command>
|
|
721 </macro>
|
|
722
|
|
723 <macro name="menu_lock_topic" requires="node">
|
|
724 <n.if.is_in_command name="dropdown">
|
|
725 <then>
|
|
726 dropdown.add('lockTopic', '<n.javascript_string_encode.lock_topic_link/>', 'display:none');
|
|
727 </then>
|
|
728 <else>
|
|
729 <n.set_local_node.this_node/>
|
|
730 <n.if.both condition1="[n.not.local_node.is_locked_topic/]" condition2="[n.visitor.can_manage_locked_topics_in.local_node/]">
|
|
731 <then>
|
|
732 NabbleDropdown.show('lockTopic');
|
|
733 </then>
|
|
734 </n.if.both>
|
|
735 </else>
|
|
736 </n.if.is_in_command>
|
|
737 </macro>
|
|
738
|
|
739 <macro name="menu_unlock_topic" requires="node">
|
|
740 <n.if.is_in_command name="dropdown">
|
|
741 <then>
|
|
742 dropdown.add('unlockTopic', '<n.javascript_string_encode.unlock_topic_link/>', 'display:none');
|
|
743 </then>
|
|
744 <else>
|
|
745 <n.set_local_node.this_node/>
|
|
746 <n.if.both condition1="[n.local_node.is_locked_topic/]" condition2="[n.visitor.can_manage_locked_topics_in.local_node/]">
|
|
747 <then>
|
|
748 NabbleDropdown.show('unlockTopic');
|
|
749 </then>
|
|
750 </n.if.both>
|
|
751 </else>
|
|
752 </n.if.is_in_command>
|
|
753 </macro>
|
|
754
|
|
755 <macro name="menu_change_post_date" requires="node">
|
|
756 <n.if.is_in_command name="dropdown">
|
|
757 <then>
|
|
758 dropdown.add('changePostDate<n.id/>', '<n.javascript_string_encode.change_post_date_link/>', 'display:none');
|
|
759 </then>
|
|
760 <else>
|
|
761 <n.set_local_node.this_node/>
|
|
762 <n.if.visitor.can_change_post_date_of.local_node>
|
|
763 <then>
|
|
764 NabbleDropdown.show('changePostDate<n.local_node.id/>');
|
|
765 </then>
|
|
766 </n.if.visitor.can_change_post_date_of.local_node>
|
|
767 </else>
|
|
768 </n.if.is_in_command>
|
|
769 </macro>
|
|
770
|
|
771 <macro name="menu_reply_to_author" requires="node">
|
|
772 <n.if.owner.is_authenticated>
|
|
773 <then>
|
|
774 <n.if.is_in_command name="dropdown">
|
|
775 <then>
|
|
776 dropdown.add('replyToAuthor<n.id/>', '<n.javascript_string_encode.reply_to_author_link/>', 'display:none');
|
|
777 </then>
|
|
778 <else>
|
|
779 <n.set_local_node.this_node/>
|
|
780 <n.if.not.visitor.equals.local_node.owner>
|
|
781 <then>
|
|
782 NabbleDropdown.show('replyToAuthor<n.local_node.id/>');
|
|
783 </then>
|
|
784 </n.if.not.visitor.equals.local_node.owner>
|
|
785 </else>
|
|
786 </n.if.is_in_command>
|
|
787 </then>
|
|
788 </n.if.owner.is_authenticated>
|
|
789 </macro>
|
|
790
|
|
791 <macro name="menu_embed_post" requires="node">
|
|
792 dropdown.add('embedPost<n.id/>', '<n.javascript_string_encode.embed_post_link/>');
|
|
793 </macro>
|
|
794
|
|
795 <macro name="menu_print_post" requires="node">
|
|
796 dropdown.add('print<n.id/>', '<n.javascript_string_encode.print_post_link/>');
|
|
797 </macro>
|
|
798
|
|
799 <macro name="menu_permalink" requires="node">
|
|
800 dropdown.add('permalink<n.id/>', '<n.javascript_string_encode.permalink/>');
|
|
801 </macro>
|
|
802
|
|
803 <macro name="menu_raw_mail" requires="node">
|
|
804 <n.if.is_in_command name="dropdown">
|
|
805 <then>
|
|
806 dropdown.add('rawMail<n.id/>', '<n.javascript_string_encode.raw_mail_link/>', 'display:none');
|
|
807 </then>
|
|
808 <else>
|
|
809 <n.set_local_node.this_node/>
|
|
810 <n.if.local_node.message.is_imported_mail>
|
|
811 <then.if.either condition1="[n.visitor.can_edit.local_node/]" condition2="[n.visitor.is_sysadmin/]">
|
|
812 <then>
|
|
813 NabbleDropdown.show('rawMail<n.local_node.id/>');
|
|
814 </then>
|
|
815 </then.if.either>
|
|
816 </n.if.local_node.message.is_imported_mail>
|
|
817 </else>
|
|
818 </n.if.is_in_command>
|
|
819 </macro>
|
|
820
|
|
821 <macro name="menu_sysadmin_options" requires="node">
|
|
822 <n.if.is_in_command name="dropdown">
|
|
823 <then>
|
|
824 dropdown.add('openShell', null, 'display:none');
|
|
825 <n.if.is_a_mailing_list_archive>
|
|
826 <then>
|
|
827 dropdown.add('uploadMbox', null, 'display:none');
|
|
828 dropdown.add('deleteRecursively', null, 'display:none');
|
|
829 </then>
|
|
830 </n.if.is_a_mailing_list_archive>
|
|
831 </then>
|
|
832 <else>
|
|
833 <n.set_local_node.this_node/>
|
|
834 <n.if.visitor.is_sysadmin>
|
|
835 <then>
|
|
836 NabbleDropdown.addContents('openShell','<n.javascript_string_encode.local_node.shell_link/>');
|
|
837 <n.if.local_node.is_a_mailing_list_archive>
|
|
838 <then>
|
|
839 NabbleDropdown.addContents('uploadMbox','<n.javascript_string_encode.local_node.upload_mbox_link/>');
|
|
840 </then>
|
|
841 </n.if.local_node.is_a_mailing_list_archive>
|
|
842 </then>
|
|
843 </n.if.visitor.is_sysadmin>
|
|
844 </else>
|
|
845 </n.if.is_in_command>
|
|
846 </macro>
|
|
847
|
|
848 <macro name="shell_link" requires="node">
|
|
849 <a href="/tools/Shell.jtp?cmd=node+=+ModelHome.getNode([n.id/])" target="_new"><span class="important">Open in shell</span></a>
|
|
850 </macro>
|
|
851
|
|
852 <macro name="upload_mbox_link" requires="node">
|
|
853 <a href="/tools/UploadMbox.jtp?forum=[n.id/]"><span class="important">Upload Mbox file</span></a>
|
|
854 </macro>
|
|
855
|
|
856 ------------- Dropdown Implementation -------------
|
|
857
|
|
858 <macro name="dropdown" dot_parameter="options" parameters="id, text, title, element, loadOnClick">
|
|
859 <span id="dd_[n.id/]"></span>
|
|
860 <script type="text/javascript">
|
|
861 var dropdown = new NabbleDropdown("<n.id/>", "<n.javascript_string_encode.hide_null.text/>","<n.javascript_string_encode.hide_null.title/>");
|
|
862 <n.if.not.is_null.element>
|
|
863 <then>dropdown.customButton("<n.javascript_string_encode.element/>");</then>
|
|
864 </n.if.not.is_null.element>
|
|
865 <n.options/>
|
|
866 dropdown.build('dd_<n.id/>');
|
|
867 <n.if.not.is_empty.loadOnClick>
|
|
868 <then>dropdown.loadOnClick('<n.loadOnClick/>&_=' + Math.floor(Math.random()*999999));</then>
|
|
869 </n.if.not.is_empty.loadOnClick>
|
|
870 </script>
|
|
871 </macro>
|
|
872
|
|
873 <macro name="menu_group" dot_parameter="options" parameters="text">
|
|
874 dropdown.startGroup('<n.javascript_string_encode.text/>');
|
|
875 <n.options/>
|
|
876 dropdown.endGroup();
|
|
877 </macro>
|
|
878
|
|
879 <macro name="menu_separator">
|
|
880 dropdown.addSeparator();
|
|
881 </macro>
|
|
882
|
|
883
|
|
884 <macro name="other_menu_entries" requires="node">
|
|
885 </macro>
|