about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNaouak <tardiel@gmail.com>2017-04-15 22:47:48 +0200
committerEugen <eugen@zeonfederated.com>2017-04-15 22:47:48 +0200
commit3d3e32befb369f8c6a9f3ac1ee48bce3d266f4b8 (patch)
tree8c0e2cee6e27904802ef764b190a5f0e7db7e49f
parentfa08b5079d7f85c098ee9c6a0dd73bde0a20989f (diff)
Check for a custom css file to help customization of instances (#1368)
* User can create a custom.scss to customize their instance without modifying gitted files.

* Add documentation for customization.

* Forgot the helper file

* Fix Style to pass codeclimate

* Requests from maintainer.
-rwxr-xr-x[-rw-r--r--]app/assets/stylesheets/variables.scss16
-rwxr-xr-xapp/helpers/style_helper.rb19
-rwxr-xr-x[-rw-r--r--]app/views/layouts/application.html.haml2
-rwxr-xr-x[-rw-r--r--]config/initializers/assets.rb3
4 files changed, 30 insertions, 10 deletions
diff --git a/app/assets/stylesheets/variables.scss b/app/assets/stylesheets/variables.scss
index cdf81c818..0dded90b0 100644..100755
--- a/app/assets/stylesheets/variables.scss
+++ b/app/assets/stylesheets/variables.scss
@@ -1,8 +1,8 @@
-$color1: #282c37; // darkest
-$color2: #d9e1e8; // lightest
-$color3: #9baec8; // lighter
-$color4: #2b90d9; // vibrant
-$color5: #ffffff; // white
-$color6: #df405a; // error red
-$color7: #79bd9a; // succ green
-$color8: #000000; // black
+$color1: #282c37 !default; // darkest
+$color2: #d9e1e8 !default; // lightest
+$color3: #9baec8 !default; // lighter
+$color4: #2b90d9 !default; // vibrant
+$color5: #ffffff !default; // white
+$color6: #df405a !default; // error red
+$color7: #79bd9a !default; // succ green
+$color8: #000000 !default; // black
diff --git a/app/helpers/style_helper.rb b/app/helpers/style_helper.rb
new file mode 100755
index 000000000..774407b7f
--- /dev/null
+++ b/app/helpers/style_helper.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+module StyleHelper
+  def stylesheet_for_layout
+    if asset_exist? 'custom.css'
+      'custom'
+    else
+      'application'
+    end
+  end
+
+  def asset_exist?(path)
+    if Rails.configuration.assets.compile
+      Rails.application.precompiled_assets.include? path
+    else
+      Rails.application.assets_manifest.assets[path].present?
+    end
+  end
+end
diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml
index e8253bd6f..a27c3de95 100644..100755
--- a/app/views/layouts/application.html.haml
+++ b/app/views/layouts/application.html.haml
@@ -17,7 +17,7 @@
         = ' - '
       = site_title
 
-    = stylesheet_link_tag 'application', media: 'all'
+    = stylesheet_link_tag stylesheet_for_layout, media: 'all'
     = csrf_meta_tags
 
     = yield :header_tags
diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb
index 43f7860cb..e6bd8a015 100644..100755
--- a/config/initializers/assets.rb
+++ b/config/initializers/assets.rb
@@ -8,5 +8,6 @@ Rails.application.config.assets.version = '1.0'
 
 # Precompile additional assets.
 # application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
-Rails.application.config.assets.precompile += %w(application_public.js)
+Rails.application.config.assets.precompile += %w(application_public.js custom.css)
+
 Rails.application.config.assets.initialize_on_precompile = true