geoblacklight_admin 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +27 -3
  3. data/Rakefile +30 -12
  4. data/app/assets/javascripts/geoblacklight_admin.js +1 -0
  5. data/app/assets/stylesheets/geoblacklight_admin/_core.scss +5 -0
  6. data/app/assets/stylesheets/geoblacklight_admin/modules/_chosen.scss +425 -0
  7. data/app/controllers/admin/admin_controller.rb +4 -2
  8. data/app/controllers/admin/advanced_search_controller.rb +123 -103
  9. data/app/controllers/admin/api_controller.rb +123 -108
  10. data/app/controllers/admin/bookmarks_controller.rb +4 -4
  11. data/app/controllers/admin/bulk_actions_controller.rb +9 -4
  12. data/app/controllers/admin/concerns/upload_util.rb +2 -0
  13. data/app/controllers/admin/document_accesses_controller.rb +10 -4
  14. data/app/controllers/admin/document_assets_controller.rb +14 -11
  15. data/app/controllers/admin/document_downloads_controller.rb +12 -10
  16. data/app/controllers/admin/documents_controller.rb +16 -8
  17. data/app/controllers/admin/elements_controller.rb +6 -5
  18. data/app/controllers/admin/form_elements_controller.rb +4 -4
  19. data/app/controllers/admin/ids_controller.rb +107 -87
  20. data/app/controllers/admin/import_documents_controller.rb +1 -1
  21. data/app/controllers/admin/imports_controller.rb +7 -3
  22. data/app/controllers/admin/mappings_controller.rb +6 -4
  23. data/app/controllers/admin/notifications_controller.rb +1 -1
  24. data/app/controllers/admin/search_controller.rb +1 -1
  25. data/app/controllers/admin/users_controller.rb +1 -1
  26. data/app/helpers/form_input_helper.rb +4 -4
  27. data/app/helpers/geoblacklight_admin_helper.rb +1 -1
  28. data/app/jobs/export_job.rb +2 -1
  29. data/app/models/admin/bookmark.rb +18 -0
  30. data/app/models/api_search_builder.rb +3 -1
  31. data/app/models/document/bbox_validator.rb +9 -5
  32. data/app/models/document/date_range_validator.rb +13 -10
  33. data/app/models/document/geom_validator.rb +4 -2
  34. data/app/models/document.rb +15 -7
  35. data/app/models/element.rb +9 -7
  36. data/app/models/form_control.rb +2 -0
  37. data/app/models/form_element.rb +2 -0
  38. data/app/models/form_feature.rb +2 -0
  39. data/app/models/form_group.rb +2 -0
  40. data/app/models/form_header.rb +2 -0
  41. data/app/models/geoblacklight_admin/schema.rb +5 -2
  42. data/app/models/geoblacklight_admin.rb +2 -0
  43. data/app/models/import/csv_duplicates_validator.rb +2 -1
  44. data/app/models/import/csv_header_validator.rb +2 -1
  45. data/app/models/import.rb +4 -7
  46. data/app/models/user.rb +1 -1
  47. data/app/services/export_csv_service.rb +5 -1
  48. data/app/views/admin/advanced_search/facets.json.jbuilder +9 -8
  49. data/app/views/admin/advanced_search/index.json.jbuilder +8 -7
  50. data/app/views/admin/api/_field.json.jbuilder +1 -1
  51. data/app/views/admin/api/fetch.json.jbuilder +8 -7
  52. data/app/views/admin/api/index.json.jbuilder +8 -7
  53. data/app/views/admin/bookmarks/index.html.erb +2 -2
  54. data/app/views/admin/bulk_actions/index.html.erb +3 -3
  55. data/app/views/admin/bulk_actions/show.html.erb +1 -1
  56. data/app/views/admin/document_accesses/_form.html.erb +1 -1
  57. data/app/views/admin/document_accesses/destroy_all.html.erb +2 -2
  58. data/app/views/admin/document_accesses/edit.html.erb +1 -1
  59. data/app/views/admin/document_accesses/import.html.erb +2 -2
  60. data/app/views/admin/document_accesses/index.html.erb +9 -9
  61. data/app/views/admin/document_accesses/new.html.erb +1 -1
  62. data/app/views/admin/document_downloads/_form.html.erb +1 -1
  63. data/app/views/admin/document_downloads/destroy_all.html.erb +1 -1
  64. data/app/views/admin/document_downloads/edit.html.erb +2 -3
  65. data/app/views/admin/document_downloads/import.html.erb +1 -1
  66. data/app/views/admin/document_downloads/index.html.erb +9 -9
  67. data/app/views/admin/document_downloads/new.html.erb +1 -1
  68. data/app/views/admin/document_downloads/show.html.erb +2 -2
  69. data/app/views/admin/documents/_document_bookmark.html.erb +1 -1
  70. data/app/views/admin/documents/_form_nav.html.erb +1 -1
  71. data/app/views/admin/documents/_json_btaa_aardvark.jbuilder +1 -3
  72. data/app/views/admin/documents/edit.html.erb +1 -1
  73. data/app/views/admin/documents/features/_multiple_download_links.html.erb +2 -2
  74. data/app/views/admin/documents/index.html.erb +2 -4
  75. data/app/views/admin/documents/versions.html.erb +1 -1
  76. data/app/views/admin/elements/_element.json.jbuilder +4 -1
  77. data/app/views/admin/elements/_form.html.erb +1 -1
  78. data/app/views/admin/elements/edit.html.erb +2 -2
  79. data/app/views/admin/elements/index.html.erb +3 -3
  80. data/app/views/admin/elements/index.json.jbuilder +2 -0
  81. data/app/views/admin/elements/new.html.erb +1 -1
  82. data/app/views/admin/elements/show.html.erb +6 -6
  83. data/app/views/admin/elements/show.json.jbuilder +2 -0
  84. data/app/views/admin/form_elements/_form.html.erb +1 -1
  85. data/app/views/admin/form_elements/_form_element.json.jbuilder +2 -0
  86. data/app/views/admin/form_elements/edit.html.erb +2 -2
  87. data/app/views/admin/form_elements/index.html.erb +1 -1
  88. data/app/views/admin/form_elements/index.json.jbuilder +2 -0
  89. data/app/views/admin/form_elements/new.html.erb +1 -1
  90. data/app/views/admin/form_elements/show.html.erb +2 -2
  91. data/app/views/admin/form_elements/show.json.jbuilder +2 -0
  92. data/app/views/admin/ids/fetch.json.jbuilder +8 -7
  93. data/app/views/admin/ids/index.json.jbuilder +3 -2
  94. data/app/views/admin/import_documents/show.html.haml +1 -1
  95. data/app/views/admin/imports/_import.json.jbuilder +2 -1
  96. data/app/views/admin/imports/_show_failed_tab.html.erb +2 -2
  97. data/app/views/admin/imports/_show_success_tab.html.erb +1 -1
  98. data/app/views/admin/imports/edit.html.erb +3 -3
  99. data/app/views/admin/imports/index.html.erb +3 -3
  100. data/app/views/admin/layouts/application.html.erb +4 -4
  101. data/app/views/admin/mappings/_form.html.erb +1 -1
  102. data/app/views/admin/mappings/_mapping.json.jbuilder +2 -1
  103. data/app/views/admin/mappings/edit.html.erb +2 -2
  104. data/app/views/admin/mappings/new.html.erb +1 -1
  105. data/app/views/admin/mappings/show.html.erb +2 -2
  106. data/app/views/admin/notifications/index.html.erb +3 -3
  107. data/app/views/admin/search/index.html.erb +2 -2
  108. data/app/views/admin/shared/_navbar.html.erb +8 -3
  109. data/app/views/catalog/_show_gbl_admin.html.erb +3 -0
  110. data/config/routes.rb +37 -33
  111. data/db/migrate/20230316183001_add_geoblacklight_admin_gem.rb +408 -0
  112. data/db/seeds.rb +7 -5
  113. data/lib/generators/geoblacklight_admin/config_generator.rb +43 -31
  114. data/lib/generators/geoblacklight_admin/install_generator.rb +2 -3
  115. data/lib/generators/geoblacklight_admin/jobs_generator.rb +3 -2
  116. data/lib/generators/geoblacklight_admin/models_generator.rb +0 -1
  117. data/lib/generators/geoblacklight_admin/templates/_show_sidebar.html.erb +19 -0
  118. data/lib/generators/geoblacklight_admin/templates/_user_util_links.html.erb +1 -1
  119. data/lib/generators/geoblacklight_admin/templates/config/database.yml +9 -5
  120. data/lib/generators/geoblacklight_admin/templates/config/initializers/geoblacklight_admin.rb +1 -2
  121. data/lib/generators/geoblacklight_admin/templates/config/initializers/pagy.rb +150 -68
  122. data/lib/generators/geoblacklight_admin/templates/config/settings.yml +241 -0
  123. data/lib/generators/geoblacklight_admin/templates/package.json +1 -0
  124. data/lib/generators/geoblacklight_admin/views_generator.rb +0 -1
  125. data/lib/geoblacklight_admin/engine.rb +5 -6
  126. data/lib/geoblacklight_admin/version.rb +1 -1
  127. data/lib/geoblacklight_admin.rb +1 -1
  128. data/lib/tasks/geoblacklight_admin.rake +10 -6
  129. metadata +79 -48
  130. data/.editorconfig +0 -18
  131. data/.gitignore +0 -75
  132. data/.standard.yml +0 -4
  133. data/Gemfile +0 -59
  134. data/LICENSE +0 -21
  135. data/app/assets/images/.keep +0 -0
  136. data/app/controllers/admin/concerns/.keep +0 -0
  137. data/app/models/bookmark.rb +0 -17
  138. data/app/models/concerns/.keep +0 -0
  139. data/db/migrate/20230316183001_add_geoblacklight_admin.rb +0 -399
  140. data/geoblacklight_admin.gemspec +0 -67
  141. data/lib/generators/geoblacklight_admin/templates/.env.development.example +0 -28
  142. data/lib/generators/geoblacklight_admin/templates/.solr_wrapper.yml +0 -7
  143. data/lib/generators/geoblacklight_admin/templates/solr/snapshots/.keep +0 -0
  144. data/lib/tasks/.keep +0 -0
  145. data/spec/test_app_templates/lib/generators/test_app_generator.rb +0 -35
  146. data/template.rb +0 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d9c753d49a11dda454f74746f46edbcbc094ab8ed65e5a6ea4a3addd1850efa9
