foreman_discovery 1.0.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +619 -0
- data/README.md +128 -0
- data/Rakefile +111 -0
- data/app/controllers/discovers_controller.rb +151 -0
- data/app/helpers/discovers_helper.rb +37 -0
- data/app/models/host/discovered.rb +97 -0
- data/app/models/host/managed_extensions.rb +32 -0
- data/app/models/setting/discovered.rb +28 -0
- data/app/overrides/add_build_flag.rb +4 -0
- data/app/views/discovers/_discovers_list.html.erb +54 -0
- data/app/views/discovers/_selected_hosts.html.erb +29 -0
- data/app/views/discovers/index.html.erb +2 -0
- data/app/views/discovers/multiple_destroy.html.erb +5 -0
- data/app/views/discovers/select_multiple_location.html.erb +10 -0
- data/app/views/discovers/select_multiple_organization.html.erb +10 -0
- data/app/views/discovers/show.html.erb +16 -0
- data/config/environment.rb +0 -0
- data/config/initializers/discovery_setup.rb +20 -0
- data/config/routes.rb +26 -0
- data/lib/discovery_home_helper_patch.rb +21 -0
- data/lib/foreman_discovery.rb +4 -0
- data/lib/foreman_discovery/engine.rb +32 -0
- data/lib/foreman_discovery/facts.rb +12 -0
- data/lib/foreman_discovery/version.rb +3 -0
- data/lib/tasks.rake +72 -0
- data/test/foreman_app/CHANGELOG +3969 -0
- data/test/foreman_app/Contributors +94 -0
- data/test/foreman_app/Gemfile +33 -0
- data/test/foreman_app/README.md +17 -0
- data/test/foreman_app/Rakefile +7 -0
- data/test/foreman_app/VERSION +1 -0
- data/test/foreman_app/app/assets/images/Archlinux.png +0 -0
- data/test/foreman_app/app/assets/images/Centos.png +0 -0
- data/test/foreman_app/app/assets/images/Darwin.png +0 -0
- data/test/foreman_app/app/assets/images/Debian.png +0 -0
- data/test/foreman_app/app/assets/images/Fedora.png +0 -0
- data/test/foreman_app/app/assets/images/Redhat.png +0 -0
- data/test/foreman_app/app/assets/images/SLC.png +0 -0
- data/test/foreman_app/app/assets/images/Scientific.png +0 -0
- data/test/foreman_app/app/assets/images/Solaris.png +0 -0
- data/test/foreman_app/app/assets/images/Suse.png +0 -0
- data/test/foreman_app/app/assets/images/Ubuntu.png +0 -0
- data/test/foreman_app/app/assets/images/Windows.png +0 -0
- data/test/foreman_app/app/assets/images/bullet_toggle_plus.png +0 -0
- data/test/foreman_app/app/assets/images/edit-hover.png +0 -0
- data/test/foreman_app/app/assets/images/edit.png +0 -0
- data/test/foreman_app/app/assets/images/false.png +0 -0
- data/test/foreman_app/app/assets/images/foreman.png +0 -0
- data/test/foreman_app/app/assets/images/foreman_background.png +0 -0
- data/test/foreman_app/app/assets/images/foreman_large.png +0 -0
- data/test/foreman_app/app/assets/images/foreman_white.png +0 -0
- data/test/foreman_app/app/assets/images/pie_chart_icon.png +0 -0
- data/test/foreman_app/app/assets/images/pie_overlay.png +0 -0
- data/test/foreman_app/app/assets/images/spinner.gif +0 -0
- data/test/foreman_app/app/assets/images/switch.png +0 -0
- data/test/foreman_app/app/assets/images/toggle_check.png +0 -0
- data/test/foreman_app/app/assets/images/true.png +0 -0
- data/test/foreman_app/app/assets/images/user.jpg +0 -0
- data/test/foreman_app/app/assets/javascripts/application.js +348 -0
- data/test/foreman_app/app/assets/javascripts/charts.js +317 -0
- data/test/foreman_app/app/assets/javascripts/compute_resource.js +120 -0
- data/test/foreman_app/app/assets/javascripts/config_template.js +153 -0
- data/test/foreman_app/app/assets/javascripts/host_checkbox.js +151 -0
- data/test/foreman_app/app/assets/javascripts/host_edit.js +591 -0
- data/test/foreman_app/app/assets/javascripts/lookup_keys.js +184 -0
- data/test/foreman_app/app/assets/javascripts/nfs_visibility.js +33 -0
- data/test/foreman_app/app/assets/javascripts/noVNC.js +47 -0
- data/test/foreman_app/app/assets/javascripts/reports.js +27 -0
- data/test/foreman_app/app/assets/javascripts/spice.js +53 -0
- data/test/foreman_app/app/assets/javascripts/taxonomy.js +18 -0
- data/test/foreman_app/app/assets/javascripts/topbar.js +39 -0
- data/test/foreman_app/app/assets/javascripts/trends.js +10 -0
- data/test/foreman_app/app/assets/stylesheets/application.scss +350 -0
- data/test/foreman_app/app/assets/stylesheets/bootstrap_and_overrides.scss +130 -0
- data/test/foreman_app/app/assets/stylesheets/charts.scss +138 -0
- data/test/foreman_app/app/assets/stylesheets/dashboard.scss +42 -0
- data/test/foreman_app/app/assets/stylesheets/login.scss +77 -0
- data/test/foreman_app/app/assets/stylesheets/topbar.scss +83 -0
- data/test/foreman_app/app/assets/stylesheets/wizard.scss +60 -0
- data/test/foreman_app/app/controllers/api/base_controller.rb +162 -0
- data/test/foreman_app/app/controllers/api/v1/architectures_controller.rb +53 -0
- data/test/foreman_app/app/controllers/api/v1/audits_controller.rb +26 -0
- data/test/foreman_app/app/controllers/api/v1/auth_source_ldaps_controller.rb +72 -0
- data/test/foreman_app/app/controllers/api/v1/base_controller.rb +12 -0
- data/test/foreman_app/app/controllers/api/v1/bookmarks_controller.rb +59 -0
- data/test/foreman_app/app/controllers/api/v1/common_parameters_controller.rb +53 -0
- data/test/foreman_app/app/controllers/api/v1/compute_resources_controller.rb +71 -0
- data/test/foreman_app/app/controllers/api/v1/config_templates_controller.rb +102 -0
- data/test/foreman_app/app/controllers/api/v1/dashboard_controller.rb +20 -0
- data/test/foreman_app/app/controllers/api/v1/domains_controller.rb +74 -0
- data/test/foreman_app/app/controllers/api/v1/environments_controller.rb +50 -0
- data/test/foreman_app/app/controllers/api/v1/fact_values_controller.rb +23 -0
- data/test/foreman_app/app/controllers/api/v1/home_controller.rb +25 -0
- data/test/foreman_app/app/controllers/api/v1/hostgroups_controller.rb +70 -0
- data/test/foreman_app/app/controllers/api/v1/hosts_controller.rb +113 -0
- data/test/foreman_app/app/controllers/api/v1/images_controller.rb +73 -0
- data/test/foreman_app/app/controllers/api/v1/lookup_keys_controller.rb +63 -0
- data/test/foreman_app/app/controllers/api/v1/media_controller.rb +75 -0
- data/test/foreman_app/app/controllers/api/v1/models_controller.rb +56 -0
- data/test/foreman_app/app/controllers/api/v1/operatingsystems_controller.rb +79 -0
- data/test/foreman_app/app/controllers/api/v1/ptables_controller.rb +55 -0
- data/test/foreman_app/app/controllers/api/v1/puppetclasses_controller.rb +56 -0
- data/test/foreman_app/app/controllers/api/v1/reports_controller.rb +43 -0
- data/test/foreman_app/app/controllers/api/v1/roles_controller.rb +49 -0
- data/test/foreman_app/app/controllers/api/v1/settings_controller.rb +35 -0
- data/test/foreman_app/app/controllers/api/v1/smart_proxies_controller.rb +69 -0
- data/test/foreman_app/app/controllers/api/v1/subnets_controller.rb +77 -0
- data/test/foreman_app/app/controllers/api/v1/template_kinds_controller.rb +14 -0
- data/test/foreman_app/app/controllers/api/v1/usergroups_controller.rb +51 -0
- data/test/foreman_app/app/controllers/api/v1/users_controller.rb +102 -0
- data/test/foreman_app/app/controllers/api/v2/base_controller.rb +12 -0
- data/test/foreman_app/app/controllers/api/v2/compute_resources_controller.rb +20 -0
- data/test/foreman_app/app/controllers/api/v2/config_templates_controller.rb +26 -0
- data/test/foreman_app/app/controllers/api/v2/domains_controller.rb +20 -0
- data/test/foreman_app/app/controllers/api/v2/environments_controller.rb +20 -0
- data/test/foreman_app/app/controllers/api/v2/host_classes_controller.rb +49 -0
- data/test/foreman_app/app/controllers/api/v2/hostgroup_classes_controller.rb +44 -0
- data/test/foreman_app/app/controllers/api/v2/hostgroups_controller.rb +20 -0
- data/test/foreman_app/app/controllers/api/v2/locations_controller.rb +9 -0
- data/test/foreman_app/app/controllers/api/v2/media_controller.rb +20 -0
- data/test/foreman_app/app/controllers/api/v2/organizations_controller.rb +9 -0
- data/test/foreman_app/app/controllers/api/v2/parameters_controller.rb +131 -0
- data/test/foreman_app/app/controllers/api/v2/puppetclasses_controller.rb +60 -0
- data/test/foreman_app/app/controllers/api/v2/smart_proxies_controller.rb +20 -0
- data/test/foreman_app/app/controllers/api/v2/subnets_controller.rb +20 -0
- data/test/foreman_app/app/controllers/api/v2/template_combinations_controller.rb +46 -0
- data/test/foreman_app/app/controllers/api/v2/users_controller.rb +20 -0
- data/test/foreman_app/app/controllers/application_controller.rb +349 -0
- data/test/foreman_app/app/controllers/architectures_controller.rb +51 -0
- data/test/foreman_app/app/controllers/audits_controller.rb +19 -0
- data/test/foreman_app/app/controllers/auth_source_ldaps_controller.rb +49 -0
- data/test/foreman_app/app/controllers/bookmarks_controller.rb +55 -0
- data/test/foreman_app/app/controllers/common_parameters_controller.rb +46 -0
- data/test/foreman_app/app/controllers/compute_resources_controller.rb +103 -0
- data/test/foreman_app/app/controllers/compute_resources_vms_controller.rb +78 -0
- data/test/foreman_app/app/controllers/concerns/api/taxonomy_scope.rb +15 -0
- data/test/foreman_app/app/controllers/concerns/api/v2/taxonomies_controller.rb +99 -0
- data/test/foreman_app/app/controllers/config_templates_controller.rb +105 -0
- data/test/foreman_app/app/controllers/dashboard_controller.rb +21 -0
- data/test/foreman_app/app/controllers/domains_controller.rb +55 -0
- data/test/foreman_app/app/controllers/environments_controller.rb +59 -0
- data/test/foreman_app/app/controllers/fact_values_controller.rb +60 -0
- data/test/foreman_app/app/controllers/facts_controller.rb +25 -0
- data/test/foreman_app/app/controllers/home_controller.rb +37 -0
- data/test/foreman_app/app/controllers/hostgroups_controller.rb +115 -0
- data/test/foreman_app/app/controllers/hosts_controller.rb +570 -0
- data/test/foreman_app/app/controllers/images_controller.rb +57 -0
- data/test/foreman_app/app/controllers/locations_controller.rb +4 -0
- data/test/foreman_app/app/controllers/lookup_keys_controller.rb +60 -0
- data/test/foreman_app/app/controllers/lookup_values_controller.rb +58 -0
- data/test/foreman_app/app/controllers/media_controller.rb +56 -0
- data/test/foreman_app/app/controllers/models_controller.rb +49 -0
- data/test/foreman_app/app/controllers/notices_controller.rb +9 -0
- data/test/foreman_app/app/controllers/operatingsystems_controller.rb +77 -0
- data/test/foreman_app/app/controllers/organizations_controller.rb +4 -0
- data/test/foreman_app/app/controllers/ptables_controller.rb +56 -0
- data/test/foreman_app/app/controllers/puppetclasses_controller.rb +85 -0
- data/test/foreman_app/app/controllers/reports_controller.rb +60 -0
- data/test/foreman_app/app/controllers/roles_controller.rb +78 -0
- data/test/foreman_app/app/controllers/settings_controller.rb +21 -0
- data/test/foreman_app/app/controllers/smart_proxies/autosign_controller.rb +47 -0
- data/test/foreman_app/app/controllers/smart_proxies/puppetca_controller.rb +59 -0
- data/test/foreman_app/app/controllers/smart_proxies_controller.rb +43 -0
- data/test/foreman_app/app/controllers/statistics_controller.rb +27 -0
- data/test/foreman_app/app/controllers/subnets_controller.rb +88 -0
- data/test/foreman_app/app/controllers/tasks_controller.rb +16 -0
- data/test/foreman_app/app/controllers/topbar_sweeper.rb +24 -0
- data/test/foreman_app/app/controllers/trends_controller.rb +56 -0
- data/test/foreman_app/app/controllers/unattended_controller.rb +257 -0
- data/test/foreman_app/app/controllers/usergroups_controller.rb +44 -0
- data/test/foreman_app/app/controllers/users_controller.rb +150 -0
- data/test/foreman_app/app/helpers/application_helper.rb +317 -0
- data/test/foreman_app/app/helpers/architecture_helper.rb +2 -0
- data/test/foreman_app/app/helpers/architectures_helper.rb +2 -0
- data/test/foreman_app/app/helpers/audits_helper.rb +138 -0
- data/test/foreman_app/app/helpers/auth_source_ldaps_helper.rb +8 -0
- data/test/foreman_app/app/helpers/auth_sources_helper.rb +2 -0
- data/test/foreman_app/app/helpers/bookmarks_helper.rb +2 -0
- data/test/foreman_app/app/helpers/common_parameters_helper.rb +22 -0
- data/test/foreman_app/app/helpers/compute_resources_helper.rb +28 -0
- data/test/foreman_app/app/helpers/compute_resources_vms_helper.rb +45 -0
- data/test/foreman_app/app/helpers/config_templates_helper.rb +10 -0
- data/test/foreman_app/app/helpers/dashboard_helper.rb +35 -0
- data/test/foreman_app/app/helpers/domains_helper.rb +3 -0
- data/test/foreman_app/app/helpers/environments_helper.rb +3 -0
- data/test/foreman_app/app/helpers/fact_values_helper.rb +8 -0
- data/test/foreman_app/app/helpers/home_helper.rb +116 -0
- data/test/foreman_app/app/helpers/hostgroups_helper.rb +14 -0
- data/test/foreman_app/app/helpers/hosts_and_hostgroups_helper.rb +99 -0
- data/test/foreman_app/app/helpers/hosts_helper.rb +267 -0
- data/test/foreman_app/app/helpers/images_helper.rb +11 -0
- data/test/foreman_app/app/helpers/layout_helper.rb +214 -0
- data/test/foreman_app/app/helpers/lookup_keys_helper.rb +108 -0
- data/test/foreman_app/app/helpers/media_helper.rb +2 -0
- data/test/foreman_app/app/helpers/medium_helper.rb +2 -0
- data/test/foreman_app/app/helpers/model_helper.rb +2 -0
- data/test/foreman_app/app/helpers/models_helper.rb +2 -0
- data/test/foreman_app/app/helpers/notices_helper.rb +3 -0
- data/test/foreman_app/app/helpers/operatingsystems_helper.rb +40 -0
- data/test/foreman_app/app/helpers/organization_helper.rb +2 -0
- data/test/foreman_app/app/helpers/ptables_helper.rb +2 -0
- data/test/foreman_app/app/helpers/puppetclasses_and_environments_helper.rb +39 -0
- data/test/foreman_app/app/helpers/puppetclasses_helper.rb +16 -0
- data/test/foreman_app/app/helpers/reports_helper.rb +48 -0
- data/test/foreman_app/app/helpers/settings_helper.rb +27 -0
- data/test/foreman_app/app/helpers/smart_proxies/autosign_helper.rb +6 -0
- data/test/foreman_app/app/helpers/smart_proxies/puppetca_helper.rb +20 -0
- data/test/foreman_app/app/helpers/smart_proxies_helper.rb +2 -0
- data/test/foreman_app/app/helpers/statistics_helper.rb +16 -0
- data/test/foreman_app/app/helpers/subnets_helper.rb +9 -0
- data/test/foreman_app/app/helpers/tasks_helper.rb +22 -0
- data/test/foreman_app/app/helpers/taxonomy_helper.rb +107 -0
- data/test/foreman_app/app/helpers/trends_helper.rb +46 -0
- data/test/foreman_app/app/helpers/unattended_helper.rb +16 -0
- data/test/foreman_app/app/helpers/usergroups_helper.rb +2 -0
- data/test/foreman_app/app/helpers/users_helper.rb +21 -0
- data/test/foreman_app/app/models/architecture.rb +23 -0
- data/test/foreman_app/app/models/archlinux.rb +27 -0
- data/test/foreman_app/app/models/auth_source.rb +70 -0
- data/test/foreman_app/app/models/auth_source_internal.rb +17 -0
- data/test/foreman_app/app/models/auth_source_ldap.rb +147 -0
- data/test/foreman_app/app/models/authorization.rb +51 -0
- data/test/foreman_app/app/models/bookmark.rb +30 -0
- data/test/foreman_app/app/models/classification.rb +126 -0
- data/test/foreman_app/app/models/common_parameter.rb +13 -0
- data/test/foreman_app/app/models/compute_resource.rb +232 -0
- data/test/foreman_app/app/models/config_template.rb +172 -0
- data/test/foreman_app/app/models/dashboard.rb +53 -0
- data/test/foreman_app/app/models/debian.rb +47 -0
- data/test/foreman_app/app/models/domain.rb +90 -0
- data/test/foreman_app/app/models/domain_parameter.rb +22 -0
- data/test/foreman_app/app/models/environment.rb +57 -0
- data/test/foreman_app/app/models/environment_class.rb +25 -0
- data/test/foreman_app/app/models/fact_name.rb +17 -0
- data/test/foreman_app/app/models/fact_trend.rb +57 -0
- data/test/foreman_app/app/models/fact_value.rb +83 -0
- data/test/foreman_app/app/models/facts_importer.rb +121 -0
- data/test/foreman_app/app/models/feature.rb +4 -0
- data/test/foreman_app/app/models/foreman_trend.rb +38 -0
- data/test/foreman_app/app/models/group_parameter.rb +22 -0
- data/test/foreman_app/app/models/host.rb +30 -0
- data/test/foreman_app/app/models/host/base.rb +141 -0
- data/test/foreman_app/app/models/host/hostmix.rb +13 -0
- data/test/foreman_app/app/models/host/managed.rb +854 -0
- data/test/foreman_app/app/models/host_class.rb +13 -0
- data/test/foreman_app/app/models/host_common.rb +95 -0
- data/test/foreman_app/app/models/host_mailer.rb +77 -0
- data/test/foreman_app/app/models/host_observer.rb +19 -0
- data/test/foreman_app/app/models/host_parameter.rb +20 -0
- data/test/foreman_app/app/models/host_template_helpers.rb +43 -0
- data/test/foreman_app/app/models/hostext/search.rb +128 -0
- data/test/foreman_app/app/models/hostgroup.rb +159 -0
- data/test/foreman_app/app/models/hostgroup_class.rb +15 -0
- data/test/foreman_app/app/models/image.rb +14 -0
- data/test/foreman_app/app/models/key_pair.rb +5 -0
- data/test/foreman_app/app/models/location.rb +25 -0
- data/test/foreman_app/app/models/log.rb +25 -0
- data/test/foreman_app/app/models/lookup_key.rb +261 -0
- data/test/foreman_app/app/models/lookup_value.rb +61 -0
- data/test/foreman_app/app/models/medium.rb +58 -0
- data/test/foreman_app/app/models/message.rb +19 -0
- data/test/foreman_app/app/models/model.rb +14 -0
- data/test/foreman_app/app/models/nic.rb +61 -0
- data/test/foreman_app/app/models/nic/bmc.rb +22 -0
- data/test/foreman_app/app/models/nic/bootable.rb +31 -0
- data/test/foreman_app/app/models/nic/interface.rb +23 -0
- data/test/foreman_app/app/models/nic/managed.rb +57 -0
- data/test/foreman_app/app/models/notice.rb +36 -0
- data/test/foreman_app/app/models/operatingsystem.rb +196 -0
- data/test/foreman_app/app/models/orchestration.rb +184 -0
- data/test/foreman_app/app/models/orchestration/compute.rb +157 -0
- data/test/foreman_app/app/models/orchestration/dhcp.rb +154 -0
- data/test/foreman_app/app/models/orchestration/dns.rb +130 -0
- data/test/foreman_app/app/models/orchestration/puppetca.rb +79 -0
- data/test/foreman_app/app/models/orchestration/ssh_provision.rb +115 -0
- data/test/foreman_app/app/models/orchestration/tftp.rb +133 -0
- data/test/foreman_app/app/models/organization.rb +24 -0
- data/test/foreman_app/app/models/os_default_template.rb +11 -0
- data/test/foreman_app/app/models/os_parameter.rb +16 -0
- data/test/foreman_app/app/models/parameter.rb +34 -0
- data/test/foreman_app/app/models/ptable.rb +25 -0
- data/test/foreman_app/app/models/puppet_class_importer.rb +269 -0
- data/test/foreman_app/app/models/puppetclass.rb +172 -0
- data/test/foreman_app/app/models/redhat.rb +61 -0
- data/test/foreman_app/app/models/report.rb +356 -0
- data/test/foreman_app/app/models/report_common.rb +52 -0
- data/test/foreman_app/app/models/role.rb +156 -0
- data/test/foreman_app/app/models/setting.rb +174 -0
- data/test/foreman_app/app/models/setting/auth.rb +29 -0
- data/test/foreman_app/app/models/setting/general.rb +27 -0
- data/test/foreman_app/app/models/setting/provisioning.rb +28 -0
- data/test/foreman_app/app/models/setting/puppet.rb +36 -0
- data/test/foreman_app/app/models/smart_proxies/puppet_ca.rb +66 -0
- data/test/foreman_app/app/models/smart_proxy.rb +96 -0
- data/test/foreman_app/app/models/solaris.rb +114 -0
- data/test/foreman_app/app/models/source.rb +18 -0
- data/test/foreman_app/app/models/subnet.rb +146 -0
- data/test/foreman_app/app/models/subnet_domain.rb +12 -0
- data/test/foreman_app/app/models/suse.rb +22 -0
- data/test/foreman_app/app/models/tax_host.rb +181 -0
- data/test/foreman_app/app/models/taxable_taxonomy.rb +14 -0
- data/test/foreman_app/app/models/taxonomix.rb +47 -0
- data/test/foreman_app/app/models/taxonomy.rb +135 -0
- data/test/foreman_app/app/models/template_combination.rb +12 -0
- data/test/foreman_app/app/models/template_kind.rb +6 -0
- data/test/foreman_app/app/models/token.rb +23 -0
- data/test/foreman_app/app/models/trend.rb +22 -0
- data/test/foreman_app/app/models/trend_counter.rb +7 -0
- data/test/foreman_app/app/models/trend_importer.rb +50 -0
- data/test/foreman_app/app/models/user.rb +251 -0
- data/test/foreman_app/app/models/user_fact.rb +26 -0
- data/test/foreman_app/app/models/user_hostgroup.rb +10 -0
- data/test/foreman_app/app/models/user_role.rb +32 -0
- data/test/foreman_app/app/models/usergroup.rb +61 -0
- data/test/foreman_app/app/models/usergroup_member.rb +5 -0
- data/test/foreman_app/app/models/windows.rb +20 -0
- data/test/foreman_app/app/views/api/v1/architectures/create.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/architectures/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/architectures/show.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/audits/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/audits/show.json.rabl +5 -0
- data/test/foreman_app/app/views/api/v1/auth_source_ldaps/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/auth_source_ldaps/show.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/bookmarks/create.json.rabl +2 -0
- data/test/foreman_app/app/views/api/v1/bookmarks/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/bookmarks/show.json.rabl +2 -0
- data/test/foreman_app/app/views/api/v1/bookmarks/update.json.rabl +8 -0
- data/test/foreman_app/app/views/api/v1/common_parameters/create.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/common_parameters/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/common_parameters/show.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/compute_resources/create.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/compute_resources/ec2.json.rabl +1 -0
- data/test/foreman_app/app/views/api/v1/compute_resources/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/compute_resources/libvirt.json.rabl +0 -0
- data/test/foreman_app/app/views/api/v1/compute_resources/openstack.json.rabl +1 -0
- data/test/foreman_app/app/views/api/v1/compute_resources/ovirt.json.rabl +1 -0
- data/test/foreman_app/app/views/api/v1/compute_resources/rackspace.json.rabl +1 -0
- data/test/foreman_app/app/views/api/v1/compute_resources/show.json.rabl +8 -0
- data/test/foreman_app/app/views/api/v1/compute_resources/vmware.json.rabl +1 -0
- data/test/foreman_app/app/views/api/v1/config_templates/create.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/config_templates/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/config_templates/show.json.rabl +11 -0
- data/test/foreman_app/app/views/api/v1/domains/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/domains/show.json.rabl +2 -0
- data/test/foreman_app/app/views/api/v1/environments/create.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/environments/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/environments/show.json.rabl +5 -0
- data/test/foreman_app/app/views/api/v1/errors/access_denied.json.rabl +4 -0
- data/test/foreman_app/app/views/api/v1/errors/not_found.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/errors/param_error.json.rabl +7 -0
- data/test/foreman_app/app/views/api/v1/errors/route_error.json.rabl +4 -0
- data/test/foreman_app/app/views/api/v1/errors/standard_error.json.rabl +5 -0
- data/test/foreman_app/app/views/api/v1/errors/unauthorized.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/errors/unprocessable_entity.json.rabl +6 -0
- data/test/foreman_app/app/views/api/v1/home/index.json.rabl +24 -0
- data/test/foreman_app/app/views/api/v1/home/status.json.rabl +6 -0
- data/test/foreman_app/app/views/api/v1/hostgroups/create.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/hostgroups/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/hostgroups/show.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/hosts/create.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/hosts/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/hosts/show.json.rabl +12 -0
- data/test/foreman_app/app/views/api/v1/images/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/images/show.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/lookup_keys/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/lookup_keys/show.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/media/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/media/show.json.rabl +9 -0
- data/test/foreman_app/app/views/api/v1/models/index.rabl +4 -0
- data/test/foreman_app/app/views/api/v1/models/show.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/operatingsystems/create.json.rabl +4 -0
- data/test/foreman_app/app/views/api/v1/operatingsystems/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/operatingsystems/show.json.rabl +22 -0
- data/test/foreman_app/app/views/api/v1/operatingsystems/update.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/ptables/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/ptables/show.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/reports/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/reports/show.json.rabl +16 -0
- data/test/foreman_app/app/views/api/v1/roles/create.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/roles/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/roles/show.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/settings/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/settings/show.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/smart_proxies/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/smart_proxies/show.json.rabl +9 -0
- data/test/foreman_app/app/views/api/v1/subnets/create.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/subnets/index.json.rabl +5 -0
- data/test/foreman_app/app/views/api/v1/subnets/show.json.rabl +17 -0
- data/test/foreman_app/app/views/api/v1/subnets/update.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/template_kinds/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/template_kinds/show.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/usergroups/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/usergroups/show.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/users/create.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v1/users/index.json.rabl +5 -0
- data/test/foreman_app/app/views/api/v1/users/show.json.rabl +13 -0
- data/test/foreman_app/app/views/api/v2/config_templates/create.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v2/config_templates/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v2/config_templates/show.json.rabl +33 -0
- data/test/foreman_app/app/views/api/v2/errors/access_denied.json.rabl +4 -0
- data/test/foreman_app/app/views/api/v2/errors/not_found.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v2/errors/param_error.json.rabl +7 -0
- data/test/foreman_app/app/views/api/v2/errors/route_error.json.rabl +4 -0
- data/test/foreman_app/app/views/api/v2/errors/standard_error.json.rabl +5 -0
- data/test/foreman_app/app/views/api/v2/errors/unauthorized.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v2/errors/unprocessable_entity.json.rabl +6 -0
- data/test/foreman_app/app/views/api/v2/parameters/create.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v2/parameters/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v2/parameters/show.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v2/parameters/update.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v2/puppetclasses/show.json.rabl +7 -0
- data/test/foreman_app/app/views/api/v2/taxonomies/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v2/taxonomies/show.json.rabl +7 -0
- data/test/foreman_app/app/views/api/v2/taxonomies/update.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v2/template_combinations/create.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v2/template_combinations/index.json.rabl +3 -0
- data/test/foreman_app/app/views/api/v2/template_combinations/show.json.rabl +3 -0
- data/test/foreman_app/app/views/architectures/_form.html.erb +6 -0
- data/test/foreman_app/app/views/architectures/edit.html.erb +3 -0
- data/test/foreman_app/app/views/architectures/index.html.erb +21 -0
- data/test/foreman_app/app/views/architectures/new.html.erb +3 -0
- data/test/foreman_app/app/views/architectures/welcome.html.erb +14 -0
- data/test/foreman_app/app/views/audits/_list.erb +24 -0
- data/test/foreman_app/app/views/audits/index.html.erb +6 -0
- data/test/foreman_app/app/views/audits/show.html.erb +56 -0
- data/test/foreman_app/app/views/auth_source_ldaps/_form.html.erb +23 -0
- data/test/foreman_app/app/views/auth_source_ldaps/edit.html.erb +3 -0
- data/test/foreman_app/app/views/auth_source_ldaps/index.html.erb +22 -0
- data/test/foreman_app/app/views/auth_source_ldaps/new.html.erb +3 -0
- data/test/foreman_app/app/views/auth_source_ldaps/welcome.html.erb +8 -0
- data/test/foreman_app/app/views/bookmarks/_form.html.erb +8 -0
- data/test/foreman_app/app/views/bookmarks/_list.html.erb +7 -0
- data/test/foreman_app/app/views/bookmarks/edit.html.erb +3 -0
- data/test/foreman_app/app/views/bookmarks/index.html.erb +25 -0
- data/test/foreman_app/app/views/bookmarks/new.html.erb +3 -0
- data/test/foreman_app/app/views/bookmarks/welcome.html.erb +8 -0
- data/test/foreman_app/app/views/common/403.html.erb +9 -0
- data/test/foreman_app/app/views/common/404.html.erb +8 -0
- data/test/foreman_app/app/views/common/500.html.erb +19 -0
- data/test/foreman_app/app/views/common/_domain.html.erb +9 -0
- data/test/foreman_app/app/views/common/_domain_subnet.html.erb +10 -0
- data/test/foreman_app/app/views/common/_edit_habtm.erb +20 -0
- data/test/foreman_app/app/views/common/_notice.erb +20 -0
- data/test/foreman_app/app/views/common/_puppetclasses_or_envs_changed.html.erb +32 -0
- data/test/foreman_app/app/views/common/_searchbar.erb +37 -0
- data/test/foreman_app/app/views/common/_show_habtm.html.erb +1 -0
- data/test/foreman_app/app/views/common/os_selection/_architecture.html.erb +9 -0
- data/test/foreman_app/app/views/common/os_selection/_image_details.html.erb +7 -0
- data/test/foreman_app/app/views/common/os_selection/_initial.html.erb +15 -0
- data/test/foreman_app/app/views/common/os_selection/_operatingsystem.html.erb +15 -0
- data/test/foreman_app/app/views/common_parameters/_form.html.erb +6 -0
- data/test/foreman_app/app/views/common_parameters/_inherited_parameters.erb +23 -0
- data/test/foreman_app/app/views/common_parameters/_parameter.erb +14 -0
- data/test/foreman_app/app/views/common_parameters/_parameters.erb +6 -0
- data/test/foreman_app/app/views/common_parameters/_puppetclass_parameter.erb +16 -0
- data/test/foreman_app/app/views/common_parameters/_puppetclasses_parameters.erb +7 -0
- data/test/foreman_app/app/views/common_parameters/_show_parameter.html.erb +5 -0
- data/test/foreman_app/app/views/common_parameters/edit.html.erb +3 -0
- data/test/foreman_app/app/views/common_parameters/index.html.erb +22 -0
- data/test/foreman_app/app/views/common_parameters/new.html.erb +3 -0
- data/test/foreman_app/app/views/compute_resources/_form.html.erb +44 -0
- data/test/foreman_app/app/views/compute_resources/edit.html.erb +3 -0
- data/test/foreman_app/app/views/compute_resources/form/_ec2.html.erb +8 -0
- data/test/foreman_app/app/views/compute_resources/form/_libvirt.html.erb +9 -0
- data/test/foreman_app/app/views/compute_resources/form/_openstack.html.erb +9 -0
- data/test/foreman_app/app/views/compute_resources/form/_ovirt.html.erb +8 -0
- data/test/foreman_app/app/views/compute_resources/form/_rackspace.html.erb +8 -0
- data/test/foreman_app/app/views/compute_resources/form/_vmware.html.erb +8 -0
- data/test/foreman_app/app/views/compute_resources/index.html.erb +24 -0
- data/test/foreman_app/app/views/compute_resources/new.html.erb +3 -0
- data/test/foreman_app/app/views/compute_resources/show.html.erb +56 -0
- data/test/foreman_app/app/views/compute_resources_vms/form/_ec2.html.erb +10 -0
- data/test/foreman_app/app/views/compute_resources_vms/form/_libvirt.html.erb +33 -0
- data/test/foreman_app/app/views/compute_resources_vms/form/_openstack.html.erb +9 -0
- data/test/foreman_app/app/views/compute_resources_vms/form/_ovirt.html.erb +43 -0
- data/test/foreman_app/app/views/compute_resources_vms/form/_rackspace.html.erb +7 -0
- data/test/foreman_app/app/views/compute_resources_vms/form/_vmware.html.erb +37 -0
- data/test/foreman_app/app/views/compute_resources_vms/form/libvirt/_network.html.erb +9 -0
- data/test/foreman_app/app/views/compute_resources_vms/form/libvirt/_volume.html.erb +6 -0
- data/test/foreman_app/app/views/compute_resources_vms/form/ovirt/_network.html.erb +13 -0
- data/test/foreman_app/app/views/compute_resources_vms/form/ovirt/_volume.html.erb +18 -0
- data/test/foreman_app/app/views/compute_resources_vms/form/vmware/_network.html.erb +8 -0
- data/test/foreman_app/app/views/compute_resources_vms/form/vmware/_volume.html.erb +8 -0
- data/test/foreman_app/app/views/compute_resources_vms/index.html.erb +3 -0
- data/test/foreman_app/app/views/compute_resources_vms/index/_ec2.html.erb +25 -0
- data/test/foreman_app/app/views/compute_resources_vms/index/_libvirt.html.erb +23 -0
- data/test/foreman_app/app/views/compute_resources_vms/index/_openstack.html.erb +23 -0
- data/test/foreman_app/app/views/compute_resources_vms/index/_ovirt.html.erb +24 -0
- data/test/foreman_app/app/views/compute_resources_vms/index/_rackspace.html.erb +22 -0
- data/test/foreman_app/app/views/compute_resources_vms/index/_vmware.html.erb +27 -0
- data/test/foreman_app/app/views/compute_resources_vms/new.html.erb +9 -0
- data/test/foreman_app/app/views/compute_resources_vms/show.html.erb +8 -0
- data/test/foreman_app/app/views/compute_resources_vms/show/_ec2.html.erb +19 -0
- data/test/foreman_app/app/views/compute_resources_vms/show/_libvirt.html.erb +53 -0
- data/test/foreman_app/app/views/compute_resources_vms/show/_openstack.html.erb +19 -0
- data/test/foreman_app/app/views/compute_resources_vms/show/_ovirt.html.erb +47 -0
- data/test/foreman_app/app/views/compute_resources_vms/show/_rackspace.html.erb +19 -0
- data/test/foreman_app/app/views/compute_resources_vms/show/_vmware.html.erb +16 -0
- data/test/foreman_app/app/views/config_templates/_combination.html.erb +5 -0
- data/test/foreman_app/app/views/config_templates/_combinations.html.erb +6 -0
- data/test/foreman_app/app/views/config_templates/_diff.erb +14 -0
- data/test/foreman_app/app/views/config_templates/_form.html.erb +94 -0
- data/test/foreman_app/app/views/config_templates/edit.html.erb +3 -0
- data/test/foreman_app/app/views/config_templates/index.html.erb +31 -0
- data/test/foreman_app/app/views/config_templates/new.html.erb +3 -0
- data/test/foreman_app/app/views/dashboard/_status_table.html.erb +32 -0
- data/test/foreman_app/app/views/dashboard/index.html.erb +24 -0
- data/test/foreman_app/app/views/dashboard/welcome.html.erb +118 -0
- data/test/foreman_app/app/views/domains/_form.html.erb +43 -0
- data/test/foreman_app/app/views/domains/edit.html.erb +3 -0
- data/test/foreman_app/app/views/domains/index.html.erb +20 -0
- data/test/foreman_app/app/views/domains/new.html.erb +3 -0
- data/test/foreman_app/app/views/domains/welcome.html.erb +13 -0
- data/test/foreman_app/app/views/environments/_form.html.erb +38 -0
- data/test/foreman_app/app/views/environments/edit.html.erb +3 -0
- data/test/foreman_app/app/views/environments/index.html.erb +27 -0
- data/test/foreman_app/app/views/environments/new.html.erb +3 -0
- data/test/foreman_app/app/views/environments/welcome.html.erb +15 -0
- data/test/foreman_app/app/views/fact_values/index.html.erb +40 -0
- data/test/foreman_app/app/views/fact_values/welcome.html.erb +9 -0
- data/test/foreman_app/app/views/facts/show.html.erb +3 -0
- data/test/foreman_app/app/views/home/_location_dropdown.html.erb +17 -0
- data/test/foreman_app/app/views/home/_org_switcher.html.erb +11 -0
- data/test/foreman_app/app/views/home/_organization_dropdown.html.erb +17 -0
- data/test/foreman_app/app/views/home/_settings.html.erb +22 -0
- data/test/foreman_app/app/views/home/_topbar.html.erb +33 -0
- data/test/foreman_app/app/views/home/_user_dropdown.html.erb +10 -0
- data/test/foreman_app/app/views/host_mailer/_active_hosts.html.erb +30 -0
- data/test/foreman_app/app/views/host_mailer/_link_to_host.html.erb +5 -0
- data/test/foreman_app/app/views/host_mailer/_list.html.erb +13 -0
- data/test/foreman_app/app/views/host_mailer/_nonactive_hosts.html.erb +30 -0
- data/test/foreman_app/app/views/host_mailer/error_state.html.erb +10 -0
- data/test/foreman_app/app/views/host_mailer/summary.html.erb +17 -0
- data/test/foreman_app/app/views/hostgroups/_form.html.erb +69 -0
- data/test/foreman_app/app/views/hostgroups/edit.html.erb +3 -0
- data/test/foreman_app/app/views/hostgroups/index.html.erb +23 -0
- data/test/foreman_app/app/views/hostgroups/new.html.erb +3 -0
- data/test/foreman_app/app/views/hostgroups/welcome.html.erb +20 -0
- data/test/foreman_app/app/views/hosts/_assign_hosts.html.erb +42 -0
- data/test/foreman_app/app/views/hosts/_compute.html.erb +12 -0
- data/test/foreman_app/app/views/hosts/_conflicts.html.erb +28 -0
- data/test/foreman_app/app/views/hosts/_form.html.erb +109 -0
- data/test/foreman_app/app/views/hosts/_interfaces.html.erb +29 -0
- data/test/foreman_app/app/views/hosts/_list.html.erb +47 -0
- data/test/foreman_app/app/views/hosts/_metrics.html.erb +13 -0
- data/test/foreman_app/app/views/hosts/_operating_system.erb +41 -0
- data/test/foreman_app/app/views/hosts/_overview.html.erb +25 -0
- data/test/foreman_app/app/views/hosts/_progress.erb +8 -0
- data/test/foreman_app/app/views/hosts/_provisioning.html.erb +9 -0
- data/test/foreman_app/app/views/hosts/_selected_hosts.html.erb +31 -0
- data/test/foreman_app/app/views/hosts/_taxonomy_import_option.html.erb +2 -0
- data/test/foreman_app/app/views/hosts/_unattended.html.erb +34 -0
- data/test/foreman_app/app/views/hosts/assign_hosts.html.erb +5 -0
- data/test/foreman_app/app/views/hosts/console/log.html.erb +17 -0
- data/test/foreman_app/app/views/hosts/console/spice.html.erb +18 -0
- data/test/foreman_app/app/views/hosts/console/vnc.html.erb +21 -0
- data/test/foreman_app/app/views/hosts/edit.html.erb +7 -0
- data/test/foreman_app/app/views/hosts/index.html.erb +4 -0
- data/test/foreman_app/app/views/hosts/multiple_build.html.erb +6 -0
- data/test/foreman_app/app/views/hosts/multiple_destroy.html.erb +6 -0
- data/test/foreman_app/app/views/hosts/multiple_disable.html.erb +6 -0
- data/test/foreman_app/app/views/hosts/multiple_enable.html.erb +6 -0
- data/test/foreman_app/app/views/hosts/multiple_parameters.html.erb +12 -0
- data/test/foreman_app/app/views/hosts/multiple_puppetrun.html.erb +5 -0
- data/test/foreman_app/app/views/hosts/new.html.erb +3 -0
- data/test/foreman_app/app/views/hosts/query.html.erb +3 -0
- data/test/foreman_app/app/views/hosts/select_multiple_environment.html.erb +8 -0
- data/test/foreman_app/app/views/hosts/select_multiple_hostgroup.html.erb +6 -0
- data/test/foreman_app/app/views/hosts/select_multiple_location.html.erb +6 -0
- data/test/foreman_app/app/views/hosts/select_multiple_organization.html.erb +6 -0
- data/test/foreman_app/app/views/hosts/show.html.erb +55 -0
- data/test/foreman_app/app/views/hosts/storeconfig_klasses.html.erb +12 -0
- data/test/foreman_app/app/views/hosts/update_multiple_parameters.html.erb +18 -0
- data/test/foreman_app/app/views/hosts/welcome.html.erb +10 -0
- data/test/foreman_app/app/views/images/_form.html.erb +16 -0
- data/test/foreman_app/app/views/images/edit.html.erb +3 -0
- data/test/foreman_app/app/views/images/index.html.erb +26 -0
- data/test/foreman_app/app/views/images/new.html.erb +4 -0
- data/test/foreman_app/app/views/layouts/application.html.erb +69 -0
- data/test/foreman_app/app/views/locations/welcome.html.erb +9 -0
- data/test/foreman_app/app/views/lookup_keys/_fields.html.erb +42 -0
- data/test/foreman_app/app/views/lookup_keys/_value.html.erb +6 -0
- data/test/foreman_app/app/views/lookup_keys/edit.html.erb +7 -0
- data/test/foreman_app/app/views/lookup_keys/index.html.erb +22 -0
- data/test/foreman_app/app/views/media/_form.html.erb +53 -0
- data/test/foreman_app/app/views/media/edit.html.erb +3 -0
- data/test/foreman_app/app/views/media/index.html.erb +26 -0
- data/test/foreman_app/app/views/media/new.html.erb +3 -0
- data/test/foreman_app/app/views/media/welcome.html.erb +19 -0
- data/test/foreman_app/app/views/models/_form.html.erb +8 -0
- data/test/foreman_app/app/views/models/edit.html.erb +3 -0
- data/test/foreman_app/app/views/models/index.html.erb +26 -0
- data/test/foreman_app/app/views/models/new.html.erb +3 -0
- data/test/foreman_app/app/views/operatingsystems/_form.html.erb +38 -0
- data/test/foreman_app/app/views/operatingsystems/_template_defaults.html.erb +19 -0
- data/test/foreman_app/app/views/operatingsystems/_templates.html.erb +2 -0
- data/test/foreman_app/app/views/operatingsystems/edit.html.erb +3 -0
- data/test/foreman_app/app/views/operatingsystems/index.html.erb +22 -0
- data/test/foreman_app/app/views/operatingsystems/new.html.erb +3 -0
- data/test/foreman_app/app/views/organizations/welcome.html.erb +14 -0
- data/test/foreman_app/app/views/ptables/_form.html.erb +8 -0
- data/test/foreman_app/app/views/ptables/edit.html.erb +3 -0
- data/test/foreman_app/app/views/ptables/index.html.erb +23 -0
- data/test/foreman_app/app/views/ptables/new.html.erb +3 -0
- data/test/foreman_app/app/views/ptables/welcome.html.erb +52 -0
- data/test/foreman_app/app/views/puppetclasses/_class_parameters.html.erb +16 -0
- data/test/foreman_app/app/views/puppetclasses/_class_selection.html.erb +44 -0
- data/test/foreman_app/app/views/puppetclasses/_classes.html.erb +23 -0
- data/test/foreman_app/app/views/puppetclasses/_classes_parameters.html.erb +14 -0
- data/test/foreman_app/app/views/puppetclasses/_form.html.erb +90 -0
- data/test/foreman_app/app/views/puppetclasses/_selectedClasses.html.erb +4 -0
- data/test/foreman_app/app/views/puppetclasses/edit.html.erb +3 -0
- data/test/foreman_app/app/views/puppetclasses/index.html.erb +33 -0
- data/test/foreman_app/app/views/puppetclasses/new.html.erb +3 -0
- data/test/foreman_app/app/views/puppetclasses/no_route.html.erb +11 -0
- data/test/foreman_app/app/views/reports/_list.html.erb +34 -0
- data/test/foreman_app/app/views/reports/_metrics.html.erb +25 -0
- data/test/foreman_app/app/views/reports/_output.html.erb +13 -0
- data/test/foreman_app/app/views/reports/index.html.erb +3 -0
- data/test/foreman_app/app/views/reports/show.html.erb +37 -0
- data/test/foreman_app/app/views/reports/welcome.html.erb +11 -0
- data/test/foreman_app/app/views/roles/_form.html.erb +28 -0
- data/test/foreman_app/app/views/roles/edit.html.erb +3 -0
- data/test/foreman_app/app/views/roles/index.html.erb +28 -0
- data/test/foreman_app/app/views/roles/new.html.erb +3 -0
- data/test/foreman_app/app/views/roles/report.html.erb +52 -0
- data/test/foreman_app/app/views/settings/index.html.erb +29 -0
- data/test/foreman_app/app/views/smart_proxies/_form.html.erb +38 -0
- data/test/foreman_app/app/views/smart_proxies/autosign/_form.html.erb +9 -0
- data/test/foreman_app/app/views/smart_proxies/autosign/index.html.erb +21 -0
- data/test/foreman_app/app/views/smart_proxies/autosign/new.html.erb +3 -0
- data/test/foreman_app/app/views/smart_proxies/edit.html.erb +3 -0
- data/test/foreman_app/app/views/smart_proxies/index.html.erb +37 -0
- data/test/foreman_app/app/views/smart_proxies/new.html.erb +3 -0
- data/test/foreman_app/app/views/smart_proxies/puppetca/index.html.erb +36 -0
- data/test/foreman_app/app/views/statistics/index.html.erb +5 -0
- data/test/foreman_app/app/views/subnets/_fields.html.erb +17 -0
- data/test/foreman_app/app/views/subnets/_form.html.erb +34 -0
- data/test/foreman_app/app/views/subnets/edit.html.erb +3 -0
- data/test/foreman_app/app/views/subnets/import.html.erb +26 -0
- data/test/foreman_app/app/views/subnets/index.html.erb +28 -0
- data/test/foreman_app/app/views/subnets/new.html.erb +3 -0
- data/test/foreman_app/app/views/tasks/_list.html.erb +5 -0
- data/test/foreman_app/app/views/tasks/show.html.erb +1 -0
- data/test/foreman_app/app/views/taxonomies/_form.html.erb +111 -0
- data/test/foreman_app/app/views/taxonomies/_step1.html.erb +14 -0
- data/test/foreman_app/app/views/taxonomies/_step2.html.erb +18 -0
- data/test/foreman_app/app/views/taxonomies/clone.html.erb +3 -0
- data/test/foreman_app/app/views/taxonomies/edit.html.erb +4 -0
- data/test/foreman_app/app/views/taxonomies/index.html.erb +39 -0
- data/test/foreman_app/app/views/taxonomies/mismatches.html.erb +37 -0
- data/test/foreman_app/app/views/taxonomies/new.html.erb +3 -0
- data/test/foreman_app/app/views/taxonomies/step2.html.erb +3 -0
- data/test/foreman_app/app/views/trends/_fields.html.erb +7 -0
- data/test/foreman_app/app/views/trends/_form.html.erb +9 -0
- data/test/foreman_app/app/views/trends/_hosts.html.erb +13 -0
- data/test/foreman_app/app/views/trends/edit.html.erb +33 -0
- data/test/foreman_app/app/views/trends/index.html.erb +47 -0
- data/test/foreman_app/app/views/trends/new.html.erb +3 -0
- data/test/foreman_app/app/views/trends/show.html.erb +19 -0
- data/test/foreman_app/app/views/unattended/autowaik.xml.erb +2 -0
- data/test/foreman_app/app/views/unattended/autoyast.xml.erb +80 -0
- data/test/foreman_app/app/views/unattended/gpxe_kickstart_config.erb +5 -0
- data/test/foreman_app/app/views/unattended/grubby.erb +9 -0
- data/test/foreman_app/app/views/unattended/jumpstart.html.erb +10 -0
- data/test/foreman_app/app/views/unattended/jumpstart_finish.html.erb +51 -0
- data/test/foreman_app/app/views/unattended/kickstart.html.erb +71 -0
- data/test/foreman_app/app/views/unattended/preseed.html.erb +66 -0
- data/test/foreman_app/app/views/unattended/preseed_finish.html.erb +7 -0
- data/test/foreman_app/app/views/unattended/pxe_autowaik.erb +3 -0
- data/test/foreman_app/app/views/unattended/pxe_autoyast.erb +4 -0
- data/test/foreman_app/app/views/unattended/pxe_debian_config.erb +4 -0
- data/test/foreman_app/app/views/unattended/pxe_default.erb +23 -0
- data/test/foreman_app/app/views/unattended/pxe_jumpstart_config.erb +10 -0
- data/test/foreman_app/app/views/unattended/pxe_kickstart_config.erb +4 -0
- data/test/foreman_app/app/views/unattended/pxe_local.erb +11 -0
- data/test/foreman_app/app/views/unattended/snippets/_epel.erb +15 -0
- data/test/foreman_app/app/views/unattended/snippets/_http_proxy.erb +8 -0
- data/test/foreman_app/app/views/unattended/snippets/_puppet.conf.erb +15 -0
- data/test/foreman_app/app/views/unattended/snippets/_puppet.init.erb +8 -0
- data/test/foreman_app/app/views/unattended/snippets/_redhat_register.erb +67 -0
- data/test/foreman_app/app/views/unattended/snippets/_vmware.erb +62 -0
- data/test/foreman_app/app/views/usergroups/_form.html.erb +7 -0
- data/test/foreman_app/app/views/usergroups/edit.html.erb +3 -0
- data/test/foreman_app/app/views/usergroups/index.html.erb +24 -0
- data/test/foreman_app/app/views/usergroups/new.html.erb +3 -0
- data/test/foreman_app/app/views/users/_filters.html.erb +38 -0
- data/test/foreman_app/app/views/users/_form.html.erb +58 -0
- data/test/foreman_app/app/views/users/_user_fact.html.erb +14 -0
- data/test/foreman_app/app/views/users/edit.html.erb +3 -0
- data/test/foreman_app/app/views/users/index.html.erb +31 -0
- data/test/foreman_app/app/views/users/login.html.erb +22 -0
- data/test/foreman_app/app/views/users/new.html.erb +3 -0
- data/test/foreman_app/bundler.d/Gemfile.local.rb +2 -0
- data/test/foreman_app/bundler.d/assets.rb +12 -0
- data/test/foreman_app/bundler.d/console.rb +5 -0
- data/test/foreman_app/bundler.d/development.rb +17 -0
- data/test/foreman_app/bundler.d/fog.rb +3 -0
- data/test/foreman_app/bundler.d/i18n.rb +5 -0
- data/test/foreman_app/bundler.d/jsonp.rb +3 -0
- data/test/foreman_app/bundler.d/libvirt.rb +3 -0
- data/test/foreman_app/bundler.d/mysql.rb +3 -0
- data/test/foreman_app/bundler.d/mysql2.rb +3 -0
- data/test/foreman_app/bundler.d/openid.rb +3 -0
- data/test/foreman_app/bundler.d/ovirt.rb +3 -0
- data/test/foreman_app/bundler.d/postgresql.rb +3 -0
- data/test/foreman_app/bundler.d/sqlite.rb +3 -0
- data/test/foreman_app/bundler.d/test.rb +17 -0
- data/test/foreman_app/bundler.d/vmware.rb +3 -0
- data/test/foreman_app/config.ru +8 -0
- data/test/foreman_app/config/application.rb +114 -0
- data/test/foreman_app/config/boot.rb +6 -0
- data/test/foreman_app/config/database.yml +22 -0
- data/test/foreman_app/config/database.yml.example +22 -0
- data/test/foreman_app/config/email.yaml.example +9 -0
- data/test/foreman_app/config/environment.rb +5 -0
- data/test/foreman_app/config/environments/development.rb +38 -0
- data/test/foreman_app/config/environments/production.rb +112 -0
- data/test/foreman_app/config/environments/test.rb +42 -0
- data/test/foreman_app/config/ignored_environments.yml.sample +9 -0
- data/test/foreman_app/config/initializers/apipie.rb +71 -0
- data/test/foreman_app/config/initializers/backtrace_silencers.rb +7 -0
- data/test/foreman_app/config/initializers/email.rb +17 -0
- data/test/foreman_app/config/initializers/fast_gettext.rb +49 -0
- data/test/foreman_app/config/initializers/foreman.rb +24 -0
- data/test/foreman_app/config/initializers/hostable.rb +3 -0
- data/test/foreman_app/config/initializers/inflections.rb +10 -0
- data/test/foreman_app/config/initializers/local_secret_token.rb.example +10 -0
- data/test/foreman_app/config/initializers/mime_types.rb +6 -0
- data/test/foreman_app/config/initializers/puppet.rb +22 -0
- data/test/foreman_app/config/initializers/rack_openid.rb +8 -0
- data/test/foreman_app/config/initializers/secret_token.rb +15 -0
- data/test/foreman_app/config/initializers/session_store.rb +8 -0
- data/test/foreman_app/config/initializers/will_paginate.rb +27 -0
- data/test/foreman_app/config/initializers/wrap_parameters.rb +13 -0
- data/test/foreman_app/config/locales/README +24 -0
- data/test/foreman_app/config/locales/de.yml +203 -0
- data/test/foreman_app/config/locales/en.yml +205 -0
- data/test/foreman_app/config/locales/es.yml +199 -0
- data/test/foreman_app/config/locales/ja.yml +197 -0
- data/test/foreman_app/config/model.mappings.example +342 -0
- data/test/foreman_app/config/routes.rb +332 -0
- data/test/foreman_app/config/routes/api/apipiedoc.rb +4 -0
- data/test/foreman_app/config/routes/api/v1.rb +65 -0
- data/test/foreman_app/config/routes/api/v2.rb +208 -0
- data/test/foreman_app/config/settings.rb +13 -0
- data/test/foreman_app/config/settings.yaml +18 -0
- data/test/foreman_app/config/settings.yaml.example +17 -0
- data/test/foreman_app/db/migrate/20090714132448_create_hosts.rb +47 -0
- data/test/foreman_app/db/migrate/20090714132449_add_audits_table.rb +27 -0
- data/test/foreman_app/db/migrate/20090715143858_create_architectures.rb +19 -0
- data/test/foreman_app/db/migrate/20090717025820_create_media.rb +19 -0
- data/test/foreman_app/db/migrate/20090718060746_create_domains.rb +15 -0
- data/test/foreman_app/db/migrate/20090718064254_create_subnets.rb +18 -0
- data/test/foreman_app/db/migrate/20090720134126_create_operatingsystems.rb +16 -0
- data/test/foreman_app/db/migrate/20090722140138_create_models.rb +16 -0
- data/test/foreman_app/db/migrate/20090722141107_create_environments.rb +18 -0
- data/test/foreman_app/db/migrate/20090729132209_create_reports.rb +14 -0
- data/test/foreman_app/db/migrate/20090730152224_create_ptables.rb +24 -0
- data/test/foreman_app/db/migrate/20090802062223_create_puppetclasses.rb +26 -0
- data/test/foreman_app/db/migrate/20090804130144_create_parameters.rb +13 -0
- data/test/foreman_app/db/migrate/20090820130541_create_auth_sources.rb +25 -0
- data/test/foreman_app/db/migrate/20090905150131_create_hostgroups.rb +24 -0
- data/test/foreman_app/db/migrate/20090905155444_add_type_to_parameter.rb +9 -0
- data/test/foreman_app/db/migrate/20090907045751_add_domain_to_parameter.rb +10 -0
- data/test/foreman_app/db/migrate/20090915030726_change_report_field_type_to_text.rb +13 -0
- data/test/foreman_app/db/migrate/20090916053824_change_host_build_default_to_false.rb +11 -0
- data/test/foreman_app/db/migrate/20090920043521_add_index_to_host.rb +25 -0
- data/test/foreman_app/db/migrate/20090920064156_add_index_to_parameters.rb +15 -0
- data/test/foreman_app/db/migrate/20090920065522_add_index_to_reports.rb +9 -0
- data/test/foreman_app/db/migrate/20091012135004_create_users.rb +19 -0
- data/test/foreman_app/db/migrate/20091016031017_create_sessions.rb +16 -0
- data/test/foreman_app/db/migrate/20091022054108_add_status_to_report.rb +15 -0
- data/test/foreman_app/db/migrate/20091214045923_calc_existing_reports.rb +19 -0
- data/test/foreman_app/db/migrate/20091219132338_create_lookup_keys.rb +14 -0
- data/test/foreman_app/db/migrate/20091219132839_create_lookup_values.rb +17 -0
- data/test/foreman_app/db/migrate/20100115021803_change_mysql_reports_column.rb +14 -0
- data/test/foreman_app/db/migrate/20100310080727_add_family_to_os.rb +33 -0
- data/test/foreman_app/db/migrate/20100325142616_update_fact_names_and_values_to_bin.rb +15 -0
- data/test/foreman_app/db/migrate/20100414125652_add_releasename_to_os.rb +24 -0
- data/test/foreman_app/db/migrate/20100416124600_create_usergroups.rb +17 -0
- data/test/foreman_app/db/migrate/20100419151910_add_owner_to_hosts.rb +26 -0
- data/test/foreman_app/db/migrate/20100523114430_add_ubuntu_custom_lvm_ptable.rb +67 -0
- data/test/foreman_app/db/migrate/20100523141204_create_media_operatingsystems_and_migrate_data.rb +34 -0
- data/test/foreman_app/db/migrate/20100524080302_migrate_installation_medium_uri.rb +15 -0
- data/test/foreman_app/db/migrate/20100525094200_simplify_parameters.rb +62 -0
- data/test/foreman_app/db/migrate/20100601221000_update_os_minor.rb +13 -0
- data/test/foreman_app/db/migrate/20100616114400_change_family_in_os.rb +50 -0
- data/test/foreman_app/db/migrate/20100625155400_create_notices.rb +21 -0
- data/test/foreman_app/db/migrate/20100628123400_add_internal_auth.rb +33 -0
- data/test/foreman_app/db/migrate/20100629093200_create_roles.rb +23 -0
- data/test/foreman_app/db/migrate/20100701081235_add_user_domains_and_hostgroups.rb +20 -0
- data/test/foreman_app/db/migrate/20100822072954_create_user_facts.rb +18 -0
- data/test/foreman_app/db/migrate/20100823181036_add_enabled_to_hosts.rb +9 -0
- data/test/foreman_app/db/migrate/20100914092104_add_my_booleans_to_user.rb +13 -0
- data/test/foreman_app/db/migrate/20101018120548_create_messages.rb +18 -0
- data/test/foreman_app/db/migrate/20101018120603_create_sources.rb +18 -0
- data/test/foreman_app/db/migrate/20101018120621_create_logs.rb +22 -0
- data/test/foreman_app/db/migrate/20101019122857_add_metrics_to_report.rb +9 -0
- data/test/foreman_app/db/migrate/20101019183859_convert_reports.rb +38 -0
- data/test/foreman_app/db/migrate/20101103150254_add_owned_filter_to_user.rb +9 -0
- data/test/foreman_app/db/migrate/20101118130026_correct_media.rb +35 -0
- data/test/foreman_app/db/migrate/20101121080425_create_config_templates.rb +15 -0
- data/test/foreman_app/db/migrate/20101121135521_create_template_combinations.rb +15 -0
- data/test/foreman_app/db/migrate/20101122132041_create_operatingsystems_config_templates.rb +12 -0
- data/test/foreman_app/db/migrate/20101123152150_create_template_kinds.rb +18 -0
- data/test/foreman_app/db/migrate/20101123153303_create_os_default_templates.rb +15 -0
- data/test/foreman_app/db/migrate/20101125153351_add_default_templates.rb +59 -0
- data/test/foreman_app/db/migrate/20101130093613_add_sub_systems_to_subnet.rb +13 -0
- data/test/foreman_app/db/migrate/20101130100315_create_proxies.rb +13 -0
- data/test/foreman_app/db/migrate/20101202104444_add_proxy_to_domain.rb +11 -0
- data/test/foreman_app/db/migrate/20101213085232_add_grubby_template.rb +15 -0
- data/test/foreman_app/db/migrate/20110117162722_add_host_group_defaults.rb +21 -0
- data/test/foreman_app/db/migrate/20110128130239_add_default_pxe_menu_template.rb +15 -0
- data/test/foreman_app/db/migrate/20110213104226_create_proxy_features.rb +28 -0
- data/test/foreman_app/db/migrate/20110216101848_change_puppetmaster_column.rb +21 -0
- data/test/foreman_app/db/migrate/20110301154453_add_managed_to_hosts.rb +15 -0
- data/test/foreman_app/db/migrate/20110321070954_revert_face_names_and_values_to_text_records.rb +13 -0
- data/test/foreman_app/db/migrate/20110327123639_add_priority_to_parameter.rb +11 -0
- data/test/foreman_app/db/migrate/20110404150043_add_media_path_to_medium.rb +13 -0
- data/test/foreman_app/db/migrate/20110407091150_add_image_to_host.rb +15 -0
- data/test/foreman_app/db/migrate/20110412103238_remove_unused_fields_from_puppet_classes.rb +9 -0
- data/test/foreman_app/db/migrate/20110417102947_add_table_bookmarks.rb +31 -0
- data/test/foreman_app/db/migrate/20110420150600_add_solaris_templates.rb +42 -0
- data/test/foreman_app/db/migrate/20110613141800_add_solaris_disks.rb +16 -0
- data/test/foreman_app/db/migrate/20110616080444_add_look_up_key_id_to_puppet_class.rb +28 -0
- data/test/foreman_app/db/migrate/20110617190131_add_sparc_info_to_model.rb +11 -0
- data/test/foreman_app/db/migrate/20110619130336_add_ancestry_to_hostgroup.rb +11 -0
- data/test/foreman_app/db/migrate/20110628115422_create_settings.rb +18 -0
- data/test/foreman_app/db/migrate/20110712064120_update_audits_table.rb +16 -0
- data/test/foreman_app/db/migrate/20110712070522_create_host_class.rb +11 -0
- data/test/foreman_app/db/migrate/20110725142054_add_suse_templates.rb +46 -0
- data/test/foreman_app/db/migrate/20110801090318_add_vm_defaults_to_hostgroup.rb +9 -0
- data/test/foreman_app/db/migrate/20110803114134_add_subnet_and_domain_to_host_groups.rb +11 -0
- data/test/foreman_app/db/migrate/20111124095053_rename_changes_to_audited_changes.rb +9 -0
- data/test/foreman_app/db/migrate/20111124095054_add_remote_address_to_audits.rb +10 -0
- data/test/foreman_app/db/migrate/20111124095055_rename_parent_to_association.rb +11 -0
- data/test/foreman_app/db/migrate/20111205231500_add_gateway_and_dns_to_subnets.rb +13 -0
- data/test/foreman_app/db/migrate/20111227095806_ensure_all_hostnames_are_lowercase.rb +9 -0
- data/test/foreman_app/db/migrate/20120102071633_add_from_and_to_ranges_to_subnets.rb +13 -0
- data/test/foreman_app/db/migrate/20120110113051_create_subnet_domain.rb +21 -0
- data/test/foreman_app/db/migrate/20120122131037_create_compute_resources.rb +19 -0
- data/test/foreman_app/db/migrate/20120126113850_add_uuid_and_compute_id_to_host.rb +11 -0
- data/test/foreman_app/db/migrate/20120127141602_add_windows_templates.rb +47 -0
- data/test/foreman_app/db/migrate/20120311081257_create_nics.rb +52 -0
- data/test/foreman_app/db/migrate/20120313081913_add_puppet_master_proxy_to_host_and_host_group.rb +41 -0
- data/test/foreman_app/db/migrate/20120502105518_update_report_field_to_large_int.rb +9 -0
- data/test/foreman_app/db/migrate/20120506143325_create_images.rb +18 -0
- data/test/foreman_app/db/migrate/20120509131302_add_cert_name_to_host.rb +12 -0
- data/test/foreman_app/db/migrate/20120510113417_create_key_pairs.rb +15 -0
- data/test/foreman_app/db/migrate/20120521142924_add_dns_id_to_subnet.rb +9 -0
- data/test/foreman_app/db/migrate/20120523065531_add_image_id_to_host.rb +9 -0
- data/test/foreman_app/db/migrate/20120529113900_add_user_compute_resources.rb +14 -0
- data/test/foreman_app/db/migrate/20120529115814_add_compute_resources_boolean_to_user.rb +9 -0
- data/test/foreman_app/db/migrate/20120604114049_add_epel_snippets.rb +10 -0
- data/test/foreman_app/db/migrate/20120607074318_convert_params_to_text.rb +11 -0
- data/test/foreman_app/db/migrate/20120612070100_change_bookmark_column_to_text.rb +10 -0
- data/test/foreman_app/db/migrate/20120613082125_rename_association_to_associated.rb +25 -0
- data/test/foreman_app/db/migrate/20120620124658_fix_auditable_type.rb +9 -0
- data/test/foreman_app/db/migrate/20120620124659_fix_associated_type.rb +9 -0
- data/test/foreman_app/db/migrate/20120621135042_create_taxonomies.rb +14 -0
- data/test/foreman_app/db/migrate/20120623002052_add_ok_hosts_book_mark.rb +13 -0
- data/test/foreman_app/db/migrate/20120624081510_add_auditable_name_and_associated_name_to_audit.rb +29 -0
- data/test/foreman_app/db/migrate/20120624093958_add_os_family_to_media.rb +14 -0
- data/test/foreman_app/db/migrate/20120624094034_add_os_family_to_ptable.rb +17 -0
- data/test/foreman_app/db/migrate/20120705130038_add_attributes_to_compute_resources.rb +9 -0
- data/test/foreman_app/db/migrate/20120824142048_add_some_indexes.rb +23 -0
- data/test/foreman_app/db/migrate/20120905095532_create_environment_classes.rb +16 -0
- data/test/foreman_app/db/migrate/20120905131841_add_lookup_keys_override_and_required.rb +15 -0
- data/test/foreman_app/db/migrate/20120916080843_add_lookup_values_count_to_lookup_keys.rb +9 -0
- data/test/foreman_app/db/migrate/20120916080926_cache_lookup_values_count.rb +8 -0
- data/test/foreman_app/db/migrate/20120921000313_add_iam_role_to_images.rb +9 -0
- data/test/foreman_app/db/migrate/20120921105349_create_tokens.rb +15 -0
- data/test/foreman_app/db/migrate/20120927020752_add_bmc_feature_to_proxy.rb +8 -0
- data/test/foreman_app/db/migrate/20121003172526_add_taxonomy_ids_to_hosts.rb +11 -0
- data/test/foreman_app/db/migrate/20121011115320_change_domain_character_count.rb +9 -0
- data/test/foreman_app/db/migrate/20121012170851_create_trends.rb +25 -0
- data/test/foreman_app/db/migrate/20121012170936_create_trend_counters.rb +16 -0
- data/test/foreman_app/db/migrate/20121015113502_update_media_path_limit.rb +9 -0
- data/test/foreman_app/db/migrate/20121018152459_create_hostgroup_classes.rb +11 -0
- data/test/foreman_app/db/migrate/20121026160433_add_localboot_template.rb +15 -0
- data/test/foreman_app/db/migrate/20121029164911_rename_reply_adress_setting.rb +9 -0
- data/test/foreman_app/db/migrate/20121101141448_add_locations_organizations.rb +12 -0
- data/test/foreman_app/db/migrate/20121118120028_migrate_hypervisors_to_compute_resources.rb +20 -0
- data/test/foreman_app/db/migrate/20121118125341_create_taxable_taxonomies.rb +19 -0
- data/test/foreman_app/db/migrate/20121119102104_add_my_taxonomy_to_user.rb +11 -0
- data/test/foreman_app/db/migrate/20121218084123_change_smart_variable_length.rb +9 -0
- data/test/foreman_app/db/migrate/20121219040534_remove_replay_address_setting.rb +8 -0
- data/test/foreman_app/db/migrate/20130109155024_add_ignore_types_to_taxonomy.rb +9 -0
- data/test/foreman_app/db/migrate/20130121130826_add_digest_to_messages.rb +18 -0
- data/test/foreman_app/db/migrate/20130211160200_add_sti_to_hosts.rb +11 -0
- data/test/foreman_app/db/migrate/20130228145456_add_digest_to_sources.rb +22 -0
- data/test/foreman_app/db/migrate/20130329195742_remove_duplicate_snippets.rb +20 -0
- data/test/foreman_app/db/migrate/20130409081924_add_label_to_host_group.rb +18 -0
- data/test/foreman_app/db/migrate/20130417110127_add_sti_to_settings.rb +17 -0
- data/test/foreman_app/db/migrate/20130418134513_fix_sti_host_auditable_type.rb +9 -0
- data/test/foreman_app/db/migrate/20130419145808_add_id_to_user_hostgroup.rb +9 -0
- data/test/foreman_app/db/schema.rb +746 -0
- data/test/foreman_app/db/seeds.rb +9 -0
- data/test/foreman_app/db/test.sqlite3 +0 -0
- data/test/foreman_app/doc/README_FOR_APP +2 -0
- data/test/foreman_app/doc/apipie_examples.yml +4645 -0
- data/test/foreman_app/extras/changelog +39 -0
- data/test/foreman_app/extras/ci/migration.sh +64 -0
- data/test/foreman_app/extras/ci/setup.sh +19 -0
- data/test/foreman_app/extras/cli/foremancli +210 -0
- data/test/foreman_app/extras/dbmigrate +10 -0
- data/test/foreman_app/extras/foreman-release.spec +41 -0
- data/test/foreman_app/extras/foreman.repo +11 -0
- data/test/foreman_app/extras/git2nightly_snapshot +9 -0
- data/test/foreman_app/extras/git2release +22 -0
- data/test/foreman_app/extras/ignored_environments.yml.sample +10 -0
- data/test/foreman_app/extras/jumpstart/README +2 -0
- data/test/foreman_app/extras/jumpstart/admin +11 -0
- data/test/foreman_app/extras/jumpstart/curl +0 -0
- data/test/foreman_app/extras/jumpstart/curl-license +22 -0
- data/test/foreman_app/extras/jumpstart/curl.i386 +0 -0
- data/test/foreman_app/extras/jumpstart/curl.sparc +0 -0
- data/test/foreman_app/extras/jumpstart/dynamic_finish +18 -0
- data/test/foreman_app/extras/jumpstart/dynamic_profile +17 -0
- data/test/foreman_app/extras/jumpstart/nsswitch.conf +34 -0
- data/test/foreman_app/extras/jumpstart/rules +1 -0
- data/test/foreman_app/extras/jumpstart/rules.ok +2 -0
- data/test/foreman_app/extras/jumpstart/sysidcfg/sysidcfg_primary/sysidcfg +12 -0
- data/test/foreman_app/extras/noVNC/websockify.py +5 -0
- data/test/foreman_app/extras/noVNC/websockify/__init__.py +2 -0
- data/test/foreman_app/extras/noVNC/websockify/websocket.py +982 -0
- data/test/foreman_app/extras/noVNC/websockify/websocketproxy.py +393 -0
- data/test/foreman_app/extras/packaging/rpm/rel-eng/comps/comps-foreman-fedora18.xml +76 -0
- data/test/foreman_app/extras/packaging/rpm/rel-eng/comps/comps-foreman-rhel6.xml +115 -0
- data/test/foreman_app/extras/packaging/rpm/rel-eng/packages/foreman +1 -0
- data/test/foreman_app/extras/packaging/rpm/rel-eng/releasers.conf +59 -0
- data/test/foreman_app/extras/packaging/rpm/rel-eng/tito.props +3 -0
- data/test/foreman_app/extras/packaging/rpm/sources/0001-rubygem-actionmailer-fix-dep-versions.patch +19 -0
- data/test/foreman_app/extras/packaging/rpm/sources/foreman.cron.d +27 -0
- data/test/foreman_app/extras/packaging/rpm/sources/foreman.init +154 -0
- data/test/foreman_app/extras/packaging/rpm/sources/foreman.logrotate +10 -0
- data/test/foreman_app/extras/packaging/rpm/sources/foreman.repo +11 -0
- data/test/foreman_app/extras/packaging/rpm/sources/foreman.spec-devel.patch +55 -0
- data/test/foreman_app/extras/packaging/rpm/sources/foreman.sysconfig +21 -0
- data/test/foreman_app/extras/query/ssh_using_foreman +136 -0
- data/test/foreman_app/extras/rdoc/rdoc_prepare_script.rb +51 -0
- data/test/foreman_app/foreman.spec +621 -0
- data/test/foreman_app/lib/api/api_responder.rb +17 -0
- data/test/foreman_app/lib/api/authorization.rb +78 -0
- data/test/foreman_app/lib/api/version1.rb +7 -0
- data/test/foreman_app/lib/api/version2.rb +7 -0
- data/test/foreman_app/lib/api_constraints.rb +15 -0
- data/test/foreman_app/lib/audit_extensions.rb +63 -0
- data/test/foreman_app/lib/core_extensions.rb +100 -0
- data/test/foreman_app/lib/fog_extensions.rb +45 -0
- data/test/foreman_app/lib/fog_extensions/aws/flavor.rb +9 -0
- data/test/foreman_app/lib/fog_extensions/aws/server.rb +18 -0
- data/test/foreman_app/lib/fog_extensions/libvirt/server.rb +24 -0
- data/test/foreman_app/lib/fog_extensions/model.rb +27 -0
- data/test/foreman_app/lib/fog_extensions/openstack/flavor.rb +13 -0
- data/test/foreman_app/lib/fog_extensions/openstack/server.rb +40 -0
- data/test/foreman_app/lib/fog_extensions/ovirt/server.rb +15 -0
- data/test/foreman_app/lib/fog_extensions/ovirt/volume.rb +11 -0
- data/test/foreman_app/lib/fog_extensions/vsphere/folder.rb +14 -0
- data/test/foreman_app/lib/fog_extensions/vsphere/mini_server.rb +20 -0
- data/test/foreman_app/lib/fog_extensions/vsphere/mini_servers.rb +22 -0
- data/test/foreman_app/lib/fog_extensions/vsphere/server.rb +19 -0
- data/test/foreman_app/lib/foreman.rb +14 -0
- data/test/foreman_app/lib/foreman/access_control.rb +120 -0
- data/test/foreman_app/lib/foreman/access_permissions.rb +572 -0
- data/test/foreman_app/lib/foreman/controller.rb +2 -0
- data/test/foreman_app/lib/foreman/controller/auto_complete_search.rb +23 -0
- data/test/foreman_app/lib/foreman/controller/environments.rb +36 -0
- data/test/foreman_app/lib/foreman/controller/host_details.rb +69 -0
- data/test/foreman_app/lib/foreman/controller/smart_proxy_auth.rb +68 -0
- data/test/foreman_app/lib/foreman/controller/taxonomies_controller.rb +178 -0
- data/test/foreman_app/lib/foreman/controller/taxonomy_multiple.rb +56 -0
- data/test/foreman_app/lib/foreman/default_data/loader.rb +166 -0
- data/test/foreman_app/lib/foreman/exception.rb +37 -0
- data/test/foreman_app/lib/foreman/importer_puppetclass.rb +48 -0
- data/test/foreman_app/lib/foreman/model.rb +2 -0
- data/test/foreman_app/lib/foreman/model/ec2.rb +128 -0
- data/test/foreman_app/lib/foreman/model/libvirt.rb +150 -0
- data/test/foreman_app/lib/foreman/model/openstack.rb +130 -0
- data/test/foreman_app/lib/foreman/model/ovirt.rb +250 -0
- data/test/foreman_app/lib/foreman/model/rackspace.rb +108 -0
- data/test/foreman_app/lib/foreman/model/vmware.rb +181 -0
- data/test/foreman_app/lib/foreman/provision.rb +3 -0
- data/test/foreman_app/lib/foreman/provision/ssh.rb +102 -0
- data/test/foreman_app/lib/foreman/renderer.rb +68 -0
- data/test/foreman_app/lib/foreman/sti.rb +30 -0
- data/test/foreman_app/lib/foreman/thread_session.rb +163 -0
- data/test/foreman_app/lib/foreman/util.rb +25 -0
- data/test/foreman_app/lib/foreman/wrapped_exception.rb +23 -0
- data/test/foreman_app/lib/net.rb +50 -0
- data/test/foreman_app/lib/net/dhcp.rb +6 -0
- data/test/foreman_app/lib/net/dhcp/record.rb +56 -0
- data/test/foreman_app/lib/net/dhcp/sparc_record.rb +25 -0
- data/test/foreman_app/lib/net/dns.rb +78 -0
- data/test/foreman_app/lib/net/dns/a_record.rb +47 -0
- data/test/foreman_app/lib/net/dns/ptr_record.rb +52 -0
- data/test/foreman_app/lib/net/validations.rb +47 -0
- data/test/foreman_app/lib/orchestration/queue.rb +58 -0
- data/test/foreman_app/lib/proxy_api.rb +6 -0
- data/test/foreman_app/lib/proxy_api/bmc.rb +120 -0
- data/test/foreman_app/lib/proxy_api/dhcp.rb +70 -0
- data/test/foreman_app/lib/proxy_api/dns.rb +26 -0
- data/test/foreman_app/lib/proxy_api/features.rb +12 -0
- data/test/foreman_app/lib/proxy_api/puppet.rb +28 -0
- data/test/foreman_app/lib/proxy_api/puppetca.rb +38 -0
- data/test/foreman_app/lib/proxy_api/resource.rb +90 -0
- data/test/foreman_app/lib/proxy_api/tftp.rb +54 -0
- data/test/foreman_app/lib/puppet_setting.rb +69 -0
- data/test/foreman_app/lib/regexp_extensions.rb +14 -0
- data/test/foreman_app/lib/sso.rb +13 -0
- data/test/foreman_app/lib/sso/apache.rb +16 -0
- data/test/foreman_app/lib/sso/base.rb +27 -0
- data/test/foreman_app/lib/sso/signo.rb +60 -0
- data/test/foreman_app/lib/task.rb +39 -0
- data/test/foreman_app/lib/tasks/convert.rake +127 -0
- data/test/foreman_app/lib/tasks/exception.rake +32 -0
- data/test/foreman_app/lib/tasks/gettext.rake +9 -0
- data/test/foreman_app/lib/tasks/hosts.rake +67 -0
- data/test/foreman_app/lib/tasks/jenkins.rake +19 -0
- data/test/foreman_app/lib/tasks/load_default_data.rake +16 -0
- data/test/foreman_app/lib/tasks/locale.rake +43 -0
- data/test/foreman_app/lib/tasks/model.rake +83 -0
- data/test/foreman_app/lib/tasks/patches.rake +19 -0
- data/test/foreman_app/lib/tasks/pkg.rake +19 -0
- data/test/foreman_app/lib/tasks/puppet.rake +178 -0
- data/test/foreman_app/lib/tasks/reports.rake +82 -0
- data/test/foreman_app/lib/tasks/reset_permissions.rake +20 -0
- data/test/foreman_app/lib/tasks/security.rake +21 -0
- data/test/foreman_app/lib/tasks/smartproxy.rake +58 -0
- data/test/foreman_app/lib/tasks/test_api_dir.rake +10 -0
- data/test/foreman_app/lib/tasks/test_lib_dir.rake +14 -0
- data/test/foreman_app/lib/tasks/trends.rake +32 -0
- data/test/foreman_app/lib/timed_cached_store.rb +55 -0
- data/test/foreman_app/lib/ws_proxy.rb +78 -0
- data/test/foreman_app/locale/Makefile +54 -0
- data/test/foreman_app/locale/README +26 -0
- data/test/foreman_app/locale/de/foreman.po +4477 -0
- data/test/foreman_app/locale/en/foreman.po +4198 -0
- data/test/foreman_app/locale/es/foreman.po +4494 -0
- data/test/foreman_app/locale/foreman.pot +4198 -0
- data/test/foreman_app/locale/ja/foreman.po +4215 -0
- data/test/foreman_app/locale/model_attributes.rb +442 -0
- data/test/foreman_app/log/test.log +36021 -0
- data/test/foreman_app/public/404.html +26 -0
- data/test/foreman_app/public/422.html +26 -0
- data/test/foreman_app/public/500.html +26 -0
- data/test/foreman_app/public/blank.html +33 -0
- data/test/foreman_app/public/favicon.ico +0 -0
- data/test/foreman_app/public/robots.txt +5 -0
- data/test/foreman_app/script/foreman-config +147 -0
- data/test/foreman_app/script/performance/benchmarker +3 -0
- data/test/foreman_app/script/performance/profiler +3 -0
- data/test/foreman_app/script/rails +6 -0
- data/test/foreman_app/script/show-missing-rails-locales.sh +25 -0
- data/test/foreman_app/script/update-rails-locales.sh +16 -0
- data/test/foreman_app/test/fixtures/architectures.yml +10 -0
- data/test/foreman_app/test/fixtures/audits.yml +18 -0
- data/test/foreman_app/test/fixtures/auth_sources.yml +20 -0
- data/test/foreman_app/test/fixtures/bookmarks.yml +13 -0
- data/test/foreman_app/test/fixtures/brslc022.facts.yaml +68 -0
- data/test/foreman_app/test/fixtures/compute_resources.yml +28 -0
- data/test/foreman_app/test/fixtures/config_templates.yml +47 -0
- data/test/foreman_app/test/fixtures/domains.yml +18 -0
- data/test/foreman_app/test/fixtures/environment_classes.yml +15 -0
- data/test/foreman_app/test/fixtures/environments.yml +10 -0
- data/test/foreman_app/test/fixtures/fact_names.yml +5 -0
- data/test/foreman_app/test/fixtures/fact_values.yml +11 -0
- data/test/foreman_app/test/fixtures/features.yml +23 -0
- data/test/foreman_app/test/fixtures/host_classes.yml +9 -0
- data/test/foreman_app/test/fixtures/hostgroup_classes.yml +9 -0
- data/test/foreman_app/test/fixtures/hostgroups.yml +24 -0
- data/test/foreman_app/test/fixtures/hosts.yml +198 -0
- data/test/foreman_app/test/fixtures/images.yml +16 -0
- data/test/foreman_app/test/fixtures/key_pairs.yml +7 -0
- data/test/foreman_app/test/fixtures/logs.yml +11 -0
- data/test/foreman_app/test/fixtures/lookup_keys.yml +32 -0
- data/test/foreman_app/test/fixtures/media.yml +25 -0
- data/test/foreman_app/test/fixtures/messages.yml +7 -0
- data/test/foreman_app/test/fixtures/models.yml +10 -0
- data/test/foreman_app/test/fixtures/notices.yml +7 -0
- data/test/foreman_app/test/fixtures/operatingsystems.yml +49 -0
- data/test/foreman_app/test/fixtures/os_default_templates.yml +21 -0
- data/test/foreman_app/test/fixtures/parameters.yml +30 -0
- data/test/foreman_app/test/fixtures/ptables.yml +17 -0
- data/test/foreman_app/test/fixtures/puppetclasses.yml +13 -0
- data/test/foreman_app/test/fixtures/report-2.6.12-noops.yaml +627 -0
- data/test/foreman_app/test/fixtures/report-2.6.5-errors.yaml +60 -0
- data/test/foreman_app/test/fixtures/report-2.6.5.yaml +413 -0
- data/test/foreman_app/test/fixtures/report-3.0.1.yaml +283 -0
- data/test/foreman_app/test/fixtures/report-applied.yaml +86 -0
- data/test/foreman_app/test/fixtures/report-empty.yaml +31 -0
- data/test/foreman_app/test/fixtures/report-errors.yaml +66 -0
- data/test/foreman_app/test/fixtures/report-skipped.yaml +86 -0
- data/test/foreman_app/test/fixtures/reports.yml +13 -0
- data/test/foreman_app/test/fixtures/roles.yml +198 -0
- data/test/foreman_app/test/fixtures/sample_http_preseed_template +66 -0
- data/test/foreman_app/test/fixtures/sample_tokenised_template +66 -0
- data/test/foreman_app/test/fixtures/settings.yml +176 -0
- data/test/foreman_app/test/fixtures/smart_proxies.yml +23 -0
- data/test/foreman_app/test/fixtures/sources.yml +7 -0
- data/test/foreman_app/test/fixtures/subnet_domains.yml +9 -0
- data/test/foreman_app/test/fixtures/subnets.yml +26 -0
- data/test/foreman_app/test/fixtures/taxable_taxonomies.yml +15 -0
- data/test/foreman_app/test/fixtures/taxonomies.yml +15 -0
- data/test/foreman_app/test/fixtures/template_combinations.yml +19 -0
- data/test/foreman_app/test/fixtures/template_kinds.yml +14 -0
- data/test/foreman_app/test/fixtures/trend_counters.yml +9 -0
- data/test/foreman_app/test/fixtures/trends.yml +9 -0
- data/test/foreman_app/test/fixtures/trends_controller_test.rb +8 -0
- data/test/foreman_app/test/fixtures/user_facts.yml +7 -0
- data/test/foreman_app/test/fixtures/usergroups.yml +7 -0
- data/test/foreman_app/test/fixtures/users.yml +52 -0
- data/test/foreman_app/test/functional/api/v1/architectures_controller_test.rb +79 -0
- data/test/foreman_app/test/functional/api/v1/audits_controller_test.rb +20 -0
- data/test/foreman_app/test/functional/api/v1/auth_source_ldaps_controller_test.rb +41 -0
- data/test/foreman_app/test/functional/api/v1/bookmarks_controller_test.rb +60 -0
- data/test/foreman_app/test/functional/api/v1/common_parameters_controller_test.rb +41 -0
- data/test/foreman_app/test/functional/api/v1/compute_resources_controller_test.rb +50 -0
- data/test/foreman_app/test/functional/api/v1/config_templates_controller_test.rb +82 -0
- data/test/foreman_app/test/functional/api/v1/dashboard_controller_test.rb +12 -0
- data/test/foreman_app/test/functional/api/v1/domains_controller_test.rb +50 -0
- data/test/foreman_app/test/functional/api/v1/environments_controller_test.rb +40 -0
- data/test/foreman_app/test/functional/api/v1/fact_values_controller_test.rb +19 -0
- data/test/foreman_app/test/functional/api/v1/home_controller_test.rb +11 -0
- data/test/foreman_app/test/functional/api/v1/hostgroups_controller_test.rb +41 -0
- data/test/foreman_app/test/functional/api/v1/hosts_controller_test.rb +66 -0
- data/test/foreman_app/test/functional/api/v1/images_controller_test.rb +47 -0
- data/test/foreman_app/test/functional/api/v1/lookup_keys_controller_test.rb +41 -0
- data/test/foreman_app/test/functional/api/v1/media_controller_test.rb +48 -0
- data/test/foreman_app/test/functional/api/v1/models_controller_test.rb +43 -0
- data/test/foreman_app/test/functional/api/v1/operatingsystems_controller_test.rb +55 -0
- data/test/foreman_app/test/functional/api/v1/ptables_controller_test.rb +48 -0
- data/test/foreman_app/test/functional/api/v1/puppetclasses_controller_test.rb +40 -0
- data/test/foreman_app/test/functional/api/v1/reports_controller_test.rb +66 -0
- data/test/foreman_app/test/functional/api/v1/roles_controller_test.rb +41 -0
- data/test/foreman_app/test/functional/api/v1/settings_controller_test.rb +25 -0
- data/test/foreman_app/test/functional/api/v1/smart_proxies_controller_test.rb +72 -0
- data/test/foreman_app/test/functional/api/v1/subnets_controller_test.rb +58 -0
- data/test/foreman_app/test/functional/api/v1/template_kinds_controller_test.rb +11 -0
- data/test/foreman_app/test/functional/api/v1/usergroups_controller_test.rb +41 -0
- data/test/foreman_app/test/functional/api/v1/users_controller_test.rb +137 -0
- data/test/foreman_app/test/functional/api/v2/config_templates_controller_test.rb +80 -0
- data/test/foreman_app/test/functional/api/v2/domains_controller_test.rb +32 -0
- data/test/foreman_app/test/functional/api/v2/host_classes_controller_test.rb +29 -0
- data/test/foreman_app/test/functional/api/v2/hostgroup_class_controller_test.rb +29 -0
- data/test/foreman_app/test/functional/api/v2/locations_controller_test.rb +85 -0
- data/test/foreman_app/test/functional/api/v2/parameters_controller_test.rb +180 -0
- data/test/foreman_app/test/functional/api/v2/puppetclasses_controller_test.rb +103 -0
- data/test/foreman_app/test/functional/api/v2/template_combinations_controller_test.rb +38 -0
- data/test/foreman_app/test/functional/architectures_controller_test.rb +97 -0
- data/test/foreman_app/test/functional/audits_controller_test.rb +29 -0
- data/test/foreman_app/test/functional/auth_source_ldaps_controller_test.rb +66 -0
- data/test/foreman_app/test/functional/bookmarks_controller_test.rb +51 -0
- data/test/foreman_app/test/functional/common_parameters_controller_test.rb +69 -0
- data/test/foreman_app/test/functional/compute_resources_controller_test.rb +157 -0
- data/test/foreman_app/test/functional/compute_resources_vms_controller_test.rb +160 -0
- data/test/foreman_app/test/functional/config_templates_controller_test.rb +132 -0
- data/test/foreman_app/test/functional/dashboard_controller_test.rb +38 -0
- data/test/foreman_app/test/functional/domains_controller_test.rb +101 -0
- data/test/foreman_app/test/functional/environments_controller_test.rb +234 -0
- data/test/foreman_app/test/functional/fact_values_controller_test.rb +138 -0
- data/test/foreman_app/test/functional/facts_controller_test.rb +12 -0
- data/test/foreman_app/test/functional/home_controller_test.rb +9 -0
- data/test/foreman_app/test/functional/hostgroups_controller_test.rb +125 -0
- data/test/foreman_app/test/functional/hosts_controller_test.rb +830 -0
- data/test/foreman_app/test/functional/images_controller_test.rb +55 -0
- data/test/foreman_app/test/functional/locations_controller_test.rb +149 -0
- data/test/foreman_app/test/functional/lookup_keys_controller_test.rb +43 -0
- data/test/foreman_app/test/functional/lookup_values_controller_test.rb +8 -0
- data/test/foreman_app/test/functional/media_controller_test.rb +95 -0
- data/test/foreman_app/test/functional/models_controller_test.rb +66 -0
- data/test/foreman_app/test/functional/notices_controller_test.rb +36 -0
- data/test/foreman_app/test/functional/operatingsystems_controller_test.rb +104 -0
- data/test/foreman_app/test/functional/organizations_controller_test.rb +148 -0
- data/test/foreman_app/test/functional/ptables_controller_test.rb +142 -0
- data/test/foreman_app/test/functional/puppetclasses_controller_test.rb +66 -0
- data/test/foreman_app/test/functional/reports_controller_test.rb +191 -0
- data/test/foreman_app/test/functional/roles_controller_test.rb +124 -0
- data/test/foreman_app/test/functional/settings_controller_test.rb +34 -0
- data/test/foreman_app/test/functional/smart_proxies/autosign_controller_test.rb +8 -0
- data/test/foreman_app/test/functional/smart_proxies/puppetca_controller_test.rb +8 -0
- data/test/foreman_app/test/functional/smart_proxies_controller_test.rb +85 -0
- data/test/foreman_app/test/functional/statistics_controller_test.rb +21 -0
- data/test/foreman_app/test/functional/subnets_controller_test.rb +89 -0
- data/test/foreman_app/test/functional/tasks_controller_test.rb +8 -0
- data/test/foreman_app/test/functional/unattended_controller_test.rb +141 -0
- data/test/foreman_app/test/functional/usergroups_controller_test.rb +66 -0
- data/test/foreman_app/test/functional/users_controller_test.rb +147 -0
- data/test/foreman_app/test/lib/foreman/access_permissions_test.rb +50 -0
- data/test/foreman_app/test/lib/foreman/default_settings/loader_test.rb +39 -0
- data/test/foreman_app/test/lib/foreman/model/ovirt_test.rb +72 -0
- data/test/foreman_app/test/lib/foreman/renderer_test.rb +32 -0
- data/test/foreman_app/test/lib/foreman/util_test.rb +40 -0
- data/test/foreman_app/test/lib/net/dhcp_test.rb +39 -0
- data/test/foreman_app/test/lib/net/net_test.rb +21 -0
- data/test/foreman_app/test/lib/net/validations_test.rb +19 -0
- data/test/foreman_app/test/lib/proxy_api/bmc_test.rb +256 -0
- data/test/foreman_app/test/lib/proxy_api/dhcp_test.rb +60 -0
- data/test/foreman_app/test/lib/puppet_setting_test.rb +92 -0
- data/test/foreman_app/test/performance/browsing_test.rb +9 -0
- data/test/foreman_app/test/test_helper.rb +164 -0
- data/test/foreman_app/test/unit/architecture_test.rb +106 -0
- data/test/foreman_app/test/unit/auth_source_ldap_test.rb +205 -0
- data/test/foreman_app/test/unit/auth_source_test.rb +34 -0
- data/test/foreman_app/test/unit/bookmark_test.rb +32 -0
- data/test/foreman_app/test/unit/classification_test.rb +46 -0
- data/test/foreman_app/test/unit/common_parameter_test.rb +100 -0
- data/test/foreman_app/test/unit/compute_resource_test.rb +88 -0
- data/test/foreman_app/test/unit/config_template_test.rb +67 -0
- data/test/foreman_app/test/unit/domain_parameter_test.rb +106 -0
- data/test/foreman_app/test/unit/domain_test.rb +161 -0
- data/test/foreman_app/test/unit/environment_class_test.rb +9 -0
- data/test/foreman_app/test/unit/environment_test.rb +35 -0
- data/test/foreman_app/test/unit/fact_value_test.rb +25 -0
- data/test/foreman_app/test/unit/facts.yml +91 -0
- data/test/foreman_app/test/unit/facts_importer_test.rb +50 -0
- data/test/foreman_app/test/unit/facts_with_caps.yml +91 -0
- data/test/foreman_app/test/unit/feature_test.rb +8 -0
- data/test/foreman_app/test/unit/group_parameter_test.rb +108 -0
- data/test/foreman_app/test/unit/helpers/architecture_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/audit_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/auth_sources_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/bookmarks_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/compute_resources_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/dashboard_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/domain_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/environments_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/fact_values_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/home_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/host_groups_helper_test.rb +14 -0
- data/test/foreman_app/test/unit/helpers/hosts_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/images_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/lookup_keys_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/medium_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/model_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/operatingsystem_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/parameters_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/ptables_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/puppetclasses_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/reports_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/smart_proxies/autosign_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/smart_proxies/puppetca_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/statistics_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/tasks_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/trends_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/unattended_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/usergroups_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/helpers/users_helper_test.rb +4 -0
- data/test/foreman_app/test/unit/host_class_test.rb +8 -0
- data/test/foreman_app/test/unit/host_mailer_test.rb +70 -0
- data/test/foreman_app/test/unit/host_observer_test.rb +35 -0
- data/test/foreman_app/test/unit/host_parameter_test.rb +119 -0
- data/test/foreman_app/test/unit/host_test.rb +606 -0
- data/test/foreman_app/test/unit/hostgroup_class_test.rb +11 -0
- data/test/foreman_app/test/unit/hostgroup_test.rb +178 -0
- data/test/foreman_app/test/unit/image_test.rb +5 -0
- data/test/foreman_app/test/unit/key_pair_test.rb +4 -0
- data/test/foreman_app/test/unit/location_test.rb +162 -0
- data/test/foreman_app/test/unit/log_test.rb +8 -0
- data/test/foreman_app/test/unit/lookup_key_test.rb +88 -0
- data/test/foreman_app/test/unit/medium_test.rb +120 -0
- data/test/foreman_app/test/unit/message_test.rb +8 -0
- data/test/foreman_app/test/unit/model_test.rb +90 -0
- data/test/foreman_app/test/unit/nic_test.rb +49 -0
- data/test/foreman_app/test/unit/notice_test.rb +19 -0
- data/test/foreman_app/test/unit/operatingsystem_test.rb +139 -0
- data/test/foreman_app/test/unit/orchestration/dhcp_test.rb +161 -0
- data/test/foreman_app/test/unit/orchestration/dns_test.rb +54 -0
- data/test/foreman_app/test/unit/orchestration/pxe_local_template +11 -0
- data/test/foreman_app/test/unit/orchestration/pxe_template +4 -0
- data/test/foreman_app/test/unit/orchestration/tftp_test.rb +49 -0
- data/test/foreman_app/test/unit/orchestration_test.rb +25 -0
- data/test/foreman_app/test/unit/organization_test.rb +163 -0
- data/test/foreman_app/test/unit/os_default_template_test.rb +8 -0
- data/test/foreman_app/test/unit/parameter_test.rb +44 -0
- data/test/foreman_app/test/unit/ptable_test.rb +119 -0
- data/test/foreman_app/test/unit/puppet_class_importer_test.rb +67 -0
- data/test/foreman_app/test/unit/puppetclass_test.rb +90 -0
- data/test/foreman_app/test/unit/report_test.rb +196 -0
- data/test/foreman_app/test/unit/role_test.rb +104 -0
- data/test/foreman_app/test/unit/setting_test.rb +158 -0
- data/test/foreman_app/test/unit/smart_proxy_test.rb +27 -0
- data/test/foreman_app/test/unit/source_test.rb +8 -0
- data/test/foreman_app/test/unit/sso.rb +26 -0
- data/test/foreman_app/test/unit/sso/apache_test.rb +38 -0
- data/test/foreman_app/test/unit/sso/base_test.rb +14 -0
- data/test/foreman_app/test/unit/sso/signo_test.rb +81 -0
- data/test/foreman_app/test/unit/subnet_domain_test.rb +8 -0
- data/test/foreman_app/test/unit/subnet_test.rb +182 -0
- data/test/foreman_app/test/unit/suse_test.rb +46 -0
- data/test/foreman_app/test/unit/taxable_taxonomy_test.rb +8 -0
- data/test/foreman_app/test/unit/template_combination_test.rb +8 -0
- data/test/foreman_app/test/unit/template_kind_test.rb +8 -0
- data/test/foreman_app/test/unit/token_test.rb +67 -0
- data/test/foreman_app/test/unit/trend_counter_test.rb +8 -0
- data/test/foreman_app/test/unit/trend_test.rb +8 -0
- data/test/foreman_app/test/unit/user_fact_test.rb +8 -0
- data/test/foreman_app/test/unit/user_test.rb +196 -0
- data/test/foreman_app/test/unit/usergroup_test.rb +161 -0
- data/test/foreman_app/tmp/cache/505/030/idle_timeout +1 -0
- data/test/foreman_app/tmp/cache/505/C00/use_gravatar +1 -0
- data/test/foreman_app/tmp/cache/7D9/CD0/email_reply_address +1 -0
- data/test/foreman_app/tmp/cache/94D/A30/discovery_organization +1 -0
- data/test/foreman_app/tmp/cache/ACF/DB0/authorize_login_delegation +1 -0
- data/test/foreman_app/tmp/secret_token +1 -0
- data/test/foreman_app/vendor/assets/fonts/overpass_bold-web.eot +0 -0
- data/test/foreman_app/vendor/assets/fonts/overpass_bold-web.svg +470 -0
- data/test/foreman_app/vendor/assets/fonts/overpass_bold-web.ttf +0 -0
- data/test/foreman_app/vendor/assets/fonts/overpass_bold-web.woff +0 -0
- data/test/foreman_app/vendor/assets/fonts/overpass_regular-web.eot +0 -0
- data/test/foreman_app/vendor/assets/fonts/overpass_regular-web.svg +470 -0
- data/test/foreman_app/vendor/assets/fonts/overpass_regular-web.ttf +0 -0
- data/test/foreman_app/vendor/assets/fonts/overpass_regular-web.woff +0 -0
- data/test/foreman_app/vendor/assets/javascripts/ace/ace.js +10 -0
- data/test/foreman_app/vendor/assets/javascripts/ace/cockpit.js +1 -0
- data/test/foreman_app/vendor/assets/javascripts/ace/ext-static_highlight.js +1 -0
- data/test/foreman_app/vendor/assets/javascripts/ace/ext-textarea.js +1 -0
- data/test/foreman_app/vendor/assets/javascripts/ace/keybinding-emacs.js +1 -0
- data/test/foreman_app/vendor/assets/javascripts/ace/keybinding-vim.js +1 -0
- data/test/foreman_app/vendor/assets/javascripts/ace/mode-diff.js +165 -0
- data/test/foreman_app/vendor/assets/javascripts/ace/mode-ruby.js +1 -0
- data/test/foreman_app/vendor/assets/javascripts/ace/mode-sh.js +1 -0
- data/test/foreman_app/vendor/assets/javascripts/ace/theme-clouds.js +137 -0
- data/test/foreman_app/vendor/assets/javascripts/ace/theme-dawn.js +1 -0
- data/test/foreman_app/vendor/assets/javascripts/ace/theme-textmate.js +1 -0
- data/test/foreman_app/vendor/assets/javascripts/ace/theme-twilight.js +1 -0
- data/test/foreman_app/vendor/assets/javascripts/ace/worker-coffee.js +1 -0
- data/test/foreman_app/vendor/assets/javascripts/ace/worker-css.js +1 -0
- data/test/foreman_app/vendor/assets/javascripts/ace/worker-javascript.js +1 -0
- data/test/foreman_app/vendor/assets/javascripts/ace/worker-json.js +1 -0
- data/test/foreman_app/vendor/assets/javascripts/ace/worker-xquery.js +1 -0
- data/test/foreman_app/vendor/assets/javascripts/background-size.htc +7 -0
- data/test/foreman_app/vendor/assets/javascripts/diff.js +296 -0
- data/test/foreman_app/vendor/assets/javascripts/flot.js +5 -0
- data/test/foreman_app/vendor/assets/javascripts/jquery.cookie.js +91 -0
- data/test/foreman_app/vendor/assets/javascripts/jquery.dataTables.bootstrap-paging.js +101 -0
- data/test/foreman_app/vendor/assets/javascripts/jquery.dataTables.min.js +155 -0
- data/test/foreman_app/vendor/assets/javascripts/jquery.jeditable.js +556 -0
- data/test/foreman_app/vendor/assets/javascripts/jquery.jnotify.js +209 -0
- data/test/foreman_app/vendor/assets/javascripts/jquery.multi-select.js +503 -0
- data/test/foreman_app/vendor/assets/javascripts/noVNC/base64.js +147 -0
- data/test/foreman_app/vendor/assets/javascripts/noVNC/des.js +273 -0
- data/test/foreman_app/vendor/assets/javascripts/noVNC/display.js +700 -0
- data/test/foreman_app/vendor/assets/javascripts/noVNC/input.js +1911 -0
- data/test/foreman_app/vendor/assets/javascripts/noVNC/jsunzip.js +668 -0
- data/test/foreman_app/vendor/assets/javascripts/noVNC/logo.js +1 -0
- data/test/foreman_app/vendor/assets/javascripts/noVNC/playback.js +90 -0
- data/test/foreman_app/vendor/assets/javascripts/noVNC/rfb.js +1846 -0
- data/test/foreman_app/vendor/assets/javascripts/noVNC/ui.js +649 -0
- data/test/foreman_app/vendor/assets/javascripts/noVNC/util.js +303 -0
- data/test/foreman_app/vendor/assets/javascripts/noVNC/web-socket-js/README.txt +109 -0
- data/test/foreman_app/vendor/assets/javascripts/noVNC/web-socket-js/swfobject.js +4 -0
- data/test/foreman_app/vendor/assets/javascripts/noVNC/web-socket-js/web_socket.js +341 -0
- data/test/foreman_app/vendor/assets/javascripts/noVNC/websock.js +356 -0
- data/test/foreman_app/vendor/assets/javascripts/noVNC/webutil.js +148 -0
- data/test/foreman_app/vendor/assets/javascripts/vendor.js +7 -0
- data/test/foreman_app/vendor/assets/stylesheets/jquery.jnotify.css +97 -0
- data/test/foreman_app/vendor/assets/stylesheets/multi-select.scss +126 -0
- data/test/foreman_app/vendor/assets/stylesheets/vendor.css +3 -0
- data/test/functional/discovers_controller_test.rb +40 -0
- data/test/test_helper.rb +28 -0
- data/test/unit/facts.yml +91 -0
- data/test/unit/host_discovered_test.rb +23 -0
- data/test/unit/setting_discovered_test.rb +9 -0
- metadata +2816 -0
@@ -0,0 +1,147 @@
|
|
1
|
+
/*
|
2
|
+
* Modified from:
|
3
|
+
* http://lxr.mozilla.org/mozilla/source/extensions/xml-rpc/src/nsXmlRpcClient.js#956
|
4
|
+
*/
|
5
|
+
|
6
|
+
/* ***** BEGIN LICENSE BLOCK *****
|
7
|
+
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
8
|
+
*
|
9
|
+
* The contents of this file are subject to the Mozilla Public License Version
|
10
|
+
* 1.1 (the "License"); you may not use this file except in compliance with
|
11
|
+
* the License. You may obtain a copy of the License at
|
12
|
+
* http://www.mozilla.org/MPL/
|
13
|
+
*
|
14
|
+
* Software distributed under the License is distributed on an "AS IS" basis,
|
15
|
+
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
16
|
+
* for the specific language governing rights and limitations under the
|
17
|
+
* License.
|
18
|
+
*
|
19
|
+
* The Original Code is Mozilla XML-RPC Client component.
|
20
|
+
*
|
21
|
+
* The Initial Developer of the Original Code is
|
22
|
+
* Digital Creations 2, Inc.
|
23
|
+
* Portions created by the Initial Developer are Copyright (C) 2000
|
24
|
+
* the Initial Developer. All Rights Reserved.
|
25
|
+
*
|
26
|
+
* Contributor(s):
|
27
|
+
* Martijn Pieters <mj@digicool.com> (original author)
|
28
|
+
* Samuel Sieb <samuel@sieb.net>
|
29
|
+
*
|
30
|
+
* Alternatively, the contents of this file may be used under the terms of
|
31
|
+
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
32
|
+
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
33
|
+
* in which case the provisions of the GPL or the LGPL are applicable instead
|
34
|
+
* of those above. If you wish to allow use of your version of this file only
|
35
|
+
* under the terms of either the GPL or the LGPL, and not to allow others to
|
36
|
+
* use your version of this file under the terms of the MPL, indicate your
|
37
|
+
* decision by deleting the provisions above and replace them with the notice
|
38
|
+
* and other provisions required by the GPL or the LGPL. If you do not delete
|
39
|
+
* the provisions above, a recipient may use your version of this file under
|
40
|
+
* the terms of any one of the MPL, the GPL or the LGPL.
|
41
|
+
*
|
42
|
+
* ***** END LICENSE BLOCK ***** */
|
43
|
+
|
44
|
+
/*jslint white: false, bitwise: false, plusplus: false */
|
45
|
+
/*global console */
|
46
|
+
|
47
|
+
var Base64 = {
|
48
|
+
|
49
|
+
/* Convert data (an array of integers) to a Base64 string. */
|
50
|
+
toBase64Table : 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
|
51
|
+
base64Pad : '=',
|
52
|
+
|
53
|
+
encode: function (data) {
|
54
|
+
"use strict";
|
55
|
+
var result = '',
|
56
|
+
chrTable = Base64.toBase64Table.split(''),
|
57
|
+
pad = Base64.base64Pad,
|
58
|
+
length = data.length,
|
59
|
+
i;
|
60
|
+
// Convert every three bytes to 4 ascii characters.
|
61
|
+
for (i = 0; i < (length - 2); i += 3) {
|
62
|
+
result += chrTable[data[i] >> 2];
|
63
|
+
result += chrTable[((data[i] & 0x03) << 4) + (data[i+1] >> 4)];
|
64
|
+
result += chrTable[((data[i+1] & 0x0f) << 2) + (data[i+2] >> 6)];
|
65
|
+
result += chrTable[data[i+2] & 0x3f];
|
66
|
+
}
|
67
|
+
|
68
|
+
// Convert the remaining 1 or 2 bytes, pad out to 4 characters.
|
69
|
+
if (length%3) {
|
70
|
+
i = length - (length%3);
|
71
|
+
result += chrTable[data[i] >> 2];
|
72
|
+
if ((length%3) === 2) {
|
73
|
+
result += chrTable[((data[i] & 0x03) << 4) + (data[i+1] >> 4)];
|
74
|
+
result += chrTable[(data[i+1] & 0x0f) << 2];
|
75
|
+
result += pad;
|
76
|
+
} else {
|
77
|
+
result += chrTable[(data[i] & 0x03) << 4];
|
78
|
+
result += pad + pad;
|
79
|
+
}
|
80
|
+
}
|
81
|
+
|
82
|
+
return result;
|
83
|
+
},
|
84
|
+
|
85
|
+
/* Convert Base64 data to a string */
|
86
|
+
toBinaryTable : [
|
87
|
+
-1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
|
88
|
+
-1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
|
89
|
+
-1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,62, -1,-1,-1,63,
|
90
|
+
52,53,54,55, 56,57,58,59, 60,61,-1,-1, -1, 0,-1,-1,
|
91
|
+
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11,12,13,14,
|
92
|
+
15,16,17,18, 19,20,21,22, 23,24,25,-1, -1,-1,-1,-1,
|
93
|
+
-1,26,27,28, 29,30,31,32, 33,34,35,36, 37,38,39,40,
|
94
|
+
41,42,43,44, 45,46,47,48, 49,50,51,-1, -1,-1,-1,-1
|
95
|
+
],
|
96
|
+
|
97
|
+
decode: function (data, offset) {
|
98
|
+
"use strict";
|
99
|
+
offset = typeof(offset) !== 'undefined' ? offset : 0;
|
100
|
+
var binTable = Base64.toBinaryTable,
|
101
|
+
pad = Base64.base64Pad,
|
102
|
+
result, result_length, idx, i, c, padding,
|
103
|
+
leftbits = 0, // number of bits decoded, but yet to be appended
|
104
|
+
leftdata = 0, // bits decoded, but yet to be appended
|
105
|
+
data_length = data.indexOf('=') - offset;
|
106
|
+
|
107
|
+
if (data_length < 0) { data_length = data.length - offset; }
|
108
|
+
|
109
|
+
/* Every four characters is 3 resulting numbers */
|
110
|
+
result_length = (data_length >> 2) * 3 + Math.floor((data_length%4)/1.5);
|
111
|
+
result = new Array(result_length);
|
112
|
+
|
113
|
+
// Convert one by one.
|
114
|
+
for (idx = 0, i = offset; i < data.length; i++) {
|
115
|
+
c = binTable[data.charCodeAt(i) & 0x7f];
|
116
|
+
padding = (data.charAt(i) === pad);
|
117
|
+
// Skip illegal characters and whitespace
|
118
|
+
if (c === -1) {
|
119
|
+
console.error("Illegal character code " + data.charCodeAt(i) + " at position " + i);
|
120
|
+
continue;
|
121
|
+
}
|
122
|
+
|
123
|
+
// Collect data into leftdata, update bitcount
|
124
|
+
leftdata = (leftdata << 6) | c;
|
125
|
+
leftbits += 6;
|
126
|
+
|
127
|
+
// If we have 8 or more bits, append 8 bits to the result
|
128
|
+
if (leftbits >= 8) {
|
129
|
+
leftbits -= 8;
|
130
|
+
// Append if not padding.
|
131
|
+
if (!padding) {
|
132
|
+
result[idx++] = (leftdata >> leftbits) & 0xff;
|
133
|
+
}
|
134
|
+
leftdata &= (1 << leftbits) - 1;
|
135
|
+
}
|
136
|
+
}
|
137
|
+
|
138
|
+
// If there are any bits left, the base64 string was corrupted
|
139
|
+
if (leftbits) {
|
140
|
+
throw {name: 'Base64-Error',
|
141
|
+
message: 'Corrupted base64 string'};
|
142
|
+
}
|
143
|
+
|
144
|
+
return result;
|
145
|
+
}
|
146
|
+
|
147
|
+
}; /* End of Base64 namespace */
|
@@ -0,0 +1,273 @@
|
|
1
|
+
/*
|
2
|
+
* Ported from Flashlight VNC ActionScript implementation:
|
3
|
+
* http://www.wizhelp.com/flashlight-vnc/
|
4
|
+
*
|
5
|
+
* Full attribution follows:
|
6
|
+
*
|
7
|
+
* -------------------------------------------------------------------------
|
8
|
+
*
|
9
|
+
* This DES class has been extracted from package Acme.Crypto for use in VNC.
|
10
|
+
* The unnecessary odd parity code has been removed.
|
11
|
+
*
|
12
|
+
* These changes are:
|
13
|
+
* Copyright (C) 1999 AT&T Laboratories Cambridge. All Rights Reserved.
|
14
|
+
*
|
15
|
+
* This software is distributed in the hope that it will be useful,
|
16
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
17
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
18
|
+
*
|
19
|
+
|
20
|
+
* DesCipher - the DES encryption method
|
21
|
+
*
|
22
|
+
* The meat of this code is by Dave Zimmerman <dzimm@widget.com>, and is:
|
23
|
+
*
|
24
|
+
* Copyright (c) 1996 Widget Workshop, Inc. All Rights Reserved.
|
25
|
+
*
|
26
|
+
* Permission to use, copy, modify, and distribute this software
|
27
|
+
* and its documentation for NON-COMMERCIAL or COMMERCIAL purposes and
|
28
|
+
* without fee is hereby granted, provided that this copyright notice is kept
|
29
|
+
* intact.
|
30
|
+
*
|
31
|
+
* WIDGET WORKSHOP MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY
|
32
|
+
* OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
33
|
+
* TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
34
|
+
* PARTICULAR PURPOSE, OR NON-INFRINGEMENT. WIDGET WORKSHOP SHALL NOT BE LIABLE
|
35
|
+
* FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
|
36
|
+
* DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
|
37
|
+
*
|
38
|
+
* THIS SOFTWARE IS NOT DESIGNED OR INTENDED FOR USE OR RESALE AS ON-LINE
|
39
|
+
* CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE
|
40
|
+
* PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT
|
41
|
+
* NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT LIFE
|
42
|
+
* SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE
|
43
|
+
* SOFTWARE COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE
|
44
|
+
* PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). WIDGET WORKSHOP
|
45
|
+
* SPECIFICALLY DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR
|
46
|
+
* HIGH RISK ACTIVITIES.
|
47
|
+
*
|
48
|
+
*
|
49
|
+
* The rest is:
|
50
|
+
*
|
51
|
+
* Copyright (C) 1996 by Jef Poskanzer <jef@acme.com>. All rights reserved.
|
52
|
+
*
|
53
|
+
* Redistribution and use in source and binary forms, with or without
|
54
|
+
* modification, are permitted provided that the following conditions
|
55
|
+
* are met:
|
56
|
+
* 1. Redistributions of source code must retain the above copyright
|
57
|
+
* notice, this list of conditions and the following disclaimer.
|
58
|
+
* 2. Redistributions in binary form must reproduce the above copyright
|
59
|
+
* notice, this list of conditions and the following disclaimer in the
|
60
|
+
* documentation and/or other materials provided with the distribution.
|
61
|
+
*
|
62
|
+
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
63
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
64
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
65
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
66
|
+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
67
|
+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
68
|
+
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
69
|
+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
70
|
+
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
71
|
+
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
72
|
+
* SUCH DAMAGE.
|
73
|
+
*
|
74
|
+
* Visit the ACME Labs Java page for up-to-date versions of this and other
|
75
|
+
* fine Java utilities: http://www.acme.com/java/
|
76
|
+
*/
|
77
|
+
|
78
|
+
"use strict";
|
79
|
+
/*jslint white: false, bitwise: false, plusplus: false */
|
80
|
+
|
81
|
+
function DES(passwd) {
|
82
|
+
|
83
|
+
// Tables, permutations, S-boxes, etc.
|
84
|
+
var PC2 = [13,16,10,23, 0, 4, 2,27,14, 5,20, 9,22,18,11, 3,
|
85
|
+
25, 7,15, 6,26,19,12, 1,40,51,30,36,46,54,29,39,
|
86
|
+
50,44,32,47,43,48,38,55,33,52,45,41,49,35,28,31 ],
|
87
|
+
totrot = [ 1, 2, 4, 6, 8,10,12,14,15,17,19,21,23,25,27,28],
|
88
|
+
z = 0x0, a,b,c,d,e,f, SP1,SP2,SP3,SP4,SP5,SP6,SP7,SP8,
|
89
|
+
keys = [];
|
90
|
+
|
91
|
+
a=1<<16; b=1<<24; c=a|b; d=1<<2; e=1<<10; f=d|e;
|
92
|
+
SP1 = [c|e,z|z,a|z,c|f,c|d,a|f,z|d,a|z,z|e,c|e,c|f,z|e,b|f,c|d,b|z,z|d,
|
93
|
+
z|f,b|e,b|e,a|e,a|e,c|z,c|z,b|f,a|d,b|d,b|d,a|d,z|z,z|f,a|f,b|z,
|
94
|
+
a|z,c|f,z|d,c|z,c|e,b|z,b|z,z|e,c|d,a|z,a|e,b|d,z|e,z|d,b|f,a|f,
|
95
|
+
c|f,a|d,c|z,b|f,b|d,z|f,a|f,c|e,z|f,b|e,b|e,z|z,a|d,a|e,z|z,c|d];
|
96
|
+
a=1<<20; b=1<<31; c=a|b; d=1<<5; e=1<<15; f=d|e;
|
97
|
+
SP2 = [c|f,b|e,z|e,a|f,a|z,z|d,c|d,b|f,b|d,c|f,c|e,b|z,b|e,a|z,z|d,c|d,
|
98
|
+
a|e,a|d,b|f,z|z,b|z,z|e,a|f,c|z,a|d,b|d,z|z,a|e,z|f,c|e,c|z,z|f,
|
99
|
+
z|z,a|f,c|d,a|z,b|f,c|z,c|e,z|e,c|z,b|e,z|d,c|f,a|f,z|d,z|e,b|z,
|
100
|
+
z|f,c|e,a|z,b|d,a|d,b|f,b|d,a|d,a|e,z|z,b|e,z|f,b|z,c|d,c|f,a|e];
|
101
|
+
a=1<<17; b=1<<27; c=a|b; d=1<<3; e=1<<9; f=d|e;
|
102
|
+
SP3 = [z|f,c|e,z|z,c|d,b|e,z|z,a|f,b|e,a|d,b|d,b|d,a|z,c|f,a|d,c|z,z|f,
|
103
|
+
b|z,z|d,c|e,z|e,a|e,c|z,c|d,a|f,b|f,a|e,a|z,b|f,z|d,c|f,z|e,b|z,
|
104
|
+
c|e,b|z,a|d,z|f,a|z,c|e,b|e,z|z,z|e,a|d,c|f,b|e,b|d,z|e,z|z,c|d,
|
105
|
+
b|f,a|z,b|z,c|f,z|d,a|f,a|e,b|d,c|z,b|f,z|f,c|z,a|f,z|d,c|d,a|e];
|
106
|
+
a=1<<13; b=1<<23; c=a|b; d=1<<0; e=1<<7; f=d|e;
|
107
|
+
SP4 = [c|d,a|f,a|f,z|e,c|e,b|f,b|d,a|d,z|z,c|z,c|z,c|f,z|f,z|z,b|e,b|d,
|
108
|
+
z|d,a|z,b|z,c|d,z|e,b|z,a|d,a|e,b|f,z|d,a|e,b|e,a|z,c|e,c|f,z|f,
|
109
|
+
b|e,b|d,c|z,c|f,z|f,z|z,z|z,c|z,a|e,b|e,b|f,z|d,c|d,a|f,a|f,z|e,
|
110
|
+
c|f,z|f,z|d,a|z,b|d,a|d,c|e,b|f,a|d,a|e,b|z,c|d,z|e,b|z,a|z,c|e];
|
111
|
+
a=1<<25; b=1<<30; c=a|b; d=1<<8; e=1<<19; f=d|e;
|
112
|
+
SP5 = [z|d,a|f,a|e,c|d,z|e,z|d,b|z,a|e,b|f,z|e,a|d,b|f,c|d,c|e,z|f,b|z,
|
113
|
+
a|z,b|e,b|e,z|z,b|d,c|f,c|f,a|d,c|e,b|d,z|z,c|z,a|f,a|z,c|z,z|f,
|
114
|
+
z|e,c|d,z|d,a|z,b|z,a|e,c|d,b|f,a|d,b|z,c|e,a|f,b|f,z|d,a|z,c|e,
|
115
|
+
c|f,z|f,c|z,c|f,a|e,z|z,b|e,c|z,z|f,a|d,b|d,z|e,z|z,b|e,a|f,b|d];
|
116
|
+
a=1<<22; b=1<<29; c=a|b; d=1<<4; e=1<<14; f=d|e;
|
117
|
+
SP6 = [b|d,c|z,z|e,c|f,c|z,z|d,c|f,a|z,b|e,a|f,a|z,b|d,a|d,b|e,b|z,z|f,
|
118
|
+
z|z,a|d,b|f,z|e,a|e,b|f,z|d,c|d,c|d,z|z,a|f,c|e,z|f,a|e,c|e,b|z,
|
119
|
+
b|e,z|d,c|d,a|e,c|f,a|z,z|f,b|d,a|z,b|e,b|z,z|f,b|d,c|f,a|e,c|z,
|
120
|
+
a|f,c|e,z|z,c|d,z|d,z|e,c|z,a|f,z|e,a|d,b|f,z|z,c|e,b|z,a|d,b|f];
|
121
|
+
a=1<<21; b=1<<26; c=a|b; d=1<<1; e=1<<11; f=d|e;
|
122
|
+
SP7 = [a|z,c|d,b|f,z|z,z|e,b|f,a|f,c|e,c|f,a|z,z|z,b|d,z|d,b|z,c|d,z|f,
|
123
|
+
b|e,a|f,a|d,b|e,b|d,c|z,c|e,a|d,c|z,z|e,z|f,c|f,a|e,z|d,b|z,a|e,
|
124
|
+
b|z,a|e,a|z,b|f,b|f,c|d,c|d,z|d,a|d,b|z,b|e,a|z,c|e,z|f,a|f,c|e,
|
125
|
+
z|f,b|d,c|f,c|z,a|e,z|z,z|d,c|f,z|z,a|f,c|z,z|e,b|d,b|e,z|e,a|d];
|
126
|
+
a=1<<18; b=1<<28; c=a|b; d=1<<6; e=1<<12; f=d|e;
|
127
|
+
SP8 = [b|f,z|e,a|z,c|f,b|z,b|f,z|d,b|z,a|d,c|z,c|f,a|e,c|e,a|f,z|e,z|d,
|
128
|
+
c|z,b|d,b|e,z|f,a|e,a|d,c|d,c|e,z|f,z|z,z|z,c|d,b|d,b|e,a|f,a|z,
|
129
|
+
a|f,a|z,c|e,z|e,z|d,c|d,z|e,a|f,b|e,z|d,b|d,c|z,c|d,b|z,a|z,b|f,
|
130
|
+
z|z,c|f,a|d,b|d,c|z,b|e,b|f,z|z,c|f,a|e,a|e,z|f,z|f,a|d,b|z,c|e];
|
131
|
+
|
132
|
+
// Set the key.
|
133
|
+
function setKeys(keyBlock) {
|
134
|
+
var i, j, l, m, n, o, pc1m = [], pcr = [], kn = [],
|
135
|
+
raw0, raw1, rawi, KnLi;
|
136
|
+
|
137
|
+
for (j = 0, l = 56; j < 56; ++j, l-=8) {
|
138
|
+
l += l<-5 ? 65 : l<-3 ? 31 : l<-1 ? 63 : l===27 ? 35 : 0; // PC1
|
139
|
+
m = l & 0x7;
|
140
|
+
pc1m[j] = ((keyBlock[l >>> 3] & (1<<m)) !== 0) ? 1: 0;
|
141
|
+
}
|
142
|
+
|
143
|
+
for (i = 0; i < 16; ++i) {
|
144
|
+
m = i << 1;
|
145
|
+
n = m + 1;
|
146
|
+
kn[m] = kn[n] = 0;
|
147
|
+
for (o=28; o<59; o+=28) {
|
148
|
+
for (j = o-28; j < o; ++j) {
|
149
|
+
l = j + totrot[i];
|
150
|
+
if (l < o) {
|
151
|
+
pcr[j] = pc1m[l];
|
152
|
+
} else {
|
153
|
+
pcr[j] = pc1m[l - 28];
|
154
|
+
}
|
155
|
+
}
|
156
|
+
}
|
157
|
+
for (j = 0; j < 24; ++j) {
|
158
|
+
if (pcr[PC2[j]] !== 0) {
|
159
|
+
kn[m] |= 1<<(23-j);
|
160
|
+
}
|
161
|
+
if (pcr[PC2[j + 24]] !== 0) {
|
162
|
+
kn[n] |= 1<<(23-j);
|
163
|
+
}
|
164
|
+
}
|
165
|
+
}
|
166
|
+
|
167
|
+
// cookey
|
168
|
+
for (i = 0, rawi = 0, KnLi = 0; i < 16; ++i) {
|
169
|
+
raw0 = kn[rawi++];
|
170
|
+
raw1 = kn[rawi++];
|
171
|
+
keys[KnLi] = (raw0 & 0x00fc0000) << 6;
|
172
|
+
keys[KnLi] |= (raw0 & 0x00000fc0) << 10;
|
173
|
+
keys[KnLi] |= (raw1 & 0x00fc0000) >>> 10;
|
174
|
+
keys[KnLi] |= (raw1 & 0x00000fc0) >>> 6;
|
175
|
+
++KnLi;
|
176
|
+
keys[KnLi] = (raw0 & 0x0003f000) << 12;
|
177
|
+
keys[KnLi] |= (raw0 & 0x0000003f) << 16;
|
178
|
+
keys[KnLi] |= (raw1 & 0x0003f000) >>> 4;
|
179
|
+
keys[KnLi] |= (raw1 & 0x0000003f);
|
180
|
+
++KnLi;
|
181
|
+
}
|
182
|
+
}
|
183
|
+
|
184
|
+
// Encrypt 8 bytes of text
|
185
|
+
function enc8(text) {
|
186
|
+
var i = 0, b = text.slice(), fval, keysi = 0,
|
187
|
+
l, r, x; // left, right, accumulator
|
188
|
+
|
189
|
+
// Squash 8 bytes to 2 ints
|
190
|
+
l = b[i++]<<24 | b[i++]<<16 | b[i++]<<8 | b[i++];
|
191
|
+
r = b[i++]<<24 | b[i++]<<16 | b[i++]<<8 | b[i++];
|
192
|
+
|
193
|
+
x = ((l >>> 4) ^ r) & 0x0f0f0f0f;
|
194
|
+
r ^= x;
|
195
|
+
l ^= (x << 4);
|
196
|
+
x = ((l >>> 16) ^ r) & 0x0000ffff;
|
197
|
+
r ^= x;
|
198
|
+
l ^= (x << 16);
|
199
|
+
x = ((r >>> 2) ^ l) & 0x33333333;
|
200
|
+
l ^= x;
|
201
|
+
r ^= (x << 2);
|
202
|
+
x = ((r >>> 8) ^ l) & 0x00ff00ff;
|
203
|
+
l ^= x;
|
204
|
+
r ^= (x << 8);
|
205
|
+
r = (r << 1) | ((r >>> 31) & 1);
|
206
|
+
x = (l ^ r) & 0xaaaaaaaa;
|
207
|
+
l ^= x;
|
208
|
+
r ^= x;
|
209
|
+
l = (l << 1) | ((l >>> 31) & 1);
|
210
|
+
|
211
|
+
for (i = 0; i < 8; ++i) {
|
212
|
+
x = (r << 28) | (r >>> 4);
|
213
|
+
x ^= keys[keysi++];
|
214
|
+
fval = SP7[x & 0x3f];
|
215
|
+
fval |= SP5[(x >>> 8) & 0x3f];
|
216
|
+
fval |= SP3[(x >>> 16) & 0x3f];
|
217
|
+
fval |= SP1[(x >>> 24) & 0x3f];
|
218
|
+
x = r ^ keys[keysi++];
|
219
|
+
fval |= SP8[x & 0x3f];
|
220
|
+
fval |= SP6[(x >>> 8) & 0x3f];
|
221
|
+
fval |= SP4[(x >>> 16) & 0x3f];
|
222
|
+
fval |= SP2[(x >>> 24) & 0x3f];
|
223
|
+
l ^= fval;
|
224
|
+
x = (l << 28) | (l >>> 4);
|
225
|
+
x ^= keys[keysi++];
|
226
|
+
fval = SP7[x & 0x3f];
|
227
|
+
fval |= SP5[(x >>> 8) & 0x3f];
|
228
|
+
fval |= SP3[(x >>> 16) & 0x3f];
|
229
|
+
fval |= SP1[(x >>> 24) & 0x3f];
|
230
|
+
x = l ^ keys[keysi++];
|
231
|
+
fval |= SP8[x & 0x0000003f];
|
232
|
+
fval |= SP6[(x >>> 8) & 0x3f];
|
233
|
+
fval |= SP4[(x >>> 16) & 0x3f];
|
234
|
+
fval |= SP2[(x >>> 24) & 0x3f];
|
235
|
+
r ^= fval;
|
236
|
+
}
|
237
|
+
|
238
|
+
r = (r << 31) | (r >>> 1);
|
239
|
+
x = (l ^ r) & 0xaaaaaaaa;
|
240
|
+
l ^= x;
|
241
|
+
r ^= x;
|
242
|
+
l = (l << 31) | (l >>> 1);
|
243
|
+
x = ((l >>> 8) ^ r) & 0x00ff00ff;
|
244
|
+
r ^= x;
|
245
|
+
l ^= (x << 8);
|
246
|
+
x = ((l >>> 2) ^ r) & 0x33333333;
|
247
|
+
r ^= x;
|
248
|
+
l ^= (x << 2);
|
249
|
+
x = ((r >>> 16) ^ l) & 0x0000ffff;
|
250
|
+
l ^= x;
|
251
|
+
r ^= (x << 16);
|
252
|
+
x = ((r >>> 4) ^ l) & 0x0f0f0f0f;
|
253
|
+
l ^= x;
|
254
|
+
r ^= (x << 4);
|
255
|
+
|
256
|
+
// Spread ints to bytes
|
257
|
+
x = [r, l];
|
258
|
+
for (i = 0; i < 8; i++) {
|
259
|
+
b[i] = (x[i>>>2] >>> (8*(3 - (i%4)))) % 256;
|
260
|
+
if (b[i] < 0) { b[i] += 256; } // unsigned
|
261
|
+
}
|
262
|
+
return b;
|
263
|
+
}
|
264
|
+
|
265
|
+
// Encrypt 16 bytes of text using passwd as key
|
266
|
+
function encrypt(t) {
|
267
|
+
return enc8(t.slice(0,8)).concat(enc8(t.slice(8,16)));
|
268
|
+
}
|
269
|
+
|
270
|
+
setKeys(passwd); // Setup keys
|
271
|
+
return {'encrypt': encrypt}; // Public interface
|
272
|
+
|
273
|
+
} // function DES
|
@@ -0,0 +1,700 @@
|
|
1
|
+
/*
|
2
|
+
* noVNC: HTML5 VNC client
|
3
|
+
* Copyright (C) 2011 Joel Martin
|
4
|
+
* Licensed under LGPL-3 (see LICENSE.txt)
|
5
|
+
*
|
6
|
+
* See README.md for usage and integration instructions.
|
7
|
+
*/
|
8
|
+
|
9
|
+
/*jslint browser: true, white: false, bitwise: false */
|
10
|
+
/*global Util, Base64, changeCursor */
|
11
|
+
|
12
|
+
function Display(defaults) {
|
13
|
+
"use strict";
|
14
|
+
|
15
|
+
var that = {}, // Public API methods
|
16
|
+
conf = {}, // Configuration attributes
|
17
|
+
|
18
|
+
// Private Display namespace variables
|
19
|
+
c_ctx = null,
|
20
|
+
c_forceCanvas = false,
|
21
|
+
|
22
|
+
// Predefine function variables (jslint)
|
23
|
+
imageDataGet, rgbImageData, bgrxImageData, cmapImageData,
|
24
|
+
setFillColor, rescale,
|
25
|
+
|
26
|
+
// The full frame buffer (logical canvas) size
|
27
|
+
fb_width = 0,
|
28
|
+
fb_height = 0,
|
29
|
+
// The visible "physical canvas" viewport
|
30
|
+
viewport = {'x': 0, 'y': 0, 'w' : 0, 'h' : 0 },
|
31
|
+
cleanRect = {'x1': 0, 'y1': 0, 'x2': -1, 'y2': -1},
|
32
|
+
|
33
|
+
c_prevStyle = "",
|
34
|
+
tile = null,
|
35
|
+
tile16x16 = null,
|
36
|
+
tile_x = 0,
|
37
|
+
tile_y = 0;
|
38
|
+
|
39
|
+
|
40
|
+
// Configuration attributes
|
41
|
+
Util.conf_defaults(conf, that, defaults, [
|
42
|
+
['target', 'wo', 'dom', null, 'Canvas element for rendering'],
|
43
|
+
['context', 'ro', 'raw', null, 'Canvas 2D context for rendering (read-only)'],
|
44
|
+
['logo', 'rw', 'raw', null, 'Logo to display when cleared: {"width": width, "height": height, "data": data}'],
|
45
|
+
['true_color', 'rw', 'bool', true, 'Use true-color pixel data'],
|
46
|
+
['colourMap', 'rw', 'arr', [], 'Colour map array (when not true-color)'],
|
47
|
+
['scale', 'rw', 'float', 1.0, 'Display area scale factor 0.0 - 1.0'],
|
48
|
+
['viewport', 'rw', 'bool', false, 'Use a viewport set with viewportChange()'],
|
49
|
+
['width', 'rw', 'int', null, 'Display area width'],
|
50
|
+
['height', 'rw', 'int', null, 'Display area height'],
|
51
|
+
|
52
|
+
['render_mode', 'ro', 'str', '', 'Canvas rendering mode (read-only)'],
|
53
|
+
|
54
|
+
['prefer_js', 'rw', 'str', null, 'Prefer Javascript over canvas methods'],
|
55
|
+
['cursor_uri', 'rw', 'raw', null, 'Can we render cursor using data URI']
|
56
|
+
]);
|
57
|
+
|
58
|
+
// Override some specific getters/setters
|
59
|
+
that.get_context = function () { return c_ctx; };
|
60
|
+
|
61
|
+
that.set_scale = function(scale) { rescale(scale); };
|
62
|
+
|
63
|
+
that.set_width = function (val) { that.resize(val, fb_height); };
|
64
|
+
that.get_width = function() { return fb_width; };
|
65
|
+
|
66
|
+
that.set_height = function (val) { that.resize(fb_width, val); };
|
67
|
+
that.get_height = function() { return fb_height; };
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
//
|
72
|
+
// Private functions
|
73
|
+
//
|
74
|
+
|
75
|
+
// Create the public API interface
|
76
|
+
function constructor() {
|
77
|
+
Util.Debug(">> Display.constructor");
|
78
|
+
|
79
|
+
var c, func, i, curDat, curSave,
|
80
|
+
has_imageData = false, UE = Util.Engine;
|
81
|
+
|
82
|
+
if (! conf.target) { throw("target must be set"); }
|
83
|
+
|
84
|
+
if (typeof conf.target === 'string') {
|
85
|
+
throw("target must be a DOM element");
|
86
|
+
}
|
87
|
+
|
88
|
+
c = conf.target;
|
89
|
+
|
90
|
+
if (! c.getContext) { throw("no getContext method"); }
|
91
|
+
|
92
|
+
if (! c_ctx) { c_ctx = c.getContext('2d'); }
|
93
|
+
|
94
|
+
Util.Debug("User Agent: " + navigator.userAgent);
|
95
|
+
if (UE.gecko) { Util.Debug("Browser: gecko " + UE.gecko); }
|
96
|
+
if (UE.webkit) { Util.Debug("Browser: webkit " + UE.webkit); }
|
97
|
+
if (UE.trident) { Util.Debug("Browser: trident " + UE.trident); }
|
98
|
+
if (UE.presto) { Util.Debug("Browser: presto " + UE.presto); }
|
99
|
+
|
100
|
+
that.clear();
|
101
|
+
|
102
|
+
// Check canvas features
|
103
|
+
if ('createImageData' in c_ctx) {
|
104
|
+
conf.render_mode = "canvas rendering";
|
105
|
+
} else {
|
106
|
+
throw("Canvas does not support createImageData");
|
107
|
+
}
|
108
|
+
if (conf.prefer_js === null) {
|
109
|
+
Util.Info("Prefering javascript operations");
|
110
|
+
conf.prefer_js = true;
|
111
|
+
}
|
112
|
+
|
113
|
+
// Initialize cached tile imageData
|
114
|
+
tile16x16 = c_ctx.createImageData(16, 16);
|
115
|
+
|
116
|
+
/*
|
117
|
+
* Determine browser support for setting the cursor via data URI
|
118
|
+
* scheme
|
119
|
+
*/
|
120
|
+
curDat = [];
|
121
|
+
for (i=0; i < 8 * 8 * 4; i += 1) {
|
122
|
+
curDat.push(255);
|
123
|
+
}
|
124
|
+
try {
|
125
|
+
curSave = c.style.cursor;
|
126
|
+
changeCursor(conf.target, curDat, curDat, 2, 2, 8, 8);
|
127
|
+
if (c.style.cursor) {
|
128
|
+
if (conf.cursor_uri === null) {
|
129
|
+
conf.cursor_uri = true;
|
130
|
+
}
|
131
|
+
Util.Info("Data URI scheme cursor supported");
|
132
|
+
} else {
|
133
|
+
if (conf.cursor_uri === null) {
|
134
|
+
conf.cursor_uri = false;
|
135
|
+
}
|
136
|
+
Util.Warn("Data URI scheme cursor not supported");
|
137
|
+
}
|
138
|
+
c.style.cursor = curSave;
|
139
|
+
} catch (exc2) {
|
140
|
+
Util.Error("Data URI scheme cursor test exception: " + exc2);
|
141
|
+
conf.cursor_uri = false;
|
142
|
+
}
|
143
|
+
|
144
|
+
Util.Debug("<< Display.constructor");
|
145
|
+
return that ;
|
146
|
+
}
|
147
|
+
|
148
|
+
rescale = function(factor) {
|
149
|
+
var c, tp, x, y,
|
150
|
+
properties = ['transform', 'WebkitTransform', 'MozTransform', null];
|
151
|
+
c = conf.target;
|
152
|
+
tp = properties.shift();
|
153
|
+
while (tp) {
|
154
|
+
if (typeof c.style[tp] !== 'undefined') {
|
155
|
+
break;
|
156
|
+
}
|
157
|
+
tp = properties.shift();
|
158
|
+
}
|
159
|
+
|
160
|
+
if (tp === null) {
|
161
|
+
Util.Debug("No scaling support");
|
162
|
+
return;
|
163
|
+
}
|
164
|
+
|
165
|
+
|
166
|
+
if (typeof(factor) === "undefined") {
|
167
|
+
factor = conf.scale;
|
168
|
+
} else if (factor > 1.0) {
|
169
|
+
factor = 1.0;
|
170
|
+
} else if (factor < 0.1) {
|
171
|
+
factor = 0.1;
|
172
|
+
}
|
173
|
+
|
174
|
+
if (conf.scale === factor) {
|
175
|
+
//Util.Debug("Display already scaled to '" + factor + "'");
|
176
|
+
return;
|
177
|
+
}
|
178
|
+
|
179
|
+
conf.scale = factor;
|
180
|
+
x = c.width - c.width * factor;
|
181
|
+
y = c.height - c.height * factor;
|
182
|
+
c.style[tp] = "scale(" + conf.scale + ") translate(-" + x + "px, -" + y + "px)";
|
183
|
+
};
|
184
|
+
|
185
|
+
setFillColor = function(color) {
|
186
|
+
var bgr, newStyle;
|
187
|
+
if (conf.true_color) {
|
188
|
+
bgr = color;
|
189
|
+
} else {
|
190
|
+
bgr = conf.colourMap[color[0]];
|
191
|
+
}
|
192
|
+
newStyle = "rgb(" + bgr[2] + "," + bgr[1] + "," + bgr[0] + ")";
|
193
|
+
if (newStyle !== c_prevStyle) {
|
194
|
+
c_ctx.fillStyle = newStyle;
|
195
|
+
c_prevStyle = newStyle;
|
196
|
+
}
|
197
|
+
};
|
198
|
+
|
199
|
+
|
200
|
+
//
|
201
|
+
// Public API interface functions
|
202
|
+
//
|
203
|
+
|
204
|
+
// Shift and/or resize the visible viewport
|
205
|
+
that.viewportChange = function(deltaX, deltaY, width, height) {
|
206
|
+
var c = conf.target, v = viewport, cr = cleanRect,
|
207
|
+
saveImg = null, saveStyle, x1, y1, vx2, vy2, w, h;
|
208
|
+
|
209
|
+
if (!conf.viewport) {
|
210
|
+
Util.Debug("Setting viewport to full display region");
|
211
|
+
deltaX = -v.w; // Clamped later if out of bounds
|
212
|
+
deltaY = -v.h; // Clamped later if out of bounds
|
213
|
+
width = fb_width;
|
214
|
+
height = fb_height;
|
215
|
+
}
|
216
|
+
|
217
|
+
if (typeof(deltaX) === "undefined") { deltaX = 0; }
|
218
|
+
if (typeof(deltaY) === "undefined") { deltaY = 0; }
|
219
|
+
if (typeof(width) === "undefined") { width = v.w; }
|
220
|
+
if (typeof(height) === "undefined") { height = v.h; }
|
221
|
+
|
222
|
+
// Size change
|
223
|
+
|
224
|
+
if (width > fb_width) { width = fb_width; }
|
225
|
+
if (height > fb_height) { height = fb_height; }
|
226
|
+
|
227
|
+
if ((v.w !== width) || (v.h !== height)) {
|
228
|
+
// Change width
|
229
|
+
if ((width < v.w) && (cr.x2 > v.x + width -1)) {
|
230
|
+
cr.x2 = v.x + width - 1;
|
231
|
+
}
|
232
|
+
v.w = width;
|
233
|
+
|
234
|
+
// Change height
|
235
|
+
if ((height < v.h) && (cr.y2 > v.y + height -1)) {
|
236
|
+
cr.y2 = v.y + height - 1;
|
237
|
+
}
|
238
|
+
v.h = height;
|
239
|
+
|
240
|
+
|
241
|
+
if (v.w > 0 && v.h > 0 && c.width > 0 && c.height > 0) {
|
242
|
+
saveImg = c_ctx.getImageData(0, 0,
|
243
|
+
(c.width < v.w) ? c.width : v.w,
|
244
|
+
(c.height < v.h) ? c.height : v.h);
|
245
|
+
}
|
246
|
+
|
247
|
+
c.width = v.w;
|
248
|
+
c.height = v.h;
|
249
|
+
|
250
|
+
if (saveImg) {
|
251
|
+
c_ctx.putImageData(saveImg, 0, 0);
|
252
|
+
}
|
253
|
+
}
|
254
|
+
|
255
|
+
vx2 = v.x + v.w - 1;
|
256
|
+
vy2 = v.y + v.h - 1;
|
257
|
+
|
258
|
+
|
259
|
+
// Position change
|
260
|
+
|
261
|
+
if ((deltaX < 0) && ((v.x + deltaX) < 0)) {
|
262
|
+
deltaX = - v.x;
|
263
|
+
}
|
264
|
+
if ((vx2 + deltaX) >= fb_width) {
|
265
|
+
deltaX -= ((vx2 + deltaX) - fb_width + 1);
|
266
|
+
}
|
267
|
+
|
268
|
+
if ((v.y + deltaY) < 0) {
|
269
|
+
deltaY = - v.y;
|
270
|
+
}
|
271
|
+
if ((vy2 + deltaY) >= fb_height) {
|
272
|
+
deltaY -= ((vy2 + deltaY) - fb_height + 1);
|
273
|
+
}
|
274
|
+
|
275
|
+
if ((deltaX === 0) && (deltaY === 0)) {
|
276
|
+
//Util.Debug("skipping viewport change");
|
277
|
+
return;
|
278
|
+
}
|
279
|
+
Util.Debug("viewportChange deltaX: " + deltaX + ", deltaY: " + deltaY);
|
280
|
+
|
281
|
+
v.x += deltaX;
|
282
|
+
vx2 += deltaX;
|
283
|
+
v.y += deltaY;
|
284
|
+
vy2 += deltaY;
|
285
|
+
|
286
|
+
// Update the clean rectangle
|
287
|
+
if (v.x > cr.x1) {
|
288
|
+
cr.x1 = v.x;
|
289
|
+
}
|
290
|
+
if (vx2 < cr.x2) {
|
291
|
+
cr.x2 = vx2;
|
292
|
+
}
|
293
|
+
if (v.y > cr.y1) {
|
294
|
+
cr.y1 = v.y;
|
295
|
+
}
|
296
|
+
if (vy2 < cr.y2) {
|
297
|
+
cr.y2 = vy2;
|
298
|
+
}
|
299
|
+
|
300
|
+
if (deltaX < 0) {
|
301
|
+
// Shift viewport left, redraw left section
|
302
|
+
x1 = 0;
|
303
|
+
w = - deltaX;
|
304
|
+
} else {
|
305
|
+
// Shift viewport right, redraw right section
|
306
|
+
x1 = v.w - deltaX;
|
307
|
+
w = deltaX;
|
308
|
+
}
|
309
|
+
if (deltaY < 0) {
|
310
|
+
// Shift viewport up, redraw top section
|
311
|
+
y1 = 0;
|
312
|
+
h = - deltaY;
|
313
|
+
} else {
|
314
|
+
// Shift viewport down, redraw bottom section
|
315
|
+
y1 = v.h - deltaY;
|
316
|
+
h = deltaY;
|
317
|
+
}
|
318
|
+
|
319
|
+
// Copy the valid part of the viewport to the shifted location
|
320
|
+
saveStyle = c_ctx.fillStyle;
|
321
|
+
c_ctx.fillStyle = "rgb(255,255,255)";
|
322
|
+
if (deltaX !== 0) {
|
323
|
+
//that.copyImage(0, 0, -deltaX, 0, v.w, v.h);
|
324
|
+
//that.fillRect(x1, 0, w, v.h, [255,255,255]);
|
325
|
+
c_ctx.drawImage(c, 0, 0, v.w, v.h, -deltaX, 0, v.w, v.h);
|
326
|
+
c_ctx.fillRect(x1, 0, w, v.h);
|
327
|
+
}
|
328
|
+
if (deltaY !== 0) {
|
329
|
+
//that.copyImage(0, 0, 0, -deltaY, v.w, v.h);
|
330
|
+
//that.fillRect(0, y1, v.w, h, [255,255,255]);
|
331
|
+
c_ctx.drawImage(c, 0, 0, v.w, v.h, 0, -deltaY, v.w, v.h);
|
332
|
+
c_ctx.fillRect(0, y1, v.w, h);
|
333
|
+
}
|
334
|
+
c_ctx.fillStyle = saveStyle;
|
335
|
+
};
|
336
|
+
|
337
|
+
|
338
|
+
// Return a map of clean and dirty areas of the viewport and reset the
|
339
|
+
// tracking of clean and dirty areas.
|
340
|
+
//
|
341
|
+
// Returns: {'cleanBox': {'x': x, 'y': y, 'w': w, 'h': h},
|
342
|
+
// 'dirtyBoxes': [{'x': x, 'y': y, 'w': w, 'h': h}, ...]}
|
343
|
+
that.getCleanDirtyReset = function() {
|
344
|
+
var v = viewport, c = cleanRect, cleanBox, dirtyBoxes = [],
|
345
|
+
vx2 = v.x + v.w - 1, vy2 = v.y + v.h - 1;
|
346
|
+
|
347
|
+
|
348
|
+
// Copy the cleanRect
|
349
|
+
cleanBox = {'x': c.x1, 'y': c.y1,
|
350
|
+
'w': c.x2 - c.x1 + 1, 'h': c.y2 - c.y1 + 1};
|
351
|
+
|
352
|
+
if ((c.x1 >= c.x2) || (c.y1 >= c.y2)) {
|
353
|
+
// Whole viewport is dirty
|
354
|
+
dirtyBoxes.push({'x': v.x, 'y': v.y, 'w': v.w, 'h': v.h});
|
355
|
+
} else {
|
356
|
+
// Redraw dirty regions
|
357
|
+
if (v.x < c.x1) {
|
358
|
+
// left side dirty region
|
359
|
+
dirtyBoxes.push({'x': v.x, 'y': v.y,
|
360
|
+
'w': c.x1 - v.x + 1, 'h': v.h});
|
361
|
+
}
|
362
|
+
if (vx2 > c.x2) {
|
363
|
+
// right side dirty region
|
364
|
+
dirtyBoxes.push({'x': c.x2 + 1, 'y': v.y,
|
365
|
+
'w': vx2 - c.x2, 'h': v.h});
|
366
|
+
}
|
367
|
+
if (v.y < c.y1) {
|
368
|
+
// top/middle dirty region
|
369
|
+
dirtyBoxes.push({'x': c.x1, 'y': v.y,
|
370
|
+
'w': c.x2 - c.x1 + 1, 'h': c.y1 - v.y});
|
371
|
+
}
|
372
|
+
if (vy2 > c.y2) {
|
373
|
+
// bottom/middle dirty region
|
374
|
+
dirtyBoxes.push({'x': c.x1, 'y': c.y2 + 1,
|
375
|
+
'w': c.x2 - c.x1 + 1, 'h': vy2 - c.y2});
|
376
|
+
}
|
377
|
+
}
|
378
|
+
|
379
|
+
// Reset the cleanRect to the whole viewport
|
380
|
+
cleanRect = {'x1': v.x, 'y1': v.y,
|
381
|
+
'x2': v.x + v.w - 1, 'y2': v.y + v.h - 1};
|
382
|
+
|
383
|
+
return {'cleanBox': cleanBox, 'dirtyBoxes': dirtyBoxes};
|
384
|
+
};
|
385
|
+
|
386
|
+
// Translate viewport coordinates to absolute coordinates
|
387
|
+
that.absX = function(x) {
|
388
|
+
return x + viewport.x;
|
389
|
+
};
|
390
|
+
that.absY = function(y) {
|
391
|
+
return y + viewport.y;
|
392
|
+
};
|
393
|
+
|
394
|
+
|
395
|
+
that.resize = function(width, height) {
|
396
|
+
c_prevStyle = "";
|
397
|
+
|
398
|
+
fb_width = width;
|
399
|
+
fb_height = height;
|
400
|
+
|
401
|
+
rescale(conf.scale);
|
402
|
+
that.viewportChange();
|
403
|
+
};
|
404
|
+
|
405
|
+
that.clear = function() {
|
406
|
+
|
407
|
+
if (conf.logo) {
|
408
|
+
that.resize(conf.logo.width, conf.logo.height);
|
409
|
+
that.blitStringImage(conf.logo.data, 0, 0);
|
410
|
+
} else {
|
411
|
+
that.resize(640, 20);
|
412
|
+
c_ctx.clearRect(0, 0, viewport.w, viewport.h);
|
413
|
+
}
|
414
|
+
|
415
|
+
// No benefit over default ("source-over") in Chrome and firefox
|
416
|
+
//c_ctx.globalCompositeOperation = "copy";
|
417
|
+
};
|
418
|
+
|
419
|
+
that.fillRect = function(x, y, width, height, color) {
|
420
|
+
setFillColor(color);
|
421
|
+
c_ctx.fillRect(x - viewport.x, y - viewport.y, width, height);
|
422
|
+
};
|
423
|
+
|
424
|
+
that.copyImage = function(old_x, old_y, new_x, new_y, w, h) {
|
425
|
+
var x1 = old_x - viewport.x, y1 = old_y - viewport.y,
|
426
|
+
x2 = new_x - viewport.x, y2 = new_y - viewport.y;
|
427
|
+
c_ctx.drawImage(conf.target, x1, y1, w, h, x2, y2, w, h);
|
428
|
+
};
|
429
|
+
|
430
|
+
|
431
|
+
// Start updating a tile
|
432
|
+
that.startTile = function(x, y, width, height, color) {
|
433
|
+
var data, bgr, red, green, blue, i;
|
434
|
+
tile_x = x;
|
435
|
+
tile_y = y;
|
436
|
+
if ((width === 16) && (height === 16)) {
|
437
|
+
tile = tile16x16;
|
438
|
+
} else {
|
439
|
+
tile = c_ctx.createImageData(width, height);
|
440
|
+
}
|
441
|
+
data = tile.data;
|
442
|
+
if (conf.prefer_js) {
|
443
|
+
if (conf.true_color) {
|
444
|
+
bgr = color;
|
445
|
+
} else {
|
446
|
+
bgr = conf.colourMap[color[0]];
|
447
|
+
}
|
448
|
+
red = bgr[2];
|
449
|
+
green = bgr[1];
|
450
|
+
blue = bgr[0];
|
451
|
+
for (i = 0; i < (width * height * 4); i+=4) {
|
452
|
+
data[i ] = red;
|
453
|
+
data[i + 1] = green;
|
454
|
+
data[i + 2] = blue;
|
455
|
+
data[i + 3] = 255;
|
456
|
+
}
|
457
|
+
} else {
|
458
|
+
that.fillRect(x, y, width, height, color);
|
459
|
+
}
|
460
|
+
};
|
461
|
+
|
462
|
+
// Update sub-rectangle of the current tile
|
463
|
+
that.subTile = function(x, y, w, h, color) {
|
464
|
+
var data, p, bgr, red, green, blue, width, j, i, xend, yend;
|
465
|
+
if (conf.prefer_js) {
|
466
|
+
data = tile.data;
|
467
|
+
width = tile.width;
|
468
|
+
if (conf.true_color) {
|
469
|
+
bgr = color;
|
470
|
+
} else {
|
471
|
+
bgr = conf.colourMap[color[0]];
|
472
|
+
}
|
473
|
+
red = bgr[2];
|
474
|
+
green = bgr[1];
|
475
|
+
blue = bgr[0];
|
476
|
+
xend = x + w;
|
477
|
+
yend = y + h;
|
478
|
+
for (j = y; j < yend; j += 1) {
|
479
|
+
for (i = x; i < xend; i += 1) {
|
480
|
+
p = (i + (j * width) ) * 4;
|
481
|
+
data[p ] = red;
|
482
|
+
data[p + 1] = green;
|
483
|
+
data[p + 2] = blue;
|
484
|
+
data[p + 3] = 255;
|
485
|
+
}
|
486
|
+
}
|
487
|
+
} else {
|
488
|
+
that.fillRect(tile_x + x, tile_y + y, w, h, color);
|
489
|
+
}
|
490
|
+
};
|
491
|
+
|
492
|
+
// Draw the current tile to the screen
|
493
|
+
that.finishTile = function() {
|
494
|
+
if (conf.prefer_js) {
|
495
|
+
c_ctx.putImageData(tile, tile_x - viewport.x, tile_y - viewport.y);
|
496
|
+
}
|
497
|
+
// else: No-op, if not prefer_js then already done by setSubTile
|
498
|
+
};
|
499
|
+
|
500
|
+
rgbImageData = function(x, y, width, height, arr, offset) {
|
501
|
+
var img, i, j, data, v = viewport;
|
502
|
+
/*
|
503
|
+
if ((x - v.x >= v.w) || (y - v.y >= v.h) ||
|
504
|
+
(x - v.x + width < 0) || (y - v.y + height < 0)) {
|
505
|
+
// Skipping because outside of viewport
|
506
|
+
return;
|
507
|
+
}
|
508
|
+
*/
|
509
|
+
img = c_ctx.createImageData(width, height);
|
510
|
+
data = img.data;
|
511
|
+
for (i=0, j=offset; i < (width * height * 4); i=i+4, j=j+3) {
|
512
|
+
data[i ] = arr[j ];
|
513
|
+
data[i + 1] = arr[j + 1];
|
514
|
+
data[i + 2] = arr[j + 2];
|
515
|
+
data[i + 3] = 255; // Set Alpha
|
516
|
+
}
|
517
|
+
c_ctx.putImageData(img, x - v.x, y - v.y);
|
518
|
+
};
|
519
|
+
|
520
|
+
bgrxImageData = function(x, y, width, height, arr, offset) {
|
521
|
+
var img, i, j, data, v = viewport;
|
522
|
+
/*
|
523
|
+
if ((x - v.x >= v.w) || (y - v.y >= v.h) ||
|
524
|
+
(x - v.x + width < 0) || (y - v.y + height < 0)) {
|
525
|
+
// Skipping because outside of viewport
|
526
|
+
return;
|
527
|
+
}
|
528
|
+
*/
|
529
|
+
img = c_ctx.createImageData(width, height);
|
530
|
+
data = img.data;
|
531
|
+
for (i=0, j=offset; i < (width * height * 4); i=i+4, j=j+4) {
|
532
|
+
data[i ] = arr[j + 2];
|
533
|
+
data[i + 1] = arr[j + 1];
|
534
|
+
data[i + 2] = arr[j ];
|
535
|
+
data[i + 3] = 255; // Set Alpha
|
536
|
+
}
|
537
|
+
c_ctx.putImageData(img, x - v.x, y - v.y);
|
538
|
+
};
|
539
|
+
|
540
|
+
cmapImageData = function(x, y, width, height, arr, offset) {
|
541
|
+
var img, i, j, data, bgr, cmap;
|
542
|
+
img = c_ctx.createImageData(width, height);
|
543
|
+
data = img.data;
|
544
|
+
cmap = conf.colourMap;
|
545
|
+
for (i=0, j=offset; i < (width * height * 4); i+=4, j+=1) {
|
546
|
+
bgr = cmap[arr[j]];
|
547
|
+
data[i ] = bgr[2];
|
548
|
+
data[i + 1] = bgr[1];
|
549
|
+
data[i + 2] = bgr[0];
|
550
|
+
data[i + 3] = 255; // Set Alpha
|
551
|
+
}
|
552
|
+
c_ctx.putImageData(img, x - viewport.x, y - viewport.y);
|
553
|
+
};
|
554
|
+
|
555
|
+
that.blitImage = function(x, y, width, height, arr, offset) {
|
556
|
+
if (conf.true_color) {
|
557
|
+
bgrxImageData(x, y, width, height, arr, offset);
|
558
|
+
} else {
|
559
|
+
cmapImageData(x, y, width, height, arr, offset);
|
560
|
+
}
|
561
|
+
};
|
562
|
+
|
563
|
+
that.blitRgbImage = function(x, y, width, height, arr, offset) {
|
564
|
+
if (conf.true_color) {
|
565
|
+
rgbImageData(x, y, width, height, arr, offset);
|
566
|
+
} else {
|
567
|
+
// prolly wrong...
|
568
|
+
cmapImageData(x, y, width, height, arr, offset);
|
569
|
+
}
|
570
|
+
};
|
571
|
+
|
572
|
+
that.blitStringImage = function(str, x, y) {
|
573
|
+
var img = new Image();
|
574
|
+
img.onload = function () {
|
575
|
+
c_ctx.drawImage(img, x - viewport.x, y - viewport.y);
|
576
|
+
};
|
577
|
+
img.src = str;
|
578
|
+
};
|
579
|
+
|
580
|
+
that.changeCursor = function(pixels, mask, hotx, hoty, w, h) {
|
581
|
+
if (conf.cursor_uri === false) {
|
582
|
+
Util.Warn("changeCursor called but no cursor data URI support");
|
583
|
+
return;
|
584
|
+
}
|
585
|
+
|
586
|
+
if (conf.true_color) {
|
587
|
+
changeCursor(conf.target, pixels, mask, hotx, hoty, w, h);
|
588
|
+
} else {
|
589
|
+
changeCursor(conf.target, pixels, mask, hotx, hoty, w, h, conf.colourMap);
|
590
|
+
}
|
591
|
+
};
|
592
|
+
|
593
|
+
that.defaultCursor = function() {
|
594
|
+
conf.target.style.cursor = "default";
|
595
|
+
};
|
596
|
+
|
597
|
+
return constructor(); // Return the public API interface
|
598
|
+
|
599
|
+
} // End of Display()
|
600
|
+
|
601
|
+
|
602
|
+
/* Set CSS cursor property using data URI encoded cursor file */
|
603
|
+
function changeCursor(target, pixels, mask, hotx, hoty, w, h, cmap) {
|
604
|
+
"use strict";
|
605
|
+
var cur = [], rgb, IHDRsz, RGBsz, ANDsz, XORsz, url, idx, alpha, x, y;
|
606
|
+
//Util.Debug(">> changeCursor, x: " + hotx + ", y: " + hoty + ", w: " + w + ", h: " + h);
|
607
|
+
|
608
|
+
// Push multi-byte little-endian values
|
609
|
+
cur.push16le = function (num) {
|
610
|
+
this.push((num ) & 0xFF,
|
611
|
+
(num >> 8) & 0xFF );
|
612
|
+
};
|
613
|
+
cur.push32le = function (num) {
|
614
|
+
this.push((num ) & 0xFF,
|
615
|
+
(num >> 8) & 0xFF,
|
616
|
+
(num >> 16) & 0xFF,
|
617
|
+
(num >> 24) & 0xFF );
|
618
|
+
};
|
619
|
+
|
620
|
+
IHDRsz = 40;
|
621
|
+
RGBsz = w * h * 4;
|
622
|
+
XORsz = Math.ceil( (w * h) / 8.0 );
|
623
|
+
ANDsz = Math.ceil( (w * h) / 8.0 );
|
624
|
+
|
625
|
+
// Main header
|
626
|
+
cur.push16le(0); // 0: Reserved
|
627
|
+
cur.push16le(2); // 2: .CUR type
|
628
|
+
cur.push16le(1); // 4: Number of images, 1 for non-animated ico
|
629
|
+
|
630
|
+
// Cursor #1 header (ICONDIRENTRY)
|
631
|
+
cur.push(w); // 6: width
|
632
|
+
cur.push(h); // 7: height
|
633
|
+
cur.push(0); // 8: colors, 0 -> true-color
|
634
|
+
cur.push(0); // 9: reserved
|
635
|
+
cur.push16le(hotx); // 10: hotspot x coordinate
|
636
|
+
cur.push16le(hoty); // 12: hotspot y coordinate
|
637
|
+
cur.push32le(IHDRsz + RGBsz + XORsz + ANDsz);
|
638
|
+
// 14: cursor data byte size
|
639
|
+
cur.push32le(22); // 18: offset of cursor data in the file
|
640
|
+
|
641
|
+
|
642
|
+
// Cursor #1 InfoHeader (ICONIMAGE/BITMAPINFO)
|
643
|
+
cur.push32le(IHDRsz); // 22: Infoheader size
|
644
|
+
cur.push32le(w); // 26: Cursor width
|
645
|
+
cur.push32le(h*2); // 30: XOR+AND height
|
646
|
+
cur.push16le(1); // 34: number of planes
|
647
|
+
cur.push16le(32); // 36: bits per pixel
|
648
|
+
cur.push32le(0); // 38: Type of compression
|
649
|
+
|
650
|
+
cur.push32le(XORsz + ANDsz); // 43: Size of Image
|
651
|
+
// Gimp leaves this as 0
|
652
|
+
|
653
|
+
cur.push32le(0); // 46: reserved
|
654
|
+
cur.push32le(0); // 50: reserved
|
655
|
+
cur.push32le(0); // 54: reserved
|
656
|
+
cur.push32le(0); // 58: reserved
|
657
|
+
|
658
|
+
// 62: color data (RGBQUAD icColors[])
|
659
|
+
for (y = h-1; y >= 0; y -= 1) {
|
660
|
+
for (x = 0; x < w; x += 1) {
|
661
|
+
idx = y * Math.ceil(w / 8) + Math.floor(x/8);
|
662
|
+
alpha = (mask[idx] << (x % 8)) & 0x80 ? 255 : 0;
|
663
|
+
|
664
|
+
if (cmap) {
|
665
|
+
idx = (w * y) + x;
|
666
|
+
rgb = cmap[pixels[idx]];
|
667
|
+
cur.push(rgb[2]); // blue
|
668
|
+
cur.push(rgb[1]); // green
|
669
|
+
cur.push(rgb[0]); // red
|
670
|
+
cur.push(alpha); // alpha
|
671
|
+
} else {
|
672
|
+
idx = ((w * y) + x) * 4;
|
673
|
+
cur.push(pixels[idx + 2]); // blue
|
674
|
+
cur.push(pixels[idx + 1]); // green
|
675
|
+
cur.push(pixels[idx ]); // red
|
676
|
+
cur.push(alpha); // alpha
|
677
|
+
}
|
678
|
+
}
|
679
|
+
}
|
680
|
+
|
681
|
+
// XOR/bitmask data (BYTE icXOR[])
|
682
|
+
// (ignored, just needs to be right size)
|
683
|
+
for (y = 0; y < h; y += 1) {
|
684
|
+
for (x = 0; x < Math.ceil(w / 8); x += 1) {
|
685
|
+
cur.push(0x00);
|
686
|
+
}
|
687
|
+
}
|
688
|
+
|
689
|
+
// AND/bitmask data (BYTE icAND[])
|
690
|
+
// (ignored, just needs to be right size)
|
691
|
+
for (y = 0; y < h; y += 1) {
|
692
|
+
for (x = 0; x < Math.ceil(w / 8); x += 1) {
|
693
|
+
cur.push(0x00);
|
694
|
+
}
|
695
|
+
}
|
696
|
+
|
697
|
+
url = "data:image/x-icon;base64," + Base64.encode(cur);
|
698
|
+
target.style.cursor = "url(" + url + ") " + hotx + " " + hoty + ", default";
|
699
|
+
//Util.Debug("<< changeCursor, cur.length: " + cur.length);
|
700
|
+
}
|