incline 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +13 -0
- data/Gemfile +17 -0
- data/Gemfile.lock +186 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +208 -0
- data/Rakefile +37 -0
- data/app/assets/fonts/incline/.keep +0 -0
- data/app/assets/images/incline/.keep +0 -0
- data/app/assets/images/incline/barcode-B.svg +181 -0
- data/app/assets/javascripts/incline/activate_classed_items.js +11 -0
- data/app/assets/javascripts/incline/application.js +30 -0
- data/app/assets/javascripts/incline/bootstrap-datepicker.js +1800 -0
- data/app/assets/javascripts/incline/datatables.js +22193 -0
- data/app/assets/javascripts/incline/escapeHtml.js +10 -0
- data/app/assets/javascripts/incline/inline_actions.js +479 -0
- data/app/assets/javascripts/incline/jquery.doubleScroll.js +112 -0
- data/app/assets/javascripts/incline/jquery.number.js +764 -0
- data/app/assets/javascripts/incline/regexMask.js +27 -0
- data/app/assets/javascripts/incline/select2/i18n/en.js +3 -0
- data/app/assets/javascripts/incline/select2/select2.full.js +6436 -0
- data/app/assets/stylesheets/incline/application.css +18 -0
- data/app/assets/stylesheets/incline/bootstrap-theme.min.css +5 -0
- data/app/assets/stylesheets/incline/custom.scss +279 -0
- data/app/assets/stylesheets/incline/datatables.css +494 -0
- data/app/assets/stylesheets/incline/datepicker3.css +790 -0
- data/app/assets/stylesheets/incline/select2.css +484 -0
- data/app/controllers/incline/access_groups_controller.rb +127 -0
- data/app/controllers/incline/access_test_controller.rb +30 -0
- data/app/controllers/incline/account_activations_controller.rb +28 -0
- data/app/controllers/incline/application_controller.rb +11 -0
- data/app/controllers/incline/contact_controller.rb +34 -0
- data/app/controllers/incline/password_resets_controller.rb +113 -0
- data/app/controllers/incline/security_controller.rb +100 -0
- data/app/controllers/incline/sessions_controller.rb +50 -0
- data/app/controllers/incline/users_controller.rb +304 -0
- data/app/controllers/incline/welcome_controller.rb +19 -0
- data/app/helpers/incline/.keep +0 -0
- data/app/mailers/incline/application_mailer_base.rb +11 -0
- data/app/mailers/incline/contact_form.rb +19 -0
- data/app/mailers/incline/user_mailer.rb +45 -0
- data/app/models/incline/access_group.rb +121 -0
- data/app/models/incline/access_group_group_member.rb +12 -0
- data/app/models/incline/access_group_user_member.rb +10 -0
- data/app/models/incline/action_group.rb +12 -0
- data/app/models/incline/action_security.rb +222 -0
- data/app/models/incline/contact_message.rb +37 -0
- data/app/models/incline/disable_info.rb +20 -0
- data/app/models/incline/password_reset.rb +14 -0
- data/app/models/incline/password_reset_request.rb +14 -0
- data/app/models/incline/user.rb +437 -0
- data/app/models/incline/user_login_history.rb +30 -0
- data/app/views/incline/access_groups/_details.json.jbuilder +10 -0
- data/app/views/incline/access_groups/_form.html.erb +19 -0
- data/app/views/incline/access_groups/_list.html.erb +60 -0
- data/app/views/incline/access_groups/_messages.json.jbuilder +6 -0
- data/app/views/incline/access_groups/edit.html.erb +2 -0
- data/app/views/incline/access_groups/index.html.erb +6 -0
- data/app/views/incline/access_groups/index.json.jbuilder +16 -0
- data/app/views/incline/access_groups/new.html.erb +2 -0
- data/app/views/incline/access_groups/show.html.erb +9 -0
- data/app/views/incline/access_groups/show.json.jbuilder +11 -0
- data/app/views/incline/contact/new.html.erb +22 -0
- data/app/views/incline/contact_form/contact.html.erb +16 -0
- data/app/views/incline/contact_form/contact.text.erb +13 -0
- data/app/views/incline/password_resets/edit.html.erb +16 -0
- data/app/views/incline/password_resets/new.html.erb +12 -0
- data/app/views/incline/security/_details.json.jbuilder +7 -0
- data/app/views/incline/security/_form.html.erb +20 -0
- data/app/views/incline/security/_list.html.erb +89 -0
- data/app/views/incline/security/_messages.json.jbuilder +6 -0
- data/app/views/incline/security/edit.html.erb +2 -0
- data/app/views/incline/security/index.html.erb +6 -0
- data/app/views/incline/security/index.json.jbuilder +16 -0
- data/app/views/incline/security/show.html.erb +31 -0
- data/app/views/incline/security/show.json.jbuilder +11 -0
- data/app/views/incline/sessions/new.html.erb +26 -0
- data/app/views/incline/user_mailer/account_activation.html.erb +7 -0
- data/app/views/incline/user_mailer/account_activation.text.erb +6 -0
- data/app/views/incline/user_mailer/invalid_password_reset.html.erb +3 -0
- data/app/views/incline/user_mailer/invalid_password_reset.text.erb +5 -0
- data/app/views/incline/user_mailer/password_reset.html.erb +8 -0
- data/app/views/incline/user_mailer/password_reset.text.erb +7 -0
- data/app/views/incline/users/_details.json.jbuilder +32 -0
- data/app/views/incline/users/_form.html.erb +21 -0
- data/app/views/incline/users/_list.html.erb +102 -0
- data/app/views/incline/users/_messages.json.jbuilder +6 -0
- data/app/views/incline/users/disable_confirm.html.erb +19 -0
- data/app/views/incline/users/edit.html.erb +5 -0
- data/app/views/incline/users/index.html.erb +6 -0
- data/app/views/incline/users/index.json.jbuilder +16 -0
- data/app/views/incline/users/new.html.erb +5 -0
- data/app/views/incline/users/show.html.erb +12 -0
- data/app/views/incline/users/show.json.jbuilder +11 -0
- data/app/views/incline/welcome/home.html.erb +5 -0
- data/app/views/layouts/application.html.erb +1 -0
- data/app/views/layouts/incline/_account_menu.html.erb +18 -0
- data/app/views/layouts/incline/_app_menu_anon.html.erb +1 -0
- data/app/views/layouts/incline/_app_menu_authenticated.html.erb +1 -0
- data/app/views/layouts/incline/_footer.html.erb +13 -0
- data/app/views/layouts/incline/_header.html.erb +21 -0
- data/app/views/layouts/incline/_html_mailer.html.erb +5 -0
- data/app/views/layouts/incline/_incline_app.html.erb +25 -0
- data/app/views/layouts/incline/_messages.html.erb +3 -0
- data/app/views/layouts/incline/_shim.html.erb +3 -0
- data/app/views/layouts/incline/_text_mailer.text.erb +1 -0
- data/app/views/layouts/incline/application.html.erb +1 -0
- data/app/views/layouts/mailer.html.erb +2 -0
- data/app/views/layouts/mailer.text.erb +2 -0
- data/bin/rails +12 -0
- data/bin/test_scaffold.sh +10 -0
- data/config/routes.rb +61 -0
- data/db/migrate/20170511230126_create_incline_users.rb +26 -0
- data/db/migrate/20170515003052_create_incline_access_groups.rb +10 -0
- data/db/migrate/20170515003221_create_incline_user_login_histories.rb +12 -0
- data/db/migrate/20170515150908_create_incline_access_group_user_members.rb +11 -0
- data/db/migrate/20170515151058_create_incline_access_group_group_members.rb +11 -0
- data/db/migrate/20170517193432_add_comments_to_incline_user.rb +5 -0
- data/db/migrate/20170622132700_create_incline_action_securities.rb +16 -0
- data/db/migrate/20170622172712_create_incline_action_groups.rb +11 -0
- data/db/migrate/20170622195742_add_non_standard_to_action_security.rb +5 -0
- data/db/migrate/20170622230422_add_visible_to_action_security.rb +5 -0
- data/db/seeds.rb +81 -0
- data/exe/new_incline_app +42 -0
- data/lib/generators/incline/install_generator.rb +259 -0
- data/lib/generators/incline/templates/_app_menu_anon.html.erb +1 -0
- data/lib/generators/incline/templates/_app_menu_authenticated.html.erb +1 -0
- data/lib/generators/incline/templates/incline_application.css +17 -0
- data/lib/generators/incline/templates/incline_application.html.erb +1 -0
- data/lib/generators/incline/templates/incline_application.js +12 -0
- data/lib/generators/incline/templates/incline_database.yml +25 -0
- data/lib/generators/incline/templates/incline_email.yml +20 -0
- data/lib/generators/incline/templates/incline_mailer.html.erb +2 -0
- data/lib/generators/incline/templates/incline_mailer.text.erb +2 -0
- data/lib/generators/incline/templates/incline_users.yml +64 -0
- data/lib/generators/incline/templates/incline_version.rb +3 -0
- data/lib/incline/auth_engine_base.rb +52 -0
- data/lib/incline/data_tables_request.rb +336 -0
- data/lib/incline/date_time_formats.rb +6 -0
- data/lib/incline/engine.rb +212 -0
- data/lib/incline/errors.rb +15 -0
- data/lib/incline/extensions/action_controller_base.rb +526 -0
- data/lib/incline/extensions/action_mailer_base.rb +66 -0
- data/lib/incline/extensions/action_view_base.rb +489 -0
- data/lib/incline/extensions/active_record_base.rb +308 -0
- data/lib/incline/extensions/application.rb +137 -0
- data/lib/incline/extensions/application_configuration.rb +50 -0
- data/lib/incline/extensions/connection_adapter.rb +55 -0
- data/lib/incline/extensions/date_time_value.rb +123 -0
- data/lib/incline/extensions/date_value.rb +77 -0
- data/lib/incline/extensions/decimal_value.rb +55 -0
- data/lib/incline/extensions/erb_scaffold_generator.rb +31 -0
- data/lib/incline/extensions/float_value.rb +59 -0
- data/lib/incline/extensions/form_builder.rb +617 -0
- data/lib/incline/extensions/integer_value.rb +54 -0
- data/lib/incline/extensions/jbuilder_generator.rb +38 -0
- data/lib/incline/extensions/jbuilder_template.rb +39 -0
- data/lib/incline/extensions/main_app.rb +40 -0
- data/lib/incline/extensions/numeric.rb +63 -0
- data/lib/incline/extensions/object.rb +31 -0
- data/lib/incline/extensions/resource_route_generator.rb +53 -0
- data/lib/incline/extensions/session.rb +113 -0
- data/lib/incline/extensions/string.rb +50 -0
- data/lib/incline/extensions/test_case.rb +764 -0
- data/lib/incline/extensions/time_zone_converter.rb +40 -0
- data/lib/incline/global_status.rb +236 -0
- data/lib/incline/helpers/route_hash_formatter.rb +46 -0
- data/lib/incline/json_log_formatter.rb +96 -0
- data/lib/incline/json_logger.rb +17 -0
- data/lib/incline/log.rb +153 -0
- data/lib/incline/number_formats.rb +17 -0
- data/lib/incline/recaptcha.rb +346 -0
- data/lib/incline/user_manager.rb +212 -0
- data/lib/incline/validators/email_validator.rb +45 -0
- data/lib/incline/validators/ip_address_validator.rb +32 -0
- data/lib/incline/validators/recaptcha_validator.rb +37 -0
- data/lib/incline/validators/safe_name_validator.rb +31 -0
- data/lib/incline/version.rb +3 -0
- data/lib/incline/work_path.rb +75 -0
- data/lib/incline.rb +197 -0
- data/lib/tasks/incline_tasks.rake +4 -0
- data/lib/templates/erb/scaffold/_form.html.erb +43 -0
- data/lib/templates/erb/scaffold/_list.html.erb +81 -0
- data/lib/templates/erb/scaffold/edit.html.erb +1 -0
- data/lib/templates/erb/scaffold/index.html.erb +6 -0
- data/lib/templates/erb/scaffold/new.html.erb +1 -0
- data/lib/templates/erb/scaffold/show.html.erb +34 -0
- data/lib/templates/jbuilder/scaffold/_details.json.jbuilder +20 -0
- data/lib/templates/jbuilder/scaffold/index.json.jbuilder +16 -0
- data/lib/templates/jbuilder/scaffold/show.json.jbuilder +16 -0
- data/lib/templates/rails/scaffold_controller/controller.rb +128 -0
- data/test/controllers/incline/access_groups_controller_test.rb +65 -0
- data/test/controllers/incline/access_test_controller_test.rb +53 -0
- data/test/controllers/incline/contact_controller_test.rb +32 -0
- data/test/controllers/incline/security_controller_test.rb +39 -0
- data/test/controllers/incline/welcome_controller_test.rb +16 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/images/.keep +0 -0
- data/test/dummy/app/assets/javascripts/application.js +12 -0
- data/test/dummy/app/assets/stylesheets/application.css +17 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/controllers/concerns/.keep +0 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/mailers/.keep +0 -0
- data/test/dummy/app/models/.keep +0 -0
- data/test/dummy/app/models/concerns/.keep +0 -0
- data/test/dummy/app/views/layouts/application.html.erb +1 -0
- data/test/dummy/app/views/layouts/incline/_app_menu_anon.html.erb +1 -0
- data/test/dummy/app/views/layouts/incline/_app_menu_authenticated.html.erb +1 -0
- data/test/dummy/app/views/layouts/mailer.html.erb +2 -0
- data/test/dummy/app/views/layouts/mailer.text.erb +2 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/bin/setup +29 -0
- data/test/dummy/config/application.rb +38 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +34 -0
- data/test/dummy/config/email.yml +24 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +45 -0
- data/test/dummy/config/environments/production.rb +85 -0
- data/test/dummy/config/environments/test.rb +44 -0
- data/test/dummy/config/initializers/assets.rb +11 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/to_time_preserves_timezone.rb +10 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +6 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/db/schema.rb +108 -0
- data/test/dummy/lib/assets/.keep +0 -0
- data/test/dummy/log/.keep +0 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/extensions/action_controller_base_extensions_test.rb +21 -0
- data/test/extensions/action_mailer_base_extensions_test.rb +20 -0
- data/test/extensions/action_view_base_extensions_test.rb +267 -0
- data/test/extensions/active_record_extensions_test.rb +173 -0
- data/test/extensions/application_configuration_extensions_test.rb +46 -0
- data/test/extensions/application_extensions_test.rb +23 -0
- data/test/extensions/connection_adapter_extensions_test.rb +54 -0
- data/test/extensions/date_time_value_extensions_test.rb +104 -0
- data/test/extensions/date_value_extensions_test.rb +102 -0
- data/test/extensions/decimal_value_extensions_test.rb +85 -0
- data/test/extensions/erb_scaffold_generator_extensions_test.rb +17 -0
- data/test/extensions/float_value_extensions_test.rb +78 -0
- data/test/extensions/form_builder_extensions_test.rb +28 -0
- data/test/extensions/integer_value_extensions_test.rb +78 -0
- data/test/extensions/jbuilder_generator_extensions_test.rb +21 -0
- data/test/extensions/jbuilder_template_extensions_test.rb +47 -0
- data/test/extensions/main_app_extensions_test.rb +55 -0
- data/test/extensions/numeric_extensions_test.rb +76 -0
- data/test/extensions/object_extensions_test.rb +104 -0
- data/test/extensions/session_extensions_test.rb +69 -0
- data/test/extensions/string_extensions_test.rb +32 -0
- data/test/extensions/test_case_extensions_test.rb +538 -0
- data/test/extensions/time_zone_converter_extensions_test.rb +10 -0
- data/test/fixtures/incline/access_group_group_members.yml +1 -0
- data/test/fixtures/incline/access_group_user_members.yml +1 -0
- data/test/fixtures/incline/access_groups.yml +13 -0
- data/test/fixtures/incline/action_groups.yml +6 -0
- data/test/fixtures/incline/action_securities.yml +18 -0
- data/test/fixtures/incline/user_login_histories.yml +1 -0
- data/test/fixtures/incline/users.yml +64 -0
- data/test/incline_test.rb +63 -0
- data/test/integration/incline/users_edit_test.rb +180 -0
- data/test/integration/incline/users_login_test.rb +105 -0
- data/test/integration/incline/users_signup_test.rb +147 -0
- data/test/integration/navigation_test.rb +11 -0
- data/test/lib/data_tables_request_test.rb +245 -0
- data/test/lib/date_time_formats_test.rb +111 -0
- data/test/lib/global_status_test.rb +89 -0
- data/test/lib/json_log_formatter_test.rb +43 -0
- data/test/lib/log_test.rb +36 -0
- data/test/lib/recaptcha_test.rb +75 -0
- data/test/lib/user_manager_test.rb +47 -0
- data/test/lib/work_path_test.rb +18 -0
- data/test/models/incline/access_group_group_member_test.rb +30 -0
- data/test/models/incline/access_group_test.rb +60 -0
- data/test/models/incline/access_group_user_member_test.rb +29 -0
- data/test/models/incline/action_group_test.rb +27 -0
- data/test/models/incline/action_security_test.rb +176 -0
- data/test/models/incline/contact_message_test.rb +66 -0
- data/test/models/incline/disable_info_test.rb +29 -0
- data/test/models/incline/password_reset_request_test.rb +35 -0
- data/test/models/incline/password_reset_test.rb +51 -0
- data/test/models/incline/user_login_history_test.rb +31 -0
- data/test/models/incline/user_test.rb +91 -0
- data/test/test_helper.rb +42 -0
- data/test/validators/email_validator_test.rb +102 -0
- data/test/validators/ip_address_validator_test.rb +107 -0
- data/test/validators/recaptcha_validator_test.rb +57 -0
- data/test/validators/safe_name_validator_test.rb +101 -0
- metadata +584 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 031e478baf366cdebf99cb4659498632374a87cc
|
|
4
|
+
data.tar.gz: a25cdc96040f97b41ba24b637b1a580d27a655e5
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 8bf9dbd8fe73f9dba8e04fa2c1b43642e22ae62de37edb212ce88e7557b9ed8c5148bfd208a35c9b4368cdd8015299b5122969592cf838917640decf47b53aa8
|
|
7
|
+
data.tar.gz: 1be0ccdb1ead2ea1008378d1e0a231c4ffe40023a5f0b13985f3d2bbf1db8f543c0ca19a2a2637cb74db48b30df8c08976086363279d3f266942499a934ce15b
|
data/.gitignore
ADDED
data/Gemfile
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
|
+
|
|
3
|
+
# Declare your gem's dependencies in incline.gemspec.
|
|
4
|
+
# Bundler will treat runtime dependencies like base dependencies, and
|
|
5
|
+
# development dependencies will be added by default to the :development group.
|
|
6
|
+
gemspec
|
|
7
|
+
|
|
8
|
+
group :development do
|
|
9
|
+
gem 'byebug'
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
group :test do
|
|
13
|
+
gem 'byebug'
|
|
14
|
+
gem 'tiny_tds', '~> 1.3.0'
|
|
15
|
+
gem 'activerecord-sqlserver-adapter', '~> 4.2.18'
|
|
16
|
+
end
|
|
17
|
+
|
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
incline (0.1.5)
|
|
5
|
+
ansi (~> 1.5.0)
|
|
6
|
+
bcrypt
|
|
7
|
+
bootstrap-sass
|
|
8
|
+
coffee-rails
|
|
9
|
+
exception_notification (~> 4.2.1)
|
|
10
|
+
jbuilder
|
|
11
|
+
jquery-rails
|
|
12
|
+
nokogiri
|
|
13
|
+
rails (~> 4.2.8)
|
|
14
|
+
redcarpet (~> 3.4.0)
|
|
15
|
+
sass-rails (~> 5.0.6)
|
|
16
|
+
shells (~> 0.1.9)
|
|
17
|
+
spawnling (~> 2.1.6)
|
|
18
|
+
uglifier
|
|
19
|
+
|
|
20
|
+
GEM
|
|
21
|
+
remote: https://rubygems.org/
|
|
22
|
+
specs:
|
|
23
|
+
actionmailer (4.2.8)
|
|
24
|
+
actionpack (= 4.2.8)
|
|
25
|
+
actionview (= 4.2.8)
|
|
26
|
+
activejob (= 4.2.8)
|
|
27
|
+
mail (~> 2.5, >= 2.5.4)
|
|
28
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
|
29
|
+
actionpack (4.2.8)
|
|
30
|
+
actionview (= 4.2.8)
|
|
31
|
+
activesupport (= 4.2.8)
|
|
32
|
+
rack (~> 1.6)
|
|
33
|
+
rack-test (~> 0.6.2)
|
|
34
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
|
35
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
|
36
|
+
actionview (4.2.8)
|
|
37
|
+
activesupport (= 4.2.8)
|
|
38
|
+
builder (~> 3.1)
|
|
39
|
+
erubis (~> 2.7.0)
|
|
40
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
|
41
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
|
42
|
+
activejob (4.2.8)
|
|
43
|
+
activesupport (= 4.2.8)
|
|
44
|
+
globalid (>= 0.3.0)
|
|
45
|
+
activemodel (4.2.8)
|
|
46
|
+
activesupport (= 4.2.8)
|
|
47
|
+
builder (~> 3.1)
|
|
48
|
+
activerecord (4.2.8)
|
|
49
|
+
activemodel (= 4.2.8)
|
|
50
|
+
activesupport (= 4.2.8)
|
|
51
|
+
arel (~> 6.0)
|
|
52
|
+
activerecord-sqlserver-adapter (4.2.18)
|
|
53
|
+
activerecord (~> 4.2.1)
|
|
54
|
+
activesupport (4.2.8)
|
|
55
|
+
i18n (~> 0.7)
|
|
56
|
+
minitest (~> 5.1)
|
|
57
|
+
thread_safe (~> 0.3, >= 0.3.4)
|
|
58
|
+
tzinfo (~> 1.1)
|
|
59
|
+
ansi (1.5.0)
|
|
60
|
+
arel (6.0.4)
|
|
61
|
+
autoprefixer-rails (7.1.2.2)
|
|
62
|
+
execjs
|
|
63
|
+
bcrypt (3.1.11)
|
|
64
|
+
bootstrap-sass (3.3.7)
|
|
65
|
+
autoprefixer-rails (>= 5.2.1)
|
|
66
|
+
sass (>= 3.3.4)
|
|
67
|
+
builder (3.2.3)
|
|
68
|
+
byebug (9.0.6)
|
|
69
|
+
coffee-rails (4.2.2)
|
|
70
|
+
coffee-script (>= 2.2.0)
|
|
71
|
+
railties (>= 4.0.0)
|
|
72
|
+
coffee-script (2.4.1)
|
|
73
|
+
coffee-script-source
|
|
74
|
+
execjs
|
|
75
|
+
coffee-script-source (1.12.2)
|
|
76
|
+
concurrent-ruby (1.0.5)
|
|
77
|
+
debug_inspector (0.0.3)
|
|
78
|
+
erubis (2.7.0)
|
|
79
|
+
exception_notification (4.2.1)
|
|
80
|
+
actionmailer (>= 4.0, < 6)
|
|
81
|
+
activesupport (>= 4.0, < 6)
|
|
82
|
+
execjs (2.7.0)
|
|
83
|
+
faker (1.7.3)
|
|
84
|
+
i18n (~> 0.5)
|
|
85
|
+
ffi (1.9.18)
|
|
86
|
+
globalid (0.4.0)
|
|
87
|
+
activesupport (>= 4.2.0)
|
|
88
|
+
i18n (0.8.1)
|
|
89
|
+
jbuilder (2.7.0)
|
|
90
|
+
activesupport (>= 4.2.0)
|
|
91
|
+
multi_json (>= 1.2)
|
|
92
|
+
jquery-rails (4.3.1)
|
|
93
|
+
rails-dom-testing (>= 1, < 3)
|
|
94
|
+
railties (>= 4.2.0)
|
|
95
|
+
thor (>= 0.14, < 2.0)
|
|
96
|
+
loofah (2.0.3)
|
|
97
|
+
nokogiri (>= 1.5.9)
|
|
98
|
+
mail (2.6.6)
|
|
99
|
+
mime-types (>= 1.16, < 4)
|
|
100
|
+
mime-types (3.1)
|
|
101
|
+
mime-types-data (~> 3.2015)
|
|
102
|
+
mime-types-data (3.2016.0521)
|
|
103
|
+
mini_portile2 (2.1.0)
|
|
104
|
+
minitest (5.10.2)
|
|
105
|
+
multi_json (1.12.1)
|
|
106
|
+
net-ssh (3.0.2)
|
|
107
|
+
nokogiri (1.7.2)
|
|
108
|
+
mini_portile2 (~> 2.1.0)
|
|
109
|
+
rack (1.6.8)
|
|
110
|
+
rack-test (0.6.3)
|
|
111
|
+
rack (>= 1.0)
|
|
112
|
+
rails (4.2.8)
|
|
113
|
+
actionmailer (= 4.2.8)
|
|
114
|
+
actionpack (= 4.2.8)
|
|
115
|
+
actionview (= 4.2.8)
|
|
116
|
+
activejob (= 4.2.8)
|
|
117
|
+
activemodel (= 4.2.8)
|
|
118
|
+
activerecord (= 4.2.8)
|
|
119
|
+
activesupport (= 4.2.8)
|
|
120
|
+
bundler (>= 1.3.0, < 2.0)
|
|
121
|
+
railties (= 4.2.8)
|
|
122
|
+
sprockets-rails
|
|
123
|
+
rails-deprecated_sanitizer (1.0.3)
|
|
124
|
+
activesupport (>= 4.2.0.alpha)
|
|
125
|
+
rails-dom-testing (1.0.8)
|
|
126
|
+
activesupport (>= 4.2.0.beta, < 5.0)
|
|
127
|
+
nokogiri (~> 1.6)
|
|
128
|
+
rails-deprecated_sanitizer (>= 1.0.1)
|
|
129
|
+
rails-html-sanitizer (1.0.3)
|
|
130
|
+
loofah (~> 2.0)
|
|
131
|
+
railties (4.2.8)
|
|
132
|
+
actionpack (= 4.2.8)
|
|
133
|
+
activesupport (= 4.2.8)
|
|
134
|
+
rake (>= 0.8.7)
|
|
135
|
+
thor (>= 0.18.1, < 2.0)
|
|
136
|
+
rake (12.0.0)
|
|
137
|
+
redcarpet (3.4.0)
|
|
138
|
+
rubyserial (0.4.0)
|
|
139
|
+
ffi (~> 1.9, >= 1.9.3)
|
|
140
|
+
sass (3.4.25)
|
|
141
|
+
sass-rails (5.0.6)
|
|
142
|
+
railties (>= 4.0.0, < 6)
|
|
143
|
+
sass (~> 3.1)
|
|
144
|
+
sprockets (>= 2.8, < 4.0)
|
|
145
|
+
sprockets-rails (>= 2.0, < 4.0)
|
|
146
|
+
tilt (>= 1.1, < 3)
|
|
147
|
+
shells (0.1.9)
|
|
148
|
+
net-ssh (~> 3.0.2)
|
|
149
|
+
rubyserial (~> 0.4.0)
|
|
150
|
+
spawnling (2.1.6)
|
|
151
|
+
sprockets (3.7.1)
|
|
152
|
+
concurrent-ruby (~> 1.0)
|
|
153
|
+
rack (> 1, < 3)
|
|
154
|
+
sprockets-rails (3.2.0)
|
|
155
|
+
actionpack (>= 4.0)
|
|
156
|
+
activesupport (>= 4.0)
|
|
157
|
+
sprockets (>= 3.0.0)
|
|
158
|
+
sqlite3 (1.3.13)
|
|
159
|
+
thor (0.19.4)
|
|
160
|
+
thread_safe (0.3.6)
|
|
161
|
+
tilt (2.0.7)
|
|
162
|
+
tiny_tds (1.3.0)
|
|
163
|
+
mini_portile2 (~> 2.0)
|
|
164
|
+
tzinfo (1.2.3)
|
|
165
|
+
thread_safe (~> 0.1)
|
|
166
|
+
uglifier (3.2.0)
|
|
167
|
+
execjs (>= 0.3.0, < 3)
|
|
168
|
+
web-console (3.3.0)
|
|
169
|
+
activemodel (>= 4.2)
|
|
170
|
+
debug_inspector
|
|
171
|
+
railties (>= 4.2)
|
|
172
|
+
|
|
173
|
+
PLATFORMS
|
|
174
|
+
ruby
|
|
175
|
+
|
|
176
|
+
DEPENDENCIES
|
|
177
|
+
activerecord-sqlserver-adapter (~> 4.2.18)
|
|
178
|
+
byebug
|
|
179
|
+
faker (~> 1.7.3)
|
|
180
|
+
incline!
|
|
181
|
+
sqlite3 (~> 1.3.13)
|
|
182
|
+
tiny_tds (~> 1.3.0)
|
|
183
|
+
web-console (~> 3.3.0)
|
|
184
|
+
|
|
185
|
+
BUNDLED WITH
|
|
186
|
+
1.14.6
|
data/MIT-LICENSE
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Copyright 2017 Beau Barker
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
+
a copy of this software and associated documentation files (the
|
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
+
the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be
|
|
12
|
+
included in all copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
= Incline
|
|
2
|
+
|
|
3
|
+
Rails is a great framework and is very general in design.
|
|
4
|
+
Inclines are railed devices designed to get from the bottom of a hill to the top. There are two left in Pittsburgh,
|
|
5
|
+
I can't speak for the rest of the world. The point is they are designed to do one thing and they do it pretty well.
|
|
6
|
+
|
|
7
|
+
This library builds on the Rails framework to quickly get to a certain point. That certain point is an application
|
|
8
|
+
with a fairly simple layout, built-in authentication and authorization, and quite a few helper methods bolted onto
|
|
9
|
+
the various Rails classes (e.g. - ActiveRecord::Base, ActionView::Base, ActionController::Base, etc).
|
|
10
|
+
|
|
11
|
+
The scaffold generator has also been updated to be more useful out of the box by scaffolding with bootstrap themed
|
|
12
|
+
views and the DataTables (https://datatables.net) library being used for the index views.
|
|
13
|
+
|
|
14
|
+
Incline is currently locked to Rails 4.2, specifically 4.2.8 or higher. It has not been tested against Rails 5.
|
|
15
|
+
|
|
16
|
+
== Installation
|
|
17
|
+
|
|
18
|
+
The easiest way to get started with Incline:
|
|
19
|
+
$ gem install incline
|
|
20
|
+
$ new_incline_app my_app
|
|
21
|
+
|
|
22
|
+
This will create an application depending on Incline, configure the application, generate a database, and initialize
|
|
23
|
+
a local git repository for the application.
|
|
24
|
+
|
|
25
|
+
You could also manually perform the necessary steps by creating a rails app and adding Incline to your Gemfile.
|
|
26
|
+
gem 'incline'
|
|
27
|
+
|
|
28
|
+
Followed by running bundle and then the 'incline:install' generator.
|
|
29
|
+
$ bundle
|
|
30
|
+
$ bundle exec rails generate incline:install
|
|
31
|
+
|
|
32
|
+
== Usage
|
|
33
|
+
|
|
34
|
+
Where to get started. If you use 'new_incline_app' or the 'incline:install' generator, your Rails app will now be
|
|
35
|
+
setup with a basic, yet powerful, security model. All users are either standard users or system admins. There must
|
|
36
|
+
always be at least one system admin. A system admin can promote other users to system admin or demote them back to
|
|
37
|
+
standard users. A system admin has automatic access to everything that does not require an anonymous user. Standard
|
|
38
|
+
users gain access through Access Groups. Users are defined in the Incline::User model.
|
|
39
|
+
|
|
40
|
+
Access Groups are completely customizable. You can create however many you want. Each access group can contain any
|
|
41
|
+
number of other access groups or users. Any user who is a member of an access group added to another access group is
|
|
42
|
+
also a member of the other access group. For instance. Group A includes Group B, so members of Group B are
|
|
43
|
+
automatically members of Group A. Access Groups are defined in the Incline::AccessGroup model.
|
|
44
|
+
|
|
45
|
+
The final part of the security model is the Action Security objects. Each routed action in the application has an
|
|
46
|
+
Action Security object. The object asks the controller for any hard settings for the action. The hard settings would
|
|
47
|
+
be 'allow_anon' (grants access to everyone), 'require_anon' (requires an anonymous user), and 'require_admin' (requires
|
|
48
|
+
a system admin). If any of the hard settings are flagged, 'require_admin' takes precedence, followed by 'require_anon'
|
|
49
|
+
and finally 'allow_anon'. Access Groups can be added to Action Security objects with no hard settings. Action
|
|
50
|
+
Security objects are defined in the Incline::ActionSecurity model.
|
|
51
|
+
|
|
52
|
+
class FirstController < ActionController::Base
|
|
53
|
+
allow_anon :index, :show
|
|
54
|
+
require_anon :new, :create
|
|
55
|
+
require_admin :edit, :update, :destroy
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
class SecondController < ActionController::Base
|
|
59
|
+
require_admin true
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
When a user requests an action, the controller will end up taking one of these 10 actions:
|
|
63
|
+
|
|
64
|
+
1. If 'require_admin' is set and no user is logged in, redirect to login page.
|
|
65
|
+
2. If 'require_admin' is set and a non-admin is logged in, redirect to root page with error.
|
|
66
|
+
3. If 'require_admin' is set and an admin is logged in, grant access.
|
|
67
|
+
4. If 'require_anon' is set and no user is logged in, grant access.
|
|
68
|
+
5. If 'require_anon' is set and any user is logged in, redirect to root page with error.
|
|
69
|
+
6. If 'allow_anon' is set for the action, grant access.
|
|
70
|
+
7. If no user is logged in, redirect to login page.
|
|
71
|
+
8. If no groups are assign to the action, grant access.
|
|
72
|
+
9. If the user is a member of at least one group assigned to the action, grant access.
|
|
73
|
+
10. Redirect to root page with error.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
There are ways to override this behavior, and the Incline::UsersController actually does by redefining the #valid_user?
|
|
78
|
+
method. The Incline::UsersController allows the user to review and edit their own details, and it allows system admins
|
|
79
|
+
to add new users. Without overriding this method, users would not be able to view or update their own details, and
|
|
80
|
+
system admins would not be able to add new users since they are obviously already logged in.
|
|
81
|
+
|
|
82
|
+
When #valid_user? or #authorize! are redefined by a controller, the Action Security model will take notice of that fact
|
|
83
|
+
and mark them as non-standard. Non-standard controllers will be treated the same when defining security, but may not
|
|
84
|
+
behave the same as standard controllers. Going back to the Incline::UsersController, it doesn't behave the way the
|
|
85
|
+
standard security model expects because of the exceptions created for a few actions.
|
|
86
|
+
|
|
87
|
+
If you do decide to redefine security for a controller, redefine #valid_user? and leave #authorize! alone unless you
|
|
88
|
+
have a good reason. At the end of your #valid_user? method, you should call super to allow the standard security
|
|
89
|
+
model to handle any non-exception cases. The #valid_user? method should return true or redirect as appropriate and
|
|
90
|
+
return false.
|
|
91
|
+
|
|
92
|
+
def valid_user?
|
|
93
|
+
action = params[:action].to_sym
|
|
94
|
+
|
|
95
|
+
# In order to delete resources, the user must be a member of 'super user' or 'can delete'.
|
|
96
|
+
if action == :destroy && !current_user.has_any_group?('super user', 'can delete')
|
|
97
|
+
redirect_to root_url
|
|
98
|
+
return false
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# Members of the 'super user' group are granted access to all actions of this controller.
|
|
102
|
+
return true if current_user.has_any_group?('super user')
|
|
103
|
+
|
|
104
|
+
# Fall back on standard processing for everything else.
|
|
105
|
+
super
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
So now you've seen how to setup security for your controllers and actions, how do you best access them? With a menu
|
|
111
|
+
of course. Two such files are included in any application that has had the 'incline:install' generator run.
|
|
112
|
+
|
|
113
|
+
[app/views/layouts/incline/_app_menu_anon.html.erb]
|
|
114
|
+
This file defines the menu made available to everyone. It is a standard ERB file and therefore can contain embedded
|
|
115
|
+
Ruby to customize the menu even more. For instance you may only want a link displayed to a resource if
|
|
116
|
+
current_user.anonymous? is true.
|
|
117
|
+
|
|
118
|
+
[app/views/layouts/incline/_app_menu_authenticated.html.erb]
|
|
119
|
+
This file defines the menu made available to users logged into the system. Just like the anonymous file, it is a
|
|
120
|
+
standard ERB file and you can use Ruby to customize the menu more.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
reCAPTCHA support is built into the library. To enable the support, you have to define the "recaptcha_public" and
|
|
125
|
+
"recaptcha_private" values to be your site key and secret key from Google. If these are both defined, the gem will
|
|
126
|
+
enable the reCAPTCHA functionality and force users to complete the challenges. If either of these are blank, the gem
|
|
127
|
+
disables the reCAPTCHA functionality and silently passes the challenges.
|
|
128
|
+
|
|
129
|
+
You can use reCAPTCHA in two ways. The first way is via a validated model attribute and then using the form builder
|
|
130
|
+
to include the necessary code in the form.
|
|
131
|
+
|
|
132
|
+
class MyModel < ActiveRecord::Base
|
|
133
|
+
attr_accessor :recaptcha_field
|
|
134
|
+
validates :recaptcha_field, 'incline/recaptcha' => true
|
|
135
|
+
...
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
<%= form_for @my_model do |f| %>
|
|
139
|
+
...
|
|
140
|
+
<%= f.recaptcha :recaptcha_field %>
|
|
141
|
+
<% end %>
|
|
142
|
+
|
|
143
|
+
Nice and simple.
|
|
144
|
+
|
|
145
|
+
The second way reCAPTCHA can be used is by explicitly including the challenge on a form and then explicitly checking
|
|
146
|
+
the result on submission.
|
|
147
|
+
|
|
148
|
+
<%= form_for @another_model do |f| %>
|
|
149
|
+
...
|
|
150
|
+
<%= Incline::Recaptcha.add %>
|
|
151
|
+
<% end %>
|
|
152
|
+
|
|
153
|
+
def update
|
|
154
|
+
unless Incline::Recaptcha.verify(request)
|
|
155
|
+
@another_model.errors[:base] << 'You must complete the reCAPTCHA challenge.'
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
Still pretty simple.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
Email support is also built into the library. This is of course configuring email for use with SMTP. SMTP allows for
|
|
164
|
+
a more consistent experience across platforms, so I generally find myself adding SMTP configuration to an application.
|
|
165
|
+
Incline handles that configuration for you by reading from a simple to use 'email.yml' file. The default 'email.yml'
|
|
166
|
+
from the 'incline:install' generator includes all of the necessary configuration information and shows how to utilize
|
|
167
|
+
'secrets.yml' to store the login credentials.
|
|
168
|
+
(The 'incline:install' generator also adds a line to '.gitignore' to exclude 'secrets.yml' from the git repo.)
|
|
169
|
+
|
|
170
|
+
For email, generally port 465 is used with the ssl parameter set to true and port 587 is used with start_tls parameter
|
|
171
|
+
set to true. It is not recommended to utilize SMTP without some form of encryption.
|
|
172
|
+
|
|
173
|
+
If for some reason you don't want to use the SMTP configuration support, simply delete the 'email.yml' file from
|
|
174
|
+
your configuration directory.
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
Migrations and seeds from the Incline gem are included into your application automatically. They do not get copied into
|
|
179
|
+
your application and you should not copy them local since they may be overridden in the future. You shouldn't add onto
|
|
180
|
+
Incline models directly unless you are sure about what you are doing. A future Incline upgrade may conflict with fields
|
|
181
|
+
you add on. Instead of adding on, you may want to define a related model.
|
|
182
|
+
|
|
183
|
+
class CreateUserDetails < ActiveRecord::Migration
|
|
184
|
+
def change
|
|
185
|
+
create_table :user_details do |t|
|
|
186
|
+
t.integer :user_id, null: false
|
|
187
|
+
t.string :full_name
|
|
188
|
+
t.string :address1
|
|
189
|
+
t.string :address2
|
|
190
|
+
t.string :city
|
|
191
|
+
t.string :state
|
|
192
|
+
t.string :zip_code
|
|
193
|
+
t.string :phone_number
|
|
194
|
+
end
|
|
195
|
+
add_index :user_details, :user_id, :unique => true
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
class UserDetails < ActiveRecord::Base
|
|
200
|
+
belongs_to :user, class_name: 'Incline::User'
|
|
201
|
+
|
|
202
|
+
::Incline::User.has_one :details, :class_name => 'UserDetail', :foreign_key => 'user_id', :dependent => :destroy
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
== License
|
|
207
|
+
|
|
208
|
+
This gem is released under the MIT license.
|
data/Rakefile
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
begin
|
|
2
|
+
require 'bundler/setup'
|
|
3
|
+
rescue LoadError
|
|
4
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
require 'rdoc/task'
|
|
8
|
+
|
|
9
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
|
10
|
+
rdoc.rdoc_dir = 'rdoc'
|
|
11
|
+
rdoc.title = 'Incline'
|
|
12
|
+
rdoc.options << '--line-numbers'
|
|
13
|
+
rdoc.rdoc_files.include('README.rdoc')
|
|
14
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
|
|
18
|
+
load 'rails/tasks/engine.rake'
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
load 'rails/tasks/statistics.rake'
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
Bundler::GemHelper.install_tasks
|
|
26
|
+
|
|
27
|
+
require 'rake/testtask'
|
|
28
|
+
|
|
29
|
+
Rake::TestTask.new(:test) do |t|
|
|
30
|
+
t.libs << 'lib'
|
|
31
|
+
t.libs << 'test'
|
|
32
|
+
t.pattern = 'test/**/*_test.rb'
|
|
33
|
+
t.verbose = false
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
task default: :test
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg
|
|
3
|
+
version="1.1"
|
|
4
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
5
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
|
6
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
7
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
|
8
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
9
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
10
|
+
width="250.56"
|
|
11
|
+
height="250.56"
|
|
12
|
+
viewBox="0, 0, 250.56, 250.56"
|
|
13
|
+
preserveAspectRatio="none"
|
|
14
|
+
id="svg2">
|
|
15
|
+
<defs
|
|
16
|
+
id="defs_2903A6EC"/>
|
|
17
|
+
<metadata
|
|
18
|
+
id="metadata7">
|
|
19
|
+
<rdf:RDF>
|
|
20
|
+
<cc:Work
|
|
21
|
+
rdf:about="">
|
|
22
|
+
<dc:format>image/svg+xml</dc:format>
|
|
23
|
+
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
|
24
|
+
<dc:title></dc:title>
|
|
25
|
+
</cc:Work>
|
|
26
|
+
</rdf:RDF>
|
|
27
|
+
</metadata>
|
|
28
|
+
<g
|
|
29
|
+
id="layer_Paper"
|
|
30
|
+
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;fill-rule:nonzero;stroke-linecap:square;stroke-linejoin:miter;stroke-width:1;stroke-miterlimit:10">
|
|
31
|
+
<path
|
|
32
|
+
style="fill:#2400FF;stroke:none"
|
|
33
|
+
id="4BCF0CDB"
|
|
34
|
+
d="M159.091597222,18.36 C160.421064815,18.36 161.750532407,18.36 163.08,18.36 C189.72,18.36 216.36,45 216.36,71.64 C216.36,72.12 216.36,72.6 216.36,73.08 C216.36,99.72 189.72,126.36 163.08,126.36 C161.734618056,126.36 160.389236111,126.36 159.043854167,126.36
|
|
35
|
+
C158.901927083,126.36 158.76,126.218072917 158.76,126.076145833 C158.76,90.2812962963 158.76,54.4864467593 158.76,18.6915972222 C158.76,18.5257986111 158.925798611,18.36 159.091597222,18.36 z"/>
|
|
36
|
+
<path
|
|
37
|
+
style="fill:#2400FF;stroke:none"
|
|
38
|
+
id="FD5252EB"
|
|
39
|
+
d="M159.091597222,119.16 C162.821064815,119.16 166.550532407,119.16 170.28,119.16 C198.72,119.16 227.16,147.6 227.16,176.04 C227.16,176.52 227.16,177 227.16,177.48 C227.16,205.92 198.72,234.36 170.28,234.36
|
|
40
|
+
C166.534618056,234.36 162.789236111,234.36 159.043854167,234.36 C158.901927083,234.36 158.76,234.218072917 158.76,234.076145833 C158.76,195.881296296 158.76,157.686446759 158.76,119.491597222 C158.76,119.325798611 158.925798611,119.16 159.091597222,119.16
|
|
41
|
+
z"/>
|
|
42
|
+
<path
|
|
43
|
+
style="fill:none;stroke:#2400FF;stroke-width:3.6"
|
|
44
|
+
id="7E706A0C"
|
|
45
|
+
d="M19.8,1.8 C90.12,1.8 160.44,1.8 230.76,1.8 C239.76,1.8 248.76,10.8 248.76,19.8 C248.76,90.12 248.76,160.44 248.76,230.76 C248.76,239.76 239.76,248.76 230.76,248.76 C160.44,248.76 90.12,248.76 19.8,248.76
|
|
46
|
+
C10.8,248.76 1.8,239.76 1.8,230.76 C1.8,160.44 1.8,90.12 1.8,19.8 C1.8,10.8 10.8,1.8 19.8,1.8 z"/>
|
|
47
|
+
<rect
|
|
48
|
+
style="fill:#003CFF;stroke:none"
|
|
49
|
+
id="BA7610AC"
|
|
50
|
+
x="25.56"
|
|
51
|
+
y="18.36"
|
|
52
|
+
width="3.6"
|
|
53
|
+
height="216"/>
|
|
54
|
+
<rect
|
|
55
|
+
style="fill:#003CFF;stroke:none"
|
|
56
|
+
id="43594FCC"
|
|
57
|
+
x="31.32"
|
|
58
|
+
y="18.36"
|
|
59
|
+
width="2.16"
|
|
60
|
+
height="216"/>
|
|
61
|
+
<rect
|
|
62
|
+
style="fill:#003CFF;stroke:none"
|
|
63
|
+
id="111A00DC"
|
|
64
|
+
x="39.96"
|
|
65
|
+
y="18.36"
|
|
66
|
+
width="2.16"
|
|
67
|
+
height="216"/>
|
|
68
|
+
<rect
|
|
69
|
+
style="fill:#003CFF;stroke:none"
|
|
70
|
+
id="2BE5B0DC"
|
|
71
|
+
x="45"
|
|
72
|
+
y="18.36"
|
|
73
|
+
width="2.16"
|
|
74
|
+
height="216"/>
|
|
75
|
+
<rect
|
|
76
|
+
style="fill:#003CFF;stroke:none"
|
|
77
|
+
id="242361DC"
|
|
78
|
+
x="52.92"
|
|
79
|
+
y="18.36"
|
|
80
|
+
width="3.6"
|
|
81
|
+
height="216"/>
|
|
82
|
+
<rect
|
|
83
|
+
style="fill:#003CFF;stroke:none"
|
|
84
|
+
id="0B9402DC"
|
|
85
|
+
x="57.96"
|
|
86
|
+
y="18.36"
|
|
87
|
+
width="2.16"
|
|
88
|
+
height="216"/>
|
|
89
|
+
<rect
|
|
90
|
+
style="fill:#003CFF;stroke:none"
|
|
91
|
+
id="E51B82DC"
|
|
92
|
+
x="65.16"
|
|
93
|
+
y="18.36"
|
|
94
|
+
width="3.6"
|
|
95
|
+
height="216"/>
|
|
96
|
+
<rect
|
|
97
|
+
style="fill:#003CFF;stroke:none"
|
|
98
|
+
id="DE6733DC"
|
|
99
|
+
x="70.56"
|
|
100
|
+
y="18.36"
|
|
101
|
+
width="5.76"
|
|
102
|
+
height="216"/>
|
|
103
|
+
<rect
|
|
104
|
+
style="fill:#003CFF;stroke:none"
|
|
105
|
+
id="4BB8A3DC"
|
|
106
|
+
x="78.12"
|
|
107
|
+
y="18.36"
|
|
108
|
+
width="2.16"
|
|
109
|
+
height="216"/>
|
|
110
|
+
<rect
|
|
111
|
+
style="fill:#003CFF;stroke:none"
|
|
112
|
+
id="301134DC"
|
|
113
|
+
x="85.32"
|
|
114
|
+
y="18.36"
|
|
115
|
+
width="3.6"
|
|
116
|
+
height="216"/>
|
|
117
|
+
<rect
|
|
118
|
+
style="fill:#003CFF;stroke:none"
|
|
119
|
+
id="5492B4DC"
|
|
120
|
+
x="90.36"
|
|
121
|
+
y="18.36"
|
|
122
|
+
width="5.76"
|
|
123
|
+
height="216"/>
|
|
124
|
+
<rect
|
|
125
|
+
style="fill:#003CFF;stroke:none"
|
|
126
|
+
id="E72525DC"
|
|
127
|
+
x="101.16"
|
|
128
|
+
y="18.36"
|
|
129
|
+
width="2.16"
|
|
130
|
+
height="216"/>
|
|
131
|
+
<rect
|
|
132
|
+
style="fill:#003CFF;stroke:none"
|
|
133
|
+
id="390495DC"
|
|
134
|
+
x="104.76"
|
|
135
|
+
y="18.36"
|
|
136
|
+
width="3.6"
|
|
137
|
+
height="216"/>
|
|
138
|
+
<rect
|
|
139
|
+
style="fill:#003CFF;stroke:none"
|
|
140
|
+
id="65A516DC"
|
|
141
|
+
x="110.16"
|
|
142
|
+
y="18.36"
|
|
143
|
+
width="3.6"
|
|
144
|
+
height="216"/>
|
|
145
|
+
<rect
|
|
146
|
+
style="fill:#003CFF;stroke:none"
|
|
147
|
+
id="ACA986DC"
|
|
148
|
+
x="115.56"
|
|
149
|
+
y="18.36"
|
|
150
|
+
width="7.2"
|
|
151
|
+
height="216"/>
|
|
152
|
+
<rect
|
|
153
|
+
style="fill:#003CFF;stroke:none"
|
|
154
|
+
id="D941F6DC"
|
|
155
|
+
x="124.92"
|
|
156
|
+
y="18.36"
|
|
157
|
+
width="3.6"
|
|
158
|
+
height="216"/>
|
|
159
|
+
<rect
|
|
160
|
+
style="fill:#003CFF;stroke:none"
|
|
161
|
+
id="A1C6A7DC"
|
|
162
|
+
x="133.56"
|
|
163
|
+
y="18.36"
|
|
164
|
+
width="5.76"
|
|
165
|
+
height="216"/>
|
|
166
|
+
<rect
|
|
167
|
+
style="fill:#003CFF;stroke:none"
|
|
168
|
+
id="E57708DC"
|
|
169
|
+
x="140.76"
|
|
170
|
+
y="18.36"
|
|
171
|
+
width="2.16"
|
|
172
|
+
height="216"/>
|
|
173
|
+
<rect
|
|
174
|
+
style="fill:#003CFF;stroke:none"
|
|
175
|
+
id="662388DC"
|
|
176
|
+
x="144.36"
|
|
177
|
+
y="18.36"
|
|
178
|
+
width="3.6"
|
|
179
|
+
height="216"/>
|
|
180
|
+
</g>
|
|
181
|
+
</svg>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
|
|
2
|
+
function activateClassedItems(base) {
|
|
3
|
+
if (base === undefined) base = $(document);
|
|
4
|
+
base.find('div.date').datepicker({ format: "mm/dd/yyyy", todayBtn: "linked", todayHighlight: true, clearBtn: true });
|
|
5
|
+
base.find('input.float').regexMask('float');
|
|
6
|
+
base.find('input.integer').regexMask('integer');
|
|
7
|
+
base.find('.double-scroll').doubleScroll({ onlyIfScroll: true, resetOnWindowResize: true });
|
|
8
|
+
base.find('select.select2').select2();
|
|
9
|
+
base.find('a.inline_action').inlineAction();
|
|
10
|
+
base.find('a.inline_form').inlineForm();
|
|
11
|
+
}
|