scaffold_logic 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. data/.document +5 -0
  2. data/Capfile +4 -0
  3. data/README.rdoc +29 -0
  4. data/Rakefile +51 -0
  5. data/VERSION +1 -0
  6. data/config/deploy.rb +41 -0
  7. data/lib/generators/scaffold_logic/layout/USAGE +7 -0
  8. data/lib/generators/scaffold_logic/layout/layout_generator.rb +38 -0
  9. data/lib/generators/scaffold_logic/layout/templates/_nav_tabs.html.erb +3 -0
  10. data/lib/generators/scaffold_logic/layout/templates/images/icons/add.png +0 -0
  11. data/lib/generators/scaffold_logic/layout/templates/images/icons/collapsed.gif +0 -0
  12. data/lib/generators/scaffold_logic/layout/templates/images/icons/delete.png +0 -0
  13. data/lib/generators/scaffold_logic/layout/templates/images/icons/drag.png +0 -0
  14. data/lib/generators/scaffold_logic/layout/templates/images/icons/edit.png +0 -0
  15. data/lib/generators/scaffold_logic/layout/templates/images/icons/expanded.gif +0 -0
  16. data/lib/generators/scaffold_logic/layout/templates/images/icons/help_icon.png +0 -0
  17. data/lib/generators/scaffold_logic/layout/templates/images/icons/link_icon.png +0 -0
  18. data/lib/generators/scaffold_logic/layout/templates/images/icons/move.png +0 -0
  19. data/lib/generators/scaffold_logic/layout/templates/images/icons/move_white.png +0 -0
  20. data/lib/generators/scaffold_logic/layout/templates/images/icons/note.png +0 -0
  21. data/lib/generators/scaffold_logic/layout/templates/images/icons/note_white.png +0 -0
  22. data/lib/generators/scaffold_logic/layout/templates/images/icons/notification_icon_sprite.png +0 -0
  23. data/lib/generators/scaffold_logic/layout/templates/images/icons/spinner.gif +0 -0
  24. data/lib/generators/scaffold_logic/layout/templates/images/icons/view.png +0 -0
  25. data/lib/generators/scaffold_logic/layout/templates/images/icons/warning.png +0 -0
  26. data/lib/generators/scaffold_logic/layout/templates/images/icons/warning_2.png +0 -0
  27. data/lib/generators/scaffold_logic/layout/templates/images/icons/warning_box.png +0 -0
  28. data/lib/generators/scaffold_logic/layout/templates/images/icons/warning_icon.png +0 -0
  29. data/lib/generators/scaffold_logic/layout/templates/images/icons/warning_white.png +0 -0
  30. data/lib/generators/scaffold_logic/layout/templates/images/layout/arrow_asc.png +0 -0
  31. data/lib/generators/scaffold_logic/layout/templates/images/layout/arrow_desc.png +0 -0
  32. data/lib/generators/scaffold_logic/layout/templates/images/layout/back.png +0 -0
  33. data/lib/generators/scaffold_logic/layout/templates/images/layout/black_bar.png +0 -0
  34. data/lib/generators/scaffold_logic/layout/templates/images/layout/breadcrumb_bg.png +0 -0
  35. data/lib/generators/scaffold_logic/layout/templates/images/layout/button_bg.png +0 -0
  36. data/lib/generators/scaffold_logic/layout/templates/images/layout/content_left_bg.png +0 -0
  37. data/lib/generators/scaffold_logic/layout/templates/images/layout/content_right_bg.png +0 -0
  38. data/lib/generators/scaffold_logic/layout/templates/images/layout/credit_cards.gif +0 -0
  39. data/lib/generators/scaffold_logic/layout/templates/images/layout/footer_bg.png +0 -0
  40. data/lib/generators/scaffold_logic/layout/templates/images/layout/h1_bg.png +0 -0
  41. data/lib/generators/scaffold_logic/layout/templates/images/layout/h2_bg.png +0 -0
  42. data/lib/generators/scaffold_logic/layout/templates/images/layout/h2_bg_for_table.png +0 -0
  43. data/lib/generators/scaffold_logic/layout/templates/images/layout/header_bg_grey.png +0 -0
  44. data/lib/generators/scaffold_logic/layout/templates/images/layout/header_bg_purple.png +0 -0
  45. data/lib/generators/scaffold_logic/layout/templates/images/layout/legend_bg.png +0 -0
  46. data/lib/generators/scaffold_logic/layout/templates/images/layout/menu_box_bg.png +0 -0
  47. data/lib/generators/scaffold_logic/layout/templates/images/layout/shadow_border.png +0 -0
  48. data/lib/generators/scaffold_logic/layout/templates/images/layout/shadow_border_2.png +0 -0
  49. data/lib/generators/scaffold_logic/layout/templates/images/layout/shadow_border_3.png +0 -0
  50. data/lib/generators/scaffold_logic/layout/templates/images/layout/shadow_border_4.png +0 -0
  51. data/lib/generators/scaffold_logic/layout/templates/images/layout/tab.png +0 -0
  52. data/lib/generators/scaffold_logic/layout/templates/images/layout/tab_active.png +0 -0
  53. data/lib/generators/scaffold_logic/layout/templates/images/layout/table_header.png +0 -0
  54. data/lib/generators/scaffold_logic/layout/templates/images/layout/text_field_bg.jpg +0 -0
  55. data/lib/generators/scaffold_logic/layout/templates/images/layout/text_field_error_bg.png +0 -0
  56. data/lib/generators/scaffold_logic/layout/templates/images/layout/th_bg.png +0 -0
  57. data/lib/generators/scaffold_logic/layout/templates/images/layout/th_bg_selected.png +0 -0
  58. data/lib/generators/scaffold_logic/layout/templates/images/src/black_bar.psd +0 -0
  59. data/lib/generators/scaffold_logic/layout/templates/images/src/branding.psd +0 -0
  60. data/lib/generators/scaffold_logic/layout/templates/images/src/legend_bg.psd +0 -0
  61. data/lib/generators/scaffold_logic/layout/templates/images/src/menu_icons.psd +0 -0
  62. data/lib/generators/scaffold_logic/layout/templates/layout.html.erb +49 -0
  63. data/lib/generators/scaffold_logic/layout/templates/layout_helper.rb +16 -0
  64. data/lib/generators/scaffold_logic/layout/templates/stylesheets/application.css +881 -0
  65. data/lib/generators/scaffold_logic/layout/templates/stylesheets/core.css +1146 -0
  66. data/lib/generators/scaffold_logic/layout/templates/stylesheets/core_ie.css +52 -0
  67. data/lib/generators/scaffold_logic/layout/templates/stylesheets/csshover3.htc +14 -0
  68. data/lib/generators/scaffold_logic/scaffold/USAGE +48 -0
  69. data/lib/generators/scaffold_logic/scaffold/scaffold_generator.rb +230 -0
  70. data/lib/generators/scaffold_logic/scaffold/templates/actions/create.rb +9 -0
  71. data/lib/generators/scaffold_logic/scaffold/templates/actions/destroy.rb +6 -0
  72. data/lib/generators/scaffold_logic/scaffold/templates/actions/edit.rb +3 -0
  73. data/lib/generators/scaffold_logic/scaffold/templates/actions/index.rb +3 -0
  74. data/lib/generators/scaffold_logic/scaffold/templates/actions/new.rb +3 -0
  75. data/lib/generators/scaffold_logic/scaffold/templates/actions/show.rb +3 -0
  76. data/lib/generators/scaffold_logic/scaffold/templates/actions/update.rb +9 -0
  77. data/lib/generators/scaffold_logic/scaffold/templates/controller.rb +7 -0
  78. data/lib/generators/scaffold_logic/scaffold/templates/helper.rb +2 -0
  79. data/lib/generators/scaffold_logic/scaffold/templates/migration.rb +16 -0
  80. data/lib/generators/scaffold_logic/scaffold/templates/model.rb +18 -0
  81. data/lib/generators/scaffold_logic/scaffold/templates/mongoid_model.rb +30 -0
  82. data/lib/generators/scaffold_logic/scaffold/templates/tests/rspec/actions/create.rb +10 -0
  83. data/lib/generators/scaffold_logic/scaffold/templates/tests/rspec/actions/destroy.rb +5 -0
  84. data/lib/generators/scaffold_logic/scaffold/templates/tests/rspec/actions/edit.rb +4 -0
  85. data/lib/generators/scaffold_logic/scaffold/templates/tests/rspec/actions/index.rb +5 -0
  86. data/lib/generators/scaffold_logic/scaffold/templates/tests/rspec/actions/new.rb +4 -0
  87. data/lib/generators/scaffold_logic/scaffold/templates/tests/rspec/actions/show.rb +4 -0
  88. data/lib/generators/scaffold_logic/scaffold/templates/tests/rspec/actions/update.rb +11 -0
  89. data/lib/generators/scaffold_logic/scaffold/templates/tests/rspec/controller.rb +12 -0
  90. data/lib/generators/scaffold_logic/scaffold/templates/tests/rspec/model.rb +5 -0
  91. data/lib/generators/scaffold_logic/scaffold/templates/tests/shoulda/actions/create.rb +13 -0
  92. data/lib/generators/scaffold_logic/scaffold/templates/tests/shoulda/actions/destroy.rb +8 -0
  93. data/lib/generators/scaffold_logic/scaffold/templates/tests/shoulda/actions/edit.rb +6 -0
  94. data/lib/generators/scaffold_logic/scaffold/templates/tests/shoulda/actions/index.rb +6 -0
  95. data/lib/generators/scaffold_logic/scaffold/templates/tests/shoulda/actions/new.rb +6 -0
  96. data/lib/generators/scaffold_logic/scaffold/templates/tests/shoulda/actions/show.rb +6 -0
  97. data/lib/generators/scaffold_logic/scaffold/templates/tests/shoulda/actions/update.rb +13 -0
  98. data/lib/generators/scaffold_logic/scaffold/templates/tests/shoulda/controller.rb +5 -0
  99. data/lib/generators/scaffold_logic/scaffold/templates/tests/shoulda/model.rb +7 -0
  100. data/lib/generators/scaffold_logic/scaffold/templates/tests/testunit/actions/create.rb +11 -0
  101. data/lib/generators/scaffold_logic/scaffold/templates/tests/testunit/actions/destroy.rb +6 -0
  102. data/lib/generators/scaffold_logic/scaffold/templates/tests/testunit/actions/edit.rb +4 -0
  103. data/lib/generators/scaffold_logic/scaffold/templates/tests/testunit/actions/index.rb +4 -0
  104. data/lib/generators/scaffold_logic/scaffold/templates/tests/testunit/actions/new.rb +4 -0
  105. data/lib/generators/scaffold_logic/scaffold/templates/tests/testunit/actions/show.rb +4 -0
  106. data/lib/generators/scaffold_logic/scaffold/templates/tests/testunit/actions/update.rb +11 -0
  107. data/lib/generators/scaffold_logic/scaffold/templates/tests/testunit/controller.rb +5 -0
  108. data/lib/generators/scaffold_logic/scaffold/templates/tests/testunit/model.rb +7 -0
  109. data/lib/generators/scaffold_logic/scaffold/templates/views/erb/_form.html.erb +39 -0
  110. data/lib/generators/scaffold_logic/scaffold/templates/views/erb/edit.html.erb +5 -0
  111. data/lib/generators/scaffold_logic/scaffold/templates/views/erb/index.html.erb +32 -0
  112. data/lib/generators/scaffold_logic/scaffold/templates/views/erb/new.html.erb +5 -0
  113. data/lib/generators/scaffold_logic/scaffold/templates/views/erb/show.html.erb +22 -0
  114. data/lib/scaffold_logic.rb +198 -0
  115. data/lib/scaffold_logic/data_import.rb +80 -0
  116. data/lib/scaffold_logic/form_helper.rb +148 -0
  117. data/lib/scaffold_logic/helper.rb +174 -0
  118. data/lib/scaffold_logic/menu_helper.rb +27 -0
  119. data/lib/scaffold_logic/tab_interface_helper.rb +125 -0
  120. data/scaffold_logic.gemspec +154 -0
  121. metadata +184 -0
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ README.rdoc
2
+ lib/**/*.rb
3
+ bin/*
4
+ features/**/*.feature
5
+ LICENSE
data/Capfile ADDED
@@ -0,0 +1,4 @@
1
+ load 'deploy' if respond_to?(:namespace) # cap2 differentiator
2
+ Dir['vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) }
3
+
4
+ load 'config/deploy' # remove this line to skip loading any of the default tasks
data/README.rdoc ADDED
@@ -0,0 +1,29 @@
1
+ = ScaffoldLogic Generators
2
+
3
+ Rails 3 generator scripts for SEO Logic.
4
+
5
+ == Install
6
+
7
+ Install the gem:
8
+
9
+ gem install scaffold_logic
10
+
11
+ Include it in your Gemfile.
12
+
13
+ gem "scaffold_logic"
14
+
15
+ == Usage
16
+
17
+ To run the generator, go to your project directory and call the appropriate generator.
18
+
19
+ rails generate scaffold_logic:layout
20
+ rails generate scaffold_logic:scaffold Foo name:string
21
+
22
+ == Included Generators
23
+
24
+ * scaffold_logic:layout generates generic layout, stylesheet, and helper files.
25
+ * scaffold_logic:scaffold generates a controller and optional model/migration.
26
+
27
+ To view the README for each generator, run it with the +help+ option.
28
+
29
+ rails generate scaffold_logic:scaffold --help
data/Rakefile ADDED
@@ -0,0 +1,51 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ begin
5
+ require 'jeweler'
6
+ Jeweler::Tasks.new do |gem|
7
+ gem.name = "scaffold_logic"
8
+ gem.summary = %Q{Scaffold and UI generator for SEO Logic applications.}
9
+ gem.description = %Q{Scaffold and UI generator for SEO Logic applications.}
10
+ gem.email = "corey@seologic.com"
11
+ gem.homepage = "http://github.com/ivanoblomov/scaffold_logic"
12
+ gem.authors = ["Corey Ehmke"]
13
+ end
14
+ Jeweler::GemcutterTasks.new
15
+ rescue LoadError
16
+ puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
17
+ end
18
+
19
+ require 'rake/testtask'
20
+ Rake::TestTask.new(:test) do |test|
21
+ test.libs << 'lib' << 'test'
22
+ test.pattern = 'test/**/test_*.rb'
23
+ test.verbose = true
24
+ end
25
+
26
+ begin
27
+ require 'rcov/rcovtask'
28
+ Rcov::RcovTask.new do |test|
29
+ test.libs << 'test'
30
+ test.pattern = 'test/**/test_*.rb'
31
+ test.verbose = true
32
+ end
33
+ rescue LoadError
34
+ task :rcov do
35
+ abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
36
+ end
37
+ end
38
+
39
+ task :test => :check_dependencies
40
+
41
+ task :default => :test
42
+
43
+ require 'rake/rdoctask'
44
+ Rake::RDocTask.new do |rdoc|
45
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
46
+
47
+ rdoc.rdoc_dir = 'rdoc'
48
+ rdoc.title = "scaffold_logic #{version}"
49
+ rdoc.rdoc_files.include('README*')
50
+ rdoc.rdoc_files.include('lib/**/*.rb')
51
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.6.0
data/config/deploy.rb ADDED
@@ -0,0 +1,41 @@
1
+ # Deploy this gem to the gem server.
2
+ #
3
+ # Usage for a gem already on the gem server:
4
+ #
5
+ # cap deploy
6
+ #
7
+ # For a new gem:
8
+ #
9
+ # cap deploy:new
10
+
11
+ # Global Variables =================================================================================
12
+
13
+ default_run_options[:pty] = true
14
+ role :app, 'jose.seologic.com'
15
+ set :deploy_to, '/home/containers/rails/system/scaffold_logic'
16
+ set :repository, 'git@github.com:ivanoblomov/scaffold_logic.git'
17
+ set :scm, :git
18
+ set :use_sudo, false
19
+ set :user, 'cnewton'
20
+
21
+ namespace :deploy do
22
+ desc "Clone a new gem's repository on the gem server."
23
+ task :new do
24
+ run "git clone -q #{repository} #{deploy_to}"
25
+ end
26
+
27
+ task :install do
28
+ run "cd #{deploy_to}; sudo rake install"
29
+ end
30
+
31
+ # disable default behavior
32
+ task :restart do
33
+ end
34
+
35
+ task :update do
36
+ run "cd #{deploy_to}; git pull"
37
+ end
38
+ end
39
+
40
+ after 'deploy', 'deploy:install'
41
+ after 'deploy:new', 'deploy:install'
@@ -0,0 +1,7 @@
1
+ Description:
2
+ The scaffold_logic generator creates a basic layout, stylesheet and
3
+ helper which will give some structure to a starting Rails app.
4
+
5
+ Examples:
6
+
7
+ rails g scaffold_logic:layout
@@ -0,0 +1,38 @@
1
+ dir = Gem.searcher.find('scaffold_logic').full_gem_path
2
+ require "#{dir}/lib/scaffold_logic"
3
+
4
+ module ScaffoldLogic
5
+ module Generators
6
+ class LayoutGenerator < Rails::Generators::Base
7
+
8
+ argument :layout_name, :type => :string, :default => 'application', :banner => 'layout_name'
9
+
10
+ def create_layout
11
+
12
+ # CSS
13
+ copy_file "stylesheets/core.css", "public/stylesheets/core.css"
14
+ copy_file "stylesheets/core_ie.css", "public/stylesheets/core_ie.css"
15
+ copy_file "stylesheets/csshover3.htc", "public/stylesheets/csshover3.htc"
16
+ copy_file "stylesheets/application.css", "public/stylesheets/application.css"
17
+ directory "images/icons/", "public/images/icons/"
18
+ directory "images/layout/", "public/images/layout/"
19
+ directory "images/src/", "misc/images/src/"
20
+
21
+ # Helpers
22
+ copy_file "layout_helper.rb", "app/helpers/layout_helper.rb"
23
+
24
+ # Views
25
+ copy_file "layout.html.erb", "app/views/layouts/application.html.erb"
26
+ copy_file "_nav_tabs.html.erb", "app/views/shared/_nav_tabs.html.erb"
27
+ end
28
+
29
+ private
30
+
31
+ def file_name
32
+ layout_name.underscore
33
+ end
34
+ end
35
+ end
36
+ end
37
+
38
+ ScaffoldLogic::Generators::LayoutGenerator.source_root("#{Gem.searcher.find('scaffold_logic').full_gem_path}/lib/generators/scaffold_logic/layout/templates/")
@@ -0,0 +1,3 @@
1
+ <ul>
2
+ <%= tab_for( root_path, 'Home', 'home' ).html_safe -%>
3
+ </ul>
@@ -0,0 +1,49 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <title><%= yield(:title) -%></title>
5
+ <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
6
+ <meta name="description" content="<%= yield(:meta_description) -%>" />
7
+ <meta name="keywords" content="<%= yield(:meta_keywords) -%>" />
8
+ <link rel="canonical" href="<%= request.url -%>" />
9
+ <link rel="shortcut icon" href="/favicon.ico" />
10
+ <%= stylesheet_link_tag 'core', 'application', :cache => true %>
11
+ <!--[if IE]>
12
+ <%= stylesheet_link_tag 'core_ie', :media => :all -%>
13
+ <![endif]-->
14
+ <%= javascript_include_tag :defaults %>
15
+ <%= csrf_meta_tag %>
16
+ </head>
17
+ <body>
18
+ <div id="container">
19
+ <div id="header">
20
+ <div id="branding"></div>
21
+ <div id="navigation"><%= render :partial => 'shared/nav_tabs' -%></div>
22
+ </div>
23
+ <div id="page_header">
24
+ <h1><%= yield(:page_title) -%></h1>
25
+ <div id="breadcrumbs"><%= breadcrumbs -%></div>
26
+ </div>
27
+ <div id="content_area">
28
+ <div id="washout" style="display:none;"></div>
29
+
30
+ <%- flash.each do |name, msg| -%>
31
+ <%- if name == :notice -%>
32
+ <%= content_tag :div, msg, :id => "flash_#{name}", :class => "flash_#{name}", :style => "display:none;" -%>
33
+ <script type="text/javascript">
34
+ $('washout').toggle();
35
+ $('flash_notice').toggle();
36
+ <%= visual_effect(:fade, 'flash_notice', :duration => 1.0, :delay => 1.0).html_safe -%>
37
+ <%= visual_effect(:fade, 'washout', :duration => 1.0, :delay => 1.0).html_safe -%>
38
+ </script>
39
+ <%- else -%>
40
+ <%= content_tag :div, msg, :id => "flash_#{name}", :class => "flash_#{name}" -%>
41
+ <%- end -%>
42
+ <%- end -%>
43
+ <%= yield -%>
44
+ <br style="clear: both;" />
45
+ </div>
46
+ <div id="footer"><p>&copy; <%= Time.zone.now.year -%> SEO Logic. All rights reserved.</p></div>
47
+ </div>
48
+ </body>
49
+ </html>
@@ -0,0 +1,16 @@
1
+ module LayoutHelper
2
+ def set_title(title = nil, window_title = nil)
3
+ window_title ||= title
4
+ if title.nil?
5
+ content_for(:title) { APPLICATION_NAME }
6
+ content_for(:page_title) { }
7
+ else
8
+ content_for(:title) { window_title + " - #{APPLICATION_NAME}" }
9
+ content_for(:page_title) { title }
10
+ end
11
+ end
12
+
13
+ private
14
+
15
+ APPLICATION_NAME = 'FIXME'.freeze
16
+ end
@@ -0,0 +1,881 @@
1
+ /* @group General Typography */
2
+
3
+ html {
4
+ height: 100%;
5
+ }
6
+
7
+ a:link {
8
+ color: #440000;
9
+ }
10
+
11
+ a:visited {
12
+ color: #444444;
13
+ }
14
+
15
+ body {
16
+ position: relative;
17
+ width: 100%;
18
+ height: 100%;
19
+ min-width: 1030px;
20
+ font-family: "Lucida Grande", Lucida, Verdana, sans-serif;
21
+ background-color: #ffffff;
22
+ /*background: #ffffff url(/images/layout/content_left_bg.png) repeat-y;*/
23
+ }
24
+
25
+ .bold {
26
+ font-weight: bold;
27
+ }
28
+
29
+ h1 {
30
+ color: #333333;
31
+ height: 50px;
32
+ margin-left: -6px;
33
+ margin-top: -15px;
34
+ padding-top: 13px;
35
+ padding-left: 1em;
36
+ padding-bottom: 15px;
37
+ width: 75%;
38
+ font-size: 1.2em;
39
+ background: url(../images/layout/h1_bg.png) no-repeat;
40
+ }
41
+
42
+ h2 {
43
+ color: #444444;
44
+ font-weight: bold;
45
+ font-size: 1.1em;
46
+ text-transform: uppercase;
47
+ }
48
+
49
+ h2.for_table {
50
+ position: relative;
51
+ margin-top: 0em;
52
+ margin-bottom: -25px;
53
+ z-index: 1000;
54
+ padding-top: 21px;
55
+ height: 40px;
56
+ background-image: url(../images/layout/h2_bg_for_table.png);
57
+ }
58
+
59
+ ul.bulleted {
60
+ list-style-type: disc;
61
+ margin-left: 1.5em;
62
+ }
63
+
64
+ ul.no_bullets {
65
+ list-style-type: none;
66
+ }
67
+
68
+ .subtle {
69
+ color: #999999;
70
+ }
71
+
72
+ .subtle a:link, .subtle a:visited {
73
+ text-decoration: none;
74
+ color: #999999;
75
+ }
76
+
77
+ .subtle a:hover {
78
+ color: #756b7f;
79
+ /*text-decoration: underline;*/
80
+ }
81
+
82
+ /* @end */
83
+
84
+ /* @group Layout Tricks */
85
+
86
+ div#container {
87
+ min-height: 100%;
88
+ position: relative;
89
+ /*background: url(/images/layout/content_right_bg.png) repeat-y right 0;*/
90
+ }
91
+
92
+ /* @end */
93
+
94
+
95
+ /* @group Header */
96
+
97
+ div#header {
98
+ margin-top: 0em;
99
+ background: none;
100
+ background-color: #000000;
101
+ height: 10px;
102
+ background: url(/images/layout/black_bar.png) repeat-x top;
103
+ width: 100%;
104
+ border: none;
105
+ }
106
+
107
+ div#page_header {
108
+ padding-top: 63px;
109
+ padding-left: 25px;
110
+ }
111
+
112
+ div#branding {
113
+ position: absolute;
114
+ top: 0px;
115
+ right: 2px;
116
+ margin: 0em;
117
+ padding: 0em;
118
+ /*background: url(/images/layout/branding.png) no-repeat;*/
119
+ height: 100px;
120
+ width: 310px;
121
+ }
122
+
123
+ /* @end */
124
+
125
+ /* @group Navbar */
126
+
127
+ div#navigation {
128
+ font-family: "Lucida Grande", Lucida, Verdana, sans-serif;
129
+ position: absolute;
130
+ top: -9px;
131
+ width: auto;
132
+ margin-top: 0em;
133
+ margin-left: 15px;
134
+ margin-right: auto;
135
+ background: none;
136
+ border: none;
137
+ }
138
+
139
+ div#navigation ul li {
140
+ background: none;
141
+ border: none;
142
+ }
143
+
144
+ div#navigation ul li:hover {
145
+ background: none !important;
146
+ color: #ffffff;
147
+ }
148
+
149
+ div#navigation ul li:hover a:link {
150
+ background: none !important;
151
+ }
152
+
153
+ div#navigation ul li a:link {
154
+ color: #aaaaaa;
155
+ text-decoration: none;
156
+ }
157
+
158
+ div#navigation ul li a:hover {
159
+ color: #ffffff !important;
160
+ background: none;
161
+ }
162
+
163
+ div#navigation ul li a:visited {
164
+ color: #aaaaaa;
165
+ text-decoration: none;
166
+ }
167
+
168
+ /* @end */
169
+
170
+ /* @group Breadcrumbs */
171
+
172
+ ol.breadcrumbs {
173
+ margin-top: 1.25em;
174
+ margin-left: 1em;
175
+ list-style: none;
176
+ height: 1em;
177
+ width: 100%;
178
+ }
179
+
180
+ ol.breadcrumbs li {
181
+ display: block;
182
+ float: left;
183
+ margin-top: -10px;
184
+ margin-left: -1px;
185
+ margin-right: 1em;
186
+ height: 2em;
187
+ width: auto;
188
+ padding-top: 12px;
189
+ padding-right: 2em;
190
+ background: url(../images/layout/breadcrumb_bg.png) no-repeat right 3px;
191
+ text-transform: uppercase;
192
+ }
193
+
194
+ ol.breadcrumbs a:link, ol.breadcrumbs a:visited {
195
+ display: block;
196
+ text-decoration: none;
197
+ font-size: .8em;
198
+ color: #aaaaaa !important;
199
+ }
200
+
201
+ /* @end */
202
+
203
+ /* @group Content Area */
204
+
205
+ div#content_area {
206
+ padding: 10px 25px 35px 25px;
207
+ height: 100%;
208
+ font-size: 11px;
209
+ }
210
+
211
+ /* @end */
212
+
213
+ /* @group Footer */
214
+
215
+ div#footer {
216
+ position: absolute;
217
+ bottom: 0px;
218
+ height: 35px;
219
+ width: 100%;
220
+ padding: 0px;
221
+ margin: 0px !important;
222
+ background: url(/images/layout/black_bar.png) repeat-x bottom;
223
+ color: #aaaaaa;
224
+ border: none;
225
+ font-family: "Lucida Grande", Lucida, Verdana, sans-serif;
226
+ font-size: 11px;
227
+ }
228
+
229
+ div#footer p {
230
+ margin: 12px 25px 0px 25px;
231
+ }
232
+
233
+ div#footer a:link, div#footer a:visited {
234
+ text-decoration: none;
235
+ color: #aaaaaa;
236
+ }
237
+
238
+ div#footer a:hover {
239
+ text-decoration: underline;
240
+ }
241
+
242
+ /* @end */
243
+
244
+
245
+ /* @group Forms */
246
+
247
+ .instructions {
248
+ display: block;
249
+ border: 1px solid #aaaaaa;
250
+ background-color: #ffffff;
251
+ padding: 1em;
252
+ }
253
+
254
+ .faux_legend {
255
+ background: url(../images/layout/legend_bg.png) no-repeat 0 0px;
256
+ margin-top: -28px;
257
+ margin-left: -27px;
258
+ padding: 0em;
259
+ padding-left: 27px;
260
+ padding-top: 11px;
261
+ padding-bottom: 10px;
262
+ width: 319px !important;
263
+ height: 13px;
264
+ font-weight: bold;
265
+ font-size: 10px;
266
+ color: #ffffff;
267
+ text-transform: uppercase;
268
+ text-shadow: #333333 0 0 5px;
269
+ border: none;
270
+ }
271
+
272
+ legend {
273
+ background: url(../images/layout/legend_bg.png) no-repeat 0 0px;
274
+ margin-left: -27px;
275
+ padding: 0em;
276
+ padding-left: 27px;
277
+ padding-top: 11px;
278
+ padding-bottom: 10px;
279
+ width: 319px !important;
280
+ height: 13px;
281
+ font-weight: bold;
282
+ font-size: 10px;
283
+ color: #ffffff;
284
+ text-transform: uppercase;
285
+ text-shadow: #333333 0 0 5px;
286
+ border: none;
287
+ }
288
+
289
+ legend a:hover, .faux_legend a:hover {
290
+ color: #ffffff !important;
291
+ }
292
+
293
+ .form_container {
294
+ background-color: #efefef;
295
+ border: 1px solid #dddddd;
296
+ padding: 1em 1em 1em 1em;
297
+ margin-top: 2.5em;
298
+ margin-bottom: 1.5em;
299
+ text-align: left;
300
+ }
301
+
302
+ .three_column {
303
+ width: 33%;
304
+ text-align: left;
305
+ padding: 0em;
306
+ margin: 0em;
307
+ }
308
+
309
+ .faux_field {
310
+ background-color: #fafafa;
311
+ border: 1px solid #dddddd;
312
+ width: 75%;
313
+ }
314
+
315
+ .button {
316
+ color: #555555 !important;
317
+ background-color: #cccccc;
318
+ border: 1px solid #aaaaaa;
319
+ background-image: url(../images/layout/button_bg.png);
320
+ font-size: 9px;
321
+ margin-top: 10px;
322
+ margin-bottom: 10px;
323
+ }
324
+
325
+ .button a:link {
326
+ color: #555555 !important;
327
+ cursor: pointer;
328
+ }
329
+
330
+ .button a:visited {
331
+ color: #555555 !important;
332
+ cursor: pointer;
333
+ }
334
+
335
+ .button a:visited {
336
+ color: #555555 !important;
337
+ cursor: pointer;
338
+ }
339
+
340
+ .button:active {
341
+ background-color: #999999;
342
+ border: 1px solid #333333;
343
+ background-image: url(../images/layout/button_bg.png);
344
+ }
345
+
346
+ fieldset.inline {
347
+ margin-right: 1em;
348
+ float: left;
349
+ }
350
+
351
+ /* @end */
352
+
353
+ /* @group Tables */
354
+
355
+ table {
356
+ border: 1px solid #aaaaaa !important;
357
+ }
358
+
359
+ th {
360
+ /*background: #7e7587 !important;*/
361
+ font-size: .8em !important;
362
+ padding: .5em;
363
+ color: #ffffff !important;
364
+ }
365
+
366
+ th.sortable_header {
367
+ cursor: pointer;
368
+ }
369
+
370
+ th.sortable_header:hover {
371
+ background: #444444;
372
+ }
373
+
374
+ table h1 {
375
+ font-size: 1.1em;
376
+ background: none;
377
+ padding: 0px;
378
+ margin: 0px !important;
379
+ height: auto;
380
+ }
381
+
382
+ td {
383
+ font-size: .8em;
384
+ }
385
+
386
+ table.report {
387
+ }
388
+
389
+ table.report td {
390
+ text-align: right;
391
+ border: 1px solid #cccccc;
392
+ }
393
+
394
+ table.report td.metric, table.report th.metric {
395
+ width: auto;
396
+ text-align: left !important;
397
+ }
398
+
399
+ table.report td.metric {
400
+ background-color: #e0e0e0;
401
+ }
402
+
403
+ table.report td.metric a:link, table.report td.metric a:visited {
404
+ text-decoration: none;
405
+ }
406
+
407
+ table.report td.metric a:hover {
408
+ text-decoration: underline;
409
+ }
410
+
411
+ table.report td.data, table.report th.data {
412
+ width: 6%;
413
+ text-align: right;
414
+ padding-right: 1em;
415
+ }
416
+
417
+ table.report td.gained {
418
+ background-color: #ccddcc;
419
+ }
420
+
421
+ table.report td.lost {
422
+ background-color: #ddcccc;
423
+ }
424
+
425
+ table.report td.new {
426
+ background-color: #fff5cc;
427
+ color: #444444;
428
+ }
429
+
430
+ table.results th {
431
+ }
432
+
433
+ table.report th.transparent {
434
+ background: none;
435
+ border: 1px solid #eeeeee;
436
+ border-bottom: 1px solid #cccccc;
437
+ }
438
+
439
+ table.bifurcated_results th {
440
+ vertical-align: middle;
441
+ text-align: center !important;
442
+ font-size: .75em;
443
+ background-color: #888888;
444
+ color: #ffffff;
445
+ padding: .3em;
446
+ margin: 0px;
447
+ text-transform: uppercase;
448
+ }
449
+
450
+ table.standard th {
451
+ text-align: left;
452
+ color: #444444;
453
+ font-weight: bold;
454
+ text-transform: uppercase;
455
+ font-size: .8em;
456
+ padding: 1em .5em 1em .5em;
457
+ background: #7e7587 url(../images/layout/table_header.png)}
458
+
459
+ table.standard th a {
460
+ color: #ffffff !important;
461
+ text-decoration: none !important;
462
+ }
463
+
464
+ table.standard th a.arrow-desc:after{
465
+ content: "\25BC";
466
+ margin-left: 1em;
467
+ }
468
+
469
+ table.standard th a.arrow-asc:after {
470
+ content: "\25B2";
471
+ margin-left: 1em;
472
+ }
473
+
474
+ table.standard tr:hover td, table.results tr:hover td {
475
+ background-color: #cccccc !important;
476
+ }
477
+
478
+ table.results tr.summary {
479
+ font-weight: bold;
480
+ }
481
+
482
+ table.results tr td {
483
+ height: 3em;
484
+ vertical-align: top;
485
+ }
486
+
487
+ table.standard td {
488
+ }
489
+
490
+ table.standard td a:link, table.standard td a:visited {
491
+ text-decoration: none;
492
+ }
493
+
494
+ table tr.parent {
495
+ border-top: 1px solid #cccccc;
496
+ }
497
+
498
+ table.drag_highlight {
499
+ /*background-color: #aaaaaa !important;*/
500
+ border: 3px solid #999999;
501
+ }
502
+
503
+ tr.drag_highlight td {
504
+ /*background-color: #cccccc !important;*/
505
+ border: none;
506
+ border-bottom: 3px solid #999999;
507
+ }
508
+
509
+ table.with_form_fields td {
510
+ padding: 1em;
511
+ padding-bottom: 0em;
512
+ }
513
+
514
+ /* @end */
515
+
516
+ /* @group Admin Menu */
517
+
518
+ div.menu_icon {
519
+ float: left;
520
+ width: 150px;
521
+ height: 50px;
522
+ text-align: center;
523
+ padding-top: 120px;
524
+ margin-right: 2em;
525
+ margin-top: 2em;
526
+ cursor: pointer;
527
+ }
528
+
529
+ div.menu_icon h2 {
530
+ background: none;
531
+ color: #7e7587;
532
+ text-shadow: 0;
533
+ margin-bottom: 0px;
534
+ padding-bottom: 3px;
535
+ margin-top: -10px;
536
+ }
537
+
538
+ div.menu_icon#locations {
539
+ background: url(../images/menu/locations.png) no-repeat center top;
540
+ }
541
+
542
+ div.menu_icon#pages {
543
+ background: url(../images/menu/pages.png) no-repeat center top;
544
+ }
545
+
546
+ div.menu_icon#publications {
547
+ background: url(../images/menu/publications.png) no-repeat center top;
548
+ }
549
+
550
+ div.menu_icon#nav_items {
551
+ background: url(../images/menu/nav_items.png) no-repeat center top;
552
+ }
553
+
554
+ div.menu_icon#redirects {
555
+ background: url(../images/menu/redirects.png) no-repeat center top;
556
+ }
557
+
558
+ div.menu_icon#style_guide {
559
+ background: url(../images/menu/style_guide.png) no-repeat center top;
560
+ }
561
+
562
+ div.menu_icon#configuration {
563
+ background: url(../images/menu/configuration.png) no-repeat center top;
564
+ }
565
+
566
+ div.menu_icon#users {
567
+ background: url(../images/menu/users.png) no-repeat center top;
568
+ }
569
+
570
+ div.menu_icon#users:hover {
571
+ background: url(../images/menu/users_on.png) no-repeat center top;
572
+ }
573
+
574
+ div.menu_icon#messages {
575
+ background: url(../images/menu/messages.png) no-repeat center top;
576
+ }
577
+
578
+ div.menu_icon#messages:hover {
579
+ background: url(../images/menu/messages_on.png) no-repeat center top;
580
+ }
581
+
582
+ div.menu_icon#reports {
583
+ background: url(../images/menu/reports.png) no-repeat center top;
584
+ }
585
+
586
+ div.menu_icon#reports:hover {
587
+ background: url(../images/menu/reports_on.png) no-repeat center top;
588
+ }
589
+
590
+ div.menu_icon#locations:hover {
591
+ background: url(../images/menu/locations_on.png) no-repeat center top;
592
+ }
593
+
594
+ div.menu_icon#pages:hover {
595
+ background: url(../images/menu/pages_on.png) no-repeat center top;
596
+ }
597
+
598
+ div.menu_icon#publications:hover {
599
+ background: url(../images/menu/publications_on.png) no-repeat center top;
600
+ }
601
+
602
+ div.menu_icon#nav_items:hover {
603
+ background: url(../images/menu/nav_items_on.png) no-repeat center top;
604
+ }
605
+
606
+ div.menu_icon#redirects:hover {
607
+ background: url(../images/menu/redirects_on.png) no-repeat center top;
608
+ }
609
+
610
+ div.menu_icon#style_guide:hover {
611
+ background: url(../images/menu/style_guide_on.png) no-repeat center top;
612
+ }
613
+
614
+ div.menu_icon#configuration:hover {
615
+ background: url(../images/menu/configuration_on.png) no-repeat center top;
616
+ }
617
+
618
+ /* @end */
619
+
620
+
621
+ /* @group Charts */
622
+
623
+ .geochart {
624
+ border: 1px solid #cccccc;
625
+ width: 556px;
626
+ float: left;
627
+ margin-right: 1em;
628
+ }
629
+
630
+
631
+ /* @end */
632
+
633
+
634
+ /* @group Components */
635
+
636
+ .float_right {
637
+ float: right !important;
638
+ }
639
+
640
+ .link_block {
641
+ clear: both;
642
+ height: 2.75em;
643
+ margin-left: -1.1em;
644
+ margin-right: -1.1em;
645
+ margin-top: 2em;
646
+ margin-bottom: -2.5em;
647
+ border: 1px solid #bbbbbb;
648
+ background: #ffffff url(../images/layout/shadow_border_4.png) repeat-x 0 2px;
649
+ }
650
+
651
+ div.link_block.attached {
652
+ margin: -17px 0px 1em 0px;
653
+ width: 99.9%;
654
+ }
655
+
656
+ div.link_block.attached.table {
657
+ margin: -1px 0px 1em 0px;
658
+ width: 99.9%;
659
+ }
660
+
661
+ table .link_block {
662
+ height: 3.1em;
663
+ margin-top: -3px;
664
+ margin-left: -5px;
665
+ margin-right: -5px;
666
+ margin-bottom: -5px;
667
+ }
668
+
669
+ a.back_button {
670
+ display: block;
671
+ text-decoration: none !important;
672
+ padding-left: 2.25em;
673
+ margin-top: 1em;
674
+ color: #9a9a9a;
675
+ background: url(../images/layout/back.png) no-repeat 0 -1px;
676
+ text-transform: uppercase;
677
+ }
678
+
679
+ input[type='submit'].link_button {
680
+ margin-top: 2px;
681
+ height: 28px !important;
682
+ padding-top: 0em !important;
683
+ /*padding: 0em 1.5em 0em 1.25em !important;*/
684
+ background-color: #dddddd;
685
+ border: none;
686
+ border-right: 1px solid #bbbbbb;
687
+ color: #440000;
688
+ }
689
+
690
+ a.link_button {
691
+ color: #440000 !important;
692
+ }
693
+
694
+ .link_button {
695
+ display: block;
696
+ float: left;
697
+ width: auto;
698
+ height: 2em !important;
699
+ padding-top: 1em;
700
+ padding-left: 1.25em;
701
+ padding-right: 1.5em;
702
+ text-decoration: none !important;
703
+ font-weight: bold;
704
+ font-size: 10px;
705
+ text-transform: uppercase;
706
+ border-right: 1px solid #bbbbbb;
707
+ }
708
+
709
+ .link_button:hover {
710
+ background-color: #cccccc;
711
+ margin-top: .1em;
712
+ height: 1.9em !important;
713
+ }
714
+
715
+ .menu_box {
716
+ width: 45%;
717
+ height: 100px;
718
+ float: left;
719
+ }
720
+
721
+ .no_bg {
722
+ margin-top: 0em;
723
+ background-color: #ffffff;
724
+ border: none !important;
725
+ }
726
+
727
+ div.jump_links {
728
+ position: absolute;
729
+ right: 25px;
730
+ color: #444444;
731
+ text-align: right;
732
+ margin-top: 1em;
733
+ }
734
+
735
+ .jump_links a:link, .jump_links a:visited {
736
+ color: #444444;
737
+ text-decoration: none;
738
+ }
739
+
740
+ .jump_links ul {
741
+ display: inline;
742
+ float: right;
743
+ list-style-type: none;
744
+ }
745
+
746
+ .jump_links ul li {
747
+ float: left;
748
+ margin-left: .25em;
749
+ margin-top: 2px;
750
+ height: 28px;
751
+ width: 75px;
752
+ cursor: pointer;
753
+ padding: 7px 1em 1em 1em;
754
+ text-align: center;
755
+ background: url(../images/layout/tab.png) no-repeat;
756
+ font-size: 9px;
757
+ }
758
+
759
+ .jump_links ul li.active {
760
+ background: url(../images/layout/tab_active.png) no-repeat;
761
+ margin-top: 2px;
762
+ height: 32px;
763
+ font-weight: bold;
764
+ }
765
+
766
+ img.move_icon {
767
+ margin-top: 4px;
768
+ visibility: hidden;
769
+ }
770
+
771
+ tr:hover td img.move_icon {
772
+ visibility: visible;
773
+ }
774
+
775
+ /* @end */
776
+
777
+ /* @group Info Icons */
778
+
779
+ div.note {
780
+ color: #000000;
781
+ margin-top: 1em;
782
+ margin-bottom: 2em;
783
+ background-color: #eeeeee;
784
+ border: 1px solid #999999;
785
+ font-size: 1em;
786
+ }
787
+
788
+ div.note span.notification {
789
+ float: left;
790
+ display: block;
791
+ margin-top: -25px;
792
+ margin-left: -15px;
793
+ height: 45px;
794
+ width: 40px;
795
+ }
796
+
797
+ span.notification.detail {
798
+ background: url(../images/icons/notification_icon_sprite.png) no-repeat 0px 0px;
799
+ }
800
+
801
+ span.notification.info {
802
+ background: url(../images/icons/notification_icon_sprite.png) no-repeat 0px -45px;
803
+ }
804
+
805
+ span.notification.reminder {
806
+ background: url(../images/icons/notification_icon_sprite.png) no-repeat 0px -90px;
807
+ }
808
+
809
+ span.notification.error {
810
+ background: url(../images/icons/notification_icon_sprite.png) no-repeat -45px 0px;
811
+ }
812
+
813
+ span.notification.alert {
814
+ background: url(../images/icons/notification_icon_sprite.png) no-repeat -45px -45px;
815
+ }
816
+
817
+ span.notification.idea {
818
+ background: url(../images/icons/notification_icon_sprite.png) no-repeat -45px -90px;
819
+ }
820
+
821
+ span.notification.clarification {
822
+ background: url(../images/icons/notification_icon_sprite.png) no-repeat -90px 0px;
823
+ }
824
+
825
+ span.notification.question {
826
+ background: url(../images/icons/notification_icon_sprite.png) no-repeat -90px -45px;
827
+ }
828
+
829
+ span.notification.confusion {
830
+ background: url(../images/icons/notification_icon_sprite.png) no-repeat -90px -90px;
831
+ }
832
+
833
+ div.note p {
834
+ margin-top: 1.5em;
835
+ padding: 1em 1em .5em 1em;
836
+ }
837
+
838
+
839
+
840
+ /* @end */
841
+
842
+ /* @group Reports */
843
+
844
+ .negative {
845
+ color: #793441;
846
+ font-weight: bold;
847
+ }
848
+
849
+ .new {
850
+ color: #827e38;
851
+ font-weight: bold;
852
+ }
853
+
854
+ .positive {
855
+ color: #6b7c35;
856
+ font-weight: bold;
857
+ }
858
+
859
+ /* @end */
860
+
861
+
862
+ /* @group Rails Overrides */
863
+
864
+ div#flash_error {
865
+ border: 1px solid #aaaaaa;
866
+ color: #660000;
867
+ padding: 1em;
868
+ background-color: #eeeeee;
869
+ }
870
+
871
+ .errorExplanation h2 {
872
+ display: none;
873
+ }
874
+
875
+ .errorExplanation ul li {
876
+ margin-left: 1.5em;
877
+ list-style-type: disc;
878
+ }
879
+
880
+ /* @end */
881
+