admin-theme 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
+
}
|