loldesign_publisher 1.3.6 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/loldesign_publisher/publisher.js +2 -0
  3. data/app/assets/javascripts/vex_plugin/vex.combined.min.js +2 -0
  4. data/app/assets/javascripts/vex_plugin/vex.dialog.js +150 -0
  5. data/app/assets/javascripts/vex_plugin/vex.dialog.min.js +2 -0
  6. data/app/assets/javascripts/vex_plugin/vex.js +189 -0
  7. data/app/assets/javascripts/vex_plugin/vex.min.js +2 -0
  8. data/app/assets/stylesheets/loldesign_publisher/base/_fields_wrapper.scss +198 -0
  9. data/app/assets/stylesheets/loldesign_publisher/base/_form.scss +160 -0
  10. data/app/assets/stylesheets/loldesign_publisher/base/_grid-settings.scss +18 -0
  11. data/app/assets/stylesheets/loldesign_publisher/base/_grid.scss +15 -0
  12. data/app/assets/stylesheets/loldesign_publisher/{modules → base}/_title_page.scss +6 -8
  13. data/app/assets/stylesheets/loldesign_publisher/base/_typography.scss +54 -0
  14. data/app/assets/stylesheets/loldesign_publisher/base/_variables.scss +47 -0
  15. data/app/assets/stylesheets/loldesign_publisher/base/base.scss +21 -0
  16. data/app/assets/stylesheets/loldesign_publisher/layouts/_default.scss +25 -5
  17. data/app/assets/stylesheets/loldesign_publisher/layouts/_form.scss +19 -2
  18. data/app/assets/stylesheets/loldesign_publisher/layouts/_nav_main.scss +9 -2
  19. data/app/assets/stylesheets/loldesign_publisher/plugins/vex/_vex.scss +243 -0
  20. data/app/assets/stylesheets/loldesign_publisher/plugins/vex/_vex_theme.scss +325 -0
  21. data/app/assets/stylesheets/loldesign_publisher/publisher.css.scss +2 -0
  22. data/app/views/layouts/loldesign_publisher/_header_main.html.erb +3 -3
  23. data/app/views/layouts/loldesign_publisher/modules/_messages.html.erb +14 -4
  24. data/app/views/layouts/loldesign_publisher/publisher.html.erb +4 -3
  25. data/lib/loldesign_publisher/version.rb +1 -1
  26. data/lib/loldesign_publisher.rb +6 -2
  27. data/spec/dummy/app/controllers/users_controller.rb +38 -1
  28. data/spec/dummy/app/models/user.rb +1 -0
  29. data/spec/dummy/app/views/users/_filters_by_from_to.html.erb +4 -4
  30. data/spec/dummy/app/views/users/_form.html.erb +25 -0
  31. data/spec/dummy/app/views/users/_user.html.erb +4 -4
  32. data/spec/dummy/app/views/users/edit.html.erb +2 -0
  33. data/spec/dummy/app/views/users/index.html.erb +7 -7
  34. data/spec/dummy/app/views/users/new.html.erb +2 -24
  35. data/spec/dummy/config/loldesign_publisher.yml +6 -6
  36. metadata +93 -3