4
- data.tar.gz: db199042de538a4e2d0548db3444a86ef81b78f2d88216dfbcae1d05b53f9923
3
+ metadata.gz: 7684e47be28824d2066af09187c41a5f443cf3ead2ea32d83c22c7bb1b254c2d
4
+ data.tar.gz: d444226fbbacfcc2b344e595c8920758e0a75b7981c7202041063fd26d89fec1
5
5
  SHA512:
6
- metadata.gz: 757f8f91ff005aeaa92a11dfa2d292b68383781cfdbd9cf9db5f54bb39aea4c25be30b81d9b493ee1383bcbb210d1239a68eab436c0d54e41078e69f14a11003
7
- data.tar.gz: 107dbebee2ed281bd0284e2fe4e0b60c25344cc38952d6b3363703c3ffe4ae492fdcc6aac1d6da6f8b9f5caa825375e42e7c2d190da9202a5e7f835f27bb8335
6
+ metadata.gz: 89901b678a8a2e240d63297a8a23ecce61e24c15d2e622b333710dcc4ad4d976ec205b583b1abf4373fb398962812895599650864ddb170137c01ca00f2f756d
7
+ data.tar.gz: c07f011ff04015800cec00397e7bbf65ef33a8e0511e56e300930dfe1eb9d2c110148666e805f863e7bfc18aa7fe311887f9abc5c5839387a5afb0dbcd0f2d4f
data/README.md CHANGED
@@ -43,6 +43,11 @@ When the .internal_test_app is built, edit `geoblacklight_admin_helper.rb`, and
43
43
  ```bash
44
44
  cd .internal_test_app
45
45
  bundle exec rake db:seed
46
+
47
+ # JS was breaking in dev mode, had to add the yarn package below - EWL 6/5/23
48
+ yarn add @babel/plugin-proposal-private-methods --dev
49
+
50
+ # Run the app server
46
51
  bundle exec rake gbl_admin:server
47
52
  ```
