* Look table class and installer
* New table + stats
* Working reports/initial population
* Remove test
* Refactor, remove depth
* Unused table
* Update todo
* Add docblocks and reorder get_insert_sql params for consistency
* Adjust css braces
* clear hook on deactivation
* PSR-4 category lookup
* linting CSS closing brace last char on line
* initialize category lookup table in unit tests
* missed linting fixes
* revert move of run_all_pending call
* use consistent reference for term_relationships in queries
* wcSettings: fix countries getSettings
* Revert "wcSettings: fix countries getSettings"
This reverts commit cdccfa95cded4b1d7e8908102e8814a0281b027e.
* fix incorrect countries usage
* apply countries fix to Customers Report
* integrate with new asset data registration (php side)
- includes back-compatibility.
* update js configuration and implement settings alias
- this aliases `@woocommerce/wc-admin-settings` to the settings api exposed via blocks (either the blocks plugin or core) and all the settings provided via the server.
- Adds fallback for back-compat if `wc.wcSettings` is not available in the environment (fallsback to `wcSettings`).
* initial pass to update all wcSettings direct usage to the new api
- this is just an initial pass, more can be done in separate pulls.
* missed one spot for adding new filter implementation
* fix incorrect jest config
* Avoid unnecessary assignment and directly return.
* Remove unnecessary defaults
* Fix inline comment text case.
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* Remove unnecessary inline comment.
* use @todo instead of TODO
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* fix incorrect reference in webpack config.
* add missing import and slightly delay dependency injection for scripts
* update get-setting and set-setting callbacks
* disable lint rule for console.error on dev doc builds
* Handle previously installed plugins during the onboarding wizard
* Allow the activate endpoint to activate multiple plugins at once, avoiding a race condition.
* Handle PR feedback
* Add the ability to fetch active plugins via wc-api
* Update List actionable items to be wrapped with Link
* Update product tasks to use href instead of onclick
* User inner tag for list items
* Fix up a11y for non-link actionable items
* Add better checkbox and radio support
* Add checkbox, select, and radio examples to form component
* Update business details step to use new Form component
* Add Form component to packages
* Add form example to devdocs
* Fix form validation check
* Update store details to use Form component
* Fix indentation issues
* Revert "Revert "Update to new Snackbar component and notice store""
* Update uploader component to use createNotice
* Bump required WP version to 5.2
* Update required PHP and WP versions in plugin header
* Add product subtask list component
* Add has-action class to list component
* Redirect after active task completion
* Refactor task completion check
* Add task completion statuses to component settings
* Fix missing className prop for list items
* Add task completion styling
* Add task list dashboard page
* Add actual site URL to header
* Fix typos
* Remove app bar
* Use material icons
* Update material icons to use Google hosted font
* Localize description strings
* Update store details form validation
* Add new form validation to business details step
* Add new form validation to industry step
* Add new form validation to product types step
* Add new wordpress/components version and fix dependencies
* Add in snackbar styling and gutenberg variables
* Convert all existing notice actions to wordpress/notices
* Fix linting errors
* Add package.lock changes
* Update search list control snapshots with new attributes
* Add theme uploader component
* Add theme to theme browser on upload complete
* Add a minimum height to dropzone area
* Use Muriel style Spinner during upload
* Add file field uploader to dropzone for accessibility
* Delete transient on theme install or theme switch
* Simplify Header rendering, remove the use of react-slot-fill
* Remove the useless "/analytics" route
* Move all the <Header> renders to the new, declarative way of specifying breadcrumbs
* Re-render the Layout when a report is added using the REPORTS_FILTER, since that affects the breadcrumbs output
* Fix the base breadcrumb link and breadcrumbs on embedded pages
* Expanded Layout.propTypes to specify the breadcrumbs' shape
* Add business extension recommendations
* Fix failing test. Set max height and width for toggle
* Fix toggle display and fix when the extensions show (so they dont hide and disapear as "currently" selling is selected).
* Only show installed themes with WC support and currently active theme
* Center tab panel buttons
* Fix installed param check typo
* Show installed themes in wc theme fetch fails
* Add section header for historical import.
* Add alert on unsaved changes.
* The glass is half full. Therefore my state change should be too.
* Update button text.
* Add theme step to onboarding profiler
* Add installed themes to onboarding theme data
* Add theme status for install themes in frontend
* Add regex test to check for WooCommerce theme support
* Add woocommerce not supported icon and tooltips
* Cache installed themes for performance
* Update themes endpoint to use real wccom endpoint
* Update error icon to use info gridicon
* Remove updated stock products from Activity Panel
* Use prefers-reduced-motion preference
* Update comparison to check if stock quantity is 'lower or equal to' lowStockAmount
* Focus quantityInput on 'beginEdit' instead of 'componentDidUpdate'
* Add comment explaining why we hide cards
* Refactor updateProductStock action
* Add type and parent_id properties to update
* Add theme data to wcSettings onboarding data
* Add theme step to onboarding profiler
* Use free in place of price if theme is <= 0
* Add theme paid/free filter tabs
I figured there's no reason you couldn't sort by the location data just so you can group them together (ex. quickly see how many are from a specific state at a glance rather than having it spread out & not having a means to group them together from this view.)
* Hook up import/status endpoint to Historical Data Import screen
* Fix PHP tests
* Add speak message when the import is complete
* Several fixes
* Cleanup
* Update progress bars every 3 seconds and bugfixes
* Rename ongoingImport to activeImport
* Use timestamp to identify queries
* Use timestamps for historical data state
* Add 'initializing' status
* Cleanup
* Pass less props around
* Refactor getStatus
* Set stop timestamp on request error
* Typo
This fixes the rapid request problem that was happening when switching
tabs while having timed out requests. It changes the approach from
suppressing the actions sent out to preventing the read function from
being called at all.
I think the original problem has occurred because the original approach
was relying on an internal implementation of apiFetch from wp.data. This
new approach does not have such a dependency. It prevents apiFetch from
even being called. However, in the process, it will also prevent any
newly required resources from being fetched if the user manages to
switch tabs before it is requested. (e.g. refresh, then switch tabs
quickly).
* Add product type information to onboarding
* Add product types step to onboarding profiler
* Update product type prices and learn more URLs
* Add styling to allow help text in checkbox group
* Match button and card action styling
* Add store details onboarding step
* Hide hide disabled buttons in card content area
* Save store details to wc settings
* Remove email field from store details
* Add city field to store details
* Store countryState options in state to avoid recalculating on rerender
* Add muriel component style changes
* Continue to next form step if form input is valid
* Add onboarding profile selectors and mutators to wc-api
* Show onboarding profiler depending on API results
* Add initial state hydration for onboarding profile
* Add onboarding namespace constant
* Add profiler body class on initial load, and respect skipped/complete status.
* Handle PR feedback: Remove unnecessary global, add some todos, added a filter around the next step slug, generalized the is-loading class a bit.
* Add method to go to next profiler step in step controller
* Add method to update profile params in step controller
* Add action methods to step 1 in the profiler
* Allow JSON body params for profile controller
* Use JSON body params in onboarding profile tests
* Add Muriel Styled Spinner
* Handle PR feedback: Fix ordering of example components, fix tabbing/spacing in stepper example file, and fix base muriel colors for the stepper and profile wizard.
* Add onboarding plugin installation (step 2)
* Handle PR Feedback: Fix vertical label display on mobile, fix Jetpack connect URL generation, so we make sure the plugin is active first, add new constant for local calypso development, fix typo, refactor activatePlugin/installPlugin on the JS side, sanitize plugin name input.
* Hook up import/totals endpoint to Historical Data Import screen
* Remove getImportTotalsError and isGetImportTotalsRequesting selectors which were not used
* Remove duplicate style import
* Fix RTL displays
* Add a vertical mode to the stepper component, and make some adjustments to the font weights.
Also adds a 'isPending' parameter to show a spinner for the currently active step.
* Handle PR feedback: Fix typo, add some margin to stop bouncing around in horizontal mode, add vertical example to devdocs.
* Fix linter errors
* Add customer functions to order and refund classes
* Use parent order for refund order number
* Add renderCurrency method to format negative currencies
* Allow negative number of items for refund fields in database
* Hide progress bars and status from Import Historical Data screen
* Remove Rebuild Reports Sections from Settings
* Add Delete Imported Data button to the default actions
* Unify @todo comments
* Add customer functions to order and refund classes
* Extract shared order and refund methods to trait
* Add refund filter to advanced filters in orders report
* Filter refund types in orders data store
* Extract refunds subquery to parent report data store method
* Add refund subquery filtering to order stats data store
* Add tests around refund type filtering
* Change the default option for the refunds filter
* Sync refunds on order sync
* Separate order and refund class extensions
* Add customer functions to order and refund classes
* Change products store to work with refund amounts
* Return early for refunds in coupon data store
* Allow refund processing in tax data store
* Remove unused refund amounts from tables and data stores
* Change order counts to parse out refund entries
* Include refunded orders in default queried statuses
* Only process order number filter on shop order post types
* Extract shared order and refund methods to trait
* Fix renamed schedule_single_order_import method
* Bump PHP and WP version requirements
* Save section/block preferences in user data
* Optimize updateSection code
* Remove no longer used prop
* Refactor dashboard blocks to make them extendable
* Check that defaultSection exists before merging
* Rename 'sectionsDefinion' to 'defaultSections'
* Add Dashboard README
* Update README with new props
* Update settings when moving/removing dashboard sections
* Add missing props to README example
* Move 'section.js' inside 'components' folder
* Fix README sentence
* Add Historical Data Import Screen
* Fix date picker not being accessible
* Cleanup
* Fix period selector typo
Co-Authored-By: Aljullu <aljullu@gmail.com>
* Move state to props
* Add filter to status labels
* Get rid of 'step' state property
* Format 'importDate' as YYYY-MM-DD
* Minor improvements
* Hardcode control height
* Use dateValidationMessages when possible
* Update imported all data actions
* Update filter name
* Allow renaming Dashboard sections
* Create a wrapper 'Section' component that handles the section title events
* Add blank lines in ellipsis-menu code
* PR feedback
* Remove onToggle prop from EllipsisMenu
* Get rid of default title
* Scroll to top of the table when navigating table pages
* Cleanup
* Avoid using scroll-padding-top
* Add space between the table top and the scroll point
* Only call if the page is different
* Move focus to the top of the table when switching pages
* Use CSS variables in the Activity Panel and breadcrumbs CSS (https://github.com/woocommerce/woocommerce-admin/pull/2096)
* Use CSS variables in the Activity Panel and breadcrumbs CSS
* Cleanup
* Focus on table element when navigating pages
* Add message to empty Reviews panel in the Activity Panel
* Add other reviews unread messages
* Cleanup
* Open external links in new tabs
* Avoid doing unnecessary API calls
* Remove 'activity_panel_reviews_last_read'
* Try: Setup plugin to publish core library on npm
* Documentation clean up.
* Handle PR Feedback: Fix notices from happening in WC Core from API usage, fix sidebar dashboard ordering in menu, remove preload function check since we are supporting WP 5+, add a filter for preloading data and move usage to respective feature code, move features to a specific folder for bundiling, fix script translations.
* Fix code comment on analytics preload
* Continue refactoring code, and make it possible to launch 'embedded' features via the process as well.
* Fix note hook
* Fix note load order
* Address PR feedback: Fix class name, load leaderboard endpoint
* Remove example code prior to merge
* Add allowed leaderboards endpoint to prefetch list
* Hook up leadboards endpoint to dashboard
* Skip data fetch for leaderboard if per page is less than 1
* Add tests to check for rendered html display
* Add fresh-data dev info support for dev builds.
This adds support for dev info to be accessed from the JavaScript
console for more information about resources handled by fresh-data.
* Update fresh-data to 0.6.0
* Fix withSelect to release resources on unmount
Previously, withSelect wasn't releasing resources from fresh-data when
it was unmounting. This fixes that behavior and now clears a component's
requirements correctly when unmounting.
* Add fresh-data dev info support for dev builds.
This adds support for dev info to be accessed from the JavaScript
console for more information about resources handled by fresh-data.
* Update fresh-data to 0.6.0
* Make sure unreadReviews is a boolean so it doesn't render any character (II)
* Set unread indicator in the Reviews tab when there are on hold reviews
* make is sortable true.
* Variations endpoint: Fix sorting by SKU when there is an active comparison
* Cleanup
* Extract FROM parameter logic to 'get_from_sql_params'
* Remove unnecessary 'get_order_by_sql_params' from Products and Variations data stores
* Separate notes controller request args and add collection params
* Fix page param var
* Fix collection params sanitization
* Allow array of note types to be queried
* Add order and orderby collection params to notes controller
* Allow sorting by order and orderby params in notes data store
* Make sure notes are ordered by date and unread matches inbox note types
* Allow status or type params to use an array of items
* Add tests for notes ordering
* Remove unnecessary query arg assignment in the notes data store
* Update get_notes_count to use array for status and type
* Change coupons sum to distinct coupon count in REST API
* Hook up unique coupon count to orders summary numbers
* Add coupons count to order segmenting
* Add coupons count to expected stats in order test and revenue tests
* Move product low stock count to controller param instead of data store
* Add totalCount to items API
* Extract unread indicators to separate file and add unread stock
* Trim initial search variable in wp_query
* Parse low stock option as an absolute integer
* Fix low stock meta comparison with product specific low stock amount
* Make group by query function static
* Check for empty strings and null values for product low_stock_amount
* Conditionally show task list on dashbaord page
* Move task list items into TaskList component
* Set onboarding flags to false in core and plugin environments
* Hide dashboard onboarding by default temporarily
* Activity Panel: set reviews unread indicator based on real data
* Unify date comparisons to GMT
* Add numberOfReviews propType
* Verify date_created_gmt exists before using it
* Typos
* Table: update columns visibility on headers change
* Make sure initial user pref columns are loaded in all reports
* Return early filterShownHeaders when hiddenKeys is an empty array
* Undo 'headers', 'prevHeaders' order switch
* Add manage stock setting to global wcSettings
* Hide Stock tab from activity panel if stock management is disabled
* Hide Stock report if stock management is disabled
* Prevent stock page from loading if disabled and visited directly
* Hide stock status and quantity columns when disabled
* Add last read user data for inbox
* Check last read time against inbox note to determine read status
* Set last read in unmount to make component stateless
* Compare latest note time against last read time in activity panel
* Fix error checking and per_page limit
* Use component mount time for last read time in inbox
* Compare unread against note GMT time
* Add missing trailing comma
* Added a Margin of 40 pixel for better user interface, on mobile devices.
* applied suggestion and commited changes for all devices.
* applied suggestion and removed extra tab.
* Add product search option REST API
* Remove product_name search in favor of sku and name searching
* Search by product search term instead of generic search in autocompleter
* Add product search option REST API
* Override existing search param instead of new param
* Remove product_name search in favor of sku and name searching
* Add product search param to variations controller
* Add group by to prevent duplicate variations in response
* Use product_search in variation autocompleter
* Trim whitespace in product_search query
* Change variation search placeholder
* Override search param instead of using new product_search param
* Add baseSearchQuery to prevent losing single_product filter in variations report
* Unset s param instead of setting to false
* Add a single customer filter to the customers report
* Hook up activity panel orders customer link to customer report
* Use customer name for label instead of username
* Show error in activity panel if no actionable order statuses exist
* Localize empty actionable statuses string
* Add padding around empty content component in activity panels
* Translation call text domain change from “wc-admin” to “woocommerce-admin”.
* Fix .pot file generation.
* Fix errantly closed array item in /revenue/stats controller.
* Rename plugin zip, main file, and repo name to "woocommerce-admin".
* Improve Chart rendering performance
* Avoid reassigning yFormat prop in Chart
* Update focused keys on legend toggle
* Use selectionLimit constant instead of a hardcoded value
* Minor improvements
* Add store notice around processing historical data.
* Cleanup
* Handle PR feedback.
* Clean up `add` logic and add empty content_data. Also add logic to get_notes_count so that we can hide unactioned statuses.
* Add the ability to update a note, and to also mark a status when an alert is clicked.
* Remove mark_actioned call on sync
* add missing todo
* Make categories endpoint return zero-value items
* Rename PHP variable to make it more specific
* Remove uneeded lines
* Make variations and coupons endpoints return zero-value items
* Remove second parameter from get_ids_table
* Add button input type to analytics settings
* Add callback prop and disabled state to setting
* Add rebuild tool to settings page
* Re-enable setting if error is caught
* Remove rebuild tool from system tools page
* Move report build success message to API response
* Add back key for settings map
* Fix misspelled option group classname
* Conditionally add rebuild tool to non-wc-status page instead of removal hook
* Add actionable status setting
* Add actionable statuses to settings page
* Hook up actionable order statuses to activity panel
* Hook up actionable order statuses to activity panel
* Use instanceId to generate unique ids for chart legend items
* Decouple item key and label in Chart components
* Remove more duplicate IDs in the chart legend
* Use double underscores in element IDs following BEM rules
* Move 'withInstanceId' inside D3Legend component
* Simplify screen reader labels logic
* Add CHANGELOG message
* Use 'primary' and 'secondary' as items keys in time-comparison charts
* Display order number on reports, and add to API response.
* Add method for getting order number, avoiding loading the data store if no filter is attached.
* Add code to collection params to allow searching
* Add include param to tax rest api
* Remove duplicate get_collection_params
* Revert to previous taxes getLabel config
* Screen readers: read date instead of data keys in 'time-comparison' bar charts
* Make previous period labels more verbose
* Revert "Make previous period labels more verbose"
This reverts commit 34d13deaa982425ca2cba76dacfd2c89c96f06c0.
* Improve isSameDay check
* Add date to hour tooltip and improve screen reader label
* Add CHANGELOG message
* Make column filter menu items not focusable
* Check if onInvoke exists before calling it
* Revert "Check if onInvoke exists before calling it"
This reverts commit e3b63edd51395c0f967991e2d20fccf867e37b91.
* Revert "Make column filter menu items not focusable"
This reverts commit 3e0ac949fa057a0c235876731768b6f312ced998.
* Add isCheckbox prop to MenuItem component
* Fix arrow keys navigation in checkbox menu items
* Table: don't update showCols state when the headers prop changes
* Fix style of dashboard summary number placeholder
* Make store performance block to be a normal <div> instead of a Card
* Fix dashboard summary numbers style
* Simplify code
* Only show customer name if available
* Map customer data to extended_info in orders API response
* Add gross total and refund total to orders API response
* Hook up report orders endpoint to activity panel orders
* Add on-hold orders to activity panel orders
* Destructure extended_info in case of filtering
* Add customer link to orders panel
* Add the ability to search name, username, and email fields on the customer endpoint, update autocompletors, add in include parameter.
* Update the username to be returned in the download response, update download filtering based on customer id, and only rename include parameter on main customers endpoint.
* Add initial transient notices component
* Animate notices to slide in and out
* Add notices to wc-api
* Map notices from wc-api to transient notices
* Add success message on settings save
* Add save notices to Settings page
* Remove all margin and padding from notice box when empty
* Add role alert to transient notices
* Add prefers reduced motion media query for transient animation
* Remove initial test notice
* Remove notices from wc-api
* Add wc-admin store for transient notices
* Pull transient notices from newly implemented store
* Use speak instead of role alert for accessibility
* Only show success message after request is complete
* Destructure state in componentDidUpdate
* Add store notice tests and fixtures
* Add box shadow to transient notice
* Move transient notices to bottom left
* Fix indentation
* First pass at adding feature flags. Accessible over PHP and JS.
* Hook up dev config to test enviornments, hook up features to their flags.
* Cleanup some code and add documentation. Remove beta config.
* Handle PR Feedback: Add devdocs flag, remove categories flag, fix auto-generated PHP warning.
* Add todo for beta phase.
* Handle PR feedback: Simplify is_array check, update build command, simplify test mock, remove empty webpack line.
* Show empty chart and summary numbers when search returns no results
* Add changelog message
* Preserve chart mode in empty searches
* Add tests
* Fix CSS Lint error
* Make sure the legend updates when there is no data and it's not requesting
* Rename 'emptySearch' to 'emptySearchResults'
* Fix tests
* Add manage_stock to stock controller response
* Add manage_stock property to stock report tests
* Add changelog entry
* Make stock quantity float instead of int
* Add manage_stock to the products API response
* Check for manage_stock in products table
* Add manage_stock property to product API tests
history.createHashHistory() is being called whenever this package is
imported, which causes the URL to redirect to a hash. This is
unnecessary in cases where elements of wc-admin are used outside of a
completely controlled/routed page.
This lazy-creates the history object only when it's needed and therefore
avoids the URL redirection unless history features are in use.
Product detail report and comparison
Code cleanup
Fix 404 on product variations endpoint after rebase
Fix up tests
Fix loading indicators and add some checks around malformed variation response
Add date filtering SQL bits to the variations query
Handle PR feedback: Fix viewport, fix duplicate product issue, fix legend display reset, fix bargraph overflow, fix some coding standards/whitespace, add extra variation santiziation.
Fix scroll on wide charts, and fix undefined prop getting passed into report chart render
* Show empty table when search returns no results
* Fix singular wrong string for 'orders'
Co-Authored-By: Aljullu <aljullu@gmail.com>
* Check if search returned 0 results inside table components instead of passing a prop
* Move labels loading logic into a lib
* Move lib/labels into lib/async-requests
* Implement tabular data filtering
* Allow searching for string in report tables
* Add table filtering to customers table
* Get ids from searched string to populate the table
* Fix autocompleter keyboard interactions
* Improve props naming
* Cleanup report customers data store
* Prevent an edge case issue that might not update the selectedOptions when directily modifying the URL
* Fix wrong selected autocompleter option
* Add missing translation domain
* Move searchItemsByString to wc-api/items/utils.js
* Avoid autocompleter results appearing when there was no search string
* Alphabetically order 'allowFreeTextSearch' prop
* Reset selected table rows when directly modifying the URL
* Simplify props destructuring
* Undo customers data store change
* Simplify isProductDetailsView expression
* Improve order
* Merge getOrders and getItems
* Move labels loading logic into a lib
* Move lib/labels into lib/async-requests
* Implement tabular data filtering
* Allow searching for string in report tables
* Add table filtering to customers table
* Get ids from searched string to populate the table
* Fix autocompleter keyboard interactions
* Improve props naming
* Cleanup report customers data store
* Prevent an edge case issue that might not update the selectedOptions when directily modifying the URL
* Fix wrong selected autocompleter option
* Add missing translation domain
* Move searchItemsByString to wc-api/items/utils.js
* Avoid autocompleter results appearing when there was no search string
* Alphabetically order 'allowFreeTextSearch' prop
* Reset selected table rows when directly modifying the URL
* Simplify props destructuring
* Undo customers data store change
* Simplify isProductDetailsView expression
* Improve order
* Filter tax code parts before modifying them
* Add settings page routes
* Add control options for excluded statuses
* Add control options for excluded statuses
* Add excluded order statuses to rest api
* Add wc settings to wc-api
* Add wc settings to wc-api
* Split and validate multiselect values in settings controller
* Add wcAdminSettings to wcSettings global
* Set initial excluded statuses from serverside wcSettings data
* Add extensible filter for wcSettings global
* Split arrays into comma separated strings in wc-api
* Extract setting as separate component
* Extra settings to config file
* Add checkboxGroup option as input type
* Separate status types into default and custom groups
* Add setting option styling
* Add responsive styling for settings
* Fix wpClosedMenu and wpOpenMenu for settings page
* Add support for resetting to default values
* Only show checkbox group if options are available
* Add proptypes to Setting component
* Add extensible filter to analytics settings
* Add readme for settings config and extensibility
* Hook up excluded status settings to reports
* Pass object to settings API instead of comma delimited string
* Fix inpuType -> inputType typo
* Remove hasError from constructor
* Bump settings API to v4
* Use interpolateComponents instead of dangerously setting html
* Use empty array in initial excldued statuses setting value if none is retrieved
* Remove double check for refunded status in default order statuses
* Update settings wc-api to use namespace
* Add aria=labelledby to checkbox group
* Remove usage of lib/number
* Remove formatNumber usage when currency is used.
* Add wc-number as a dependency of wc-currency.
* Add locutus as a dev dependency.
* Add number to test helper.
* Move labels loading logic into a lib
* Avoid making API calls when displaying Order labels
* Move lib/labels into lib/async-requests
* Rename 'getCustomerLabel' to 'getCustomerLabels'
* Add namespace v4 for WC product/categories endpoint
* Update categories wc-api to use v4 namespace constant
* Add single product category filter to product categories report
* Add link to filtered product report from category report
* Use persistedQuery for category links
* Check if category is defined before displaying category link
* Remove selectedTags when filter does not match queried filter