authorails 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/AUTHORAILS_README +20 -0
- data/CHANGELOG +1366 -0
- data/MIT-LICENSE +20 -0
- data/README +182 -0
- data/Rakefile +334 -0
- data/bin/about +3 -0
- data/bin/authorails +19 -0
- data/bin/breakpointer +3 -0
- data/bin/console +3 -0
- data/bin/destroy +3 -0
- data/bin/generate +3 -0
- data/bin/performance/benchmarker +3 -0
- data/bin/performance/profiler +3 -0
- data/bin/plugin +3 -0
- data/bin/process/inspector +3 -0
- data/bin/process/reaper +3 -0
- data/bin/process/spawner +3 -0
- data/bin/runner +3 -0
- data/bin/server +3 -0
- data/builtin/rails_info/rails/info.rb +123 -0
- data/builtin/rails_info/rails/info_controller.rb +9 -0
- data/builtin/rails_info/rails/info_helper.rb +2 -0
- data/builtin/rails_info/rails_info_controller.rb +2 -0
- data/configs/apache.conf +40 -0
- data/configs/databases/frontbase.yml +28 -0
- data/configs/databases/mysql.yml +48 -0
- data/configs/databases/oracle.yml +39 -0
- data/configs/databases/postgresql.yml +44 -0
- data/configs/databases/sqlite2.yml +16 -0
- data/configs/databases/sqlite3.yml +19 -0
- data/configs/empty.log +0 -0
- data/configs/lighttpd.conf +54 -0
- data/configs/routes.rb +23 -0
- data/controllers/accounts_controller.rb +11 -0
- data/controllers/admin_controller.rb +76 -0
- data/controllers/begin_controller.rb +5 -0
- data/controllers/login_controller.rb +101 -0
- data/controllers/permission_controller.rb +91 -0
- data/controllers/roles_controller.rb +58 -0
- data/controllers/tables_controller.rb +714 -0
- data/dispatches/dispatch.fcgi +24 -0
- data/dispatches/dispatch.rb +10 -0
- data/dispatches/gateway.cgi +97 -0
- data/doc/README_FOR_APP +2 -0
- data/environments/boot.rb +45 -0
- data/environments/development.rb +21 -0
- data/environments/environment.rb +63 -0
- data/environments/production.rb +18 -0
- data/environments/test.rb +19 -0
- data/fresh_rakefile +10 -0
- data/helpers/application.rb +607 -0
- data/helpers/application_helper.rb +315 -0
- data/helpers/permission_helper.rb +27 -0
- data/helpers/test_helper.rb +28 -0
- data/html/404.html +30 -0
- data/html/500.html +30 -0
- data/html/favicon.ico +0 -0
- data/html/images/ArrowDn.png +0 -0
- data/html/images/ArrowUp.png +0 -0
- data/html/images/arrow.gif +0 -0
- data/html/images/authorails_logo.gif +0 -0
- data/html/images/delete.png +0 -0
- data/html/images/edit.png +0 -0
- data/html/images/minus.gif +0 -0
- data/html/images/plus.gif +0 -0
- data/html/images/rails.png +0 -0
- data/html/images/show.png +0 -0
- data/html/images/spinner.gif +0 -0
- data/html/index.html +273 -0
- data/html/javascripts/application.js +2 -0
- data/html/javascripts/controls.js +833 -0
- data/html/javascripts/dragdrop.js +942 -0
- data/html/javascripts/effects.js +1088 -0
- data/html/javascripts/live_validation.js +4 -0
- data/html/javascripts/prototype.js +2515 -0
- data/html/robots.txt +1 -0
- data/lib/authorails/version.rb +9 -0
- data/lib/binding_of_caller.rb +85 -0
- data/lib/breakpoint.rb +553 -0
- data/lib/breakpoint_client.rb +196 -0
- data/lib/code_statistics.rb +107 -0
- data/lib/commands.rb +17 -0
- data/lib/commands/about.rb +2 -0
- data/lib/commands/breakpointer.rb +1 -0
- data/lib/commands/console.rb +25 -0
- data/lib/commands/destroy.rb +6 -0
- data/lib/commands/generate.rb +6 -0
- data/lib/commands/ncgi/listener +86 -0
- data/lib/commands/ncgi/tracker +69 -0
- data/lib/commands/performance/benchmarker.rb +24 -0
- data/lib/commands/performance/profiler.rb +50 -0
- data/lib/commands/plugin.rb +918 -0
- data/lib/commands/process/inspector.rb +68 -0
- data/lib/commands/process/reaper.rb +149 -0
- data/lib/commands/process/spawner.rb +209 -0
- data/lib/commands/process/spinner.rb +57 -0
- data/lib/commands/runner.rb +48 -0
- data/lib/commands/server.rb +39 -0
- data/lib/commands/servers/base.rb +19 -0
- data/lib/commands/servers/lighttpd.rb +94 -0
- data/lib/commands/servers/mongrel.rb +65 -0
- data/lib/commands/servers/webrick.rb +59 -0
- data/lib/commands/update.rb +4 -0
- data/lib/console_app.rb +27 -0
- data/lib/console_sandbox.rb +6 -0
- data/lib/console_with_helpers.rb +23 -0
- data/lib/dispatcher.rb +173 -0
- data/lib/fcgi_handler.rb +225 -0
- data/lib/initializer.rb +702 -0
- data/lib/rails_generator.rb +43 -0
- data/lib/rails_generator/base.rb +261 -0
- data/lib/rails_generator/commands.rb +581 -0
- data/lib/rails_generator/generated_attribute.rb +42 -0
- data/lib/rails_generator/generators/applications/app/USAGE +16 -0
- data/lib/rails_generator/generators/applications/app/app_generator.rb +341 -0
- data/lib/rails_generator/generators/components/controller/USAGE +30 -0
- data/lib/rails_generator/generators/components/controller/controller_generator.rb +37 -0
- data/lib/rails_generator/generators/components/controller/templates/controller.rb +10 -0
- data/lib/rails_generator/generators/components/controller/templates/functional_test.rb +18 -0
- data/lib/rails_generator/generators/components/controller/templates/helper.rb +2 -0
- data/lib/rails_generator/generators/components/controller/templates/view.rhtml +2 -0
- data/lib/rails_generator/generators/components/integration_test/USAGE +14 -0
- data/lib/rails_generator/generators/components/integration_test/integration_test_generator.rb +16 -0
- data/lib/rails_generator/generators/components/integration_test/templates/integration_test.rb +10 -0
- data/lib/rails_generator/generators/components/mailer/USAGE +18 -0
- data/lib/rails_generator/generators/components/mailer/mailer_generator.rb +34 -0
- data/lib/rails_generator/generators/components/mailer/templates/fixture.rhtml +3 -0
- data/lib/rails_generator/generators/components/mailer/templates/mailer.rb +13 -0
- data/lib/rails_generator/generators/components/mailer/templates/unit_test.rb +37 -0
- data/lib/rails_generator/generators/components/mailer/templates/view.rhtml +3 -0
- data/lib/rails_generator/generators/components/migration/USAGE +14 -0
- data/lib/rails_generator/generators/components/migration/migration_generator.rb +7 -0
- data/lib/rails_generator/generators/components/migration/templates/migration.rb +7 -0
- data/lib/rails_generator/generators/components/model/USAGE +26 -0
- data/lib/rails_generator/generators/components/model/model_generator.rb +38 -0
- data/lib/rails_generator/generators/components/model/templates/fixtures.yml +11 -0
- data/lib/rails_generator/generators/components/model/templates/migration.rb +13 -0
- data/lib/rails_generator/generators/components/model/templates/model.rb +2 -0
- data/lib/rails_generator/generators/components/model/templates/unit_test.rb +10 -0
- data/lib/rails_generator/generators/components/observer/USAGE +15 -0
- data/lib/rails_generator/generators/components/observer/observer_generator.rb +16 -0
- data/lib/rails_generator/generators/components/observer/templates/observer.rb +2 -0
- data/lib/rails_generator/generators/components/observer/templates/unit_test.rb +10 -0
- data/lib/rails_generator/generators/components/plugin/USAGE +35 -0
- data/lib/rails_generator/generators/components/plugin/plugin_generator.rb +38 -0
- data/lib/rails_generator/generators/components/plugin/templates/README +4 -0
- data/lib/rails_generator/generators/components/plugin/templates/Rakefile +22 -0
- data/lib/rails_generator/generators/components/plugin/templates/USAGE +8 -0
- data/lib/rails_generator/generators/components/plugin/templates/generator.rb +8 -0
- data/lib/rails_generator/generators/components/plugin/templates/init.rb +1 -0
- data/lib/rails_generator/generators/components/plugin/templates/install.rb +1 -0
- data/lib/rails_generator/generators/components/plugin/templates/plugin.rb +1 -0
- data/lib/rails_generator/generators/components/plugin/templates/tasks.rake +4 -0
- data/lib/rails_generator/generators/components/plugin/templates/uninstall.rb +1 -0
- data/lib/rails_generator/generators/components/plugin/templates/unit_test.rb +8 -0
- data/lib/rails_generator/generators/components/resource/resource_generator.rb +76 -0
- data/lib/rails_generator/generators/components/resource/templates/USAGE +18 -0
- data/lib/rails_generator/generators/components/resource/templates/controller.rb +2 -0
- data/lib/rails_generator/generators/components/resource/templates/fixtures.yml +11 -0
- data/lib/rails_generator/generators/components/resource/templates/functional_test.rb +20 -0
- data/lib/rails_generator/generators/components/resource/templates/helper.rb +2 -0
- data/lib/rails_generator/generators/components/resource/templates/migration.rb +13 -0
- data/lib/rails_generator/generators/components/resource/templates/model.rb +2 -0
- data/lib/rails_generator/generators/components/resource/templates/unit_test.rb +10 -0
- data/lib/rails_generator/generators/components/scaffold/USAGE +32 -0
- data/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb +208 -0
- data/lib/rails_generator/generators/components/scaffold/templates/controller.rb +134 -0
- data/lib/rails_generator/generators/components/scaffold/templates/form.rhtml +3 -0
- data/lib/rails_generator/generators/components/scaffold/templates/form_scaffolding.rhtml +35 -0
- data/lib/rails_generator/generators/components/scaffold/templates/functional_test.rb +102 -0
- data/lib/rails_generator/generators/components/scaffold/templates/helper.rb +2 -0
- data/lib/rails_generator/generators/components/scaffold/templates/layout.rhtml +17 -0
- data/lib/rails_generator/generators/components/scaffold/templates/partial_list_elements.rhtml +127 -0
- data/lib/rails_generator/generators/components/scaffold/templates/style.css +74 -0
- data/lib/rails_generator/generators/components/scaffold/templates/view_edit.rhtml +75 -0
- data/lib/rails_generator/generators/components/scaffold/templates/view_list.rhtml +30 -0
- data/lib/rails_generator/generators/components/scaffold/templates/view_new.rhtml +8 -0
- data/lib/rails_generator/generators/components/scaffold/templates/view_show.rhtml +37 -0
- data/lib/rails_generator/generators/components/scaffold_resource/USAGE +29 -0
- data/lib/rails_generator/generators/components/scaffold_resource/scaffold_resource_generator.rb +92 -0
- data/lib/rails_generator/generators/components/scaffold_resource/templates/controller.rb +79 -0
- data/lib/rails_generator/generators/components/scaffold_resource/templates/fixtures.yml +11 -0
- data/lib/rails_generator/generators/components/scaffold_resource/templates/functional_test.rb +57 -0
- data/lib/rails_generator/generators/components/scaffold_resource/templates/helper.rb +2 -0
- data/lib/rails_generator/generators/components/scaffold_resource/templates/layout.rhtml +17 -0
- data/lib/rails_generator/generators/components/scaffold_resource/templates/migration.rb +13 -0
- data/lib/rails_generator/generators/components/scaffold_resource/templates/model.rb +2 -0
- data/lib/rails_generator/generators/components/scaffold_resource/templates/style.css +74 -0
- data/lib/rails_generator/generators/components/scaffold_resource/templates/unit_test.rb +10 -0
- data/lib/rails_generator/generators/components/scaffold_resource/templates/view_edit.rhtml +19 -0
- data/lib/rails_generator/generators/components/scaffold_resource/templates/view_index.rhtml +24 -0
- data/lib/rails_generator/generators/components/scaffold_resource/templates/view_new.rhtml +18 -0
- data/lib/rails_generator/generators/components/scaffold_resource/templates/view_show.rhtml +10 -0
- data/lib/rails_generator/generators/components/session_migration/USAGE +15 -0
- data/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb +18 -0
- data/lib/rails_generator/generators/components/session_migration/templates/migration.rb +16 -0
- data/lib/rails_generator/generators/components/web_service/USAGE +28 -0
- data/lib/rails_generator/generators/components/web_service/templates/api_definition.rb +5 -0
- data/lib/rails_generator/generators/components/web_service/templates/controller.rb +8 -0
- data/lib/rails_generator/generators/components/web_service/templates/functional_test.rb +19 -0
- data/lib/rails_generator/generators/components/web_service/web_service_generator.rb +29 -0
- data/lib/rails_generator/lookup.rb +209 -0
- data/lib/rails_generator/manifest.rb +53 -0
- data/lib/rails_generator/options.rb +143 -0
- data/lib/rails_generator/scripts.rb +83 -0
- data/lib/rails_generator/scripts/destroy.rb +7 -0
- data/lib/rails_generator/scripts/generate.rb +7 -0
- data/lib/rails_generator/scripts/update.rb +12 -0
- data/lib/rails_generator/simple_logger.rb +46 -0
- data/lib/rails_generator/spec.rb +44 -0
- data/lib/railties_path.rb +1 -0
- data/lib/ruby_version_check.rb +17 -0
- data/lib/rubyprof_ext.rb +35 -0
- data/lib/tasks/databases.rake +187 -0
- data/lib/tasks/documentation.rake +82 -0
- data/lib/tasks/framework.rake +112 -0
- data/lib/tasks/log.rake +9 -0
- data/lib/tasks/misc.rake +4 -0
- data/lib/tasks/pre_namespace_aliases.rake +53 -0
- data/lib/tasks/rails.rb +8 -0
- data/lib/tasks/statistics.rake +18 -0
- data/lib/tasks/testing.rake +120 -0
- data/lib/tasks/tmp.rake +37 -0
- data/lib/test_help.rb +19 -0
- data/lib/webrick_server.rb +166 -0
- data/libs/migration_helper.rb +11 -0
- data/migrations/001_create_logins.rb +22 -0
- data/migrations/002_create_admins.rb +16 -0
- data/migrations/003_create_roles.rb +13 -0
- data/migrations/004_create_tables.rb +11 -0
- data/migrations/005_create_attr_types.rb +13 -0
- data/migrations/006_create_table_fields.rb +22 -0
- data/migrations/007_create_tab_operations.rb +13 -0
- data/migrations/008_create_attr_operations.rb +13 -0
- data/migrations/009_create_tab_permissions.rb +21 -0
- data/migrations/010_create_attr_permissions.rb +21 -0
- data/migrations/011_create_relations.rb +23 -0
- data/migrations/012_create_scaffolds.rb +11 -0
- data/migrations/013_create_relation_permissions.rb +20 -0
- data/models/admin.rb +38 -0
- data/models/attr_operation.rb +3 -0
- data/models/attr_permission.rb +5 -0
- data/models/attr_type.rb +3 -0
- data/models/login.rb +51 -0
- data/models/relation.rb +5 -0
- data/models/relation_permission.rb +4 -0
- data/models/role.rb +13 -0
- data/models/scaffold.rb +2 -0
- data/models/tab_operation.rb +3 -0
- data/models/tab_permission.rb +5 -0
- data/models/table.rb +18 -0
- data/models/table_field.rb +6 -0
- data/plugins/redhillonrails_core/CHANGELOG +186 -0
- data/plugins/redhillonrails_core/MIT-LICENSE +20 -0
- data/plugins/redhillonrails_core/README +152 -0
- data/plugins/redhillonrails_core/init.rb +1 -0
- data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/base.rb +54 -0
- data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/abstract_adapter.rb +46 -0
- data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/column.rb +21 -0
- data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/foreign_key_definition.rb +26 -0
- data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/index_definition.rb +11 -0
- data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/mysql_adapter.rb +94 -0
- data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/mysql_column.rb +8 -0
- data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/postgresql_adapter.rb +131 -0
- data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/schema_statements.rb +23 -0
- data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/sqlite3_adapter.rb +9 -0
- data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/table_definition.rb +27 -0
- data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/schema.rb +25 -0
- data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/schema_dumper.rb +58 -0
- data/plugins/redhillonrails_core/lib/redhillonrails_core.rb +19 -0
- data/plugins/redhillonrails_core/tasks/db/comments.rake +9 -0
- data/plugins/schema_validations/CHANGELOG +149 -0
- data/plugins/schema_validations/MIT-LICENSE +20 -0
- data/plugins/schema_validations/README +54 -0
- data/plugins/schema_validations/about.yml +5 -0
- data/plugins/schema_validations/init.rb +1 -0
- data/plugins/schema_validations/install.rb +1 -0
- data/plugins/schema_validations/lib/red_hill_consulting/schema_validations/active_record/base.rb +108 -0
- data/plugins/schema_validations/lib/schema_validations.rb +1 -0
- data/plugins/svn/README +69 -0
- data/plugins/svn/Rakefile +22 -0
- data/plugins/svn/assets/javascripts/live_validation.js +4 -0
- data/plugins/svn/assets/stylesheets/live_validation.css +28 -0
- data/plugins/svn/init.rb +2 -0
- data/plugins/svn/install.rb +1 -0
- data/plugins/svn/lib/form_helpers.rb +49 -0
- data/plugins/svn/lib/live_validations.rb +73 -0
- data/plugins/svn/tasks/live_validation_tasks.rake +17 -0
- data/plugins/svn/test/form_helpers_test.rb +214 -0
- data/plugins/svn/test/live_validations_test.rb +124 -0
- data/plugins/svn/test/resource.rb +17 -0
- data/plugins/svn/uninstall.rb +1 -0
- data/stylesheets/live_validation.css +28 -0
- data/stylesheets/print.css +72 -0
- data/stylesheets/scaffold.css +175 -0
- data/views/accounts/index.rhtml +12 -0
- data/views/accounts/show.rhtml +5 -0
- data/views/admin/_form.rhtml +15 -0
- data/views/admin/add_user.rhtml +21 -0
- data/views/admin/change_pwd.rhtml +23 -0
- data/views/admin/edit_user.rhtml +12 -0
- data/views/admin/index.rhtml +19 -0
- data/views/begin/index.rhtml +0 -0
- data/views/layouts/general.rhtml +59 -0
- data/views/layouts/login.rhtml +18 -0
- data/views/login/change_pwd.rhtml +21 -0
- data/views/login/expired_pwd.rhtml +19 -0
- data/views/login/index.rhtml +15 -0
- data/views/permission/index.rhtml +17 -0
- data/views/permission/relations.rhtml +28 -0
- data/views/permission/roles.rhtml +45 -0
- data/views/permission/tables.rhtml +53 -0
- data/views/roles/_form.rhtml +8 -0
- data/views/roles/edit.rhtml +11 -0
- data/views/roles/list.rhtml +28 -0
- data/views/roles/new.rhtml +8 -0
- data/views/roles/show.rhtml +14 -0
- data/views/shared_views/_advanced_search.rhtml +35 -0
- data/views/shared_views/_child_elements.rhtml +30 -0
- data/views/shared_views/_childs.rhtml +20 -0
- data/views/shared_views/_father_elements.rhtml +27 -0
- data/views/shared_views/_fathers.rhtml +21 -0
- data/views/shared_views/_fathers_header.rhtml +58 -0
- data/views/shared_views/_many_to_many_elements.rhtml +50 -0
- data/views/shared_views/_many_to_manys.rhtml +18 -0
- data/views/shared_views/_one_to_one_elements.rhtml +24 -0
- data/views/shared_views/_one_to_one_father_elements.rhtml +26 -0
- data/views/shared_views/_one_to_ones.rhtml +42 -0
- data/views/shared_views/_one_to_ones_header.rhtml +117 -0
- data/views/shared_views/edit_child.rhtml +89 -0
- data/views/shared_views/edit_many.rhtml +75 -0
- data/views/tables/_cascade.rhtml +10 -0
- data/views/tables/_field.rhtml +10 -0
- data/views/tables/_fk.rhtml +9 -0
- data/views/tables/_form.rhtml +9 -0
- data/views/tables/_join_table_name.rhtml +16 -0
- data/views/tables/_relation_types.rhtml +5 -0
- data/views/tables/_tables.rhtml +15 -0
- data/views/tables/attributes.rhtml +15 -0
- data/views/tables/edit.rhtml +11 -0
- data/views/tables/edit_field.rhtml +18 -0
- data/views/tables/list.rhtml +39 -0
- data/views/tables/new.rhtml +8 -0
- data/views/tables/new_field.rhtml +25 -0
- data/views/tables/relations.rhtml +24 -0
- data/views/tables/show.rhtml +24 -0
- metadata +518 -0
@@ -0,0 +1,134 @@
|
|
1
|
+
class <%= controller_class_name %>Controller < ApplicationController
|
2
|
+
<% unless suffix -%>
|
3
|
+
def index
|
4
|
+
list
|
5
|
+
render :action => 'list'
|
6
|
+
end
|
7
|
+
<% end -%>
|
8
|
+
|
9
|
+
<% for action in unscaffolded_actions -%>
|
10
|
+
def <%= action %><%= suffix %>
|
11
|
+
end
|
12
|
+
|
13
|
+
<% end -%>
|
14
|
+
# GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
|
15
|
+
verify :method => :post, :only => [ :destroy<%= suffix %>, :create<%= suffix %>, :update<%= suffix %> ],
|
16
|
+
:redirect_to => { :action => :list<%= suffix %> }
|
17
|
+
|
18
|
+
def list<%= suffix %>
|
19
|
+
@columns = []
|
20
|
+
for column in <%= model_name %>.content_columns
|
21
|
+
if session[:superuser] #superuser can search for every field
|
22
|
+
@columns << "#{<%= model_name %>.table_name}.#{column.name}"
|
23
|
+
else #users can search only for granted fields
|
24
|
+
@fields_readable[:self].each do |field|
|
25
|
+
if column.name == field.name
|
26
|
+
@columns << "#{<%= model_name %>.table_name}.#{column.name}"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
find_related_columns
|
32
|
+
<%= singular_name %>
|
33
|
+
end
|
34
|
+
|
35
|
+
def <%= singular_name %>
|
36
|
+
per_page=10 #how many rows to show at time
|
37
|
+
find_conditions_for_search #when a search is done, finds the conditions to match
|
38
|
+
if params[:search_type].nil? or params[:search_type].empty? #simple search
|
39
|
+
@<%= singular_name %>_pages, @<%= plural_name %> = paginate :<%= plural_name %>, :per_page => per_page, :include => [@fathers,@one_to_ones,@one_to_one_fathers], :conditions => [@conditions,{:filter => "%" + @filter + "%"}], :order => @order
|
40
|
+
else
|
41
|
+
if @search_type == "unilateral"
|
42
|
+
@<%= singular_name %>_pages, @<%= plural_name %> = paginate :<%= plural_name %>, :per_page => per_page, :include => [@fathers,@one_to_ones,@one_to_one_fathers], :conditions => [@conditions,{:filter => @query_advanced}], :order => @order
|
43
|
+
elsif @search_type == "bilateral"
|
44
|
+
@<%= singular_name %>_pages, @<%= plural_name %> = paginate :<%= plural_name %>, :per_page => per_page, :include => [@fathers,@one_to_ones,@one_to_one_fathers], :conditions => [@conditions,{:min => @min, :max => @max}], :order => @order
|
45
|
+
end
|
46
|
+
end
|
47
|
+
if request.xml_http_request?
|
48
|
+
render :partial => "list_elements", :layout => false
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def advanced_search
|
53
|
+
@columns = []
|
54
|
+
for column in <%= model_name %>.content_columns
|
55
|
+
if session[:superuser] #superuser can search for every field
|
56
|
+
@columns << "#{<%= model_name %>.table_name}.#{column.name}"
|
57
|
+
else #users can search only for granted fields
|
58
|
+
@fields_readable[:self].each do |field|
|
59
|
+
if column.name == field.name
|
60
|
+
@columns << "#{<%= model_name %>.table_name}.#{column.name}"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
find_related_columns
|
66
|
+
render :partial => "shared_views/advanced_search"
|
67
|
+
end
|
68
|
+
|
69
|
+
def show<%= suffix %>
|
70
|
+
@<%= singular_name %> = <%= model_name %>.find(params[:id],:include => [@childs,@fathers,@one_to_ones])
|
71
|
+
end
|
72
|
+
|
73
|
+
def new<%= suffix %>
|
74
|
+
@<%= singular_name %> = <%= model_name %>.new
|
75
|
+
end
|
76
|
+
|
77
|
+
def create<%= suffix %>
|
78
|
+
@<%= singular_name %> = <%= model_name %>.new(params[:<%= singular_name %>])
|
79
|
+
if @<%= singular_name %>.save
|
80
|
+
delete_old_one_to_one_fathers
|
81
|
+
save_one_to_one_childs
|
82
|
+
flash[:notice] = '<%= model_name %> was successfully created.'
|
83
|
+
redirect_to :action => 'list<%= suffix %>'
|
84
|
+
else
|
85
|
+
render :action => 'new<%= suffix %>'
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def edit<%= suffix %>
|
90
|
+
@<%= singular_name %> = <%= model_name %>.find(params[:id])
|
91
|
+
end
|
92
|
+
|
93
|
+
def update
|
94
|
+
@<%= singular_name %> = <%= model_name %>.find(params[:id])
|
95
|
+
if @<%= singular_name %>.update_attributes(params[:<%= singular_name %>])
|
96
|
+
delete_old_one_to_one_fathers
|
97
|
+
save_one_to_one_childs
|
98
|
+
flash[:notice] = '<%= model_name %> was successfully updated.'
|
99
|
+
redirect_to :action => 'list<%= suffix %>'
|
100
|
+
else
|
101
|
+
render :action => 'edit<%= suffix %>'
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def destroy<%= suffix %>
|
106
|
+
begin
|
107
|
+
<%= model_name %>.find(params[:id]).destroy
|
108
|
+
flash[:notice] = '<%= model_name %> was succesfully deleted.'
|
109
|
+
redirect_to :action => 'list<%= suffix %>'
|
110
|
+
rescue ActiveRecord::ReferentialIntegrityProtectionError => error
|
111
|
+
flash[:notice] = error
|
112
|
+
redirect_to :action => 'list'
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
def delete_old_one_to_one_fathers
|
117
|
+
@one_to_one_fathers.each {|father|
|
118
|
+
unless Relation.find_by_join_table(controller_name) #else other relations in a many-to-many relation will be erased
|
119
|
+
fk=father.foreign_key
|
120
|
+
<%= model_name %>.find(:all, :conditions => "id <> #{@<%= singular_name %>.id} and #{fk}=#{@<%= singular_name %>.send(fk)}").each {|r| r.update_attribute fk,nil} unless @<%= singular_name %>.send(fk).nil?
|
121
|
+
end
|
122
|
+
}
|
123
|
+
end
|
124
|
+
|
125
|
+
def save_one_to_one_childs
|
126
|
+
@one_to_ones.each {|one|
|
127
|
+
fk=controller_name.singularize.foreign_key
|
128
|
+
unless params[one].nil?
|
129
|
+
one.camelize.constantize.find(:all, :conditions => "#{fk}=#{@<%= singular_name %>.id}").each {|r| r.update_attribute fk,nil}
|
130
|
+
one.camelize.constantize.find(params[one][:id]).update_attribute fk,@<%= singular_name %>.id unless params[one][:id].empty?
|
131
|
+
end
|
132
|
+
}
|
133
|
+
end
|
134
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<%= all_input_tags(@model_instance, @singular_name, {}) %>
|
2
|
+
|
3
|
+
<%%@rows.each do |row|%>
|
4
|
+
<%%@rel_permissions.each do |rel|%>
|
5
|
+
<%%if rel==row[:referented_table]%>
|
6
|
+
<p><label for="<%= @singular_name %>_<%%= row[:name] %>"><%%= row[:name].titleize %></label>
|
7
|
+
<%%if session[:superuser] or !@fields_readable[row[:referented_table].singularize].empty?%>
|
8
|
+
<%%= check_relation_privileges('<%=@singular_name%>',row[:name],row[:object],row[:referented_table],@<%= singular_name %>)%>
|
9
|
+
<%%else%>
|
10
|
+
<span id="green">Sorry, but seems that you can't show anything!</span>
|
11
|
+
<%%end%></p>
|
12
|
+
<%%end%>
|
13
|
+
<%%end%>
|
14
|
+
<%%end%>
|
15
|
+
|
16
|
+
<%%unless @one_to_one_for_select.nil?%>
|
17
|
+
<%%@one_to_one_for_select.each do |one|%>
|
18
|
+
<%%@rel_permissions.each do |rel|%>
|
19
|
+
<%%if rel==one[:name].pluralize%>
|
20
|
+
<p><label for="<%%=one[:name]%>_id"><%%= one[:name].titleize %></label>
|
21
|
+
<%% unless @<%= singular_name %>.send(one[:name]).nil? %>
|
22
|
+
<%% selected = @<%= singular_name %>.send(one[:name]).id %>
|
23
|
+
<%% else %>
|
24
|
+
<%% selected = nil %>
|
25
|
+
<%%end%>
|
26
|
+
<%%if session[:superuser] or !@fields_readable[one[:name]].empty?%>
|
27
|
+
<%%= check_relation_privileges2(one[:name],:id,one[:object],selected,@team)%>
|
28
|
+
</p>
|
29
|
+
<%%else%>
|
30
|
+
<span class="bold_green">Sorry, but seems that you can't show anything!</span><br /><br />
|
31
|
+
<%%end%>
|
32
|
+
<%%end%>
|
33
|
+
<%%end%>
|
34
|
+
<%%end%>
|
35
|
+
<%%end%>
|
@@ -0,0 +1,102 @@
|
|
1
|
+
require File.dirname(__FILE__) + '<%= "/.." * controller_class_nesting_depth %>/../test_helper'
|
2
|
+
require '<%= controller_file_path %>_controller'
|
3
|
+
|
4
|
+
# Re-raise errors caught by the controller.
|
5
|
+
class <%= controller_class_name %>Controller; def rescue_action(e) raise e end; end
|
6
|
+
|
7
|
+
class <%= controller_class_name %>ControllerTest < Test::Unit::TestCase
|
8
|
+
fixtures :<%= table_name %>
|
9
|
+
|
10
|
+
def setup
|
11
|
+
@controller = <%= controller_class_name %>Controller.new
|
12
|
+
@request = ActionController::TestRequest.new
|
13
|
+
@response = ActionController::TestResponse.new
|
14
|
+
|
15
|
+
@first_id = <%= plural_name %>(:first).id
|
16
|
+
end
|
17
|
+
|
18
|
+
<% for action in unscaffolded_actions -%>
|
19
|
+
def test_<%= action %>
|
20
|
+
get :<%= action %>
|
21
|
+
assert_response :success
|
22
|
+
assert_template '<%= action %>'
|
23
|
+
end
|
24
|
+
|
25
|
+
<% end -%>
|
26
|
+
<% unless suffix -%>
|
27
|
+
def test_index
|
28
|
+
get :index
|
29
|
+
assert_response :success
|
30
|
+
assert_template 'list'
|
31
|
+
end
|
32
|
+
|
33
|
+
<% end -%>
|
34
|
+
def test_list<%= suffix %>
|
35
|
+
get :list<%= suffix %>
|
36
|
+
|
37
|
+
assert_response :success
|
38
|
+
assert_template 'list<%= suffix %>'
|
39
|
+
|
40
|
+
assert_not_nil assigns(:<%= plural_name %>)
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_show<%= suffix %>
|
44
|
+
get :show<%= suffix %>, :id => @first_id
|
45
|
+
|
46
|
+
assert_response :success
|
47
|
+
assert_template 'show'
|
48
|
+
|
49
|
+
assert_not_nil assigns(:<%= singular_name %>)
|
50
|
+
assert assigns(:<%= singular_name %>).valid?
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_new<%= suffix %>
|
54
|
+
get :new<%= suffix %>
|
55
|
+
|
56
|
+
assert_response :success
|
57
|
+
assert_template 'new<%= suffix %>'
|
58
|
+
|
59
|
+
assert_not_nil assigns(:<%= singular_name %>)
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_create
|
63
|
+
num_<%= plural_name %> = <%= model_name %>.count
|
64
|
+
|
65
|
+
post :create<%= suffix %>, :<%= singular_name %> => {}
|
66
|
+
|
67
|
+
assert_response :redirect
|
68
|
+
assert_redirected_to :action => 'list<%= suffix %>'
|
69
|
+
|
70
|
+
assert_equal num_<%= plural_name %> + 1, <%= model_name %>.count
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_edit<%= suffix %>
|
74
|
+
get :edit<%= suffix %>, :id => @first_id
|
75
|
+
|
76
|
+
assert_response :success
|
77
|
+
assert_template 'edit<%= suffix %>'
|
78
|
+
|
79
|
+
assert_not_nil assigns(:<%= singular_name %>)
|
80
|
+
assert assigns(:<%= singular_name %>).valid?
|
81
|
+
end
|
82
|
+
|
83
|
+
def test_update<%= suffix %>
|
84
|
+
post :update<%= suffix %>, :id => @first_id
|
85
|
+
assert_response :redirect
|
86
|
+
assert_redirected_to :action => 'show<%= suffix %>', :id => @first_id
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_destroy<%= suffix %>
|
90
|
+
assert_nothing_raised {
|
91
|
+
<%= model_name %>.find(@first_id)
|
92
|
+
}
|
93
|
+
|
94
|
+
post :destroy, :id => @first_id
|
95
|
+
assert_response :redirect
|
96
|
+
assert_redirected_to :action => 'list<%= suffix %>'
|
97
|
+
|
98
|
+
assert_raise(ActiveRecord::RecordNotFound) {
|
99
|
+
<%= model_name %>.find(@first_id)
|
100
|
+
}
|
101
|
+
end
|
102
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
|
4
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
5
|
+
<head>
|
6
|
+
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
|
7
|
+
<title><%= controller_class_name %>: <%%= controller.action_name %></title>
|
8
|
+
<%%= stylesheet_link_tag 'scaffold' %>
|
9
|
+
</head>
|
10
|
+
<body>
|
11
|
+
|
12
|
+
<p style="color: green"><%%= flash[:notice] %></p>
|
13
|
+
|
14
|
+
<%%= yield %>
|
15
|
+
|
16
|
+
</body>
|
17
|
+
</html>
|
@@ -0,0 +1,127 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
<%%if session[:superuser] #superuser can view anything %>
|
4
|
+
<table rules="rows" cellpadding="3" cellspacing="3" class="table">
|
5
|
+
<tr>
|
6
|
+
<%% for column in <%= model_name %>.content_columns %>
|
7
|
+
<th>
|
8
|
+
<%%= column.human_name %>
|
9
|
+
<%%if @search_type.nil?%>
|
10
|
+
<%%= link_to_remote(image_tag( "ArrowDn.png", :alt => "order by #{column.human_name} ascend", :class => "noborder"),
|
11
|
+
:url => {:action => "list", :order => "<%= plural_name %>.#{column.name} asc", :query => params[:query]}, :update => "<%= singular_name %>_list",
|
12
|
+
:before => "Element.show('spinner')" ,
|
13
|
+
:complete => "Element.hide('spinner')") %>
|
14
|
+
<%%= link_to_remote(image_tag( "ArrowUp.png", :alt => "order by #{column.human_name} descend",:class => "noborder"),
|
15
|
+
:url => {:action => "list", :order => "<%= plural_name %>.#{column.name} desc", :query => params[:query]}, :update => "<%= singular_name %>_list",
|
16
|
+
:before => "Element.show('spinner')" ,
|
17
|
+
:complete => "Element.hide('spinner')")%>
|
18
|
+
<%%else%>
|
19
|
+
<%%= link_to_remote(image_tag( "ArrowDn.png", :alt => "order by #{column.human_name} ascend", :class => "noborder"),
|
20
|
+
:url => {:action => "list", :order => "<%= plural_name %>.#{column.name} asc", :query_advanced => @query_advanced, :criteria => @criteria, :columns => @selected_columns, :search_type => @search_type, :min => @min, :max => @max, :not_for_interval_search => params[:not_for_interval_search]}, :update => "<%= singular_name %>_list",
|
21
|
+
:before => "Element.show('spinner')" ,
|
22
|
+
:complete => "Element.hide('spinner')") %>
|
23
|
+
<%%= link_to_remote(image_tag( "ArrowUp.png", :alt => "order by #{column.human_name} descend",:class => "noborder"),
|
24
|
+
:url => {:action => "list", :order => "<%= plural_name %>.#{column.name} desc", :query_advanced => @query_advanced, :criteria => @criteria, :columns => @selected_columns, :search_type => @search_type, :min => @min, :max => @max, :not_for_interval_search => params[:not_for_interval_search]}, :update => "<%= singular_name %>_list",
|
25
|
+
:before => "Element.show('spinner')" ,
|
26
|
+
:complete => "Element.hide('spinner')")%>
|
27
|
+
<%%end%>
|
28
|
+
</th>
|
29
|
+
<%% end %>
|
30
|
+
|
31
|
+
<%%= render :partial => "shared_views/fathers_header"%>
|
32
|
+
|
33
|
+
<%%= render :partial => "shared_views/one_to_ones_header"%>
|
34
|
+
|
35
|
+
<th colspan="3">Actions</th>
|
36
|
+
</tr>
|
37
|
+
|
38
|
+
<%% for <%= singular_name %> in @<%= plural_name %> %>
|
39
|
+
<tr>
|
40
|
+
<%% for column in <%= model_name %>.content_columns %>
|
41
|
+
<td><%%=h <%= singular_name %>.send(column.name) %></td>
|
42
|
+
<%% end %>
|
43
|
+
|
44
|
+
<%%= fathers_for_list(<%= singular_name %>)%>
|
45
|
+
|
46
|
+
<%%= one_to_ones_for_list(<%= singular_name %>)%>
|
47
|
+
|
48
|
+
<td><%%= link_to(image_tag('show.png',:alt => 'Show',:class => 'noborder'), :action => 'show<%= suffix %>', :id => <%= singular_name %>) %></td>
|
49
|
+
<td><%%= link_to(image_tag('edit.png',:alt => 'Edit',:class => 'noborder'), :action => 'edit<%= suffix %>', :id => <%= singular_name %>) %></td>
|
50
|
+
<td><%%= link_to(image_tag('delete.png',:alt => 'Destroy',:class => 'noborder'), { :action => 'destroy<%= suffix %>', :id => <%= singular_name %> }, :confirm => 'Are you sure?', :method => :post) %></td>
|
51
|
+
</tr>
|
52
|
+
<%% end %>
|
53
|
+
</table>
|
54
|
+
|
55
|
+
<%%else #the current user is not the superuser%>
|
56
|
+
|
57
|
+
<table rules="rows" cellpadding="3" cellspacing="3" class="table">
|
58
|
+
<tr>
|
59
|
+
<%% for column in <%= model_name %>.content_columns %>
|
60
|
+
<%% @fields_readable[:self].each do |field|%>
|
61
|
+
<%% if column.name == field.name %>
|
62
|
+
<%%@at_least_one_readable=true%>
|
63
|
+
<th>
|
64
|
+
<%%= column.human_name %>
|
65
|
+
<%%if @query_advanced.nil?%>
|
66
|
+
<%%= link_to_remote(image_tag( "ArrowDn.png", :alt => "order by #{column.human_name} ascend", :class => "noborder"),
|
67
|
+
:url => {:action => "list", :order => "<%= plural_name %>.#{column.name} asc", :query => params[:query]}, :update => "<%= singular_name %>_list",
|
68
|
+
:before => "Element.show('spinner')" ,
|
69
|
+
:complete => "Element.hide('spinner')") %>
|
70
|
+
<%%= link_to_remote(image_tag( "ArrowUp.png", :alt => "order by #{column.human_name} descend",:class => "noborder"),
|
71
|
+
:url => {:action => "list", :order => "<%= plural_name %>.#{column.name} desc", :query => params[:query]}, :update => "<%= singular_name %>_list",
|
72
|
+
:before => "Element.show('spinner')" ,
|
73
|
+
:complete => "Element.hide('spinner')")%>
|
74
|
+
<%%else%>
|
75
|
+
<%%= link_to_remote(image_tag( "ArrowDn.png", :alt => "order by #{column.human_name} ascend", :class => "noborder"),
|
76
|
+
:url => {:action => "list", :order => "<%= plural_name %>.#{column.name} asc", :query_advanced => @query_advanced, :criteria => @criteria, :columns => @selected_columns, :search_type => @search_type, :min => @min, :max => @max, :not_for_interval_search => params[:not_for_interval_search]}, :update => "<%= singular_name %>_list",
|
77
|
+
:before => "Element.show('spinner')" ,
|
78
|
+
:complete => "Element.hide('spinner')") %>
|
79
|
+
<%%= link_to_remote(image_tag( "ArrowUp.png", :alt => "order by #{column.human_name} descend",:class => "noborder"),
|
80
|
+
:url => {:action => "list", :order => "<%= plural_name %>.#{column.name} desc", :query_advanced => @query_advanced, :criteria => @criteria, :columns => @selected_columns, :search_type => @search_type, :min => @min, :max => @max, :not_for_interval_search => params[:not_for_interval_search]}, :update => "<%= singular_name %>_list",
|
81
|
+
:before => "Element.show('spinner')" ,
|
82
|
+
:complete => "Element.hide('spinner')")%>
|
83
|
+
<%%end%>
|
84
|
+
</th>
|
85
|
+
<%% end %>
|
86
|
+
<%% end %>
|
87
|
+
<%% end %>
|
88
|
+
|
89
|
+
<%%= render :partial => "shared_views/fathers_header"%>
|
90
|
+
|
91
|
+
<%%= render :partial => "shared_views/one_to_ones_header"%>
|
92
|
+
|
93
|
+
<%%if @at_least_one_readable%><th colspan="3">Actions</th><%%end%>
|
94
|
+
</tr>
|
95
|
+
|
96
|
+
<%% for <%= singular_name %> in @<%= plural_name %> %>
|
97
|
+
<tr>
|
98
|
+
<%% for column in <%= model_name %>.content_columns %>
|
99
|
+
<%% for field in @fields_readable[:self]%>
|
100
|
+
<%% if column.name == field.name %>
|
101
|
+
<td><%%=h <%= singular_name %>.send(column.name) %></td>
|
102
|
+
<%% end %>
|
103
|
+
<%% end %>
|
104
|
+
<%% end %>
|
105
|
+
|
106
|
+
<%%= fathers_for_list(<%= singular_name %>)%>
|
107
|
+
|
108
|
+
<%%= one_to_ones_for_list(<%= singular_name %>)%>
|
109
|
+
|
110
|
+
<%%if @at_least_one_readable%>
|
111
|
+
<td><%%= link_to(image_tag('show.png',:alt => 'Show',:class => 'noborder'), :action => 'show<%= suffix %>', :id => <%= singular_name %>) %></td>
|
112
|
+
<td><%%= link_to(image_tag('edit.png',:alt => 'Edit',:class => 'noborder'), :action => 'edit<%= suffix %>', :id => <%= singular_name %>) unless @fields_editable.empty? and @rel_permissions.empty?%></td>
|
113
|
+
<td><%%= link_to(image_tag('delete.png',:alt => 'Destroy',:class => 'noborder'), { :action => 'destroy<%= suffix %>', :id => <%= singular_name %> }, :confirm => 'Are you sure?', :method => :post) if @can_destroy%></td>
|
114
|
+
<%%end%>
|
115
|
+
</tr>
|
116
|
+
<%% end %>
|
117
|
+
</table>
|
118
|
+
|
119
|
+
<%%unless @at_least_one_readable%><span class="bold_green">Sorry,but seems you can't show anything!</span><br /><%%end%>
|
120
|
+
|
121
|
+
<%% end %>
|
122
|
+
<%% if (session[:superuser] or @at_least_one_readable) and @<%= singular_name %>_pages.page_count > 1 %>
|
123
|
+
Page :
|
124
|
+
<%%= pagination_links_remote @<%= singular_name %>_pages, '<%= singular_name %>', '<%= singular_name %>_list' %>
|
125
|
+
<%% end %>
|
126
|
+
<br />
|
127
|
+
<span id="green"><%%=@conditions_string%></span>
|
@@ -0,0 +1,74 @@
|
|
1
|
+
body { background-color: #fff; color: #333; }
|
2
|
+
|
3
|
+
body, p, ol, ul, td {
|
4
|
+
font-family: verdana, arial, helvetica, sans-serif;
|
5
|
+
font-size: 13px;
|
6
|
+
line-height: 18px;
|
7
|
+
}
|
8
|
+
|
9
|
+
pre {
|
10
|
+
background-color: #eee;
|
11
|
+
padding: 10px;
|
12
|
+
font-size: 11px;
|
13
|
+
}
|
14
|
+
|
15
|
+
a { color: #000; }
|
16
|
+
a:visited { color: #666; }
|
17
|
+
a:hover { color: #fff; background-color:#000; }
|
18
|
+
|
19
|
+
.fieldWithErrors {
|
20
|
+
padding: 2px;
|
21
|
+
background-color: red;
|
22
|
+
display: table;
|
23
|
+
}
|
24
|
+
|
25
|
+
#errorExplanation {
|
26
|
+
width: 400px;
|
27
|
+
border: 2px solid red;
|
28
|
+
padding: 7px;
|
29
|
+
padding-bottom: 12px;
|
30
|
+
margin-bottom: 20px;
|
31
|
+
background-color: #f0f0f0;
|
32
|
+
}
|
33
|
+
|
34
|
+
#errorExplanation h2 {
|
35
|
+
text-align: left;
|
36
|
+
font-weight: bold;
|
37
|
+
padding: 5px 5px 5px 15px;
|
38
|
+
font-size: 12px;
|
39
|
+
margin: -7px;
|
40
|
+
background-color: #c00;
|
41
|
+
color: #fff;
|
42
|
+
}
|
43
|
+
|
44
|
+
#errorExplanation p {
|
45
|
+
color: #333;
|
46
|
+
margin-bottom: 0;
|
47
|
+
padding: 5px;
|
48
|
+
}
|
49
|
+
|
50
|
+
#errorExplanation ul li {
|
51
|
+
font-size: 12px;
|
52
|
+
list-style: square;
|
53
|
+
}
|
54
|
+
|
55
|
+
div.uploadStatus {
|
56
|
+
margin: 5px;
|
57
|
+
}
|
58
|
+
|
59
|
+
div.progressBar {
|
60
|
+
margin: 5px;
|
61
|
+
}
|
62
|
+
|
63
|
+
div.progressBar div.border {
|
64
|
+
background-color: #fff;
|
65
|
+
border: 1px solid grey;
|
66
|
+
width: 100%;
|
67
|
+
}
|
68
|
+
|
69
|
+
div.progressBar div.background {
|
70
|
+
background-color: #333;
|
71
|
+
height: 18px;
|
72
|
+
width: 0%;
|
73
|
+
}
|
74
|
+
|