48
53
 
@@ -72,13 +77,32 @@ You're now done generating the test app and populating the Elements / FormElemen
72
77
  * ~~Add GBL Admin link to nav~~
73
78
  * ~~Routes - Get devise user~~
74
79
  * ~~No route matches [GET] "/users/sign_out"~~
75
- * Bookmarks need to be Admin::Bookmarks
80
+ * ~~Bookmarks need to be Admin::Bookmarks~~
81
+ * GitHub Actions / CI integration
82
+ * Port the GEOMG test suite
76
83
  * Remove legacy GEOMG / B1G everywhere...
77
84
  * Send GBLADMIN JavaScript pack to NPM like Blacklight
78
- * Port the GEOMG test suite
79
- * GitHub Actions / CI integration
80
85
  * Project gem dependency injection redundancy...
81
86
  * Likely a lot more polish to be uncovered...
82
87
 
83
88
 
89
+ # To Run Project
90
+ drop and create databases (or engine_cart will fail)
91
+ cd project root
92
+ bundle exec rake engine_cart:regenerate
93
+
94
+ ## Run Solr
95
+ bin/rails geoblacklight:solr
96
+
97
+ ## Run App
98
+ cd .internal_test_app
99
+ bundle exec rails server
100
+
101
+ ## Test App
102
+ bundle exec rails test
103
+ cd .internal_test_app
104
+ rake db:seed
105
+ rake geomg:solr:reindex
84
106
 
