elabs 2.0.0.pre
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.eslintrc.yml +26 -0
- data/.gitignore +49 -0
- data/.gitlab-ci.yml +93 -0
- data/.haml-lint.yml +4 -0
- data/.node-version +1 -0
- data/.rspec +1 -0
- data/.rubocop.yml +59 -0
- data/.ruby-version +1 -0
- data/.simplecov +5 -0
- data/.stylelintrc.yml +218 -0
- data/CHANGELOG.md +273 -0
- data/CODE_OF_CONDUCT.md +78 -0
- data/Gemfile +75 -0
- data/Gemfile.lock +376 -0
- data/LICENSE +21 -0
- data/LICENSES.md +6 -0
- data/README.md +41 -0
- data/ROADMAP.md +61 -0
- data/Rakefile +32 -0
- data/app/assets/config/elabs_manifest.js +3 -0
- data/app/assets/images/elabs/preview_placeholder.png +0 -0
- data/app/assets/images/elabs/preview_placeholder_nsfw.png +0 -0
- data/app/assets/javascripts/elabs/application.js +27 -0
- data/app/assets/javascripts/elabs/helpers-codemirror.js +29 -0
- data/app/assets/javascripts/elabs/helpers-markdown.js +42 -0
- data/app/assets/javascripts/elabs/helpers.js +17 -0
- data/app/assets/javascripts/elabs/modals.js +19 -0
- data/app/assets/javascripts/elabs/tabs.js +32 -0
- data/app/assets/stylesheets/elabs/_colors.scss +345 -0
- data/app/assets/stylesheets/elabs/_icons.scss +9 -0
- data/app/assets/stylesheets/elabs/_variables.scss +13 -0
- data/app/assets/stylesheets/elabs/app/_acts.scss +58 -0
- data/app/assets/stylesheets/elabs/app/_alerts.scss +3 -0
- data/app/assets/stylesheets/elabs/app/_buttons.scss +21 -0
- data/app/assets/stylesheets/elabs/app/_comments.scss +1 -0
- data/app/assets/stylesheets/elabs/app/_content.scss +10 -0
- data/app/assets/stylesheets/elabs/app/_content_uploads.scss +39 -0
- data/app/assets/stylesheets/elabs/app/_empty.scss +19 -0
- data/app/assets/stylesheets/elabs/app/_errors.scss +9 -0
- data/app/assets/stylesheets/elabs/app/_filter_links.scss +27 -0
- data/app/assets/stylesheets/elabs/app/_forms.scss +69 -0
- data/app/assets/stylesheets/elabs/app/_helpers.scss +3 -0
- data/app/assets/stylesheets/elabs/app/_languages.scss +6 -0
- data/app/assets/stylesheets/elabs/app/_layout.scss +194 -0
- data/app/assets/stylesheets/elabs/app/_licenses.scss +6 -0
- data/app/assets/stylesheets/elabs/app/_link-to-top.scss +8 -0
- data/app/assets/stylesheets/elabs/app/_medias.scss +12 -0
- data/app/assets/stylesheets/elabs/app/_modals.scss +53 -0
- data/app/assets/stylesheets/elabs/app/_nsfw.scss +5 -0
- data/app/assets/stylesheets/elabs/app/_pagination.scss +16 -0
- data/app/assets/stylesheets/elabs/app/_tabs.scss +54 -0
- data/app/assets/stylesheets/elabs/app/_tags.scss +6 -0
- data/app/assets/stylesheets/elabs/app/_toolbars.scss +3 -0
- data/app/assets/stylesheets/elabs/app/_users.scss +6 -0
- data/app/assets/stylesheets/elabs/app/admin-members/_forms.scss +6 -0
- data/app/assets/stylesheets/elabs/app/admin-members/_indexes.scss +70 -0
- data/app/assets/stylesheets/elabs/app/admin-members/_layout.scss +17 -0
- data/app/assets/stylesheets/elabs/app/areas/_devise.scss +31 -0
- data/app/assets/stylesheets/elabs/app/components/_cards.scss +16 -0
- data/app/assets/stylesheets/elabs/app/components/_container.scss +4 -0
- data/app/assets/stylesheets/elabs/app/mixins/_classifier-card.scss +16 -0
- data/app/assets/stylesheets/elabs/app/mixins/_content-card.scss +58 -0
- data/app/assets/stylesheets/elabs/app/mixins/_content-full.scss +39 -0
- data/app/assets/stylesheets/elabs/app/mixins/_icon.scss +9 -0
- data/app/assets/stylesheets/elabs/application.css +14 -0
- data/app/assets/stylesheets/elabs/lib/_codemirror.scss +26 -0
- data/app/assets/stylesheets/elabs/lib/fontawesome/_fontawesome.scss +38 -0
- data/app/assets/stylesheets/elabs/lib/fontawesome/_fonts.scss +42 -0
- data/app/assets/stylesheets/elabs/lib/fontawesome/_icons.scss +1118 -0
- data/app/assets/stylesheets/elabs/lib/knacss/_knacss-variables.scss +230 -0
- data/app/assets/stylesheets/elabs/lib/knacss/_knacss.scss +59 -0
- data/app/assets/stylesheets/elabs/style.scss +72 -0
- data/app/controllers/elabs/acts_controller.rb +12 -0
- data/app/controllers/elabs/admin/admin_application_controller.rb +19 -0
- data/app/controllers/elabs/admin/admin_content_application_controller.rb +66 -0
- data/app/controllers/elabs/admin/albums_controller.rb +10 -0
- data/app/controllers/elabs/admin/articles_controller.rb +10 -0
- data/app/controllers/elabs/admin/languages_controller.rb +77 -0
- data/app/controllers/elabs/admin/licenses_controller.rb +77 -0
- data/app/controllers/elabs/admin/notes_controller.rb +10 -0
- data/app/controllers/elabs/admin/projects_controller.rb +10 -0
- data/app/controllers/elabs/admin/reports_controller.rb +34 -0
- data/app/controllers/elabs/admin/tags_controller.rb +56 -0
- data/app/controllers/elabs/admin/uploads_controller.rb +10 -0
- data/app/controllers/elabs/admin/users_controller.rb +43 -0
- data/app/controllers/elabs/albums_controller.rb +26 -0
- data/app/controllers/elabs/articles_controller.rb +25 -0
- data/app/controllers/elabs/auth/callbacks_controller.rb +38 -0
- data/app/controllers/elabs/auth/confirmations_controller.rb +43 -0
- data/app/controllers/elabs/auth/passwords_controller.rb +47 -0
- data/app/controllers/elabs/auth/registrations_controller.rb +70 -0
- data/app/controllers/elabs/auth/sessions_controller.rb +36 -0
- data/app/controllers/elabs/auth/unlocks_controller.rb +38 -0
- data/app/controllers/elabs/concerns/elabs_controller.rb +18 -0
- data/app/controllers/elabs/concerns/localizable.rb +11 -0
- data/app/controllers/elabs/concerns/reportable.rb +17 -0
- data/app/controllers/elabs/content_application_controller.rb +45 -0
- data/app/controllers/elabs/elabs_application_controller.rb +95 -0
- data/app/controllers/elabs/languages_controller.rb +36 -0
- data/app/controllers/elabs/licenses_controller.rb +31 -0
- data/app/controllers/elabs/member/albums_controller.rb +11 -0
- data/app/controllers/elabs/member/articles_controller.rb +11 -0
- data/app/controllers/elabs/member/member_application_controller.rb +12 -0
- data/app/controllers/elabs/member/member_content_application_controller.rb +128 -0
- data/app/controllers/elabs/member/notes_controller.rb +11 -0
- data/app/controllers/elabs/member/preferences_controller.rb +36 -0
- data/app/controllers/elabs/member/projects_controller.rb +11 -0
- data/app/controllers/elabs/member/uploads_controller.rb +11 -0
- data/app/controllers/elabs/member/users_controller.rb +28 -0
- data/app/controllers/elabs/notes_controller.rb +25 -0
- data/app/controllers/elabs/projects_controller.rb +30 -0
- data/app/controllers/elabs/reports_controller.rb +36 -0
- data/app/controllers/elabs/tags_controller.rb +36 -0
- data/app/controllers/elabs/uploads_controller.rb +24 -0
- data/app/controllers/elabs/users_controller.rb +36 -0
- data/app/helpers/elabs/acts_helper.rb +22 -0
- data/app/helpers/elabs/admin_content_helper.rb +54 -0
- data/app/helpers/elabs/application_helper.rb +54 -0
- data/app/helpers/elabs/content_filters_helper.rb +97 -0
- data/app/helpers/elabs/content_renderer_helper.rb +13 -0
- data/app/helpers/elabs/member_content_helper.rb +47 -0
- data/app/helpers/elabs/thumbnails_helper.rb +28 -0
- data/app/helpers/elabs/time_helper.rb +19 -0
- data/app/helpers/elabs/uploads_helper.rb +19 -0
- data/app/jobs/elabs/application_job.rb +4 -0
- data/app/mailers/elabs/application_mailer.rb +6 -0
- data/app/models/elabs/act.rb +7 -0
- data/app/models/elabs/album.rb +24 -0
- data/app/models/elabs/albums_tag.rb +21 -0
- data/app/models/elabs/albums_upload.rb +21 -0
- data/app/models/elabs/application_content_record.rb +10 -0
- data/app/models/elabs/application_record.rb +5 -0
- data/app/models/elabs/article.rb +23 -0
- data/app/models/elabs/articles_tag.rb +21 -0
- data/app/models/elabs/comment.rb +12 -0
- data/app/models/elabs/concerns/actable_entity.rb +52 -0
- data/app/models/elabs/concerns/content_entity.rb +70 -0
- data/app/models/elabs/concerns/countable_entity.rb +81 -0
- data/app/models/elabs/concerns/taggable.rb +33 -0
- data/app/models/elabs/language.rb +17 -0
- data/app/models/elabs/license.rb +15 -0
- data/app/models/elabs/note.rb +21 -0
- data/app/models/elabs/notes_tag.rb +21 -0
- data/app/models/elabs/preference.rb +9 -0
- data/app/models/elabs/project.rb +25 -0
- data/app/models/elabs/projects_album.rb +21 -0
- data/app/models/elabs/projects_article.rb +21 -0
- data/app/models/elabs/projects_note.rb +21 -0
- data/app/models/elabs/projects_tag.rb +21 -0
- data/app/models/elabs/projects_upload.rb +21 -0
- data/app/models/elabs/report.rb +11 -0
- data/app/models/elabs/tag.rb +18 -0
- data/app/models/elabs/upload.rb +28 -0
- data/app/models/elabs/uploads_tag.rb +21 -0
- data/app/models/elabs/user.rb +30 -0
- data/app/validators/elabs/associated_author_validator.rb +11 -0
- data/app/views/elabs/acts/_act.json.jbuilder +2 -0
- data/app/views/elabs/acts/_filters.html.haml +3 -0
- data/app/views/elabs/acts/index.html.haml +27 -0
- data/app/views/elabs/acts/index.json.jbuilder +1 -0
- data/app/views/elabs/admin/albums/_album.json.jbuilder +2 -0
- data/app/views/elabs/admin/albums/index.html.haml +43 -0
- data/app/views/elabs/admin/albums/index.json.jbuilder +1 -0
- data/app/views/elabs/admin/articles/_article.json.jbuilder +2 -0
- data/app/views/elabs/admin/articles/index.html.haml +41 -0
- data/app/views/elabs/admin/articles/index.json.jbuilder +1 -0
- data/app/views/elabs/admin/languages/_form.html.haml +18 -0
- data/app/views/elabs/admin/languages/_language.json.jbuilder +2 -0
- data/app/views/elabs/admin/languages/edit.html.haml +6 -0
- data/app/views/elabs/admin/languages/index.html.haml +34 -0
- data/app/views/elabs/admin/languages/index.json.jbuilder +1 -0
- data/app/views/elabs/admin/languages/new.html.haml +3 -0
- data/app/views/elabs/admin/licenses/_form.html.haml +25 -0
- data/app/views/elabs/admin/licenses/_license.json.jbuilder +2 -0
- data/app/views/elabs/admin/licenses/edit.html.haml +6 -0
- data/app/views/elabs/admin/licenses/index.html.haml +42 -0
- data/app/views/elabs/admin/licenses/index.json.jbuilder +1 -0
- data/app/views/elabs/admin/licenses/new.html.haml +3 -0
- data/app/views/elabs/admin/notes/_note.json.jbuilder +2 -0
- data/app/views/elabs/admin/notes/index.html.haml +40 -0
- data/app/views/elabs/admin/notes/index.json.jbuilder +1 -0
- data/app/views/elabs/admin/projects/_project.json.jbuilder +2 -0
- data/app/views/elabs/admin/projects/index.html.haml +45 -0
- data/app/views/elabs/admin/projects/index.json.jbuilder +1 -0
- data/app/views/elabs/admin/reports/index.html.haml +27 -0
- data/app/views/elabs/admin/reports/index.json.jbuilder +1 -0
- data/app/views/elabs/admin/tags/_form.html.haml +17 -0
- data/app/views/elabs/admin/tags/_tag.json.jbuilder +2 -0
- data/app/views/elabs/admin/tags/edit.html.haml +6 -0
- data/app/views/elabs/admin/tags/index.html.haml +27 -0
- data/app/views/elabs/admin/tags/index.json.jbuilder +1 -0
- data/app/views/elabs/admin/uploads/_upload.json.jbuilder +2 -0
- data/app/views/elabs/admin/uploads/index.html.haml +45 -0
- data/app/views/elabs/admin/uploads/index.json.jbuilder +1 -0
- data/app/views/elabs/admin/users/_admin_user.json.jbuilder +2 -0
- data/app/views/elabs/admin/users/index.html.haml +33 -0
- data/app/views/elabs/admin/users/index.json.jbuilder +1 -0
- data/app/views/elabs/admin/users/show.html.haml +26 -0
- data/app/views/elabs/admin/users/show.json.jbuilder +1 -0
- data/app/views/elabs/albums/_album.html.haml +38 -0
- data/app/views/elabs/albums/_album.json.jbuilder +2 -0
- data/app/views/elabs/albums/_filters.html.haml +8 -0
- data/app/views/elabs/albums/index.html.haml +9 -0
- data/app/views/elabs/albums/index.json.jbuilder +1 -0
- data/app/views/elabs/albums/show.html.haml +60 -0
- data/app/views/elabs/albums/show.json.jbuilder +1 -0
- data/app/views/elabs/articles/_article.html.haml +30 -0
- data/app/views/elabs/articles/_article.json.jbuilder +2 -0
- data/app/views/elabs/articles/_filters.html.haml +8 -0
- data/app/views/elabs/articles/index.html.haml +9 -0
- data/app/views/elabs/articles/index.json.jbuilder +1 -0
- data/app/views/elabs/articles/show.html.haml +45 -0
- data/app/views/elabs/articles/show.json.jbuilder +1 -0
- data/app/views/elabs/auth/confirmations/new.html.haml +26 -0
- data/app/views/elabs/auth/passwords/edit.html.haml +31 -0
- data/app/views/elabs/auth/passwords/new.html.haml +23 -0
- data/app/views/elabs/auth/registrations/edit.html.haml +48 -0
- data/app/views/elabs/auth/registrations/new.html.haml +34 -0
- data/app/views/elabs/auth/sessions/_new.html.haml +15 -0
- data/app/views/elabs/auth/sessions/new.html.haml +8 -0
- data/app/views/elabs/auth/shared/_links.html.haml +16 -0
- data/app/views/elabs/auth/unlocks/new.html.haml +23 -0
- data/app/views/elabs/comments/_comment.json.jbuilder +2 -0
- data/app/views/elabs/comments/_comments.html.haml +21 -0
- data/app/views/elabs/comments/_form.html.haml +31 -0
- data/app/views/elabs/languages/_associations.html.haml +51 -0
- data/app/views/elabs/languages/_filters.html.haml +6 -0
- data/app/views/elabs/languages/_language.json.jbuilder +2 -0
- data/app/views/elabs/languages/index.html.haml +33 -0
- data/app/views/elabs/languages/index.json.jbuilder +1 -0
- data/app/views/elabs/languages/show.html.haml +38 -0
- data/app/views/elabs/languages/show.json.jbuilder +1 -0
- data/app/views/elabs/layouts/_empty.html.haml +3 -0
- data/app/views/elabs/layouts/_footer.html.haml +6 -0
- data/app/views/elabs/layouts/_hidden_entry.html.haml +6 -0
- data/app/views/elabs/layouts/_hidden_entry_full.html.haml +6 -0
- data/app/views/elabs/layouts/_language_menu.html.haml +2 -0
- data/app/views/elabs/layouts/_menu.html.haml +72 -0
- data/app/views/elabs/layouts/admin_application.html.haml +21 -0
- data/app/views/elabs/layouts/application.html.haml +37 -0
- data/app/views/elabs/layouts/lists/_albums.html.haml +10 -0
- data/app/views/elabs/layouts/lists/_projects.html.haml +10 -0
- data/app/views/elabs/layouts/lists/_tags.html.haml +9 -0
- data/app/views/elabs/layouts/mailer.html.haml +8 -0
- data/app/views/elabs/layouts/mailer.text.haml +1 -0
- data/app/views/elabs/layouts/member_application.html.haml +21 -0
- data/app/views/elabs/licenses/_associations.html.haml +51 -0
- data/app/views/elabs/licenses/_filters.html.haml +3 -0
- data/app/views/elabs/licenses/_license.json.jbuilder +2 -0
- data/app/views/elabs/licenses/index.html.haml +27 -0
- data/app/views/elabs/licenses/index.json.jbuilder +1 -0
- data/app/views/elabs/licenses/show.html.haml +44 -0
- data/app/views/elabs/licenses/show.json.jbuilder +1 -0
- data/app/views/elabs/member/albums/_album.json.jbuilder +2 -0
- data/app/views/elabs/member/albums/_form.html.haml +64 -0
- data/app/views/elabs/member/albums/edit.html.haml +6 -0
- data/app/views/elabs/member/albums/index.html.haml +49 -0
- data/app/views/elabs/member/albums/index.json.jbuilder +1 -0
- data/app/views/elabs/member/albums/new.html.haml +3 -0
- data/app/views/elabs/member/articles/_article.json.jbuilder +2 -0
- data/app/views/elabs/member/articles/_form.html.haml +70 -0
- data/app/views/elabs/member/articles/edit.html.haml +6 -0
- data/app/views/elabs/member/articles/index.html.haml +47 -0
- data/app/views/elabs/member/articles/index.json.jbuilder +1 -0
- data/app/views/elabs/member/articles/new.html.haml +3 -0
- data/app/views/elabs/member/layouts/_empty.html.haml +4 -0
- data/app/views/elabs/member/layouts/_markdown-preview.html.haml +8 -0
- data/app/views/elabs/member/notes/_form.html.haml +54 -0
- data/app/views/elabs/member/notes/_note.json.jbuilder +2 -0
- data/app/views/elabs/member/notes/edit.html.haml +6 -0
- data/app/views/elabs/member/notes/index.html.haml +47 -0
- data/app/views/elabs/member/notes/index.json.jbuilder +1 -0
- data/app/views/elabs/member/notes/new.html.haml +3 -0
- data/app/views/elabs/member/preferences/_form.html.haml +20 -0
- data/app/views/elabs/member/preferences/edit.html.haml +3 -0
- data/app/views/elabs/member/projects/_form.html.haml +71 -0
- data/app/views/elabs/member/projects/_project.json.jbuilder +2 -0
- data/app/views/elabs/member/projects/edit.html.haml +6 -0
- data/app/views/elabs/member/projects/index.html.haml +53 -0
- data/app/views/elabs/member/projects/index.json.jbuilder +1 -0
- data/app/views/elabs/member/projects/new.html.haml +3 -0
- data/app/views/elabs/member/uploads/_form.html.haml +67 -0
- data/app/views/elabs/member/uploads/_upload.json.jbuilder +2 -0
- data/app/views/elabs/member/uploads/edit.html.haml +6 -0
- data/app/views/elabs/member/uploads/index.html.haml +61 -0
- data/app/views/elabs/member/uploads/index.json.jbuilder +1 -0
- data/app/views/elabs/member/uploads/new.html.haml +3 -0
- data/app/views/elabs/member/users/_form.html.haml +38 -0
- data/app/views/elabs/notes/_filters.html.haml +7 -0
- data/app/views/elabs/notes/_note.html.haml +31 -0
- data/app/views/elabs/notes/_note.json.jbuilder +2 -0
- data/app/views/elabs/notes/index.html.haml +9 -0
- data/app/views/elabs/notes/index.json.jbuilder +1 -0
- data/app/views/elabs/notes/show.html.haml +44 -0
- data/app/views/elabs/notes/show.json.jbuilder +1 -0
- data/app/views/elabs/projects/_associations.html.haml +46 -0
- data/app/views/elabs/projects/_filters.html.haml +8 -0
- data/app/views/elabs/projects/_project.html.haml +29 -0
- data/app/views/elabs/projects/index.html.haml +9 -0
- data/app/views/elabs/projects/index.json.jbuilder +1 -0
- data/app/views/elabs/projects/show.html.haml +71 -0
- data/app/views/elabs/projects/show.json.jbuilder +1 -0
- data/app/views/elabs/reports/_form.html.haml +29 -0
- data/app/views/elabs/tags/_associations.html.haml +51 -0
- data/app/views/elabs/tags/_filters.html.haml +3 -0
- data/app/views/elabs/tags/_tag.json.jbuilder +2 -0
- data/app/views/elabs/tags/index.html.haml +26 -0
- data/app/views/elabs/tags/index.json.jbuilder +1 -0
- data/app/views/elabs/tags/show.html.haml +34 -0
- data/app/views/elabs/tags/show.json.jbuilder +1 -0
- data/app/views/elabs/uploads/_filters.html.haml +7 -0
- data/app/views/elabs/uploads/_player.html.haml +10 -0
- data/app/views/elabs/uploads/_preview.html.haml +17 -0
- data/app/views/elabs/uploads/_upload.html.haml +41 -0
- data/app/views/elabs/uploads/_upload.json.jbuilder +2 -0
- data/app/views/elabs/uploads/index.html.haml +9 -0
- data/app/views/elabs/uploads/index.json.jbuilder +1 -0
- data/app/views/elabs/uploads/show.html.haml +58 -0
- data/app/views/elabs/uploads/show.json.jbuilder +1 -0
- data/app/views/elabs/users/_associations.html.haml +51 -0
- data/app/views/elabs/users/_filters.html.haml +4 -0
- data/app/views/elabs/users/_user.html.haml +31 -0
- data/app/views/elabs/users/_user.json.jbuilder +2 -0
- data/app/views/elabs/users/index.html.haml +7 -0
- data/app/views/elabs/users/index.json.jbuilder +1 -0
- data/app/views/elabs/users/show.html.haml +48 -0
- data/app/views/elabs/users/show.json.jbuilder +1 -0
- data/bin/rails +14 -0
- data/config.ru +5 -0
- data/config/brakeman.ignore +124 -0
- data/config/brakeman.yml +3 -0
- data/config/cucumber.yml +9 -0
- data/config/routes.rb +116 -0
- data/db/migrate/20180813000000_devise_update_users.rb +15 -0
- data/db/migrate/20180813000001_create_languages.rb +16 -0
- data/db/migrate/20180813000002_create_tags.rb +14 -0
- data/db/migrate/20180813000004_create_licenses.rb +17 -0
- data/db/migrate/20180813000005_create_reports.rb +15 -0
- data/db/migrate/20180813000006_create_comments.rb +15 -0
- data/db/migrate/20180813000007_create_acts.rb +10 -0
- data/db/migrate/20180813000008_create_preferences.rb +13 -0
- data/db/migrate/20180813000009_create_active_storage_tables.active_storage.rb +26 -0
- data/db/migrate/20180813000010_create_albums.rb +23 -0
- data/db/migrate/20180813000011_create_articles.rb +23 -0
- data/db/migrate/20180813000012_create_notes.rb +21 -0
- data/db/migrate/20180813000013_create_uploads.rb +26 -0
- data/db/migrate/20180813000014_create_projects.rb +44 -0
- data/db/seeds.rb +10 -0
- data/db/seeds_development.rb +21 -0
- data/db/seeds_production.rb +0 -0
- data/docs/contributing.md +52 -0
- data/docs/cucumber_terms.md +9 -0
- data/docs/migrating.md +4 -0
- data/docs/overriding.md +20 -0
- data/docs/setup.md +136 -0
- data/docs/tips.md +13 -0
- data/elabs.gemspec +25 -0
- data/lib/assets/javascripts/README-highlight.js.md +39 -0
- data/lib/assets/javascripts/codemirror-5.39.2/addon/mode/overlay.js +90 -0
- data/lib/assets/javascripts/codemirror-5.39.2/lib/codemirror.js +9684 -0
- data/lib/assets/javascripts/codemirror-5.39.2/mode/clike/clike.js +834 -0
- data/lib/assets/javascripts/codemirror-5.39.2/mode/css/css.js +832 -0
- data/lib/assets/javascripts/codemirror-5.39.2/mode/gfm/gfm.js +129 -0
- data/lib/assets/javascripts/codemirror-5.39.2/mode/htmlmixed/htmlmixed.js +152 -0
- data/lib/assets/javascripts/codemirror-5.39.2/mode/javascript/javascript.js +896 -0
- data/lib/assets/javascripts/codemirror-5.39.2/mode/markdown/markdown.js +882 -0
- data/lib/assets/javascripts/codemirror-5.39.2/mode/meta.js +217 -0
- data/lib/assets/javascripts/codemirror-5.39.2/mode/xml/xml.js +402 -0
- data/lib/assets/javascripts/highlight.js-9.12.0/highlight.pack.js +2 -0
- data/lib/assets/javascripts/markdown-it-8.4.2.min.js +1 -0
- data/lib/assets/stylesheets/codemirror-5.39.2/lib/codemirror.css +346 -0
- data/lib/assets/stylesheets/codemirror-5.39.2/theme/base16-dark.css +38 -0
- data/lib/assets/stylesheets/codemirror-5.39.2/theme/base16-light.css +38 -0
- data/lib/assets/stylesheets/highlight.js-9.12.0/styles/atelier-sulphurpool-light.css +69 -0
- data/lib/elabs.rb +41 -0
- data/lib/elabs/engine.rb +5 -0
- data/lib/elabs/version.rb +3 -0
- data/lib/generators/elabs/assets_generator.rb +36 -0
- data/lib/generators/elabs/devise_views_generator.rb +24 -0
- data/lib/generators/elabs/install_generator.rb +26 -0
- data/lib/generators/elabs/required_assets_generator.rb +26 -0
- data/lib/generators/elabs/views_generator.rb +25 -0
- data/lib/generators/templates/elabs.rb +25 -0
- data/lib/generators/templates/fast_gettext.rb +3 -0
- data/lib/tasks/.keep +0 -0
- data/lib/tasks/cucumber.rake +75 -0
- data/lib/tasks/elabs_tasks.rake +4 -0
- data/lib/tasks/factory_bot.rake +14 -0
- data/lib/tasks/wipe.rake +31 -0
- data/locale/app.pot +1124 -0
- data/locale/devise_strings.rb +88 -0
- data/locale/en/app.edit.po +1123 -0
- data/locale/en/app.po +1123 -0
- data/locale/en/app.po.time_stamp +0 -0
- data/locale/fr/app.edit.po +1126 -0
- data/locale/fr/app.po +1125 -0
- data/locale/fr/app.po.time_stamp +0 -0
- data/locale/model_attributes.rb +85 -0
- data/package.json +22 -0
- data/script/cucumber +10 -0
- data/tmp/pids/.keep +0 -0
- data/yarn.lock +2759 -0
- metadata +463 -0
@@ -0,0 +1,42 @@
|
|
1
|
+
- @page_title = _('Licenses')
|
2
|
+
|
3
|
+
.page__actions
|
4
|
+
= link_to _('New License'), new_admin_license_path, class: 'btn btn--new'
|
5
|
+
|
6
|
+
%table.licenses-list
|
7
|
+
%thead
|
8
|
+
%tr
|
9
|
+
%th= admin_order_by_link _('Name'), 'name'
|
10
|
+
%th= admin_order_by_link _('URL'), 'url'
|
11
|
+
%th= admin_order_by_link _('TL;DR URL'), 'tldr_url'
|
12
|
+
%th= admin_order_by_link _('Icon'), 'icon'
|
13
|
+
%th= admin_order_by_link _('Albums'), 'albums_count'
|
14
|
+
%th= admin_order_by_link _('Articles'), 'articles_count'
|
15
|
+
%th= admin_order_by_link _('Notes'), 'notes_count'
|
16
|
+
%th= admin_order_by_link _('Projects'), 'projects_count'
|
17
|
+
%th= admin_order_by_link _('Uploads'), 'uploads_count'
|
18
|
+
%th
|
19
|
+
|
20
|
+
%tbody
|
21
|
+
- @licenses.each do |license|
|
22
|
+
%tr.license
|
23
|
+
%td= license.name
|
24
|
+
%td.is-icon
|
25
|
+
= link_to license.url do
|
26
|
+
= icon('home', ['fw'])
|
27
|
+
%td.is-icon
|
28
|
+
= link_to license.tldr_url do
|
29
|
+
= icon('meh', ['fw'])
|
30
|
+
%td
|
31
|
+
= icon(license.icon, ['fw'], 'fab')
|
32
|
+
= license.icon
|
33
|
+
%td.is-counter= license.albums_count
|
34
|
+
%td.is-counter= license.articles_count
|
35
|
+
%td.is-counter= license.notes_count
|
36
|
+
%td.is-counter= license.projects_count
|
37
|
+
%td.is-counter= license.uploads_count
|
38
|
+
%td.actions
|
39
|
+
.btn-group
|
40
|
+
= admin_show_online_link license
|
41
|
+
= admin_edit_link 'license', license
|
42
|
+
= admin_destroy_link 'license', license
|
@@ -0,0 +1 @@
|
|
1
|
+
json.array! @licenses, partial: 'licenses/license', as: :license
|
@@ -0,0 +1,40 @@
|
|
1
|
+
- @page_title = _('Notes')
|
2
|
+
|
3
|
+
%table.notes-list
|
4
|
+
%thead
|
5
|
+
%tr
|
6
|
+
%th= _('Content')
|
7
|
+
%th= admin_order_by_link _('SFW'), 'sfw'
|
8
|
+
%th= admin_order_by_link _('Pub.'), 'published'
|
9
|
+
%th= admin_order_by_link _('Lock.'), 'locked'
|
10
|
+
%th= admin_order_by_link _('Skip hist.'), 'hidden_in_history'
|
11
|
+
%th= admin_order_by_link _('Published at'), 'published_at'
|
12
|
+
%th= _('User')
|
13
|
+
%th= _('License')
|
14
|
+
%th= _('Language')
|
15
|
+
%th= _('Projects')
|
16
|
+
%th= _('Tags')
|
17
|
+
%th
|
18
|
+
|
19
|
+
%tbody
|
20
|
+
- @notes.each do |note|
|
21
|
+
%tr.note
|
22
|
+
%td= note.content[0...100]
|
23
|
+
%td.is-icon= boolean_icon_tag note.sfw
|
24
|
+
%td.is-icon= boolean_icon_tag note.published
|
25
|
+
%td.is-icon= boolean_icon_tag note.locked
|
26
|
+
%td.is-icon= boolean_icon_tag note.hidden_in_history
|
27
|
+
%td= note.published_at
|
28
|
+
%td= note.user.username
|
29
|
+
%td= note.license.name
|
30
|
+
%td= note.language.name
|
31
|
+
%td.relations
|
32
|
+
- note.projects.each do |p|
|
33
|
+
%span.project= p.name
|
34
|
+
%td.relations
|
35
|
+
- note.tags.each do |t|
|
36
|
+
%span.tag= t.name
|
37
|
+
%td.actions
|
38
|
+
.btn-group
|
39
|
+
= admin_action_links 'note', note
|
40
|
+
= paginate @notes
|
@@ -0,0 +1 @@
|
|
1
|
+
json.array! @notes, partial: 'notes/note', as: :note
|
@@ -0,0 +1,45 @@
|
|
1
|
+
- @page_title = _('Projects')
|
2
|
+
|
3
|
+
%table.projects-list
|
4
|
+
%thead
|
5
|
+
%tr
|
6
|
+
%th= admin_order_by_link _('Name'), 'name'
|
7
|
+
%th= admin_order_by_link _('SFW'), 'sfw'
|
8
|
+
%th= admin_order_by_link _('Pub.'), 'published'
|
9
|
+
%th= admin_order_by_link _('Lock.'), 'locked'
|
10
|
+
%th= admin_order_by_link _('Skip hist.'), 'hidden_in_history'
|
11
|
+
%th= admin_order_by_link _('Published at'), 'published_at'
|
12
|
+
%th= _('User')
|
13
|
+
%th= _('License')
|
14
|
+
%th= _('Language')
|
15
|
+
%th= admin_order_by_link _('Albums'), 'albums_count'
|
16
|
+
%th= admin_order_by_link _('Articles'), 'articles_count'
|
17
|
+
%th= admin_order_by_link _('Notes'), 'notes_count'
|
18
|
+
%th= admin_order_by_link _('Uploads'), 'uploads_count'
|
19
|
+
%th= _('Tags')
|
20
|
+
%th
|
21
|
+
|
22
|
+
%tbody
|
23
|
+
- @projects.each do |project|
|
24
|
+
%tr.project
|
25
|
+
%td= project.name
|
26
|
+
%td.is-icon= boolean_icon_tag project.sfw
|
27
|
+
%td.is-icon= boolean_icon_tag project.published
|
28
|
+
%td.is-icon= boolean_icon_tag project.locked, 'lock', 'unlock'
|
29
|
+
%td.is-icon= boolean_icon_tag project.hidden_in_history
|
30
|
+
%td= project.published_at
|
31
|
+
%td= project.user.username
|
32
|
+
%td= project.license.name
|
33
|
+
%td= project.language.name
|
34
|
+
%td.is-counter= project.albums_count
|
35
|
+
%td.is-counter= project.articles_count
|
36
|
+
%td.is-counter= project.notes_count
|
37
|
+
%td.is-counter= project.uploads_count
|
38
|
+
%td.relation
|
39
|
+
- project.tags.each do |t|
|
40
|
+
%span.tag= t.name
|
41
|
+
%td.actions
|
42
|
+
.btn-group
|
43
|
+
= admin_action_links 'project', project
|
44
|
+
|
45
|
+
= paginate @projects
|
@@ -0,0 +1 @@
|
|
1
|
+
json.array! @projects, partial: 'projects/project', as: :project
|
@@ -0,0 +1,27 @@
|
|
1
|
+
- @page_title = _('Listing reports')
|
2
|
+
|
3
|
+
%table.reports-list
|
4
|
+
%thead
|
5
|
+
%tr
|
6
|
+
%th= admin_order_by_link _('Name'), 'name'
|
7
|
+
%th= admin_order_by_link _('Email'), 'email'
|
8
|
+
%th= _('User')
|
9
|
+
%th= admin_order_by_link _('Allow contact'), 'allow_contact'
|
10
|
+
%th= admin_order_by_link _('Created at'), 'created_at'
|
11
|
+
%th= admin_order_by_link _('URL'), 'url'
|
12
|
+
%th= _('Reason')
|
13
|
+
%th
|
14
|
+
|
15
|
+
%tbody
|
16
|
+
- @reports.each do |report|
|
17
|
+
%tr.report
|
18
|
+
%td= report.name
|
19
|
+
%td= report.email
|
20
|
+
%td= report.user&.username
|
21
|
+
%td.is-icon= boolean_icon_tag report.allow_contact
|
22
|
+
%td= report.created_at
|
23
|
+
%td= link_to report.url, report.url, target: '_blank'
|
24
|
+
%td= report.reason
|
25
|
+
%td.actions
|
26
|
+
.btn-group
|
27
|
+
= admin_destroy_link 'report', report
|
@@ -0,0 +1 @@
|
|
1
|
+
json.array! @reports, partial: 'reports/report', as: :report
|
@@ -0,0 +1,17 @@
|
|
1
|
+
-# tag variable should be passed from the view
|
2
|
+
= form_for tag, url: tag.id ? admin_tag_path : admin_tags_path do |f|
|
3
|
+
- if tag.errors.any?
|
4
|
+
.error
|
5
|
+
%h2= format(n_('An error prevented this tag from being saved:',
|
6
|
+
'%<nb>i errors prevented this tag from being saved:',
|
7
|
+
tag.errors.count), nb: tag.errors.count)
|
8
|
+
%ul
|
9
|
+
- tag.errors.full_messages.each do |message|
|
10
|
+
%li= message
|
11
|
+
|
12
|
+
.field
|
13
|
+
= f.label :name
|
14
|
+
.field-input= f.text_field :name
|
15
|
+
|
16
|
+
.actions
|
17
|
+
= f.submit _('Save'), class: 'btn btn--save'
|
@@ -0,0 +1,27 @@
|
|
1
|
+
- @page_title = _('Tags list')
|
2
|
+
|
3
|
+
%table.tags-list
|
4
|
+
%thead
|
5
|
+
%tr
|
6
|
+
%th= admin_order_by_link _('Name'), 'name'
|
7
|
+
%th= admin_order_by_link _('Albums'), 'albums_count'
|
8
|
+
%th= admin_order_by_link _('Articles'), 'articles_count'
|
9
|
+
%th= admin_order_by_link _('Notes'), 'notes_count'
|
10
|
+
%th= admin_order_by_link _('Projects'), 'projects_count'
|
11
|
+
%th= admin_order_by_link _('Uploads'), 'uploads_count'
|
12
|
+
%th
|
13
|
+
|
14
|
+
%tbody
|
15
|
+
- @tags.each do |tag|
|
16
|
+
%tr.tag
|
17
|
+
%td= tag.name
|
18
|
+
%td.is-counter= tag.albums_count
|
19
|
+
%td.is-counter= tag.articles_count
|
20
|
+
%td.is-counter= tag.notes_count
|
21
|
+
%td.is-counter= tag.projects_count
|
22
|
+
%td.is-counter= tag.uploads_count
|
23
|
+
%td.actions
|
24
|
+
.btn-group
|
25
|
+
= admin_show_online_link tag
|
26
|
+
= admin_edit_link 'tag', tag
|
27
|
+
= admin_destroy_link 'tag', tag
|
@@ -0,0 +1 @@
|
|
1
|
+
json.array! @tags, partial: 'tags/tag', as: :tag
|
@@ -0,0 +1,45 @@
|
|
1
|
+
- @page_title = _('Uploads')
|
2
|
+
|
3
|
+
%table.uploads-list
|
4
|
+
%thead
|
5
|
+
%tr
|
6
|
+
%th= admin_order_by_link _('Title'), 'title'
|
7
|
+
%th= admin_order_by_link _('SFW'), 'sfw'
|
8
|
+
%th= admin_order_by_link _('Pub.'), 'published'
|
9
|
+
%th= admin_order_by_link _('Lock.'), 'locked'
|
10
|
+
%th= admin_order_by_link _('Skip hist.'), 'hidden_in_history'
|
11
|
+
%th= admin_order_by_link _('Published at'), 'published_at'
|
12
|
+
%th= _('User')
|
13
|
+
%th= _('License')
|
14
|
+
%th= _('Language')
|
15
|
+
%th= _('Albums')
|
16
|
+
%th= _('Projects')
|
17
|
+
%th= _('Tags')
|
18
|
+
%th
|
19
|
+
|
20
|
+
%tbody
|
21
|
+
- @uploads.each do |upload|
|
22
|
+
%tr.upload
|
23
|
+
%td= upload.title
|
24
|
+
%td.is-icon= boolean_icon_tag upload.sfw
|
25
|
+
%td.is-icon= boolean_icon_tag upload.published
|
26
|
+
%td.is-icon= boolean_icon_tag upload.locked, 'lock', 'unlock'
|
27
|
+
%td.is-icon= boolean_icon_tag upload.hidden_in_history
|
28
|
+
%td= upload.published_at
|
29
|
+
%td= upload.user.username
|
30
|
+
%td= upload.license.name
|
31
|
+
%td= upload.language.name
|
32
|
+
%td.relations
|
33
|
+
- upload.albums.each do |a|
|
34
|
+
%span.album= a.name
|
35
|
+
%td.relations
|
36
|
+
- upload.projects.each do |p|
|
37
|
+
%span.project= p.name
|
38
|
+
%td.relations
|
39
|
+
- upload.tags.each do |t|
|
40
|
+
%span.tag= t.name
|
41
|
+
%td.actions
|
42
|
+
.btn-group
|
43
|
+
= admin_action_links 'upload', upload
|
44
|
+
|
45
|
+
= paginate @uploads
|
@@ -0,0 +1 @@
|
|
1
|
+
json.array! @uploads, partial: 'uploads/upload', as: :upload
|
@@ -0,0 +1,33 @@
|
|
1
|
+
- @page_title = _('Users')
|
2
|
+
|
3
|
+
%table.users-list
|
4
|
+
%thead
|
5
|
+
%tr
|
6
|
+
%th= admin_order_by_link _('Username'), 'username'
|
7
|
+
%th= admin_order_by_link _('Role'), 'role'
|
8
|
+
%th= admin_order_by_link _('Since'), 'created_at'
|
9
|
+
%th= admin_order_by_link _('Album count'), 'albums_count'
|
10
|
+
%th= admin_order_by_link _('Article count'), 'articles_count'
|
11
|
+
%th= admin_order_by_link _('Note count'), 'notes_count'
|
12
|
+
%th= admin_order_by_link _('Project count'), 'projects_count'
|
13
|
+
%th= admin_order_by_link _('Upload count'), 'uploads_count'
|
14
|
+
%th
|
15
|
+
|
16
|
+
%tbody
|
17
|
+
- @users.each do |user|
|
18
|
+
%tr.user
|
19
|
+
%td= user.username
|
20
|
+
%td= user.role
|
21
|
+
%td= user.created_at
|
22
|
+
%td.is-counter= user.albums_count
|
23
|
+
%td.is-counter= user.articles_count
|
24
|
+
%td.is-counter= user.notes_count
|
25
|
+
%td.is-counter= user.projects_count
|
26
|
+
%td.is-counter= user.uploads_count
|
27
|
+
%td.actions
|
28
|
+
.btn-group
|
29
|
+
= admin_show_online_link user
|
30
|
+
= admin_show_link 'user', user
|
31
|
+
= admin_destroy_link 'user', user
|
32
|
+
|
33
|
+
= paginate @users
|
@@ -0,0 +1 @@
|
|
1
|
+
json.array! @users, partial: 'admin_users/admin_user', as: :user
|
@@ -0,0 +1,26 @@
|
|
1
|
+
- @page_title = @user.real_name || @user.username
|
2
|
+
|
3
|
+
.page__actions
|
4
|
+
= link_to _('Show online'), @user, class: 'btn btn--show'
|
5
|
+
= link_to _('Destroy'),
|
6
|
+
admin_user_path(@user),
|
7
|
+
method: :delete,
|
8
|
+
data: { confirm: _('Are you sure?') },
|
9
|
+
class: 'btn btn--destroy'
|
10
|
+
|
11
|
+
%ul
|
12
|
+
%li
|
13
|
+
%strong= _('Username:')
|
14
|
+
= @user.username
|
15
|
+
%li
|
16
|
+
%strong= _('Email:')
|
17
|
+
= link_to @user.email, "mailto:#{@user.email}"
|
18
|
+
%li
|
19
|
+
%strong= _('Real name:')
|
20
|
+
= @user.real_name
|
21
|
+
%li
|
22
|
+
%strong= _('Subscription date:')
|
23
|
+
= @user.created_at
|
24
|
+
|
25
|
+
%dt= _('Bio')
|
26
|
+
= markdown(@user.biography || '')
|
@@ -0,0 +1 @@
|
|
1
|
+
json.partial! 'admin_users/admin_user', user: @user
|
@@ -0,0 +1,38 @@
|
|
1
|
+
- if !show_item? album
|
2
|
+
= render 'elabs/layouts/hidden_entry', entity: album
|
3
|
+
- else
|
4
|
+
.album.album-card
|
5
|
+
%header
|
6
|
+
.icon= icon 'book', %w[3x fw]
|
7
|
+
.headers
|
8
|
+
%h3{ lang: album.language.iso639_1 }= link_to album.name, album, class: 'title'
|
9
|
+
|
10
|
+
%ul.informations
|
11
|
+
%li
|
12
|
+
= icon('user', ['fw'])
|
13
|
+
%strong= _('User:')
|
14
|
+
= link_to album.user.username, album.user
|
15
|
+
%li
|
16
|
+
= icon('language', ['fw'])
|
17
|
+
%strong= _('Language:')
|
18
|
+
= link_to album.language.name, album.language
|
19
|
+
%li
|
20
|
+
= icon('copyright', ['fw'])
|
21
|
+
%strong= _('License:')
|
22
|
+
= link_to album.license.name, album.license
|
23
|
+
%li
|
24
|
+
= icon('info', ['fw'])
|
25
|
+
%strong= _('SFW:')
|
26
|
+
= boolean_icon_tag album.sfw, 'is-sfw', 'is-nsfw'
|
27
|
+
%li= render 'elabs/layouts/lists/projects', projects: album.projects
|
28
|
+
%li= render 'elabs/layouts/lists/tags', tags: album.tags
|
29
|
+
%article{ lang: album.language.iso639_1 }
|
30
|
+
= markdown album.description
|
31
|
+
.content__relations
|
32
|
+
= render 'elabs/layouts/empty' if album.uploads.length.zero?
|
33
|
+
.uploads-list
|
34
|
+
- album.uploads.published.limit(Elabs.albums_max_shown_uploads).each do |upload|
|
35
|
+
= render 'elabs/uploads/preview', upload: upload
|
36
|
+
- if album.uploads_count > Elabs.albums_max_shown_uploads
|
37
|
+
.more
|
38
|
+
+#{album.uploads_count - Elabs.albums_max_shown_uploads}
|