| @@ -5605,8 +5605,24 @@ | ||
| 5605 | 5605 | */ |
| 5606 | 5606 | public static function get_text() { |
| 5607 | 5607 | return array( |
| 5608 | 5608 | 'error_occurred' => __( 'Error Occurred!', 'wpfnl' ), |
| 5609 | + | |
| 5610 | + // Funnel import progress. Read by admin/assets/js/wpfnl-admin.js, which predates | |
| 5611 | + // the Vue bundles and has no wp.i18n of its own. | |
| 5612 | + 'import_preparing' => __( 'Preparing import…', 'wpfnl' ), | |
| 5613 | + 'import_in_progress' => __( 'Importing funnels…', 'wpfnl' ), | |
| 5614 | + 'import_completed' => __( 'Import complete.', 'wpfnl' ), | |
| 5615 | + 'import_failed' => __( 'The import could not be completed.', 'wpfnl' ), | |
| 5616 | + 'import_failed_item' => __( 'failed', 'wpfnl' ), | |
| 5617 | + 'import_partial' => __( 'some steps failed', 'wpfnl' ), | |
| 5618 | + 'import_funnels_word' => __( 'funnels', 'wpfnl' ), | |
| 5619 | + 'import_steps_word' => __( 'steps', 'wpfnl' ), | |
| 5620 | + 'import_stalled' => __( 'The import seems to have stopped responding. Cancel it to try again.', 'wpfnl' ), | |
| 5621 | + 'import_taking_long' => __( 'This import is taking longer than expected. Refresh the page to check on it.', 'wpfnl' ), | |
| 5622 | + 'import_status_unavailable' => __( 'Lost contact with the import. Refresh the page to check on it.', 'wpfnl' ), | |
| 5623 | + 'import_cancelled' => __( 'The import has been cancelled.', 'wpfnl' ), | |
| 5624 | + 'import_cancel_failed' => __( 'Could not cancel the import.', 'wpfnl' ), | |
| 5609 | 5625 | 'stats' => __( 'Stats', 'wpfnl' ), |
| 5610 | 5626 | 'stats_tooltip_txt' => __( 'Toggle to get a quick view of visits & conversion of steps right on the canvas.', 'wpfnl' ), |
| 5611 | 5627 | 'find_your_templates' => __( 'Find your templates', 'wpfnl' ), |
| 5612 | 5628 | 'enable_global_funnel' => __( 'Enable Global Funnel', 'wpfnl' ), |
| @@ -5891,8 +5907,11 @@ | ||
| 5891 | 5907 | 'do_you_want_to_save_automation' => __( 'Do you want to save the automation?', 'wpfnl' ), |
| 5892 | 5908 | 'no_back' => __( 'No & Back', 'wpfnl' ), |
| 5893 | 5909 | 'yes_back' => __( 'Yes & Back', 'wpfnl' ), |
| 5894 | 5910 | 'saving' => __( 'Saving...', 'wpfnl' ), |
| 5911 | + 'unsaved_changes' => __( 'Unsaved changes', 'wpfnl' ), | |
| 5912 | + 'automation_save_failed' => __( 'Could not save your changes', 'wpfnl' ), | |
| 5913 | + 'remove_automation_step_confirm' => __( 'Remove this step from the automation?', 'wpfnl' ), | |
| 5895 | 5914 | |
| 5896 | 5915 | 'choose_list' => __( 'Choose List', 'wpfnl' ), |
| 5897 | 5916 | 'select_lists' => __( 'Select Lists', 'wpfnl' ), |
| 5898 | 5917 | 'search_list' => __( 'Search List', 'wpfnl' ), |
| @@ -7372,18 +7391,41 @@ | ||
| 7372 | 7391 | * @return void |
| 7373 | 7392 | * @since 3.13.0 |
| 7374 | 7393 | */ |
| 7375 | 7394 | public static function enqueue_bundle_style( $entry, $handle, $deps = array() ) { |
| 7395 | + $url = self::get_bundle_style_url( $entry ); | |
| 7396 | + | |
| 7397 | + if ( ! $url ) { | |
| 7398 | + return; | |
| 7399 | + } | |
| 7400 | + | |
| 7401 | + wp_enqueue_style( $handle, $url, $deps, WPFNL_VERSION ); | |
| 7402 | + } | |
| 7403 | + | |
| 7404 | + | |
| 7405 | + /** | |
| 7406 | + * URL of a webpack entry's extracted stylesheet, if there is one. | |
| 7407 | + * | |
| 7408 | + * A development build injects its styles from JavaScript and emits no | |
| 7409 | + * stylesheet at all, so an empty string here means "nothing to load", not | |
| 7410 | + * "something went wrong". | |
| 7411 | + * | |
| 7412 | + * @param string $entry Webpack entry name. | |
| 7413 | + * | |
| 7414 | + * @return string Stylesheet URL, or '' when the build emitted none. | |
| 7415 | + * @since 3.13.8 | |
| 7416 | + */ | |
| 7417 | + public static function get_bundle_style_url( $entry ) { | |
| 7376 | 7418 | $styles_dir = WPFNL_DIR . '/admin/assets/dist/styles/'; |
| 7377 | 7419 | |
| 7378 | 7420 | if ( ! is_dir( $styles_dir ) ) { |
| 7379 | - return; | |
| 7421 | + return ''; | |
| 7380 | 7422 | } |
| 7381 | 7423 | |
| 7382 | 7424 | $files = glob( $styles_dir . $entry . '.*.css' ); |
| 7383 | 7425 | |
| 7384 | 7426 | if ( empty( $files ) ) { |
| 7385 | - return; | |
| 7427 | + return ''; | |
| 7386 | 7428 | } |
| 7387 | 7429 | |
| 7388 | 7430 | // Newest wins, so a stale hash left behind by an interrupted build never |
| 7389 | 7431 | // shadows the current one. |
| @@ -7393,14 +7435,9 @@ | ||
| 7393 | 7435 | return filemtime( $b ) - filemtime( $a ); |
| 7394 | 7436 | } |
| 7395 | 7437 | ); |
| 7396 | 7438 | |
| 7397 | - wp_enqueue_style( | |
| 7398 | - $handle, | |
| 7399 | - WPFNL_URL . 'admin/assets/dist/styles/' . basename( $files[0] ), | |
| 7400 | - $deps, | |
| 7401 | - WPFNL_VERSION | |
| 7402 | - ); | |
| 7439 | + return WPFNL_URL . 'admin/assets/dist/styles/' . basename( $files[0] ); | |
| 7403 | 7440 | } |
| 7404 | 7441 | |
| 7405 | 7442 | /** |
| 7406 | 7443 | * Helper method to return the item description, which is composed of item |