mdd 3.1.1 → 3.1.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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/app/helpers/mdwa_helper.rb +13 -4
  3. data/app/views/template/mdwa/_autocomplete_multiple_tag.html.erb +3 -3
  4. data/app/views/template/mdwa/_autocomplete_remote_multiple_tag.html.erb +5 -2
  5. data/app/views/template/mdwa/_autocomplete_remote_tag.html.erb +21 -1
  6. data/lib/generators/mdwa/sandbox/sandbox_generator.rb +30 -7
  7. data/lib/generators/mdwa/sandbox/templates/app/assets/javascripts/mdwa/login_manifest.js +1 -1
  8. data/lib/generators/mdwa/sandbox/templates/app/assets/javascripts/mdwa/system_manifest.js +1 -1
  9. data/lib/generators/mdwa/sandbox/templates/app/assets/javascripts/mdwa/template/ajaxloader.js +16 -16
  10. data/lib/generators/mdwa/sandbox/templates/app/assets/javascripts/mdwa/template/all_pages.js +34 -30
  11. data/lib/generators/mdwa/sandbox/templates/app/assets/javascripts/mdwa/template/batch_update.js +35 -0
  12. data/lib/generators/mdwa/sandbox/templates/app/assets/javascripts/mdwa/template/xls_export.js +14 -0
  13. data/lib/generators/mdwa/sandbox/templates/app/assets/stylesheets/jquery/{jquery-ui-1.10.0.custom.css → jquery-ui.css} +60 -57
  14. data/lib/generators/mdwa/sandbox/templates/app/assets/stylesheets/mdwa/login/login.css +26 -2
  15. data/lib/generators/mdwa/sandbox/templates/app/assets/stylesheets/mdwa/system_manifest.css +1 -0
  16. data/lib/generators/mdwa/sandbox/templates/app/assets/stylesheets/mdwa/template/backend.css.erb +11 -91
  17. data/lib/generators/mdwa/sandbox/templates/app/assets/stylesheets/mdwa/template/menu.css +86 -0
  18. data/lib/generators/mdwa/sandbox/templates/app/assets/stylesheets/mdwa/template/template.css.erb +71 -18
  19. data/lib/generators/mdwa/sandbox/templates/app/controllers/a/backend_controller.rb +14 -0
  20. data/lib/generators/mdwa/sandbox/templates/app/models/permission.rb +2 -2
  21. data/lib/generators/mdwa/sandbox/templates/app/views/layouts/login.html.erb +4 -1
  22. data/lib/generators/mdwa/sandbox/templates/app/views/layouts/public.html.erb +3 -3
  23. data/lib/generators/mdwa/sandbox/templates/app/views/layouts/system.html.erb +6 -4
  24. data/lib/generators/mdwa/sandbox/templates/app/views/template/mdwa/_login_text.html.erb +4 -0
  25. data/lib/generators/mdwa/sandbox/templates/app/views/template/mdwa/_menubar.html.erb +3 -0
  26. data/lib/generators/mdwa/sandbox/templates/app/views/template/mdwa/menubar/_administrators.html.erb +10 -0
  27. data/lib/generators/mdwa/sandbox/templates/config/initializers/mime_types.rb +2 -0
  28. data/lib/generators/mdwa/sandbox/templates/config/locales/mdwa.en.yml +8 -0
  29. data/lib/generators/mdwa/sandbox/templates/deploy.sh +17 -0
  30. data/lib/generators/mdwa/templates/templates/scaffold/controller.erb +23 -5
  31. data/lib/generators/mdwa/templates/templates/scaffold/model.erb +61 -19
  32. data/lib/generators/mdwa/templates/templates/scaffold/views/_form.html.erb +3 -5
  33. data/lib/generators/mdwa/templates/templates/scaffold/views/_form_fields.html.erb +23 -15
  34. data/lib/generators/mdwa/templates/templates/scaffold/views/_list.html.erb +38 -26
  35. data/lib/generators/mdwa/templates/templates/scaffold/views/batch_update.js.erb +3 -0
  36. data/lib/generators/mdwa/templates/templates/scaffold/views/index.html.erb +19 -4
  37. data/lib/generators/mdwa/templates/templates/scaffold/views/index.xls.erb +23 -0
  38. data/lib/generators/mdwa/templates/templates/scaffold/views/menu/menu.html.erb +13 -0
  39. data/lib/generators/mdwa/templates/templates_generator.rb +5 -0
  40. data/lib/generators/mdwa/transform/transform_generator.rb +91 -49
  41. data/lib/generators/mdwa/translate/templates/br/config/initializers/inflections.rb +58 -0
  42. data/lib/generators/mdwa/translate/templates/br/config/locales/devise.pt-BR.yml +59 -0
  43. data/lib/generators/mdwa/translate/templates/br/config/locales/mdwa.pt-BR.yml +294 -0
  44. data/lib/generators/mdwa/translate/templates/br/config/locales/mdwa.specific.pt-BR.yml +2 -0
  45. data/lib/generators/mdwa/translate/translate_generator.rb +38 -0
  46. data/lib/mdwa/dsl/entity.rb +1 -0
  47. data/lib/mdwa/generators/model_attribute.rb +5 -3
  48. data/lib/mdwa/version.rb +1 -1
  49. data/mdd.gemspec +4 -1
  50. data/test/entity_actions_test.rb +0 -1
  51. data/test/entity_attributes_options_test.rb +1 -2
  52. data/test/entity_specifications_test.rb +0 -1
  53. data/test/entity_status_test.rb +40 -0
  54. data/test/entity_test.rb +6 -7
  55. data/test/layout_test.rb +0 -1
  56. data/test/process_test.rb +0 -1
  57. data/test/requirements_test.rb +0 -1
  58. data/test/users_test.rb +0 -1
  59. metadata +52 -8
  60. data/lib/generators/mdwa/sandbox/templates/app/assets/javascripts/jquery/jquery.popup_window.js +0 -62
  61. data/lib/generators/mdwa/sandbox/templates/app/views/template/_leftbar.html.erb +0 -11
