* 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
* 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
* Check for product categories before loading value
* Filter product category list for undefined values
* Remove unnecessary double check of productCategories
* 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
* 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
* 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
* 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 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
* 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
* 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
* Add Products table
* Update tests
* Cleanup
* Make placeholder table have the correct sorted column selected
* Change default sort to items_sold & desc
* Fix wrong CSV filename
* Remove unnecessary constructor in ProductsReportTable
* Add @TODO comment to Products table summary
* Set ProductsReportTable link to wc-admin type
* Make sure categories is an array before using map
* Send params with Orders table API calls
* Add onError case and caching for Orders calls
* Remove unused actions
* Load only 'processing', 'on-hold' and 'completed' orders
* Use NAMESPACE constant instead of hard-coded value
* Comment typos
* Add tests to Orders reducer, resolvers and selectors
* Typos
* Fix JSDoc mismatch
* Create ViewMoreList component
* Update Tag component with the new style and popover
* Display number of times an item was bought in the Orders table (2x, 1x, ...)
* Refactor ViewMoreList so the elements to display in the list and the popover are different props
* Cleanup
* Fix CSV values for products and coupons
* Minor fixes
* Rename ViewMoreList prop from 'popoverItems' to 'items'
* Cleanup props
* Add ViewMoreList to devdocs examples
* Order Tag props alphabetically
* Move withState to export line so it doesn't break docs generation
* Rename 'is-not-unique' class name to 'is-inline'
* Fix missing comma
* Remove margin from popover list
* Use pseudo-selector to replace 'is-inline' class in cell links
* Create Orders table
* Remove getOrderIds selector
* Create an OrdersReportTable component
* Alphabetically order extracted props
* Fix JS error for missing coupon properties
* Add TODO comment for missing customer type
* Add calculation for net revenue
* Align all table cells but identifier to the right
* Remove temporary text
* Improve cell link inline CSS
* Count several purchases of the same product as items sold
* Add TODO message to coupon link
* Add Download to Orders table
* Don't use camelCase for table column keys
* Cleanup
* Make products and coupons columns non-sortable
* Create renderList method to simplify products/coupons list creation
* Display correct currency for each order
* RTL table fixes
* Fix: products and coupons columns showing 'false' in CSV download
* Minor fixes
* Rename 'isIdentifier' with 'isLeftAligned' in table columns
* Remove toggleStatus method
* Add aria roles to chart elements
* Make individual points (in line charts) and individual bar (in bar charts) focusable
* Remove methods which are never used
* Reduce the number of parameters required by functions that display/hide the tooltip
* Use tooltipFormat for accessibility dates
* Rename 'formatVoiceDate' function to 'getTooltipDate'
* Use string literals for aria-label
* Remove table role which was no longer needed
* Add aria-hidden to X-axis in charts
* Remove 'key' from points/bar aria-label in charts
* Set different ARIA properties depending on chart mode (time or item comparison)
* Label should default to an empty string instead of a 0
* Use date format from params instead of hardcoded
* Fix dates transposed in revenue chart
* Update date format in revenue chart tooltip labels
* Load point label date formats from lib/date
* Pass point label format as a prop to the chart component
* Move section, header, and activity panel out of layout folder
* Update file soures
* Move documentation into component, and update generation script to handle the duplicated exports
* Allow adding a label for each specific point in a chart
* Update test fixtures
* Update README with new data format
* Simplify getPreviousDate function code
* Update tooltip dates format
* Add new prop to charts 'tooltipTitle' to override the date tooltip title
* Fix totals not being calculated in charts legend
* Fix JS error when hiding lines in chart
* Fix a couple of issues with chart README
* Add quotes around prop names
* Remove unused variable
* Remove colon after tooltip label
* Disable compare button if less than 2 items are selected
* Add a placeholder prop to the Search component
* Pass a placeholder label from filter configs for Search
* Add support for a label in Search
* Add Clear All link to reset comparison card
* Add a label when compare button is disabled
* Abstract the conditional tooltip/disabled button logic to a new component
* Add helpText as a customizable label
* Add icon to the search field
* Remove the parameter from query by passing in undefined
* Switch to withInstanceId higher order component
* Add checkboxes to the rows in a TableCard, if a compareBy prop is set
* Add Compare button to update query param
* Populate the selected rows from the query parameter
* Update compare filter display & selected table rows when the query changes
* Skip displaying tags if the label is null/undefined
* Style table header with compare button, search placeholder
* Prevent setting just an ID list as the state, as this will wipe out already-fetched tag labels
* Update docs
* Shortcut out of fetching tag labels if the query is empty
* Add a mock table to Products report
* Move onQueryChange to a helper function in nav-utils
* Add function to parse out ID lists from a query parameter
* Add a default value
Prevents undefined query params from erroring on the `.split`
* Use numberFormat rather than forcing type conversion, fix table header name
* Fix duplicate export caused by merge conflict
* Add a new component with product search for the compare card
* Get product names from API when passed through URL
* Abstract out the products-related code into filter settings
* Update filters to provide multiple comparisons
Alternative to the “Compare [dropdown]” approach
* Update documentation
* Wipe selected items when the compare-type is updated
* Update labels & order of items in filter dropdown
* Add getLabels prop & description
* Add loading indiciators for the revenue report.
* Improve accessibility, and fix up some documentation comments.
* Fix top border on mobile
* Add EmptyContent Component and revenue error/empty states. (https://github.com/woocommerce/woocommerce-admin/pull/348)
* Add EmptyContent Component and revenue error/empty states.
* Move relative image handling to ImageAsset, combine secondary and primary action rendering, add some missing isRequired proptypes, add empty error handling.
* Handle PR Feedback: Clean up button css, set a default for illustration, fix deprecation typo, some code cleanup.
* Add CSV download to Revenue table
* Set revelant file name for revenue CSV file download
* Add package-lock.json
* Move CSV download logic inside /lib/
* Remove 'totals' from table CSV
* Check parameters are arrays in generateCSVDataFromTable
* Add @TODO comment about downloading large sets of data
* Filters: Remove filterPaths, add path as property to filters object
* Set a default path, so we only need to configure it for changed paths
* Fix nav & filter fetching for nested lists
* Add “go back” functionality to all subfilter lists, not only ones with components set
* Make label optional on component options
* Update documentation to remove mention of filterpaths
* Add documentation on the filters structure
* Create page helper function
* Enable filtering of report content for extensions to inject new reports
* Add error boundary
* Add documentation for the reports filter
* Importing all components from a root components file
* Update Ratings component to avoid circular dependencies, fix tests
* Export components on `wc.components`, use this for importing
* Move react-dates initialize to the components file
* Push query changes to history
Fixes an issues where native a links do not update the query in `history`
* Update test config for new @woocommerce/components path
* Update chart components import
* Merge simple/complex & alphabetize by first exported name
* Add a readme with info about how to call these components
Add new function to merge query params into a given path
Add a new ReportFilter component, which extracts the date picker & filter picker
Add basic framework for product search
Add new AdvancedFilter to filter options
Remove duplicate CSS
Use library function for merging new query+path
Move filters folder out of reports
Use filter constant
Add README
Add path & query helper functions
Move filters into component folder
Switch to getPath/getQuery helpers
Update classes & merge styles
Remove query/path from READMEs
Add a readme to nav-utils
* Table: Add a hover state for rows
* Expand target area for table links to take over entire cell
* Add a purple link style for default links
* Increase contrast for links-on-hover-color
* Add “isNumeric” column identifier & right-align these cols
* Switch headers to an object, use `header.label` to display title
* Change sort function to update a query param
* Clean up README
* Get the currently sorted column from the query
* Don’t allow toggling of required columns
* Add in direction-sorting (ascending/descending)
* Switch to aria-describedby so that the actual column name is read aloud
* Fix chevron orientation
* Handle hiding a sorted column
* Fall back to sorting by first item if no defaultSort col is set
* Fix arrow orientation again
* Update order_by to orderby to match wp_query param name
* Update mock data to reflect latest API format
* Update Table component to create a TableCard, TableSummary, and plain Table
Use the TableCard container to display mocked revenue data
* Add horizontal scroll only on the table itself
* Remove `sortable` prop, base column sortability on whether the `value` is true/false
Checking against a strict false should prevent any real 0 or ‘’ values from triggering unsortability
* Add a checkbox to the demo table
* Update accepted props
* Update README for TableCard, Table, and TableSummary
* Update README
* Fix confused defaults
* Add first pass + demo of updated SummaryNumber
* Add new larger screen breakpoint
* Remove the max-width from the content wrapper
* Update previous label text
* Fix the border colors/sizing
* Create a mixin to generate the grid template pattern
* Add green/red colors based on trend, with prop to reverse
In some cases, a downward trend is good (ex, refunds), so we want to be able to color those green
* Move selected number containers up to avoid the double-border
* Document className logic, and apply 10-item layout to all cases of 10+ items
* Remove layout notes
* Update component docs, clean up optional displays
* Update style of SummaryNumbers inside cards
* Filter out any `false` or otherwise unrenderable children
* Fix card borders
* Update dashboard component to use new props
* Check that prevValue is defined
a prevValue of 0 was incorrectly outputting `0` for both label and value
* Update no-change datapoint style
* Update default data values
Rather than hiding the prevValue/label or delta section if these are not passed through, use default N/A placeholders
* Change SummaryList & SummaryNumber to a list of links
Add active, hover, and focus styles
* Add a short help text for screen reader users
* Add href to README
* Add the href prop to the readme example
* Fix border colors
The `nth-of-type` rules need to be on the `li` containers
* Fix font-weights on value & delta
* Wrap the previous label/value when the percentage wraps
* Move component lifecycle method to top of component
* Update rows if the rows passed in via props have changed
This lets us bring in API changes, but will wipe out any sorting (revisit in a later PR, perhaps)
* Pass rows through to Table even if we don’t have rows loaded yet
Adds todo comment to remind that we should come back to add a placeholder/loading state