user_interface 0.0.2

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.
Files changed (53) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +3 -0
  3. data/Rakefile +39 -0
  4. data/app/assets/images/user_interface/ui/accept.png +0 -0
  5. data/app/assets/images/user_interface/ui/add-small.png +0 -0
  6. data/app/assets/images/user_interface/ui/add.png +0 -0
  7. data/app/assets/images/user_interface/ui/alert.png +0 -0
  8. data/app/assets/images/user_interface/ui/download.png +0 -0
  9. data/app/assets/images/user_interface/ui/edit-small.png +0 -0
  10. data/app/assets/images/user_interface/ui/edit.png +0 -0
  11. data/app/assets/images/user_interface/ui/en_flag.png +0 -0
  12. data/app/assets/images/user_interface/ui/en_uk_flag.png +0 -0
  13. data/app/assets/images/user_interface/ui/en_us_flag.png +0 -0
  14. data/app/assets/images/user_interface/ui/export.png +0 -0
  15. data/app/assets/images/user_interface/ui/fr_flag.png +0 -0
  16. data/app/assets/images/user_interface/ui/kml.png +0 -0
  17. data/app/assets/images/user_interface/ui/notice.png +0 -0
  18. data/app/assets/images/user_interface/ui/remove-small.png +0 -0
  19. data/app/assets/images/user_interface/ui/remove.png +0 -0
  20. data/app/assets/images/user_interface/ui/viewer.png +0 -0
  21. data/app/assets/images/user_interface/ui/warning.png +0 -0
  22. data/app/assets/stylesheets/user_interface.css +7 -0
  23. data/app/assets/stylesheets/user_interface/_layout.scss +330 -0
  24. data/app/assets/stylesheets/user_interface/_layout.scss~ +290 -0
  25. data/app/controllers/languages_controller.rb +23 -0
  26. data/app/helpers/flash_helper.rb +9 -0
  27. data/app/helpers/languages_helper.rb +16 -0
  28. data/app/helpers/tabs_helper.rb +9 -0
  29. data/app/views/devise/_links.erb +41 -0
  30. data/app/views/devise/confirmations/new.html.erb +13 -0
  31. data/app/views/devise/mailer/confirmation_instructions.fr.html.erb +6 -0
  32. data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  33. data/app/views/devise/mailer/invitation_instructions.fr.html.erb +8 -0
  34. data/app/views/devise/mailer/invitation_instructions.html.erb +9 -0
  35. data/app/views/devise/mailer/reset_password_instructions.fr.html.erb +9 -0
  36. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  37. data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  38. data/app/views/devise/passwords/edit.html.erb +17 -0
  39. data/app/views/devise/passwords/new.html.erb +13 -0
  40. data/app/views/devise/registrations/edit.html.erb +27 -0
  41. data/app/views/devise/registrations/new.html.erb +16 -0
  42. data/app/views/devise/sessions/new.html.erb +19 -0
  43. data/app/views/devise/shared/links.erb +32 -0
  44. data/app/views/devise/unlocks/new.html.erb +12 -0
  45. data/config/locales/devise.fr.yml +86 -0
  46. data/config/locales/devise.yml +79 -0
  47. data/config/routes.rb +3 -0
  48. data/lib/tasks/user_interface_tasks.rake +4 -0
  49. data/lib/user_interface.rb +4 -0
  50. data/lib/user_interface/engine.rb +18 -0
  51. data/lib/user_interface/language_support.rb +25 -0
  52. data/lib/user_interface/version.rb +3 -0
  53. metadata +179 -0
