blacklight_folders 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +15 -0
  3. data/README.rdoc +50 -0
  4. data/Rakefile +68 -0
  5. data/app/assets/javascripts/blacklight_folders/catalog/edit.js +28 -0
  6. data/app/assets/javascripts/blacklight_folders/catalog/index.js +65 -0
  7. data/app/assets/javascripts/blacklight_folders/catalog/show.js +27 -0
  8. data/app/assets/javascripts/blacklight_folders/catalog.js +1 -0
  9. data/app/assets/javascripts/blacklight_folders/folder_items.js +36 -0
  10. data/app/assets/javascripts/blacklight_folders/sort.js +10 -0
  11. data/app/assets/javascripts/blacklight_folders.js +8 -0
  12. data/app/assets/stylesheets/blacklight_folders/_blacklight_folders.css.scss +4 -0
  13. data/app/assets/stylesheets/blacklight_folders/_folders.css.scss +56 -0
  14. data/app/assets/stylesheets/blacklight_folders/_forms.css.scss +11 -0
  15. data/app/assets/stylesheets/blacklight_folders/_nestable.css.scss +129 -0
  16. data/app/controllers/blacklight/folders/application_controller.rb +11 -0
  17. data/app/controllers/blacklight/folders/folders_controller.rb +162 -0
  18. data/app/controllers/concerns/blacklight/folders/application_controller_behavior.rb +63 -0
  19. data/app/forms/blacklight/folders/folder_form.rb +74 -0
  20. data/app/helpers/blacklight/folders/application_helper.rb +29 -0
  21. data/app/helpers/blacklight/folders/crud_links_helper.rb +29 -0
  22. data/app/helpers/blacklight/folders/folders_helper.rb +14 -0
  23. data/app/helpers/blacklight/folders/main_app_helper.rb +30 -0
  24. data/app/models/ability.rb +4 -0
  25. data/app/models/blacklight/folders/folder.rb +120 -0
  26. data/app/models/blacklight/folders/folder_item.rb +21 -0
  27. data/app/models/blacklight/folders/solr_response.rb +20 -0
  28. data/app/models/concerns/blacklight/folders/ability.rb +39 -0
  29. data/app/models/concerns/blacklight/folders/solr_document.rb +3 -0
  30. data/app/models/concerns/blacklight/folders/user.rb +20 -0
  31. data/app/views/blacklight/folders/_add_to_folder.html.erb +10 -0
  32. data/app/views/blacklight/folders/_folder_control.html.erb +1 -0
  33. data/app/views/blacklight/folders/folders/_folder.html.erb +22 -0
  34. data/app/views/blacklight/folders/folders/_folder_item.html.erb +2 -0
  35. data/app/views/blacklight/folders/folders/_form.html.erb +78 -0
  36. data/app/views/blacklight/folders/folders/_index_header_default.html.erb +20 -0
  37. data/app/views/blacklight/folders/folders/_marc_tools.html.erb +10 -0
  38. data/app/views/blacklight/folders/folders/_tools.html.erb +11 -0
  39. data/app/views/blacklight/folders/folders/edit.html.erb +2 -0
  40. data/app/views/blacklight/folders/folders/index.html.erb +33 -0
  41. data/app/views/blacklight/folders/folders/new.html.erb +2 -0
  42. data/app/views/blacklight/folders/folders/show.endnote.erb +1 -0
  43. data/app/views/blacklight/folders/folders/show.html.erb +43 -0
  44. data/app/views/blacklight/folders/show/_add_to_folder.html.erb +18 -0
  45. data/app/views/blacklight/folders/show/_folder_controls.html.erb +15 -0
  46. data/app/views/blacklight/nav/_folders.html.erb +14 -0
  47. data/app/views/catalog/_show_sidebar.html.erb +11 -0
  48. data/config/jetty.yml +6 -0
  49. data/config/locales/blacklight_folders.en.yml +73 -0
  50. data/config/routes.rb +5 -0
  51. data/db/migrate/1416883534_create_blacklight_folders_folders.rb +12 -0
  52. data/db/migrate/1416883577_create_blacklight_folders_folder_items.rb +13 -0
  53. data/lib/blacklight_folders/engine.rb +11 -0
  54. data/lib/blacklight_folders/version.rb +5 -0
  55. data/lib/blacklight_folders.rb +4 -0
  56. data/lib/generators/blacklight_folders/install_generator.rb +53 -0
  57. data/lib/generators/blacklight_folders/templates/blacklight_folders.rb +12 -0
  58. data/lib/generators/blacklight_folders/templates/blacklight_folders_helper.rb +3 -0
  59. data/lib/migration/bookmark_migrator.rb +45 -0
  60. data/lib/tasks/blacklight_folders_tasks.rake +12 -0
  61. metadata +269 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 27067bbaefd718b0c485c4c1f13941fcb53a6e8b
