diff --git a/assets/js/web-components/prpl-popover-post-content.js b/assets/js/web-components/prpl-popover-post-content.js new file mode 100644 index 000000000..83bdb8d86 --- /dev/null +++ b/assets/js/web-components/prpl-popover-post-content.js @@ -0,0 +1,50 @@ +/* global customElements, HTMLElement */ + +/** + * Register the custom web component. + */ +customElements.define( + 'prpl-popover-post-content', + class extends HTMLElement { + constructor( postId = '', buttonContent = '' ) { + // Get parent class properties + super(); + + this.postId = postId; + this.buttonContent = buttonContent; + + if ( ! this.postId && this.hasAttribute( 'post-id' ) ) { + this.postId = this.getAttribute( 'post-id' ); + } + + if ( ! this.postId ) { + return; + } + + if ( ! this.buttonContent ) { + this.buttonContent = this.getAttribute( 'button-content' ); + } + + // Get the JSON response from https://progressplanner.com/wp-json/wp/v2/posts/{postId} + fetch( + `https://progressplanner.com/wp-json/wp/v2/posts/${ this.postId }` + ) + .then( ( response ) => response.json() ) + .then( ( data ) => { + if ( ! data.content.rendered || ! data.title.rendered ) { + return; + } + + this.innerHTML = ` + +
+

${ data.title.rendered }

+ ${ data.content.rendered } +
+ `; + } ); + } + } +); diff --git a/classes/admin/class-page.php b/classes/admin/class-page.php index 17ae9aee4..f1f070e8f 100644 --- a/classes/admin/class-page.php +++ b/classes/admin/class-page.php @@ -194,6 +194,7 @@ public function enqueue_scripts() { \progress_planner()->get_admin__enqueue()->enqueue_script( 'web-components/prpl-chart-line' ); \progress_planner()->get_admin__enqueue()->enqueue_script( 'web-components/prpl-big-counter' ); \progress_planner()->get_admin__enqueue()->enqueue_script( 'web-components/prpl-tooltip' ); + \progress_planner()->get_admin__enqueue()->enqueue_script( 'web-components/prpl-popover-post-content' ); \progress_planner()->get_admin__enqueue()->enqueue_script( 'header-filters', $default_localization_data ); \progress_planner()->get_admin__enqueue()->enqueue_script( 'settings', $default_localization_data ); \progress_planner()->get_admin__enqueue()->enqueue_script( 'grid-masonry' ); diff --git a/views/page-widgets/suggested-tasks.php b/views/page-widgets/suggested-tasks.php index 84daf1928..69a28102f 100644 --- a/views/page-widgets/suggested-tasks.php +++ b/views/page-widgets/suggested-tasks.php @@ -57,3 +57,4 @@

+