107
+ # @TODO: Add chosen.js css
108
+ # @TODO: Fix missing select form-control class
data/Rakefile CHANGED
@@ -1,14 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "rubygems"
3
4
  require "rails"
4
- begin
5
- require "bundler/setup"
6
- require "bundler/gem_tasks"
7
- rescue LoadError
8
- puts "You must `gem install bundler` and `bundle install` to run rake tasks"
9
- end
10
5
 
11
- Bundler::GemHelper.install_tasks
6
+ require "bundler/setup"
7
+
8
+ # Not using test/dummy app; using engine_cart
9
+ # APP_RAKEFILE = File.expand_path(".internal_test_app/Rakefile", __dir__) if
10
+ # load "rails/tasks/engine.rake"
11
+
12
+ load "rails/tasks/statistics.rake"
13
+
14
+ require "bundler/gem_tasks"
12
15
 
13
16
  require "solr_wrapper"
14
17
 
@@ -23,12 +26,25 @@ require "engine_cart/rake_task"
23
26
  require "geoblacklight_admin/version"
24
27
 
25
28
  desc "Run test suite"
26
- task ci: ["engine_cart:generate"] do
27
- ENV["environment"] = "test"
28
- # run the tests
29
- Rake::Task["test"].invoke
29
+ task "ci" do
30
+ ENV["RAILS_ENV"] = "test"
31
+ system("RAILS_ENV=test bundle exec rake test") || false
32
+ # system("RAILS_ENV=test bundle exec rake geomg:solr:reindex") || false
30
33
  end
31
34
 
35
+ require "rake/testtask"
36
+
37
+ # Searches for files ending in _test.rb in the test directory
38
+ Rake::TestTask.new do |t|
39
+ t.libs << "lib"
40
+ t.libs << "test"
41
+ t.pattern = "test/**/*_test.rb"
42
+ t.verbose = true
43
+ end
44
+
45
+ # Will use test as defaut task if rake is run by itself
46
+ task default: :test
47
+
32
48
  namespace :geoblacklight do
