No description
Find a file
Michał Droń 6cf148c4c3
Fulfillment creation refactor (#1896)
* Create change warehouse dialog (#1850)

* Add allocations & variant stocks to order details query

* Add asc sorting to warehouse search query

* Add OrderChangeWarehouseDialog component

* Add key to warehouse list in dialog

* Update snapshots

* Remove debug directive

* Remove IDs from messages

* Fix typo in method name & extract messages

* Add quantity to allocations in order details query

* Add types to functions

* Move functions to local utils file

* Add utility type WithOptional

* Fix warehouse types

* Change multiple items unavailable message name

* Fix fetching onScroll

* Fix types in utils

* Add backdrop click support

* Add id to stocks and allocations

* Change unavailableLines from .map to .filter

Co-authored-by: Wojciech Mista <wojciech.mista@hotmail.com>

* Fix linter issue

Co-authored-by: Wojciech Mista <wojciech.mista@hotmail.com>

* Refactor order cards headers (#1875)

* Add keys to TableLines

* Bump macaw

* Move & rename CardTitle used in Cards with order lines

* Improve OrderCardTitle typography

* Replace StatusLabels with CircleIndicators

* Fix card title divs placement

* Add warehouse selection button to OrderUnfulfilledCard

* Fix fulfill button placement

* Update snapshots

* Make warehouse in order details view optional so that it works with uncofirmed orders

* Fix undefined lines in warehouse dialog

* Fix spacing in warehouse change button

* Fix macaw dependency

* Bump macaw-ui

* Extract messages

* Implement default warehouse selection logic

* Move CircleIndicator render condition to wrapper

* Fix failing reduce on orders with no lines

* Improve warehousesAvailable early return

* Drop counter in favor of filter().length

* Fix tests post-rebase

* Refactor fulfillment details page (#1915)

* Add shipment information card

* Refactor multiple warehouse fulfilling to one warehouse

* Fix fulfill button navigation

* Remove redundant code from OrderFulfill view

* Fix OrderFulfill story

* Move styling to seperate file & remove unused classes

* Replace colQuantityTotal class with colStock

* Add warehouse label under page header

* Fix preorder cases

* Change default values to maximum

* Simplify logic

* Add badge for preorder & deleted variant cases

* Remove unused data

* Add yellow outline for exceeding stock

* Fix failing tests

* Extract messages

* Fix tests post-rebase

* Add support for tracking number

* Block fulfilling no items

* Fix deleted variant order details bug

* Fix preorder & deleted variant cases

* Update snapshots

* Remove redundant import

* Fix linter issue

* Extract fulfillment lines as separate component

* Fix types

* Export styles & messages to seperate files

* Simplify formset changes

* Fix warning input styling

* Fix shouldEnableSave for overfulfillment cases

* Simplify preorder rendering

* Move empty line rendering

* Change Warehouse prop to just id of it

* Add endAdornment for deleted variant cases

* Update snapshots

* Fix linter issue

* Extract messages

* Fix incorrect operator precedence resulting in NaN values

* Extract fulfillment lines to fragment

* Replace nested types with fragment type

* Match fragment names

* Update snapshots

* Create exceeding stock confirmation dialog (#1970)

* Cherry-pick OrderFulfillStockExceededDialog

* Fix types to graphql-codegen

* Unify names in OrderFulfillStockExceededDialogLines

* Fix types in OrderFulfillStockExceededDialogLines

* Fix types in util

* Change utils for usage with single warehouse context

* Refactor OrderFulfillStockExceededDialogLine for usage with single warehouse context

* Fix deleted variant cases in OrderFulfillStockExceededDialogLine

* Include only exceeded lines

* Display stock exceeded dialog on error

* Add confirm button state

* Change fixed height in OrderFulfillStockExceededDialog to responsive

* Extract messages

* Move initial form data after interfaces

* Change nested type to fragment

* Reuse logic

* Remove unused import

* Remove redundant isStockError

* Remove unused imports

* Fix minor bugs in fulfillment creation refactor (#1972)

* Fix unfulfilled card header quantity calculation

* Fix formset default value for deleted variants

* Update snapshots

* Fix default warehouse selection in order draft (#1971)

* Fix default warehouse selection

* Replace Skeleton with circular progress

* Reuse logic

* Reuse logic

* Apply CR fixes

* Remove unused imports

* Fix canceled order header status

* Update snapshots

* Revert CircularProgress & change to Skeleton

* Change complex types to fragments

* Extract default warehouse logic to hook

* Fix linter issue

* Remove type assertion from OrderFulfillPage story

* Handle exceeding stock fulfillment approvals (#1988)

* wip Add OrderFulfillStockExceeded modal for fulfillment approvals

* wip Fix types & imports

* wip Fix union typing in stock exceeded dialog for both views

* Add allowStockToBeExceeded flag on submit

* Fix lines keys in FulfilledCard

* Remove redundant import

* Extract attributes caption function

* Use getById util

* Fix deleted warehouse cases in approvals

* Fix typo

* Fix styling for long warehouse names (#2019)

* Fix styling in change warehouse dialog

* Fix styling in warehouse selection button

* Add extra margin in button

* Update snapshots

Co-authored-by: Wojciech Mista <wojciech.mista@hotmail.com>
2022-04-29 11:16:58 +02:00
.circleci Bump node version 2020-06-08 17:00:39 +02:00
.github Add input for cypress workflow (#2023) 2022-04-28 11:42:50 +02:00
.tx Update translations (#1965) 2022-04-05 09:33:48 +02:00
assets Bump macaw to 0.3 (#1807) 2022-01-28 13:34:20 +01:00
cypress exluded test cases before those can be fixed ad part of the SALEOR-6… (#2025) 2022-04-29 10:21:53 +02:00
lint/rules Add rule fixer 2019-12-03 16:23:42 +01:00
locale Fulfillment creation refactor (#1896) 2022-04-29 11:16:58 +02:00
nginx fixing 404 2019-11-04 02:21:48 +07:00
recordings/User_3768991250 Don't fetch user details on login (#1909) 2022-03-23 08:15:05 +01:00
scripts Add build-schema tool (#1947) 2022-03-29 10:39:33 +02:00
src Fulfillment creation refactor (#1896) 2022-04-29 11:16:58 +02:00
testUtils Update apollo to v3 (#1837) 2022-02-21 14:32:38 +01:00
.codeclimate.yml Initial commit 2019-06-19 16:40:52 +02:00
.dockerignore add .dockerignore and fixing nginx conf for local deploy 2019-10-31 14:31:13 +07:00
.eslintrc.json Use graphql-codegen (#1874) 2022-03-09 09:56:55 +01:00
.gitignore Add reports to tests (#1898) 2022-03-03 11:25:27 +01:00
.npmrc Initial commit 2019-06-19 16:40:52 +02:00
.prettierignore Use graphql-codegen (#1874) 2022-03-09 09:56:55 +01:00
.prettierrc Add prettierrc config 2020-07-03 15:17:36 +02:00
.release-it.json Add release-it script (#1034) 2021-03-30 14:37:12 +02:00
_redirects Enable Netlify redirects 2019-11-14 13:01:45 +01:00
apollo.config.js Update apollo config 2019-08-21 15:26:24 +02:00
app.json Configure Heroku integration 2019-09-22 14:30:10 +02:00
babel.config.js Bump macaw to 0.3 (#1807) 2022-01-28 13:34:20 +01:00
CHANGELOG.md Disable query batching (#1922) 2022-03-17 16:00:17 +01:00
codegen.yml Use graphql-codegen (#1874) 2022-03-09 09:56:55 +01:00
cypress.json Cypress configuration (#1973) 2022-04-05 11:11:05 +02:00
Dockerfile Define node requirements, ts cleanup (#1008) 2021-03-19 13:06:17 +01:00
Dockerfile.dev Define node requirements, ts cleanup (#1008) 2021-03-19 13:06:17 +01:00
eslint-local-rules.js Add local eslint rule to enforce naming styles 2019-12-03 16:09:57 +01:00
fetch-schema.yml Use graphql-codegen (#1874) 2022-03-09 09:56:55 +01:00
introspection.json Allow all attributes to appear in grid in PLP (#1933) 2022-04-28 10:43:05 +02:00
LICENSE Update LICENSE 2021-06-28 15:57:24 +02:00
lighthouserc.json Add circleci config and enhance our linters (#519) 2020-05-14 11:30:32 +02:00
lws.config.js merge changes 2021-02-11 15:17:00 +01:00
package-lock.json Allow all attributes to appear in grid in PLP (#1933) 2022-04-28 10:43:05 +02:00
package.json fix shipping method (#2014) 2022-04-28 10:56:56 +02:00
react-intl.d.ts Attach permission variables to all queries (#1000) 2021-03-09 09:44:09 +01:00
README.md Update organization name (#1484) 2021-10-11 09:53:22 +03:00
schema.graphql Allow all attributes to appear in grid in PLP (#1933) 2022-04-28 10:43:05 +02:00
static.json Configure Heroku integration 2019-09-22 14:30:10 +02:00
tsconfig.json Saleor 4437 refactor tests (#1389) 2021-09-27 12:04:21 +02:00
webpack.config.js App adjustments (#1385) 2021-09-13 16:14:04 +02:00
webpack.d.ts Add PasswordCredential type (#868) 2020-11-30 11:26:51 +01:00

Saleor Dashboard

Saleor Dashboard

A GraphQL-powered, single-page dashboard application for Saleor.

Demo

See the public demo of Saleor Dashboard!

Or launch the demo on a free Heroku instance.

Deploy

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

  • Node.js v14+
  • A running instance of Saleor.

Installing

Clone the repository:

$ git clone https://github.com/saleor/saleor-dashboard.git

Enter the project directory:

$ cd saleor-dashboard

Using stable release

To use the official stable release, checkout to a release tag:

$ git checkout 2.11.1

See the list of all releases here: https://github.com/saleor/saleor-dashboard/releases/

Using development version

If you want to use the latest development version, checkout to the main branch:

$ git checkout main

Install NPM dependencies:

$ npm i

Configuration

There following environment variables are available for configuration:

  • API_URI (required) - URI of a running instance of Saleor GraphQL API. If you are running Saleor locally with the default settings, set API_URI to: http://localhost:8000/graphql/.

  • APP_MOUNT_URI - URI at which the Dashboard app will be mounted. E.g. if you set APP_MOUNT_URI to /dashboard/, your app will be mounted at http://localhost:9000/dashboard/.

  • STATIC_URL - URL where the static files are located. E.g. if you use S3 bucket, you should set it to the bucket's URL. By default Saleor assumes you serve static files from the root of your site at http://localhost:9000/.

Development

To start the development server run:

$ npm start

Production

To build the application bundle run:

$ npm run build

Error Tracking

Saleor Dashboard is using a generic error tracking wrapper function that takes care of the most popular use cases:

  • initializing the tracker
  • capturing exceptions and (optionally) displaying the event id
  • setting basic user data (this is opt-in and disabled by default)

By default it ships with a Sentry adapter but any kind of error tracking software can be used by creating a custom adapter (using Sentry and TS types as an example).

Example:

// src/services/errorTracking/index.ts

import { CustomAdapter } from "./adapters/";

const errorTracker = ErrorTrackerFactory(CustomAdapter(config));
Usage with Sentry adapter:

Sentry is used as the default tracker so no changes in code are necessary and the configuration is done via environment variables.

The following environment variables are available:

# Required
SENTRY_DSN=

# Optional
# https://docs.sentry.io/product/cli/configuration/
SENTRY_AUTH_TOKEN=
SENTRY_ORG=
SENTRY_PROJECT=
SENTRY_URL_PREFIX=
ENVIRONMENT=

Crafted with ❤️ by Saleor Commerce