Skip to content

Commit

Permalink
Add back support for Sprockets-based asset pipeline
Browse files Browse the repository at this point in the history
  • Loading branch information
mshibuya committed Nov 20, 2021
1 parent 08f8826 commit ee102ce
Show file tree
Hide file tree
Showing 6 changed files with 74 additions and 45 deletions.
17 changes: 11 additions & 6 deletions .github/workflows/test.yml
Expand Up @@ -12,18 +12,18 @@ jobs:
gemfile: [gemfiles/rails_6.1.gemfile]
orm: [active_record]
adapter: [sqlite3]
asset: [webpacker]
asset: [sprockets]
include:
- ruby: 2.5
gemfile: gemfiles/rails_6.0.gemfile
orm: active_record
adapter: sqlite3
asset: webpacker
asset: sprockets
- ruby: 3.0
gemfile: gemfiles/rails_6.1.gemfile
orm: active_record
adapter: mysql2
asset: webpacker
asset: sprockets
- ruby: 3.0
gemfile: gemfiles/rails_6.1.gemfile
orm: active_record
Expand All @@ -34,21 +34,26 @@ jobs:
orm: active_record
adapter: sqlite3
asset: webpacker
- ruby: 3.0
gemfile: gemfiles/rails_7.0.gemfile
orm: active_record
adapter: sqlite3
asset: sprockets
- ruby: 2.7
gemfile: gemfiles/rails_6.0.gemfile
orm: mongoid
adapter: sqlite3
asset: webpacker
asset: sprockets
- ruby: 3.0
gemfile: gemfiles/rails_6.1.gemfile
orm: mongoid
adapter: sqlite3
asset: webpacker
asset: sprockets
- ruby: jruby
gemfile: gemfiles/rails_6.1.gemfile
orm: mongoid
adapter: sqlite3
asset: webpacker
asset: sprockets
runs-on: ubuntu-latest
services:
mysql:
Expand Down
25 changes: 14 additions & 11 deletions app/assets/javascripts/rails_admin/rails_admin.js
@@ -1,18 +1,21 @@
//= require 'jquery3'
//= require 'rails-ujs'
//= require 'rails_admin/jquery-ui'
//= require 'rails_admin/moment-with-locales'
//= require 'rails_admin/bootstrap-datetimepicker'
//= require 'rails_admin/ra.filter-box'
//= require 'rails_admin/ra.filtering-multiselect'
//= require 'rails_admin/ra.filtering-select'
//= require 'rails_admin/ra.remote-form'
//= require 'rails_admin/jquery.pjax'
//= require 'jquery_nested_form'
//= require 'rails_admin/ra.nested-form-hooks'
//= require 'rails_admin/ra.i18n'
//= require 'jquery-ui/effect'
//= require 'jquery-ui/widgets/sortable'
//= require 'jquery-ui/widgets/autocomplete'
//= require 'rails_admin/moment-with-locales'
//= require 'rails_admin/bootstrap-datetimepicker'
//= require 'rails_admin/bootstrap/bootstrap'
//= require 'rails_admin/ra.widgets'
//= require 'rails_admin/ra.sidescroll'

//= require 'rails_admin/filter-box'
//= require 'rails_admin/filtering-multiselect'
//= require 'rails_admin/filtering-select'
//= require 'rails_admin/remote-form'
//= require 'rails_admin/nested-form-hooks'
//= require 'rails_admin/i18n'
//= require 'rails_admin/widgets'
//= require 'rails_admin/sidescroll'
//= require 'rails_admin/ui'
//= require 'rails_admin/custom/ui'
38 changes: 10 additions & 28 deletions app/assets/stylesheets/rails_admin/rails_admin.scss.erb
@@ -1,19 +1,3 @@
// Issue 1956 (https://github.com/railsadminteam/rails_admin/issues/1956)
//= depend_on_asset "rails_admin/bootstrap/glyphicons-halflings.png"
//= depend_on_asset "rails_admin/bootstrap/glyphicons-halflings-white.png"
//= depend_on_asset "rails_admin/aristo/images/bg_fallback.png"
//= depend_on_asset "rails_admin/aristo/images/ui-icons_222222_256x240.png"
//= depend_on_asset "rails_admin/aristo/images/ui-icons_454545_256x240.png"
//= depend_on_asset "rails_admin/aristo/images/icon_sprite.png"
//= depend_on_asset "rails_admin/aristo/images/slider_handles.png"
//= depend_on_asset "rails_admin/aristo/images/progress_bar.gif"
//= depend_on_asset "rails_admin/multiselect/icon_sprite.png"
//= depend_on_asset "rails_admin/multiselect/ui-icon-circle-triangle-n-light.png"
//= depend_on_asset "rails_admin/multiselect/ui-icon-circle-triangle-n-dark.png"
//= depend_on_asset "rails_admin/multiselect/ui-icon-circle-triangle-s-light.png"
//= depend_on_asset "rails_admin/multiselect/ui-icon-circle-triangle-s-dark.png"


