| @@ -80,9 +80,9 @@ | ||
| 80 | 80 | ); |
| 81 | 81 | $params = wp_parse_args( $args, $defaults ); |
| 82 | 82 | |
| 83 | 83 | // Ability to click on panel, only if there 'min' class - panel minimized! |
| 84 | - echo '<div class="wpbc_ui_el__vert_left_bar__wrapper" onclick0="javascript:if (( jQuery( this ).parent(\'.wpbc_settings_page_wrapper\').hasClass(\'min\') ) && ( ! wpbc_admin_ui__is_in_mobile_screen_size())) { wpbc_admin_ui__sidebar_left__do_max(); }" >'; | |
| 84 | + echo '<div class="wpbc_ui_el__vert_left_bar__wrapper" onclick="javascript:if (( jQuery( this ).parent(\'.wpbc_settings_page_wrapper\').hasClass(\'min\') ) && ( ! wpbc_admin_ui__is_in_mobile_screen_size())) { wpbc_admin_ui__sidebar_left__do_max( true ); }" >'; | |
| 85 | 85 | |
| 86 | 86 | // FixIn: 10.12.1.7. |
| 87 | 87 | wpbc_ui__vert_left_bar__side_button__do_compact(); |
| 88 | 88 | wpbc_ui__vert_left_bar__side_button__do_max(); |
| @@ -92,13 +92,17 @@ | ||
| 92 | 92 | 'active_tab' => $args ['active_tab'], // calendar_appearance. |
| 93 | 93 | 'active_subtab' => $args['active_subtab'], // calendar_appearance_skin. |
| 94 | 94 | ); |
| 95 | 95 | |
| 96 | + if ( function_exists( 'wpbc_booking_modes_v3_compile_sidebar_navigation' ) ) { | |
| 97 | + $args['page_nav_tabs'] = wpbc_booking_modes_v3_compile_sidebar_navigation( $args['page_nav_tabs'] ); | |
| 98 | + } | |
| 99 | + | |
| 96 | 100 | // Available Main Menu - slug => titles. |
| 97 | 101 | $root_menu_arr = wpbc_ui__get_root_menu_arr(); |
| 98 | 102 | |
| 99 | - if ( function_exists( 'wpbc_booking_modes_resolve_root_navigation' ) ) { | |
| 100 | - $root_menu_arr = wpbc_booking_modes_resolve_root_navigation( $root_menu_arr, $args['page_nav_tabs'] ); | |
| 103 | + if ( function_exists( 'wpbc_booking_modes_v3_compile_root_navigation' ) ) { | |
| 104 | + $root_menu_arr = wpbc_booking_modes_v3_compile_root_navigation( $root_menu_arr, $args['page_nav_tabs'] ); | |
| 101 | 105 | } |
| 102 | 106 | |
| 103 | 107 | // A mode may display an existing controller route below a different presentation group. |
| 104 | 108 | foreach ( $args['page_nav_tabs'] as $presentation_page_slug => $presentation_tabs ) { |
| @@ -123,10 +127,11 @@ | ||
| 123 | 127 | } else { |
| 124 | 128 | |
| 125 | 129 | // wpbc_ui_el__divider_horizontal(); |
| 126 | 130 | echo '<div class="wpbc_ui_el__row100 wpbc_ui_el__expand_colapse_btns">'; |
| 127 | - wpbc_ui__vert_left_bar__do_compact(); | |
| 128 | - wpbc_ui__vert_left_bar__do_max(); | |
| 131 | + wpbc_ui__vert_left_bar__do_min(); | |
| 132 | + //wpbc_ui__vert_left_bar__do_compact(); | |
| 133 | + //wpbc_ui__vert_left_bar__do_max(); | |
| 129 | 134 | echo '</div>'; |
| 130 | 135 | |
| 131 | 136 | echo ' <div class="wpbc_ui_el__vert_left_bar__root_sections_container" role="tablist">'; |
| 132 | 137 | } |
| @@ -138,15 +143,32 @@ | ||
| 138 | 143 | continue; |
| 139 | 144 | } |
| 140 | 145 | |
| 141 | 146 | $page_title = $root_menu_options_arr['title']; |
| 142 | - $is_expanded = ( $main_page_slug === $active_page_arr['active_page'] ); | |
| 147 | + $is_v3_standalone = ! empty( $root_menu_options_arr['mode_standalone'] ); | |
| 148 | + // Respect a V3 root's explicit initial state while retaining the original Settings behavior for V1. | |
| 149 | + if ( $is_v3_standalone ) { | |
| 150 | + $is_expanded = true; | |
| 151 | + } elseif ( isset( $root_menu_options_arr['mode_expanded'] ) ) { | |
| 152 | + $is_expanded = 'On' === $root_menu_options_arr['mode_expanded'] | |
| 153 | + || ( 'when_active' === $root_menu_options_arr['mode_expanded'] && $main_page_slug === $active_page_arr['active_page'] ); | |
| 154 | + } else { | |
| 155 | + $is_expanded = ( 'wpbc-settings' !== $main_page_slug ) || ( $main_page_slug === $active_page_arr['active_page'] ); | |
| 156 | + } | |
| 143 | 157 | |
| 144 | 158 | if ( $is_show_all_menus ) { |
| 145 | 159 | echo ' <div class="wpbc_ui_el__vert_left_bar__root_section_element root_section_element_' . esc_attr( $main_page_slug ) . ' ' . ( ( $is_expanded ) ? 'section_expanded' : '' ) . '">'; |
| 146 | 160 | |
| 147 | 161 | $mode_font_icon = isset( $root_menu_options_arr['mode_font_icon'] ) ? $root_menu_options_arr['mode_font_icon'] : ''; |
| 148 | - wpbc_ui__vert_menu__show_root_section_header( $main_page_slug, $page_title, $mode_font_icon ); | |
| 162 | + if ( ! $is_v3_standalone ) { | |
| 163 | + wpbc_ui__vert_menu__show_root_section_header( | |
| 164 | + $main_page_slug, | |
| 165 | + $page_title, | |
| 166 | + $mode_font_icon, | |
| 167 | + isset( $root_menu_options_arr['mode_expanded'] ), | |
| 168 | + $is_expanded | |
| 169 | + ); | |
| 170 | + } | |
| 149 | 171 | } |
| 150 | 172 | |
| 151 | 173 | echo ' <div class="wpbc_ui_el__vert_left_bar__section wpbc_ui_el__vert_left_bar__section_' . |
| 152 | 174 | esc_attr( $main_page_slug ) . |
| @@ -170,62 +192,74 @@ | ||
| 170 | 192 | echo '</div>'; |
| 171 | 193 | wpbc_ui_el__divider_horizontal(); |
| 172 | 194 | } |
| 173 | 195 | |
| 174 | - foreach ( $page_item_arr as $main_menu_slug => $menu_item_arr ) { | |
| 175 | - $folder_style = ( ! empty( $menu_item_arr['folder_style'] ) ) ? esc_attr( $menu_item_arr['folder_style'] ) : ''; | |
| 196 | + if ( function_exists( 'wpbc_booking_modes_v3_compile_sidebar_navigation' ) ) { | |
| 197 | + wpbc_ui__vert_menu__render_v3_nodes( $page_item_arr ); | |
| 198 | + } else { | |
| 199 | + foreach ( $page_item_arr as $main_menu_slug => $menu_item_arr ) { | |
| 200 | + $folder_style = ( ! empty( $menu_item_arr['folder_style'] ) ) ? esc_attr( $menu_item_arr['folder_style'] ) : ''; | |
| 176 | 201 | |
| 177 | - $folder_css = ''; | |
| 178 | - if ( ( ! empty( $menu_item_arr['subtabs'] ) ) && ( ! empty( $menu_item_arr['is_active'] ) ) ) { | |
| 179 | - $folder_css .= ' expanded'; | |
| 180 | - } | |
| 202 | + $folder_css = ''; | |
| 203 | + $is_folder_expanded = ! empty( $menu_item_arr['subtabs'] ) && ! empty( $menu_item_arr['is_active'] ); | |
| 204 | + if ( isset( $menu_item_arr['_wpbc_v3_expanded'] ) ) { | |
| 205 | + $is_folder_expanded = 'On' === $menu_item_arr['_wpbc_v3_expanded'] | |
| 206 | + || ( 'when_active' === $menu_item_arr['_wpbc_v3_expanded'] && $is_folder_expanded ); | |
| 207 | + } | |
| 208 | + if ( $is_folder_expanded ) { | |
| 209 | + $folder_css .= ' expanded'; | |
| 210 | + } | |
| 211 | + if ( ! empty( $menu_item_arr['_wpbc_v3_branch_css_classes'] ) ) { | |
| 212 | + $folder_css .= ' ' . $menu_item_arr['_wpbc_v3_branch_css_classes']; | |
| 213 | + } | |
| 181 | 214 | |
| 182 | - echo '<div class="wpbc_ui_el__level__folder ' . esc_attr( $folder_css ) . '" style="' . esc_attr( $folder_style ) . '">'; | |
| 215 | + echo '<div class="wpbc_ui_el__level__folder ' . esc_attr( $folder_css ) . '" style="' . esc_attr( $folder_style ) . '">'; | |
| 183 | 216 | |
| 184 | 217 | |
| 185 | - if ( empty( $menu_item_arr['type'] ) ) { | |
| 186 | - $menu_item_arr['type'] = 'main'; | |
| 187 | - } | |
| 218 | + if ( empty( $menu_item_arr['type'] ) ) { | |
| 219 | + $menu_item_arr['type'] = 'main'; | |
| 220 | + } | |
| 188 | 221 | |
| 189 | - switch ( $menu_item_arr['type'] ) { | |
| 222 | + switch ( $menu_item_arr['type'] ) { | |
| 190 | 223 | |
| 191 | - case 'separator': | |
| 192 | - wpbc_ui_el__divider_horizontal(); | |
| 193 | - break; | |
| 224 | + case 'separator': | |
| 225 | + wpbc_ui_el__divider_horizontal(); | |
| 226 | + break; | |
| 194 | 227 | |
| 195 | - case 'html': | |
| 196 | - wpbc_ui__vert_menu__item_html( $main_menu_slug, $menu_item_arr ); | |
| 197 | - break; | |
| 228 | + case 'html': | |
| 229 | + wpbc_ui__vert_menu__item_html( $main_menu_slug, $menu_item_arr ); | |
| 230 | + break; | |
| 198 | 231 | |
| 199 | - default: | |
| 200 | - wpbc_ui__vert_menu__item_main( $main_menu_slug, $menu_item_arr ); | |
| 201 | - } | |
| 232 | + default: | |
| 233 | + wpbc_ui__vert_menu__item_main( $main_menu_slug, $menu_item_arr ); | |
| 234 | + } | |
| 202 | 235 | |
| 203 | 236 | |
| 204 | - foreach ( $menu_item_arr['subtabs'] as $main_submenu_slug => $submenu_item_arr ) { | |
| 237 | + foreach ( $menu_item_arr['subtabs'] as $main_submenu_slug => $submenu_item_arr ) { | |
| 205 | 238 | |
| 206 | - if ( empty( $submenu_item_arr['type'] ) ) { | |
| 207 | - $submenu_item_arr['type'] = 'subtab'; | |
| 208 | - } | |
| 239 | + if ( empty( $submenu_item_arr['type'] ) ) { | |
| 240 | + $submenu_item_arr['type'] = 'subtab'; | |
| 241 | + } | |
| 209 | 242 | |
| 210 | - switch ( $submenu_item_arr['type'] ) { | |
| 243 | + switch ( $submenu_item_arr['type'] ) { | |
| 211 | 244 | |
| 212 | - case 'subtab': | |
| 213 | - wpbc_ui__vert_menu__item_sub( $main_submenu_slug, $submenu_item_arr ); | |
| 214 | - break; | |
| 245 | + case 'subtab': | |
| 246 | + wpbc_ui__vert_menu__item_sub( $main_submenu_slug, $submenu_item_arr ); | |
| 247 | + break; | |
| 215 | 248 | |
| 216 | - case 'separator': | |
| 217 | - wpbc_ui__vert_menu__item_separtor( $main_submenu_slug, $submenu_item_arr ); | |
| 218 | - break; | |
| 249 | + case 'separator': | |
| 250 | + wpbc_ui__vert_menu__item_separtor( $main_submenu_slug, $submenu_item_arr ); | |
| 251 | + break; | |
| 219 | 252 | |
| 220 | - case 'html': | |
| 221 | - wpbc_ui__vert_menu__item_html( $main_submenu_slug, $submenu_item_arr ); | |
| 222 | - break; | |
| 253 | + case 'html': | |
| 254 | + wpbc_ui__vert_menu__item_html( $main_submenu_slug, $submenu_item_arr ); | |
| 255 | + break; | |
| 223 | 256 | |
| 224 | - default: | |
| 257 | + default: | |
| 258 | + } | |
| 225 | 259 | } |
| 260 | + echo '</div><!-- wpbc_ui_el__level__folder -->'; | |
| 226 | 261 | } |
| 227 | - echo '</div><!-- wpbc_ui_el__level__folder -->'; | |
| 228 | 262 | } |
| 229 | 263 | |
| 230 | 264 | if ( $is_show_all_menus ) { |
| 231 | 265 | echo ' </div><!-- wpbc_ui_el__vert_left_bar__root_section_element -->'; |
| @@ -238,11 +272,9 @@ | ||
| 238 | 272 | echo ' </div><!-- wpbc_ui_el__vert_left_bar__root_sections_container -->'; |
| 239 | 273 | } |
| 240 | 274 | |
| 241 | 275 | |
| 242 | - $is_show_up = wpbc_is_show_up(); | |
| 243 | - // Show upgrade icon only for the Free version here. | |
| 244 | - $is_show_up = ( $is_show_up && ( ! class_exists( 'wpdev_bk_personal' ) ) ); | |
| 276 | + $is_show_up = wpbc_is_show_free_upgrade(); | |
| 245 | 277 | if ( $is_show_up ) { |
| 246 | 278 | ?><div class="wpbc_ui_el__vert_left_bar__footer_compensator"></div><?php |
| 247 | 279 | } |
| 248 | 280 | |
| @@ -249,9 +281,9 @@ | ||
| 249 | 281 | echo ' </div><!-- wpbc_ui_el__vert_left_bar__content -->'; |
| 250 | 282 | if ( $is_show_up ) { |
| 251 | 283 | $url = wpbc_up_link(); |
| 252 | 284 | ?> |
| 253 | - <div class="wpbc_ui_el__vert_left_bar__footer_section"> | |
| 285 | + <div class="wpbc_ui_el__vert_left_bar__footer_section" style="visibility: hidden;"> | |
| 254 | 286 | <a class="wpbc_ui_el_upgrade_button wpbc_button_light wpbc_button_green" href="<?php echo esc_url( $url ); ?>"> |
| 255 | 287 | <span class="hide_in_compact_mode"><?php esc_html_e( 'Upgrade to Pro', 'booking' ); ?></span> |
| 256 | 288 | <span class="hide_in_max_mode"><?php esc_html_e( 'Pro', 'booking' ); ?></span> |
| 257 | 289 | </a> |
| @@ -263,8 +295,80 @@ | ||
| 263 | 295 | wpbc_start_element_scrollable__with_simplebar( '.wpbc_ui_el__vert_left_bar__content' ); |
| 264 | 296 | } |
| 265 | 297 | |
| 266 | 298 | /** |
| 299 | + * Render an arbitrarily nested V3 sidebar through the existing row functions. | |
| 300 | + * | |
| 301 | + * Top-level and disclosure nodes retain the existing main-row markup. Nested | |
| 302 | + * leaves retain the existing subrow markup, so the recursive traversal adds no | |
| 303 | + * new visual system or navigation-only asset. | |
| 304 | + * | |
| 305 | + * @param array $navigation_nodes Prepared V3 navigation nodes. | |
| 306 | + * @param int $depth Zero-based sidebar depth. | |
| 307 | + * | |
| 308 | + * @return void | |
| 309 | + */ | |
| 310 | +function wpbc_ui__vert_menu__render_v3_nodes( $navigation_nodes, $depth = 0 ) { | |
| 311 | + foreach ( $navigation_nodes as $menu_slug => $menu_item_arr ) { | |
| 312 | + if ( ! is_array( $menu_item_arr ) ) { | |
| 313 | + continue; | |
| 314 | + } | |
| 315 | + | |
| 316 | + $subtabs = isset( $menu_item_arr['subtabs'] ) && is_array( $menu_item_arr['subtabs'] ) ? $menu_item_arr['subtabs'] : array(); | |
| 317 | + $has_children = ! empty( $subtabs ); | |
| 318 | + $item_type = empty( $menu_item_arr['type'] ) ? ( 0 === $depth || $has_children ? 'main' : 'subtab' ) : $menu_item_arr['type']; | |
| 319 | + | |
| 320 | + if ( 0 < $depth && ! $has_children ) { | |
| 321 | + switch ( $item_type ) { | |
| 322 | + case 'separator': | |
| 323 | + wpbc_ui__vert_menu__item_separtor( $menu_slug, $menu_item_arr ); | |
| 324 | + break; | |
| 325 | + | |
| 326 | + case 'html': | |
| 327 | + wpbc_ui__vert_menu__item_html( $menu_slug, $menu_item_arr ); | |
| 328 | + break; | |
| 329 | + | |
| 330 | + default: | |
| 331 | + wpbc_ui__vert_menu__item_sub( $menu_slug, $menu_item_arr ); | |
| 332 | + } | |
| 333 | + continue; | |
| 334 | + } | |
| 335 | + | |
| 336 | + $folder_style = ! empty( $menu_item_arr['folder_style'] ) ? $menu_item_arr['folder_style'] : ''; | |
| 337 | + $folder_css = ''; | |
| 338 | + $is_expanded = $has_children && ! empty( $menu_item_arr['is_active'] ); | |
| 339 | + if ( isset( $menu_item_arr['_wpbc_v3_expanded'] ) ) { | |
| 340 | + $is_expanded = 'On' === $menu_item_arr['_wpbc_v3_expanded'] | |
| 341 | + || ( 'when_active' === $menu_item_arr['_wpbc_v3_expanded'] && $is_expanded ); | |
| 342 | + } | |
| 343 | + if ( $is_expanded ) { | |
| 344 | + $folder_css .= ' expanded'; | |
| 345 | + } | |
| 346 | + if ( ! empty( $menu_item_arr['_wpbc_v3_branch_css_classes'] ) ) { | |
| 347 | + $folder_css .= ' ' . $menu_item_arr['_wpbc_v3_branch_css_classes']; | |
| 348 | + } | |
| 349 | + | |
| 350 | + echo '<div class="wpbc_ui_el__level__folder ' . esc_attr( $folder_css ) . '" style="' . esc_attr( $folder_style ) . '">'; | |
| 351 | + switch ( $item_type ) { | |
| 352 | + case 'separator': | |
| 353 | + wpbc_ui_el__divider_horizontal(); | |
| 354 | + break; | |
| 355 | + | |
| 356 | + case 'html': | |
| 357 | + wpbc_ui__vert_menu__item_html( $menu_slug, $menu_item_arr ); | |
| 358 | + break; | |
| 359 | + | |
| 360 | + default: | |
| 361 | + wpbc_ui__vert_menu__item_main( $menu_slug, $menu_item_arr ); | |
| 362 | + } | |
| 363 | + if ( $has_children ) { | |
| 364 | + wpbc_ui__vert_menu__render_v3_nodes( $subtabs, $depth + 1 ); | |
| 365 | + } | |
| 366 | + echo '</div><!-- wpbc_ui_el__level__folder -->'; | |
| 367 | + } | |
| 368 | +} | |
| 369 | + | |
| 370 | +/** | |
| 267 | 371 | * Set Scrolable Element with Simplebar js library. |
| 268 | 372 | * |
| 269 | 373 | * @param string $jq_element - e.g. '.wpbc_ui_el__vert_left_bar__content' |
| 270 | 374 | * @param string $options - e.g. 'autoHide: false, scrollbarMinSize: 10' - options for the Simplebar. See more: https://www.npmjs.com/package/simplebar#1-documentation |
| @@ -280,9 +384,15 @@ | ||
| 280 | 384 | <script type="text/javascript"> |
| 281 | 385 | (function() { var a = setInterval( function() { if ( ( 'undefined' === typeof jQuery ) || ! window.jQuery ) { return; } clearInterval( a ); jQuery( document ).ready( function () { |
| 282 | 386 | jQuery( '.wpbc_ui_el__vert_left_bar__section' ).css( { "animation-duration": "1ms" } ); // Set animation of showing left siebar from left to right imediate to prevent flipping. |
| 283 | 387 | if ( 'undefined' !== typeof SimpleBar ) { |
| 284 | - new SimpleBar( jQuery( '<?php echo esc_attr( $jq_element ); ?>' )[0], { <?php echo esc_attr( $options ); ?> } ); | |
| 388 | + var simplebar_element = jQuery( '<?php echo esc_attr( $jq_element ); ?>' )[0]; | |
| 389 | + if ( simplebar_element ) { | |
| 390 | + var simplebar_instance = new SimpleBar( simplebar_element, { <?php echo esc_attr( $options ); ?> } ); | |
| 391 | + if ( 'function' === typeof wpbc_admin_ui__sidebar_left__scroll_to_active_item ) { | |
| 392 | + wpbc_admin_ui__sidebar_left__scroll_to_active_item( simplebar_instance ); | |
| 393 | + } | |
| 394 | + } | |
| 285 | 395 | } |
| 286 | 396 | var wait_timer = setTimeout( function (){ |
| 287 | 397 | jQuery( '.wpbc_ui_el__vert_left_bar__section' ).css( { "animation-duration": "200ms" } ); // Set animation to normal value. |
| 288 | 398 | }, 300 ); |
| @@ -300,13 +410,15 @@ | ||
| 300 | 410 | */ |
| 301 | 411 | function wpbc_ui__vert_left_bar__do_toggle() { |
| 302 | 412 | |
| 303 | 413 | $el_arr = array(); |
| 304 | - $el_arr['font_icon'] = 'wpbc_icn_menu'; | |
| 414 | + $el_arr['font_icon'] = 'wpbc-bi-layout-sidebar-inset'; // 'wpbc_icn_menu'; | |
| 305 | 415 | $el_arr['container_style'] = 'padding:0 8px;'; |
| 306 | 416 | $el_arr['container_class'] = 'wpbc_ui__top_nav__btn_show_left_vertical_nav'; |
| 307 | - $el_arr['onclick'] = "if ( jQuery( '.wpbc_ui_el__vert_left_bar__content' ).is( ':visible' ) ) {"; | |
| 308 | - $el_arr['onclick'] .= ' wpbc_admin_ui__sidebar_left__do_min( true ); '; | |
| 417 | + $el_arr['onclick'] = "if ( jQuery( '.wpbc_page_wrapper_left_max' ).length ) {"; | |
| 418 | + // $el_arr['onclick'] = "if ( jQuery( '.wpbc_ui_el__vert_left_bar__content' ).is( ':visible' ) ) {"; | |
| 419 | + // $el_arr['onclick'] .= ' wpbc_admin_ui__sidebar_left__do_min( true ); '; | |
| 420 | + $el_arr['onclick'] .= ' wpbc_admin_ui__sidebar_left__do_compact( true ); '; | |
| 309 | 421 | $el_arr['onclick'] .= '} else {'; |
| 310 | 422 | $el_arr['onclick'] .= ' wpbc_admin_ui__sidebar_left__do_max( true ); '; |
| 311 | 423 | $el_arr['onclick'] .= '}'; |
| 312 | 424 | $el_arr['hint'] = array( |
| @@ -381,14 +493,17 @@ | ||
| 381 | 493 | function wpbc_ui__vert_left_bar__do_min() { |
| 382 | 494 | |
| 383 | 495 | $el_arr = array(); |
| 384 | 496 | $el_arr['container_style'] = ''; |
| 385 | - $el_arr['container_class'] = 'wpbc_ui__top_nav__btn_hide_left_vertical_nav'; | |
| 386 | - $el_arr['onclick'] = ' wpbc_admin_ui__sidebar_left__do_min( true ); '; | |
| 387 | - $el_arr['font_icon'] = 'wpbc_icn_minimize'; | |
| 497 | + $el_arr['container_class'] = '';// 'wpbc_ui__top_nav__btn_hide_left_vertical_nav'; | |
| 498 | + // User Save Preferences of other pages (saved collapsed left menu). | |
| 499 | + // $el_arr['onclick'] = 'event.stopPropagation(); wpbc_admin_ui__sidebar_left__do_min( true ); '; | |
| 500 | + // Do NOT - Save User Preferences of other pages (not save collapsed left menu). | |
| 501 | + $el_arr['onclick'] = 'event.stopPropagation(); wpbc_admin_ui__sidebar_left__do_min(); '; | |
| 502 | + $el_arr['font_icon'] = 'wpbc_icn_close'; //'wpbc_icn_minimize'; | |
| 388 | 503 | $el_arr['hint'] = array( |
| 389 | - 'title' => __( 'Minimize side menu', 'booking' ), | |
| 390 | - 'position' => 'bottom', | |
| 504 | + 'title' => __( 'Hide', 'booking' ), | |
| 505 | + 'position' => 'right', | |
| 391 | 506 | ); |
| 392 | 507 | wpbc_ui_el__a( $el_arr ); |
| 393 | 508 | } |
| 394 | 509 | |
| @@ -475,22 +590,32 @@ | ||
| 475 | 590 | * |
| 476 | 591 | * @param string $main_page_slug Slug of the submenu section. |
| 477 | 592 | * @param string $page_title Section title. |
| 478 | 593 | * @param string $font_icon Optional sanitized font-icon CSS classes supplied by the selected mode. |
| 594 | + * @param bool $is_v3_scoped Whether to use V3's nearest-branch disclosure behavior. | |
| 595 | + * @param bool $is_expanded Whether the V3 branch is initially expanded. | |
| 479 | 596 | * |
| 480 | 597 | * @return void |
| 481 | 598 | */ |
| 482 | -function wpbc_ui__vert_menu__show_root_section_header( $main_page_slug, $page_title, $font_icon = '' ) { | |
| 599 | +function wpbc_ui__vert_menu__show_root_section_header( $main_page_slug, $page_title, $font_icon = '', $is_v3_scoped = false, $is_expanded = false ) { | |
| 483 | 600 | |
| 484 | 601 | $css_section = '.root_section_element_' . $main_page_slug; |
| 485 | 602 | |
| 486 | 603 | // Section Header. |
| 487 | - ?><a class="wpbc_ui_el__row100 wpbc_ui_el__root_section_header_a" href="javascript:void(0)" | |
| 488 | - onclick="javascript:var is_has_class = jQuery( '<?php echo esc_attr( $css_section ); ?>' ).hasClass('section_expanded'); jQuery( '.wpbc_ui_el__vert_left_bar__root_section_element' ).removeClass('section_expanded'); if (is_has_class) { jQuery( '<?php echo esc_attr( $css_section ); ?>' ).removeClass('section_expanded'); } else {jQuery( '<?php echo esc_attr( $css_section ); ?>' ).addClass('section_expanded');}" | |
| 489 | - ><?php | |
| 604 | + ?><a class="wpbc_ui_el__row100 wpbc_ui_el__root_section_header_a" | |
| 605 | + href="javascript:void(0)" | |
| 606 | + <?php if ( $is_v3_scoped ) { ?> | |
| 607 | + aria-expanded="<?php echo $is_expanded ? 'true' : 'false'; ?>" | |
| 608 | + onkeydown="if ( ' ' === event.key ) { event.preventDefault(); this.click(); }" | |
| 609 | + onclick="javascript:var wpbc_root=jQuery(this).closest('.wpbc_ui_el__vert_left_bar__root_section_element');var wpbc_open=wpbc_root.hasClass('section_expanded');wpbc_root.toggleClass('section_expanded',!wpbc_open);jQuery(this).attr('aria-expanded',wpbc_open?'false':'true');" | |
| 610 | + <?php } else { ?> | |
| 611 | + onclick="javascript:var is_has_class = jQuery( '<?php echo esc_attr( $css_section ); ?>' ).hasClass('section_expanded'); <?php | |
| 612 | + /* ?> jQuery( '.wpbc_ui_el__vert_left_bar__root_section_element' ).removeClass('section_expanded'); <?php */ | |
| 613 | + ?>if (is_has_class) { jQuery( '<?php echo esc_attr( $css_section ); ?>' ).removeClass('section_expanded'); } else {jQuery( '<?php echo esc_attr( $css_section ); ?>' ).addClass('section_expanded');}" | |
| 614 | + <?php } ?> | |
| 615 | + > | |
| 616 | + <i class="wpbc_ui_el__vert_menu_root_section_icon menu_icon icon-1x wpbc-bi-chevron-right"></i><?php | |
| 490 | 617 | |
| 491 | - ?><i class="wpbc_ui_el__vert_menu_root_section_icon menu_icon icon-1x wpbc-bi-chevron-right"></i><?php | |
| 492 | - | |
| 493 | 618 | if ( '' !== $font_icon ) { |
| 494 | 619 | ?><i class="wpbc_ui_el__vert_menu_root_section_font_icon menu_icon icon-1x <?php echo esc_attr( $font_icon ); ?>" aria-hidden="true"></i><?php |
| 495 | 620 | } |
| 496 | 621 | |
| @@ -576,9 +701,15 @@ | ||
| 576 | 701 | if ( ! empty( $menu_item_arr['subtabs'] ) ) { |
| 577 | 702 | // Folder Item - expand / colapse. Previously: here was : wpbc_admin_ui__sidebar_left__do_max(); |
| 578 | 703 | ?> |
| 579 | 704 | <a href="javascript:void(0)" |
| 580 | - onclick="javascript: if( ! jQuery( this ).parents('.wpbc_ui_el__level__folder').hasClass('expanded') ) { jQuery( '.wpbc_ui_el__level__folder' ).removeClass('expanded');jQuery( this ).parents('.wpbc_ui_el__level__folder').addClass('expanded'); } else {jQuery( '.wpbc_ui_el__level__folder' ).removeClass('expanded');} " | |
| 705 | + <?php if ( isset( $menu_item_arr['_wpbc_v3_expanded'] ) ) { ?> | |
| 706 | + aria-expanded="<?php echo ( 'On' === $menu_item_arr['_wpbc_v3_expanded'] || ( 'when_active' === $menu_item_arr['_wpbc_v3_expanded'] && ! empty( $menu_item_arr['is_active'] ) ) ) ? 'true' : 'false'; ?>" | |
| 707 | + onkeydown="if ( ' ' === event.key ) { event.preventDefault(); this.click(); }" | |
| 708 | + onclick="javascript:var wpbc_folder=jQuery(this).closest('.wpbc_ui_el__level__folder');var wpbc_open=wpbc_folder.hasClass('expanded');wpbc_folder.toggleClass('expanded',!wpbc_open);jQuery(this).attr('aria-expanded',wpbc_open?'false':'true');" | |
| 709 | + <?php } else { ?> | |
| 710 | + onclick="javascript: if( ! jQuery( this ).parents('.wpbc_ui_el__level__folder').hasClass('expanded') ) { jQuery( '.wpbc_ui_el__level__folder' ).removeClass('expanded');jQuery( this ).parents('.wpbc_ui_el__level__folder').addClass('expanded'); } else {jQuery( '.wpbc_ui_el__level__folder' ).removeClass('expanded');} " | |
| 711 | + <?php } ?> | |
| 581 | 712 | class="wpbc_ui_el__vert_nav_item__a wpbc_ui_el__vert_nav_item__folder"> |
| 582 | 713 | <?php if ( ! empty( $menu_item_arr['font_icon'] ) ) { ?> |
| 583 | 714 | <?php // Show icon in max mode, without right tooltip, thanks to '.hide_in_compact_mode'. // FixIn: 10.11.5.8. ?> |
| 584 | 715 | <i class="wpbc_ui_el__vert_nav_icon hide_in_compact_mode menu_icon icon-1x <?php echo esc_attr( $menu_item_arr['font_icon'] ); ?>" |
| @@ -768,10 +899,15 @@ | ||
| 768 | 899 | */ |
| 769 | 900 | function wpbc_ui__vert_left_bar__side_button__do_compact() { |
| 770 | 901 | |
| 771 | 902 | ?> |
| 772 | - <button class="wpbc_ui__left_sidebar__side_button wpbc_ui__top_nav__btn_hide_left_vertical_nav" | |
| 773 | - onclick="javascript:wpbc_admin_ui__sidebar_left__do_min( true );" title="<?php esc_attr_e( 'Minimize side menu', 'booking' ); ?>"> | |
| 903 | + <button type="button" class="wpbc_ui__left_sidebar__side_button wpbc_ui__top_nav__btn_hide_left_vertical_nav" | |
| 904 | + <?php /* Save user preferences ?> | |
| 905 | + onclick="event.stopPropagation(); wpbc_admin_ui__sidebar_left__do_min( true ); return false;" | |
| 906 | + <?php /**/ ?> | |
| 907 | + <?php /* Not Save user preferences - collpased left menu */ ?> | |
| 908 | + onclick="event.stopPropagation(); wpbc_admin_ui__sidebar_left__do_min(); return false;" | |
| 909 | + title="<?php esc_attr_e( 'Minimize side menu', 'booking' ); ?>"> | |
| 774 | 910 | <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"> |
| 775 | 911 | <path fill="#6B6B6B" d="M16.5 22a1.003 1.003 0 0 1-.71-.29l-9-9a1 1 0 0 1 0-1.42l9-9a1.004 1.004 0 1 1 1.42 1.42L8.91 12l8.3 8.29A.999.999 0 0 1 16.5 22Z"></path> |
| 776 | 912 | </svg> |
| 777 | 913 | </button> |
| @@ -784,10 +920,10 @@ | ||
| 784 | 920 | * @return void |
| 785 | 921 | */ |
| 786 | 922 | function wpbc_ui__vert_left_bar__side_button__do_max() { |
| 787 | 923 | ?> |
| 788 | - <button class="wpbc_ui__left_sidebar__side_button wpbc_ui__hide wpbc_ui__top_nav__btn_open_left_vertical_nav" | |
| 789 | - onclick="javascript:wpbc_admin_ui__sidebar_left__do_max( true );" title="<?php esc_attr_e( 'Open side menu', 'booking' ); ?>"> | |
| 924 | + <button type="button" class="wpbc_ui__left_sidebar__side_button wpbc_ui__hide wpbc_ui__top_nav__btn_open_left_vertical_nav" | |
| 925 | + onclick="event.stopPropagation(); wpbc_admin_ui__sidebar_left__do_max( true ); return false;" title="<?php esc_attr_e( 'Open side menu', 'booking' ); ?>"> | |
| 790 | 926 | <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"> |
| 791 | 927 | <path fill="#6B6B6B" d="M16.5 22a1.003 1.003 0 0 1-.71-.29l-9-9a1 1 0 0 1 0-1.42l9-9a1.004 1.004 0 1 1 1.42 1.42L8.91 12l8.3 8.29A.999.999 0 0 1 16.5 22Z"></path> |
| 792 | 928 | </svg> |
| 793 | 929 | </button> |