@@ -3,7 +3,7 @@ html {
3
3
  }
4
4
 
5
5
  body, input, button, textarea, select, select option {
6
- font-family: 'Gafata', 'Lucida Sans Unicode', 'Lucida Grande', sans-serif;
6
+ font-family: 'Open Sans', sans-serif;
7
7
  }
8
8
 
9
9
  body {
@@ -38,7 +38,7 @@ div.field {
38
38
 
39
39
  div.field input, textarea {
40
40
  padding: 0px 10px !important;
41
- width: 350px;
41
+ width: 350px !important;
42
42
 
43
43
  border: 1px solid #c2c2c2 !important;
44
44
  border-radius: 5px;
@@ -126,4 +126,28 @@ div#mainbody #login_session_text img {
126
126
  display:block;
127
127
  margin: 40px auto;
128
128
  text-align: center;
129
+ }
130
+
131
+ div#system_notice {
132
+
133
+ background: #f7dc99; /* Old browsers */
134
+ background: -moz-linear-gradient(top, #f7dc99 0%, #fff6b2 100%); /* FF3.6+ */
135
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f7dc99), color-stop(100%,#fff6b2)); /* Chrome,Safari4+ */
136
+ background: -webkit-linear-gradient(top, #f7dc99 0%,#fff6b2 100%); /* Chrome10+,Safari5.1+ */
137
+ background: -o-linear-gradient(top, #f7dc99 0%,#fff6b2 100%); /* Opera 11.10+ */
138
+ background: -ms-linear-gradient(top, #f7dc99 0%,#fff6b2 100%); /* IE10+ */
139
+ background: linear-gradient(to bottom, #f7dc99 0%,#fff6b2 100%); /* W3C */
140
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f7dc99', endColorstr='#fff6b2',GradientType=0 ); /* IE6-9 */
141
+
142
+ position:fixed;
143
+ top: 0;
144
+ right: 0;
145
+ display: block;
146
+ padding: 15px;
147
+ margin: 10px;
148
+ box-shadow: 0 0 5px #fff6b2;
149
+ border: 1px solid #F4AF0E;
150
+ border-radius: 5px;
151
+ z-index: 20;
152
+ cursor:pointer;
129
153
  }
@@ -5,5 +5,6 @@
5
5
  *= require ./template/template
6
6
  *= require_tree ../jquery
7
7
  *= require ./template/backend
8
+ *= require ./template/menu
8
9
  *= require_tree ../app
9
10
  */
@@ -1,9 +1,8 @@
1
1
  body, input, button, textarea, select, select option {
2
- font-family: 'Lucida Sans Unicode', 'Lucida Grande', sans-serif;
2
+ font-family: 'Open Sans', sans-serif;
3
3
  }
4
4
 
5
5
  body {
6
- background: url("<%= asset_path 'mdwa/backend_bg.png' %>");
7
6
  height:100%;
8
7
  font-size: 13px;
9
8
  }
@@ -20,10 +19,6 @@ a {
20
19
  width: 100%;
21
20
  }
22
21
 
23
- div#logo {
24
- margin: 20px;
25
- }
26
-
27
22
  div#logo a {
28
23
  color: #fff;
29
24
  text-decoration:none;
@@ -51,24 +46,19 @@ div#logged_info .welcome, div#logged_info .logout {
51
46
  /* Content page header */
52
47
  /***********************/
53
48
  div.page_header {
54
- background: #EEEEEE; /* Old browsers */
55
- background: -moz-linear-gradient(top, #FFFFFF 0%, #EEEEEE 100%); /* FF3.6+ */
56
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFFFFF), color-stop(100%,#EEEEEE)); /* Chrome,Safari4+ */
57
- background: -webkit-linear-gradient(top, #FFFFFF 0%,#EEEEEE 100%); /* Chrome10+,Safari5.1+ */
58
- background: -o-linear-gradient(top, #FFFFFF 0%,#EEEEEE 100%); /* Opera 11.10+ */
59
- background: -ms-linear-gradient(top, #FFFFFF 0%,#EEEEEE 100%); /* IE10+ */
60
- background: linear-gradient(top, #FFFFFF 0%,#EEEEEE 100%); /* W3C */
61
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#FFFFFF', endColorstr='#EEEEEE',GradientType=0 ); /* IE6-9 */
62
-
63
-
64
49
  border-bottom: 1px solid #ccc;
65
- padding: 15px 30px;
50
+ padding: 15px 10px;
66
51
  margin: 0;
67
- box-shadow: 0 0 5px #aaa;
68
52
  }
69
53
 
70
- div.page_header h1 {
71
- font-size: 16px;
54
+ div.page_header_blank {
55
+ padding: 15px 30px;
56
+ margin: 0 0 10px 0;
57
+ }
58
+
59
+ div.page_header h1,
60
+ div.page_header_blank h1 {
61
+ font-size: 20px;
72
62
  color: #036;
73
63
  color: black;
74
64
  font-weight: normal;
@@ -146,81 +136,11 @@ div.tab_header a:hover {
146
136
  /* Content */
147
137
  div#content {
148
138
  background: #fff;
149
- left: auto;
150
- margin-left: 240px;
151
- margin-right: 0;
152
- min-height: 800px;
153
139
  padding-bottom: 25px;
154
- position: relative;
155
- top: auto;
156
- width: auto;
157
- z-index: 15;
158
- box-shadow: 1px 1px 12px rgba(0, 0, 0, 0.7);
140
+ width: 100%;
159
141
  }
160
142
 
161
143
  div.inside {
162
144
  margin:0;
163
145
  padding: 10px;
164
- }
165
-
166
- /* Leftbar */
167
- #leftbar {
168
- display: block;
169
- float: left;
170
- position: relative;
171
- width: 240px;
172
- z-index: 16;
173
- }
174
-
175
- #leftbar ul {
176
- padding: 0;
177
- margin: 0;
178
- }
179
-
180
- #leftbar ul li {
181
- width: 100%;
182
- border-bottom: 1px solid #4A4A4A;
183
- border-top: 1px solid #858585;
184
- list-style-type: none;
185
- margin: 0;
186
- padding: 0;
187
- position: relative;
188
- }
189
-
190
- #leftbar ul li a {
191
- -moz-box-sizing: border-box;
192
- color: #FFFFFF;
193
- display: inline-block;
194
- font-size: 13px;
195
- font-weight: normal;
196
- padding: 11px 0;
197
- text-decoration: none;
198
- text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.7);
199
- width: 100%;
200
- }
201
-
202
- #leftbar ul li a:hover {
203
- background-image: rgba(0, 0, 0, 0.075);
204
- }
205
-
206
- #leftbar ul.submenu {
207
- background: none repeat scroll 0 0 #555555;
208
- box-shadow: 0 0 3px #333333 inset;
209
- }
210
-
211
- #leftbar ul.submenu li {
212
- border:none;
213
- }
214
-
215
- #leftbar ul.submenu li a:hover {
216
- background-image: rgba(0, 0, 0, 0.075);
217
- }
218
-
219
- #leftbar ul li a span {
220
- padding-left: 15px;
221
- }
222
-
223
- #leftbar ul.submenu li a span {
224
- margin:0;
225
- padding-left: 25px;
226
146
  }
@@ -0,0 +1,86 @@
1
+ /* menu */
2
+ #menu {
3
+ display: block;
4
+ height: auto;
5
+ width: 100%;
6
+
7
+ background: #EEEEEE; /* Old browsers */
8
+ background: -moz-linear-gradient(top, #FFFFFF 0%, #EEEEEE 100%); /* FF3.6+ */
9
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFFFFF), color-stop(100%,#EEEEEE)); /* Chrome,Safari4+ */
10
+ background: -webkit-linear-gradient(top, #FFFFFF 0%,#EEEEEE 100%); /* Chrome10+,Safari5.1+ */
11
+ background: -o-linear-gradient(top, #FFFFFF 0%,#EEEEEE 100%); /* Opera 11.10+ */
12
+ background: -ms-linear-gradient(top, #FFFFFF 0%,#EEEEEE 100%); /* IE10+ */
13
+ background: linear-gradient(top, #FFFFFF 0%,#EEEEEE 100%); /* W3C */
14
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#FFFFFF', endColorstr='#EEEEEE',GradientType=0 ); /* IE6-9 */
15
+
16
+ border-bottom: 1px solid #ccc;
17
+ margin: 0;
18
+ box-shadow: 0 0 5px #aaa;
19
+ }
20
+
21
+ #menu ul {
22
+ padding: 0;
23
+ margin: 0;
24
+ width: 100%;
25
+ }
26
+
27
+ #menu ul li {
28
+ list-style-type: none;
29
+ margin: 0;
30
+ padding: 0;
31
+ display: inline-block;
32
+ }
33
+
34
+ #menu ul li a {
35
+ color: #444;
36
+ display: inline-block;
37
+ font-size: 14px;
38
+ font-weight: normal;
39
+ padding: 10px 15px;
40
+ text-decoration: none;
41
+ }
42
+
43
+ #menu ul li a:hover,
44
+ #menu ul li a:active,
45
+ #menu ul li a:focus {
46
+ background: rgba(0, 0, 0, 0.075);
47
+ }
48
+
49
+ #menu ul.submenu {
50
+ display: none;
51
+ box-shadow: 0 0 3px #333333 inset;
52
+ border-bottom: 1px solid #ddd;
53
+ }
54
+
55
+ #menu ul li:hover ul.submenu {
56
+ display: block;
57
+ position: absolute;
58
+ top: 100px;
59
+ box-shadow: 2px 2px 4px #b2b2b2;
60
+ max-width: 200px;
61
+ }
62
+
63
+ #menu ul.submenu li {
64
+ background: #ffffff; /* Old browsers */
65
+ background: -moz-linear-gradient(top, #ffffff 0%, #eeeeee 100%); /* FF3.6+ */
66
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#eeeeee)); /* Chrome,Safari4+ */
67
+ background: -webkit-linear-gradient(top, #ffffff 0%,#eeeeee 100%); /* Chrome10+,Safari5.1+ */
68
+ background: -o-linear-gradient(top, #ffffff 0%,#eeeeee 100%); /* Opera 11.10+ */
69
+ background: -ms-linear-gradient(top, #ffffff 0%,#eeeeee 100%); /* IE10+ */
70
+ background: linear-gradient(to bottom, #ffffff 0%,#eeeeee 100%); /* W3C */
71
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 ); /* IE6-9 */
72
+
73
+ border-bottom: 1px solid #ddd;
74
+ display: block;
75
+ overflow: hidden;
76
+ }
77
+
78
+ #menu ul.submenu li a {
79
+ display: block;
80
+ font-size: 12px;
81
+ padding: 7px;
82
+ }
83
+
84
+ #menu ul.submenu li a:hover {
85
+ background-color: rgba(0,0,0, 0.03);
86
+ }
@@ -137,6 +137,19 @@ a {
137
137
  transition: background-position 0.1s linear;
138
138
  }
139
139
 
140
+ a.export,
141
+ input[type="submit"].export,
142
+ input[type="button"].export,
143
+ button.export {
144
+ background: none;
145
+ border:none;
146
+ cursor: pointer;
147
+ color: #0000ff;
148
+ text-decoration:underline;
149
+ font-size: 12px;
150
+ margin-left: 5px;
151
+ }
152
+
140
153
  a.cancel {
141
154
  background: none;
142
155
  color: #ff0000;
@@ -171,8 +184,14 @@ a.remove span {
171
184
 
172
185
  /* nested_forms buttons */
173
186
  a.add_nested_fields {
174
- background: url( <%= asset_path 'mdwa/icons/add.png' %>) no-repeat scroll 0 50% padding-box transparent;
175
- padding: 0 0 0 20px;
187
+ background: url( <%= asset_path 'mdwa/icons/add.png' %>) no-repeat scroll 10px 50% padding-box #f2f2f2;
188
+ border: 1px solid #CCCCCC;
189
+ border-radius: 4px 4px 4px 4px;
190
+ display: inline-block;
191
+ letter-spacing: normal;
192
+ margin: 10px;
193
+ padding: 10px 10px 10px 35px;
194
+ word-spacing: normal;
176
195
  }
177
196
 
178
197
  a.remove_nested_fields {
@@ -292,20 +311,20 @@ table.list td, div.list div.line {
292
311
  }
293
312
 
294
313
  div.list div.head {
295
- float:left;
296
- width:100%;
297
- padding: 8px 0;
314
+ float:left;
315
+ width:100%;
316
+ padding: 8px 0;
298
317
  }
299
318
 
300
319
  div.list {
301
- padding: 10px 0;
302
- float:left;
320
+ padding: 10px 0;
321
+ float:left;
303
322
  }
304
323
 
305
324
  div.list div.line {
306
- padding: 10px 0;
307
- float:left;
308
- width:100%;
325
+ padding: 10px 0;
326
+ float:left;
327
+ width:100%;
309
328
  }
310
329
 
311
330
  .odd_line {
@@ -381,7 +400,8 @@ div.box {
381
400
  }
382
401
 
383
402
  p.descricao {
384
- margin: 20px;
403
+ margin: 10px;
404
+ font-size: 13px;
385
405
  }
386
406
 
387
407
  .bordered_top {
@@ -402,6 +422,25 @@ p.descricao {
402
422
  border-left: 1px solid #d2d2d2;
403
423
  }
404
424
 
425
+ .bordered_right {
426
+ margin-right: 10px;
427
+ padding-right: 10px;
428
+ border-right: 1px solid #d2d2d2;
429
+ }
430
+
431
+ .bordered_right h3,
432
+ .bordered_left h3,
433
+ .bordered_top h3,
434
+ .bordered_bottom h3 {
435
+ margin: 0;
436
+ padding: 0
437
+ }
438
+
439
+ .bordered_bottom h3 {
440
+ margin-top: 20px;
441
+ }
442
+
443
+
405
444
  .botao_direita_titulo {
406
445
  margin-top: 8px;
407
446
  text-align:right;
@@ -542,15 +581,19 @@ div.field textarea {
542
581
  }
543
582
 
544
583
  div.topo {
545
- padding: 15px 0;
584
+ background: none repeat scroll 0 0 #F5F5F5;
585
+ border: 1px solid #DDDDDD;
586
+ margin-bottom: 20px;
587
+ padding: 10px;
546
588
  }
547
589
 
548
- div.inside div.field input[type="text"],
549
- div.inside div.field input[type="email"],
550
- div.inside div.field input[type="number"],
551
- div.inside div.field input[type="password"],
552
- div.inside div.field select,
553
- div.inside div.field textarea {
590
+
591
+ div.field input[type="text"],
592
+ div.field input[type="email"],
593
+ div.field input[type="number"],
594
+ div.field input[type="password"],
595
+ div.field select,
596
+ div.field textarea {
554
597
  width: 100%;
555
598
  border: 1px solid #888;
556
599
  padding: 4px 0;
@@ -632,3 +675,13 @@ p.description {
632
675
  margin: 5px;
633
676
  font-size: 11px;
634
677
  }
678
+
679
+ div.label_height {
680
+ display: block;
681
+ height: 20px;
682
+ }
683
+
684
+ div.field.datas input[type="text"].datepicker {
685
+ display: inline-block;
686
+ width: 40%;
687
+ }
@@ -2,6 +2,7 @@
2
2
  class A::BackendController < ApplicationController
3
3
 
4
4
  before_filter :authenticate_a_user!
5
+ before_filter :guardar_per_page
5
6
 
6
7
  check_authorization
7
8
 
@@ -13,4 +14,17 @@ class A::BackendController < ApplicationController
13
14
  return current_a_user
14
15
  end
15
16
  helper_method :current_user
17
+
18
+
19
+ # Uma vez que se altere o per_page, ele vai pra sessão.
20
+ # Isso facilita buscas globais e não perde o per_page em listas com filtros.
21
+ def guardar_per_page
22
+ if params[:per_page].blank?
23
+ params[:per_page] = session[:per_page]
24
+ else
25
+ session[:per_page] = params[:per_page]
26
+ end
27
+ end
28
+
29
+
16
30
  end
@@ -1,9 +1,9 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  class Permission < ActiveRecord::Base
3
3
 
4
+ attr_accessible :name
5
+
4
6
  has_and_belongs_to_many :user
5
-
6
7
  validates :name, :uniqueness => true
7
- attr_accessible :name
8
8
 
9
9
  end