@charset "UTF-8";

<%
Expand All @@ -24,25 +8,23 @@

@import "rails_admin/custom/variables";
@import "rails_admin/bootstrap/variables";
@import "rails_admin/base/variables";
@import "rails_admin/themes/<%= theme %>/variables";
@import "rails_admin/styles/base/variables";
@import "rails_admin/styles/themes/<%= theme %>/variables";

/*** Mixins ***/

@import "rails_admin/bootstrap/mixins";
@import "rails_admin/base/mixins";
@import "rails_admin/themes/<%= theme %>/mixins";
@import "rails_admin/styles/base/mixins";
@import "rails_admin/styles/themes/<%= theme %>/mixins";
@import "rails_admin/custom/mixins";

/*** Reset ***/
<%# @import "rails_admin/bootstrap/reset"; %>
/*** Libraries ***/

@import "rails_admin/aristo/jquery-ui-1.8.7.custom";
@import "rails_admin/bootstrap-datetimepicker-build";
@import "rails_admin/ra.filtering-multiselect";
@import "rails_admin/ra.widgets";
@import "rails_admin/ra.sidescroll";
@import "rails_admin/styles/filtering-select";
@import "rails_admin/styles/filtering-multiselect";
@import "rails_admin/styles/widgets";
@import "rails_admin/styles/sidescroll";


/*** Font-awesome ***/
Expand Down Expand Up @@ -87,8 +69,8 @@

/*** RailsAdmin Theming ***/

@import "rails_admin/base/theming";
@import "rails_admin/themes/<%= theme %>/theming";
@import "rails_admin/styles/base/theming";
@import "rails_admin/styles/themes/<%= theme %>/theming";
@import "rails_admin/custom/theming";


Expand Down
3 changes: 3 additions & 0 deletions lib/rails_admin/engine.rb
Expand Up @@ -18,6 +18,9 @@ class Engine < Rails::Engine
rails_admin/rails_admin.js
rails_admin/rails_admin.css
)
app.config.assets.paths << RailsAdmin::Engine.root.join('src')
require 'rails_admin/support/esmodule_preprocessor'
Sprockets.register_preprocessor 'application/javascript', RailsAdmin::ESModulePreprocessor
end
end

Expand Down
32 changes: 32 additions & 0 deletions lib/rails_admin/support/esmodule_preprocessor.rb
@@ -0,0 +1,32 @@
module RailsAdmin
class ESModulePreprocessor
def self.instance
@instance ||= new
end

def self.call(input)
instance.call(input)
end

def initialize; end

def call(input)
data = input[:data]

# only process files under rails_admin/src
if input[:filename].start_with? RailsAdmin::Engine.root.join('src').to_s
data.gsub!(/^(import .+)$/) { "// #{Regexp.last_match(1)}" }
data.gsub!(/^(export +default +{)$/) do
case File.basename(input[:filename])
when 'i18n.js'
"/* #{Regexp.last_match(1)} */ window.I18n = {"
else
raise "Unable to preprocess file: #{input[:filename]}"
end
end
end

{data: data}
end
end
end
4 changes: 4 additions & 0 deletions src/rails_admin/styles/filtering-select.scss
Expand Up @@ -64,3 +64,7 @@
border-radius: 0;
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3);
}

.ui-helper-hidden-accessible {
display: none;
}

0 comments on commit ee102ce

Please sign in to comment.