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>
* Hydrate initial state through localized script
* Parse user meta for default rows as integer
* Change eslint ignore to undef only
* Add currentUserData to wcSettings
* 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
* Add dashboard chart links to reports
* Remove extra css background property from screen reader text
* Remove elements from previous click handler attempt
* Concat translation strings with sprintf
* Change chart hover interactions
* Move i18n to external dependencies
* Make legend buttons match background on hover
* Add user preferences for shown dashboard charts
* Add user preferences for dashboard chart type
* Check if user preferences are set before assigning to state
* Move API update methods out of callbacks and use xor
* 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
* Revert "Show today charts up to the current hour (https://github.com/woocommerce/woocommerce-admin/pull/1203)"
This reverts commit 029ff9cc9c.
* Add current hour to timestamp of queries ending in today
* Fix getCurrentDates not returning moment objects as specified in the docs but returning string dates
* Set appendTimestamp( ..., 'now') seconds to 00
* Add test for appendTimestamp( ..., 'now' )
* Don't accept string dates in 'appendTimestamp'
* Fix 'moment' dependency deprecation warning
* Create Leaderboard component. Update Top Selling Products to use it.
* Use date picker values in Top Selling Products.
* Convert top selling products tests into leaderboard tests
* Updates per feedback.
* Skipping failing test for now.
* 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.
* Add Live Data to Reviews Panel
Adds the ability to embed the product in a product review response
* Clean up code needed to embed some product fields.
* Add API response tests
* 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
* withSelect: fix for multiple select() calls
This fixes a problem with a fresh-data store implementation that was
cancelling out previous requirements when mapSelectToProps
select( 'wc-api' ) was called more than once.
* wc-api: Only clear if no requirements selected.
Small update to only clear out a component's requirements if withSelect
returns without any requirements.
* 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
* Make sure D3Base always updates when props change
* Fix JS error when resizing the window
* d3Chart cleanup
* Update tests
* Update d3Base also when drawChart prop changes
* Save height and width without margins in params
* Remove resize listeners inside d3Base
* Remove unused param
* 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
expand formatting function to xFormats
adding getTooltipValueFormat
remove old chart examples
remove magic numbers and use variables
refactor getTooltipRowValue
update package-lock
allow function formatters and use @wordpress/elements
* Adds UI wiring for Coupons chart and summary
* Update for changes in master
* Update to use current method
* Remove accidental paste
* Fix typo
* Seperate WooCommerce deps
* Adds UI wiring for Catgories chart and summary
* Use new format for charts
* Use swagger api
* Get rid of store references
* Final touch ups
* Seperate out WooCommerce dep
* Move components to packages folder
* Update documentation generator to handle packages/components and client/components
* Update component locations
* Update CSS build process
* Remove react-dates css, this is already included by gutenberg
* Fix CSS style - single quotes
* Fix incorrect imports
* Update package-lock with new dependencies
* Update component locations for devdocs
* Fix location of tests
* Update chart breakpoints to match the other parts or wc-admin
* Make chart have always the specified height so it matches the legend total label
* Remove obsolete test
* Remove exports no longer needed
* Remove @wordpress/viewport dependency from chart.js
* Update chart docs
* Make tooltipPosition PropType more strict
* Adds UI wiring for Taxes chart and summary
* Update to latest method for creating summary/chart
* Switch out API for swagger
* Fix copy pasta
* Implement swagger api
* Update config to match swagger API
* Code review fixes
* Remove store code as it isnt used
* Display comparison chart in Product detail report
* Make legend to overflow in comparison charts
* Show comparison chart also when comparing products
* Update comparison chart legend design
* Send itemsLabel and comparisonChart as props to the ReportChart component
* Update styles and create a legend.scss file
* Minor cleanup
* Fix legend test
* Sort props alphabetically
* Move filter code to the navigation package
- Moves filter-related code to navigation, so it can be shared between components and the app
- Fixes spelling of “flatten”
- Update README docs with new functions
* Use `get` to prevent errors if options is not an array/is empty
* Update documentation and tests
* Move CSV to packages
* Update CSV imports
* Add some basic usage documentation
* Add csv lib to the enqueued assets
* Change name to `csv-export`
* Update webpack build process to allow for package names with dashes
* Fix capitalization
* Update readme with docs extracted from jsdoc
* Fix merge conflict commit 😣
* Check that generateCSVFileName is called with correct params
* fix: Remove state argument from resolvers.
State is no longer the first argument to resolvers as of @wordpress/data
version 3.0.0
* Update @wordpress/data to 3.1.0
* Adjust resolvers to work with v2 and v3 wp.data
This adds code to inspect the arguments of the resolvers to allow for
working with v2 or v3 wp.data. This is only temporary.
* resolvers: fix tests
This fixes tests by removing empty state objects from them.
* Move nav-utils and history to new package
* Update config to build and use new navigation package
* Update all imports to use new navigation package
* Remove unnecessary README
* Update nav-utils path
* Make breadcrumbs links persist date queries
* Add tests to getTimeRelatedQuery() when query parameter not set
* Add comment explanation about navUtils self-import
* Makes stylelint config match prettier settings
* Fix/all css lints (https://github.com/woocommerce/woocommerce-admin/pull/734)
* Fix all sass lints!
* Delete settings.json
* Update newline rule, which also conflicts with prettier
* Fix remaining stylelint issues
* Disable stylelint rule for a line to avoid prettier/linter fights
* Fix charts redirecting to previous path when changing interval value
* Fix chart being reset when changing interval
* Fix chart being reset when changing filters
* Move TableSummary below pagination
* Add summary to order table
* Add new and returning customers
* Add product to totals in API
* Use get_var instead of get_results for unique products
* Change table summary styling
Remove slashes and increase padding between items based on discussion with @LevinMedia
Change margin to padding to overlap table shadow when pagination is not present.
* Fix wp_posts prefix and move to separate fxn
* Change new/returning customer column types to intval
* Add new/returning customer data to tests and fix formatting
* Adds Section Header component
* Return Card header to previous state
* Restore card header
* Fix weird format comment in markdown
* PR review comment fixes
* Add snapshot to test
* Add role to hr to remove from screen readers
* Code review fixes
* Add lerna & GB package-building script
* Move currency library to lerna module
* Update lerna config
* Add publish commands
* Add currency as an faux-external module
* Add separate command to build just core files
* Update dependency path
* Update build script to build all packages into `dist`
* Add packages to the jest test setup
* Move date library to packages
* Update imports to use @woocommerce/date
* Output wcSettings definition before any scripts are output
Fixes issues where wc-dates lib relies on settings object
* Add the build step into travis
* Update jest config to dynamically get package paths
* Update package postcss config to match wc-admin’s main config
* Add combined watch scripts for package+app, add a `clean` command to clean up old build files
* Ignore PHPCS error (leave todo message to fix)
* Concat files with a space, fix issue where all files join in one continuous string and fail the check
* Move withSelect() inside table components
* Add isLoading prop to TableCard (https://github.com/woocommerce/woocommerce-admin/pull/713)
* Add isLoading prop to TableCard
* Add onSort prop to TablePlaceholder
* All checkbox shouldn't be checked if the number of rows is 0
* Updates default analytics menu
* Make revenue the default analytics page
* Fix header link to direct to Revenue report
* Fix highlighting with additional filters