33
49
  namespace :internal do
34
50
  task seed: ["engine_cart:generate"] do
@@ -51,7 +67,9 @@ namespace :geoblacklight do
51
67
  end
52
68
 
53
69
  SolrWrapper.wrap(port: "8983") do |solr|
54
- solr.with_collection(name: "blacklight-core", dir: File.join(File.expand_path(".", File.dirname(__FILE__)), "solr", "conf")) do
70
+ solr.with_collection(name: "blacklight-core",
71
+ dir: File.join(File.expand_path(".", File.dirname(__FILE__)),
72
+ "solr", "conf")) do
55
73
  Rake::Task["geoblacklight:internal:seed"].invoke
56
74
 
57
75
  within_test_app do
@@ -12,6 +12,7 @@
12
12
  //
13
13
 
14
14
  //= require jquery3
15
+ //= require rails-ujs
15
16
  //= require cocoon
16
17
  //= require chosen-jquery/lib/chosen.jquery.js
17
18
 
@@ -19,6 +19,7 @@
19
19
  // Modules
20
20
  @import "modules/autocomplete";
21
21
  @import "modules/blazer";
22
+ @import "modules/chosen";
22
23
  @import "modules/code";
23
24
  @import "modules/datepicker";
24
25
  @import "modules/elements";
