Unify the terms 'Staff' and 'Team'
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / acp / templates / pageAdd.tpl
... / ...
CommitLineData
1{include file='header' pageTitle='wcf.acp.page.'|concat:$action}
2
3{if $action == 'add'}
4 <script data-relocate="true">
5 elById('name').addEventListener('blur', function() {
6 var name = this.value.toLowerCase();
7 if (!name) return;
8 name = name.replace(/ /g, '-');
9 name = name.replace(/[^a-z0-9-]/gi, '');
10
11 {if !$isMultilingual}
12 if (elById('customURL').value === '') {
13 elById('customURL').value = name;
14 }
15 {else}
16 {foreach from=$availableLanguages item=availableLanguage}
17 if (elById('customURL{@$availableLanguage->languageID}').value === '') {
18 elById('customURL{@$availableLanguage->languageID}').value = name + '-{@$availableLanguage->languageCode}';
19 }
20 {/foreach}
21 {/if}
22 });
23 </script>
24{elseif $page->pageType !== 'system'}
25 <script data-relocate="true">
26 require(['Language', 'WoltLabSuite/Core/Acp/Ui/Page/Copy'], function (Language, AcpUiPageCopy) {
27 Language.addObject({
28 'wcf.acp.page.copy': '{jslang}wcf.acp.page.copy{/jslang}'
29 });
30
31 AcpUiPageCopy.init();
32 });
33 </script>
34 <div id="acpPageCopyDialog" style="display: none">
35 <div>
36 {lang}wcf.acp.page.copy.description{/lang}
37 </div>
38
39 <div class="formSubmit">
40 <a href="{link controller='PageAdd' presetPageID=$page->pageID}{/link}" class="button buttonPrimary">{lang}wcf.global.button.submit{/lang}</a>
41 </div>
42 </div>
43{/if}
44
45<header class="contentHeader">
46 <div class="contentHeaderTitle">
47 <h1 class="contentTitle">{if $action == 'add'}{lang}wcf.acp.page.add{/lang}{else}{lang}wcf.acp.page.edit{/lang}{/if}</h1>
48 </div>
49
50 <nav class="contentHeaderNavigation">
51 <ul>
52 {if $action == 'edit'}
53 {if $page->pageType !== 'system'}
54 <li><a href="#" class="button jsButtonCopyPage">{icon name='copy'} {lang}wcf.acp.page.button.copyPage{/lang}</a></li>
55 {/if}
56
57 {if !$page->requireObjectID}
58 <li><a href="{$page->getLink()}" class="button">{icon name='magnifying-glass'} <span>{lang}wcf.acp.page.button.viewPage{/lang}</span></a></li>
59 {/if}
60
61 <li><a href="{link controller='PageBoxOrder' id=$page->pageID}{/link}" class="button">{icon name='arrow-down-short-wide'} <span>{lang}wcf.acp.page.button.boxOrder{/lang}</span></a></li>
62 {/if}
63 <li><a href="{link controller='PageList'}{/link}" class="button">{icon name='list'} <span>{lang}wcf.acp.menu.link.cms.page.list{/lang}</span></a></li>
64
65 {event name='contentHeaderNavigation'}
66 </ul>
67 </nav>
68</header>
69
70{if $action == 'edit' && !$lastVersion|empty}
71 <woltlab-core-notice type="info">{lang}wcf.acp.page.lastVersion{/lang}</woltlab-core-notice>
72{/if}
73
74{include file='shared_formNotice'}
75
76<form method="post" action="{if $action == 'add'}{link controller='PageAdd'}{/link}{else}{link controller='PageEdit' id=$pageID}{/link}{/if}">
77 <div class="section tabMenuContainer" data-active="{$activeTabMenuItem}" data-store="activeTabMenuItem" id="pageTabMenuContainer">
78 <nav class="tabMenu">
79 <ul>
80 <li><a href="#general">{lang}wcf.global.form.data{/lang}</a></li>
81 <li><a href="#contents">{lang}wcf.acp.page.contents{/lang}</a></li>
82 <li><a href="#boxes">{lang}wcf.acp.box.list{/lang}</a></li>
83
84 {if $action != 'edit' || $page->pageType != 'system'}
85 <li><a href="#acl">{lang}wcf.acl.access{/lang}</a></li>
86 {/if}
87
88 {event name='tabMenuTabs'}
89 </ul>
90 </nav>
91
92 <div id="general" class="tabMenuContent">
93 <div class="section">
94 <dl{if $errorField == 'name'} class="formError"{/if}>
95 <dt><label for="name">{lang}wcf.global.name{/lang}</label></dt>
96 <dd>
97 <input type="text" id="name" name="name" value="{$name}" autofocus class="long" maxlength="255">
98 {if $errorField == 'name'}
99 <small class="innerError">
100 {if $errorType == 'empty'}
101 {lang}wcf.global.form.error.empty{/lang}
102 {else}
103 {lang}wcf.acp.page.name.error.{@$errorType}{/lang}
104 {/if}
105 </small>
106 {/if}
107 </dd>
108 </dl>
109
110 <dl{if $errorField == 'parentPageID'} class="formError"{/if}>
111 <dt><label for="parentPageID">{lang}wcf.acp.page.parentPage{/lang}</label></dt>
112 <dd>
113 <select name="parentPageID" id="parentPageID"{if $action == 'edit' && $page->hasFixedParent} disabled{/if}>
114 <option value="0">{lang}wcf.acp.page.parentPage.none{/lang}</option>
115
116 {foreach from=$pageNodeList item=pageNode}
117 <option value="{$pageNode->pageID}"{if $pageNode->pageID == $parentPageID} selected{/if}{if $pageNode->requireObjectID || ($action === 'edit' && $pageNode->pageID == $page->pageID)} disabled{/if}>{if $pageNode->getDepth() > 1}{@"&nbsp;&nbsp;&nbsp;&nbsp;"|str_repeat:($pageNode->getDepth() - 1)}{/if}{$pageNode->name}</option>
118 {/foreach}
119 </select>
120 {if $errorField == 'parentPageID'}
121 <small class="innerError">
122 {if $errorType == 'empty'}
123 {lang}wcf.global.form.error.empty{/lang}
124 {else}
125 {lang}wcf.acp.page.parentPage.error.{@$errorType}{/lang}
126 {/if}
127 </small>
128 {/if}
129 </dd>
130 </dl>
131
132 <dl{if $errorField == 'applicationPackageID'} class="formError"{/if}{if $action == 'edit' && $page->originIsSystem} style="display: none"{/if}>
133 <dt><label for="applicationPackageID">{lang}wcf.acp.page.application{/lang}</label></dt>
134 <dd>
135 <select name="applicationPackageID" id="applicationPackageID"{if $action == 'edit' && $page->originIsSystem} disabled{/if}>
136 {foreach from=$availableApplications item=availableApplication}
137 <option value="{$availableApplication->packageID}"{if $availableApplication->packageID == $applicationPackageID} selected{/if}>{$availableApplication->domainName}{$availableApplication->domainPath}</option>
138 {/foreach}
139 </select>
140 {if $errorField == 'applicationPackageID'}
141 <small class="innerError">
142 {if $errorType == 'empty'}
143 {lang}wcf.global.form.error.empty{/lang}
144 {else}
145 {lang}wcf.acp.page.application.error.{@$errorType}{/lang}
146 {/if}
147 </small>
148 {/if}
149 </dd>
150 </dl>
151
152 {if $action === 'edit' && $page->originIsSystem}
153 <dl{if $errorField == 'overrideApplicationPackageID'} class="formError"{/if}>
154 <dt><label for="overrideApplicationPackageID">{lang}wcf.acp.page.application{/lang}</label></dt>
155 <dd>
156 <select name="overrideApplicationPackageID" id="overrideApplicationPackageID">
157 {assign var='_overrideApplicationPackageID' value=$overrideApplicationPackageID}
158 {if !$_overrideApplicationPackageID}{assign var='_overrideApplicationPackageID' value=$page->applicationPackageID}{/if}
159 {foreach from=$availableApplications item=availableApplication}
160 <option value="{$availableApplication->packageID}"{if $availableApplication->packageID == $_overrideApplicationPackageID} selected{/if}>{$availableApplication->domainName}{$availableApplication->domainPath}</option>
161 {/foreach}
162 </select>
163 {if $errorField == 'overrideApplicationPackageID'}
164 <small class="innerError">
165 {if $errorType == 'empty'}
166 {lang}wcf.global.form.error.empty{/lang}
167 {else}
168 {lang}wcf.acp.page.application.error.{@$errorType}{/lang}
169 {/if}
170 </small>
171 {/if}
172 </dd>
173 </dl>
174 {/if}
175
176 {if !$isMultilingual}
177 <dl{if $errorField == 'customURL_0'} class="formError"{/if}>
178 <dt><label for="customURL">{lang}wcf.acp.page.customURL{/lang}</label></dt>
179 <dd>
180 <input type="text" id="customURL" name="customURL[0]" value="{if !$customURL[0]|empty}{$customURL[0]}{/if}" class="long" maxlength="255">
181 {if $errorField == 'customURL_0'}
182 <small class="innerError">
183 {if $errorType == 'empty'}
184 {lang}wcf.global.form.error.empty{/lang}
185 {else}
186 {lang}wcf.acp.page.customURL.error.{@$errorType}{/lang}
187 {/if}
188 </small>
189 {/if}
190 </dd>
191 </dl>
192 {else}
193 {foreach from=$availableLanguages item=availableLanguage}
194 {assign var='__errorFieldName' value='customURL_'|concat:$availableLanguage->languageID}
195 <dl{if $errorField == $__errorFieldName} class="formError"{/if}>
196 <dt><label for="customURL{@$availableLanguage->languageID}">{lang}wcf.acp.page.customURL{/lang} ({$availableLanguage->languageName})</label></dt>
197 <dd>
198 <input type="text" id="customURL{@$availableLanguage->languageID}" name="customURL[{@$availableLanguage->languageID}]" value="{if !$customURL[$availableLanguage->languageID]|empty}{$customURL[$availableLanguage->languageID]}{/if}" class="long" maxlength="255">
199 {if $errorField == $__errorFieldName}
200 <small class="innerError">
201 {if $errorType == 'empty'}
202 {lang}wcf.global.form.error.empty{/lang}
203 {else}
204 {lang}wcf.acp.page.customURL.error.{@$errorType}{/lang}
205 {/if}
206 </small>
207 {/if}
208 </dd>
209 </dl>
210 {/foreach}
211 {/if}
212
213 <dl{if $errorField == 'cssClassName'} class="formError"{/if}>
214 <dt><label for="cssClassName">{lang}wcf.acp.page.cssClassName{/lang}</label></dt>
215 <dd>
216 <input type="text" id="cssClassName" name="cssClassName" value="{$cssClassName}" class="long" maxlength="255">
217 {if $errorField == 'cssClassName'}
218 <small class="innerError">
219 {if $errorType == 'empty'}
220 {lang}wcf.global.form.error.empty{/lang}
221 {else}
222 {lang}wcf.acp.page.cssClassName.error.{@$errorType}{/lang}
223 {/if}
224 </small>
225 {/if}
226 </dd>
227 </dl>
228
229 {if $action != 'edit' || $page->pageType != 'system'}
230 <dl>
231 <dt></dt>
232 <dd>
233 <label><input type="checkbox" id="isDisabled" name="isDisabled" value="1"{if $isDisabled} checked{/if}> {lang}wcf.acp.page.isDisabled{/lang}</label>
234 </dd>
235 </dl>
236 {/if}
237
238 <dl>
239 <dt></dt>
240 <dd>
241 <label><input type="checkbox" id="availableDuringOfflineMode" name="availableDuringOfflineMode" value="1"{if $availableDuringOfflineMode} checked{/if}> {lang}wcf.acp.page.availableDuringOfflineMode{/lang}</label>
242 </dd>
243 </dl>
244
245 <dl>
246 <dt></dt>
247 <dd>
248 <label><input type="checkbox" id="allowSpidersToIndex" name="allowSpidersToIndex" value="1"{if $allowSpidersToIndex} checked{/if}> {lang}wcf.acp.page.allowSpidersToIndex{/lang}</label>
249 </dd>
250 </dl>
251
252 {if $action === 'add'}
253 <dl>
254 <dt></dt>
255 <dd>
256 <label><input type="checkbox" id="addPageToMainMenu" name="addPageToMainMenu" value="1"{if $addPageToMainMenu} checked{/if}> {lang}wcf.acp.page.addPageToMainMenu{/lang}</label>
257
258 <script data-relocate="true">
259 elById('addPageToMainMenu').addEventListener('change', function() {
260 if (this.checked) {
261 elShow(elById('parentMenuItemDl'));
262 }
263 else {
264 elHide(elById('parentMenuItemDl'));
265 }
266 });
267 </script>
268 </dd>
269 </dl>
270
271 <dl id="parentMenuItemDl"{if $errorField == 'parentMenuItemID'} class="formError"{/if}{if !$addPageToMainMenu} style="display: none"{/if}>
272 <dt><label for="parentMenuItemID">{lang}wcf.acp.menu.item.parentItem{/lang}</label></dt>
273 <dd>
274 <select name="parentMenuItemID" id="parentMenuItemID">
275 <option value="0">{lang}wcf.global.noSelection{/lang}</option>
276
277 {foreach from=$menuItemNodeList item=menuItemNode}
278 <option value="{$menuItemNode->itemID}"{if $menuItemNode->itemID == $parentMenuItemID} selected{/if}>{if $menuItemNode->getDepth() > 1}{@"&nbsp;&nbsp;&nbsp;&nbsp;"|str_repeat:($menuItemNode->getDepth() - 1)}{/if}{$menuItemNode->getTitle()}</option>
279 {/foreach}
280 </select>
281 {if $errorField == 'parentMenuItemID'}
282 <small class="innerError">
283 {if $errorType == 'empty'}
284 {lang}wcf.global.form.error.empty{/lang}
285 {else}
286 {lang}wcf.acp.page.parentMenuItem.error.{@$errorType}{/lang}
287 {/if}
288 </small>
289 {/if}
290 </dd>
291 </dl>
292 {/if}
293
294 {if $pageType !== 'system'}
295 <dl>
296 <dt></dt>
297 <dd>
298 <label><input type="checkbox" id="enableShareButtons" name="enableShareButtons" value="1"{if $enableShareButtons} checked{/if}> {lang}wcf.acp.page.enableShareButtons{/lang}</label>
299 </dd>
300 </dl>
301 {/if}
302
303 {event name='dataFields'}
304 </div>
305 </div>
306
307 <div id="contents" class="tabMenuContent">
308 {if !$isMultilingual && $pageType != 'system'}
309 <div class="section">
310 <dl{if $errorField == 'title'} class="formError"{/if}>
311 <dt><label for="title">{lang}wcf.global.title{/lang}</label></dt>
312 <dd>
313 <input type="text" id="title" name="title[0]" value="{if !$title[0]|empty}{$title[0]}{/if}" class="long" maxlength="255">
314 {if $errorField == 'title'}
315 <small class="innerError">
316 {if $errorType == 'empty'}
317 {lang}wcf.global.form.error.empty{/lang}
318 {else}
319 {lang}wcf.acp.page.title.error.{@$errorType}{/lang}
320 {/if}
321 </small>
322 {/if}
323 </dd>
324 </dl>
325
326 {event name='informationFields'}
327
328 <dl{if $errorField == 'content'} class="formError"{/if}>
329 <dt><label for="content0">{lang}wcf.acp.page.content{/lang}</label></dt>
330 <dd>
331 {include file='__pageAddContent' languageID=0}
332
333 {if $errorField == 'content'}
334 <small class="innerError">
335 {if $errorType == 'empty'}
336 {lang}wcf.global.form.error.empty{/lang}
337 {else}
338 {lang}wcf.acp.page.content.error.{@$errorType}{/lang}
339 {/if}
340 </small>
341 {/if}
342 </dd>
343 </dl>
344
345 {if $pageType == 'text'}
346 {include file='messageFormTabs' wysiwygContainerID='content0'}
347 {/if}
348
349 {event name='messageFields'}
350
351 <dl{if $errorField == 'metaDescription'} class="formError"{/if}>
352 <dt><label for="metaDescription">{lang}wcf.acp.page.metaDescription{/lang}</label></dt>
353 <dd>
354 <input type="text" class="long" name="metaDescription[0]" id="metaDescription" value="{if !$metaDescription[0]|empty}{$metaDescription[0]}{/if}">
355 {if $errorField == 'metaDescription'}
356 <small class="innerError">
357 {if $errorType == 'empty'}
358 {lang}wcf.global.form.error.empty{/lang}
359 {else}
360 {lang}wcf.acp.page.metaDescription.error.{@$errorType}{/lang}
361 {/if}
362 </small>
363 {/if}
364 </dd>
365 </dl>
366
367 {event name='metaFields'}
368 </div>
369 {else}
370 <div class="tabMenuContainer">
371 <nav class="menu">
372 <ul>
373 {foreach from=$availableLanguages item=availableLanguage}
374 <li><a href="#language{$availableLanguage->languageID}">{$availableLanguage->languageName}</a></li>
375 {/foreach}
376 </ul>
377 </nav>
378
379 {foreach from=$availableLanguages item=availableLanguage}
380 <div id="language{@$availableLanguage->languageID}" class="tabMenuContent">
381 <div class="section">
382 {assign var='__errorFieldName' value='title_'|concat:$availableLanguage->languageID}
383 <dl{if $errorField == $__errorFieldName} class="formError"{/if}>
384 <dt><label for="title{@$availableLanguage->languageID}">{lang}wcf.global.title{/lang}</label></dt>
385 <dd>
386 <input type="text" id="title{@$availableLanguage->languageID}" name="title[{@$availableLanguage->languageID}]" value="{if !$title[$availableLanguage->languageID]|empty}{$title[$availableLanguage->languageID]}{/if}" class="long" maxlength="255">
387 {if $errorField == $__errorFieldName}
388 <small class="innerError">
389 {if $errorType == 'empty'}
390 {lang}wcf.global.form.error.empty{/lang}
391 {else}
392 {lang}wcf.acp.page.title.error.{@$errorType}{/lang}
393 {/if}
394 </small>
395 {/if}
396 </dd>
397 </dl>
398
399 {if $pageType == 'system'}
400 {assign var='__errorFieldName' value='metaDescription_'|concat:$availableLanguage->languageID}
401 <dl{if $errorField == $__errorFieldName} class="formError"{/if}>
402 <dt><label for="metaDescription{@$availableLanguage->languageID}">{lang}wcf.acp.page.metaDescription{/lang}</label></dt>
403 <dd>
404 <input type="text" class="long" name="metaDescription[{@$availableLanguage->languageID}]" id="metaDescription{@$availableLanguage->languageID}" value="{if !$metaDescription[$availableLanguage->languageID]|empty}{$metaDescription[$availableLanguage->languageID]}{/if}">
405 {if $errorField == $__errorFieldName}
406 <small class="innerError">
407 {if $errorType == 'empty'}
408 {lang}wcf.global.form.error.empty{/lang}
409 {else}
410 {lang}wcf.acp.page.metaDescription.error.{@$errorType}{/lang}
411 {/if}
412 </small>
413 {/if}
414 </dd>
415 </dl>
416
417 {event name='metaFieldsMultilingualSystemPage'}
418 {/if}
419
420 {event name='informationFieldsMultilingual'}
421
422 {if $pageType != 'system'}
423 {assign var='__errorFieldName' value='content_'|concat:$availableLanguage->languageID}
424 <dl{if $errorField == $__errorFieldName} class="formError"{/if}>
425 <dt><label for="content{@$availableLanguage->languageID}">{lang}wcf.acp.page.content{/lang}</label></dt>
426 <dd>
427 {include file='__pageAddContent' languageID=$availableLanguage->languageID}
428
429 {if $errorField == $__errorFieldName}
430 <small class="innerError">
431 {if $errorType == 'empty'}
432 {lang}wcf.global.form.error.empty{/lang}
433 {else}
434 {lang}wcf.acp.page.content.error.{@$errorType}{/lang}
435 {/if}
436 </small>
437 {/if}
438 </dd>
439 </dl>
440
441 {if $pageType == 'text'}
442 {include file='messageFormTabs' wysiwygContainerID='content'|concat:$availableLanguage->languageID}
443 {/if}
444
445 {event name='messageFieldsMultilingual'}
446
447 {assign var='__errorFieldName' value='metaDescription_'|concat:$availableLanguage->languageID}
448 <dl{if $errorField == $__errorFieldName} class="formError"{/if}>
449 <dt><label for="metaDescription{@$availableLanguage->languageID}">{lang}wcf.acp.page.metaDescription{/lang}</label></dt>
450 <dd>
451 <input type="text" class="long" name="metaDescription[{@$availableLanguage->languageID}]" id="metaDescription{@$availableLanguage->languageID}" value="{if !$metaDescription[$availableLanguage->languageID]|empty}{$metaDescription[$availableLanguage->languageID]}{/if}">
452 {if $errorField == $__errorFieldName}
453 <small class="innerError">
454 {if $errorType == 'empty'}
455 {lang}wcf.global.form.error.empty{/lang}
456 {else}
457 {lang}wcf.acp.page.metaDescription.error.{@$errorType}{/lang}
458 {/if}
459 </small>
460 {/if}
461 </dd>
462 </dl>
463
464 {event name='metaFieldsMultilingual'}
465 {/if}
466 </div>
467 </div>
468 {/foreach}
469 </div>
470 {/if}
471 </div>
472
473 <div id="boxes" class="tabMenuContent">
474 <div class="section">
475 <woltlab-core-notice type="info">{lang}wcf.acp.page.boxOrder.page{@$action|ucfirst}{/lang}</woltlab-core-notice>
476
477 <dl{if $errorField == 'boxIDs'} class="formError"{/if}>
478 <dt>{lang}wcf.acp.page.boxes{/lang}</dt>
479 <dd>
480 <ul class="scrollableCheckboxList" id="boxVisibilitySettings">
481 {foreach from=$availableBoxes item=availableBox}
482 <li>
483 <label>
484 <input type="checkbox" name="boxIDs[]" value="{$availableBox->boxID}"{if $availableBox->boxID|in_array:$boxIDs} checked{/if}{if $availableBox->identifier == 'com.woltlab.wcf.MainMenu'} disabled{/if}>
485 {$availableBox->name}
486 {if $availableBox->isDisabled}
487 <span class="jsTooltip" title="{lang}wcf.acp.box.isDisabled{/lang}">
488 {icon name='triangle-exclamation'}
489 </span>
490 {/if}
491 </label>
492 </li>
493 {/foreach}
494 </ul>
495 {if $errorField == 'boxIDs'}
496 <small class="innerError">
497 {if $errorType == 'empty'}
498 {lang}wcf.global.form.error.empty{/lang}
499 {else}
500 {lang}wcf.acp.page.boxIDs.error.{@$errorType}{/lang}
501 {/if}
502 </small>
503 {/if}
504 <script data-relocate="true">
505 require(['Language', 'WoltLabSuite/Core/Ui/ItemList/Filter'], function(Language, UiItemListFilter) {
506 Language.addObject({
507 'wcf.global.filter.button.visibility': '{jslang}wcf.global.filter.button.visibility{/jslang}',
508 'wcf.global.filter.button.clear': '{jslang}wcf.global.filter.button.clear{/jslang}',
509 'wcf.global.filter.error.noMatches': '{jslang}wcf.global.filter.error.noMatches{/jslang}',
510 'wcf.global.filter.placeholder': '{jslang}wcf.global.filter.placeholder{/jslang}',
511 'wcf.global.filter.visibility.activeOnly': '{jslang}wcf.global.filter.visibility.activeOnly{/jslang}',
512 'wcf.global.filter.visibility.highlightActive': '{jslang}wcf.global.filter.visibility.highlightActive{/jslang}',
513 'wcf.global.filter.visibility.showAll': '{jslang}wcf.global.filter.visibility.showAll{/jslang}'
514 });
515
516 new UiItemListFilter('boxVisibilitySettings');
517 });
518 </script>
519 </dd>
520 </dl>
521 </div>
522 </div>
523
524 {if $action != 'edit' || $page->pageType != 'system'}
525 <div id="acl" class="tabMenuContent">
526 {include file='shared_aclSimple' __supportsInvertedPermissions=true}
527 </div>
528 {/if}
529
530 {event name='tabMenuContents'}
531 </div>
532
533 <div class="formSubmit">
534 <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s">
535 <input type="hidden" name="isMultilingual" value="{$isMultilingual}">
536 <input type="hidden" name="pageType" value="{$pageType}">
537 {csrfToken}
538 </div>
539</form>
540
541{include file='footer'}