* 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
* 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 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
* 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
* 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
* 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
* 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
* 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
* 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
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
* REST API: Allow sorting by stock_status in stocks endpoint
* Set stock_status as default orderby
* Sort by both stock status and quantity in meta query
* Use stock_status sort order by default in Stock table (https://github.com/woocommerce/woocommerce-admin/pull/1340)
* Reverse stock quantity order when sorting by stock status
* Add single category filter to categories report
* Change categories leaderboard link to signle category link
* Remove todo comment regarding the single_category filter
* Update category links to categories report in products table
* Update all wc-admin endpoints to v4
* Add namespace for products and customers controllers
* Include product quantity in orders data store
* Add coupons to extended data in the orders data store
* Format order statuses response from database
* Hook up orders table to orders endpoint
* Add namespace to data endpoint controller
* Add namespaces to remaining extended controllers
* Use NAMESPACE var in place of wc/v4
* Update product links in orders table to products reports
* Add coupons rest controller override
* Format coupon code in response
Co-Authored-By: joshuatf <joshuatf@gmail.com>
* Use a date instead of hour for single dates in report tables
* Add hour to allowed list when day difference is less than 1
* Prioritize hour format over day and set day as default for tables
* Add default intervals for report tables
* Use explicit date format in report tables
* Add constant for default table format
* Restore allowed intervals for >1 && <7 days
* Add leaderboard section to dashboard
* Add rows per table user preference
* Pass in rowsPerTable to leaderboards to adjust total rows
* Add styling for rows select dropdown
* Set default for total rows if tableQuery is undefined
* Remove double localization on leaderboard labels
* Simplify toggle logic for hidden leaderboards
* Move updateCurrentUserData outside of setState callback
* Connect downloads chart and table to REST API
* Display date picker in Downloads report
* Fix missing value for 'days' in Downloads table summary
* Fix download_count being a string instead of a number
* Minor date packages comment fixes
* Fix filters in Downloads report
* Add back empty line
* JSDoc comments style fixes
* Fix username filter not working
* Fix days counter off by 1
* Fix alignment issue
* Improve Charts X-axis when displaying a single date
* Add tests for getXTicks
* Fix typo in tests
* Add assertion in compareStrings test for dates with commas
* Update interval options
* Fix secondaryDate always showing 12AM
* Don't convert dates to UTC when checking if they belong to the same date
* Check for product categories before loading value
* Filter product category list for undefined values
* Remove unnecessary double check of productCategories
* Extend docs to report components
* Improve inline documentation in some files
* Update doc files
* Undo unnecessary doc changes
* Remove unnecessary line breaks in sidebar
* Rename 'Client components' to 'Analytics components'
* Minor docs fixes
* Rename toc contents to toc sections
* Update endpoint props doc to add an example and more information
* Fix outdated comment
* Fix merge error
* added new block and dashboard charts
section title and filters... lots of duplicate keys
toggle chart types in block heading
* Updates per feedback.
* Add some documentaiton about new interactive prop on chart/legend
* Revert a few files that only had whitespace changes.
* Add support for product cats in wp rest api
* Add categories to WC API
* Add category breadcrumbs component
* Increase per_page limit size for product cat API
* Use wc/v3 API to pull product categories
* Return category IDs in API
* Add categories to product reports
* Add category IDs test for REST API
* Switch to getResource instead of require for total count selector
* Change product_gross_revenue to product_net_revenue
* Change product_gross_revenue to product_net_revenue in category data store
* Change to net_revenue in frontend category report
* Hook up taxes to endpoint
* Hook up tax stats endpoint
* Add default tax stat totals for empty results
* Create subtotals from intervals in API
* Change orders to orders_count to keep consistent naming
* Create Stock report
* Create Stock report page
* Display product name in Stock table
* Hide 'Parent' column in Stock table
* Add stock to endpoints map
* Remove dateRangeFilter.show from ReportFilters
* Fix stock status link
* Set the default order to 'stock_quanity'
* Add correct name to StockReport
* Add an advanced country filter to the customers report
* Handle PR feedback: Fix PropType warnings, move filter/label logic to config getLabels() function, fix typo.
* Add flag thumbnail to the country filter
* Update README and CHANGELOG
* Add column prefs to the other tables
This adds column prefs to the other remaining report tables.
* Table columns: Override defaults with user prefs.
* table columns: Add remaining analytics tables
* user read/update operation: Combine responses
This combines the response handling for the read and update operations.
* wc-api: Add user meta for UI preferences
This adds wc-api code to store UI preferences and provides one example
of updating the revenue table to save column preferences.
* wc-api user: fix returns of operations to arrays
Before, a function was returning undefined when the resourceNames didn't
include what we wanted for the user operations. This was causing some
console errors.
* ReportTable: use columnPrefsKey
This uses `columnPrefsKey` for the user preferences key instead of some
erroneously hard-coded values.
* Fix formatting/comments
These are a couple of small formatting and comment fixes.
* Replace woocommerce_meta_ prefix with wc_admin_
This changes the prefix for the meta fields for the `woocommerce_meta`
user meta array to be `wc_admin_` which better hints at the purpose of
these settings.
* Create Customers Report page
* Hide date range filter if dateRangeFilter.show is false
* Rename dateRangeFilter.show to showDatePicker in filters config
* Add correct key 'average_order_value'
* Fix customers autocompleter not working
* Fix wrong default data structure in 'getReportTableData'
* Update tests
* Change default prop for tableData from null to an empty object in ReportTable
* Use ReportTable in Orders report
* Get totalCount from hte X-WP-Total header
* Order props alphabetically
* Cleanup report table 'tableData' prop
* Use short-circuit evaluation
* data: Add @fresh-data/framework to package.json
* data: Add fresh-data and replace orders in table
This PR adds fresh-data with a WooCommerce API spec to fulfill order
information. It then replaces the existing selectors for the orders
table with the new selectors as a proof-of-concept.
* wc-api: Add temporary code for `withSelect`
This adds temporary code for a `withSelect` function outside of
`@wordpress/data` until the context PR is merged:
https://github.com/WordPress/gutenberg/pull/11460
* wc-api: Update fresh-data to 0.5.0
* Use X-WP-Total header to set the total number of items in tables
* Improve naming
* Improve tests
* Make getReportItems() return a 'data' property by default
* Make getSummary prop behavior more clear
* Merge table stores
* Add Categories table
* Add numberFormat to non-currency numbers displayed to the user in the Categories Table
* Rename 'Coupons' to 'Categories' in Categories table title
* Update Categories table to use the ReportTable