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.
- checksums.yaml +4 -4
- data/README.md +27 -3
- data/Rakefile +30 -12
- data/app/assets/javascripts/geoblacklight_admin.js +1 -0
- data/app/assets/stylesheets/geoblacklight_admin/_core.scss +5 -0
- data/app/assets/stylesheets/geoblacklight_admin/modules/_chosen.scss +425 -0
- data/app/controllers/admin/admin_controller.rb +4 -2
- data/app/controllers/admin/advanced_search_controller.rb +123 -103
- data/app/controllers/admin/api_controller.rb +123 -108
- data/app/controllers/admin/bookmarks_controller.rb +4 -4
- data/app/controllers/admin/bulk_actions_controller.rb +9 -4
- data/app/controllers/admin/concerns/upload_util.rb +2 -0
- data/app/controllers/admin/document_accesses_controller.rb +10 -4
- data/app/controllers/admin/document_assets_controller.rb +14 -11
- data/app/controllers/admin/document_downloads_controller.rb +12 -10
- data/app/controllers/admin/documents_controller.rb +16 -8
- data/app/controllers/admin/elements_controller.rb +6 -5
- data/app/controllers/admin/form_elements_controller.rb +4 -4
- data/app/controllers/admin/ids_controller.rb +107 -87
- data/app/controllers/admin/import_documents_controller.rb +1 -1
- data/app/controllers/admin/imports_controller.rb +7 -3
- data/app/controllers/admin/mappings_controller.rb +6 -4
- data/app/controllers/admin/notifications_controller.rb +1 -1
- data/app/controllers/admin/search_controller.rb +1 -1
- data/app/controllers/admin/users_controller.rb +1 -1
- data/app/helpers/form_input_helper.rb +4 -4
- data/app/helpers/geoblacklight_admin_helper.rb +1 -1
- data/app/jobs/export_job.rb +2 -1
- data/app/models/admin/bookmark.rb +18 -0
- data/app/models/api_search_builder.rb +3 -1
- data/app/models/document/bbox_validator.rb +9 -5
- data/app/models/document/date_range_validator.rb +13 -10
- data/app/models/document/geom_validator.rb +4 -2
- data/app/models/document.rb +15 -7
- data/app/models/element.rb +9 -7
- data/app/models/form_control.rb +2 -0
- data/app/models/form_element.rb +2 -0
- data/app/models/form_feature.rb +2 -0
- data/app/models/form_group.rb +2 -0
- data/app/models/form_header.rb +2 -0
- data/app/models/geoblacklight_admin/schema.rb +5 -2
- data/app/models/geoblacklight_admin.rb +2 -0
- data/app/models/import/csv_duplicates_validator.rb +2 -1
- data/app/models/import/csv_header_validator.rb +2 -1
- data/app/models/import.rb +4 -7
- data/app/models/user.rb +1 -1
- data/app/services/export_csv_service.rb +5 -1
- data/app/views/admin/advanced_search/facets.json.jbuilder +9 -8
- data/app/views/admin/advanced_search/index.json.jbuilder +8 -7
- data/app/views/admin/api/_field.json.jbuilder +1 -1
- data/app/views/admin/api/fetch.json.jbuilder +8 -7
- data/app/views/admin/api/index.json.jbuilder +8 -7
- data/app/views/admin/bookmarks/index.html.erb +2 -2
- data/app/views/admin/bulk_actions/index.html.erb +3 -3
- data/app/views/admin/bulk_actions/show.html.erb +1 -1
- data/app/views/admin/document_accesses/_form.html.erb +1 -1
- data/app/views/admin/document_accesses/destroy_all.html.erb +2 -2
- data/app/views/admin/document_accesses/edit.html.erb +1 -1
- data/app/views/admin/document_accesses/import.html.erb +2 -2
- data/app/views/admin/document_accesses/index.html.erb +9 -9
- data/app/views/admin/document_accesses/new.html.erb +1 -1
- data/app/views/admin/document_downloads/_form.html.erb +1 -1
- data/app/views/admin/document_downloads/destroy_all.html.erb +1 -1
- data/app/views/admin/document_downloads/edit.html.erb +2 -3
- data/app/views/admin/document_downloads/import.html.erb +1 -1
- data/app/views/admin/document_downloads/index.html.erb +9 -9
- data/app/views/admin/document_downloads/new.html.erb +1 -1
- data/app/views/admin/document_downloads/show.html.erb +2 -2
- data/app/views/admin/documents/_document_bookmark.html.erb +1 -1
- data/app/views/admin/documents/_form_nav.html.erb +1 -1
- data/app/views/admin/documents/_json_btaa_aardvark.jbuilder +1 -3
- data/app/views/admin/documents/edit.html.erb +1 -1
- data/app/views/admin/documents/features/_multiple_download_links.html.erb +2 -2
- data/app/views/admin/documents/index.html.erb +2 -4
- data/app/views/admin/documents/versions.html.erb +1 -1
- data/app/views/admin/elements/_element.json.jbuilder +4 -1
- data/app/views/admin/elements/_form.html.erb +1 -1
- data/app/views/admin/elements/edit.html.erb +2 -2
- data/app/views/admin/elements/index.html.erb +3 -3
- data/app/views/admin/elements/index.json.jbuilder +2 -0
- data/app/views/admin/elements/new.html.erb +1 -1
- data/app/views/admin/elements/show.html.erb +6 -6
- data/app/views/admin/elements/show.json.jbuilder +2 -0
- data/app/views/admin/form_elements/_form.html.erb +1 -1
- data/app/views/admin/form_elements/_form_element.json.jbuilder +2 -0
- data/app/views/admin/form_elements/edit.html.erb +2 -2
- data/app/views/admin/form_elements/index.html.erb +1 -1
- data/app/views/admin/form_elements/index.json.jbuilder +2 -0
- data/app/views/admin/form_elements/new.html.erb +1 -1
- data/app/views/admin/form_elements/show.html.erb +2 -2
- data/app/views/admin/form_elements/show.json.jbuilder +2 -0
- data/app/views/admin/ids/fetch.json.jbuilder +8 -7
- data/app/views/admin/ids/index.json.jbuilder +3 -2
- data/app/views/admin/import_documents/show.html.haml +1 -1
- data/app/views/admin/imports/_import.json.jbuilder +2 -1
- data/app/views/admin/imports/_show_failed_tab.html.erb +2 -2
- data/app/views/admin/imports/_show_success_tab.html.erb +1 -1
- data/app/views/admin/imports/edit.html.erb +3 -3
- data/app/views/admin/imports/index.html.erb +3 -3
- data/app/views/admin/layouts/application.html.erb +4 -4
- data/app/views/admin/mappings/_form.html.erb +1 -1
- data/app/views/admin/mappings/_mapping.json.jbuilder +2 -1
- data/app/views/admin/mappings/edit.html.erb +2 -2
- data/app/views/admin/mappings/new.html.erb +1 -1
- data/app/views/admin/mappings/show.html.erb +2 -2
- data/app/views/admin/notifications/index.html.erb +3 -3
- data/app/views/admin/search/index.html.erb +2 -2
- data/app/views/admin/shared/_navbar.html.erb +8 -3
- data/app/views/catalog/_show_gbl_admin.html.erb +3 -0
- data/config/routes.rb +37 -33
- data/db/migrate/20230316183001_add_geoblacklight_admin_gem.rb +408 -0
- data/db/seeds.rb +7 -5
- data/lib/generators/geoblacklight_admin/config_generator.rb +43 -31
- data/lib/generators/geoblacklight_admin/install_generator.rb +2 -3
- data/lib/generators/geoblacklight_admin/jobs_generator.rb +3 -2
- data/lib/generators/geoblacklight_admin/models_generator.rb +0 -1
- data/lib/generators/geoblacklight_admin/templates/_show_sidebar.html.erb +19 -0
- data/lib/generators/geoblacklight_admin/templates/_user_util_links.html.erb +1 -1
- data/lib/generators/geoblacklight_admin/templates/config/database.yml +9 -5
- data/lib/generators/geoblacklight_admin/templates/config/initializers/geoblacklight_admin.rb +1 -2
- data/lib/generators/geoblacklight_admin/templates/config/initializers/pagy.rb +150 -68
- data/lib/generators/geoblacklight_admin/templates/config/settings.yml +241 -0
- data/lib/generators/geoblacklight_admin/templates/package.json +1 -0
- data/lib/generators/geoblacklight_admin/views_generator.rb +0 -1
- data/lib/geoblacklight_admin/engine.rb +5 -6
- data/lib/geoblacklight_admin/version.rb +1 -1
- data/lib/geoblacklight_admin.rb +1 -1
- data/lib/tasks/geoblacklight_admin.rake +10 -6
- metadata +79 -48
- data/.editorconfig +0 -18
- data/.gitignore +0 -75
- data/.standard.yml +0 -4
- data/Gemfile +0 -59
- data/LICENSE +0 -21
- data/app/assets/images/.keep +0 -0
- data/app/controllers/admin/concerns/.keep +0 -0
- data/app/models/bookmark.rb +0 -17
- data/app/models/concerns/.keep +0 -0
- data/db/migrate/20230316183001_add_geoblacklight_admin.rb +0 -399
- data/geoblacklight_admin.gemspec +0 -67
- data/lib/generators/geoblacklight_admin/templates/.env.development.example +0 -28
- data/lib/generators/geoblacklight_admin/templates/.solr_wrapper.yml +0 -7
- data/lib/generators/geoblacklight_admin/templates/solr/snapshots/.keep +0 -0
- data/lib/tasks/.keep +0 -0
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +0 -35
- data/template.rb +0 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7684e47be28824d2066af09187c41a5f443cf3ead2ea32d83c22c7bb1b254c2d
|
|
4
|
+
data.tar.gz: d444226fbbacfcc2b344e595c8920758e0a75b7981c7202041063fd26d89fec1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
|
|
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
|
|
27
|
-
ENV["
|
|
28
|
-
|
|
29
|
-
|
|
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",
|
|
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
|
|
@@ -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
|
|
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
|