@@ -0,0 +1,290 @@
1
+ html {color:#000;}
2
+ body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td {margin:0;padding:0;}
3
+ table {border-collapse:collapse;border-spacing:0;}
4
+ fieldset,img {border:0;}
5
+ address,caption,cite,code,dfn,em,strong,b,i,th,var {font-style:normal;font-weight:normal;}
6
+ li {list-style:none;}
7
+ caption,th {text-align:left;}
8
+ h1,h2,h3,h4,h5,h6 {font-size:100%;font-weight:normal;}
9
+ q:before,q:after {content:'';}
10
+ abbr,acronym {border:0;font-variant:normal;}
11
+ sup {vertical-align:text-top;}
12
+ sub {vertical-align:text-bottom;}
13
+ input,textarea,select {font-family:inherit;font-size:inherit;font-weight:inherit;}
14
+ input,textarea,select {*font-size:100%;}
15
+ legend {color:#000;}
16
+ a { text-decoration: none; color: #000 }
17
+
18
+ /* Red theme */
19
+ $header_background: #900 !default;
20
+ $header_color: white !default;
21
+ $tabs_background: #C00 !default;
22
+ $tabs_color: white !default;
23
+ $text_color: #222 !default;
24
+
25
+ body {
26
+ font-family: "Lucida Grande", verdana, arial, helvetica, sans-serif;
27
+ color: $text_color;
28
+ font-size: 14px;
29
+ background: #E5E5E5;
30
+ }
31
+
32
+ a, a:visited {
33
+ color: $text_color;
34
+ }
35
+
36
+ #header {
37
+ background: $header_background;
38
+
39
+ .tabs {
40
+ height: 26px;
41
+ margin: 0 30px 0 30px;
42
+
43
+ li {
44
+ display: inline;
45
+ float: left;
46
+ line-height: 24px;
47
+
48
+ a:link, a:visited {
49
+ font-size: 12px;
50
+ padding: 5px 9px 7px;
51
+ margin-right: 3px;
52
+ background-color: $tabs_background;
53
+ color: $tabs_color;
54
+ }
55
+
56
+ a.current {
57
+ color: $text_color;
58
+ font-weight: bold;
59
+ background: -webkit-gradient(linear, left top, left bottom, from(#FDFDFD), to(#E5E5E5));
60
+ background: -moz-linear-gradient(top, #FDFDFD, #E5E5E5);
61
+ }
62
+ }
63
+
64
+ li.admin {
65
+ float: right;
66
+ }
67
+ }
68
+
69
+ .infos{
70
+ height: 70px;
71
+
72
+ h1 {
73
+ font-size: 20px;
74
+ font-weight: normal;
75
+ color: $header_color;
76
+ padding: 10px 0 0 30px;
77
+ }
78
+
79
+ h1.dashboard {
80
+ font-size: 24px;
81
+ padding-top: 20px;
82
+ }
83
+
84
+ a.back_to_upper_menu {
85
+ color: $tabs_color;
86
+ text-decoration: underline;
87
+ padding: 10px 0 0 30px;
88
+ font-size: 0.8em;
89
+ display: block;
90
+ }
91
+
92
+ ul.user {
93
+ float: right;
94
+ color: $tabs_color;
95
+ margin: 0 30px 0 0;
96
+
97
+ li {
98
+ font-size: 13px;
99
+ display: inline;
100
+ margin: 0 3px;
101
+ }
102
+
103
+ a {
104
+ color: $tabs_color;
105
+ text-decoration: underline;
106
+ line-height: 55px;
107
+ }
108
+
109
+ li.language, li.home {
110
+ margin: 0 1px;
111
+ text-decoration: none;
112
+ }
113
+
114
+ span.help {
115
+ color: $header_background;
116
+ font-size: 11px;
117
+ border-radius:6px;
118
+ -moz-border-radius: 6px;
119
+ background-color: white;
120
+ padding: 3px 5px;
121
+ }
122
+ }
123
+ }
124
+ }
125
+
126
+ .actions {
127
+ a {
128
+ padding-left: 20px;
129
+ text-decoration: underline;
130
+ }
131
+
132
+ a.visit_site{
133
+ background: url(image-path('user_interface/ui/site.png')) no-repeat;
134
+ }
135
+
136
+ a.visit_event{
137
+ background: url(image-path('user_interface/ui/event.png')) no-repeat;
138
+ }
139
+
140
+ a.visit_page{
141
+ background: url(image-path('user_interface/ui/page.png')) no-repeat;
142
+ }
143
+
144
+ a.add {
145
+ background: url(image-path('user_interface/ui/add.png')) no-repeat;
146
+ }
147
+ a.edit {
148
+ background: url(image-path('user_interface/ui/edit.png')) no-repeat;
149
+ }
150
+ a.remove {
151
+ background: url(image-path('user_interface/ui/remove.png')) no-repeat;
152
+ }
153
+ li {
154
+ margin: 10px 0;
155
+ }
156
+ }
157
+
158
+ #body {
159
+ min-width: 1000px;
160
+
161
+ a{ text-decoration: underline;}
162
+ }
163
+
164
+ #workspace, #sidebar {
165
+ float: left;
166
+ }
167
+
168
+ #workspace {
169
+ width: 70%;
170
+ background: white;
171
+ margin: 15px 30px;
172
+ padding: 0 15px 10px 15px;
173
+
174
+ -moz-box-shadow: 3px 3px 4px #BBB;
175
+ -webkit-box-shadow: 3px 3px 4px #BBB;
176
+ box-shadow: 3px 3px 4px #BBB;
177
+ border-right: 1px solid #BBB;
178
+ border-bottom: 1px solid #BBB;
179
+
180
+ h2,h3 {
181
+ background: white;
182
+ padding: 15px 0;
183
+ font-weight: bold;
184
+ }
185
+
186
+ h2{font-size: 16px;}
187
+ h3{font-size: 14px;}
188
+
189
+ li span.author {
190
+ float: right;
191
+ font-size: 12px;
192
+ }
193
+
194
+ .site_summary {
195
+ float: left;
196
+ margin-bottom: 20px;
197
+ width: 100%;
198
+
199
+ img {
200
+ float: left;
201
+ margin-right: 20px;
202
+ }
203
+ a {
204
+ display: block;
205
+ margin: 25px 0 0;
206
+ }
207
+ }
208
+ .site_summary:after {
209
+ content: " ";
210
+ display: block;
211
+ height: 0;
212
+ clear: both;
213
+ visibility: hidden;
214
+ }
215
+
216
+ p { margin: 7px 0; }
217
+
218
+ fieldset.buttons{
219
+ margin: 10px;
220
+ }
221
+
222
+ }
223
+
224
+ #body #flash {
225
+ width: 72%;
226
+ margin: 15px 0 0 30px;
227
+
228
+ div {
229
+ padding: 10px 10px 10px 50px;
230
+ }
231
+ .alert {
232
+ color: #c01100;
233
+ background: #ffbdbd url(image-path('user_interface/ui/alert.png')) no-repeat 15px;
234
+ }
235
+ .notice {
236
+ background: #EDF3FE url(image-path('user_interface/ui/notice.png')) no-repeat 15px;
237
+ }
238
+ }
239
+
240
+ #body #sidebar {
241
+ width: 20%;
242
+ padding-top: 20px;
243
+
244
+ a {
245
+ color: #666;
246
+ }
247
+
248
+ .actions {
249
+ margin-bottom: 20px;
250
+ }
251
+
252
+ h3 {
253
+ padding: 6px 8px;
254
+ font-weight: bold;
255
+ background: #F0F0F0;
256
+ border-bottom: 1px solid gainsboro;
257
+ margin-bottom: 10px;
258
+ }
259
+
260
+ h4 {
261
+ font-weight: bold;
262
+ padding: 6px 8px;
263
+ font-size: 0.9em;
264
+ }
265
+
266
+ p {
267
+ font-size: 12px;
268
+ }
269
+
270
+ fieldset
271
+ {
272
+ background-color: #ECECEC;
273
+ padding: 10px;
274
+ border: 1px solid black;
275
+
276
+ legend{
277
+ font-weight: bold;
278
+ padding: 0 5px;
279
+ }
280
+
281
+ p{
282
+ margin-top: 5px;
283
+ label{ font-size: 12px;}
284
+ span{
285
+ font-style: oblique;
286
+ font-size:12px;
287
+ }
288
+ }
289
+ }
290
+ }
@@ -0,0 +1,23 @@
1
+ class LanguagesController < ApplicationController
2
+ skip_filter :authenticate_user!
3
+
4
+ def show
5
+ change_language
6
+ end
7
+
8
+ def update
9
+ change_language
10
+ end
11
+
12
+ private
13
+
14
+ def change_language
15
+ self.current_language = params[:id]
16
+ redirect_to (referer_path or root_path)
17
+ end
18
+
19
+ def referer_path
20
+ request.env["HTTP_REFERER"]
21
+ end
22
+
23
+ end
@@ -0,0 +1,9 @@
1
+ module FlashHelper
2
+
3
+ def flash_tag(flash)
4
+ flash.collect do |level, message|
5
+ content_tag(:div, sanitize(message), :class => level)
6
+ end.join("\n").html_safe
7
+ end
8
+
9
+ end
@@ -0,0 +1,16 @@
1
+ module LanguagesHelper
2
+
3
+ def selected_language?( lang)
4
+ (session[:language].nil? && lang=="fr") || lang==session[:language].to_s
5
+ end
6
+ def language_class( lang)
7
+ "language #{lang}".tap do |css_classes|
8
+ css_classes << " selected" if selected_language?(lang)
9
+ end
10
+ end
11
+
12
+ def link_to_language(language)
13
+ link_to image_tag("user_interface/ui/#{language}_flag.png"), language_path(language), :method => :put
14
+ end
15
+
16
+ end
@@ -0,0 +1,9 @@
1
+ module TabsHelper
2
+
3
+ def tab_link_to(model_or_name, link, current=nil)
4
+ model_or_name = model_or_name.model_name.human(:count => 2).capitalize if Class === model_or_name
5
+ current ||= request.path.start_with?(link)
6
+ link_to model_or_name, link, :class => ("current" if current)
7
+ end
8
+
9
+ end
@@ -0,0 +1,41 @@
1
+ <% content_for :sidebar do %>
2
+ <ul class="actions">
3
+ <li>
4
+ <%- if controller_name != 'sessions' %>
5
+ <%= link_to t(".sign_in"), new_session_path(resource_name) %><br />
6
+ <% end -%>
7
+ </li>
8
+
9
+ <li>
10
+ <%- if devise_mapping.registerable? && controller_name != 'registrations' %>
11
+ <%= link_to t(".sign_up"), new_registration_path(resource_name) %><br />
12
+ <% end -%>
13
+ </li>
14
+
15
+ <li>
16
+ <%- if devise_mapping.recoverable? && controller_name != 'passwords' %>
17
+ <%= link_to t(".new_password"), new_password_path(resource_name) %><br />
18
+ <% end -%>
19
+ </li>
20
+
21
+ <li>
22
+ <%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
23
+ <%= link_to t(".new_confirmation"), new_confirmation_path(resource_name) %><br />
24
+ <% end -%>
25
+ </li>
26
+
27
+ <li>
28
+ <%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %>
29
+ <%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) %><br />
30
+ <% end -%>
31
+ </li>
32
+
33
+ <li>
34
+ <%- if devise_mapping.omniauthable? %>
35
+ <%- resource_class.omniauth_providers.each do |provider| %>
36
+ <%= link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider) %><br />
37
+ <% end -%>
38
+ <% end -%>
39
+ </li>
40
+ </ul>
41
+ <% end %>
@@ -0,0 +1,13 @@
1
+ <%= title_tag t('.title') %>
2
+
3
+ <%= semantic_form_for(resource, :as => resource_name, :url => confirmation_path(resource_name), :html => { :method => :post }) do |form| %>
4
+
5
+ <%= form.input :email %>
6
+
7
+ <%= form.actions do %>
8
+ <%= form.action :submit, :as => :button, :label => t('.title') %>
9
+ <%= form.action :cancel, :as => :link %>
10
+ <% end %>
11
+ <% end %>
12
+
13
+ <%= render "links" %>
@@ -0,0 +1,6 @@
1
+ <p>Bonjour <%= @resource.email %>!</p>
2
+
3
+ <p>Vous pouvez confirmer votre compte email en cliquant sur le lien suivant:</p>
4
+
5
+ <p><%= link_to 'Confirmer mon compte', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token) %></p>
6
+
@@ -0,0 +1,5 @@
1
+ <p>Welcome <%= @resource.email %>!</p>
2
+
3
+ <p>You can confirm your account email through the link below:</p>
4
+
5
+ <p><%= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token) %></p>
@@ -0,0 +1,8 @@
1
+ <p>Bonjour <%= @resource.email %>,</p>
2
+
3
+ <p>Ce message est une invitation pour accéder à <%= link_to nil, root_url %>, vous pouvez l'accepter en cliquant sur le lien suivant :</p>
4
+
5
+ <p><%= link_to "Accepter l'invitation", accept_invitation_url(@resource, :invitation_token => @resource.invitation_token) %></p>
6
+
7
+ <p>Si vous ne souhaitez pas accepter cette invitation, ignorez ce message.<br />
8
+ Votre compte ne sera pas créé tant que vous n'accédez pas au lien ci-dessus et que vous ne définissez un mot de passe.</p>
@@ -0,0 +1,9 @@
1
+ <p>Hello <%= @resource.email %>!</p>
2
+
3
+ <p>Someone has invited you to <%= root_url %>, you can accept it through the link below.</p>
4
+
5
+ <p><%= link_to 'Accept invitation', accept_invitation_url(@resource, :invitation_token => @resource.invitation_token) %></p>
6
+
7
+ <p>If you don't want to accept the invitation, please ignore this email.<br />
8
+ Your account won't be created until you access the link above and set your password.</p>
9
+