Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
"ignorePatterns": [
"node_modules/",
"**/*.bundle.js",
"vendor/"
"vendor/",
"usage-tracking.js"
],
"parserOptions": {
"requireConfigFile": false
Expand Down
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions siteimprove-accessibility/assets/usage-tracking.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/* global jQuery, siteimproveUsageTrackingInitParams */
(function (apiKey,$) {
(function (p,e,n,d,o){p[o]=p[o] || function (){(p[o].q=p[o].q || []).push(arguments);};const t=e.createElement(n),s=e.getElementsByTagName(n)[0];t.async=1;t.src=d;s.parentNode.insertBefore(t,s);})(window,document,'script','https://cdn.pendo.io/agent/static/'+apiKey+'/pendo.js','pendo');
/* global pendo */
window.addEventListener('load', function () {
if (typeof pendo === 'undefined') return;
const defaultParams = {apiKey, visitor: {id: 'WORDPRESS-ANONYMOUS-ID'}, account: {id: '017065616813'}, disableGuides: true};
pendo.initialize($.extend(true, defaultParams, siteimproveUsageTrackingInitParams));
});
})('730de0a8-013b-42b8-58b9-5c52d8158b20', jQuery);
11 changes: 6 additions & 5 deletions siteimprove-accessibility/siteimprove-accessibility.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,12 @@
*/
class Siteimprove_Accessibility {

const OPTION_IS_PAGE_CHECK_USED = 'siteimprove_accessibility_is_page_check_used';
const OPTION_IS_WIDGET_ENABLED = 'siteimprove_accessibility_is_widget_enabled';
const OPTION_WIDGET_POSITION = 'siteimprove_accessibility_widget_position';
const OPTION_ALLOWED_USER_ROLE = 'siteimprove_accessibility_allowed_user_role';
const OPTION_PREVIEW_AUTO_CHECK = 'siteimprove_accessibility_preview_auto_scan';
const OPTION_IS_PAGE_CHECK_USED = 'siteimprove_accessibility_is_page_check_used';
const OPTION_IS_WIDGET_ENABLED = 'siteimprove_accessibility_is_widget_enabled';
const OPTION_WIDGET_POSITION = 'siteimprove_accessibility_widget_position';
const OPTION_ALLOWED_USER_ROLE = 'siteimprove_accessibility_allowed_user_role';
const OPTION_PREVIEW_AUTO_CHECK = 'siteimprove_accessibility_preview_auto_scan';
const OPTION_PREVIEW_IS_USAGE_TRACKING_ENABLED = 'siteimprove_accessibility_is_usage_tracking_enabled';

private Service_Container $container;

Expand Down
4 changes: 4 additions & 0 deletions siteimprove-accessibility/src/Admin/Issues_Page.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@

namespace Siteimprove\Accessibility\Admin;

use Siteimprove\Accessibility\Core\Usage_Tracking_Trait;
use Siteimprove\Accessibility\Core\View_Trait;
use Siteimprove\Accessibility\Core\Hook_Interface;
use Siteimprove\Accessibility\Siteimprove_Accessibility;

class Issues_Page implements Hook_Interface {

use View_Trait;
use Usage_Tracking_Trait;

const MENU_SLUG = 'siteimprove_accessibility_issues';

Expand Down Expand Up @@ -39,6 +41,8 @@ public function enqueue_scripts(): void {
SITEIMPROVE_ACCESSIBILITY_VERSION,
true
);

$this->enqueue_usage_tracking_scripts();
}
}

Expand Down
6 changes: 5 additions & 1 deletion siteimprove-accessibility/src/Admin/Reports_Page.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@

namespace Siteimprove\Accessibility\Admin;

use Siteimprove\Accessibility\Core\View_Trait;
use Siteimprove\Accessibility\Core\Usage_Tracking_Trait;
use Siteimprove\Accessibility\Core\Hook_Interface;
use Siteimprove\Accessibility\Core\View_Trait;

class Reports_Page implements Hook_Interface {

use View_Trait;
use Usage_Tracking_Trait;

const MENU_SLUG = 'siteimprove_accessibility_reports';

Expand All @@ -32,6 +34,8 @@ public function enqueue_scripts(): void {
SITEIMPROVE_ACCESSIBILITY_VERSION,
true
);

$this->enqueue_usage_tracking_scripts();
}
}

Expand Down
35 changes: 35 additions & 0 deletions siteimprove-accessibility/src/Admin/Settings.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ public function init_options(): void {
if ( ! get_option( Siteimprove_Accessibility::OPTION_PREVIEW_AUTO_CHECK, null ) ) {
add_option( Siteimprove_Accessibility::OPTION_PREVIEW_AUTO_CHECK, 1 );
}
if ( ! get_option( Siteimprove_Accessibility::OPTION_PREVIEW_IS_USAGE_TRACKING_ENABLED, null ) ) {
add_option( Siteimprove_Accessibility::OPTION_PREVIEW_IS_USAGE_TRACKING_ENABLED, 1 );
}
}

