README.md in solidus_admin-0.2.0 vs README.md in solidus_admin-0.3.0

- old
+ new

@@ -1,28 +1,82 @@ -# solidus_admin (WIP) +# Solidus Admin A Rails engine that provides an administrative interface to the Solidus ecommerce platform. +## Overview + +- Based on ViewComponent and TailwindCSS +- Uses StimulusJS and Turbo for interactivity +- Works as a separate engine with its own routes +- Uses the same models as the main Solidus engine +- Has its own set of controllers + +## Installation + +`solidus_admin` is included by default in new stores generated with Solidus 4.3 or later, as well as those generated from the main branch. + +`solidus_admin` can be added to existing stores by bundling it in the Gemfile and running the installer generator: + +```bash +bundle add solidus_admin +bin/rails g solidus_admin:install +``` + +If you're using an authentication system other than `solidus_auth_devise` you'll need to manually configure authentication methods (see api documentation for `SolidusAdmin::Configuration`). + +If you encounter the error `couldn't find file 'solidus_admin/tailwind.css'` when loading admin pages, you need to manually build the `solidus_admin` tailwind CSS styles. +This issue typically occurs when you bundle Solidus from a GitHub branch or from the local filesystem, or with the sandbox application. +Please see [Customizing tailwind](docs/tailwindcss.md) for more information. + +### Components + +See [docs/contributing/components.md](docs/components.md) for more information about components. + +### Using it alongside `solidus_backend` + +`solidus_backend` is the current admin interface for Solidus. `SolidusAdmin` is under development, acts as a drop-in replacement for `solidus_backend` and will eventually replace it. It's designed to gradually take over existing functions. + +For now, you can use both `solidus_backend` and `SolidusAdmin` in the same application. To do this, mount the `SolidusAdmin` engine before `Spree::Core::Engine`. + +You can use a route `constraint` to replace any `solidus_backend` routes with `SolidusAdmin` routes. + +By default, `SolidusAdmin` routes are turned off if a cookie named `solidus_admin` is set to `false`, or if a query parameter named `solidus_admin` is set to `false`. This lets you switch between the two admin interfaces easily. + +This constraint is set up in the application's routes file, so you can easily change it: + +```ruby +# config/routes.rb +mount SolidusAdmin::Engine, at: '/admin', constraints: ->(req) { + $redis.get('solidus_admin') == 'true' # or any other logic +} +``` + +### Authentication & Authorization + +- Solidus Amidn delegates authentication to `solidus_backend` and relies on `solidus_core` for authorization. + ## Development -- [Customizing tailwind](docs/customizing_tailwind.md) -- [Customizing view components](docs/customizing_view_components.md) -- [Customizing the main navigation](docs/customizing_menu_items.md) +- [Customizing tailwind](docs/tailwindcss.md) +- [Customizing view components](docs/customizing_components.md) +- [Customizing the main navigation](docs/menu_items.md) ### Adding components to Solidus Admin -When using the component generator from within the admin folder it will generate the component in the library -instead of the sandbox application. +Solidus Admin components can be generated with the `solidus_admin:component`generator: ```bash # the `solidus_admin/` namespace is added by default bin/rails admin g solidus_admin:component foo create app/components/solidus_admin/foo/component.rb create app/components/solidus_admin/foo/component.html.erb create app/components/solidus_admin/foo/component.yml create app/components/solidus_admin/foo/component.js create spec/components/solidus_admin/foo/component_spec.rb ``` + +Please note that when using the component generator from within the admin folder it will generate the component in the library +instead of the sandbox application. ## Releasing 1. Update the version in `lib/solidus_admin/version.rb` 2. Commit the changes with the message `Release solidus_admin/v1.2.3`