admin-theme 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +17 -0
- data/.travis.yml +4 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +32 -0
- data/README.md +115 -0
- data/Rakefile +9 -0
- data/admin-theme.gemspec +22 -0
- data/config/locales/en.yml +18 -0
- data/features/resource_generator.feature +9 -0
- data/features/setup_generator.feature +8 -0
- data/features/steps/test_admin_theme_resource_generation.rb +31 -0
- data/features/steps/test_admin_theme_setup.rb +36 -0
- data/features/support/env.rb +1 -0
- data/features/support/helpers.rb +39 -0
- data/lib/admin-theme.rb +7 -0
- data/lib/admin-theme/version.rb +5 -0
- data/lib/generators/admin_theme/resource/controllers/admin_resource_controller.erb +46 -0
- data/lib/generators/admin_theme/resource/resource_generator.rb +93 -0
- data/lib/generators/admin_theme/resource/templates/view_edit.html.erb +17 -0
- data/lib/generators/admin_theme/resource/templates/view_form.html.erb +14 -0
- data/lib/generators/admin_theme/resource/templates/view_index.html.erb +38 -0
- data/lib/generators/admin_theme/resource/templates/view_new.html.erb +16 -0
- data/lib/generators/admin_theme/resource/templates/view_show.html.erb +36 -0
- data/lib/generators/admin_theme/setup/controllers/admin_base_controller.rb +18 -0
- data/lib/generators/admin_theme/setup/controllers/admin_dashboard_controller.rb +4 -0
- data/lib/generators/admin_theme/setup/setup_generator.rb +37 -0
- data/lib/generators/admin_theme/setup/templates/layout_admin.html.erb +46 -0
- data/lib/generators/admin_theme/setup/templates/view_dashboard.html.erb +7 -0
- data/lib/generators/admin_theme/setup/templates/view_sidebar.html.erb +15 -0
- data/vendor/assets/stylesheets/web-app-theme.css +410 -0
- data/vendor/assets/stylesheets/web-app-theme/default.scss +463 -0
- metadata +136 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
<div class="block">
|
2
|
+
<div class="secondary-navigation">
|
3
|
+
<ul class="wat-cf">
|
4
|
+
<li class="first"><%%= link_to t("admin-theme.list"), <%= controller_routing_path %>_path %></li>
|
5
|
+
<li><%%= link_to t("admin-theme.new"), new_<%= singular_controller_routing_path %>_path %></li>
|
6
|
+
<li class="active"><%%= link_to t("admin-theme.edit"), edit_<%= singular_controller_routing_path %>_path %></li>
|
7
|
+
</ul>
|
8
|
+
</div>
|
9
|
+
<div class="content">
|
10
|
+
<h2 class="title"><%%= t("admin-theme.edit") %> <%= model_name %></h2>
|
11
|
+
<div class="inner">
|
12
|
+
<%%= form_for @<%= model_name.underscore %>, :url => <%= singular_controller_routing_path %>_path(@<%= resource_name %>), :html => { :class => :form } do |f| -%>
|
13
|
+
<%%= render :partial => "form", :locals => {:f => f} %>
|
14
|
+
<%% end -%>
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
</div>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<div class="group">
|
2
|
+
<%%#= f.label :example, 'Example', :class => :label %>
|
3
|
+
<%%#= f.text_field :example, :class => 'text_field' %>
|
4
|
+
<span class="description">Ex: a simple text</span>
|
5
|
+
</div>
|
6
|
+
|
7
|
+
<div class="group navform wat-cf">
|
8
|
+
<button class="button" type="submit">
|
9
|
+
<%%= image_tag("web-app-theme/icons/tick.png", :alt => ("admin-theme.save")) %>
|
10
|
+
<%%= t("admin-theme.save") %>
|
11
|
+
</button>
|
12
|
+
<span class="text_button_padding"><%%= t("admin-theme.or") %></span>
|
13
|
+
<%%= link_to t("admin-theme.cancel"), <%= controller_routing_path %>_path, :class => "text_button_padding link_button" %>
|
14
|
+
</div>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<div class="block">
|
2
|
+
<div class="secondary-navigation">
|
3
|
+
<ul class="wat-cf">
|
4
|
+
<li class="first active"><%%= link_to t("admin-theme.list"), <%= controller_routing_path %>_path %></li>
|
5
|
+
<li><%%= link_to t("admin-theme.new"), new_<%= singular_controller_routing_path %>_path %></li>
|
6
|
+
</ul>
|
7
|
+
</div>
|
8
|
+
<div class="content">
|
9
|
+
<h2 class="title"><%%= t("admin-theme.all") %> <%= plural_model_name %></h2>
|
10
|
+
<div class="inner">
|
11
|
+
<table class="table">
|
12
|
+
<tr>
|
13
|
+
<th class="first">ID</th>
|
14
|
+
<th><%%= t("admin-theme.created_at") %></th>
|
15
|
+
<th><%%= t("admin-theme.updated_at") %></th>
|
16
|
+
<th class="last"> </th>
|
17
|
+
</tr>
|
18
|
+
<%% @<%= plural_resource_name %>.each do |<%= resource_name %>| -%>
|
19
|
+
<tr class="<%%= cycle("odd", "even") %>">
|
20
|
+
<td><%%= <%= resource_name %>.id %></td>
|
21
|
+
<td><%%= l <%= resource_name %>.created_at, :format => :'admin-theme' %></td>
|
22
|
+
<td><%%= l <%= resource_name %>.updated_at, :format => :'admin-theme' %></td>
|
23
|
+
<td class="last">
|
24
|
+
<%%= link_to t("admin-theme.show"), <%= singular_controller_routing_path %>_path(<%= resource_name %>) %> |
|
25
|
+
<%%= link_to t("admin-theme.edit"), edit_<%= singular_controller_routing_path %>_path(<%= resource_name %>) %> |
|
26
|
+
<%%= link_to t("admin-theme.delete"), <%= singular_controller_routing_path %>_path(<%= resource_name %>), :method => :delete, :data => { :confirm => t("admin-theme.confirm") } %>
|
27
|
+
</td>
|
28
|
+
</tr>
|
29
|
+
<%% end -%>
|
30
|
+
</table>
|
31
|
+
<div class="actions-bar wat-cf">
|
32
|
+
<div class="actions"></div>
|
33
|
+
<% if options.pagination %>
|
34
|
+
<%%= paginate(@<%= plural_resource_name %>, :theme => 'admin_theme') %><% end %>
|
35
|
+
</div>
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
</div>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<div class="block">
|
2
|
+
<div class="secondary-navigation">
|
3
|
+
<ul class="wat-cf">
|
4
|
+
<li class="first"><%%= link_to t("admin-theme.list"), <%= controller_routing_path %>_path %></li>
|
5
|
+
<li class="active"><%%= link_to t("admin-theme.new"), new_<%= singular_controller_routing_path %>_path %></li>
|
6
|
+
</ul>
|
7
|
+
</div>
|
8
|
+
<div class="content">
|
9
|
+
<h2 class="title"><%%= t("admin-theme.new")%> <%= model_name %></h2>
|
10
|
+
<div class="inner">
|
11
|
+
<%%= form_for :<%= model_name.underscore %>, :url => <%= controller_routing_path %>_path, :html => { :class => :form } do |f| -%>
|
12
|
+
<%%= render :partial => "form", :locals => {:f => f} %>
|
13
|
+
<%% end -%>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
</div>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<div class="block">
|
2
|
+
<div class="secondary-navigation">
|
3
|
+
<ul class="wat-cf">
|
4
|
+
<li class="first"><%%= link_to t("admin-theme.list"), <%= controller_routing_path %>_path %></li>
|
5
|
+
<li><%%= link_to t("admin-theme.new"), new_<%= singular_controller_routing_path %>_path %></li>
|
6
|
+
<li class="active"><%%= link_to t("admin-theme.show"), <%= singular_controller_routing_path %>_path %></li>
|
7
|
+
</ul>
|
8
|
+
</div>
|
9
|
+
<div class="content">
|
10
|
+
<h2 class="title"><%= resource_name.capitalize %> #<%%= @<%= resource_name %>.id %></h2>
|
11
|
+
<div class="inner">
|
12
|
+
|
13
|
+
<p>
|
14
|
+
<b><%%= t("admin-theme.created_at") %>:</b>
|
15
|
+
<%%= l @<%= resource_name %>.created_at, :format => :'admin-theme' %>
|
16
|
+
</p>
|
17
|
+
|
18
|
+
<p>
|
19
|
+
<b><%%= t("admin-theme.updated_at") %>:</b>
|
20
|
+
<%%= l @<%= resource_name %>.updated_at, :format => :'admin-theme' %>
|
21
|
+
</p>
|
22
|
+
|
23
|
+
<div class="wat-cf">
|
24
|
+
<%%= link_to edit_<%= singular_controller_routing_path %>_path(@<%= resource_name %>), :class => "button" do %>
|
25
|
+
<%%= image_tag("web-app-theme/icons/application_edit.png", :alt => t("admin-theme.edit")) %>
|
26
|
+
<%%= t("admin-theme.edit") %>
|
27
|
+
<%% end %>
|
28
|
+
<%%= link_to <%= singular_controller_routing_path %>_path(@<%= resource_name %>), :method => "delete", :class => "button",
|
29
|
+
:data => { :confirm => t("admin-theme.confirm") } do %>
|
30
|
+
<%%= image_tag("web-app-theme/icons/cross.png", :alt => t("admin-theme.delete")) %>
|
31
|
+
<%%= t("admin-theme.delete") %>
|
32
|
+
<%% end %>
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
</div>
|
36
|
+
</div>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class Admin::BaseController < ApplicationController
|
2
|
+
protect_from_forgery
|
3
|
+
layout 'admin'
|
4
|
+
|
5
|
+
before_filter :show_errors
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def show_errors
|
10
|
+
ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
|
11
|
+
if html_tag =~ /<label/
|
12
|
+
%|<div class="fieldWithErrors">#{html_tag} <span class="error">#{[instance.error_message].join(', ')}</span></div>|.html_safe
|
13
|
+
else
|
14
|
+
html_tag
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module AdminTheme
|
2
|
+
class SetupGenerator < Rails::Generators::Base
|
3
|
+
desc "Creates the admin layout, assets, admin base and dashboard controllers."
|
4
|
+
source_root File.expand_path('../templates', __FILE__)
|
5
|
+
|
6
|
+
class_option :app_name, :type => :string, :default => 'Admin', :desc => 'Specify the application name'
|
7
|
+
|
8
|
+
def create_views
|
9
|
+
template "layout_admin.html.erb", "app/views/layouts/admin.html.erb"
|
10
|
+
template "view_sidebar.html.erb", "app/views/admin/shared/_sidebar.html.erb"
|
11
|
+
template "view_dashboard.html.erb", "app/views/admin/dashboard/show.html.erb"
|
12
|
+
end
|
13
|
+
|
14
|
+
def create_controllers
|
15
|
+
copy_file "../controllers/admin_base_controller.rb", "app/controllers/admin/base_controller.rb"
|
16
|
+
copy_file "../controllers/admin_dashboard_controller.rb", "app/controllers/admin/dashboard_controller.rb"
|
17
|
+
|
18
|
+
inject_into_file "config/routes.rb",
|
19
|
+
" namespace :admin do
|
20
|
+
root :to => 'dashboard#show', :as => 'dashboard'
|
21
|
+
end\n\n", :after => "::Application.routes.draw do\n"
|
22
|
+
end
|
23
|
+
|
24
|
+
def create_stylesheet
|
25
|
+
create_file "app/assets/stylesheets/admin.css",
|
26
|
+
"/*
|
27
|
+
*= require web-app-theme
|
28
|
+
*= require web-app-theme/default
|
29
|
+
*= require_self
|
30
|
+
*/\n"
|
31
|
+
end
|
32
|
+
|
33
|
+
def create_javascript
|
34
|
+
create_file "app/assets/javascripts/admin.js", "//= require jquery\n//= require jquery_ujs\n"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title><%= options.app_name %></title>
|
5
|
+
<%%= stylesheet_link_tag 'admin' %>
|
6
|
+
<%%= javascript_include_tag 'admin' %>
|
7
|
+
<%%= csrf_meta_tags %>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<div id="container">
|
11
|
+
<div id="header">
|
12
|
+
<h1><%%= link_to "<%= options.app_name %>", admin_dashboard_path %></h1>
|
13
|
+
<div id="user-navigation">
|
14
|
+
<ul class="wat-cf">
|
15
|
+
<li><%%= link_to "Main site", root_path, :target => "_blank" %></li>
|
16
|
+
<li><%%#= link_to "Logout", admin_logout_path, :class => "logout" %></li>
|
17
|
+
</ul>
|
18
|
+
</div>
|
19
|
+
<div id="main-navigation">
|
20
|
+
<ul class="wat-cf">
|
21
|
+
</ul>
|
22
|
+
</div>
|
23
|
+
</div>
|
24
|
+
<div id="wrapper" class="wat-cf">
|
25
|
+
<div class="flash">
|
26
|
+
<%% flash.each do |type, message| -%>
|
27
|
+
<div class="message <%%= type %>">
|
28
|
+
<p><%%= message %></p>
|
29
|
+
</div>
|
30
|
+
<%% end -%>
|
31
|
+
</div>
|
32
|
+
<div id="main">
|
33
|
+
<%%= yield %>
|
34
|
+
<div id="footer">
|
35
|
+
<div class="block">
|
36
|
+
<p>Copyright © <%%= Time.now.year %> <%= options.app_name %></p>
|
37
|
+
</div>
|
38
|
+
</div>
|
39
|
+
</div>
|
40
|
+
<div id="sidebar">
|
41
|
+
<%%= render :partial => 'admin/shared/sidebar' %>
|
42
|
+
</div>
|
43
|
+
</div>
|
44
|
+
</div>
|
45
|
+
</body>
|
46
|
+
</html>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<div class="block notice">
|
2
|
+
<h4>Notice</h4>
|
3
|
+
<p>
|
4
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
|
5
|
+
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
|
6
|
+
ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
7
|
+
</p>
|
8
|
+
</div>
|
9
|
+
|
10
|
+
<div class="block">
|
11
|
+
<h3>Links</h3>
|
12
|
+
<ul class="navigation">
|
13
|
+
<li><%%= link_to "Link 1", '#' %></li>
|
14
|
+
</ul>
|
15
|
+
</div>
|
@@ -0,0 +1,410 @@
|
|
1
|
+
* {margin:0;padding:0}
|
2
|
+
.clear { clear: both; height: 0; }
|
3
|
+
|
4
|
+
.wat-cf:after {
|
5
|
+
content: ".";
|
6
|
+
display: block;
|
7
|
+
height: 0;
|
8
|
+
clear: both;
|
9
|
+
visibility: hidden;
|
10
|
+
}
|
11
|
+
|
12
|
+
.wat-cf {display: inline-block;}
|
13
|
+
|
14
|
+
/* Hides from IE-mac \*/
|
15
|
+
* html .wat-cf {height: 1%;}
|
16
|
+
.wat-cf {display: block;}
|
17
|
+
/* End hide from IE-mac */
|
18
|
+
|
19
|
+
h1 { margin: 15px 0; font-size: 22px; font-weight: normal; }
|
20
|
+
h2 { font-size: 22px; margin: 15px 0; font-weight: normal;}
|
21
|
+
h3 { font-size: 18px; margin: 10px 0; font-weight: normal;}
|
22
|
+
h4 { font-size: 16px; margin: 10px 0; font-weight: normal;}
|
23
|
+
hr {height: 1px; border: 0; }
|
24
|
+
p { margin: 15px 0;}
|
25
|
+
a img { border: none; }
|
26
|
+
|
27
|
+
body {
|
28
|
+
font-size: 12px;
|
29
|
+
font-family: sans-serif;
|
30
|
+
}
|
31
|
+
|
32
|
+
#container {
|
33
|
+
min-width: 960px;
|
34
|
+
}
|
35
|
+
|
36
|
+
#header, #wrapper {
|
37
|
+
padding: 0 20px;
|
38
|
+
}
|
39
|
+
|
40
|
+
#header {
|
41
|
+
position: relative;
|
42
|
+
padding-top: 1px;
|
43
|
+
}
|
44
|
+
|
45
|
+
#header h1 {
|
46
|
+
margin: 0;
|
47
|
+
padding: 10px 0;
|
48
|
+
font-size: 26px;
|
49
|
+
}
|
50
|
+
|
51
|
+
#header h1 a:link, #header h1 a:active, #header h1 a:hover, #header h1 a:visited {
|
52
|
+
text-decoration: none;
|
53
|
+
}
|
54
|
+
|
55
|
+
#main {
|
56
|
+
width: 70%;
|
57
|
+
float: left;
|
58
|
+
}
|
59
|
+
|
60
|
+
.actions-bar {
|
61
|
+
padding: 10px 1px;
|
62
|
+
}
|
63
|
+
|
64
|
+
.actions-bar .actions {
|
65
|
+
float: left;
|
66
|
+
}
|
67
|
+
|
68
|
+
|
69
|
+
.actions-bar .pagination {
|
70
|
+
float: right;
|
71
|
+
padding: 1px 0;
|
72
|
+
}
|
73
|
+
|
74
|
+
#sidebar {
|
75
|
+
width: 25%;
|
76
|
+
float: right;
|
77
|
+
}
|
78
|
+
|
79
|
+
#sidebar h3 {
|
80
|
+
padding: 10px 15px;
|
81
|
+
margin: 0;
|
82
|
+
font-size: 13px;
|
83
|
+
}
|
84
|
+
|
85
|
+
#sidebar .block {
|
86
|
+
margin-bottom: 20px;
|
87
|
+
padding-bottom: 10px;
|
88
|
+
}
|
89
|
+
|
90
|
+
#sidebar .block .content {
|
91
|
+
padding: 0 15px;
|
92
|
+
}
|
93
|
+
|
94
|
+
#sidebar ul.navigation li a:link, #sidebar ul.navigation li a:visited {
|
95
|
+
display: block;
|
96
|
+
padding: 10px 15px;
|
97
|
+
}
|
98
|
+
|
99
|
+
#sidebar .block .sidebar-block, #sidebar .notice {
|
100
|
+
padding:10px;
|
101
|
+
}
|
102
|
+
|
103
|
+
#wrapper {
|
104
|
+
padding-top: 20px;
|
105
|
+
}
|
106
|
+
|
107
|
+
#main .block {
|
108
|
+
margin-bottom: 20px;
|
109
|
+
padding-top: 1px;
|
110
|
+
}
|
111
|
+
|
112
|
+
#main .block .content .inner {
|
113
|
+
padding: 0 15px 15px;
|
114
|
+
}
|
115
|
+
|
116
|
+
#main .main p.first {
|
117
|
+
margin-top: 0;
|
118
|
+
}
|
119
|
+
|
120
|
+
#user-navigation {
|
121
|
+
position: absolute;
|
122
|
+
top: 0px;
|
123
|
+
right: 20px;
|
124
|
+
}
|
125
|
+
|
126
|
+
#main-navigation {
|
127
|
+
width: 100%;
|
128
|
+
}
|
129
|
+
|
130
|
+
#user-navigation ul, #main-navigation ul, .secondary-navigation ul, #sidebar ul.navigation {
|
131
|
+
margin: 0;
|
132
|
+
padding: 0;
|
133
|
+
list-style-type: none;
|
134
|
+
}
|
135
|
+
|
136
|
+
#user-navigation ul li, #main-navigation ul li, .secondary-navigation ul li {
|
137
|
+
float: left;
|
138
|
+
}
|
139
|
+
|
140
|
+
#main-navigation ul li {
|
141
|
+
margin-right: 5px;
|
142
|
+
}
|
143
|
+
|
144
|
+
#user-navigation ul li {
|
145
|
+
padding: 5px 10px;
|
146
|
+
}
|
147
|
+
|
148
|
+
#main-navigation ul li a:link, #main-navigation ul li a:visited, #main-navigation ul li a:hover, #main-navigation ul li a:active,
|
149
|
+
.secondary-navigation ul li a:link, .secondary-navigation ul li a:visited, .secondary-navigation ul li a:hover, .secondary-navigation ul li a:active,
|
150
|
+
#user-navigation ul li a:link, #user-navigation ul li a:visited, #user-navigation ul li a:hover, #user-navigation ul li a:active {
|
151
|
+
text-decoration: none;
|
152
|
+
}
|
153
|
+
|
154
|
+
#main-navigation ul li a {
|
155
|
+
font-size: 14px;
|
156
|
+
line-height: 14px;
|
157
|
+
display: block;
|
158
|
+
padding: 8px 15px;
|
159
|
+
}
|
160
|
+
|
161
|
+
.secondary-navigation {
|
162
|
+
font-size: 13px;
|
163
|
+
border-bottom-width: 10px;
|
164
|
+
border-bottom-style: solid;
|
165
|
+
}
|
166
|
+
|
167
|
+
.secondary-navigation ul li a {
|
168
|
+
display: block;
|
169
|
+
padding: 10px 15px;
|
170
|
+
}
|
171
|
+
|
172
|
+
#footer {
|
173
|
+
padding-bottom: 20px;
|
174
|
+
}
|
175
|
+
|
176
|
+
/* pagination */
|
177
|
+
|
178
|
+
.pagination a, .pagination span, .pagination em {
|
179
|
+
padding: 2px 5px;
|
180
|
+
margin-right: 5px;
|
181
|
+
display: block;
|
182
|
+
float: left;
|
183
|
+
border-style: solid;
|
184
|
+
border-width: 1px;
|
185
|
+
}
|
186
|
+
|
187
|
+
.pagination em {
|
188
|
+
font-weight: bold;
|
189
|
+
}
|
190
|
+
|
191
|
+
.pagination a {
|
192
|
+
text-decoration: none;
|
193
|
+
}
|
194
|
+
|
195
|
+
/* tables */
|
196
|
+
.table {
|
197
|
+
width: 100%;
|
198
|
+
border-collapse: collapse;
|
199
|
+
margin-bottom: 15px;
|
200
|
+
}
|
201
|
+
|
202
|
+
.table th {
|
203
|
+
padding: 10px;
|
204
|
+
font-weight: bold;
|
205
|
+
text-align: left;
|
206
|
+
}
|
207
|
+
|
208
|
+
.table th.first {
|
209
|
+
width: 30px;
|
210
|
+
}
|
211
|
+
|
212
|
+
.table th.last {
|
213
|
+
width: 200px;
|
214
|
+
}
|
215
|
+
|
216
|
+
.table .checkbox {
|
217
|
+
margin-left: 10px;
|
218
|
+
}
|
219
|
+
|
220
|
+
.table td {
|
221
|
+
padding: 10px;
|
222
|
+
}
|
223
|
+
|
224
|
+
.table td.last {
|
225
|
+
text-align: right;
|
226
|
+
}
|
227
|
+
|
228
|
+
/* forms */
|
229
|
+
|
230
|
+
input.checkbox {
|
231
|
+
margin: 0;
|
232
|
+
padding: 0;
|
233
|
+
}
|
234
|
+
|
235
|
+
.form .group {
|
236
|
+
margin-bottom: 15px;
|
237
|
+
}
|
238
|
+
|
239
|
+
.form div.left {
|
240
|
+
width: 20%;
|
241
|
+
float: left;
|
242
|
+
}
|
243
|
+
|
244
|
+
.form div.right {
|
245
|
+
width: 75%;
|
246
|
+
float: right;
|
247
|
+
}
|
248
|
+
|
249
|
+
.form .columns .column {
|
250
|
+
width: 48%;
|
251
|
+
}
|
252
|
+
|
253
|
+
.form .columns .left {
|
254
|
+
float: left;
|
255
|
+
}
|
256
|
+
|
257
|
+
.form .columns .right {
|
258
|
+
float: right;
|
259
|
+
}
|
260
|
+
|
261
|
+
.form label.label, .form input.text_field, .form textarea.text_area {
|
262
|
+
font-size: 1.2em;
|
263
|
+
padding: 1px 0;
|
264
|
+
margin: 0;
|
265
|
+
}
|
266
|
+
|
267
|
+
.form label.right {
|
268
|
+
text-align: right;
|
269
|
+
}
|
270
|
+
|
271
|
+
.form input.checkbox, .form input.radio {
|
272
|
+
margin-right: 5px;
|
273
|
+
}
|
274
|
+
|
275
|
+
.form label.checkbox, .form label.radio {
|
276
|
+
line-height: 1.5em;
|
277
|
+
}
|
278
|
+
|
279
|
+
.form label.label {
|
280
|
+
display: block;
|
281
|
+
padding-bottom: 2px;
|
282
|
+
font-weight: bold;
|
283
|
+
}
|
284
|
+
|
285
|
+
.form div.fieldWithErrors label.label {
|
286
|
+
display: inline;
|
287
|
+
}
|
288
|
+
|
289
|
+
.form .fieldWithErrors .error {
|
290
|
+
color: red;
|
291
|
+
}
|
292
|
+
|
293
|
+
.form input.text_field, .form textarea.text_area {
|
294
|
+
width: 100%;
|
295
|
+
border-width: 1px;
|
296
|
+
border-style: solid;
|
297
|
+
}
|
298
|
+
|
299
|
+
/* lists */
|
300
|
+
|
301
|
+
ul.list {
|
302
|
+
margin: 0;
|
303
|
+
padding: 0;
|
304
|
+
list-style-type: none;
|
305
|
+
}
|
306
|
+
|
307
|
+
ul.list li {
|
308
|
+
clear: left;
|
309
|
+
padding-bottom: 5px;
|
310
|
+
}
|
311
|
+
|
312
|
+
ul.list li .left {
|
313
|
+
float: left;
|
314
|
+
}
|
315
|
+
|
316
|
+
ul.list li .left .avatar {
|
317
|
+
width: 50px;
|
318
|
+
height: 50px;
|
319
|
+
}
|
320
|
+
|
321
|
+
ul.list li .item {
|
322
|
+
margin-left: 80px;
|
323
|
+
}
|
324
|
+
|
325
|
+
ul.list li .item .avatar {
|
326
|
+
float: left;
|
327
|
+
margin: 0 5px 5px 0;
|
328
|
+
width: 30px;
|
329
|
+
height: 30px;
|
330
|
+
}
|
331
|
+
|
332
|
+
/* box */
|
333
|
+
|
334
|
+
#box {
|
335
|
+
width: 500px;
|
336
|
+
margin: 50px auto;
|
337
|
+
}
|
338
|
+
|
339
|
+
#box .block {
|
340
|
+
margin-bottom: 20px;
|
341
|
+
}
|
342
|
+
|
343
|
+
#box .block h2 {
|
344
|
+
padding: 10px 15px;
|
345
|
+
margin: 0;
|
346
|
+
}
|
347
|
+
|
348
|
+
#box .block .content {
|
349
|
+
padding: 10px 20px;
|
350
|
+
}
|
351
|
+
|
352
|
+
/* Inspired by http://particletree.com/features/rediscovering-the-button-element */
|
353
|
+
|
354
|
+
a.button:link, a.button:visited, a.button:hover, a.button:active, button.button {
|
355
|
+
color: #222;
|
356
|
+
display:block;
|
357
|
+
float:left;
|
358
|
+
margin:0 7px 0 0;
|
359
|
+
background-color: #eee;
|
360
|
+
border:1px solid #bfbfbf;
|
361
|
+
font-size: 1em;
|
362
|
+
line-height: 1.3em;
|
363
|
+
font-weight:bold;
|
364
|
+
cursor:pointer;
|
365
|
+
padding:5px 10px 6px 7px;
|
366
|
+
text-decoration: none;
|
367
|
+
}
|
368
|
+
|
369
|
+
button.button {
|
370
|
+
width:auto;
|
371
|
+
overflow:visible;
|
372
|
+
padding:4px 10px 3px 7px; /* IE6 */
|
373
|
+
}
|
374
|
+
button.button[type] {
|
375
|
+
padding:5px 10px 5px 7px; /* Firefox */
|
376
|
+
line-height:17px; /* Safari */
|
377
|
+
}
|
378
|
+
|
379
|
+
*:first-child+html button.button[type] {
|
380
|
+
padding:4px 10px 3px 7px; /* IE7 */
|
381
|
+
}
|
382
|
+
|
383
|
+
button.button img, a.button img {
|
384
|
+
margin:0 3px -3px 0 !important;
|
385
|
+
padding:0;
|
386
|
+
border:none;
|
387
|
+
width:16px;
|
388
|
+
height:16px;
|
389
|
+
}
|
390
|
+
|
391
|
+
button.button:hover, a.button:hover {
|
392
|
+
background-color:#dedede;
|
393
|
+
}
|
394
|
+
|
395
|
+
button.button:active, a.button:active {
|
396
|
+
background-color:#e5e5e5;
|
397
|
+
}
|
398
|
+
.text_button_padding{
|
399
|
+
color: #222222;
|
400
|
+
display: block;
|
401
|
+
float: left;
|
402
|
+
font-size: 1em;
|
403
|
+
line-height: 2em;
|
404
|
+
margin: 0 7px 0 0;
|
405
|
+
padding: 5px 0 6px 7px;
|
406
|
+
text-decoration: none;
|
407
|
+
}
|
408
|
+
.link_button{
|
409
|
+
cursor: pointer;
|
410
|
+
}
|