create_custom_menu_with_items.html

 1   <link rel="stylesheet" href="css/admin/plugins/menus/scrollable-lists.css">
 2   <#include "/admin/plugins/menus/macro/custom_menu_macro.html">
 3   
 4   <@pageContainer>
 5       <@pageColumn>
 6           <@pageHeader title='#i18n{menus.create_custom_menu_with_items.pageTitle}' />
 7           
 8           <@row>
 9               <@columns md=12>
 10                   <@tform method='post' action='jsp/admin/plugins/menus/ManageCustomMenus.jsp?action=searchItems' boxed=true>
 11                   	
 12                   	<@input type='hidden' name='id' value=id_current_custom_menu!'' />
 13                   	<br>
 14                       <@formGroup labelKey='#i18n{menus.create_custom_menu_with_items.labelSearch}' labelFor='search'>
 15   	                    <@row>
 16   	                        <@columns md=8>
 17   	                            <@div class="search-input-container">
 18   	                                <@input type='text' class="form-control" id="searchInput" name='search' value=search_criteria!'' placeHolder='#i18n{menus.create_custom_menu_with_items.placeholderSearch}' />
 19   	                            </@div>
 20   	                        </@columns>
 21   	                        <@columns md=4>
 22   	                            <@button type='submit' name='searchItemsButton' value="search" buttonIcon='search' title='#i18n{menus.create_custom_menu_with_items.labelSearch}' color='primary' />
 23   	                            <@button type='submit' name='searchItemsButton' value="clean" buttonIcon='times' title='#i18n{menus.create_custom_menu_with_items.buttonCleanSearch}' color='secondary' />
 24   	                        </@columns>
 25   	                    </@row>
 26                           <@formHelp>#i18n{menus.create_custom_menu_with_items.helpSearch}</@formHelp>
 27                         </@formGroup>
 28                         <br>
 29                         <!-- List of Page, Xpage and SubMenu -->
 30                         <@row class='mt-3'>
 31                             <@columns md=4>
 32                                 <@box>
 33                                     <@boxHeader class='text-center'>
 34                                         <h5>#i18n{menus.create_custom_menu_with_items.labelListPages}</h5>
 35                                     </@boxHeader>
 36                                     <@boxBody>
 37                                         <div class="scrollable-list" style="max-height: 200px !important; overflow-y: auto !important; border: 1px solid #dee2e6; border-radius: 0.375rem;">
 38   									<@listGroup>
 39                                                 <#if available_pages_list?? && available_pages_list?size &gt; 0>
 40                                                     <#list available_pages_list as page>
 41                                                         <@listGroupItem id=page.code!'' class='hoverable-item' params='data-type="page"'>
 42                                                             ${page.name}
 43                                                         </@listGroupItem>
 44                                                     </#list>
 45                                                 </#if>
 46                                             </@listGroup>
 47                                         </div>
 48                                     </@boxBody>
 49                                 </@box>
 50                               </@columns>
 51                               <@columns md=4>
 52                                   <@box>
 53                                       <@boxHeader class='text-center'>
 54                                           <h5>#i18n{menus.create_custom_menu_with_items.labelListXPages}</h5>
 55                                       </@boxHeader>
 56                                       <@boxBody>
 57                                           <div class="scrollable-list" style="max-height: 200px !important; overflow-y: auto !important; border: 1px solid #dee2e6; border-radius: 0.375rem;">
 58   											<@listGroup>
 59                                                   <#if available_xpages_list?? && available_xpages_list?size &gt; 0>
 60                                                       <#list available_xpages_list as xpage>
 61                                                           <@listGroupItem id=xpage.code!'' class='hoverable-item' params='data-type="xpage"'>
 62                                                               ${xpage.name}
 63                                                           </@listGroupItem>
 64                                                       </#list>
 65                                                   </#if>
 66                                               </@listGroup>
 67                                           </div>
 68                                       </@boxBody>
 69                                   </@box>
 70                               </@columns>
 71                               <@columns md=4>
 72                                   <@box>
 73                                       <@boxHeader class='text-center'>
 74                                           <h5>#i18n{menus.create_custom_menu_with_items.labelListMenus}</h5>
 75                                       </@boxHeader>
 76                                       <@boxBody>
 77                                           <div class="scrollable-list" style="max-height: 200px !important; overflow-y: auto !important; border: 1px solid #dee2e6; border-radius: 0.375rem;">
 78                                               <@listGroup>
 79                                                   <#if available_menus_list?? && available_menus_list?size &gt; 0>
 80                                                       <#list available_menus_list as menu>
 81                                                           <@listGroupItem id=menu.code!'' class='hoverable-item' params='data-type="menu"'>
 82                                                               ${menu.name}
 83                                                           </@listGroupItem>
 84                                                       </#list>
 85                                                   </#if>
 86                                               </@listGroup>
 87                                           </div>
 88                                       </@boxBody>
 89                                   </@box>
 90                               </@columns>
 91                           </@row>
 92                   </@tform>
 93               </@columns>
 94           </@row>
 95           
 96           <@row class='mt-5'>
 97           <@messages errors=errors/>
 98               <@columns md=4>
 99                   <@box>
 100                       <@boxHeader class='text-center'>
 101                           <h4>#i18n{menus.create_custom_menu_with_items.formPreviewItemTitle}</h4>
 102                       </@boxHeader>
 103                       <@boxBody>
 104   
 105                           <@tform method='post' action='jsp/admin/plugins/menus/ManageCustomMenus.jsp?action=createCustomMenuItems' id='add-item-form'>
 106   
 107                           	<@messages errors=create_items_errors_list/>
 108                           	<@input type='hidden' name='parent_menu_id' value=id_current_custom_menu!'' />
 109                           	<@input type='hidden' id='source_id_item' name='source_item_id' value='' />
 110   
 111                               <@formGroup id='type-group' labelKey='#i18n{menus.create_custom_menu_with_items.labelPreviewItemType}' labelFor='item_type' mandatory=true>
 112                                   <@select name='type' id='item_type' items=item_types_list />
 113                               </@formGroup>
 114   
 115                               <@formGroup id='dynamic-group' params="hidden=true">
 116                                   <@checkBox name='is_label_dynamic' id='item_dynamic' labelKey='#i18n{menus.create_custom_menu_with_items.labelPreviewItemIsLabelDynamic}' value='1' />
 117                                   <@formHelp>#i18n{menus.create_custom_menu_with_items.helpPreviewItemIsLabelDynamic}</@formHelp>
 118                               </@formGroup>
 119   
 120                               <@formGroup id='blank-group' params="hidden=true">
 121                                   <@checkBox name='is_blank' id='item_blank' labelKey='#i18n{menus.create_custom_menu_with_items.labelPreviewItemIsBlank}' value='1'/>
 122                                   <@formHelp>#i18n{menus.create_custom_menu_with_items.helpPreviewItemIsBlank}</@formHelp>
 123                               </@formGroup>
 124                               
 125                               <@formGroup id='label-group' labelKey='#i18n{menus.create_custom_menu_with_items.labelPreviewItemLabel}' labelFor='item_label' mandatory=true params="hidden=true">
 126                                   <@input type='text' name='label' id='item_label' maxlength=50/>
 127                                   <@formHelp>#i18n{menus.create_custom_menu_with_items.helpPreviewItemLabel}</@formHelp>
 128                               </@formGroup>
 129                                                           
 130                               <@formGroup id='url-group' labelKey='#i18n{menus.create_custom_menu_with_items.labelPreviewItemUrl}' labelFor='item_url' mandatory=true params="hidden=true">
 131                                   <@input type='text' name='url' id='item_url' />
 132                                   <@formHelp>#i18n{menus.create_custom_menu_with_items.helpPreviewItemUrlPage}</@formHelp>
 133                               </@formGroup>
 134                               
 135                               <@formGroup id='menu-group' labelKey='#i18n{menus.create_custom_menu_with_items.labelPreviewItemSubMenu} *' labelFor='item_target_menu'  params="hidden=true">
 136                                   <@select name="select_menu" id='item_target_menu' items=available_menus_list />
 137                                   <@formHelp>#i18n{menus.create_custom_menu_with_items.helpPreviewItemSubMenu}</@formHelp>
 138                               </@formGroup>
 139                               
 140                               <@formGroup>
 141                                   <@button type='submit' buttonIcon='plus' title='#i18n{menus.create_custom_menu_with_items.buttonAddItem}' color='success' />
 142                               </@formGroup>
 143                           </@tform>
 144                       </@boxBody>
 145                   </@box>
 146               </@columns>
 147               <@columns class="col-md-1 d-flex justify-content-center align-items-center">
 148               	<i class="ti ti-arrow-right" style="font-size: 3rem; color: #007bff;"></i>
 149               </@columns>
 150               <@columns md=7>
 151                   <@box>
 152                       <@boxHeader class='text-center'>
 153                           <h4>#i18n{menus.create_custom_menu_with_items.previewMenuTitle}</h4>
 154                       </@boxHeader>
 155                       <@boxBody>
 156                           <@table>
 157                               <@tr>
 158                                   <@th>#i18n{menus.create_custom_menu_with_items.labelColumnItemType}</@th>
 159                                   <@th>#i18n{menus.create_custom_menu_with_items.labelColumnItemIdOrName}</@th>
 160                                   <@th>#i18n{menus.create_custom_menu_with_items.labelColumnItemIsLabelDynamic}</@th>
 161                                   <@th>#i18n{menus.create_custom_menu_with_items.labelColumnItemLabel}</@th>
 162                                   <@th>#i18n{menus.create_custom_menu_with_items.labelColumnItemOrder}</@th>
 163                                   <@th>#i18n{menus.create_custom_menu_with_items.labelColumnItemActions}</@th>
 164                               </@tr>
 165                               <#if custom_menu_items_list?? && custom_menu_items_list?size &gt; 0>
 166                                   <#if max_order_size??>
 167                                   	<#assign size_list = max_order_size />
 168                                   <#else>
 169                                       <#assign size_list = custom_menu_items_list?size />
 170                                   </#if>
 171                                   <#list custom_menu_items_list as item>
 172                                       <@tr>
 173                                           <@td>${item.type!''}</@td>
 174                                           <@td> 
 175                                           <#if item.type!='menu'> 
 176                                           	<#if item.sourceItemId?? && item.sourceItemId?trim?length &gt; 0>
 177   											  ${item.sourceItemId!''}
 178   											<#else>
 179   											  <div class='text-muted'>#i18n{menus.create_custom_menu_with_items.labelCustomItem}</div>
 180   											</#if>
 181                                           <#else>
 182                                           <#assign matched_menu = ''>
 183   										<#list available_menus_list as menu>
 184   										    <#if menu.code = item.sourceItemId>
 185   										        <#assign matched_menu = menu.name>
 186   										        <#break>
 187   										    </#if>
 188   										</#list>
 189   										${matched_menu}
 190   										</#if>
 191   										</@td>
 192                                           <@td> 
 193                                           	<#if item.isLabelDynamic( )?? && item.isLabelDynamic( )>
 194                                           	  	<span class="badge bg-success"><i class="ti ti-check"></i></span>
 195                                           	<#else>
 196                                           		<span class="badge bg-warning"><i class="ti ti-x"></i></span>
 197                                           	</#if>
 198                                           </@td>
 199                                           <@td>
 200                                          		<#if item.type='page' && item.isLabelDynamic( )?? && item.isLabelDynamic( )>
 201                                          			<#if available_pages_list?? && available_pages_list?size &gt; 0 && item.sourceItemId??>
 202                                                       <#list available_pages_list as page>
 203                                                       	<#if page.code=item.sourceItemId>
 204                                                               ${(page.name?? && page.name?has_content)?then(page.name?split("-")[0], "")}
 205                                                           </#if>
 206                                                       </#list>
 207                                                    </#if>
 208                                          		<#else>
 209                                          			${item.label!''}
 210                                          		</#if>
 211                                           </@td>
 212                                           <@td>
 213                                               <!-- SELECT LIST FOR ORDER CHANGE -->
 214   											<@tform type='inline' action='jsp/admin/plugins/menus/ManageCustomMenus.jsp?action=changeMenuItemsOrder&id=${item.id}'>
 215   												<@input type='hidden' name='id_item' value=item.id />
 216   												<@inputGroup>
 217   													<@comboOrders name='order_id' default_value=item.order!'' max=size_list />
 218   													<@inputGroupItem type='btn'>
 219   														<@button type='submit' buttonIcon='check' color='default' title='#i18n{menus.create_custom_menu_with_items.buttonChangeItemOrder}' hideTitle=['all'] size='sm'/>
 220   													</@inputGroupItem>
 221   												</@inputGroup>
 222   											</@tform>
 223                                           </@td>
 224                                           <@td>
 225                                           	<@offcanvas btnClass="btn-sm btnAddCanvas" size='25' targetUrl='jsp/admin/plugins/menus/ManageCustomMenus.jsp?view=modifyCustomMenuItem&id=${item.id}' targetElement='#modify-item-form' redirectForm=false id='custom-menu-item-modify-${item.id}' title='#i18n{menus.create_custom_menu_with_items.buttonModifyItem}' position='end' hideTitle=['all'] btnIcon='edit' />
 226                           					<@aButton href='jsp/admin/plugins/menus/ManageCustomMenus.jsp?view=removeCustomMenuItem&id=${item.id}' title='#i18n{menus.create_custom_menu_with_items.buttonRemoveItem}' buttonIcon='trash' color='danger' hideTitle=['all'] size='sm' />
 227                                           </@td>
 228                                       </@tr>
 229                                   </#list>
 230                               <#else>
 231                                   <@tr>
 232                                       <@td colspan=3 class='text-center text-muted'>#i18n{menus.create_custom_menu_with_items.labelNoItem}</@td>
 233                                   </@tr>
 234                               </#if>
 235                           </@table>
 236                           <@paginationAdmin paginator=paginator combo=1 />
 237                       </@boxBody>
 238                   </@box>
 239               </@columns>
 240           </@row>
 241           
 242           <!-- Bouton retour en bas de page -->
 243           <@row class='mt-4'>
 244               <@columns md=12 class='text-center'>
 245                   <@aButton href='jsp/admin/plugins/menus/ManageCustomMenus.jsp' buttonIcon='times' title='#i18n{portal.util.labelBack}' color='secondary' />
 246               </@columns>
 247           </@row>
 248       </@pageColumn>
 249   </@pageContainer>
 250   
 251   <script src='js/plugins/menus/menus-searchbar.js'></script>