wallaby 5.0.1 → 5.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +1 -3
- data/app/assets/images/wallaby/404.png +0 -0
- data/app/assets/images/wallaby/422.png +0 -0
- data/app/assets/images/wallaby/500.png +0 -0
- data/app/assets/javascripts/wallaby/application.js +1 -15
- data/app/assets/javascripts/wallaby/auto_select.js +77 -0
- data/app/assets/javascripts/wallaby/base.js +17 -0
- data/app/assets/javascripts/wallaby/setup.js.erb +60 -0
- data/app/assets/stylesheets/wallaby/application.scss +1 -51
- data/app/assets/stylesheets/wallaby/base/_layout.scss +257 -9
- data/app/assets/stylesheets/wallaby/base/_layout_desktop.scss +53 -0
- data/app/assets/stylesheets/wallaby/base/_mixins.scss +119 -0
- data/app/assets/stylesheets/wallaby/base/_override.scss +10 -0
- data/app/assets/stylesheets/wallaby/base/_vars.scss +72 -2
- data/app/assets/stylesheets/wallaby/base.scss +27 -0
- data/app/assets/stylesheets/wallaby/components/_auto_select.scss +119 -0
- data/app/assets/stylesheets/wallaby/components/_auto_select_desktop.scss +7 -0
- data/app/assets/stylesheets/wallaby/components/_color_square.scss +8 -0
- data/app/assets/stylesheets/wallaby/components/_filters.scss +14 -0
- data/app/assets/stylesheets/wallaby/components/_links.scss +25 -0
- data/app/assets/stylesheets/wallaby/components/_pagination.scss +35 -91
- data/app/assets/stylesheets/wallaby/components/_query.scss +101 -0
- data/app/assets/stylesheets/wallaby/components/_text.scss +6 -6
- data/app/assets/stylesheets/wallaby/pages/_error.scss +108 -0
- data/app/assets/stylesheets/wallaby/pages/_form.scss +40 -0
- data/app/assets/stylesheets/wallaby/pages/_index.scss +193 -0
- data/app/assets/stylesheets/wallaby/pages/_index_desktop.scss +22 -0
- data/app/assets/stylesheets/wallaby/pages/_show.scss +21 -0
- data/app/controllers/wallaby/abstract_resources_controller.rb +334 -0
- data/app/controllers/wallaby/application_controller.rb +45 -15
- data/app/controllers/wallaby/base_controller.rb +30 -0
- data/app/controllers/wallaby/resources_controller.rb +2 -131
- data/app/controllers/wallaby/secure_controller.rb +38 -24
- data/app/routes/wallaby/resources_router.rb +40 -43
- data/app/security/ability.rb +4 -28
- data/app/views/layouts/wallaby/application.html.erb +11 -6
- data/app/views/layouts/wallaby/error.html.erb +26 -4
- data/app/views/wallaby/error.html.erb +11 -0
- data/app/views/wallaby/error.json.jbuilder +8 -0
- data/app/views/wallaby/{shared → resources}/_flash_messages.html.erb +0 -0
- data/app/views/wallaby/resources/_footer.html.erb +1 -0
- data/app/views/wallaby/resources/_form.html.erb +2 -2
- data/app/views/wallaby/resources/_header.html.erb +38 -0
- data/app/views/wallaby/resources/_imodal.html.erb +13 -0
- data/app/views/wallaby/resources/_index_actions.html.erb +4 -1
- data/app/views/wallaby/resources/_index_filters.html.erb +23 -0
- data/app/views/wallaby/resources/_index_pagination.html.erb +63 -0
- data/app/views/wallaby/resources/_index_query.html.erb +23 -0
- data/app/views/wallaby/resources/_logo.html.erb +1 -0
- data/app/views/wallaby/resources/_navs.html.erb +9 -0
- data/app/views/wallaby/resources/_resource_actions.html.erb +3 -3
- data/app/views/wallaby/resources/{shared/_resource_nav.html.erb → _resource_navs.html.erb} +6 -6
- data/app/views/wallaby/resources/_title.html.erb +1 -0
- data/app/views/wallaby/resources/_user_menu.html.erb +5 -0
- data/app/views/wallaby/resources/bad_request.json.jbuilder +7 -0
- data/app/views/wallaby/resources/edit.html.erb +16 -12
- data/app/views/wallaby/resources/form/_belongs_to.html.erb +63 -12
- data/app/views/wallaby/resources/form/_bigint.html.erb +10 -1
- data/app/views/wallaby/resources/form/_bigserial.html.erb +18 -0
- data/app/views/wallaby/resources/form/_binary.html.erb +11 -2
- data/app/views/wallaby/resources/form/_bit.html.erb +10 -1
- data/app/views/wallaby/resources/form/_bit_varying.html.erb +10 -1
- data/app/views/wallaby/resources/form/_blob.html.erb +21 -0
- data/app/views/wallaby/resources/form/_boolean.html.erb +9 -0
- data/app/views/wallaby/resources/form/_box.html.erb +21 -0
- data/app/views/wallaby/resources/form/_cidr.html.erb +13 -1
- data/app/views/wallaby/resources/form/_circle.html.erb +21 -0
- data/app/views/wallaby/resources/form/_citext.html.erb +11 -2
- data/app/views/wallaby/resources/form/_color.html.erb +11 -2
- data/app/views/wallaby/resources/form/_date.html.erb +12 -3
- data/app/views/wallaby/resources/form/_daterange.html.erb +14 -5
- data/app/views/wallaby/resources/form/_datetime.html.erb +12 -3
- data/app/views/wallaby/resources/form/_decimal.html.erb +10 -1
- data/app/views/wallaby/resources/form/_dropdown.html.erb +18 -0
- data/app/views/wallaby/resources/form/_email.html.erb +9 -0
- data/app/views/wallaby/resources/form/_file.html.erb +21 -0
- data/app/views/wallaby/resources/form/_float.html.erb +10 -1
- data/app/views/wallaby/resources/form/_has_and_belongs_to_many.html.erb +53 -7
- data/app/views/wallaby/resources/form/_has_many.html.erb +52 -7
- data/app/views/wallaby/resources/form/_has_one.html.erb +10 -2
- data/app/views/wallaby/resources/form/_hstore.html.erb +12 -5
- data/app/views/wallaby/resources/form/_inet.html.erb +13 -1
- data/app/views/wallaby/resources/form/_int4range.html.erb +11 -2
- data/app/views/wallaby/resources/form/_int8range.html.erb +11 -2
- data/app/views/wallaby/resources/form/_integer.html.erb +10 -1
- data/app/views/wallaby/resources/form/_json.html.erb +13 -6
- data/app/views/wallaby/resources/form/_jsonb.html.erb +13 -6
- data/app/views/wallaby/resources/form/_line.html.erb +21 -0
- data/app/views/wallaby/resources/form/_longblob.html.erb +21 -0
- data/app/views/wallaby/resources/form/_longtext.html.erb +30 -0
- data/app/views/wallaby/resources/form/_lseg.html.erb +21 -0
- data/app/views/wallaby/resources/form/_ltree.html.erb +17 -1
- data/app/views/wallaby/resources/form/_macaddr.html.erb +13 -1
- data/app/views/wallaby/resources/form/_markdown.html.erb +29 -0
- data/app/views/wallaby/resources/form/_mediumblob.html.erb +21 -0
- data/app/views/wallaby/resources/form/_mediumtext.html.erb +30 -0
- data/app/views/wallaby/resources/form/_money.html.erb +10 -1
- data/app/views/wallaby/resources/form/_numrange.html.erb +11 -2
- data/app/views/wallaby/resources/form/_password.html.erb +14 -1
- data/app/views/wallaby/resources/form/_path.html.erb +17 -0
- data/app/views/wallaby/resources/form/_point.html.erb +11 -2
- data/app/views/wallaby/resources/form/_polygon.html.erb +17 -0
- data/app/views/wallaby/resources/form/_serial.html.erb +18 -0
- data/app/views/wallaby/resources/form/_sti.html.erb +18 -0
- data/app/views/wallaby/resources/form/_string.html.erb +14 -1
- data/app/views/wallaby/resources/form/_text.html.erb +11 -2
- data/app/views/wallaby/resources/form/_time.html.erb +12 -3
- data/app/views/wallaby/resources/form/_tinyblob.html.erb +21 -0
- data/app/views/wallaby/resources/form/_tinytext.html.erb +30 -0
- data/app/views/wallaby/resources/form/_tsrange.html.erb +14 -5
- data/app/views/wallaby/resources/form/_tstzrange.html.erb +14 -5
- data/app/views/wallaby/resources/form/_tsvector.html.erb +9 -0
- data/app/views/wallaby/resources/form/_unsigned_bigint.html.erb +18 -0
- data/app/views/wallaby/resources/form/_unsigned_decimal.html.erb +18 -0
- data/app/views/wallaby/resources/form/_unsigned_float.html.erb +18 -0
- data/app/views/wallaby/resources/form/_unsigned_integer.html.erb +18 -0
- data/app/views/wallaby/resources/form/_uuid.html.erb +10 -1
- data/app/views/wallaby/resources/form/_xml.html.erb +11 -5
- data/app/views/wallaby/resources/form.json.jbuilder +5 -0
- data/app/views/wallaby/{core → resources}/home.html.erb +1 -1
- data/app/views/wallaby/resources/index/_belongs_to.html.erb +5 -1
- data/app/views/wallaby/resources/index/_bigint.html.erb +4 -0
- data/app/views/wallaby/resources/index/_bigserial.html.erb +5 -0
- data/app/views/wallaby/resources/index/_binary.html.erb +5 -1
- data/app/views/wallaby/resources/index/_bit.html.erb +4 -0
- data/app/views/wallaby/resources/index/_bit_varying.html.erb +4 -0
- data/app/views/wallaby/resources/index/_blob.html.erb +5 -0
- data/app/views/wallaby/resources/index/_boolean.html.erb +5 -1
- data/app/views/wallaby/resources/index/_box.html.erb +16 -0
- data/app/views/wallaby/resources/index/_cidr.html.erb +5 -1
- data/app/views/wallaby/resources/index/_circle.html.erb +16 -0
- data/app/views/wallaby/resources/index/_citext.html.erb +5 -1
- data/app/views/wallaby/resources/index/_color.html.erb +6 -1
- data/app/views/wallaby/resources/index/_date.html.erb +4 -0
- data/app/views/wallaby/resources/index/_daterange.html.erb +5 -1
- data/app/views/wallaby/resources/index/_datetime.html.erb +5 -1
- data/app/views/wallaby/resources/index/_decimal.html.erb +4 -0
- data/app/views/wallaby/resources/index/_email.html.erb +4 -0
- data/app/views/wallaby/resources/index/_float.html.erb +4 -0
- data/app/views/wallaby/resources/index/_has_and_belongs_to_many.html.erb +6 -2
- data/app/views/wallaby/resources/index/_has_many.html.erb +6 -2
- data/app/views/wallaby/resources/index/_has_one.html.erb +5 -1
- data/app/views/wallaby/resources/index/_hstore.html.erb +6 -2
- data/app/views/wallaby/resources/index/_inet.html.erb +5 -1
- data/app/views/wallaby/resources/index/_int4range.html.erb +4 -0
- data/app/views/wallaby/resources/index/_int8range.html.erb +4 -0
- data/app/views/wallaby/resources/index/_integer.html.erb +4 -0
- data/app/views/wallaby/resources/index/_json.html.erb +5 -2
- data/app/views/wallaby/resources/index/_jsonb.html.erb +5 -2
- data/app/views/wallaby/resources/index/_line.html.erb +16 -0
- data/app/views/wallaby/resources/index/_longblob.html.erb +5 -0
- data/app/views/wallaby/resources/index/_longtext.html.erb +16 -0
- data/app/views/wallaby/resources/index/_lseg.html.erb +16 -0
- data/app/views/wallaby/resources/index/_ltree.html.erb +5 -1
- data/app/views/wallaby/resources/index/_macaddr.html.erb +4 -0
- data/app/views/wallaby/resources/index/_mediumblob.html.erb +5 -0
- data/app/views/wallaby/resources/index/_mediumtext.html.erb +16 -0
- data/app/views/wallaby/resources/index/_money.html.erb +4 -0
- data/app/views/wallaby/resources/index/_numrange.html.erb +4 -0
- data/app/views/wallaby/resources/index/_password.html.erb +9 -0
- data/app/views/wallaby/resources/index/_path.html.erb +16 -0
- data/app/views/wallaby/resources/index/_point.html.erb +4 -0
- data/app/views/wallaby/resources/index/_polygon.html.erb +16 -0
- data/app/views/wallaby/resources/index/_raw.html.erb +9 -0
- data/app/views/wallaby/resources/index/_serial.html.erb +5 -0
- data/app/views/wallaby/resources/index/_sti.html.erb +16 -0
- data/app/views/wallaby/resources/index/_string.html.erb +5 -1
- data/app/views/wallaby/resources/index/_text.html.erb +5 -1
- data/app/views/wallaby/resources/index/_time.html.erb +4 -0
- data/app/views/wallaby/resources/index/_tinyblob.html.erb +5 -0
- data/app/views/wallaby/resources/index/_tinytext.html.erb +16 -0
- data/app/views/wallaby/resources/index/_tsrange.html.erb +5 -1
- data/app/views/wallaby/resources/index/_tstzrange.html.erb +5 -1
- data/app/views/wallaby/resources/index/_tsvector.html.erb +5 -1
- data/app/views/wallaby/resources/index/_unsigned_bigint.html.erb +5 -0
- data/app/views/wallaby/resources/index/_unsigned_decimal.html.erb +5 -0
- data/app/views/wallaby/resources/index/_unsigned_float.html.erb +5 -0
- data/app/views/wallaby/resources/index/_unsigned_integer.html.erb +5 -0
- data/app/views/wallaby/resources/index/_uuid.html.erb +5 -1
- data/app/views/wallaby/resources/index/_xml.html.erb +5 -1
- data/app/views/wallaby/resources/index.csv.erb +26 -0
- data/app/views/wallaby/resources/index.html.erb +47 -59
- data/app/views/wallaby/resources/index.json.jbuilder +5 -0
- data/app/views/wallaby/resources/new.html.erb +12 -11
- data/app/views/wallaby/resources/show/_belongs_to.html.erb +5 -1
- data/app/views/wallaby/resources/show/_bigint.html.erb +4 -0
- data/app/views/wallaby/resources/show/_bigserial.html.erb +5 -0
- data/app/views/wallaby/resources/show/_binary.html.erb +5 -1
- data/app/views/wallaby/resources/show/_bit.html.erb +4 -0
- data/app/views/wallaby/resources/show/_bit_varying.html.erb +4 -0
- data/app/views/wallaby/resources/show/_blob.html.erb +5 -0
- data/app/views/wallaby/resources/show/_boolean.html.erb +5 -1
- data/app/views/wallaby/resources/show/_box.html.erb +9 -0
- data/app/views/wallaby/resources/show/_cidr.html.erb +5 -1
- data/app/views/wallaby/resources/show/_circle.html.erb +9 -0
- data/app/views/wallaby/resources/show/_citext.html.erb +4 -0
- data/app/views/wallaby/resources/show/_color.html.erb +6 -1
- data/app/views/wallaby/resources/show/_date.html.erb +4 -0
- data/app/views/wallaby/resources/show/_daterange.html.erb +4 -0
- data/app/views/wallaby/resources/show/_datetime.html.erb +4 -0
- data/app/views/wallaby/resources/show/_decimal.html.erb +4 -0
- data/app/views/wallaby/resources/show/_email.html.erb +4 -0
- data/app/views/wallaby/resources/show/_float.html.erb +4 -0
- data/app/views/wallaby/resources/show/_has_and_belongs_to_many.html.erb +6 -2
- data/app/views/wallaby/resources/show/_has_many.html.erb +6 -2
- data/app/views/wallaby/resources/show/_has_one.html.erb +5 -1
- data/app/views/wallaby/resources/show/_hstore.html.erb +4 -0
- data/app/views/wallaby/resources/show/_image.html.erb +9 -0
- data/app/views/wallaby/resources/show/_inet.html.erb +5 -1
- data/app/views/wallaby/resources/show/_int4range.html.erb +4 -0
- data/app/views/wallaby/resources/show/_int8range.html.erb +4 -0
- data/app/views/wallaby/resources/show/_integer.html.erb +4 -0
- data/app/views/wallaby/resources/show/_json.html.erb +4 -0
- data/app/views/wallaby/resources/show/_jsonb.html.erb +4 -0
- data/app/views/wallaby/resources/show/_line.html.erb +9 -0
- data/app/views/wallaby/resources/show/_longblob.html.erb +5 -0
- data/app/views/wallaby/resources/show/_longtext.html.erb +5 -0
- data/app/views/wallaby/resources/show/_lseg.html.erb +9 -0
- data/app/views/wallaby/resources/show/_ltree.html.erb +4 -0
- data/app/views/wallaby/resources/show/_macaddr.html.erb +4 -0
- data/app/views/wallaby/resources/show/_mediumblob.html.erb +5 -0
- data/app/views/wallaby/resources/show/_mediumtext.html.erb +5 -0
- data/app/views/wallaby/resources/show/_money.html.erb +4 -0
- data/app/views/wallaby/resources/show/_numrange.html.erb +4 -0
- data/app/views/wallaby/resources/show/_password.html.erb +9 -0
- data/app/views/wallaby/resources/show/_path.html.erb +9 -0
- data/app/views/wallaby/resources/show/_point.html.erb +4 -0
- data/app/views/wallaby/resources/show/_polygon.html.erb +9 -0
- data/app/views/wallaby/resources/show/_raw.html.erb +9 -0
- data/app/views/wallaby/resources/show/_serial.html.erb +5 -0
- data/app/views/wallaby/resources/show/_sti.html.erb +5 -0
- data/app/views/wallaby/resources/show/_string.html.erb +4 -0
- data/app/views/wallaby/resources/show/_text.html.erb +4 -0
- data/app/views/wallaby/resources/show/_time.html.erb +4 -0
- data/app/views/wallaby/resources/show/_tinyblob.html.erb +5 -0
- data/app/views/wallaby/resources/show/_tinytext.html.erb +5 -0
- data/app/views/wallaby/resources/show/_tsrange.html.erb +4 -0
- data/app/views/wallaby/resources/show/_tstzrange.html.erb +4 -0
- data/app/views/wallaby/resources/show/_tsvector.html.erb +4 -0
- data/app/views/wallaby/resources/show/_unsigned_bigint.html.erb +5 -0
- data/app/views/wallaby/resources/show/_unsigned_decimal.html.erb +5 -0
- data/app/views/wallaby/resources/show/_unsigned_float.html.erb +5 -0
- data/app/views/wallaby/resources/show/_unsigned_integer.html.erb +5 -0
- data/app/views/wallaby/resources/show/_uuid.html.erb +4 -0
- data/app/views/wallaby/resources/show/_xml.html.erb +4 -0
- data/app/views/wallaby/resources/show.html.erb +14 -24
- data/app/views/wallaby/resources/show.json.jbuilder +5 -0
- data/config/brakeman.ignore +26 -0
- data/config/locales/wallaby.en.yml +91 -0
- data/config/massa.yml +45 -0
- data/config/rails_best_practices.yml +42 -0
- data/config/routes.rb +29 -23
- data/lib/adaptors/wallaby/active_record/model_decorator/fields_builder/association_builder.rb +39 -0
- data/lib/adaptors/wallaby/active_record/model_decorator/fields_builder/polymorphic_builder.rb +44 -0
- data/lib/adaptors/wallaby/active_record/model_decorator/fields_builder/sti_builder.rb +42 -0
- data/lib/adaptors/wallaby/active_record/model_decorator/fields_builder.rb +41 -94
- data/lib/adaptors/wallaby/active_record/model_decorator/title_field_finder.rb +24 -14
- data/lib/adaptors/wallaby/active_record/model_decorator.rb +118 -64
- data/lib/adaptors/wallaby/active_record/model_finder.rb +44 -15
- data/lib/adaptors/wallaby/active_record/model_pagination_provider.rb +30 -0
- data/lib/adaptors/wallaby/active_record/model_service_provider/normalizer.rb +42 -0
- data/lib/adaptors/wallaby/active_record/model_service_provider/permitter.rb +64 -0
- data/lib/adaptors/wallaby/active_record/model_service_provider/querier/transformer.rb +70 -0
- data/lib/adaptors/wallaby/active_record/model_service_provider/querier.rb +102 -0
- data/lib/adaptors/wallaby/active_record/model_service_provider/validator.rb +29 -0
- data/lib/adaptors/wallaby/active_record/model_service_provider.rb +137 -0
- data/lib/adaptors/wallaby/active_record.rb +4 -1
- data/lib/decorators/wallaby/abstract_resource_decorator.rb +74 -0
- data/lib/decorators/wallaby/resource_decorator.rb +5 -76
- data/lib/errors/wallaby/model_not_found.rb +5 -1
- data/lib/errors/wallaby/not_found.rb +4 -0
- data/lib/errors/wallaby/resource_not_found.rb +5 -1
- data/lib/forms/wallaby/form_builder.rb +42 -19
- data/lib/helpers/wallaby/application_helper.rb +34 -24
- data/lib/helpers/wallaby/base_helper.rb +52 -0
- data/lib/helpers/wallaby/form_helper.rb +40 -16
- data/lib/helpers/wallaby/index_helper.rb +59 -0
- data/lib/helpers/wallaby/links_helper.rb +150 -81
- data/lib/helpers/wallaby/resources_helper.rb +41 -46
- data/lib/helpers/wallaby/secure_helper.rb +36 -19
- data/lib/helpers/wallaby/styling_helper.rb +53 -44
- data/lib/interfaces/wallaby/mode.rb +19 -12
- data/lib/interfaces/wallaby/model_decorator.rb +176 -50
- data/lib/interfaces/wallaby/model_finder.rb +7 -3
- data/lib/interfaces/wallaby/model_pagination_provider.rb +104 -0
- data/lib/interfaces/wallaby/model_service_provider.rb +71 -0
- data/lib/paginators/wallaby/abstract_resource_paginator.rb +23 -0
- data/lib/paginators/wallaby/resource_paginator.rb +6 -0
- data/lib/parsers/wallaby/parser.rb +32 -0
- data/lib/responders/wallaby/abstract_responder.rb +68 -0
- data/lib/responders/wallaby/resources_responder.rb +6 -0
- data/lib/servicers/wallaby/abstract_model_servicer.rb +48 -0
- data/lib/servicers/wallaby/model_servicer.rb +5 -0
- data/lib/services/wallaby/link_options_normalizer.rb +16 -0
- data/lib/services/wallaby/lookup_context_wrapper.rb +23 -30
- data/lib/services/wallaby/map/mode_mapper.rb +19 -0
- data/lib/services/wallaby/map/model_class_collector.rb +41 -0
- data/lib/services/wallaby/map/model_class_mapper.rb +24 -0
- data/lib/services/wallaby/map.rb +76 -39
- data/lib/services/wallaby/partial_renderer.rb +60 -0
- data/lib/services/wallaby/prefixes_builder.rb +54 -0
- data/lib/services/wallaby/sorting/hash_builder.rb +16 -0
- data/lib/services/wallaby/sorting/link_builder.rb +45 -0
- data/lib/services/wallaby/sorting/next_builder.rb +54 -0
- data/lib/services/wallaby/url_for.rb +36 -0
- data/lib/tree/wallaby/node.rb +17 -0
- data/lib/utils/wallaby/utils.rb +67 -22
- data/lib/wallaby/configuration/features.rb +12 -0
- data/lib/wallaby/configuration/metadata.rb +12 -0
- data/lib/wallaby/configuration/models.rb +27 -12
- data/lib/wallaby/configuration/pagination.rb +12 -0
- data/lib/wallaby/configuration/security.rb +55 -24
- data/lib/wallaby/configuration.rb +38 -19
- data/lib/wallaby/engine.rb +84 -39
- data/lib/wallaby/version.rb +1 -1
- data/lib/wallaby.rb +22 -3
- metadata +200 -55
- data/app/assets/javascripts/wallaby/form.js +0 -8
- data/app/assets/stylesheets/wallaby/base/_functions.scss +0 -0
- data/app/assets/stylesheets/wallaby/base/_normalize.scss +0 -0
- data/app/assets/stylesheets/wallaby/base/_reset.scss +0 -0
- data/app/assets/stylesheets/wallaby/components/_forms.scss +0 -53
- data/app/assets/stylesheets/wallaby/components/_nav.scss +0 -19
- data/app/assets/stylesheets/wallaby/components/_tables.scss +0 -78
- data/app/assets/stylesheets/wallaby/form.scss +0 -11
- data/app/controllers/wallaby/core_controller.rb +0 -28
- data/app/views/layouts/wallaby/_footer.html.erb +0 -2
- data/app/views/layouts/wallaby/_header.html.erb +0 -57
- data/app/views/layouts/wallaby/_navs.html.erb +0 -1
- data/app/views/wallaby/errors/access_denied.html.erb +0 -1
- data/app/views/wallaby/errors/not_authenticated.html.erb +0 -1
- data/app/views/wallaby/errors/not_found.html.erb +0 -6
- data/app/views/wallaby/errors/unprocessable_entity.erb +0 -1
- data/config/locales/en.yml +0 -29
- data/lib/adaptors/wallaby/active_record/model_operator/normalizer.rb +0 -44
- data/lib/adaptors/wallaby/active_record/model_operator/permitter.rb +0 -50
- data/lib/adaptors/wallaby/active_record/model_operator/querier.rb +0 -47
- data/lib/adaptors/wallaby/active_record/model_operator/validator.rb +0 -16
- data/lib/adaptors/wallaby/active_record/model_operator.rb +0 -82
- data/lib/errors/wallaby/deprecated.rb +0 -4
- data/lib/errors/wallaby/operation_not_found.rb +0 -4
- data/lib/handlers/wallaby/cached_compiled_erb.rb +0 -14
- data/lib/helpers/wallaby/core_helper.rb +0 -50
- data/lib/helpers/wallaby/paginatable_helper.rb +0 -9
- data/lib/helpers/wallaby/sorting_helper.rb +0 -43
- data/lib/interfaces/wallaby/model_operator.rb +0 -31
- data/lib/services/wallaby/decorator_finder.rb +0 -16
- data/lib/services/wallaby/model_servicer.rb +0 -38
- data/lib/services/wallaby/servicer_finder.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 918ba41ac5ba7f6971332674647888cc6f989126
|
4
|
+
data.tar.gz: 44c4f9006a6628ea19d26134d1fa9d8acd1e1511
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dfddc7545545924c353c5c41a000ed5f9a97c986c9713898c13c0e82abbec0df36652445aa38540241ca8c08c7f937c917b6d43449764c99c55639a74fe49465
|
7
|
+
data.tar.gz: 0170cdf8218bb7881a5fa56fb8605520f2e1358b9719e0296825f9f063021af0b9f6c8feb63c2eb8407b203a6a4f0a0ecdd4f7a9554d4d16c368a091744d14a6
|
data/Rakefile
CHANGED
@@ -14,10 +14,8 @@ RDoc::Task.new(:rdoc) do |rdoc|
|
|
14
14
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
15
|
end
|
16
16
|
|
17
|
-
APP_RAKEFILE = File.expand_path(
|
17
|
+
APP_RAKEFILE = File.expand_path('../spec/dummy/Rakefile', __FILE__)
|
18
18
|
load 'rails/tasks/engine.rake'
|
19
|
-
|
20
|
-
|
21
19
|
load 'rails/tasks/statistics.rake'
|
22
20
|
|
23
21
|
Bundler::GemHelper.install_tasks
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,15 +1 @@
|
|
1
|
-
//= require
|
2
|
-
//= require jquery_ujs
|
3
|
-
//= require bootstrap-sprockets
|
4
|
-
jQuery(function ($) {
|
5
|
-
$('[data-toggle="tooltip"]').tooltip({ html: true })
|
6
|
-
|
7
|
-
$('.search-form').each(function () {
|
8
|
-
var $this = $(this)
|
9
|
-
$(this).find('input:visible').on('focus', function () {
|
10
|
-
$this.addClass('focus')
|
11
|
-
}).on('blur', function () {
|
12
|
-
$this.removeClass('focus')
|
13
|
-
})
|
14
|
-
})
|
15
|
-
})
|
1
|
+
//= require wallaby/base
|
@@ -0,0 +1,77 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
jQuery.fn.extend({
|
4
|
+
auto_select: function (typeahead_options, engine_options) {
|
5
|
+
var $this = jQuery(this),
|
6
|
+
$input = jQuery('div input', this),
|
7
|
+
$template = jQuery('<li><input type="hidden" /><a href="javascript:,"></a></li>'),
|
8
|
+
name = $input.attr('name'),
|
9
|
+
multiple = $input.attr('multiple');
|
10
|
+
|
11
|
+
var recreate_typeahead = function () {
|
12
|
+
var data = $this.data(),
|
13
|
+
options = jQuery.extend({
|
14
|
+
highlight: true,
|
15
|
+
hint: true,
|
16
|
+
minLength: 1
|
17
|
+
}, typeahead_options || {}),
|
18
|
+
source_options = {
|
19
|
+
name: data.source,
|
20
|
+
display: 'label',
|
21
|
+
source: new Bloodhound(jQuery.extend({
|
22
|
+
remote: {
|
23
|
+
url: data.url,
|
24
|
+
wildcard: data.wildcard
|
25
|
+
},
|
26
|
+
queryTokenizer: Bloodhound.tokenizers.whitespace,
|
27
|
+
datumTokenizer: Bloodhound.tokenizers.whitespace
|
28
|
+
}, engine_options || {}))
|
29
|
+
};
|
30
|
+
$input.typeahead('destroy')
|
31
|
+
$input.typeahead(options, source_options);
|
32
|
+
};
|
33
|
+
$this.off('reload.auto_select')
|
34
|
+
.on('reload.auto_select', recreate_typeahead)
|
35
|
+
.trigger('reload.auto_select');
|
36
|
+
|
37
|
+
var disable_typeahead_on_single_selection = function () {
|
38
|
+
$input.prop('disabled', !multiple && $this.find('a').length === 1);
|
39
|
+
$this.find('.auto_select__count span').text($this.find('a').length);
|
40
|
+
};
|
41
|
+
$this.off('update.auto_select')
|
42
|
+
.on('update.auto_select', disable_typeahead_on_single_selection)
|
43
|
+
.trigger('update.auto_select');
|
44
|
+
|
45
|
+
$input.removeAttr('name').removeAttr('multiple'); // some clean up for the input
|
46
|
+
|
47
|
+
var append_and_focus_on_selection = function (event, suggestion) {
|
48
|
+
var $a,
|
49
|
+
$existing = $this.find('input[value=' + suggestion.id + ']');
|
50
|
+
if ($existing.length) {
|
51
|
+
$a = $existing.next();
|
52
|
+
} else {
|
53
|
+
var $new_item = $template.clone();
|
54
|
+
$new_item.find('input').attr('name', name).val(suggestion.id);
|
55
|
+
$this.find('ul').append($new_item);
|
56
|
+
$a = $new_item.find('a').text(suggestion.label);
|
57
|
+
$this.trigger('update.auto_select');
|
58
|
+
}
|
59
|
+
if (multiple) { $a.focus(); }
|
60
|
+
$input.typeahead('val', '');
|
61
|
+
};
|
62
|
+
var ignore_tab_and_enter = function (e) {
|
63
|
+
var k = e.keyCode || e.which;
|
64
|
+
if (k === 13) { return false; }
|
65
|
+
};
|
66
|
+
$input.off('typeahead:select').off('typeahead:change')
|
67
|
+
.on('typeahead:select typeahead:autocomplete', append_and_focus_on_selection)
|
68
|
+
.on('keypress', ignore_tab_and_enter);
|
69
|
+
|
70
|
+
var remove_selection = function () {
|
71
|
+
jQuery(this).parent().remove();
|
72
|
+
$this.trigger('update.auto_select');
|
73
|
+
};
|
74
|
+
$this.off('click.auto_select').
|
75
|
+
on('click.auto_select', 'a', remove_selection);
|
76
|
+
}
|
77
|
+
});
|
@@ -0,0 +1,17 @@
|
|
1
|
+
//= require jquery
|
2
|
+
//= require jquery_ujs
|
3
|
+
//= require bootstrap-sprockets
|
4
|
+
//= require moment
|
5
|
+
//= require bootstrap-datetimepicker
|
6
|
+
//= require summernote
|
7
|
+
//= require codemirror
|
8
|
+
//= require codemirror/addons/mode/overlay
|
9
|
+
//= require codemirror/modes/ruby
|
10
|
+
//= require codemirror/modes/javascript
|
11
|
+
//= require codemirror/modes/markdown
|
12
|
+
//= require codemirror/modes/gfm
|
13
|
+
//= require codemirror/modes/xml
|
14
|
+
//= require twitter/typeahead
|
15
|
+
//= require jquery.minicolors
|
16
|
+
//= require wallaby/auto_select
|
17
|
+
//= require wallaby/setup
|
@@ -0,0 +1,60 @@
|
|
1
|
+
window.readyPrefix = function readyPrefix(eventName) {
|
2
|
+
return '<%= Wallaby.configuration.features.turbolinks_enabled ? "turbolinks:load" : "ready" %>' + eventName;
|
3
|
+
}
|
4
|
+
|
5
|
+
jQuery(document).off(readyPrefix('.wallaby')).on(readyPrefix('.wallaby'), function () {
|
6
|
+
'use strict';
|
7
|
+
|
8
|
+
jQuery('[data-toggle="tooltip"]').tooltip({ html: true, container:'body' })
|
9
|
+
jQuery('#imodal').on('show.bs.modal', function (event) {
|
10
|
+
var $button = jQuery(event.relatedTarget),
|
11
|
+
$this = jQuery(this);
|
12
|
+
$this.find('.modal-title').html($button.siblings('.modaler__title').html());
|
13
|
+
$this.find('.modal-body').html($button.siblings('.modaler__body').html());
|
14
|
+
})
|
15
|
+
|
16
|
+
jQuery('.index').each(function() {
|
17
|
+
jQuery('.query', this).each(function () {
|
18
|
+
var $this = jQuery(this);
|
19
|
+
jQuery('input:visible', this).on('focus.modifier', function () {
|
20
|
+
$this.addClass('query--focus');
|
21
|
+
}).on('blur', function () {
|
22
|
+
$this.removeClass('query--focus');
|
23
|
+
})
|
24
|
+
})
|
25
|
+
|
26
|
+
jQuery('.resources').each(function () {
|
27
|
+
var $this = jQuery(this);
|
28
|
+
|
29
|
+
// let's clone the actions, just for styling
|
30
|
+
jQuery('.resources__data', this).each(function () {
|
31
|
+
var $actions_table = jQuery('<table></table>').addClass('resources__actions'),
|
32
|
+
$thead = jQuery('<thead><tr><th> </th></tr></thead>'),
|
33
|
+
$tbody = jQuery('<tbody></tbody>'),
|
34
|
+
$tr = jQuery('<tr></tr>');
|
35
|
+
|
36
|
+
jQuery('.resource__actions', this).each(function () {
|
37
|
+
$tbody.append($tr.clone().append(jQuery(this).clone()));
|
38
|
+
})
|
39
|
+
|
40
|
+
$actions_table.append($thead, $tbody);
|
41
|
+
jQuery('> section', $this).append($actions_table);
|
42
|
+
})
|
43
|
+
|
44
|
+
// to show double arrows
|
45
|
+
jQuery('.resources__container').on('scroll', function () {
|
46
|
+
var $container = jQuery(this),
|
47
|
+
$th = jQuery('.resources__actions thead th', $this),
|
48
|
+
$data_table = jQuery('.resources__data', $this);
|
49
|
+
|
50
|
+
$th.toggleClass('resources--backward', $container.scrollLeft() > 0);
|
51
|
+
$th.toggleClass('resources--forward', $container.scrollLeft() + $container.width() < $data_table.width());
|
52
|
+
}).trigger('scroll');
|
53
|
+
})
|
54
|
+
})
|
55
|
+
|
56
|
+
if (CodeMirror) {
|
57
|
+
CodeMirror.defaults.theme = "mdn-like";
|
58
|
+
CodeMirror.defaults.lineNumbers = true;
|
59
|
+
}
|
60
|
+
})
|
@@ -1,51 +1 @@
|
|
1
|
-
|
2
|
-
* "bootstrap-sprockets" must be imported before "bootstrap" and "bootstrap/variables"
|
3
|
-
*/
|
4
|
-
@import "bootstrap-sprockets";
|
5
|
-
@import "bootstrap";
|
6
|
-
@import 'base/_vars';
|
7
|
-
@import 'base/_mixins';
|
8
|
-
@import 'base/_functions';
|
9
|
-
@import 'base/_normalize';
|
10
|
-
@import 'base/_reset';
|
11
|
-
@import 'base/_layout';
|
12
|
-
@import 'components/_text';
|
13
|
-
@import 'components/_nav';
|
14
|
-
@import 'components/_tables';
|
15
|
-
@import 'components/_forms';
|
16
|
-
@import 'components/_pagination';
|
17
|
-
|
18
|
-
body {
|
19
|
-
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
|
20
|
-
}
|
21
|
-
|
22
|
-
nav.top-nav {
|
23
|
-
margin-bottom: 0px;
|
24
|
-
}
|
25
|
-
|
26
|
-
section.fields {
|
27
|
-
padding: 10px;
|
28
|
-
}
|
29
|
-
|
30
|
-
div.page-header {
|
31
|
-
margin-top: 0px;
|
32
|
-
}
|
33
|
-
|
34
|
-
h1 {
|
35
|
-
margin-top: 5px;
|
36
|
-
}
|
37
|
-
|
38
|
-
ul.text-danger {
|
39
|
-
margin-top: 5px;
|
40
|
-
margin-bottom: 5px;
|
41
|
-
padding-left: 25px;
|
42
|
-
}
|
43
|
-
|
44
|
-
.color-square {
|
45
|
-
display: inline-block;
|
46
|
-
margin-right: 3px;
|
47
|
-
width: 17px;
|
48
|
-
height: 17px;
|
49
|
-
border: 1px solid #eeeeee;
|
50
|
-
vertical-align: text-top;
|
51
|
-
}
|
1
|
+
@import 'wallaby/base';
|
@@ -1,14 +1,262 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
body {
|
2
|
+
background-color: $background-color;
|
3
|
+
color: $font-color;
|
4
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
|
5
|
+
padding-top: 142px;
|
6
|
+
|
7
|
+
&.index {
|
8
|
+
padding-top: 161px;
|
9
|
+
}
|
10
|
+
|
11
|
+
small {
|
12
|
+
font-size: 95%;
|
13
|
+
}
|
14
|
+
|
15
|
+
a {
|
16
|
+
color: $light-primary-color;
|
17
|
+
text-decoration: none;
|
18
|
+
|
19
|
+
&:hover {
|
20
|
+
color: $default-primary-color;
|
21
|
+
text-decoration: none;
|
22
|
+
}
|
23
|
+
}
|
3
24
|
}
|
4
25
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
26
|
+
header {
|
27
|
+
.container-fluid {
|
28
|
+
padding-left: 10px;
|
29
|
+
padding-right: 10px;
|
30
|
+
}
|
31
|
+
|
32
|
+
nav.navbar {
|
33
|
+
@extend .navbar-default, .navbar-fixed-top;
|
34
|
+
background-color: white;
|
35
|
+
box-shadow: 0 0 12px rgba(0, 0, 0, 0.175);
|
36
|
+
|
37
|
+
img.user-portrait {
|
38
|
+
border-radius: 3px;
|
39
|
+
height: 30px;
|
40
|
+
margin: -5px 0;
|
41
|
+
width: 30px;
|
42
|
+
}
|
43
|
+
|
44
|
+
i.user-portrait {
|
45
|
+
font-size: 20px;
|
46
|
+
vertical-align: bottom;
|
47
|
+
}
|
48
|
+
}
|
49
|
+
|
50
|
+
.navbar-header {
|
51
|
+
position: relative;
|
52
|
+
|
53
|
+
a.navbar-brand {
|
54
|
+
color: $light-red-color;
|
55
|
+
&:hover {
|
56
|
+
color: $default-red-color;
|
57
|
+
}
|
58
|
+
}
|
59
|
+
|
60
|
+
button.navbar-toggle {
|
61
|
+
border: none;
|
62
|
+
float: none;
|
63
|
+
line-height: 16px;
|
64
|
+
margin-top: -18px;
|
65
|
+
padding: 8px 9px;
|
66
|
+
position: absolute;
|
67
|
+
right: 0;
|
68
|
+
top: 50%;
|
69
|
+
|
70
|
+
&:hover, &:focus {
|
71
|
+
background-color: #444;
|
72
|
+
.fa-bars {
|
73
|
+
color: white;
|
74
|
+
font-size: 20px;
|
75
|
+
}
|
76
|
+
}
|
77
|
+
|
78
|
+
.fa-bars {
|
79
|
+
color: $font-color;
|
80
|
+
font-size: 20px;
|
81
|
+
}
|
82
|
+
}
|
83
|
+
}
|
84
|
+
|
85
|
+
#top-menu {
|
86
|
+
ul.navbar-nav {
|
87
|
+
ul.dropdown-menu {
|
88
|
+
ul.dropdown-menu {
|
89
|
+
display: block;
|
90
|
+
position: inherit;
|
91
|
+
margin-top: 0;
|
92
|
+
padding-left: 0;
|
93
|
+
padding-top: 0;
|
94
|
+
border: none;
|
95
|
+
box-shadow: none;
|
96
|
+
|
97
|
+
li {
|
98
|
+
position: relative;
|
99
|
+
|
100
|
+
&:before {
|
101
|
+
@extend .fa, .fa-caret-right;
|
102
|
+
position: absolute;
|
103
|
+
left: 30px;
|
104
|
+
top: 50%;
|
105
|
+
margin-top: -7px;
|
106
|
+
}
|
107
|
+
|
108
|
+
a {
|
109
|
+
padding-left: 43px;
|
110
|
+
}
|
111
|
+
}
|
112
|
+
}
|
113
|
+
}
|
114
|
+
}
|
115
|
+
}
|
9
116
|
}
|
10
117
|
|
11
|
-
|
12
|
-
|
13
|
-
|
118
|
+
main {
|
119
|
+
margin: 0 10px;
|
120
|
+
|
121
|
+
section {
|
122
|
+
font-size: 12px;
|
123
|
+
margin-bottom: 10px;
|
124
|
+
position: relative;
|
125
|
+
}
|
126
|
+
|
127
|
+
.alert {
|
128
|
+
margin-bottom: 10px;
|
129
|
+
}
|
130
|
+
|
131
|
+
.resources, .resource {
|
132
|
+
&__container {
|
133
|
+
overflow: auto;
|
134
|
+
background-color: $white;
|
135
|
+
}
|
136
|
+
}
|
137
|
+
|
138
|
+
.resources__header, .resource__header {
|
139
|
+
background-color: $background-color;
|
140
|
+
border-bottom: none;
|
141
|
+
left: 0;
|
142
|
+
margin: 0 10px;
|
143
|
+
padding: 11px 0 0;
|
144
|
+
position: fixed;
|
145
|
+
right: 0;
|
146
|
+
top: 51px;
|
147
|
+
z-index: 10;
|
148
|
+
|
149
|
+
h1 {
|
150
|
+
color: $default-primary-color;
|
151
|
+
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
152
|
+
font-size: 24px;
|
153
|
+
line-height: 30px;
|
154
|
+
margin: 0 0 1px -1px;
|
155
|
+
overflow: hidden;
|
156
|
+
text-overflow: ellipsis;
|
157
|
+
white-space: nowrap;
|
158
|
+
}
|
159
|
+
|
160
|
+
span > a {
|
161
|
+
position: relative;
|
162
|
+
display: inline-block;
|
163
|
+
color: $light-primary-color;
|
164
|
+
text-decoration: none;
|
165
|
+
transition: 0.2s;
|
166
|
+
|
167
|
+
&:hover {
|
168
|
+
color: $default-primary-color;
|
169
|
+
}
|
170
|
+
}
|
171
|
+
}
|
172
|
+
|
173
|
+
.resources__header {
|
174
|
+
height: 109px;
|
175
|
+
}
|
176
|
+
|
177
|
+
.resource__header {
|
178
|
+
height: 90px;
|
179
|
+
|
180
|
+
nav {
|
181
|
+
bottom: 10px;
|
182
|
+
left: 0;
|
183
|
+
position: absolute;
|
184
|
+
}
|
185
|
+
|
186
|
+
ul, li {
|
187
|
+
list-style: none;
|
188
|
+
margin: 0;
|
189
|
+
padding: 0;
|
190
|
+
}
|
191
|
+
|
192
|
+
li {
|
193
|
+
float: left;
|
194
|
+
}
|
195
|
+
|
196
|
+
a {
|
197
|
+
@extend .fa;
|
198
|
+
|
199
|
+
background-color: $light-blue-color;
|
200
|
+
display: inline-block;
|
201
|
+
padding: 5px 8px;
|
202
|
+
width: 30px;
|
203
|
+
line-height: 20px;
|
204
|
+
margin-right: 6px;
|
205
|
+
text-align: center;
|
206
|
+
border-radius: 2px;
|
207
|
+
color: $white;
|
208
|
+
text-decoration: none;
|
209
|
+
|
210
|
+
&:hover {
|
211
|
+
color: $white;
|
212
|
+
background-color: $default-blue-color;
|
213
|
+
}
|
214
|
+
}
|
215
|
+
|
216
|
+
.resources__index {
|
217
|
+
@extend .fa-list;
|
218
|
+
}
|
219
|
+
|
220
|
+
.resource {
|
221
|
+
&__show {
|
222
|
+
@extend .fa-info;
|
223
|
+
}
|
224
|
+
|
225
|
+
&__create {
|
226
|
+
@extend .fa-plus;
|
227
|
+
background-color: $light-green-color;
|
228
|
+
|
229
|
+
&:hover {
|
230
|
+
background-color: $default-green-color;
|
231
|
+
}
|
232
|
+
}
|
233
|
+
|
234
|
+
&__update {
|
235
|
+
@extend .fa-pencil;
|
236
|
+
background-color: $light-yellow-color;
|
237
|
+
|
238
|
+
&:hover {
|
239
|
+
background-color: $default-yellow-color;
|
240
|
+
}
|
241
|
+
}
|
242
|
+
|
243
|
+
&__destroy {
|
244
|
+
@extend .fa-remove;
|
245
|
+
background-color: $light-red-color;
|
246
|
+
|
247
|
+
&:hover {
|
248
|
+
background-color: $default-red-color;
|
249
|
+
}
|
250
|
+
}
|
251
|
+
}
|
252
|
+
}
|
253
|
+
|
254
|
+
.modaler {
|
255
|
+
&__title,
|
256
|
+
&__body {
|
257
|
+
display: none;
|
258
|
+
}
|
259
|
+
}
|
14
260
|
}
|
261
|
+
|
262
|
+
@import '_layout_desktop';
|
@@ -0,0 +1,53 @@
|
|
1
|
+
@media (min-width: $screen-sm-min) {
|
2
|
+
body {
|
3
|
+
padding-top: 131px;
|
4
|
+
|
5
|
+
header .container-fluid {
|
6
|
+
padding: 0 30px;
|
7
|
+
}
|
8
|
+
|
9
|
+
main {
|
10
|
+
margin: 0 30px;
|
11
|
+
|
12
|
+
section {
|
13
|
+
margin-bottom: 30px;
|
14
|
+
}
|
15
|
+
|
16
|
+
.resources__header, .resource__header {
|
17
|
+
height: 80px;
|
18
|
+
margin: 0 30px;
|
19
|
+
}
|
20
|
+
|
21
|
+
.resource__header {
|
22
|
+
padding-top: 25px;
|
23
|
+
|
24
|
+
h1 {
|
25
|
+
margin-right: 122px;
|
26
|
+
overflow: hidden;
|
27
|
+
white-space: nowrap;
|
28
|
+
}
|
29
|
+
|
30
|
+
nav {
|
31
|
+
bottom: auto;
|
32
|
+
left: auto;
|
33
|
+
margin-top: -15px;
|
34
|
+
right: -6px;
|
35
|
+
top: 50%;
|
36
|
+
transition: 0.5s;
|
37
|
+
}
|
38
|
+
}
|
39
|
+
|
40
|
+
.query {
|
41
|
+
bottom: auto;
|
42
|
+
left: 65%;
|
43
|
+
margin-top: -15px;
|
44
|
+
top: 50%;
|
45
|
+
transition: 0.5s;
|
46
|
+
|
47
|
+
&.query--focus {
|
48
|
+
left: 50%;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
}
|
@@ -0,0 +1,119 @@
|
|
1
|
+
@mixin dropdown ($left_or_right: "left") {
|
2
|
+
position: relative;
|
3
|
+
|
4
|
+
&.open {
|
5
|
+
> ul, > form {
|
6
|
+
display: block;
|
7
|
+
}
|
8
|
+
}
|
9
|
+
|
10
|
+
> ul, > form {
|
11
|
+
@if $left_or_right == "left" { left: 0 }
|
12
|
+
@if $left_or_right == "right" { right: 0 }
|
13
|
+
@if $left_or_right == "middle" { left: -93px; }
|
14
|
+
background-clip: padding-box;
|
15
|
+
background-color: $white;
|
16
|
+
border: 1px solid rgba(0, 0, 0, 0.15);
|
17
|
+
border-radius: 4px;
|
18
|
+
box-shadow: 0 0 12px rgba(0, 0, 0, 0.15);
|
19
|
+
display: none;
|
20
|
+
float: left;
|
21
|
+
list-style: none;
|
22
|
+
margin: 2px 0 0;
|
23
|
+
min-width: 160px;
|
24
|
+
padding: 5px 0;
|
25
|
+
position: absolute;
|
26
|
+
text-align: left;
|
27
|
+
top: 100%;
|
28
|
+
z-index: 100000;
|
29
|
+
|
30
|
+
em, label {
|
31
|
+
color: $light-grey-color;
|
32
|
+
display: block;
|
33
|
+
font-style: normal;
|
34
|
+
font-weight: normal;
|
35
|
+
padding: 3px 20px;
|
36
|
+
text-decoration: none;
|
37
|
+
}
|
38
|
+
|
39
|
+
a {
|
40
|
+
color: $font-color;
|
41
|
+
display: block;
|
42
|
+
font-style: normal;
|
43
|
+
font-weight: normal;
|
44
|
+
padding: 3px 20px;
|
45
|
+
text-decoration: none;
|
46
|
+
|
47
|
+
&:hover {
|
48
|
+
background-color: #f5f5f5;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
|
54
|
+
@mixin arrow ($icon_font: $fa-var-angle-down, $icon_font_open: $fa-var-angle-up, $light: $light-red-color, $dark: $dark-red-color, $left_or_right: "right", $padding_size: 11px) {
|
55
|
+
> a {
|
56
|
+
@if $left_or_right == "left" { padding-left: $padding_size }
|
57
|
+
@if $left_or_right == "right" { padding-right: $padding_size }
|
58
|
+
display: inline-block;
|
59
|
+
position: relative;
|
60
|
+
|
61
|
+
&:after {
|
62
|
+
@if $left_or_right == "left" { left: 0 }
|
63
|
+
@if $left_or_right == "right" { right: 0 }
|
64
|
+
@extend .fa;
|
65
|
+
color: $light;
|
66
|
+
content: $icon_font;
|
67
|
+
font-size: 12px;
|
68
|
+
margin-top: -6px;
|
69
|
+
position: absolute;
|
70
|
+
top: 50%;
|
71
|
+
}
|
72
|
+
|
73
|
+
&:hover:after {
|
74
|
+
color: $dark;
|
75
|
+
}
|
76
|
+
}
|
77
|
+
|
78
|
+
&.open > a {
|
79
|
+
&:after {
|
80
|
+
@extend .fa;
|
81
|
+
content: $icon_font_open;
|
82
|
+
}
|
83
|
+
}
|
84
|
+
}
|
85
|
+
|
86
|
+
@mixin divider ($color: $light-grey-color) {
|
87
|
+
position: relative;
|
88
|
+
margin-left: 10px;
|
89
|
+
padding-left: 10px;
|
90
|
+
|
91
|
+
&:before {
|
92
|
+
background-color: $color;
|
93
|
+
content: '';
|
94
|
+
height: 10px;
|
95
|
+
left: 0;
|
96
|
+
margin-top: -5px;
|
97
|
+
position: absolute;
|
98
|
+
top: 50%;
|
99
|
+
width: 1px;
|
100
|
+
}
|
101
|
+
|
102
|
+
&:first-of-type {
|
103
|
+
margin: 0;
|
104
|
+
padding: 0;
|
105
|
+
|
106
|
+
&:before {
|
107
|
+
display: none;
|
108
|
+
}
|
109
|
+
}
|
110
|
+
}
|
111
|
+
|
112
|
+
@mixin light_link {
|
113
|
+
color: $light-blue-color;
|
114
|
+
text-decoration: none;
|
115
|
+
|
116
|
+
&:hover {
|
117
|
+
color: $default-blue-color;
|
118
|
+
}
|
119
|
+
}
|