alchemy_cms 2.5.3.1 → 2.6.0.rc5
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -1
- data/.travis.yml +5 -13
- data/Gemfile +6 -3
- data/README.md +3 -2
- data/alchemy_cms.gemspec +22 -22
- data/app/assets/fonts/alchemy-icons.eot +0 -0
- data/app/assets/fonts/alchemy-icons.svg +54 -0
- data/app/assets/fonts/alchemy-icons.ttf +0 -0
- data/app/assets/fonts/alchemy-icons.woff +0 -0
- data/app/assets/images/alchemy/icons.png +0 -0
- data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +151 -0
- data/app/assets/javascripts/alchemy/alchemy.buttons.js.coffee +3 -2
- data/app/assets/javascripts/alchemy/alchemy.datepicker.js.coffee +31 -0
- data/app/assets/javascripts/alchemy/alchemy.dragndrop.js +1 -1
- data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +98 -0
- data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +23 -24
- data/app/assets/javascripts/alchemy/alchemy.growler.js.coffee +27 -0
- data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +11 -8
- data/app/assets/javascripts/alchemy/alchemy.hotkeys.js.coffee +32 -0
- data/app/assets/javascripts/alchemy/alchemy.image_cropper.js.coffee +46 -0
- data/app/assets/javascripts/alchemy/alchemy.js +8 -2
- data/app/assets/javascripts/alchemy/alchemy.link_overlay.js.coffee +5 -4
- data/app/assets/javascripts/alchemy/alchemy.list_filter.js.coffee +49 -0
- data/app/assets/javascripts/alchemy/alchemy.onload.js.coffee +3 -0
- data/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee +71 -0
- data/app/assets/javascripts/alchemy/alchemy.sitemap.js.coffee +61 -0
- data/app/assets/javascripts/alchemy/alchemy.spinner.js.coffee +35 -0
- data/app/assets/javascripts/alchemy/alchemy.string_extension.js.coffee +11 -0
- data/app/assets/javascripts/alchemy/alchemy.windows.js.coffee +278 -0
- data/app/assets/stylesheets/alchemy/admin.css.scss +2 -0
- data/app/assets/stylesheets/alchemy/archive.scss +109 -65
- data/app/assets/stylesheets/alchemy/base.scss +16 -188
- data/app/assets/stylesheets/alchemy/dashboard.scss +2 -2
- data/app/assets/stylesheets/alchemy/defaults.scss +2 -1
- data/app/assets/stylesheets/alchemy/elements.scss +58 -94
- data/app/assets/stylesheets/alchemy/errors.scss +2 -2
- data/app/assets/stylesheets/alchemy/{mixins.scss → extends.scss} +104 -80
- data/app/assets/stylesheets/alchemy/flash.scss +4 -6
- data/app/assets/stylesheets/alchemy/fonts.scss +46 -0
- data/app/assets/stylesheets/alchemy/form_elements.scss +46 -45
- data/app/assets/stylesheets/alchemy/frame.scss +20 -15
- data/app/assets/stylesheets/alchemy/icons.scss +22 -9
- data/app/assets/stylesheets/alchemy/jquery-ui.scss +476 -399
- data/app/assets/stylesheets/alchemy/login.scss +1 -1
- data/app/assets/stylesheets/alchemy/menubar.css.scss +1 -1
- data/app/assets/stylesheets/alchemy/notices.scss +5 -5
- data/app/assets/stylesheets/alchemy/pagination.scss +25 -13
- data/app/assets/stylesheets/alchemy/search.scss +29 -17
- data/app/assets/stylesheets/alchemy/sitemap.scss +41 -36
- data/app/assets/stylesheets/alchemy/tables.scss +102 -50
- data/app/assets/stylesheets/alchemy/tinymce_dialog.css.scss +18 -16
- data/app/assets/stylesheets/alchemy/toolbar.scss +84 -24
- data/app/assets/stylesheets/alchemy/upload.scss +14 -9
- data/app/assets/stylesheets/alchemy/variables.scss +1 -0
- data/app/assets/stylesheets/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css.scss +18 -21
- data/app/controllers/alchemy/admin/attachments_controller.rb +29 -39
- data/app/controllers/alchemy/admin/base_controller.rb +3 -9
- data/app/controllers/alchemy/admin/clipboard_controller.rb +1 -1
- data/app/controllers/alchemy/admin/contents_controller.rb +1 -1
- data/app/controllers/alchemy/admin/dashboard_controller.rb +1 -1
- data/app/controllers/alchemy/admin/elements_controller.rb +3 -3
- data/app/controllers/alchemy/admin/essence_files_controller.rb +1 -1
- data/app/controllers/alchemy/admin/essence_pictures_controller.rb +5 -5
- data/app/controllers/alchemy/admin/languages_controller.rb +1 -1
- data/app/controllers/alchemy/admin/pages_controller.rb +18 -16
- data/app/controllers/alchemy/admin/pictures_controller.rb +11 -10
- data/app/controllers/alchemy/admin/resources_controller.rb +87 -14
- data/app/controllers/alchemy/admin/tags_controller.rb +3 -3
- data/app/controllers/alchemy/admin/trash_controller.rb +3 -3
- data/app/controllers/alchemy/admin/users_controller.rb +6 -11
- data/app/controllers/alchemy/attachments_controller.rb +8 -9
- data/app/controllers/alchemy/base_controller.rb +17 -10
- data/app/controllers/alchemy/pages_controller.rb +7 -19
- data/app/controllers/alchemy/passwords_controller.rb +15 -3
- data/app/controllers/alchemy/user_sessions_controller.rb +5 -4
- data/app/controllers/alchemy/users_controller.rb +1 -1
- data/app/helpers/alchemy/admin/attachments_helper.rb +2 -2
- data/app/helpers/alchemy/admin/base_helper.rb +62 -90
- data/app/helpers/alchemy/admin/elements_helper.rb +13 -5
- data/app/helpers/alchemy/admin/essences_helper.rb +3 -5
- data/app/helpers/alchemy/admin/pages_helper.rb +6 -3
- data/app/helpers/alchemy/admin/tags_helper.rb +60 -0
- data/app/helpers/alchemy/base_helper.rb +16 -20
- data/app/helpers/alchemy/elements_helper.rb +7 -11
- data/app/helpers/alchemy/essences_helper.rb +2 -2
- data/app/helpers/alchemy/pages_helper.rb +31 -69
- data/app/helpers/alchemy/url_helper.rb +11 -3
- data/app/models/alchemy/attachment.rb +73 -45
- data/app/models/alchemy/cell.rb +1 -1
- data/app/models/alchemy/content.rb +20 -9
- data/app/models/alchemy/element.rb +9 -7
- data/app/models/alchemy/page.rb +15 -248
- data/app/models/alchemy/page/cells.rb +71 -0
- data/app/models/alchemy/page/elements.rb +147 -0
- data/app/models/alchemy/page/naming.rb +90 -0
- data/app/models/alchemy/picture.rb +18 -13
- data/app/models/alchemy/tag.rb +1 -1
- data/app/models/alchemy/user.rb +38 -6
- data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +14 -7
- data/app/views/alchemy/admin/attachments/_attachment.html.erb +17 -12
- data/app/views/alchemy/admin/attachments/_file_to_assign.html.erb +3 -8
- data/app/views/alchemy/admin/attachments/_files_list.html.erb +20 -12
- data/app/views/alchemy/admin/attachments/_overlay_file_list.html.erb +11 -0
- data/app/views/alchemy/admin/attachments/_tag_list.html.erb +31 -0
- data/app/views/alchemy/admin/attachments/archive_overlay.js.erb +4 -0
- data/app/views/alchemy/admin/attachments/edit.html.erb +8 -7
- data/app/views/alchemy/admin/attachments/index.html.erb +19 -12
- data/app/views/alchemy/admin/attachments/new.html.erb +2 -2
- data/app/views/alchemy/admin/attachments/show.html.erb +3 -0
- data/app/views/alchemy/admin/contents/_missing.html.erb +4 -4
- data/app/views/alchemy/admin/contents/create.js.erb +1 -1
- data/app/views/alchemy/admin/contents/new.html.erb +6 -3
- data/app/views/alchemy/admin/dashboard/_locked_pages.html.erb +1 -1
- data/app/views/alchemy/admin/dashboard/_users.html.erb +1 -1
- data/app/views/alchemy/admin/dashboard/index.html.erb +3 -3
- data/app/views/alchemy/admin/dashboard/info.html.erb +16 -13
- data/app/views/alchemy/admin/elements/_add_picture.html.erb +1 -1
- data/app/views/alchemy/admin/elements/_element_foot.html.erb +4 -4
- data/app/views/alchemy/admin/elements/_element_head.html.erb +1 -7
- data/app/views/alchemy/admin/elements/_elements_select.html.erb +2 -2
- data/app/views/alchemy/admin/elements/_new_element_form.html.erb +4 -4
- data/app/views/alchemy/admin/elements/_picture_gallery_editor.html.erb +1 -1
- data/app/views/alchemy/admin/elements/create.js.erb +2 -2
- data/app/views/alchemy/admin/elements/fold.js.erb +3 -6
- data/app/views/alchemy/admin/elements/new.html.erb +1 -1
- data/app/views/alchemy/admin/elements/order.js.erb +1 -1
- data/app/views/alchemy/admin/elements/trash.js.erb +1 -1
- data/app/views/alchemy/admin/elements/update.js.erb +2 -2
- data/app/views/alchemy/admin/essence_files/edit.html.erb +4 -4
- data/app/views/alchemy/admin/essence_pictures/crop.html.erb +17 -18
- data/app/views/alchemy/admin/essence_pictures/edit.html.erb +2 -2
- data/app/views/alchemy/admin/essence_pictures/update.js.erb +1 -0
- data/app/views/alchemy/admin/languages/_form.html.erb +12 -10
- data/app/views/alchemy/admin/languages/_language.html.erb +2 -1
- data/app/views/alchemy/admin/languages/_table.html.erb +3 -3
- data/app/views/alchemy/admin/languages/index.html.erb +15 -15
- data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +6 -6
- data/app/views/alchemy/admin/layoutpages/index.html.erb +41 -40
- data/app/views/alchemy/admin/pages/_contactform_links.html.erb +4 -4
- data/app/views/alchemy/admin/pages/_create_language_form.html.erb +6 -6
- data/app/views/alchemy/admin/pages/_external_link.html.erb +2 -2
- data/app/views/alchemy/admin/pages/_file_link.html.erb +3 -3
- data/app/views/alchemy/admin/pages/_internal_link.html.erb +1 -1
- data/app/views/alchemy/admin/pages/_new_page_form.html.erb +1 -1
- data/app/views/alchemy/admin/pages/_page.html.erb +13 -13
- data/app/views/alchemy/admin/pages/_page_for_links.html.erb +2 -4
- data/app/views/alchemy/admin/pages/_sitemap.html.erb +5 -0
- data/app/views/alchemy/admin/pages/configure.html.erb +7 -7
- data/app/views/alchemy/admin/pages/configure_external.html.erb +4 -4
- data/app/views/alchemy/admin/pages/edit.html.erb +23 -30
- data/app/views/alchemy/admin/pages/index.html.erb +34 -23
- data/app/views/alchemy/admin/pages/new.html.erb +1 -1
- data/app/views/alchemy/admin/pages/sort.js.erb +1 -1
- data/app/views/alchemy/admin/partials/_flash_upload.html.erb +2 -3
- data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +2 -2
- data/app/views/alchemy/admin/partials/_search_form.html.erb +3 -3
- data/app/views/alchemy/admin/partials/_upload_form.html.erb +2 -2
- data/app/views/alchemy/admin/pictures/_archive.html.erb +7 -7
- data/app/views/alchemy/admin/pictures/_archive_overlay.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +6 -6
- data/app/views/alchemy/admin/pictures/_filter_bar.html.erb +4 -4
- data/app/views/alchemy/admin/pictures/_overlay_picture_list.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/_picture.html.erb +3 -8
- data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +9 -14
- data/app/views/alchemy/admin/pictures/_tag_list.html.erb +27 -25
- data/app/views/alchemy/admin/pictures/archive_overlay.js.erb +3 -1
- data/app/views/alchemy/admin/pictures/index.html.erb +49 -42
- data/app/views/alchemy/admin/pictures/new.html.erb +2 -2
- data/app/views/alchemy/admin/pictures/show.html.erb +11 -0
- data/app/views/alchemy/admin/resources/_boolean.html.erb +2 -2
- data/app/views/alchemy/admin/resources/_datetime.html.erb +2 -2
- data/app/views/alchemy/admin/resources/_form.html.erb +9 -8
- data/app/views/alchemy/admin/resources/_resource.html.erb +15 -21
- data/app/views/alchemy/admin/resources/_string.html.erb +2 -2
- data/app/views/alchemy/admin/resources/_table.html.erb +11 -13
- data/app/views/alchemy/admin/resources/_text.html.erb +2 -2
- data/app/views/alchemy/admin/resources/index.csv.erb +13 -0
- data/app/views/alchemy/admin/resources/index.html.erb +24 -15
- data/app/views/alchemy/admin/sites/index.html.erb +23 -0
- data/app/views/alchemy/admin/tags/_radio_tag.html.erb +1 -1
- data/app/views/alchemy/admin/tags/_tag.html.erb +2 -1
- data/app/views/alchemy/admin/tags/edit.html.erb +1 -1
- data/app/views/alchemy/admin/tags/index.html.erb +16 -11
- data/app/views/alchemy/admin/tags/new.html.erb +3 -3
- data/app/views/alchemy/admin/trash/clear.js.coffee +1 -1
- data/app/views/alchemy/admin/users/_table.html.erb +12 -5
- data/app/views/alchemy/admin/users/_user.html.erb +16 -16
- data/app/views/alchemy/admin/users/index.html.erb +28 -16
- data/app/views/alchemy/breadcrumb/_page.html.erb +15 -0
- data/app/views/alchemy/breadcrumb/_spacer.html.erb +1 -0
- data/app/views/alchemy/elements/_editor_not_found.html.erb +1 -1
- data/app/views/alchemy/essences/_essence_file_editor.html.erb +16 -16
- data/app/views/alchemy/essences/_essence_file_view.html.erb +8 -9
- data/app/views/alchemy/essences/_essence_picture_editor.html.erb +3 -6
- data/app/views/alchemy/essences/_essence_picture_tools.html.erb +9 -8
- data/app/views/alchemy/essences/_essence_richtext_editor.html.erb +0 -5
- data/app/views/alchemy/essences/_linkable_essence_tools.html.erb +2 -2
- data/app/views/alchemy/navigation/_link.html.erb +7 -7
- data/app/views/alchemy/navigation/_renderer.html.erb +29 -36
- data/app/views/alchemy/notifications/admin_user_created.de.text.erb +5 -1
- data/app/views/alchemy/notifications/admin_user_created.en.text.erb +5 -1
- data/app/views/alchemy/notifications/registered_user_created.de.text.erb +13 -0
- data/app/views/alchemy/notifications/registered_user_created.en.text.erb +13 -0
- data/app/views/alchemy/search/_result.html.erb +4 -6
- data/app/views/alchemy/search/_results.html.erb +4 -5
- data/app/views/alchemy/user_sessions/leave.html.erb +1 -1
- data/app/views/alchemy/user_sessions/new.html.erb +2 -2
- data/app/views/kaminari/_first_page.html.erb +11 -0
- data/app/views/kaminari/_gap.html.erb +1 -1
- data/app/views/kaminari/_last_page.html.erb +11 -0
- data/app/views/kaminari/_next_page.html.erb +2 -2
- data/app/views/kaminari/_page.html.erb +1 -1
- data/app/views/kaminari/_paginator.html.erb +2 -0
- data/app/views/kaminari/_prev_page.html.erb +2 -2
- data/app/views/layouts/alchemy/admin.html.erb +4 -5
- data/config/alchemy/config.yml +8 -12
- data/config/authorization_rules.rb +4 -3
- data/config/initializers/dragonfly.rb +20 -12
- data/config/locales/alchemy.de.yml +20 -15
- data/config/locales/alchemy.en.yml +15 -10
- data/config/locales/devise.de.yml +1 -0
- data/config/routes.rb +3 -3
- data/{spec/dummy/db/migrate/20121118000000_alchemy_two_point_four.rb → db/migrate/20130214233001_alchemy_two_point_five.rb} +50 -36
- data/db/migrate/20130221200514_migrate_attachments_to_dragonfly.rb +21 -0
- data/db/migrate/20130312205327_change_alchemy_users_role_to_roles.rb +11 -0
- data/lib/alchemy/capistrano.rb +10 -8
- data/lib/alchemy/errors.rb +7 -0
- data/lib/alchemy/filetypes.rb +33 -0
- data/lib/alchemy/i18n.rb +9 -1
- data/lib/alchemy/name_conversions.rb +28 -0
- data/lib/alchemy/page_layout.rb +5 -3
- data/lib/alchemy/resource.rb +132 -29
- data/lib/alchemy/resources_helper.rb +81 -12
- data/lib/alchemy/upgrader.rb +14 -276
- data/lib/alchemy/version.rb +1 -1
- data/lib/alchemy_cms.rb +17 -2
- data/lib/rails/generators/alchemy/deploy_script/templates/deploy.rb.tt +1 -1
- data/lib/rails/generators/alchemy/scaffold/scaffold_generator.rb +1 -1
- data/lib/tasks/alchemy/convert.rake +39 -0
- data/lib/tasks/alchemy/install.rake +4 -6
- data/lib/tasks/alchemy/upgrade.rake +18 -1
- data/spec/controllers/admin/clipboard_controller_spec.rb +4 -4
- data/spec/controllers/admin/elements_controller_spec.rb +23 -23
- data/spec/controllers/admin/pages_controller_spec.rb +15 -0
- data/spec/controllers/admin/resources_controller_spec.rb +1 -11
- data/spec/controllers/admin/trash_controller_spec.rb +9 -9
- data/spec/controllers/attachments_controller_spec.rb +3 -3
- data/spec/controllers/elements_controller_spec.rb +2 -2
- data/spec/controllers/pages_controller_spec.rb +160 -129
- data/spec/controllers/pictures_controller_spec.rb +2 -2
- data/spec/controllers/user_sessions_controller_spec.rb +3 -3
- data/spec/controllers/users_controller_spec.rb +2 -2
- data/spec/dummy/app/models/event.rb +2 -2
- data/spec/dummy/app/models/location.rb +4 -0
- data/spec/dummy/app/views/layouts/application.html.erb +6 -42
- data/spec/dummy/config/routes.rb +1 -1
- data/spec/dummy/db/migrate/20121026104128_create_events.rb +0 -1
- data/{db/migrate/20121118000000_alchemy_two_point_four.rb → spec/dummy/db/migrate/20130214233001_alchemy_two_point_five.rb} +50 -36
- data/spec/dummy/db/migrate/20130221200514_migrate_attachments_to_dragonfly.rb +21 -0
- data/spec/dummy/db/migrate/20130312205327_change_alchemy_users_role_to_roles.rb +11 -0
- data/spec/dummy/db/migrate/20130328101418_create_locations.rb +9 -0
- data/spec/dummy/db/schema.rb +15 -6
- data/spec/factories.rb +4 -4
- data/spec/{integration → features}/admin/link_overlay_spec.rb +0 -0
- data/spec/{integration → features}/admin/modules_integration_spec.rb +1 -1
- data/spec/{integration → features}/admin/pages_controller_spec.rb +9 -4
- data/spec/{integration → features}/admin/picture_library_integration_spec.rb +5 -5
- data/spec/{integration → features}/admin/resources_integration_spec.rb +1 -1
- data/spec/{integration → features}/navigation_spec.rb +0 -0
- data/spec/{integration → features}/pages_controller_spec.rb +42 -112
- data/spec/{integration → features}/picture_security_spec.rb +2 -2
- data/spec/{integration → features}/security_spec.rb +7 -7
- data/spec/{integration → features}/translation_integration_spec.rb +0 -0
- data/spec/helpers/admin/base_helper_spec.rb +0 -50
- data/spec/helpers/admin/tags_helper_spec.rb +53 -0
- data/spec/helpers/base_helper_spec.rb +19 -3
- data/spec/helpers/pages_helper_spec.rb +92 -44
- data/spec/{url_helpers_spec.rb → helpers/picture_url_helpers_spec.rb} +7 -7
- data/spec/helpers/url_helper_spec.rb +92 -72
- data/spec/{config_spec.rb → libraries/config_spec.rb} +0 -0
- data/spec/libraries/resource_spec.rb +215 -76
- data/spec/libraries/resources_helper_spec.rb +70 -28
- data/spec/models/attachment_spec.rb +75 -9
- data/spec/models/clipboard_spec.rb +1 -1
- data/spec/models/element_spec.rb +7 -0
- data/spec/models/page_spec.rb +144 -25
- data/spec/models/picture_spec.rb +5 -5
- data/spec/models/resource_spec.rb +47 -10
- data/spec/models/user_spec.rb +115 -3
- data/spec/{routing_spec.rb → routing/routing_spec.rb} +8 -20
- data/spec/spec_helper.rb +5 -6
- data/spec/support/alchemy/specs_helpers.rb +1 -1
- data/spec/support/ci/install_phantomjs +1 -1
- data/spec/support/image with spaces.png +0 -0
- data/vendor/assets/javascripts/jquery_plugins/jquery.Jcrop.min.js +18 -18
- data/vendor/assets/javascripts/jquery_plugins/{jquery.dialogextend.1_0_1.js → jquery.dialogextend.js} +25 -17
- data/vendor/assets/javascripts/jquery_plugins/jquery.scrollTo.min.js +7 -0
- data/vendor/assets/javascripts/jquery_plugins/jquery.ui.tabspaging.js +7 -7
- data/vendor/assets/javascripts/keymage.min.js +6 -0
- data/vendor/assets/javascripts/spin.min.js +1 -0
- metadata +122 -124
- data/app/assets/images/alchemy/ajax_loader.gif +0 -0
- data/app/assets/images/alchemy/gui/toggle.png +0 -0
- data/app/assets/images/alchemy/image_loader.gif +0 -0
- data/app/assets/images/alchemy/shading.png +0 -0
- data/app/assets/images/alchemy/tabs.gif +0 -0
- data/app/assets/javascripts/alchemy/alchemy.base.js +0 -172
- data/app/assets/javascripts/alchemy/alchemy.datepicker.js +0 -47
- data/app/assets/javascripts/alchemy/alchemy.element_editor_selector.js +0 -91
- data/app/assets/javascripts/alchemy/alchemy.growler.js +0 -46
- data/app/assets/javascripts/alchemy/alchemy.image_cropper.js +0 -60
- data/app/assets/javascripts/alchemy/alchemy.js_extensions.js +0 -15
- data/app/assets/javascripts/alchemy/alchemy.preview_window.js +0 -97
- data/app/assets/javascripts/alchemy/alchemy.windows.js +0 -321
- data/app/models/alchemy/clipboard_spec.rb +0 -0
- data/app/views/alchemy/admin/pictures/show_in_window.html.erb +0 -8
- data/app/views/alchemy/notifications/registered_user_created.text.erb +0 -11
- data/db/migrate/20121121162313_switch_from_fleximage_to_dragonfly.rb +0 -21
- data/db/migrate/20121205155004_create_alchemy_sites.rb +0 -14
- data/db/migrate/20121211163003_add_public_to_alchemy_sites.rb +0 -6
- data/db/migrate/20121220102223_add_aliases_to_site.rb +0 -6
- data/db/migrate/20130110212411_create_alchemy_legacy_page_urls.rb +0 -11
- data/db/migrate/20130121092645_migrate_to_devise.rb +0 -24
- data/spec/alchemy_spec.rb +0 -7
- data/spec/dummy/db/migrate/20121121162313_switch_from_fleximage_to_dragonfly.rb +0 -21
- data/spec/dummy/db/migrate/20121205155004_create_alchemy_sites.rb +0 -14
- data/spec/dummy/db/migrate/20121211163003_add_public_to_alchemy_sites.rb +0 -6
- data/spec/dummy/db/migrate/20121220102223_add_aliases_to_site.rb +0 -6
- data/spec/dummy/db/migrate/20130110212411_create_alchemy_legacy_page_urls.rb +0 -11
- data/spec/dummy/db/migrate/20130121092645_migrate_to_devise.rb +0 -24
- data/vendor/assets/javascripts/jquery_plugins/jquery.scrollTo-1.4.2-min.js +0 -11
@@ -0,0 +1,35 @@
|
|
1
|
+
window.Alchemy = {} if typeof(window.Alchemy) is 'undefined'
|
2
|
+
|
3
|
+
Alchemy.Spinner =
|
4
|
+
|
5
|
+
DEFAULTS:
|
6
|
+
lines: 5
|
7
|
+
corners: 0.75
|
8
|
+
rotate: 54
|
9
|
+
trail: 75
|
10
|
+
speed: 1.25
|
11
|
+
hwaccel: true
|
12
|
+
|
13
|
+
small: (opts) ->
|
14
|
+
defaults = $.extend({}, Alchemy.Spinner.DEFAULTS,
|
15
|
+
length: 2
|
16
|
+
width: 3
|
17
|
+
radius: 2
|
18
|
+
)
|
19
|
+
new Spinner($.extend(defaults, opts))
|
20
|
+
|
21
|
+
medium: (opts) ->
|
22
|
+
defaults = $.extend({}, Alchemy.Spinner.DEFAULTS,
|
23
|
+
length: 4
|
24
|
+
width: 6
|
25
|
+
radius: 4
|
26
|
+
)
|
27
|
+
new Spinner($.extend(defaults, opts))
|
28
|
+
|
29
|
+
large: (opts) ->
|
30
|
+
defaults = $.extend({}, Alchemy.Spinner.DEFAULTS,
|
31
|
+
length: 8
|
32
|
+
width: 12
|
33
|
+
radius: 8
|
34
|
+
)
|
35
|
+
new Spinner($.extend(defaults, opts))
|
@@ -0,0 +1,11 @@
|
|
1
|
+
String::beginsWith = (t, i) ->
|
2
|
+
if i is false
|
3
|
+
t is @substring(0, t.length)
|
4
|
+
else
|
5
|
+
t.toLowerCase() is @substring(0, t.length).toLowerCase()
|
6
|
+
|
7
|
+
String::endsWith = (t, i) ->
|
8
|
+
if i is false
|
9
|
+
t is @substring(@length - t.length)
|
10
|
+
else
|
11
|
+
t.toLowerCase() is @substring(@length - t.length).toLowerCase()
|
@@ -0,0 +1,278 @@
|
|
1
|
+
# This module holds methods for all kind of overlay windows in Alchemy
|
2
|
+
|
3
|
+
window.Alchemy = {} if typeof(window.Alchemy) is 'undefined'
|
4
|
+
|
5
|
+
$.extend Alchemy,
|
6
|
+
|
7
|
+
# Returns a HTML div container with a spinner inside made with spin.js
|
8
|
+
#
|
9
|
+
# Options:
|
10
|
+
#
|
11
|
+
# width: 400 - The width of the spinner container (Number)
|
12
|
+
# height: 300 - The height of the spinner container (Number)
|
13
|
+
#
|
14
|
+
getOverlaySpinner: (opts) ->
|
15
|
+
options = {width: 400, height: 300}
|
16
|
+
$.extend(options, opts)
|
17
|
+
$spinner_container = $('<div class="spinner_container"/>').css(
|
18
|
+
width: options.width
|
19
|
+
height: options.height
|
20
|
+
)
|
21
|
+
spinner = Alchemy.Spinner.medium(
|
22
|
+
top: options.height / 2 - 8 + "px"
|
23
|
+
left: options.width / 2 - 8 + "px"
|
24
|
+
)
|
25
|
+
spinner.spin $spinner_container[0]
|
26
|
+
$spinner_container
|
27
|
+
|
28
|
+
# Display a error message for dialogs
|
29
|
+
# Used by Alchemy.openWindow if errors happen
|
30
|
+
AjaxErrorHandler: ($dialog, status, textStatus, errorThrown) ->
|
31
|
+
$div = $('<div class="with_padding" />')
|
32
|
+
$errorDiv = $("<div id=\"errorExplanation\" class=\"ajax_status_code_#{status}\" />")
|
33
|
+
$dialog.html $div
|
34
|
+
$div.append $errorDiv
|
35
|
+
if status is 0
|
36
|
+
$errorDiv.append "<h2>The server does not respond.</h2>"
|
37
|
+
$errorDiv.append "<p>Please check server and try again.</p>"
|
38
|
+
else
|
39
|
+
$errorDiv.append "<h2>" + errorThrown + " (" + status + ")</h2>"
|
40
|
+
$errorDiv.append "<p>Please check log and try again.</p>"
|
41
|
+
|
42
|
+
# Opens a confirm window
|
43
|
+
#
|
44
|
+
# Options:
|
45
|
+
#
|
46
|
+
# title: '' - The title of the overlay window (String)
|
47
|
+
# message: '' - The message that will be displayed to the user (String)
|
48
|
+
# cancelLabel: '' - The label of the cancel button (String)
|
49
|
+
# okLabel: '' - The label of the ok button (String)
|
50
|
+
# okCallback: null - The function to invoke on confirmation (Function)
|
51
|
+
#
|
52
|
+
openConfirmWindow: (options = {}) ->
|
53
|
+
$confirmation = $('<div style="display: none" id="alchemyConfirmation" />')
|
54
|
+
$confirmation.appendTo "body"
|
55
|
+
$confirmation.html "<p>" + options.message + "</p>"
|
56
|
+
Alchemy.ConfirmationWindow = $confirmation.dialog
|
57
|
+
resizable: false
|
58
|
+
minHeight: 100
|
59
|
+
minWidth: 300
|
60
|
+
modal: true
|
61
|
+
title: options.title
|
62
|
+
show: "fade"
|
63
|
+
hide: "fade"
|
64
|
+
buttons: [
|
65
|
+
{
|
66
|
+
text: options.cancelLabel,
|
67
|
+
click: ->
|
68
|
+
$(this).dialog "close"
|
69
|
+
Alchemy.Buttons.enable()
|
70
|
+
return
|
71
|
+
},
|
72
|
+
{
|
73
|
+
text: options.okLabel,
|
74
|
+
click: ->
|
75
|
+
$(this).dialog "close"
|
76
|
+
options.okCallback()
|
77
|
+
return
|
78
|
+
}
|
79
|
+
]
|
80
|
+
open: ->
|
81
|
+
Alchemy.Buttons.observe "#alchemyConfirmation"
|
82
|
+
close: ->
|
83
|
+
$("#alchemyConfirmation").remove()
|
84
|
+
|
85
|
+
# Opens a confirm to delete window
|
86
|
+
#
|
87
|
+
# Arguments:
|
88
|
+
#
|
89
|
+
# url - The url to the server delete action. Uses DELETE as HTTP method. (String)
|
90
|
+
# opts - An options object (Object)
|
91
|
+
#
|
92
|
+
# Options:
|
93
|
+
#
|
94
|
+
# title: '' - The title of the confirmation window (String)
|
95
|
+
# message: '' - The message that will be displayed to the user (String)
|
96
|
+
# okLabel: '' - The label for the ok button (String)
|
97
|
+
# cancelLabel: '' - The label for the cancel button (String)
|
98
|
+
#
|
99
|
+
confirmToDeleteWindow: (url, opts) ->
|
100
|
+
options =
|
101
|
+
title: ''
|
102
|
+
message: ''
|
103
|
+
okLabel: ''
|
104
|
+
cancelLabel: ''
|
105
|
+
$.extend(options, opts)
|
106
|
+
Alchemy.openConfirmWindow
|
107
|
+
message: options.message
|
108
|
+
title: options.title
|
109
|
+
okLabel: options.okLabel
|
110
|
+
cancelLabel: options.cancelLabel
|
111
|
+
okCallback: ->
|
112
|
+
Alchemy.pleaseWaitOverlay()
|
113
|
+
$.ajax
|
114
|
+
url: url
|
115
|
+
type: "DELETE"
|
116
|
+
|
117
|
+
# Opens a new dialog window
|
118
|
+
#
|
119
|
+
# Arguments are:
|
120
|
+
#
|
121
|
+
# url: the url to query to get the window body (String)
|
122
|
+
# opts: An options object that holds all additional options (Object)
|
123
|
+
#
|
124
|
+
# Options are:
|
125
|
+
#
|
126
|
+
# title: '' - The title for the overlay window (String)
|
127
|
+
# width: 400 - The width of the window (Number)
|
128
|
+
# height: 300 - The height of the window (Number)
|
129
|
+
# resizable: false - Make the overlay resizable (Boolean)
|
130
|
+
# modal: true - Make the window a modal dialog (Boolean)
|
131
|
+
# close_on_escape: true - Should the overlay close on escape key (Boolean)
|
132
|
+
# overflow: true - Display overflowing content, or show scrollbars (Boolean)
|
133
|
+
# image_loader: true - Init the image loader after opening the dialog (Boolean)
|
134
|
+
#
|
135
|
+
openWindow: (url, opts) ->
|
136
|
+
options =
|
137
|
+
title: ''
|
138
|
+
width: 400
|
139
|
+
height: 300
|
140
|
+
resizable: false
|
141
|
+
modal: true
|
142
|
+
overflow: true
|
143
|
+
image_loader: true
|
144
|
+
close_on_escape: true
|
145
|
+
image_loader_color: '#fff'
|
146
|
+
$.extend(options, opts)
|
147
|
+
if options.width is "fullscreen"
|
148
|
+
options.width = $(window).width() - 50
|
149
|
+
options.height = $(window).height() - 50
|
150
|
+
$dialog = $('<div style="display: none" class="alchemy_overlay" />')
|
151
|
+
$dialog.appendTo "body"
|
152
|
+
$dialog.html Alchemy.getOverlaySpinner
|
153
|
+
width: (if options.width is "auto" then 400 else options.width)
|
154
|
+
height: (if options.height is "auto" then 300 else options.height)
|
155
|
+
Alchemy.CurrentWindow = $dialog.dialog
|
156
|
+
modal: options.modal
|
157
|
+
minWidth: (if options.width is "auto" then 400 else options.width)
|
158
|
+
minHeight: (if options.height is "auto" then 300 else options.height)
|
159
|
+
maxHeight: options.maxHeight
|
160
|
+
title: options.title
|
161
|
+
resizable: options.resizable
|
162
|
+
show: "fade"
|
163
|
+
hide: "fade"
|
164
|
+
closeOnEscape: options.close_on_escape
|
165
|
+
open: (event, ui) ->
|
166
|
+
$.ajax
|
167
|
+
url: url
|
168
|
+
success: (data, textStatus, XMLHttpRequest) ->
|
169
|
+
widget = $dialog.dialog("widget")
|
170
|
+
$dialog.html(data)
|
171
|
+
$dialog.css(overflow: (if options.overflow then "visible" else "auto"))
|
172
|
+
widget.css(overflow: (if options.overflow then "visible" else "hidden"))
|
173
|
+
if options.width is "auto"
|
174
|
+
widget.css left: (($(window).width() / 2) - ($dialog.width() / 2))
|
175
|
+
if options.height is "auto"
|
176
|
+
widget.css top: ($(window).height() - $dialog.dialog("widget").height()) / 2
|
177
|
+
Alchemy.GUI.init Alchemy.CurrentWindow
|
178
|
+
if options.image_loader
|
179
|
+
Alchemy.ImageLoader Alchemy.CurrentWindow, {color: options.image_loader_color}
|
180
|
+
error: (XMLHttpRequest, textStatus, errorThrown) ->
|
181
|
+
Alchemy.AjaxErrorHandler $dialog, XMLHttpRequest.status, textStatus, errorThrown
|
182
|
+
complete: (jqXHR, textStatus) ->
|
183
|
+
Alchemy.Buttons.enable()
|
184
|
+
close: ->
|
185
|
+
$dialog.remove()
|
186
|
+
|
187
|
+
# Closes the current dialog
|
188
|
+
closeCurrentWindow: ->
|
189
|
+
if Alchemy.CurrentWindow
|
190
|
+
Alchemy.CurrentWindow.dialog "close"
|
191
|
+
Alchemy.CurrentWindow = null
|
192
|
+
else
|
193
|
+
$(".alchemy_overlay").dialog "close"
|
194
|
+
true
|
195
|
+
|
196
|
+
# Opens an image in an overlay
|
197
|
+
# Used by the picture library
|
198
|
+
zoomImage: (url, title, width, height) ->
|
199
|
+
$doc_width = $(window).width()
|
200
|
+
$doc_height = $(window).height()
|
201
|
+
if width > $doc_width
|
202
|
+
width = 'fullscreen'
|
203
|
+
if height > $doc_height
|
204
|
+
height = $doc_height
|
205
|
+
Alchemy.openWindow url,
|
206
|
+
width: width
|
207
|
+
height: height
|
208
|
+
maxHeight: height
|
209
|
+
title: title
|
210
|
+
overflow: false
|
211
|
+
modal: false
|
212
|
+
image_loader_color: '#000'
|
213
|
+
|
214
|
+
# Trash window methods
|
215
|
+
TrashWindow:
|
216
|
+
|
217
|
+
# Opens the trash window
|
218
|
+
open: (page_id, title) ->
|
219
|
+
Alchemy.TrashWindow.current = Alchemy.openWindow(
|
220
|
+
Alchemy.routes.admin_trash_path(page_id),
|
221
|
+
title: title,
|
222
|
+
width: 380,
|
223
|
+
height: 450,
|
224
|
+
maxHeight: $(window).height() - 50,
|
225
|
+
modal: false
|
226
|
+
)
|
227
|
+
|
228
|
+
# Refreshes the trash window
|
229
|
+
refresh: (page_id) ->
|
230
|
+
if Alchemy.TrashWindow.current
|
231
|
+
Alchemy.TrashWindow.current.html Alchemy.getOverlaySpinner(width: 380, height: 270)
|
232
|
+
$.get Alchemy.routes.admin_trash_path(page_id), (html) ->
|
233
|
+
Alchemy.TrashWindow.current.html html
|
234
|
+
|
235
|
+
# Adds onClick events for Alchemy overlays
|
236
|
+
#
|
237
|
+
# Elements are all links that have a data-alchemy-overlay or data-alchemy-confirm-delete
|
238
|
+
# and all input/buttons that have a data-alchemy-confirm attribute.
|
239
|
+
#
|
240
|
+
# Arguments:
|
241
|
+
#
|
242
|
+
# You can pass a scope so that only elements inside this scope are queried
|
243
|
+
#
|
244
|
+
# The observer takes the href attribute as url for the overlay window.
|
245
|
+
#
|
246
|
+
# See Alchemy.openWindow for further options you can add to the data attribute
|
247
|
+
#
|
248
|
+
overlayObserver: (scope) ->
|
249
|
+
$("a[data-alchemy-overlay]", scope).click (event) ->
|
250
|
+
$this = $(this)
|
251
|
+
options = $this.data("alchemy-overlay")
|
252
|
+
event.preventDefault()
|
253
|
+
Alchemy.openWindow $this.attr("href"), options
|
254
|
+
false
|
255
|
+
$("a[data-alchemy-confirm-delete]", scope).click (event) ->
|
256
|
+
$this = $(this)
|
257
|
+
options = $this.data("alchemy-confirm-delete")
|
258
|
+
event.preventDefault()
|
259
|
+
Alchemy.confirmToDeleteWindow $this.attr("href"),
|
260
|
+
title: options.title,
|
261
|
+
message: options.message,
|
262
|
+
okLabel: options.ok_label,
|
263
|
+
cancelLabel: options.cancel_label
|
264
|
+
false
|
265
|
+
$("input[data-alchemy-confirm], button[data-alchemy-confirm]", scope).click (event) ->
|
266
|
+
$this = $(this)
|
267
|
+
self = this
|
268
|
+
options = $this.data("alchemy-confirm")
|
269
|
+
event.preventDefault()
|
270
|
+
Alchemy.openConfirmWindow $.extend(options,
|
271
|
+
okLabel: options.okLabel || options.ok_label, #hmpf
|
272
|
+
cancelLabel: options.cancelLabel || options.cancel_label, #hmpf
|
273
|
+
okCallback: ->
|
274
|
+
Alchemy.pleaseWaitOverlay()
|
275
|
+
self.form.submit()
|
276
|
+
return
|
277
|
+
)
|
278
|
+
false
|
@@ -2,6 +2,7 @@
|
|
2
2
|
* -------------------------------
|
3
3
|
*= require_self
|
4
4
|
*/
|
5
|
+
|
5
6
|
@import "alchemy/defaults";
|
6
7
|
@import "alchemy/base";
|
7
8
|
@import "alchemy/toolbar";
|
@@ -13,6 +14,7 @@
|
|
13
14
|
@import "alchemy/form_elements";
|
14
15
|
@import "alchemy/frame";
|
15
16
|
@import "alchemy/icons";
|
17
|
+
@import "alchemy/fonts";
|
16
18
|
@import "alchemy/login";
|
17
19
|
@import "alchemy/modules";
|
18
20
|
@import "alchemy/notices";
|
@@ -14,6 +14,17 @@ div#image_assign_filter_and_image_sizing {
|
|
14
14
|
}
|
15
15
|
}
|
16
16
|
|
17
|
+
#zoomed_picture_background {
|
18
|
+
text-align: center;
|
19
|
+
width: 100%;
|
20
|
+
height: 100%;
|
21
|
+
position: absolute;
|
22
|
+
|
23
|
+
.zoomed_picture {
|
24
|
+
max-height: 99%;
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
17
28
|
.picture_thumbnail {
|
18
29
|
padding: $default-padding;
|
19
30
|
margin: 2px 1px 2px 2px;
|
@@ -23,10 +34,10 @@ div#image_assign_filter_and_image_sizing {
|
|
23
34
|
display: inline-block;
|
24
35
|
border: 1px solid #c0c0c0;
|
25
36
|
position: relative;
|
26
|
-
@
|
37
|
+
@extend .rounded-border;
|
27
38
|
|
28
39
|
.thumbnail_background {
|
29
|
-
@
|
40
|
+
@extend %thumbnail-background;
|
30
41
|
width: 160px;
|
31
42
|
height: 120px;
|
32
43
|
}
|
@@ -59,16 +70,6 @@ div#image_assign_filter_and_image_sizing {
|
|
59
70
|
width: 80px;
|
60
71
|
height: 60px;
|
61
72
|
}
|
62
|
-
|
63
|
-
.image_spinner {
|
64
|
-
height: 60px;
|
65
|
-
margin: $default-margin;
|
66
|
-
|
67
|
-
img {
|
68
|
-
top: 14px;
|
69
|
-
left: 25px;
|
70
|
-
}
|
71
|
-
}
|
72
73
|
}
|
73
74
|
|
74
75
|
&.medium {
|
@@ -83,16 +84,6 @@ div#image_assign_filter_and_image_sizing {
|
|
83
84
|
width: 160px;
|
84
85
|
height: 120px;
|
85
86
|
}
|
86
|
-
|
87
|
-
.image_spinner {
|
88
|
-
height: 120px;
|
89
|
-
margin: $default-margin;
|
90
|
-
|
91
|
-
img {
|
92
|
-
top: 42px;
|
93
|
-
left: 64px;
|
94
|
-
}
|
95
|
-
}
|
96
87
|
}
|
97
88
|
|
98
89
|
&.large {
|
@@ -107,15 +98,6 @@ div#image_assign_filter_and_image_sizing {
|
|
107
98
|
width: 240px;
|
108
99
|
height: 180px;
|
109
100
|
}
|
110
|
-
|
111
|
-
.image_spinner {
|
112
|
-
height: 180px;
|
113
|
-
|
114
|
-
img {
|
115
|
-
top: 74px;
|
116
|
-
left: 108px;
|
117
|
-
}
|
118
|
-
}
|
119
101
|
}
|
120
102
|
|
121
103
|
&:hover {
|
@@ -128,6 +110,7 @@ div#image_assign_filter_and_image_sizing {
|
|
128
110
|
|
129
111
|
#pictures {
|
130
112
|
margin-right: 232px;
|
113
|
+
padding-bottom: 60px;
|
131
114
|
|
132
115
|
.picture_thumbnail {
|
133
116
|
margin: 0 8px 8px 0;
|
@@ -148,29 +131,16 @@ div.assign_image_list_image {
|
|
148
131
|
text-align: center;
|
149
132
|
overflow: hidden;
|
150
133
|
position: relative;
|
151
|
-
}
|
152
|
-
|
153
|
-
div.image_spinner {
|
154
|
-
background-color: $dark-gray;
|
155
|
-
width: 1px;
|
156
|
-
margin: $default-margin;
|
157
134
|
|
158
135
|
img {
|
159
|
-
|
160
|
-
z-index: 0;
|
161
|
-
top: 32px;
|
162
|
-
left: 40px;
|
136
|
+
border-style: none;
|
163
137
|
}
|
164
138
|
}
|
165
139
|
|
166
|
-
#assign_image_list {
|
140
|
+
#assign_image_list, #assign_file_list {
|
167
141
|
position: relative;
|
168
142
|
padding-right: 244px;
|
169
143
|
height: 519px;
|
170
|
-
|
171
|
-
div.assign_image_list_image img {
|
172
|
-
border-style: none;
|
173
|
-
}
|
174
144
|
}
|
175
145
|
|
176
146
|
.picture_tool {
|
@@ -238,7 +208,7 @@ div.image_spinner {
|
|
238
208
|
|
239
209
|
div#library_sidebar {
|
240
210
|
@include box-sizing(border-box);
|
241
|
-
position:
|
211
|
+
position: fixed;
|
242
212
|
border-left: 1px solid $default-border-color;
|
243
213
|
top: 0;
|
244
214
|
right: 0;
|
@@ -246,7 +216,7 @@ div#library_sidebar {
|
|
246
216
|
padding-top: 96px;
|
247
217
|
padding: 84px 4*$default-padding 0 4*$default-padding;
|
248
218
|
height: 100%;
|
249
|
-
z-index:
|
219
|
+
z-index: 0;
|
250
220
|
background-color: $light-gray;
|
251
221
|
|
252
222
|
h2 {
|
@@ -254,29 +224,60 @@ div#library_sidebar {
|
|
254
224
|
}
|
255
225
|
}
|
256
226
|
|
227
|
+
.alchemy_overlay #library_sidebar {
|
228
|
+
position: absolute;
|
229
|
+
}
|
230
|
+
|
257
231
|
div#filter_bar {
|
258
232
|
|
259
233
|
.selectboxit {
|
260
|
-
width:
|
234
|
+
width: 194px;
|
261
235
|
}
|
262
236
|
}
|
263
237
|
|
264
|
-
|
238
|
+
#tag_list {
|
265
239
|
@include box-sizing(border-box);
|
266
|
-
height:
|
240
|
+
height: 100%;
|
241
|
+
padding-bottom: 138px;
|
242
|
+
|
243
|
+
&.filtered {
|
244
|
+
padding-bottom: 164px;
|
245
|
+
}
|
246
|
+
|
247
|
+
&.with_filter_bar {
|
248
|
+
padding-bottom: 218px;
|
249
|
+
|
250
|
+
&.filtered {
|
251
|
+
padding-bottom: 244px;
|
252
|
+
}
|
253
|
+
}
|
267
254
|
|
268
255
|
.js_filter_field_box {
|
256
|
+
position: absolute;
|
257
|
+
right: auto;
|
258
|
+
top: auto;
|
259
|
+
width: 200px;
|
260
|
+
z-index: 1100;
|
261
|
+
|
262
|
+
input {
|
263
|
+
width: 200px;
|
264
|
+
background-color: #f8f8f8;
|
265
|
+
}
|
269
266
|
|
270
|
-
input { width: 200px }
|
271
267
|
label { display: none }
|
272
268
|
}
|
273
269
|
|
270
|
+
.js_filter_field_clear {
|
271
|
+
right: 4px;
|
272
|
+
}
|
273
|
+
|
274
274
|
ul {
|
275
|
+
@include box-sizing(border-box);
|
275
276
|
list-style-type: none;
|
276
277
|
padding: 0;
|
277
|
-
margin:
|
278
|
-
height:
|
279
|
-
width:
|
278
|
+
margin: 40px 0 4px 0;
|
279
|
+
height: 100%;
|
280
|
+
width: 200px;
|
280
281
|
overflow-x: hidden;
|
281
282
|
overflow-y: auto;
|
282
283
|
|
@@ -285,19 +286,19 @@ div#tag_list {
|
|
285
286
|
padding: $default-padding 4*$default-padding $default-padding 6*$default-padding ;
|
286
287
|
margin: 2*$default-margin 0;
|
287
288
|
background-color: $medium-gray;
|
288
|
-
@
|
289
|
-
white-space: nowrap;
|
289
|
+
@extend .rounded-border;
|
290
290
|
overflow: hidden;
|
291
291
|
position: relative;
|
292
292
|
|
293
|
+
&:first-child { margin-top: 0 }
|
294
|
+
|
293
295
|
&:before {
|
294
|
-
content: '';
|
295
296
|
position: absolute;
|
296
297
|
left: 8px;
|
297
|
-
top:
|
298
|
-
|
299
|
-
|
300
|
-
height:
|
298
|
+
top: 8px;
|
299
|
+
font-family: 'Alchemy Icons';
|
300
|
+
@extend .icon-tag:before;
|
301
|
+
line-height: 10px;
|
301
302
|
}
|
302
303
|
|
303
304
|
a {
|
@@ -310,7 +311,7 @@ div#tag_list {
|
|
310
311
|
&.active {
|
311
312
|
background-color: $dark-gray;
|
312
313
|
|
313
|
-
a { color: $light-gray }
|
314
|
+
a, &:before { color: $light-gray }
|
314
315
|
}
|
315
316
|
}
|
316
317
|
}
|
@@ -321,9 +322,27 @@ div#alchemy_window_body {
|
|
321
322
|
#library_sidebar {
|
322
323
|
padding: 0 4*$default-padding;
|
323
324
|
}
|
325
|
+
}
|
324
326
|
|
325
|
-
|
326
|
-
|
327
|
+
#assign_image_list {
|
328
|
+
|
329
|
+
#tag_list ul {
|
330
|
+
height: 316px;
|
331
|
+
}
|
332
|
+
|
333
|
+
&.filtered #tag_list ul {
|
334
|
+
height: 292px;
|
335
|
+
}
|
336
|
+
}
|
337
|
+
|
338
|
+
#assign_file_list {
|
339
|
+
|
340
|
+
#tag_list ul {
|
341
|
+
height: 396px;
|
342
|
+
}
|
343
|
+
|
344
|
+
&.filtered #tag_list ul {
|
345
|
+
height: 372px;
|
327
346
|
}
|
328
347
|
}
|
329
348
|
|
@@ -343,3 +362,28 @@ div#pictures_page_list {
|
|
343
362
|
|
344
363
|
li.even, li.odd { padding: $default-padding }
|
345
364
|
}
|
365
|
+
|
366
|
+
#overlay_file_list {
|
367
|
+
|
368
|
+
.assign_file_file {
|
369
|
+
display: block;
|
370
|
+
margin-bottom: 4px;
|
371
|
+
}
|
372
|
+
|
373
|
+
> ul {
|
374
|
+
margin: 0;
|
375
|
+
|
376
|
+
a {
|
377
|
+
@extend %text-overflow;
|
378
|
+
display: block;
|
379
|
+
line-height: 25px;
|
380
|
+
text-decoration: none;
|
381
|
+
padding: 0px 4px 2px 4px;
|
382
|
+
}
|
383
|
+
|
384
|
+
.icon {
|
385
|
+
margin-top: -2px;
|
386
|
+
margin-right: 4px;
|
387
|
+
}
|
388
|
+
}
|
389
|
+
}
|