diff --git a/app/javascript/packs/internal.js b/app/javascript/packs/admin.js similarity index 71% rename from app/javascript/packs/internal.js rename to app/javascript/packs/admin.js index 7e0d05b09..89d6583f8 100644 --- a/app/javascript/packs/internal.js +++ b/app/javascript/packs/admin.js @@ -1,6 +1,9 @@ import { Application } from 'stimulus'; import { definitionsFromContext } from 'stimulus/webpack-helpers'; +// This loads all the Stimulus controllers at the same time for the admin +// section of the application. + const application = Application.start(); const context = require.context('admin/controllers', true, /.js$/); application.load(definitionsFromContext(context)); diff --git a/app/views/layouts/admin.html.erb b/app/views/layouts/admin.html.erb index d2547f161..31bc6c5f4 100644 --- a/app/views/layouts/admin.html.erb +++ b/app/views/layouts/admin.html.erb @@ -12,7 +12,7 @@ <%= controller_name.titleize %> - <%= javascript_packs_with_chunks_tag "internal", defer: true %> + <%= javascript_packs_with_chunks_tag "admin", defer: true %> diff --git a/docs/admin/admin-user-interface.md b/docs/admin/admin-user-interface.md index 0fc8afcf8..c4b11adab 100644 --- a/docs/admin/admin-user-interface.md +++ b/docs/admin/admin-user-interface.md @@ -33,8 +33,10 @@ Stimulus is a modest frontend framework; its primary purpose is manipulating HTML. It does not provide templating features. In the Forem application, [Webpacker](/frontend/webpacker/) is used to load -Stimulus controllers. Ideally, controllers serve as an abstraction for shared -functionality between views. +Stimulus controllers via the `app/javascript/packs/admin.js` +[pack file](https://github.com/rails/webpacker/blob/master/docs/folder-structure.md#packs-aka-webpack-entries). +Ideally, controllers serve as an abstraction for shared functionality between +views. New controllers can be added in `/app/javascript/admin/controllers`. Unit tests should exist for each controller in the adjacent