/**
Expand Down Expand Up @@ -108,6 +111,14 @@ public function register_settings(): void {
'siteimprove_accessibility_manage_features_section'
);

add_settings_field(
Siteimprove_Accessibility::OPTION_PREVIEW_IS_USAGE_TRACKING_ENABLED,
__( 'Usage tracking', 'siteimprove-accessibility' ),
array( $this, 'render_field_is_usage_tracking_enabled' ),
'siteimprove_accessibility_settings',
'siteimprove_accessibility_manage_features_section'
);

add_settings_field(
'siteimprove_accessibility_customer_support',
'Customer Support',
Expand Down Expand Up @@ -149,6 +160,14 @@ public function register_settings(): void {
'sanitize_callback' => array( $this, 'sanitize_preview_auto_check' ),
)
);

register_setting(
'siteimprove_accessibility_settings',
Siteimprove_Accessibility::OPTION_PREVIEW_IS_USAGE_TRACKING_ENABLED,
array(
'sanitize_callback' => array( $this, 'sanitize_is_usage_tracking_enabled' ),
)
);
}

/**
Expand Down Expand Up @@ -191,6 +210,13 @@ public function render_field_preview_auto_check(): void {
$this->render( 'views/partials/field_preview_auto_check.php' );
}

/**
* @return void
*/
public function render_field_is_usage_tracking_enabled(): void {
$this->render( 'views/partials/field_is_usage_tracking_enabled.php' );
}

/**
* @return void
*/
Expand Down Expand Up @@ -240,6 +266,15 @@ public function sanitize_preview_auto_check( $value ): int {
return (int) rest_sanitize_boolean( $value );
}

/**
* @param $value
*
* @return int
*/
public function sanitize_is_usage_tracking_enabled( $value ): int {
return (int) rest_sanitize_boolean( $value );
}

/**
* @return array
*/
Expand Down
34 changes: 34 additions & 0 deletions siteimprove-accessibility/src/Core/Usage_Tracking_Trait.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?php declare( strict_types=1 );

namespace Siteimprove\Accessibility\Core;

use Siteimprove\Accessibility\Siteimprove_Accessibility;

trait Usage_Tracking_Trait {

/**
* @param array $init_params
*
* @return void
*/
public function enqueue_usage_tracking_scripts( array $init_params = array() ): void {
if ( get_option( Siteimprove_Accessibility::OPTION_PREVIEW_IS_USAGE_TRACKING_ENABLED, 1 ) ) {
wp_enqueue_script(
'siteimprove-accessibility-usage-tracking',
SITEIMPROVE_ACCESSIBILITY_PLUGIN_ROOT_URL . 'assets/usage-tracking.js',
array( 'jquery' ),
SITEIMPROVE_ACCESSIBILITY_VERSION,
false
);

wp_add_inline_script(
'siteimprove-accessibility-usage-tracking',
sprintf(
'const siteimproveUsageTrackingInitParams = %s;',
wp_json_encode( $init_params )
),
'before'
);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

use Siteimprove\Accessibility\Siteimprove_Accessibility;

if ( ! defined( 'ABSPATH' ) ) {
exit;
}

?>

<fieldset>
<label>
<input type="checkbox" name="<?php echo esc_attr( Siteimprove_Accessibility::OPTION_PREVIEW_IS_USAGE_TRACKING_ENABLED ); ?>" <?php echo checked( get_option( Siteimprove_Accessibility::OPTION_PREVIEW_IS_USAGE_TRACKING_ENABLED ) ); ?>>
<?php esc_html_e( 'Allow anonymous usage tracking.', 'siteimprove_accessibility' ); ?>
</label>
</fieldset>
4 changes: 2 additions & 2 deletions siteimprove-accessibility/views/scan_panel.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

use Siteimprove\Accessibility\Admin\Issues_Page;
use Siteimprove\Accessibility\Admin\Issues_Trait;
use Siteimprove\Accessibility\Siteimprove_Accessibility;

if ( ! defined( 'ABSPATH' ) ) {
Expand All @@ -15,7 +15,7 @@
"></button>
<div id="siteimprove-scan-panel" class="siteimprove-component <?php echo esc_attr( get_option( Siteimprove_Accessibility::OPTION_WIDGET_POSITION ) ); ?>" style="display: none">
<div class="scan-panel-header">
<a href="<?php echo esc_url( admin_url( sprintf( 'admin.php?page=%s', Issues_Page::MENU_SLUG ) ) ); ?>">
<a href="<?php echo esc_url( admin_url( sprintf( 'admin.php?page=%s', Issues_Trait::MENU_SLUG ) ) ); ?>">
<?php esc_html_e( 'Siteimprove Accessibility', 'siteimprove-accessibility' ); ?>
</a>
<button id="siteimprove-scan-hide" aria-label="hide"></button>
Expand Down