rails_filemanager_ajax 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/Rakefile +34 -0
- data/app/assets/javascripts/rails_filemanager/application.js +18 -0
- data/app/assets/javascripts/rails_filemanager/filemanager_files.js +96 -0
- data/app/assets/stylesheets/rails_filemanager/application.css +17 -0
- data/app/assets/stylesheets/rails_filemanager/filemanager_files.css.scss +43 -0
- data/app/assets/stylesheets/scaffold.css +56 -0
- data/app/controllers/rails_filemanager/application_controller.rb +2 -0
- data/app/controllers/rails_filemanager/filemanager_files_controller.rb +101 -0
- data/app/helpers/rails_filemanager/application_helper.rb +4 -0
- data/app/helpers/rails_filemanager/filemanager_files_helper.rb +4 -0
- data/app/models/rails_filemanager/filemanager_file.rb +49 -0
- data/app/views/layouts/rails_filemanager/_shim.html.haml +2 -0
- data/app/views/layouts/rails_filemanager/application.html.haml +15 -0
- data/app/views/rails_filemanager/filemanager_files/create.html.haml +0 -0
- data/app/views/rails_filemanager/filemanager_files/index.html.haml +278 -0
- data/config/routes.rb +9 -0
- data/db/migrate/20140728234034_create_rails_filemanager_filemanager_files.rb +11 -0
- data/db/migrate/20140728234043_add_attachment_file_to_filemanager_files.rb +10 -0
- data/db/migrate/20140729004353_add_ancestry_to_rails_filemanager_filemanager_files.rb +6 -0
- data/db/migrate/20140729130927_add_owner_class_to_filemanager_files.rb +5 -0
- data/lib/rails_filemanager/acts_as_filemanager_owner.rb +29 -0
- data/lib/rails_filemanager/engine.rb +5 -0
- data/lib/rails_filemanager/version.rb +3 -0
- data/lib/rails_filemanager.rb +5 -0
- data/lib/tasks/rails_filemanager_tasks.rake +4 -0
- data/test/controllers/rails_filemanager/filemanager_files_controller_test.rb +51 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/javascripts/owners.js +2 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/assets/stylesheets/owners.css.scss +3 -0
- data/test/dummy/app/assets/stylesheets/scaffolds.css.scss +69 -0
- data/test/dummy/app/controllers/application_controller.rb +16 -0
- data/test/dummy/app/controllers/owners_controller.rb +59 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/helpers/owners_helper.rb +6 -0
- data/test/dummy/app/models/owner.rb +14 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/app/views/owners/_form.html.haml +16 -0
- data/test/dummy/app/views/owners/edit.html.haml +7 -0
- data/test/dummy/app/views/owners/index.html.haml +21 -0
- data/test/dummy/app/views/owners/new.html.haml +5 -0
- data/test/dummy/app/views/owners/show.html.haml +12 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/config/application.rb +23 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +82 -0
- data/test/dummy/config/environments/test.rb +39 -0
- data/test/dummy/config/initializers/assets.rb +8 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +8 -0
- data/test/dummy/config/secrets.yml +22 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/migrate/20140729100443_create_owners.rb +10 -0
- data/test/dummy/db/schema.rb +39 -0
- data/test/dummy/log/development.log +10747 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/public/system/rails_filemanager/filemanager_files/files/000/000/003/original/Citra_Tagore.jpg +0 -0
- data/test/dummy/test/controllers/owners_controller_test.rb +49 -0
- data/test/dummy/test/fixtures/owners.yml +9 -0
- data/test/dummy/test/helpers/owners_helper_test.rb +4 -0
- data/test/dummy/test/models/owner_test.rb +7 -0
- data/test/dummy/tmp/cache/assets/development/sass/06e8abb566c8fb8f4c0c0768e4e7dfb0a44c8302/jquery.fileupload-ui.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/269b2c30a13278c2daa25f9f9518d279ebd0daa3/owners.css.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/269b2c30a13278c2daa25f9f9518d279ebd0daa3/scaffolds.css.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/2ac1e0396a671536e7123f5102abcb4f3c5057c3/filemanager_files.css.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_alerts.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_badges.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_breadcrumbs.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_button-groups.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_buttons.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_carousel.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_close.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_code.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_component-animations.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_dropdowns.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_forms.scssc +999 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_glyphicons.scssc +1544 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_grid.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_input-groups.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_jumbotron.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_labels.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_list-group.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_media.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_mixins.scssc +2350 -1
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_modals.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_navbar.scssc +1507 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_navs.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_normalize.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_pager.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_pagination.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_panels.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_popovers.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_print.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_progress-bars.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_responsive-utilities.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_scaffolding.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_tables.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_thumbnails.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_tooltip.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_type.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_utilities.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_variables.scssc +1754 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/_wells.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/eb1f508fda6dcee8da4ee52d12c9e3ecccd40b0b/bootstrap.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/05547b4dc4ac7167699e3c6ca1748408 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/07615433030e8d9f7593c93dbfe042c9 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/08a41aa113973efd2391ba42e0acf7d9 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/0951b5f5a201611bebd9e47370368955 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/09fcdef5c72bfbe4895d5fa06342e2a5 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/0c9c91cb1d75d7b309f8a8b8819b47ce +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/0f24e96ed9b11de75fcba57bb32c5a4a +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/10fcfbe6ebae11a40c8eac41939a1b9a +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/1176716ec61359bf55e221898e16af24 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/1b4d0915392c39858de432dede9b911e +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/1bb60499f6e601c607f0aefd0512bbf3 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/1c0b94c54f2b4195d78f2056dcf4de64 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/1c847a043caf7bc59eb29d82288a9dfe +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/1e08eaa800f7c76b6743a5e6de03cfae +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/1e882c8e5f9215c624d4ae128d8c33be +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/24ff59eb269225193ed0ac0970e09cfe +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/2733ac7c7b19cc50e6cec540faa008dc +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/2787468132f9e1a06bb3e83b2394a13e +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/2ac23630ddf03b4814b6919cd330bf61 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/2bffc9ef51c9c7032280ef8da250edec +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/2dbf869c27d4392ca3ed506bdf1e59e7 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/2f8112713eb17105b86642c9ded32188 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/2fc56d260056e14107a4fc8c03649f5d +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/376ad072d3b7a5152c6884bdd9f5f666 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/390df4eaa4222ad1c92f96e14388e543 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/3b53c140931ae99abe578dcf415a1429 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/3d9b9056f45a21e2776ebaff1864f95e +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/3e3114305e5162bbbbbc293bb5b429ff +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/3f06720c4f55355e321def410b113ba2 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/414350bad002246cfe1a3228e9bc9f27 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/42378c18e597fb515a056777b8898a55 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/48c0dc34c37e97245938864bbfbbe29b +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/4bfd82df35a881a981597ec930014ba5 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/4d4a1f1c647d90205761fd99526a5b70 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/4d66e61ff234df7764a35902b1948fc4 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/4fa7c9922999c2b04c01c8551eac17fc +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/53017b667f81c9636f7495dba55b6d0e +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/55693f566f3fa3e777f3386bb9bcd361 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/5617f782181a6c91d5cf520dcd5b0bc5 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/59a06baa574b1d91519ae64b7133c1cd +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/5c2c985b5146452ea41f014106af6c6f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/5f9612f3cac77791ce123fb21a05a20f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/63f619c3cf52f35406f478ee156a6c9e +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/675dc727fc08ec2f6009bd85e68a1937 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6764bb9e5d10dc3638b5f4dc088542bf +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/67c58dba4dc254383e87ce053d9221fc +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6a84a62303e465b36ab6a863331ffa33 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6b5f6dc45c6994188a6e8c77b2b41182 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6ba09cd00fb70cf57d04ccc49b6bb26a +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6ca4b7913d942da04dfb93e10481d96d +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6e3e5f8eaf5a1930932dff7bc5a7fa09 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6ed73e831b3dd2f6257d499d35f8ede0 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6f34a9d81cbc6a1fc2c391801f37b3f1 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/70af985faf38b3209342724bb9638c31 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/71c677fb35d8508d8c2a3447445bb686 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/73537c708deb8a9801608fa2f3165a3b +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/74eedab6209ac4e9444171a6e97a1a18 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/753122468e70509ea5729d60f7075e01 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/755e13519dcac438d336400b07329685 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/7af5753d3dc58a5ea62d033e6ae60416 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/7f5991d2d2950a2f4c69b88ca3798b1b +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/7fa30989ae8cd4caaeef29e969a7e49a +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/829e951f5bc2f94ef66d86b28b199447 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/87d059ab7bf04888fe5cc80d6c743fc2 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/8d3ace7636b4861d7d7d41d630bdb0d5 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/8da23447eff5b792b79410aa205243ab +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/8e15b993209727f035c02a23d97ef686 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/8f85f4c82450b7df588e06bfcaf5d577 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/8fa9f364912bf5055774bde331a79b47 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/91fafb9e332082218d34025e665af421 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/945511fa7fa414421e21fb810f1083de +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/963e48cefbd22da04c4efd4041205e46 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/99007a07cc79407b0cf4a947a8e377b9 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/9e42f95a57e043a9f1537541dbca0651 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/9fb2fb83974cba314709fce5b0cc98b6 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/a03cc47fb9de866351007fdb25b670c4 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/a03edc50c52d044c3a279f02d674332d +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/a1be7b98e527b5ccfb6d474003028586 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/a1bff0fe1ad3baab2a6c6152f52b64dc +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/a6e0c403a88f0889defb1fad89f74c1d +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/a904a27b55343ddab7cc75fede000068 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ad084646018316781b4fa4c25045ac30 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ad30c84e09987316a2306242ce59d8d7 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/adfea7d5c775945ffef7abe90d5e216d +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/b110702874f121572f2c0df5784ae00b +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/b24d0a0fd7d267ecd3c3b0c59a03a039 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/b523510e526eb38272c19e3dbea664fd +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/b572837e4078665022d5acf6caa684a5 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/bb2064b2eed32f7503d9fb50ee2f5f2b +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/bbd5f957053239fb6c68473a1bfc7c22 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/bc788596b4ccbbdd925092ee9cb747a7 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/bcae55bba3b0a475051933cbe19038c6 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/bd3936370d0f952ada5774e2230046ed +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/bd4f5d4596e32467fefda01df1efad13 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/bdba836f1bbbde7678c39db6eece4920 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/be0fad3fbbf75b755f4344ae91bf5aec +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/c336f1457939ef7e278043cd68c7eef5 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/c4dc2bc79316f8edde30e4a8aca5ba4f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/c5547360880903bd6380d84aaa9ba5f6 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/c70beb27074431b0b1c236bb0c0993d1 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/c7306b07e448f36160aa7c77b6038385 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/c880a2da8a8e3ff9c5b08ab35536a4f6 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/c9c048289a96a09f5c1276825d17f031 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ca2b82511d11b9dc75913ef2ccf454bb +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/cff044ad29738248db9a8f76270079c3 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d48673260416324e05fbc43a125bd165 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d4fcf32e40663c080f923f32f75c9265 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d57dcb9c70788acb6195605b96350fd2 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d8418c0e358beb48584a972b9d35e4d0 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d931e476d1bbee7a10c6c653506fe3da +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/dbc3bdebc9490b955785e117ee170e6e +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/dd52fc1a04bf14e4bad07ba32d46f17e +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/de2755a093405fd20933dc3fb001e71b +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/e22c0b77164bd4f3f4f6bf616719dbef +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/e31cfc5aabff9b844f6baf5707b5ed0f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/e459168835a5f27b832ace20874f7c10 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/e473b566f8e6ce7d0461acca99b1adc1 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/e4bb3a0d4a4acc5a83e23e0ef6e200e0 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/e4bb690d672680782021b93d36774332 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/e560cec5ab94ec71bc34af22d3f64cdb +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/e76ddba38ebb552893d1dc4602211cbd +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/e802e3a1b2db1b432ef465bff407a073 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ea421f7f2366af176c5bc920d9286baa +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ea728ad3f7a1d4a2e75a9cb6baecaa34 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/eb4b4dfce857f7f08f4ed81e9d3fdf0b +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/eb4ed545a7fa1b535192b8df56ccdc55 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ebc54658234ae2f8eee2e9d3379835c1 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ec917e55ae6c96e47cbcfc35cfc12fb6 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ee09e5ec29db7472f582fd475c4ae061 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f0497e9a02cfb5752be79037b887ef9c +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f2cf712a6cef311fa1fa35fc5d363b23 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f5885897d937f7253e2bc179860fe3fc +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f84d5de211cf925ae1922c571954210e +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/fbd3c7247de3ffa7fe37c47d17270f45 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/fc67199da32b5ab860bd1743ce50b9f4 +0 -0
- data/test/dummy/tmp/pids/server.pid +1 -0
- data/test/fixtures/rails_filemanager/filemanager_files.yml +11 -0
- data/test/helpers/rails_filemanager/filemanager_files_helper_test.rb +6 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/models/rails_filemanager/filemanager_file_test.rb +9 -0
- data/test/rails_filemanager_test.rb +7 -0
- data/test/test_helper.rb +15 -0
- metadata +696 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 7ede96a22a79480baab3c699f282315a2088cc4b
|
4
|
+
data.tar.gz: 50dcc3f56c8ed6d8b2ef0a48a50dd7d524775479
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8b7670d63f5d6682308d275c8ca6039c59bc7f2b2b7dcabe8c87198a68dbebe2bd22e3ea97953ad2ea99b42510a1f133f2cd6257f83accb734a06a0d93fc30f8
|
7
|
+
data.tar.gz: e0ecafd5386f0d647b7913ed7a937c58c84839037fd544ff5ca3ee9d24d071fdef2f7773677bf7af545108f561b32a440337a032bac7563f60989303367ce804
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2014 YOURNAME
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
ADDED
@@ -0,0 +1,34 @@
|
|
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
|
+
|
9
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
10
|
+
rdoc.rdoc_dir = 'rdoc'
|
11
|
+
rdoc.title = 'RailsFilemanager'
|
12
|
+
rdoc.options << '--line-numbers'
|
13
|
+
rdoc.rdoc_files.include('README.rdoc')
|
14
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
|
+
end
|
16
|
+
|
17
|
+
APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
|
18
|
+
load 'rails/tasks/engine.rake'
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
Bundler::GemHelper.install_tasks
|
23
|
+
|
24
|
+
require 'rake/testtask'
|
25
|
+
|
26
|
+
Rake::TestTask.new(:test) do |t|
|
27
|
+
t.libs << 'lib'
|
28
|
+
t.libs << 'test'
|
29
|
+
t.pattern = 'test/**/*_test.rb'
|
30
|
+
t.verbose = false
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
task default: :test
|
@@ -0,0 +1,18 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
+
// listed below.
|
3
|
+
//
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
+
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
6
|
+
//
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
+
// compiled file.
|
9
|
+
//
|
10
|
+
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
|
11
|
+
// about supported directives.
|
12
|
+
//
|
13
|
+
//= require jquery
|
14
|
+
//= require jquery_ujs
|
15
|
+
//= require bootstrap
|
16
|
+
//= require jquery-fileupload
|
17
|
+
//= require zeroclipboard
|
18
|
+
//= require_tree .
|
@@ -0,0 +1,96 @@
|
|
1
|
+
$(document).ready(function() {
|
2
|
+
});
|
3
|
+
|
4
|
+
window.fileManager = {
|
5
|
+
|
6
|
+
filesContainer: undefined,
|
7
|
+
|
8
|
+
initialize: function() {
|
9
|
+
var that = this;
|
10
|
+
this.filesContainer = $('.files');
|
11
|
+
this.filesContainer.data('parents', []);
|
12
|
+
this.vivifyFiles();
|
13
|
+
|
14
|
+
$('#up-dir').on('click', function() {
|
15
|
+
that.dirUp();
|
16
|
+
});
|
17
|
+
|
18
|
+
// $.contextMenu('html5');
|
19
|
+
|
20
|
+
// $.contextMenu({
|
21
|
+
// selector: '.menu-active-area',
|
22
|
+
// items: {
|
23
|
+
// foo: {name: 'Show link', callback: function(key, opt) {
|
24
|
+
// console.log(key);
|
25
|
+
// console.log(opt);
|
26
|
+
// console.log($(this));
|
27
|
+
|
28
|
+
// $(this).parent().find('.direct-link').show();
|
29
|
+
// }
|
30
|
+
// },
|
31
|
+
// },
|
32
|
+
// });
|
33
|
+
},
|
34
|
+
|
35
|
+
vivifyFiles: function() {
|
36
|
+
|
37
|
+
// tree navigation down
|
38
|
+
$('.files .file .menu-active-area').on('click', function() {
|
39
|
+
if ($(this).parent().hasClass('directory')) {
|
40
|
+
console.log('dir');
|
41
|
+
fileManager.dirDown($(this).parent().data('id'));
|
42
|
+
}
|
43
|
+
else {
|
44
|
+
// file
|
45
|
+
if (window.opener) {
|
46
|
+
console.log($(this).parent());
|
47
|
+
window.opener.publicPagesAdmin.bodyEditor.insert($(this).parent().data('file').url);
|
48
|
+
}
|
49
|
+
console.log('file');
|
50
|
+
}
|
51
|
+
});
|
52
|
+
|
53
|
+
var clip = new ZeroClipboard($('.zeroclip-button'));
|
54
|
+
|
55
|
+
$('.remove-file').on('click', function(e) {
|
56
|
+
e.preventDefault();
|
57
|
+
console.log(e);
|
58
|
+
if (confirm($(this).data('confirmation-text'))) {
|
59
|
+
console.log ('confirmed');
|
60
|
+
$.ajax({
|
61
|
+
"type": "POST",
|
62
|
+
"url": $(this).attr('href'),
|
63
|
+
"data": "_method=delete",
|
64
|
+
"dataType": "json",
|
65
|
+
"complete": function() {
|
66
|
+
window.reloadFiles();
|
67
|
+
}
|
68
|
+
});
|
69
|
+
}
|
70
|
+
else {
|
71
|
+
console.log ('not confirmed');
|
72
|
+
}
|
73
|
+
});
|
74
|
+
},
|
75
|
+
|
76
|
+
cd: function(newDirId) {
|
77
|
+
this.filesContainer.data('cwd-id', newDirId);
|
78
|
+
$('#fileupload #parent_id_input').val(newDirId);
|
79
|
+
reloadFiles();
|
80
|
+
},
|
81
|
+
|
82
|
+
dirUp: function() {
|
83
|
+
var parents = this.filesContainer.data('parents');
|
84
|
+
var parentId = parents.pop();
|
85
|
+
this.filesContainer.data('parents', parents);
|
86
|
+
|
87
|
+
this.cd(parentId);
|
88
|
+
},
|
89
|
+
|
90
|
+
dirDown: function(dirId) {
|
91
|
+
var parents = this.filesContainer.data('parents');
|
92
|
+
parents.push(this.filesContainer.data('cwd-id'));
|
93
|
+
this.filesContainer.data('parents', parents);
|
94
|
+
fileManager.cd(dirId);
|
95
|
+
},
|
96
|
+
};
|
@@ -0,0 +1,17 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
+
* listed below.
|
4
|
+
*
|
5
|
+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
+
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
|
7
|
+
*
|
8
|
+
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
|
9
|
+
* compiled file so the styles you add here take precedence over styles defined in any styles
|
10
|
+
* defined in the other CSS/SCSS files in this directory. It is generally better to create a new
|
11
|
+
* file per style scope.
|
12
|
+
*
|
13
|
+
*= require_self
|
14
|
+
*= require bootstrap
|
15
|
+
*= require jquery.fileupload-ui
|
16
|
+
*= require_tree .
|
17
|
+
*/
|
@@ -0,0 +1,43 @@
|
|
1
|
+
/*
|
2
|
+
Place all the styles related to the matching controller here.
|
3
|
+
They will automatically be included in application.css.
|
4
|
+
*/
|
5
|
+
|
6
|
+
@import 'bootstrap';
|
7
|
+
|
8
|
+
body {
|
9
|
+
padding-top: 50px;
|
10
|
+
padding-bottom: 50px;
|
11
|
+
}
|
12
|
+
|
13
|
+
|
14
|
+
/* custom buttoms */
|
15
|
+
.destroy-button {
|
16
|
+
@extend .btn;
|
17
|
+
@extend .btn-danger;
|
18
|
+
@extend .glyphicon;
|
19
|
+
@extend .glyphicon-remove;
|
20
|
+
}
|
21
|
+
|
22
|
+
.ok-button {
|
23
|
+
@extend .btn;
|
24
|
+
@extend .btn-success;
|
25
|
+
@extend .glyphicon;
|
26
|
+
@extend .glyphicon-ok;
|
27
|
+
}
|
28
|
+
|
29
|
+
.file-manager {
|
30
|
+
.file {
|
31
|
+
border: 1px solid #808080;
|
32
|
+
display: inline-block;
|
33
|
+
height: 200px;
|
34
|
+
margin: 15px;
|
35
|
+
overflow: hidden;
|
36
|
+
padding: 20px;
|
37
|
+
width: 200px;
|
38
|
+
}
|
39
|
+
|
40
|
+
.clickable {
|
41
|
+
cursor: pointer;
|
42
|
+
}
|
43
|
+
}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
body { background-color: #fff; color: #333; }
|
2
|
+
|
3
|
+
body, p, ol, ul, td {
|
4
|
+
font-family: verdana, arial, helvetica, sans-serif;
|
5
|
+
font-size: 13px;
|
6
|
+
line-height: 18px;
|
7
|
+
}
|
8
|
+
|
9
|
+
pre {
|
10
|
+
background-color: #eee;
|
11
|
+
padding: 10px;
|
12
|
+
font-size: 11px;
|
13
|
+
}
|
14
|
+
|
15
|
+
a { color: #000; }
|
16
|
+
a:visited { color: #666; }
|
17
|
+
a:hover { color: #fff; background-color:#000; }
|
18
|
+
|
19
|
+
div.field, div.actions {
|
20
|
+
margin-bottom: 10px;
|
21
|
+
}
|
22
|
+
|
23
|
+
#notice {
|
24
|
+
color: green;
|
25
|
+
}
|
26
|
+
|
27
|
+
.field_with_errors {
|
28
|
+
padding: 2px;
|
29
|
+
background-color: red;
|
30
|
+
display: table;
|
31
|
+
}
|
32
|
+
|
33
|
+
#error_explanation {
|
34
|
+
width: 450px;
|
35
|
+
border: 2px solid red;
|
36
|
+
padding: 7px;
|
37
|
+
padding-bottom: 0;
|
38
|
+
margin-bottom: 20px;
|
39
|
+
background-color: #f0f0f0;
|
40
|
+
}
|
41
|
+
|
42
|
+
#error_explanation h2 {
|
43
|
+
text-align: left;
|
44
|
+
font-weight: bold;
|
45
|
+
padding: 5px 5px 5px 15px;
|
46
|
+
font-size: 12px;
|
47
|
+
margin: -7px;
|
48
|
+
margin-bottom: 0px;
|
49
|
+
background-color: #c00;
|
50
|
+
color: #fff;
|
51
|
+
}
|
52
|
+
|
53
|
+
#error_explanation ul li {
|
54
|
+
font-size: 12px;
|
55
|
+
list-style: square;
|
56
|
+
}
|
@@ -0,0 +1,101 @@
|
|
1
|
+
require_dependency "rails_filemanager/application_controller"
|
2
|
+
|
3
|
+
|
4
|
+
module RailsFilemanager
|
5
|
+
class FilemanagerFilesController < ApplicationController
|
6
|
+
|
7
|
+
before_action :load_current_owner
|
8
|
+
|
9
|
+
def index
|
10
|
+
respond_to do |format|
|
11
|
+
|
12
|
+
format.html
|
13
|
+
format.json do
|
14
|
+
|
15
|
+
|
16
|
+
# if params[:dir_id].present? && params[:dir_id] != '0'
|
17
|
+
# @directory = MediaManagerFile.find_by id: params[:dir_id]
|
18
|
+
# else
|
19
|
+
# @directory = @choir.media_manager_files.root_dir.first
|
20
|
+
# unless @directory
|
21
|
+
# @directory = @choir.media_manager_files.create name: @choir.name
|
22
|
+
# end
|
23
|
+
# end
|
24
|
+
#
|
25
|
+
if params[:dir_id].present? && params[:dir_id] != '0'
|
26
|
+
@directory = FilemanagerFile.find_by id: params[:dir_id]
|
27
|
+
else
|
28
|
+
@directory = @current_owner.rails_filemanager_files.root_dir.first
|
29
|
+
unless @directory
|
30
|
+
@directory = @current_owner.rails_filemanager_files.create name: 'root'
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
logger.debug @directory.inspect
|
35
|
+
logger.debug @directory.children.inspect
|
36
|
+
|
37
|
+
@uploads = @directory.children.sort_named
|
38
|
+
|
39
|
+
render json: { directory_name: @directory.name, files: @uploads.map{|upload| upload.to_jq_upload } }
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def create
|
45
|
+
file_params = filemanager_file_params
|
46
|
+
file_params['parent_id'] = @current_owner.rails_filemanager_files.first.id if file_params['parent_id'].to_i == 0 || file_params['parent_id'].blank?
|
47
|
+
#file_params.delete_if{|k, v| k == 'parent_id' && (v.to_i == 0 || v.blank?) }
|
48
|
+
logger.debug file_params.inspect
|
49
|
+
@upload = FilemanagerFile.new file_params
|
50
|
+
@upload.owner = @current_owner
|
51
|
+
|
52
|
+
respond_to do |format|
|
53
|
+
if @upload.save
|
54
|
+
format.html {
|
55
|
+
render json: [@upload.to_jq_upload].to_json,
|
56
|
+
content_type: 'text/html',
|
57
|
+
layout: false
|
58
|
+
}
|
59
|
+
format.json { render json: { files: [@upload.to_jq_upload]}, status: :created}
|
60
|
+
else
|
61
|
+
format.html { render action: 'new' }
|
62
|
+
format.json { render json: { status: 'ERROR', errors: @upload.errors.full_messages }, status: :unprocessable_entity }
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def storage_free
|
68
|
+
render json: { storage_free: (@current_owner.send(owner.class.storage_limit_method) - @current_owner.total_storage_used) }
|
69
|
+
end
|
70
|
+
|
71
|
+
def destroy
|
72
|
+
@file = FilemanagerFile.find_by id: params[:id]
|
73
|
+
|
74
|
+
if @file == nil
|
75
|
+
head :not_found
|
76
|
+
elsif @file.destroy
|
77
|
+
head :ok
|
78
|
+
else
|
79
|
+
head :internal_server_error
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
private
|
84
|
+
|
85
|
+
def filemanager_file_params
|
86
|
+
params.require(:filemanager_file).permit :file, :name, :parent_id
|
87
|
+
end
|
88
|
+
|
89
|
+
# def check_privileges
|
90
|
+
# unless current_user.can? :upload_files, @choir
|
91
|
+
# flash[:error] = I18n.t 'general.invalid_permissions'
|
92
|
+
# redirect_to root_url(@choir)
|
93
|
+
# end
|
94
|
+
# end
|
95
|
+
|
96
|
+
def load_current_owner
|
97
|
+
#@current_owner = self.send(self.current_owner_method)
|
98
|
+
@current_owner = self.current_owner
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module RailsFilemanager
|
2
|
+
class FilemanagerFile < ActiveRecord::Base
|
3
|
+
|
4
|
+
has_attached_file :file
|
5
|
+
|
6
|
+
has_ancestry
|
7
|
+
|
8
|
+
belongs_to :owner, polymorphic: true
|
9
|
+
|
10
|
+
#validates :choir_id, uniqueness: true, if: -> { self.ancestry.nil? }
|
11
|
+
validates :name, presence: true, if: -> { self.file_file_name.nil? }
|
12
|
+
validates :file_file_name, presence: true, if: -> { self.name.nil? }
|
13
|
+
do_not_validate_attachment_file_type :file
|
14
|
+
|
15
|
+
|
16
|
+
validate :total_size_within_limits, if: -> { self.owner_id.present? }
|
17
|
+
|
18
|
+
scope :root_dir, -> { where ancestry: nil }
|
19
|
+
|
20
|
+
scope :sort_named, -> { order 'name ASC, file_file_name ASC, updated_at ASC' }
|
21
|
+
|
22
|
+
include Rails.application.routes.url_helpers
|
23
|
+
|
24
|
+
def to_jq_upload
|
25
|
+
{
|
26
|
+
name: self.name || self.file_file_name,
|
27
|
+
size: file_file_size,
|
28
|
+
url: file.url(:original),
|
29
|
+
delete_url: '',
|
30
|
+
delete_type: 'DELETE',
|
31
|
+
directory: file_file_name.nil?,
|
32
|
+
id: id,
|
33
|
+
}
|
34
|
+
end
|
35
|
+
|
36
|
+
def path_name
|
37
|
+
'/' + self.ancestors.map{|a| a.name + '/'}.join
|
38
|
+
end
|
39
|
+
|
40
|
+
def total_size_within_limits
|
41
|
+
if self.owner.present? && file.size
|
42
|
+
|
43
|
+
if (self.owner.total_storage_used + file.size) >= owner.send(owner.class.storage_limit_method)
|
44
|
+
errors.add(:file, :too_big)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|