4
+ data.tar.gz: cbb26a51baaed6c6f17f499d1d46b47254f6c669
5
+ SHA512:
6
+ metadata.gz: 5cd3259a5737051c56a80e8346d48b7379062141b285baa1b2abae6917470c8e4c41a1134855627674f16b1745e837f279e1d058265eef06990088fc58c560e5
7
+ data.tar.gz: d7f809c3483b7c176083f6f5b1cfd6d2fb12a4e578f086289b293e87d44d0e24fe5239b09f8138a265bfbf95fff19979d171122004966ea6822ef878d559b14a
data/LICENSE ADDED
@@ -0,0 +1,15 @@
1
+ ##########################################################################
2
+ # Copyright 2014 Indiana University, Data Curation Experts
3
+ # Additional copyright may be held by others, as reflected in the commit log
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
data/README.rdoc ADDED
@@ -0,0 +1,50 @@
1
+ {<img src="https://travis-ci.org/projectblacklight/blacklight_folders.svg?branch=master" alt="Build Status" />}[https://travis-ci.org/projectblacklight/blacklight_folders]
2
+ = Blacklight Folders
3
+ {<img src="https://cloud.githubusercontent.com/assets/92044/5508092/f2ad37b0-876e-11e4-8f73-f08afe23c17b.png" alt="screenshot" />}[https://cloud.githubusercontent.com/assets/92044/5508092/f2ad37b0-876e-11e4-8f73-f08afe23c17b.png]
4
+ ---
5
+ {<img src="https://cloud.githubusercontent.com/assets/92044/5416801/a437a8c0-81f8-11e4-9285-01d230caf80c.png" alt="screenshot" />}[https://cloud.githubusercontent.com/assets/92044/5416801/a437a8c0-81f8-11e4-9285-01d230caf80c.png]
6
+ ---
7
+ {<img src="https://cloud.githubusercontent.com/assets/92044/5416800/a434b49e-81f8-11e4-85a0-d302aa5c7e24.png" alt="screenshot" />}[https://cloud.githubusercontent.com/assets/92044/5416800/a434b49e-81f8-11e4-85a0-d302aa5c7e24.png]
8
+ ---
9
+
10
+ == To create a new blacklight application with blacklight_folders
11
+
12
+ * Create a new rails application
13
+
14
+ * Add the <code>blacklight</code> gem and the <code>blacklight_folders</code> gem to your Gemfile
15
+
16
+ * Run <code>bundle install</code>
17
+
18
+ * Run the blacklight generator with the <code>--devise</code> switch, following the {instructions on the blacklight wiki}[https://github.com/projectblacklight/blacklight/wiki/Quickstart#creating-a-new-application-the-hard-way] to set up your blacklight app. _NOTE:_ If you're using blacklight_folders for a library catalog, you probably want the <code>--marc</code> switch as well; if you're running it locally (for testing, etc.), you probably want the <code>--jettywrapper</code> switch too.
19
+
20
+ $ rails g blacklight:install --devise --marc --jettywrapper
21
+
22
+ * Run the blacklight_folders generator
23
+
24
+ $ rails g blacklight_folders:install
25
+
26
+ == To add blacklight_folders to an existing blacklight application
27
+
28
+ * Add the <code>blacklight_folders</code> gem to your Gemfile, and run <code>bundle install</code>
29
+
30
+ * Run the blacklight_folders generator
31
+
32
+ $ rails g blacklight_folders:install
33
+
34
+ ==== Migrate Existing Data
35
+
36
+ * If your blacklight app has existing users that already have bookmarks saved, run the migration task to add each user's existing bookmarks to their default folder.
37
+
38
+ $ rake blacklight_folders:db:migrate_data
39
+
40
+ == Configuration
41
+
42
+ * By default, the user's 5 most recently updated folders will appear in the drop-down menu in the navigation bar. If you want to change the number of folders that appear in the list, you can set the MENU_LIMIT constant in an initializer (config/initializers/blacklight_folders.rb).
43
+
44
+ Blacklight::Folders::Folder::MENU_LIMIT = 5
45
+
46
+ * If you wish to change the name of each user's default folder, override the entry for <code>default_folder_name</code> in the localization files, using the <code>config/locales/blacklight_folders.en.yml</code> file as an example.
47
+
48
+ ---
49
+
50
+ {Developers Guide}[https://github.com/projectblacklight/blacklight_folders/wiki/Developer-Guide]
data/Rakefile ADDED
@@ -0,0 +1,68 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+ require 'engine_cart/rake_task'
9
+
10
+ RDoc::Task.new(:rdoc) do |rdoc|
11
+ rdoc.rdoc_dir = 'rdoc'
12
+ rdoc.title = 'Blacklight::Folders'
13
+ rdoc.options << '--line-numbers'
14
+ rdoc.rdoc_files.include('README.rdoc')
15
+ rdoc.rdoc_files.include('lib/**/*.rb')
16
+ end
17
+
18
+ Bundler::GemHelper.install_tasks
19
+
20
+ require 'rspec/core/rake_task'
21
+ RSpec::Core::RakeTask.new(:spec)
22
+
23
+ ZIP_URL = "https://github.com/projectblacklight/blacklight-jetty/archive/v4.6.0.zip"
24
+ require 'jettywrapper'
25
+
26
+ task :default => [:spec]
27
+
28
+
29
+ desc "Clean out the test rails app"
30
+ task :clean => ['engine_cart:clean', 'jetty:clean'] do
31
+ end
32
+
33
+
34
+ desc "Run test suite"
35
+ task :ci => ['clean', 'jetty:add_test_core'] do
36
+ jetty_params = Jettywrapper.load_config('test')
37
+ error = Jettywrapper.wrap(jetty_params) do
38
+ Rake::Task['engine_cart:generate'].invoke
39
+ Rake::Task['spec'].invoke
40
+ end
41
+ raise "test failures: #{error}" if error
42
+ end
43
+
44
+ namespace :jetty do
45
+
46
+ desc 'Add test-core to solr for test environment'
47
+ task :add_test_core do
48
+ require 'nokogiri'
49
+
50
+ # copy config files
51
+ FileUtils.mkdir_p('jetty/solr/test-core/conf')
52
+ FileList['jetty/solr/blacklight-core/conf/*'].each do |f|
53
+ cp_r("#{f}", 'jetty/solr/test-core/conf/', :verbose => true)
54
+ end
55
+
56
+ # add test-core to solr.xml
57
+ file = File.read("jetty/solr/solr.xml")
58
+ doc = Nokogiri::XML(file)
59
+ blacklight = doc.at_css("core[name='blacklight-core']")
60
+ test = blacklight.clone
61
+ test['name'] = 'test'
62
+ test['instanceDir'] = 'test-core'
63
+ blacklight.add_next_sibling(test)
64
+ File.open("jetty/solr/solr.xml", "w") do |f|
65
+ f.write doc.to_xml
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,28 @@
1
+ // This is for the catalog show page
2
+ BlacklightFolders.FolderEditController = function(elem) {
3
+ this.$form = $('form.folder-actions', elem);
4
+ this.$select = $('select', this.$form);
5
+
6
+ var addAutocomplete = this.addAutocomplete;
7
+ $.each(this.$select, function(_, select){
8
+ addAutocomplete(select);
9
+ });
10
+ }
11
+
12
+ BlacklightFolders.FolderEditController.prototype = {
13
+ addAutocomplete: function(select) {
14
+ select = $(select);
15
+
16
+ // Remove the bootstrap class so that select2 can apply its own styles
17
+ select.removeClass('form-control');
18
+
19
+ // The first element has a prompt. We remove it from the list.
20
+ var element = $('option:first-child', select);
21
+ var label = element.text();
22
+ element.empty();
23
+
24
+ select.select2({placeholder: label});
25
+ }
26
+ }
27
+
28
+ Blacklight.onLoad(function() { new BlacklightFolders.FolderEditController($('.blacklight-folders-edit')) });
@@ -0,0 +1,65 @@
1
+ // This is for the catalog index page
2
+ BlacklightFolders.CatalogIndexController = function(elem) {
3
+ if (elem.length == 0) {
4
+ return null;
5
+ }
6
+
7
+ this.$element = elem
8
+ this.$checkboxes = $('input[type=checkbox][name="folder_ids[]"]', elem);
9
+ this.$form = $('form[data-behavior=move-to-folder]', elem);
10
+ this.$select = $('select', this.$form);
11
+ this.$hidden = $('input[name="document_ids"]', this.$form);
12
+
13
+ this.addControls();
14
+ this.addAutocomplete();
15
+ this.attachEvents();
16
+ }
17
+
18
+ BlacklightFolders.CatalogIndexController.prototype = {
19
+ addControls: function() {
20
+ this.$checkboxes.show();
21
+ },
22
+
23
+ addAutocomplete: function() {
24
+ // Remove the bootstrap class so that select2 can apply its own styles
25
+ this.$select.removeClass('form-control');
26
+ // The first element has a prompt. We remove it from the list.
27
+ var element = $('option:first-child', this.$select);
28
+ var label = element.text();
29
+ element.empty();
30
+ this.$select.select2({placeholder: label});
31
+ },
32
+
33
+
34
+ showForm: function() {
35
+ this.$form.show();
36
+ },
37
+
38
+ hideForm: function() {
39
+ this.$form.hide();
40
+ },
41
+
42
+ showOrHideForm: function () {
43
+ if (this.$checkboxes.is(":checked")) {
44
+ this.showForm();
45
+ } else {
46
+ this.hideForm();
47
+ }
48
+ },
49
+
50
+ submit: function(event) {
51
+ var folder_id = $(event.currentTarget).val();
52
+ var vals = $.map(this.$checkboxes.filter(':checked'), function(e) { return $(e).val(); })
53
+ this.$hidden.val(vals.join());
54
+ this.$form.submit();
55
+ },
56
+
57
+ attachEvents: function() {
58
+ that = this;
59
+ this.$checkboxes.on('change', function() { that.showOrHideForm(); });
60
+ this.$select.on('change', function(event) { that.submit(event); });
61
+ }
62
+
63
+ }
64
+
65
+ Blacklight.onLoad(function() { new BlacklightFolders.CatalogIndexController($('.blacklight-catalog-index')) });
@@ -0,0 +1,27 @@
1
+ // This is for the catalog show page
2
+ BlacklightFolders.CatalogShowController = function(elem) {
3
+ if (elem.length == 0) {
4
+ return null;
5
+ }
6
+
7
+ this.$element = elem
8
+ this.$form = $('.show-tools .folder form', elem);
9
+ this.$select = $('select', this.$form);
10
+
11
+ this.addAutocomplete();
12
+ }
13
+
14
+ BlacklightFolders.CatalogShowController.prototype = {
15
+ addAutocomplete: function() {
16
+ // Remove the bootstrap class so that select2 can apply its own styles
17
+ this.$select.removeClass('form-control');
18
+ // The first element has a prompt. We remove it from the list.
19
+ var element = $('option:first-child', this.$select);
20
+ var label = element.text();
21
+ element.empty();
22
+ this.$select.select2({placeholder: label});
23
+ }
24
+ }
25
+
26
+ Blacklight.onLoad(function() { new BlacklightFolders.CatalogShowController($('.blacklight-catalog-show')) });
27
+
@@ -0,0 +1 @@
1
+ BlacklightFolders = {}
@@ -0,0 +1,36 @@
1
+ // This is for the folders edit page
2
+ Blacklight.onLoad(function(){
3
+
4
+ // Display the drag handle
5
+ $('.dd-handle').removeClass('hidden');
6
+
7
+ // Initialize drag-and-drop behavior
8
+ $('.dd').nestable({ maxDepth: 1, dropCallback: function(data){
9
+ allItemsData = $('.dd').nestable('serialize');
10
+ itemsContainer = $('.dd');
11
+ reorderItems(allItemsData, itemsContainer);
12
+ } });
13
+
14
+ var reorderItems = function(data, container) {
15
+ var folderId = container.data('folder_id');
16
+ var items = data;
17
+ for(var i in data){
18
+ items[i]['position'] = (parseInt(i) + 1).toString();
19
+ }
20
+
21
+ $.ajax({
22
+ type: "PATCH",
23
+ url: '/blacklight/folders/' + folderId + '.json',
24
+ data: { folder: {items_attributes: items}},
25
+ success: function(data, status){
26
+ }
27
+ });
28
+
29
+ // Update the position text in the form
30
+ var textElements = $('.dd .position-input');
31
+ for(var i in textElements) {
32
+ textElements[i].value = parseInt(i) + 1;
33
+ }
34
+ };
35
+
36
+ });
@@ -0,0 +1,10 @@
1
+ /*
2
+ * Sort the list of folders when the dropdown is changed
3
+ *
4
+ */
5
+
6
+ Blacklight.onLoad(function() {
7
+ $('#order_by').change(function() {
8
+ $(this).closest('form').submit();
9
+ });
10
+ });
@@ -0,0 +1,8 @@
1
+ //= require blacklight_folders/sort
2
+ //= require blacklight_folders/catalog
3
+ //= require blacklight_folders/catalog/index
4
+ //= require blacklight_folders/catalog/show
5
+ //= require blacklight_folders/catalog/edit
6
+ //= require blacklight_folders/folder_items
7
+ //= require jquery.nestable
8
+ //= require select2
@@ -0,0 +1,4 @@
1
+ @import 'select2';
2
+ @import "blacklight_folders/forms";
3
+ @import "blacklight_folders/folders";
4
+ @import "blacklight_folders/nestable";
@@ -0,0 +1,56 @@
1
+ $table-border-color: #dddddd;
2
+ $table_border: 1px dotted $table-border-color;
3
+
4
+ .folder-index {
5
+ #sort-tool {
6
+ margin-top: 30px
7
+ }
8
+ }
9
+
10
+ .folder-view {
11
+ .bookmarkTools {
12
+ margin-top: 20px;
13
+ }
14
+ }
15
+
16
+ .blacklight-folders-edit {
17
+ ol {
18
+ list-style-type: none;
19
+ border: 1px solid $table-border-color;
20
+ padding: 0;
21
+ margin-top: 20px;
22
+
23
+ li {
24
+ padding: 5px;
25
+ margin: 0;
26
+ border-top: $table_border;
27
+
28
+ .title {
29
+ padding-top: 6px;
30
+ padding-left: 0;
31
+ }
32
+ }
33
+
34
+ li:first-child {
35
+ border-top: none;
36
+ }
37
+ }
38
+ }
39
+
40
+ .glyphicon-unlock:before {
41
+ // The Bootstrap halflings doesn't have the unlock icon, so we'll use the globe
42
+ // You should be able to override this if you meet the license terms for
43
+ // glyphicons. See: http://glyphicons.com/license/
44
+ content: "\e135"
45
+ }
46
+
47
+ #folder-tools {
48
+ margin-top: 5px;
49
+ height: 25px;
50
+ }
51
+
52
+ .position-input {
53
+ width: 40%;
54
+ text-align: center;
55
+ }
56
+
@@ -0,0 +1,11 @@
1
+
2
+ .actions {
3
+ padding: 1px;
4
+ margin-top: 1em;
5
+ @extend .clearfix;
6
+ }
7
+
8
+ .primary-actions {
9
+ margin-top: 3px;
10
+ @extend .pull-right;
11
+ }
@@ -0,0 +1,129 @@
1
+ // Drag and drop elements for 'nestable' gem
2
+
3
+ .dd {
4
+ position: relative;
5
+ display: block;
6
+ margin: 0;
7
+ padding: 0;
8
+ list-style: none;
9
+ }
10
+
11
+ tbody.dd-list {
12
+ display: table-row-group;
13
+ padding-left: 0;
14
+ }
15
+
16
+ tbody.dd-dragel {
17
+ display: table;
18
+ }
19
+
20
+ li.dd-item {
21
+ list-style: none;
22
+ }
23
+
24
+ tr.dd-item {
25
+ display: table-row;
26
+ position: relative;
27
+ }
28
+
29
+ .dd-list { display: block; position: relative; margin: 0; padding: 0; list-style: none; }
30
+ .dd-list .dd-list { padding-left: 30px; }
31
+ .dd-collapsed .dd-list { display: none; }
32
+
33
+ .dd-item,
34
+ .dd-empty,
35
+ .dd-placeholder { display: block; position: relative; margin: 0; padding: 0; min-height: 20px; line-height: 20px; }
36
+
37
+ .dd-handle {
38
+ display: inline-block;
39
+ height: 100%;
40
+ margin: 0 0.2em 0 0;
41
+ padding: 5px 10px;
42
+ color: #333;
43
+ text-decoration: none;
44
+ text-align: center;
45
+ font-size: 1.5em;
46
+ font-weight: bold;
47
+ border: 1px solid #ccc;
48
+ background: #fafafa;
49
+ background: -webkit-linear-gradient(top, #fafafa 0%, #eee 100%);
50
+ background: -moz-linear-gradient(top, #fafafa 0%, #eee 100%);
51
+ background: linear-gradient(top, #fafafa 0%, #eee 100%);
52
+ -webkit-border-radius: 3px;
53
+ border-radius: 3px;
54
+ box-sizing: border-box; -moz-box-sizing: border-box;
55
+ }
56
+ .dd-handle:hover {
57
+ color: #2ea8e5;
58
+ background: #fff;
59
+ cursor: grab;
60
+ }
61
+
62
+ .dd-item > button { display: block; position: relative; cursor: pointer; float: left; width: 25px; height: 20px; margin: 5px 0; padding: 0; text-indent: 100%; white-space: nowrap; overflow: hidden; border: 0; background: transparent; line-height: 1; text-align: center; font-weight: bold; }
63
+ .dd-item > button:before { content: '+'; display: block; position: absolute; width: 100%; text-align: center; text-indent: 0; }
64
+ .dd-item > button[data-action="collapse"]:before { content: '-'; }
65
+
66
+ .dd-placeholder,
67
+ .dd-empty { margin: 5px 0; padding: 0; min-height: 30px; border: 1px dashed #b6bcbf; box-sizing: border-box; -moz-box-sizing: border-box; }
68
+ .dd-empty { border: 1px dashed #bbb; min-height: 100px;
69
+ background-image: -webkit-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff),
70
+ -webkit-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff);
71
+ background-image: -moz-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff),
72
+ -moz-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff);
73
+ background-image: linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff),
74
+ linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff);
75
+ background-size: 60px 60px;
76
+ background-position: 0 0, 30px 30px;
77
+ }
78
+
79
+ .dd-dragel { position: absolute; pointer-events: none; z-index: 9999; }
80
+ .dd-dragel > .dd-item .dd-handle { margin-top: 0; }
81
+ .dd-dragel .dd-handle {
82
+ -webkit-box-shadow: 2px 4px 6px 0 rgba(0,0,0,.1);
83
+ box-shadow: 2px 4px 6px 0 rgba(0,0,0,.1);
84
+ }
85
+
86
+ /**
87
+ * Nestable Extras
88
+ */
89
+
90
+ .nestable-lists { display: block; clear: both; padding: 30px 0; width: 100%; border: 0; border-top: 2px solid #ddd; border-bottom: 2px solid #ddd; }
91
+
92
+
93
+ .dd-hover > .dd-handle { background: #2ea8e5 !important; }
94
+
95
+ /**
96
+ * Nestable Draggable Handles
97
+ */
98
+
99
+ .dd3-content { display: block; margin: 5px 0; padding: 0 0 0 30px;
100
+ background: #fafafa;
101
+ background: -webkit-linear-gradient(top, #fafafa 0%, #eee 100%);
102
+ background: -moz-linear-gradient(top, #fafafa 0%, #eee 100%);
103
+ background: linear-gradient(top, #fafafa 0%, #eee 100%);
104
+ -webkit-border-radius: 3px;
105
+ border-radius: 3px;
106
+ box-sizing: border-box; -moz-box-sizing: border-box;
107
+ }
108
+ .dd3-content.page-admin {
109
+ position: relative;
110
+ }
111
+ .dd3-content .panel-body {background: white;}
112
+ .dd-dragel > .dd3-item > .dd3-content { margin: 0; }
113
+
114
+ .dd3-item > button { margin-left: 30px; }
115
+
116
+ .dd3-handle {
117
+ position: absolute; margin: 0; left: 0; top: 0; cursor: pointer; width: 30px;
118
+ text-indent: 100px;
119
+ white-space: nowrap; overflow: hidden;
120
+ border: 1px solid #aaa;
121
+ background: #ddd;
122
+ background: -webkit-linear-gradient(top, #ddd 0%, #bbb 100%);
123
+ background: -moz-linear-gradient(top, #ddd 0%, #bbb 100%);
124
+ background: linear-gradient(top, #ddd 0%, #bbb 100%);
125
+ border-top-right-radius: 0;
126
+ border-bottom-right-radius: 0;
127
+ }
128
+ .dd3-handle:before { content: '≡'; display: block; position: absolute; left: 0; top: 9px; width: 100%; text-align: center; text-indent: 0; color: #fff; font-weight: normal; }
129
+ .dd3-handle:hover { background: #ddd; }
@@ -0,0 +1,11 @@
1
+ module Blacklight::Folders
2
+
3
+ # Inherit from the main app's ApplicationController
4
+ # so that we can inherit the main app's layout.
5
+ class ApplicationController < ::ApplicationController
6
+
7
+ include Blacklight::Folders::ApplicationControllerBehavior
8
+ check_authorization
9
+
10
+ end
11
+ end