Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Block Directory: Return inactive plugins in search results #23688

Merged
merged 5 commits into from Jul 6, 2020

Conversation

@ryelle
Copy link
Contributor

@ryelle ryelle commented Jul 3, 2020

Description

Fixes #23570 — This skips the check in the search results endpoint that filters out installed blocks, so that installed-but-deactivated blocks are returned. Blocks that are installed will contain an extra link property in the result, which we can use in the install flow to just activate the plugin.

This also changes the uninstallation flow to use the same link property, instead of a custom endpoint property.

How has this been tested?

I updated the unit tests, and manually tested with a combination of locally installed block plugins.

From the original issue:

  1. Install a block from the directory (Boxer)
  2. Disable plugin via wp-admin/plugins.php
  3. Reload page
  4. Search for the same block
  5. The result is should now be returned

Types of changes

Bug fix (non-breaking change which fixes an issue)

@ryelle ryelle requested review from StevenDufresne and TimothyBJacobs Jul 3, 2020
@ryelle ryelle requested a review from spacedmonkey as a code owner Jul 3, 2020
@ryelle ryelle self-assigned this Jul 3, 2020
@github-actions
Copy link

@github-actions github-actions bot commented Jul 3, 2020

Size Change: +40 B (0%)

Total Size: 1.13 MB

Filename Size Change
build/block-directory/index.js 7.52 kB +40 B (0%)
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.62 kB 0 B
build/api-fetch/index.js 3.4 kB 0 B
build/autop/index.js 2.82 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/style-rtl.css 944 B 0 B
build/block-directory/style.css 945 B 0 B
build/block-editor/index.js 109 kB 0 B
build/block-editor/style-rtl.css 10.7 kB 0 B
build/block-editor/style.css 10.7 kB 0 B
build/block-library/editor-rtl.css 7.57 kB 0 B
build/block-library/editor.css 7.57 kB 0 B
build/block-library/index.js 130 kB 0 B
build/block-library/style-rtl.css 7.78 kB 0 B
build/block-library/style.css 7.79 kB 0 B
build/block-library/theme-rtl.css 728 B 0 B
build/block-library/theme.css 729 B 0 B
build/block-serialization-default-parser/index.js 1.88 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 48.2 kB 0 B
build/components/index.js 198 kB 0 B
build/components/style-rtl.css 15.8 kB 0 B
build/components/style.css 15.8 kB 0 B
build/compose/index.js 9.65 kB 0 B
build/core-data/index.js 11.4 kB 0 B
build/data-controls/index.js 1.29 kB 0 B
build/data/index.js 8.44 kB 0 B
build/date/index.js 5.47 kB 0 B
build/deprecated/index.js 772 B 0 B
build/dom-ready/index.js 569 B 0 B
build/dom/index.js 3.19 kB 0 B
build/edit-navigation/index.js 9.98 kB 0 B
build/edit-navigation/style-rtl.css 1.02 kB 0 B
build/edit-navigation/style.css 1.02 kB 0 B
build/edit-post/index.js 304 kB 0 B
build/edit-post/style-rtl.css 5.57 kB 0 B
build/edit-post/style.css 5.57 kB 0 B
build/edit-site/index.js 16.6 kB 0 B
build/edit-site/style-rtl.css 3.03 kB 0 B
build/edit-site/style.css 3.03 kB 0 B
build/edit-widgets/index.js 9.32 kB 0 B
build/edit-widgets/style-rtl.css 2.45 kB 0 B
build/edit-widgets/style.css 2.45 kB 0 B
build/editor/editor-styles-rtl.css 537 B 0 B
build/editor/editor-styles.css 539 B 0 B
build/editor/index.js 44.8 kB 0 B
build/editor/style-rtl.css 3.78 kB 0 B
build/editor/style.css 3.77 kB 0 B
build/element/index.js 4.65 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 7.73 kB 0 B
build/format-library/style-rtl.css 547 B 0 B
build/format-library/style.css 548 B 0 B
build/hooks/index.js 2.13 kB 0 B
build/html-entities/index.js 622 B 0 B
build/i18n/index.js 3.56 kB 0 B
build/is-shallow-equal/index.js 710 B 0 B
build/keyboard-shortcuts/index.js 2.52 kB 0 B
build/keycodes/index.js 1.94 kB 0 B
build/list-reusable-blocks/index.js 3.12 kB 0 B
build/list-reusable-blocks/style-rtl.css 476 B 0 B
build/list-reusable-blocks/style.css 476 B 0 B
build/media-utils/index.js 5.3 kB 0 B
build/notices/index.js 1.79 kB 0 B
build/nux/index.js 3.41 kB 0 B
build/nux/style-rtl.css 671 B 0 B
build/nux/style.css 668 B 0 B
build/plugins/index.js 2.56 kB 0 B
build/primitives/index.js 1.5 kB 0 B
build/priority-queue/index.js 788 B 0 B
build/redux-routine/index.js 2.85 kB 0 B
build/rich-text/index.js 14 kB 0 B
build/server-side-render/index.js 2.68 kB 0 B
build/shortcode/index.js 1.69 kB 0 B
build/token-list/index.js 1.28 kB 0 B
build/url/index.js 4.06 kB 0 B
build/viewport/index.js 1.85 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action

@ryelle ryelle requested review from ajitbohra, nerrad, ntwb and talldan as code owners Jul 3, 2020
ryelle added 4 commits Jul 3, 2020
The plugin URL will only exist if the plugin is already installed, so we can use that to activate that plugin. We can also use this link for uninstallation, so we make sure to add it into the block object when installing a plugin.
@ryelle ryelle force-pushed the fix/block-dir-find-inactive-plugins branch from 8b21bd0 to 4490234 Jul 3, 2020
method: 'PUT',
} );
} else {
const response = yield apiFetch( {

This comment has been minimized.

@TimothyBJacobs

TimothyBJacobs Jul 3, 2020
Member

Not necessary, but we could also use the wp:install-plugin link as a base, and just add the status: active data.

if ( link && link.length ) {
return link[ 0 ].href;
}
return false;

This comment has been minimized.

@StevenDufresne

StevenDufresne Jul 5, 2020
Contributor

Not incredibly important but @wordpress/url's getPath returns undefined (which we use in controls.js).

I wonder if it makes sense to follow that convention.

Copy link
Contributor

@StevenDufresne StevenDufresne left a comment

Tested it locally. Works are expected. Good job!

@ellatrix ellatrix added this to Approved in WordPress 5.5 Must Have Jul 6, 2020
@ellatrix ellatrix merged commit 4726320 into master Jul 6, 2020
13 checks passed
13 checks passed
Check Check
Details
build
Details
Admin - 1
Details
pull-request-automation
Details
test (gutenberg-editor-gallery)
Details
test (gutenberg-editor-gallery)
Details
All
Details
JavaScript
Details
Admin - 2
Details
PHP
Details
Admin - 3
Details
Mobile
Details
Admin - 4
Details
WordPress 5.5 Must Have automation moved this from Approved to Done Jul 6, 2020
@ellatrix ellatrix deleted the fix/block-dir-find-inactive-plugins branch Jul 6, 2020
@github-actions github-actions bot added this to the Gutenberg 8.5 milestone Jul 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.