Workarea 3.0.0

Rename to Workarea

Workarea 3 renames the WebLinc software and its components to Workarea. The rename encompasses the core software and all plugins, including file and directory names, code constants, repository names, and gem names.

Dependencies

Elasticsearch

Ruby

Workarea 3 requires Rubyversion 2.3.x. You must update this dependency in all environments.

PhantomJS

Workarea 3 requires PhantomJSversion 2.x. You must update this dependency in all test environments. Workarea 2.3.0 allowed use of PhantomJS 2.x, but this version is now a hard requirement in Workarea version 3.

Extracted Plugins

Workarea v3 removes the following features.

Product sharing

Browsing by option (for example, a separate search result for each color of a product)

Content search results

Developer toolbar

Product quickview

The features above have been extracted to the plugins below. These plugins are maintained by the WebLinc Product Team.

Testing

First introduced in WebLinc 2.3, Minitest is the standard test framework in Workarea 3.0. Using Minitest allows applications to run Workarea platform tests without copying them into the application, and it allows applications to decorate tests like other Ruby classes.

Workarea version 3 provides the following commands to run tests within an application.

bin/rails workarea:test:core to run tests from workarea-core (with decorators)

bin/rails workarea:test:admin to run tests from workarea-admin (with decorators)

bin/rails workarea:test:storefront to run tests from workarea-storefront (with decorators)

bin/rails workarea:test to run tests from workarea-core, workarea-admin, and workarea-storefront (with decorators)

bin/rails workarea:test:decorated to run decorated tests only

Workarea 3 moves all feature and request tests from RSpec to Minitest (and renames them system and integration tests, respectively) and also moves a variety of other tests from RSpec to Minitest. Other tests remain in RSpec, however, these tests will be moved to Minitest in future minor releases.

Workarea 3 moves all RSpec dependencies into a separate Workarea RSpec engine. This engine will provide continued support for RSpec testing during and after the migration of platform tests from RSpec to Minitest.

Existing applications are not expected to migrate existing specs to Minitest. RSpec testing will continue to be supported indefinitely. However, new applications should write Minitest tests exclusively, in order to benefit from test decoration.

Search

Workarea 3 makes a variety of changes to search, including those in the following list. The Search guide explains the version 3 search APIs in greater detail.

The Elasticsearch::Persistence library is removed in favor of using the Elasticsearch Ruby API directly

Weblinc::Search::Repository and Weblinc::Search::Mapper are removed in favor of lighter abstractions

Elasticsearch::Document and Elasticsearch::Index provide abstractions that more closely mimic the ODM abstractions used for MongoDB

The Workarea::Search::Query module and the construction of Elasticsearch searches has been redesigned to leverage developers' knowledge of Ruby modules and code re-use

The list of indexes used is changed to reduce the number of Elasticsearch queries and to provide greater flexibility (for example, a single index is used to search for searches, products, categories, and pages in the storefront)

Elasticsearch mappings are stored as configuration in Workarea.config.elasticsearch_mappings

Personalized search is removed, and all search results pages are cached by URL

Learning search is simplified and leverages data stored for analytics

Shipping

Workarea v3 makes a variety of changes to shipping. Specifically, shipping rates are requested from an ActiveShipping carrier, and Workarea provides a default carrier that mimics the previous shipping implementation. This change allows for easier extension of shipping functionality.

The Shipping guide explains the version 3 shipping APIs in more detail.

Navigation

Workarea version 3 splits navigation into two separate concerns: taxonomy and navigation. Taxons, which compose the site's taxonomy, are used to organize Navigables and other nodes into a tree structure. This structure provides the hierarchy needed for secondary navigation such as breadcrumbs.

Meanwhile, the primary navigation is presented as a series of menus, each of which is contentable and releasable, allowing for more flexible visual designs and management.

The Navigation guide explains the APIs concerning taxonomy and navigation.

Content

Workarea version 3 iterates on CMS functionality, primarily to allow faster creation of custom content block types. Block types are stored in memory and are created using a DSL. Developers no longer need to implement the admin UI for each block type. A block type is composed of fields, which are organized into fieldsets. A field defines the type of UI control that should be used to collect data, the default value of the field, and how the collected data should be typecast.

Applications migrating to version 3 may want to copy this implementation.

Seed files live in the Rails app directory and are therefore required automatically and may be decorated like other Ruby classes. Furthermore, Workarea 3 stores the list of seeds to be run in the Workarea.config.seeds configuration to allow for easier extension.

CSS Grid System

This grid system has configurable settings, which are configured differently for the admin and storefront.

Admin UI

Workarea version 3 redesigns the Admin UI, providing improved performance, discoverability, and extensibility. Some of the specific changes are summarized in the following list.

Search is displayed more prominently and allows for searching by type of object (for example, searching for "products" allows direct navigation to the products index screen)

A sitemap-like primary navigation organizes the Admin into sections, each with their own dashboard and subsections

Hierarchical navigation is designed around the main heading of the page, with the link above the main heading going a level "up" the taxonomy, and links below the main heading going "down" a level deeper

Auxiliary navigation that sometimes appears in the top right navigates between pages that are related but in a different parts of the taxonomy, such as returning to a product from its related inventory

Redesigned index pages use a grid layout and allow selecting multiple products for bulk actions, such as edit and delete

Objects such as products and categories now have show pages that present an overview of everything that can be managed for that object, as well as decomposing the administration of that object into smaller, more manageable pieces

On show pages, cards bring forward comments and other features that were hidden behind context menus in previous versions

The timeline for an object combines its history and upcoming changes into a single chronological view

The current release is stored in session so that it "follows" the user through the Admin, while controls on most screens allow editing the current release before editing and before saving

Creation workflows provide step-by-step interfaces to create and publish objects such as products, categories, and discounts that require more than a simple form to create a functioning whole (for example, products need variants that need prices)

The content editing UI is redesigned, providing more context while editing, as well as improved previewing

More useful data is present on dashboards, and insights are also available for categories, products, people, and search to help retailers make decisions

Admin Toolbar

The admin toolbar that displays for administrators when browsing the Storefront is updated to match the Admin, providing the full Admin search and navigation directly within the Storefront. Administrators can navigate easily between Admin and Storefront views of the same object.

Internationalization

In addition to being redesigned, the Admin UI has been internationalized, allowing for translation into different and multiple locales. The Storefront and Admin UIs are now both internationalized.