Commit Graph

48 Commits

Author SHA1 Message Date
Jeff Stieler 9469663379 Decouple date package from `wcSettings`. (https://github.com/woocommerce/woocommerce-admin/pull/3278)
* Decouple date package from wcSettings.

* Update missed documentation and example.

* Expect simpler prop values for date filter.

* Remove unused props from primary/secondary dates.

* Avoid introducing moment dependency for type checking.

* Handle null moment/date values in DateRangeFilterPicker.

* Fix missing ISO date format.

* Fix moment instance detection.
2019-11-26 14:39:40 -05:00
David Levin 52cb35f4de Correcting and clarifying analytics terms and calculations (https://github.com/woocommerce/woocommerce-admin/pull/3104)
* Relabel Net Revenue to Net Sales, revert previous refund work on Gross revenue and rename to total sales. Update the orer of all the things

* Add gross sales calculation to revenue stats endpoint.

* Restore coupon_total when updating order stats.

* Wire up gross sales to revenue report.

* Fix revenue report refunds calculation when there are no refunds.

* update net sales labels and cases in order, product and category tables

* Subtract refunded shipping and taxes from gross sales.

* pluses to minuses to fix the gross revenue and refund totals when refunding

* Add gross_sales to revenue stats orderby enum.

* Change refund labels to Returns

* Remove usage of defunct coupon_total column.

* Store refunded amount in stats table.

* Rename "gross_total" column to "total_sales".

* Net total for refund orders can be used instead of a new column.

* Rename gross_revenue to total_sales.

* Coalesce coupons total in order stats query.

SUM()ing all nulls gives null, not zero.

* Use segmentation selections to backfill missing data.

Fo when report columns and segmentation columns don't match.

* Remove errant gross_sales from expected interval test data.

* Fix gross sales tests for revenue/stats.

* Move missing segment fills back to their original locations.

* Fix remaining tests failing because of gross sales.

* Fix db upgrade function rename of gross_total column.

* Fix linter errors.
2019-11-22 10:06:14 -05:00
Jeff Stieler 17514872ad Decouple currency and numbers packages from `wcSettings`. (https://github.com/woocommerce/woocommerce-admin/pull/3277)
* Remove wcSettings dependency from currency and number packages.

Either take a configuration object in function calls or in a new class constructor.

* Use new Currency class and number format methods in client/.

Compose with store settings to keep the same API.

* Don't reintroduce lodash dependency to currency package.

* Add changelog entries to currency and number packages.

* Update docs, example, and changelog for AdvancedFilters component.

* Use precision-less formatValue() for integer report values.

* Make Currency instance immutable.
2019-11-21 16:51:52 -05:00
Jeff Stieler 1ac8577fc2 Match server-side CSV export format to client-side (https://github.com/woocommerce/woocommerce-admin/pull/2987)
* Add "exportable" report interface for defining CSV export values.

* Define export values for Orders Report.

* Define export values for Products Report.

* Define export values for Categories Report.

* Define export values for Coupons Report.

* Allow commas and double quotes in CSV exported values.

* Fix in-browser export formatting of orders report products.

* Align server-side orders report export formatting with in-browser.

* Cover comma and double quote escaping in CSV export package tests.

* Define export values for Customers Report.

* Embed response links when requesting data for CSV exports.

* Define export values for Downloads Report.

* Move reusable report export functions to a trait.

* Define export values for Stock Report.

* Define export values for Taxes Report.

* Define export values for Variations Report.

* Define export values for Revenue Report.

* Always pass export row data through the filter.

* Fix formatting in test case for CSV coupon export.

* Quote escape CSV headers in client-side export.

Escape values with spaces as well.

* Check if inventory is managed at the product level before using the stock status/quantity.

* Prevent CSV injection in csv-export package.
2019-10-24 09:41:16 -07:00
Darren Ethier fee65dd6ac Decouple wcSettings from published packages. (https://github.com/woocommerce/woocommerce-admin/pull/3001)
* refactor wcSettings in components to use new api

* update test snapshot

* refactor wcSettings in other packages

* fix how defaults are set for setting

* decouple siteLocale from ReportsFilters and AdvancedFilters

* Decouple currency settings from packages

AdvancedFilters, ReportFilters, and NumberFilters now receive currency info as props.

* decouple currency settings from `ReportChart`

* decouple `wcAdminAssetsUrl` setting from `EmptyContent`

- also refactors to remove the need for `ImageAsset` component.

* decouple OrderStatus from wcSettings

* decouple wcAdminUrl setting from ProductImage component

- this also implements a SVG for default product image.

* remove export for image-asset that is no longer present

* remove console.log

* update test snapshots for ProductImage
2019-10-11 11:45:45 -04:00
Connor Jennings d44af04add Update client/analytics/report/orders/table.js
Co-Authored-By: Joshua T Flowers <joshuatf@gmail.com>
2019-08-20 09:15:55 -04:00
Connor Jennings 68a8012f57 CSV download of Orders now shows coupons in Coupon(s) column 2019-08-19 12:45:57 -04:00
Joshua T Flowers c87ab4eed7 Update how refunds are displayed in tables (https://github.com/woocommerce/woocommerce-admin/pull/2102)
* 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
2019-05-16 13:04:37 +08:00
Joshua T Flowers 42ddfc0108 Add coupons count to data store and hook up to summary numbers in orders report (https://github.com/woocommerce/woocommerce-admin/pull/1912)
* 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
2019-04-01 10:16:57 +08:00
Paul Sealock b29b232a46 pass in filters 2019-03-25 13:03:53 +13:00
Paul Sealock 6d5484aa87 Fix table links to internal reports 2019-03-19 14:27:31 +13:00
Jeff Stieler bfe5a75e98 Update text domain. (https://github.com/woocommerce/woocommerce-admin/pull/1795)
* 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".
2019-03-13 11:14:02 -06:00
Joshua T Flowers 27acab72b8 Define extended_info in case query is filtered (https://github.com/woocommerce/woocommerce-admin/pull/1728) 2019-03-05 10:56:47 +08:00
Justin Shreve fce16ade7a Display order number on reports (https://github.com/woocommerce/woocommerce-admin/pull/1706)
* 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.
2019-02-28 09:14:21 -05:00
Albert Juhé Lluveras b61dff32f9 Sort tabular data when selecting a Summary Number (https://github.com/woocommerce/woocommerce-admin/pull/1564)
* Sort tabular data when selecting a Summary Number

* Fix 'orderby' param in orders endpoint
2019-02-15 11:54:41 +01:00
Albert Juhé Lluveras 84ef5ffb89 Show empty table when search returns no results (https://github.com/woocommerce/woocommerce-admin/pull/1452)
* 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
2019-02-05 13:00:37 +01:00
Timmy Crawford 10c6016d4c Update usage of lib/number to @woocommerce/number (https://github.com/woocommerce/woocommerce-admin/pull/1400)
* 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.
2019-01-29 08:48:46 -08:00
Paul Sealock 35b3579632 Orders Report: Point table links to wc-admin reports with persisted query 2019-01-22 11:32:33 +13:00
Joshua T Flowers 7cdbbf87e8 Update all wc-admin endpoints to v4 (https://github.com/woocommerce/woocommerce-admin/pull/1298)
* 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>
2019-01-18 10:52:58 +08:00
Jeff Stieler 4407e05bc4 Merge pull request woocommerce/woocommerce-admin#1342 from woocommerce/fix/1090-currency-settings-formatting
Honor WooCommerce Settings When Formatting Currency/Price
2019-01-17 17:06:13 -07:00
Albert Juhé Lluveras 059cd0ef0d Set default order to 'desc' in time tables (https://github.com/woocommerce/woocommerce-admin/pull/1341) 2019-01-17 22:14:12 +01:00
Jeff Stieler 6ed8ea117a Refactor formatCurrency() to use store settings for formatting rather than store locale. 2019-01-17 00:04:57 -07:00
Albert Juhé Lluveras f009506a45 Makes table dates accessible (https://github.com/woocommerce/woocommerce-admin/pull/1274)
* Create 'Date' component to render accessible dates

* Add tests
2019-01-14 10:54:44 +01:00
Joshua T Flowers 80fe765657 Use a date instead of hour for single dates in report tables (https://github.com/woocommerce/woocommerce-admin/pull/1208)
* 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
2019-01-09 08:24:49 +08:00
Albert Juhé Lluveras 03adb993c9 Use <Link> instead of <a> for Orders table link 2018-12-18 10:44:43 +01:00
Albert Juhé Lluveras 501842a421 Rename 'isError' methods to 'getError' when they return an object instead of a boolean 2018-12-15 13:38:54 +01:00
Albert Juhé Lluveras f9533afdda Rename 'totalCount' to 'totalResults' (https://github.com/woocommerce/woocommerce-admin/pull/1093) 2018-12-14 15:56:52 -08:00
Kevin Killingsworth a7aed85244 Add column visibility prefs to all tables (https://github.com/woocommerce/woocommerce-admin/pull/1082)
* 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.
2018-12-13 14:34:23 -06:00
Albert Juhé Lluveras 96d930b119 Fix Orders table summary display 'order' in singular when it should be plural (https://github.com/woocommerce/woocommerce-admin/pull/1003) 2018-12-05 15:54:52 -06:00
Joshua T Flowers 9e1cb88dfa Add filters for order tables column headers/rows (https://github.com/woocommerce/woocommerce-admin/pull/781)
* Add filters for order tables column headers/rows

* Move filters inside rows

* Rename filter constants

* Apply filters directly to rows

* Rename Orders table filter to be more consistent with core

* Filter entire reports table
2018-12-05 09:44:32 +08:00
Albert Juhé Lluveras bda7d0a6ee Use ReportTable in Orders report (https://github.com/woocommerce/woocommerce-admin/pull/968)
* 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
2018-12-02 21:40:57 -06:00
Albert Juhé Lluveras 293d58615d Add screen reader labels to table headers (https://github.com/woocommerce/woocommerce-admin/pull/964)
* Add screen reader labels to tables

* Add missing propType
2018-11-30 14:44:02 -06:00
Kevin Killingsworth 847131c6c9 Add wc-api and "Fresh Data" (https://github.com/woocommerce/woocommerce-admin/pull/833)
* 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
2018-11-29 09:57:49 -06:00
Albert Juhé Lluveras 0acc43a551 Use numberFormat() to format all non-currency numbers in tables (https://github.com/woocommerce/woocommerce-admin/pull/913) 2018-11-25 21:31:38 -06:00
Albert Juhé Lluveras cc86233e0f Add Coupons report table (https://github.com/woocommerce/woocommerce-admin/pull/867)
* Add Coupons report table

* Fix propTypes warning in CouponsReportTable

* Remove unnecessary constructors from tables
2018-11-15 21:35:10 -06:00
Kelly Dwan d27cb26ef7 Build: Move `lib/nav-utils` and `lib/history` to `@woocommerce/navigation` (https://github.com/woocommerce/woocommerce-admin/pull/763)
* 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
2018-11-05 16:02:04 -05:00
Joshua T Flowers 0f45a08f20 Update order summary in Orders report (https://github.com/woocommerce/woocommerce-admin/pull/613)
* 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
2018-10-31 14:09:38 -05:00
Kelly Dwan f62537fc17 Try: Add Lerna to split out utility packages (https://github.com/woocommerce/woocommerce-admin/pull/678)
* 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
2018-10-30 14:57:48 -04:00
Albert Juhé Lluveras 2b3446540c Move withSelect() inside table components (https://github.com/woocommerce/woocommerce-admin/pull/707)
* 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
2018-10-29 08:57:05 +01:00
Albert Juhé Lluveras 0caed9a28a Create QUERY_DEFAULTS object with default values for queries (https://github.com/woocommerce/woocommerce-admin/pull/686) 2018-10-26 10:19:39 +02:00
Albert Juhé Lluveras 29f68a9ce8 Products table (https://github.com/woocommerce/woocommerce-admin/pull/619)
* 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
2018-10-24 09:50:05 +02:00
Albert Juhé Lluveras 7be34b3f37 Move Download table logic inside the TableCard component (https://github.com/woocommerce/woocommerce-admin/pull/652)
* Move Download table logic inside the TableCard component

* Make title lowercase inside generateCSVFileName

* Update JSDoc comment
2018-10-24 09:48:20 +02:00
Albert Juhé Lluveras 7979dbc474 Make Orders placeholder table have the correct sorted column (https://github.com/woocommerce/woocommerce-admin/pull/620)
* Make Orders placeholder table have the correct sorted column

* Fix wrong CSV filename
2018-10-23 09:49:04 +02:00
Timmy Crawford d64fda9c54 Orders Report: Fix key prop warning. (https://github.com/woocommerce/woocommerce-admin/pull/580) 2018-10-18 13:45:59 -07:00
Albert Juhé Lluveras 8cf34964e5 Align status indicator to the right in Orders table (https://github.com/woocommerce/woocommerce-admin/pull/539)
* Align status indicator to the right in Orders table

* Align 'Order' column to the right in Orders table
2018-10-18 12:43:45 +02:00
Albert Juhé Lluveras ae6652b26c Send params with Orders table API calls (https://github.com/woocommerce/woocommerce-admin/pull/519)
* 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
2018-10-16 10:50:07 +02:00
Albert Juhé Lluveras 17e9f151be Create ViewMoreList component (https://github.com/woocommerce/woocommerce-admin/pull/503)
* 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
2018-10-12 23:29:25 +02:00
Albert Juhé Lluveras 9623898acd Add Orders table (https://github.com/woocommerce/woocommerce-admin/pull/493)
* 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
2018-10-11 10:30:51 +02:00