@@ -44,4 +45,8 @@ footer {
44
45
 
45
46
  div.container-fluid {
46
47
  margin-top: 5rem;
48
+ }
49
+
50
+ .navbar-brand.gbl-admin {
51
+ background: none;
47
52
  }
@@ -0,0 +1,425 @@
1
+ $chosen-sprite: image-url('chosen-sprite.png') !default;
2
+ $chosen-sprite-retina: image-url('chosen-sprite@2x.png') !default;
3
+
4
+ /* @group Base */
5
+ .chosen-container {
6
+ position: relative;
7
+ display: inline-block;
8
+ vertical-align: middle;
9
+ font-size: 13px;
10
+ user-select: none;
11
+ * {
12
+ box-sizing: border-box;
13
+ }
14
+ .chosen-drop {
15
+ position: absolute;
16
+ top: 100%;
17
+ z-index: 1010;
18
+ width: 100%;
19
+ border: 1px solid #aaa;
20
+ border-top: 0;
21
+ background: #fff;
22
+ box-shadow: 0 4px 5px rgba(#000,.15);
23
+ clip: rect(0,0,0,0);
24
+ clip-path: inset(100% 100%);
25
+ }
26
+ &.chosen-with-drop .chosen-drop {
27
+ clip: auto;
28
+ clip-path: none;
29
+ }
30
+ a{
31
+ cursor: pointer;
32
+ }
33
+
34
+ .search-choice, .chosen-single{
35
+ .group-name{
36
+ margin-right: 4px;
37
+ overflow: hidden;
38
+ white-space: nowrap;
39
+ text-overflow: ellipsis;
40
+ font-weight: normal;
41
+ color: #999999;
42
+ &:after {
43
+ content: ":";
44
+ padding-left: 2px;
45
+ vertical-align: top;
46
+ }
47
+ }
48
+ }
49
+ }
50
+ /* @end */
51
+
52
+ /* @group Single Chosen */
53
+ .chosen-container-single{
54
+ .chosen-single {
55
+ position: relative;
56
+ display: block;
57
+ overflow: hidden;
58
+ padding: 0 0 0 8px;
59
+ height: 25px;
60
+ border: 1px solid #aaa;
61
+ border-radius: 5px;
62
+ background-color: #fff;
63
+ background: linear-gradient(#fff 20%, #f6f6f6 50%, #eee 52%, #f4f4f4 100%);
64
+ background-clip: padding-box;
65
+ box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(#000,.1);
66
+ color: #444;
67
+ text-decoration: none;
68
+ white-space: nowrap;
69
+ line-height: 24px;
70
+ }
71
+ .chosen-default {
72
+ color: #999;
73
+ }
74
+ .chosen-single span {
75
+ display: block;
76
+ overflow: hidden;
77
+ margin-right: 26px;
78
+ text-overflow: ellipsis;
79
+ white-space: nowrap;
80
+ }
81
+ .chosen-single-with-deselect span {
82
+ margin-right: 38px;
83
+ }
84
+ .chosen-single abbr {
85
+ position: absolute;
86
+ top: 6px;
87
+ right: 26px;
88
+ display: block;
89
+ width: 12px;
90
+ height: 12px;
91
+ background: $chosen-sprite -42px 1px no-repeat;
92
+ font-size: 1px;
93
+ &:hover {
94
+ background-position: -42px -10px;
95
+ }
96
+ }
97
+ &.chosen-disabled .chosen-single abbr:hover {
98
+ background-position: -42px -10px;
99
+ }
100
+ .chosen-single div {
101
+ position: absolute;
102
+ top: 0;
103
+ right: 0;
104
+ display: block;
105
+ width: 18px;
106
+ height: 100%;
107
+ b {
108
+ display: block;
109
+ width: 100%;
110
+ height: 100%;
111
+ background: $chosen-sprite no-repeat 0px 2px;
112
+ }
113
+ }
114
+ .chosen-search {
115
+ position: relative;
116
+ z-index: 1010;
117
+ margin: 0;
118
+ padding: 3px 4px;
119
+ white-space: nowrap;
120
+
121
+ input[type="text"] {
122
+ margin: 1px 0;
123
+ padding: 4px 20px 4px 5px;
124
+ width: 100%;
125
+ height: auto;
126
+ outline: 0;
127
+ border: 1px solid #aaa;
128
+ background: $chosen-sprite no-repeat 100% -20px;
129
+ font-size: 1em;
130
+ font-family: sans-serif;
131
+ line-height: normal;
132
+ border-radius: 0;
133
+ }
134
+ }
135
+ .chosen-drop {
136
+ margin-top: -1px;
137
+ border-radius: 0 0 4px 4px;
138
+ background-clip: padding-box;
139
+ }
140
+ &.chosen-container-single-nosearch .chosen-search {
141
+ position: absolute;
142
+ clip: rect(0,0,0,0);
143
+ clip-path: inset(100% 100%);
144
+ }
145
+ }
146
+ /* @end */
147
+
148
+ /* @group Results */
149
+ .chosen-container .chosen-results {
150
+ color: #444;
151
+ position: relative;
152
+ overflow-x: hidden;
153
+ overflow-y: auto;
154
+ margin: 0 4px 4px 0;
155
+ padding: 0 0 0 4px;
156
+ max-height: 240px;
157
+ -webkit-overflow-scrolling: touch;
158
+ li {
159
+ display: none;
160
+ margin: 0;
161
+ padding: 5px 6px;
162
+ list-style: none;
163
+ line-height: 15px;
164
+ word-wrap: break-word;
165
+ -webkit-touch-callout: none;
166
+ &.active-result {
167
+ display: list-item;
168
+ cursor: pointer;
169
+ }
170
+ &.disabled-result {
171
+ display: list-item;
172
+ color: #ccc;
173
+ cursor: default;
174
+ }
175
+ &.highlighted {
176
+ background-color: #3875d7;
177
+ background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
178
+ color: #fff;
179
+ }
180
+ &.no-results {
181
+ color: #777;
182
+ display: list-item;
183
+ background: #f4f4f4;
184
+ }
185
+ &.group-result {
186
+ display: list-item;
187
+ font-weight: bold;
188
+ cursor: default;
189
+ }
190
+ &.group-option {
191
+ padding-left: 15px;
192
+ }
193
+ em {
194
+ font-style: normal;
195
+ text-decoration: underline;
196
+ }
197
+ }
198
+ }
199
+ /* @end */
200
+
201
+ /* @group Multi Chosen */
202
+ .chosen-container-multi{
203
+ .chosen-choices {
204
+ position: relative;
205
+ overflow: hidden;
206
+ margin: 0;
207
+ padding: 0 5px;
208
+ width: 100%;
209
+ height: auto;
210
+ border: 1px solid #aaa;
211
+ background-color: #fff;
212
+ background-image: linear-gradient(#eee 1%, #fff 15%);
213
+ cursor: text;
214
+ }
215
+ .chosen-choices li {
216
+ float: left;
217
+ list-style: none;
218
+ &.search-field {
219
+ margin: 0;
220
+ padding: 0;
221
+ white-space: nowrap;
222
+ input[type="text"] {
223
+ margin: 1px 0;
224
+ padding: 0;
225
+ height: 25px;
226
+ outline: 0;
227
+ border: 0 !important;
228
+ background: transparent !important;
229
+ box-shadow: none;
230
+ color: #999;
231
+ font-size: 100%;
232
+ font-family: sans-serif;
233
+ line-height: normal;
234
+ border-radius: 0;
235
+ width: 25px;
236
+ }
237
+ }
238
+ &.search-choice {
239
+ position: relative;
240
+ margin: 3px 5px 3px 0;
241
+ padding: 3px 20px 3px 5px;
242
+ border: 1px solid #aaa;
243
+ max-width: 100%;
244
+ border-radius: 3px;
245
+ background-color: #eeeeee;
246
+ background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
247
+ background-size: 100% 19px;
248
+ background-repeat: repeat-x;
249
+ background-clip: padding-box;
250
+ box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(#000,.05);
251
+ color: #333;
252
+ line-height: 13px;
253
+ cursor: default;
254
+ span {
255
+ word-wrap: break-word;
256
+ }
257
+ .search-choice-close {
258
+ position: absolute;
259
+ top: 4px;
260
+ right: 3px;
261
+ display: block;
262
+ width: 12px;
263
+ height: 12px;
264
+ background: $chosen-sprite -42px 1px no-repeat;
265
+ font-size: 1px;
266
+ &:hover {
267
+ background-position: -42px -10px;
268
+ }
269
+ }
270
+ }
271
+ &.search-choice-disabled {
272
+ padding-right: 5px;
273
+ border: 1px solid #ccc;
274
+ background-color: #e4e4e4;
275
+ background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
276
+ color: #666;
277
+ }
278
+ &.search-choice-focus {
279
+ background: #d4d4d4;
280
+ .search-choice-close {
281
+ background-position: -42px -10px;
282
+ }
283
+ }
284
+ }
285
+ .chosen-results {
286
+ margin: 0;
287
+ padding: 0;
288
+ }
289
+ .chosen-drop .result-selected {
290
+ display: list-item;
291
+ color: #ccc;
292
+ cursor: default;
293
+ }
294
+ }
295
+ /* @end */
296
+
297
+ /* @group Active */
298
+ .chosen-container-active{
299
+ .chosen-single {
300
+ border: 1px solid #5897fb;
301
+ box-shadow: 0 0 5px rgba(#000,.3);
302
+ }
303
+ &.chosen-with-drop{
304
+ .chosen-single {
305
+ border: 1px solid #aaa;
306
+ -moz-border-radius-bottomright: 0;
307
+ border-bottom-right-radius: 0;
308
+ -moz-border-radius-bottomleft: 0;
309
+ border-bottom-left-radius: 0;
310
+ background-image: linear-gradient(#eee 20%, #fff 80%);
311
+ box-shadow: 0 1px 0 #fff inset;
312
+ }
313
+ .chosen-single div {
314
+ border-left: none;
315
+ background: transparent;
316
+ b {
317
+ background-position: -18px 2px;
318
+ }
319
+ }
320
+ }
321
+ .chosen-choices {
322
+ border: 1px solid #5897fb;
323
+ box-shadow: 0 0 5px rgba(#000,.3);
324
+ li.search-field input[type="text"] {
325
+ color: #222 !important;
326
+ }
327
+ }
328
+ }
329
+ /* @end */
330
+
331
+ /* @group Disabled Support */
332
+ .chosen-disabled {
333
+ opacity: 0.5 !important;
334
+ cursor: default;
335
+ .chosen-single {
336
+ cursor: default;
337
+ }
338
+ .chosen-choices .search-choice .search-choice-close {
339
+ cursor: default;
340
+ }
341
+ }
342
+ /* @end */
343
+
344
+ /* @group Right to Left */
345
+ .chosen-rtl {
346
+ text-align: right;
347
+ .chosen-single {
348
+ overflow: visible;
349
+ padding: 0 8px 0 0;
350
+ }
351
+ .chosen-single span {
352
+ margin-right: 0;
353
+ margin-left: 26px;
354
+ direction: rtl;
355
+ }
356
+ .chosen-single-with-deselect span {
357
+ margin-left: 38px;
358
+ }
359
+ .chosen-single div {
360
+ right: auto;
361
+ left: 3px;
362
+ }
363
+ .chosen-single abbr {
364
+ right: auto;
365
+ left: 26px;
366
+ }
367
+ .chosen-choices li {
368
+ float: right;
369
+ &.search-field input[type="text"] {
370
+ direction: rtl;
371
+ }
372
+ &.search-choice {
373
+ margin: 3px 5px 3px 0;
374
+ padding: 3px 5px 3px 19px;
375
+ .search-choice-close {
376
+ right: auto;
377
+ left: 4px;
378
+ }
379
+ }
380
+ }
381
+ &.chosen-container-single .chosen-results {
382
+ margin: 0 0 4px 4px;
383
+ padding: 0 4px 0 0;
384
+ }
385
+ .chosen-results li.group-option {
386
+ padding-right: 15px;
387
+ padding-left: 0;
388
+ }
389
+ &.chosen-container-active.chosen-with-drop .chosen-single div {
390
+ border-right: none;
391
+ }
392
+ .chosen-search input[type="text"] {
393
+ padding: 4px 5px 4px 20px;
394
+ background: $chosen-sprite no-repeat -30px -20px;
395
+ direction: rtl;
396
+ }
397
+ &.chosen-container-single{
398
+ .chosen-single div b {
399
+ background-position: 6px 2px;
400
+ }
401
+ &.chosen-with-drop{
402
+ .chosen-single div b {
403
+ background-position: -12px 2px;
404
+ }
405
+ }
406
+ }
407
+ }
408
+
409
+ /* @end */
410
+
411
+ /* @group Retina compatibility */
412
+ @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi), only screen and (min-resolution: 1.5dppx) {
413
+ .chosen-rtl .chosen-search input[type="text"],
414
+ .chosen-container-single .chosen-single abbr,
415
+ .chosen-container-single .chosen-single div b,
416
+ .chosen-container-single .chosen-search input[type="text"],
417
+ .chosen-container-multi .chosen-choices .search-choice .search-choice-close,
418
+ .chosen-container .chosen-results-scroll-down span,
419
+ .chosen-container .chosen-results-scroll-up span {
420
+ background-image: $chosen-sprite-retina !important;
421
+ background-size: 52px 37px !important;
422
+ background-repeat: no-repeat !important;
423
+ }
424
+ }
425
+ /* @end */
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Admin
2
4
  class AdminController < ApplicationController
3
5
  include Devise::Controllers::Helpers
4
6
  include Pagy::Backend
5
- layout 'admin/layouts/application'
7
+ layout "admin/layouts/application"
6
8
 
7
9
  before_action :authenticate_admin!
8
10
 
@@ -13,4 +15,4 @@ module Admin
13
15
  redirect_to :somewhere, status: :forbidden unless current_user.admin?
14
16
  end
15
17
  end
16
- end
18
+ end