@@ -0,0 +1,325 @@
1
+ @keyframes vex-flipin-horizontal {
2
+ 0% {
3
+ opacity: 0;
4
+ transform: rotateY(-90deg);
5
+ -webkit-transform: rotateY(-90deg);
6
+ -moz-transform: rotateY(-90deg);
7
+ -ms-transform: rotateY(-90deg);
8
+ -o-transform: rotateY(-90deg); }
9
+ 100% {
10
+ opacity: 1;
11
+ transform: rotateY(0deg);
12
+ -webkit-transform: rotateY(0deg);
13
+ -moz-transform: rotateY(0deg);
14
+ -ms-transform: rotateY(0deg);
15
+ -o-transform: rotateY(0deg); } }
16
+
17
+ @-webkit-keyframes vex-flipin-horizontal {
18
+ 0% {
19
+ opacity: 0;
20
+ transform: rotateY(-90deg);
21
+ -webkit-transform: rotateY(-90deg);
22
+ -moz-transform: rotateY(-90deg);
23
+ -ms-transform: rotateY(-90deg);
24
+ -o-transform: rotateY(-90deg); }
25
+ 100% {
26
+ opacity: 1;
27
+ transform: rotateY(0deg);
28
+ -webkit-transform: rotateY(0deg);
29
+ -moz-transform: rotateY(0deg);
30
+ -ms-transform: rotateY(0deg);
31
+ -o-transform: rotateY(0deg); } }
32
+
33
+ @-moz-keyframes vex-flipin-horizontal {
34
+ 0% {
35
+ opacity: 0;
36
+ transform: rotateY(-90deg);
37
+ -webkit-transform: rotateY(-90deg);
38
+ -moz-transform: rotateY(-90deg);
39
+ -ms-transform: rotateY(-90deg);
40
+ -o-transform: rotateY(-90deg); }
41
+ 100% {
42
+ opacity: 1;
43
+ transform: rotateY(0deg);
44
+ -webkit-transform: rotateY(0deg);
45
+ -moz-transform: rotateY(0deg);
46
+ -ms-transform: rotateY(0deg);
47
+ -o-transform: rotateY(0deg); } }
48
+
49
+ @-ms-keyframes vex-flipin-horizontal {
50
+ 0% {
51
+ opacity: 0;
52
+ transform: rotateY(-90deg);
53
+ -webkit-transform: rotateY(-90deg);
54
+ -moz-transform: rotateY(-90deg);
55
+ -ms-transform: rotateY(-90deg);
56
+ -o-transform: rotateY(-90deg); }
57
+ 100% {
58
+ opacity: 1;
59
+ transform: rotateY(0deg);
60
+ -webkit-transform: rotateY(0deg);
61
+ -moz-transform: rotateY(0deg);
62
+ -ms-transform: rotateY(0deg);
63
+ -o-transform: rotateY(0deg); } }
64
+
65
+ @-o-keyframes vex-flipin-horizontal {
66
+ 0% {
67
+ opacity: 0;
68
+ transform: rotateY(-90deg);
69
+ -webkit-transform: rotateY(-90deg);
70
+ -moz-transform: rotateY(-90deg);
71
+ -ms-transform: rotateY(-90deg);
72
+ -o-transform: rotateY(-90deg); }
73
+ 100% {
74
+ opacity: 1;
75
+ transform: rotateY(0deg);
76
+ -webkit-transform: rotateY(0deg);
77
+ -moz-transform: rotateY(0deg);
78
+ -ms-transform: rotateY(0deg);
79
+ -o-transform: rotateY(0deg); } }
80
+
81
+ @keyframes vex-flipout-horizontal {
82
+ 0% {
83
+ opacity: 1;
84
+ transform: rotateY(0deg);
85
+ -webkit-transform: rotateY(0deg);
86
+ -moz-transform: rotateY(0deg);
87
+ -ms-transform: rotateY(0deg);
88
+ -o-transform: rotateY(0deg); }
89
+ 100% {
90
+ opacity: 0;
91
+ transform: rotateY(90deg);
92
+ -webkit-transform: rotateY(90deg);
93
+ -moz-transform: rotateY(90deg);
94
+ -ms-transform: rotateY(90deg);
95
+ -o-transform: rotateY(90deg); } }
96
+
97
+ @-webkit-keyframes vex-flipout-horizontal {
98
+ 0% {
99
+ opacity: 1;
100
+ transform: rotateY(0deg);
101
+ -webkit-transform: rotateY(0deg);
102
+ -moz-transform: rotateY(0deg);
103
+ -ms-transform: rotateY(0deg);
104
+ -o-transform: rotateY(0deg); }
105
+ 100% {
106
+ opacity: 0;
107
+ transform: rotateY(90deg);
108
+ -webkit-transform: rotateY(90deg);
109
+ -moz-transform: rotateY(90deg);
110
+ -ms-transform: rotateY(90deg);
111
+ -o-transform: rotateY(90deg); } }
112
+
113
+ @-moz-keyframes vex-flipout-horizontal {
114
+ 0% {
115
+ opacity: 1;
116
+ transform: rotateY(0deg);
117
+ -webkit-transform: rotateY(0deg);
118
+ -moz-transform: rotateY(0deg);
119
+ -ms-transform: rotateY(0deg);
120
+ -o-transform: rotateY(0deg); }
121
+ 100% {
122
+ opacity: 0;
123
+ transform: rotateY(90deg);
124
+ -webkit-transform: rotateY(90deg);
125
+ -moz-transform: rotateY(90deg);
126
+ -ms-transform: rotateY(90deg);
127
+ -o-transform: rotateY(90deg); } }
128
+
129
+ @-ms-keyframes vex-flipout-horizontal {
130
+ 0% {
131
+ opacity: 1;
132
+ transform: rotateY(0deg);
133
+ -webkit-transform: rotateY(0deg);
134
+ -moz-transform: rotateY(0deg);
135
+ -ms-transform: rotateY(0deg);
136
+ -o-transform: rotateY(0deg); }
137
+ 100% {
138
+ opacity: 0;
139
+ transform: rotateY(90deg);
140
+ -webkit-transform: rotateY(90deg);
141
+ -moz-transform: rotateY(90deg);
142
+ -ms-transform: rotateY(90deg);
143
+ -o-transform: rotateY(90deg); } }
144
+
145
+ @-o-keyframes vex-flipout-horizontal {
146
+ 0% {
147
+ opacity: 1;
148
+ transform: rotateY(0deg);
149
+ -webkit-transform: rotateY(0deg);
150
+ -moz-transform: rotateY(0deg);
151
+ -ms-transform: rotateY(0deg);
152
+ -o-transform: rotateY(0deg); }
153
+ 100% {
154
+ opacity: 0;
155
+ transform: rotateY(90deg);
156
+ -webkit-transform: rotateY(90deg);
157
+ -moz-transform: rotateY(90deg);
158
+ -ms-transform: rotateY(90deg);
159
+ -o-transform: rotateY(90deg); } }
160
+
161
+ .vex.vex-theme-flat-attack {
162
+ -moz-perspective: 1300px;
163
+ -webkit-perspective: 1300px;
164
+ perspective: 1300px;
165
+ -moz-perspective-origin: 50% 150px;
166
+ -webkit-perspective-origin: 50% 150px;
167
+ perspective-origin: 50% 150px;
168
+ padding-top: 100px;
169
+ padding-bottom: 100px;
170
+ font-size: 1.5em; }
171
+ .vex.vex-theme-flat-attack.vex-closing .vex-content {
172
+ animation: vex-flipout-horizontal 0.5s;
173
+ -webkit-animation: vex-flipout-horizontal 0.5s;
174
+ -moz-animation: vex-flipout-horizontal 0.5s;
175
+ -ms-animation: vex-flipout-horizontal 0.5s;
176
+ -o-animation: vex-flipout-horizontal 0.5s;
177
+ -webkit-backface-visibility: hidden; }
178
+ .vex.vex-theme-flat-attack .vex-content {
179
+ -webkit-transform-style: preserve-3d;
180
+ -moz-transform-style: preserve-3d;
181
+ transform-style: preserve-3d;
182
+ animation: vex-flipin-horizontal 0.5s;
183
+ -webkit-animation: vex-flipin-horizontal 0.5s;
184
+ -moz-animation: vex-flipin-horizontal 0.5s;
185
+ -ms-animation: vex-flipin-horizontal 0.5s;
186
+ -o-animation: vex-flipin-horizontal 0.5s;
187
+ -webkit-backface-visibility: hidden; }
188
+ .vex.vex-theme-flat-attack .vex-content {
189
+ font-family: "Helvetica Neue", sans-serif;
190
+ font-weight: 200;
191
+ background: #fff;
192
+ color: #444;
193
+ padding: 2em 2em 3em 2em;
194
+ line-height: 1.5em;
195
+ position: relative;
196
+ margin: 0 auto;
197
+ max-width: 100%;
198
+ width: 600px; }
199
+ .vex.vex-theme-flat-attack .vex-content h1, .vex.vex-theme-flat-attack .vex-content h2, .vex.vex-theme-flat-attack .vex-content h3, .vex.vex-theme-flat-attack .vex-content h4, .vex.vex-theme-flat-attack .vex-content h5, .vex.vex-theme-flat-attack .vex-content h6, .vex.vex-theme-flat-attack .vex-content p, .vex.vex-theme-flat-attack .vex-content ul, .vex.vex-theme-flat-attack .vex-content li {
200
+ color: inherit; }
201
+ .vex.vex-theme-flat-attack .vex-close {
202
+ position: absolute;
203
+ top: 0;
204
+ right: 0;
205
+ cursor: pointer; }
206
+ .vex.vex-theme-flat-attack .vex-close:before {
207
+ font-family: "Helvetica Neue", sans-serif;
208
+ font-weight: 100;
209
+ line-height: 1px;
210
+ padding-top: .5em;
211
+ display: block;
212
+ font-size: 2em;
213
+ text-indent: 1px;
214
+ overflow: hidden;
215
+ height: 1.25em;
216
+ width: 1.25em;
217
+ text-align: center;
218
+ top: 0;
219
+ right: 0;
220
+ color: #fff;
221
+ background: #666; }
222
+ .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-message {
223
+ margin-bottom: .5em; }
224
+ .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input {
225
+ margin-bottom: .5em; }
226
+ .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input textarea, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="date"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="datetime"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="datetime-local"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="email"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="month"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="number"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="password"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="search"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="tel"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="text"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="time"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="url"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="week"] {
227
+ -moz-border-radius: 3px;
228
+ -webkit-border-radius: 3px;
229
+ border-radius: 3px;
230
+ background: #f0f0f0;
231
+ width: 100%;
232
+ padding: .25em .67em;
233
+ border: 0;
234
+ font-family: inherit;
235
+ font-weight: inherit;
236
+ font-size: inherit;
237
+ min-height: 2.5em;
238
+ margin: 0 0 .25em; }
239
+ .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input textarea:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="date"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="month"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="number"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="search"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="tel"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="time"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="url"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="week"]:focus {
240
+ -moz-box-shadow: inset 0 0 0 2px #666;
241
+ -webkit-box-shadow: inset 0 0 0 2px #666;
242
+ box-shadow: inset 0 0 0 2px #666;
243
+ outline: none; }
244
+ .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-buttons {
245
+ *zoom: 1;
246
+ padding-top: 1em;
247
+ margin-bottom: -3em;
248
+ margin-left: -2em;
249
+ margin-right: -2em; }
250
+ .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-buttons:after {
251
+ content: "";
252
+ display: table;
253
+ clear: both; }
254
+ .vex.vex-theme-flat-attack .vex-dialog-button {
255
+ -moz-border-radius: 0;
256
+ -webkit-border-radius: 0;
257
+ border-radius: 0;
258
+ border: 0;
259
+ margin: 0;
260
+ float: right;
261
+ padding: .5em 1em;
262
+ font-size: 1.13em;
263
+ text-transform: uppercase;
264
+ font-weight: 200;
265
+ letter-spacing: .1em;
266
+ line-height: 1em;
267
+ font-family: inherit; }
268
+ .vex.vex-theme-flat-attack .vex-dialog-button.vex-last {
269
+ margin-left: 0; }
270
+ .vex.vex-theme-flat-attack .vex-dialog-button:focus {
271
+ outline: none; }
272
+ .vex.vex-theme-flat-attack .vex-dialog-button.vex-dialog-button-primary {
273
+ background: #666;
274
+ color: #fff; }
275
+ .vex.vex-theme-flat-attack .vex-dialog-button.vex-dialog-button-primary:focus {
276
+ -moz-box-shadow: inset 0 3px rgba(0, 0, 0, 0.2);
277
+ -webkit-box-shadow: inset 0 3px rgba(0, 0, 0, 0.2);
278
+ box-shadow: inset 0 3px rgba(0, 0, 0, 0.2); }
279
+ .vex.vex-theme-flat-attack .vex-dialog-button.vex-dialog-button-secondary {
280
+ background: #fff;
281
+ color: #ccc; }
282
+ .vex.vex-theme-flat-attack .vex-dialog-button.vex-dialog-button-secondary:focus {
283
+ -moz-box-shadow: inset 0 3px #aaa;
284
+ -webkit-box-shadow: inset 0 3px #aaa;
285
+ box-shadow: inset 0 3px #aaa;
286
+ background: #eee;
287
+ color: #777; }
288
+ .vex.vex-theme-flat-attack .vex-dialog-button.vex-dialog-button-secondary:hover, .vex.vex-theme-flat-attack .vex-dialog-button.vex-dialog-button-secondary:active {
289
+ color: #777; }
290
+ .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-close:before {
291
+ background: #ff7ea7; }
292
+ .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input textarea:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="date"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="month"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="number"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="search"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="tel"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="time"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="url"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="week"]:focus {
293
+ -moz-box-shadow: inset 0 0 0 2px #ff7ea7;
294
+ -webkit-box-shadow: inset 0 0 0 2px #ff7ea7;
295
+ box-shadow: inset 0 0 0 2px #ff7ea7; }
296
+ .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-buttons .vex-dialog-button.vex-dialog-button-primary {
297
+ background: #ff7ea7; }
298
+ .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-close:before {
299
+ background: #ce4a55; }
300
+ .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input textarea:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="date"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="month"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="number"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="search"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="tel"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="time"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="url"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="week"]:focus {
301
+ -moz-box-shadow: inset 0 0 0 2px #ce4a55;
302
+ -webkit-box-shadow: inset 0 0 0 2px #ce4a55;
303
+ box-shadow: inset 0 0 0 2px #ce4a55; }
304
+ .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-buttons .vex-dialog-button.vex-dialog-button-primary {
305
+ background: #ce4a55; }
306
+ .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-close:before {
307
+ background: #34b989; }
308
+ .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input textarea:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="date"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="month"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="number"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="search"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="tel"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="time"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="url"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="week"]:focus {
309
+ -moz-box-shadow: inset 0 0 0 2px #34b989;
310
+ -webkit-box-shadow: inset 0 0 0 2px #34b989;
311
+ box-shadow: inset 0 0 0 2px #34b989; }
312
+ .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-buttons .vex-dialog-button.vex-dialog-button-primary {
313
+ background: #34b989; }
314
+ .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-close:before {
315
+ background: #477FA5; }
316
+ .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input textarea:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="date"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="month"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="number"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="search"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="tel"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="time"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="url"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="week"]:focus {
317
+ -moz-box-shadow: inset 0 0 0 2px #477FA5;
318
+ -webkit-box-shadow: inset 0 0 0 2px #477FA5;
319
+ box-shadow: inset 0 0 0 2px #477FA5; }
320
+ .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-buttons .vex-dialog-button.vex-dialog-button-primary {
321
+ background: #477FA5; }
322
+
323
+ .vex-loading-spinner.vex-theme-flat-attack {
324
+ height: 4em;
325
+ width: 4em; }
@@ -1,7 +1,9 @@
1
1
  /*
2
+ *= require ./base/base
2
3
  *= require ./gumby
3
4
  *= require jquery-ui/datepicker
4
5
  *= require_tree ./layouts
5
6
  *= require_tree ./modules
6
7
  *= require loldesign_publisher/override_publisher
8
+ *= require_tree ./plugins/vex
7
9
  */
@@ -1,8 +1,8 @@
1
1
  <header class="main">
2
2
  <section class='container-main'>
3
- <%= link_to LoldesignPublisher.config[:logout], method: :delete, class: 'logout' do%>
3
+ <%= link_to LoldesignPublisher.config[:logout], method: :delete, class: 'logout' do%>
4
4
  <span>Sair</span>
5
- <i class="icon-logout"></i>
5
+ <i class="icon-logout"></i>
6
6
  <% end -%>
7
7
  </section>
8
- </header>
8
+ </header>
@@ -1,5 +1,15 @@
1
- <% flash.each do |name, msg| %>
2
- <% if msg.is_a?(String) %>
3
- <%= content_tag :div, msg, class: "messages #{name}" %>
1
+ <% flash.each do |key, value| %>
2
+ <% if value.is_a?(String) %>
3
+ <%= javascript_include_tag 'loldesign_publisher/publisher' %>
4
+ <%= javascript_tag defer: 'defer' do %>
5
+ jQuery(function(){
6
+ vex.defaultOptions.className = "vex-theme-flat-attack <%= key %>";
7
+
8
+ vex.dialog.alert({
9
+ message: '<%= value %>',
10
+ className: "vex-theme-flat-attack <%= key %>"
11
+ });
12
+ });
13
+ <% end %>
4
14
  <% end %>
5
- <% end %>
15
+ <% end %>
@@ -9,15 +9,16 @@
9
9
  <body>
10
10
  <%= render partial: '/layouts/loldesign_publisher/header_main' %>
11
11
 
12
- <section class='container-main'>
12
+ <section class='container'>
13
13
  <%= render partial: '/layouts/loldesign_publisher/nav_main' %>
14
- <section class='content'>
14
+ <section class='content-wrapper'>
15
+
15
16
  <%= render partial: '/layouts/loldesign_publisher/modules/messages' %>
16
17
 
17
18
  <%= yield %>
18
19
  </section>
19
20
  </section>
20
- <%= javascript_include_tag 'loldesign_publisher/publisher', 'data-turbolinks-track' => true %>
21
+ <%= javascript_include_tag 'loldesign_publisher/publisher' %>
21
22
  <%= javascript_include_tag '/grid.js' if Rails.env.development? %>
22
23
  </body>
23
24
  </html>
@@ -1,3 +1,3 @@
1
1
  module LoldesignPublisher
2
- VERSION = "1.3.6"
2
+ VERSION = "1.4.0"
3
3
  end
@@ -4,6 +4,11 @@ require 'jquery-ui-rails'
4
4
  require 'sass-rails'
5
5
  require 'modernizr-rails'
6
6
  require 'simple_form'
7
+ require 'bourbon'
8
+ require 'neat'
9
+ require 'bitters'
10
+ require 'refills'
11
+ require 'normalize-rails'
7
12
  require 'loldesign_publisher/engine'
8
13
 
9
14
  module LoldesignPublisher
@@ -23,7 +28,6 @@ module LoldesignPublisher
23
28
  }
24
29
 
25
30
  rescue Exception
26
- puts '[WARNING] run: bundle exec rails g initializer'
31
+ puts '[WARNING] run: bundle exec rails g initializer'
27
32
  end
28
33
  end
29
-
@@ -1,10 +1,47 @@
1
1
  class UsersController < LoldesignPublisher::PublisherController
2
2
 
3
3
  def index
4
- @users = User.all
4
+ @users = User.all
5
5
  end
6
6
 
7
7
  def new
8
8
  @user = User.new
9
9
  end
10
+
11
+ def create
12
+ @user = User.new(users_params)
13
+ if @user.save
14
+ redirect_to users_path, notice: "Usuário criado com sucesso!"
15
+ else
16
+ render :new, alert: "Não foi possível criar o Usuário!"
17
+ end
18
+ end
19
+
20
+ def edit
21
+ @user = User.find(params[:id])
22
+ end
23
+
24
+ def update
25
+ @user = User.find(params[:id])
26
+ if @user.update_attributes(users_params)
27
+ redirect_to edit_user_path(@user), notice: "Usuário atualizado com sucesso!"
28
+ else
29
+ render :edit, alert: "Não foi possível editar o Usuário!"
30
+ end
31
+ end
32
+
33
+ def destroy
34
+ @user = User.find(params[:id])
35
+ if @user.destroy
36
+ redirect_to users_path, notice: "Usuário removido com sucesso!"
37
+ else
38
+ redirect_to users_path, alert: "Não foi possível remover o Usuário"
39
+ end
40
+ end
41
+
42
+ private
43
+
44
+ def users_params
45
+ params.require(:user).permit(:name, :email, :password, :description, :active)
46
+ end
10
47
  end
@@ -1,2 +1,3 @@
1
1
  class User < ActiveRecord::Base
2
+ validates :name, presence: true
2
3
  end
@@ -2,7 +2,7 @@
2
2
  <%= form_tag('javascript://', method: :get) do%>
3
3
  <%= text_field_tag 'query[from]', params[:query].present? ? params[:query][:from] : '', placeholder: 'De:' , data: {'date-format' => "DD/MM/YYYY"}, class: 'datepicker'%>
4
4
  <%= text_field_tag 'query[to]' , params[:query].present? ? params[:query][:to] : '' , placeholder: 'Até:', data: {'date-format' => "DD/MM/YYYY"}, class: 'datepicker'%>
5
-
6
- <%= submit_tag 'Filtrar', 'data-disable-with' => '...' %>
7
- <% end -%>
8
- </section>
5
+
6
+ <%= submit_tag 'Filter', 'data-disable-with' => '...' %>
7
+ <% end -%>
8
+ </section>
@@ -0,0 +1,25 @@
1
+ <%= simple_form_for @user, html: {class: 'form-uppercase admin-user-form'} do |f| %>
2
+ <section class='fields-wrapper two-columns'>
3
+ <header>
4
+ <h2>User Info</h2>
5
+ </header>
6
+ <article>
7
+ <%= f.input :name, wrapper_html: {class: 'col-9'} %>
8
+ <%= f.input :name, label: "CPF", input_html: {class: 'cpf'} %>
9
+ <%= f.input :email , wrapper_html: {class: 'col-9'} %>
10
+ <%= f.input :password, wrapper_html: {class: 'col-9'} %>
11
+ <%= f.input :name, label: "Date", input_html: {class: 'date'}%>
12
+ </article>
13
+ <article>
14
+ <%= f.input :description%>
15
+ <%= f.label :active, label: 'Status'%>
16
+ <%= f.input :active %>
17
+ <%= f.input :password, wrapper_html: {class: 'col-9'} %>
18
+ </article>
19
+ </section>
20
+
21
+ <footer>
22
+ <%= submit_button f %>
23
+ <%= cancel_action(path: users_path) %>
24
+ </footer>
25
+ <% end -%>
@@ -2,8 +2,8 @@
2
2
  <td><%= user.name %></td>
3
3
  <td><%= activable_field_for(user) %></td>
4
4
  <td>
5
- <%= edit_resource root_path %>
6
- <%= remove_resource(root_path, {})%>
7
- <%= show_resource_with_icon root_path %>
5
+ <%= edit_resource edit_user_path(user) %>
6
+ <%= remove_resource(user_path(user), {})%>
7
+ <%= show_resource_with_icon user_path(user) %>
8
8
  </td>
9
- </tr>
9
+ </tr>
@@ -0,0 +1,2 @@
1
+ <%= title_page 'Resource - Editar', save: 'javscript://' %>
2
+ <%= render partial: "form"%>
@@ -1,6 +1,6 @@
1
- <%= title_page 'Título da Página', subtitle: 'Subtítulo' %>
1
+ <%= title_page 'Title Page', subtitle: 'Subtitle' %>
2
2
 
3
- <%= add_resource 'Add Novo', new_user_path %>
3
+ <%= add_resource 'Add New User', new_user_path %>
4
4
 
5
5
  <%= render partial: 'filters_by_from_to' %>
6
6
 
@@ -8,7 +8,7 @@
8
8
  <thead>
9
9
  <tr>
10
10
  <th>Name</th>
11
- <th>Ativo</th>
11
+ <th>Active</th>
12
12
  <th>&nbsp;</th>
13
13
  </tr>
14
14
  </thead>
@@ -19,8 +19,8 @@
19
19
 
20
20
  <!-- pagination example with will_paginate-->
21
21
  <div class="pagination">
22
- <span class="previous_page disabled">← Anterior</span>
23
- <em class="current">1</em>
24
- <a rel="next" href="javascript://">2</a>
22
+ <span class="previous_page disabled">← Anterior</span>
23
+ <em class="current">1</em>
24
+ <a rel="next" href="javascript://">2</a>
25
25
  <a class="next_page" rel="next" href="javascript://">Próximo →</a>
26
- </div>
26
+ </div>
@@ -1,24 +1,2 @@
1
- <%= title_page 'Novo Resource', save: root_path, show: root_path %>
2
-
3
- <%= simple_form_for @user do |f| %>
4
- <section class='three-columns'>
5
- <article class='column'>
6
- <%= f.input :name, label: false, placeholder: 'Nome' %>
7
- <%= f.input :email, label: false, placeholder: 'E-mail' %>
8
- <%= f.input :password, label: false, placeholder: 'Senha', input_html: {class: 'small'} %>
9
- <%= f.input :active, label: 'Ativo' %>
10
- </article>
11
- <article class='column'>
12
- <%= f.input :description, label: false, placeholder: 'Descrição' %>
13
- </article>
14
- <article class='column'>
15
- <%= f.input :name, label: false, placeholder: 'Data', input_html: {class: 'date'}%>
16
- <%= f.input :name, label: false, placeholder: 'CPF', input_html: {class: 'cpf'} %>
17
- </article>
18
- </section>
19
-
20
- <footer>
21
- <%= submit_button f %>
22
- <%= cancel_action :back %>
23
- </footer>
24
- <% end -%>
1
+ <%= title_page 'Resource - Novo', save: 'javscript://' %>
2
+ <%= render partial: "form"%>
@@ -3,12 +3,12 @@ paths:
3
3
  logout: 'javascript://'
4
4
 
5
5
  menu_links:
6
- users:
7
- name: 'Usuários'
6
+ users:
7
+ name: 'Users'
8
8
  path: users_path
9
9
  recipes:
10
- name: 'Receitas'
11
- schedules:
12
- name: 'Agenda / Cursos'
10
+ name: 'Recipes'
11
+ schedules:
12
+ name: 'Courses'
13
13
 
14
- page_title: 'Loldesign Publisher | Dummy App'
14
+ page_title: 'Loldesign Publisher | Dummy App'