tramway 0.1.1.1 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (179) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +1 -1
  3. data/README.md +12 -893
  4. data/Rakefile +8 -8
  5. data/app/components/tailwind_component.html.haml +0 -0
  6. data/app/components/tailwind_component.rb +6 -0
  7. data/app/components/tailwinds/navbar/button_component.html.haml +1 -0
  8. data/app/components/tailwinds/navbar/button_component.rb +14 -0
  9. data/config/routes.rb +0 -9
  10. data/lib/tasks/tramway_tasks.rake +5 -0
  11. data/lib/tramway/engine.rb +5 -10
  12. data/lib/tramway/version.rb +1 -1
  13. data/lib/tramway.rb +5 -140
  14. metadata +17 -554
  15. data/app/assets/config/tramway_core_manifest.js +0 -2
  16. data/app/assets/images/tramway/mona_lisa_from_prado.jpg +0 -0
  17. data/app/assets/images/tramway/mona_lisa_from_prado_square.jpg +0 -0
  18. data/app/assets/javascripts/bootstrap-datepicker-1.8.0.js +0 -2035
  19. data/app/assets/javascripts/bootstrap-datepicker-1.8.0.ru.min.js +0 -64
  20. data/app/assets/javascripts/ckeditor/config.js +0 -30
  21. data/app/assets/javascripts/ckeditor/plugins/image/dialogs/image.js +0 -1259
  22. data/app/assets/javascripts/ckeditor/plugins/image/icons/hidpi/image.png +0 -0
  23. data/app/assets/javascripts/ckeditor/plugins/image/icons/image.png +0 -0
  24. data/app/assets/javascripts/ckeditor/plugins/image/images/noimage.png +0 -0
  25. data/app/assets/javascripts/ckeditor/plugins/image/lang/en.js +0 -25
  26. data/app/assets/javascripts/ckeditor/plugins/image/lang/ru.js +0 -25
  27. data/app/assets/javascripts/ckeditor/plugins/image/plugin.js +0 -184
  28. data/app/assets/javascripts/ckeditor/plugins/youtube/images/icon-hdpi.png +0 -0
  29. data/app/assets/javascripts/ckeditor/plugins/youtube/images/icon.png +0 -0
  30. data/app/assets/javascripts/ckeditor/plugins/youtube/lang/en.js +0 -25
  31. data/app/assets/javascripts/ckeditor/plugins/youtube/lang/ru.js +0 -25
  32. data/app/assets/javascripts/ckeditor/plugins/youtube/plugin.js +0 -449
  33. data/app/assets/javascripts/tramway/application.js +0 -60
  34. data/app/assets/stylesheets/tramway/application.sass +0 -60
  35. data/app/assets/stylesheets/tramway/bootstrap-datepicker-1.8.0.css +0 -477
  36. data/app/controllers/concerns/auth_management.rb +0 -26
  37. data/app/controllers/concerns/filtering.rb +0 -43
  38. data/app/controllers/tramway/application_controller.rb +0 -142
  39. data/app/controllers/tramway/export/application_controller.rb +0 -5
  40. data/app/controllers/tramway/has_and_belongs_to_many_records_controller.rb +0 -26
  41. data/app/controllers/tramway/records_controller.rb +0 -86
  42. data/app/controllers/tramway/sessions_controller.rb +0 -49
  43. data/app/controllers/tramway/singletons_controller.rb +0 -48
  44. data/app/controllers/tramway/welcome_controller.rb +0 -17
  45. data/app/decorators/tramway/application_decorated_collection.rb +0 -15
  46. data/app/decorators/tramway/application_decorator.rb +0 -124
  47. data/app/decorators/tramway/associations/class_helper.rb +0 -45
  48. data/app/decorators/tramway/associations/object_helper.rb +0 -58
  49. data/app/decorators/tramway/attributes/view_helper.rb +0 -30
  50. data/app/decorators/tramway/concerns/attributes_decorator_helper.rb +0 -97
  51. data/app/decorators/tramway/concerns/table_builder.rb +0 -33
  52. data/app/decorators/tramway/default/values_helper.rb +0 -23
  53. data/app/decorators/tramway/delegating/class_helper.rb +0 -9
  54. data/app/decorators/tramway/user_decorator.rb +0 -49
  55. data/app/forms/admin/tramway/user_form.rb +0 -24
  56. data/app/forms/tramway/application_form.rb +0 -124
  57. data/app/forms/tramway/application_forms/association_class_helpers.rb +0 -7
  58. data/app/forms/tramway/application_forms/association_object_helpers.rb +0 -36
  59. data/app/forms/tramway/application_forms/constant_class_actions.rb +0 -7
  60. data/app/forms/tramway/application_forms/constant_object_actions.rb +0 -20
  61. data/app/forms/tramway/application_forms/frontend.rb +0 -12
  62. data/app/forms/tramway/application_forms/object_helpers.rb +0 -15
  63. data/app/forms/tramway/application_forms/properties_object_helper.rb +0 -16
  64. data/app/forms/tramway/application_forms/submit_helper.rb +0 -26
  65. data/app/forms/tramway/extendable_form.rb +0 -15
  66. data/app/forms/tramway/extendable_forms_helpers/class_builder.rb +0 -34
  67. data/app/forms/tramway/extendable_forms_helpers/ignored_properties_helper.rb +0 -11
  68. data/app/forms/tramway/extendable_forms_helpers/more_properties_helper.rb +0 -31
  69. data/app/forms/tramway/extendable_forms_helpers/properties_helper.rb +0 -16
  70. data/app/forms/tramway/extendable_forms_helpers/submit/class_helpers.rb +0 -18
  71. data/app/forms/tramway/extendable_forms_helpers/submit/object_helpers.rb +0 -21
  72. data/app/forms/tramway/extendable_forms_helpers/validators.rb +0 -40
  73. data/app/forms/tramway/extended_application_form.rb +0 -23
  74. data/app/forms/tramway/form_creator.rb +0 -7
  75. data/app/forms/tramway/session_form.rb +0 -26
  76. data/app/helpers/tramway/actions_helper.rb +0 -45
  77. data/app/helpers/tramway/additional_buttons_builder.rb +0 -12
  78. data/app/helpers/tramway/application_helper.rb +0 -27
  79. data/app/helpers/tramway/cases_helper.rb +0 -13
  80. data/app/helpers/tramway/copy_to_clipboard_helper.rb +0 -11
  81. data/app/helpers/tramway/focus_generator_helper.rb +0 -10
  82. data/app/helpers/tramway/frontend_helper.rb +0 -26
  83. data/app/helpers/tramway/inputs/associations_helper.rb +0 -30
  84. data/app/helpers/tramway/inputs/polymorphic_associations_helper.rb +0 -24
  85. data/app/helpers/tramway/inputs_helper.rb +0 -96
  86. data/app/helpers/tramway/model_helper.rb +0 -7
  87. data/app/helpers/tramway/navbar_helper.rb +0 -11
  88. data/app/helpers/tramway/records_helper.rb +0 -120
  89. data/app/helpers/tramway/russian_cases_helper.rb +0 -26
  90. data/app/helpers/tramway/singleton_helper.rb +0 -12
  91. data/app/helpers/tramway/state_machine_buttons_helper.rb +0 -61
  92. data/app/helpers/tramway/title_helper.rb +0 -25
  93. data/app/inputs/date_picker_input.rb +0 -4
  94. data/app/inputs/multiple_file_input.rb +0 -7
  95. data/app/models/tramway/application_record.rb +0 -60
  96. data/app/models/tramway/user.rb +0 -23
  97. data/app/uploaders/application_uploader.rb +0 -22
  98. data/app/uploaders/file_uploader.rb +0 -4
  99. data/app/uploaders/ico_uploader.rb +0 -7
  100. data/app/uploaders/image_defaults.rb +0 -14
  101. data/app/uploaders/photo_uploader.rb +0 -54
  102. data/app/views/layouts/tramway/application.html.haml +0 -32
  103. data/app/views/layouts/tramway/shared/_navbar.html.haml +0 -46
  104. data/app/views/tramway/404.haml +0 -1
  105. data/app/views/tramway/records/_form.html.haml +0 -22
  106. data/app/views/tramway/records/_list.html.haml +0 -38
  107. data/app/views/tramway/records/_search.html.haml +0 -34
  108. data/app/views/tramway/records/edit.html.haml +0 -1
  109. data/app/views/tramway/records/index.html.haml +0 -31
  110. data/app/views/tramway/records/new.html.haml +0 -1
  111. data/app/views/tramway/records/show.html.haml +0 -1
  112. data/app/views/tramway/sessions/new.html.haml +0 -9
  113. data/app/views/tramway/shared/_input.html.haml +0 -34
  114. data/app/views/tramway/shared/_input_extended.html.haml +0 -14
  115. data/app/views/tramway/shared/_messages.html.haml +0 -10
  116. data/app/views/tramway/shared/_show.html.haml +0 -35
  117. data/app/views/tramway/shared/errors/server_error.html.haml +0 -12
  118. data/app/views/tramway/shared/input_extended_types/_checkbox.html.haml +0 -1
  119. data/app/views/tramway/shared/input_extended_types/_select.html.haml +0 -16
  120. data/app/views/tramway/shared/input_extended_types/_simple.html.haml +0 -4
  121. data/app/views/tramway/shared/input_extended_types/_yes_no.html.haml +0 -4
  122. data/app/views/tramway/shared/show/_attribute_tr.html.haml +0 -9
  123. data/app/views/tramway/shared/show/associations/_habtm_row.html.haml +0 -14
  124. data/app/views/tramway/shared/show/associations/_list.html.haml +0 -21
  125. data/app/views/tramway/shared/show/associations/_row.html.haml +0 -19
  126. data/app/views/tramway/shared/show/associations/_table_row.html.haml +0 -21
  127. data/app/views/tramway/singletons/_form.html.haml +0 -15
  128. data/app/views/tramway/singletons/edit.html.haml +0 -1
  129. data/app/views/tramway/singletons/new.html.haml +0 -1
  130. data/app/views/tramway/singletons/show.html.haml +0 -1
  131. data/app/views/tramway/welcome/index.html.haml +0 -4
  132. data/config/initializers/assets.rb +0 -7
  133. data/config/initializers/carrierwave.rb +0 -5
  134. data/config/initializers/ckeditor.rb +0 -9
  135. data/config/initializers/plurals.rb +0 -25
  136. data/config/locales/en/collections.yml +0 -4
  137. data/config/locales/en/date.yml +0 -16
  138. data/config/locales/en/dates.yml +0 -10
  139. data/config/locales/en/helpers.yml +0 -26
  140. data/config/locales/en/locale.yml +0 -11
  141. data/config/locales/en/messages.yml +0 -7
  142. data/config/locales/en/models.yml +0 -9
  143. data/config/locales/en/simple_form_extension.yml +0 -8
  144. data/config/locales/en/state_machines.yml +0 -8
  145. data/config/locales/ru/collections.yml +0 -4
  146. data/config/locales/ru/date.yml +0 -16
  147. data/config/locales/ru/dates.yml +0 -10
  148. data/config/locales/ru/helpers.yml +0 -30
  149. data/config/locales/ru/locale.yml +0 -6
  150. data/config/locales/ru/messages.yml +0 -7
  151. data/config/locales/ru/models.yml +0 -21
  152. data/config/locales/ru/simple_form_extension.yml +0 -8
  153. data/config/locales/ru/state_machines.yml +0 -8
  154. data/lib/string.rb +0 -18
  155. data/lib/tramway/application.rb +0 -10
  156. data/lib/tramway/class_name_helpers.rb +0 -15
  157. data/lib/tramway/collection.rb +0 -9
  158. data/lib/tramway/collections/helper.rb +0 -21
  159. data/lib/tramway/collections.rb +0 -4
  160. data/lib/tramway/error.rb +0 -32
  161. data/lib/tramway/forms.rb +0 -5
  162. data/lib/tramway/generators/install_generator.rb +0 -49
  163. data/lib/tramway/generators/model_generator.rb +0 -105
  164. data/lib/tramway/generators/templates/create_tramway_users.rb +0 -18
  165. data/lib/tramway/generators/templates/decorator.rb.erb +0 -56
  166. data/lib/tramway/generators/templates/form.rb.erb +0 -22
  167. data/lib/tramway/generators/templates/initializers/simple_form.rb +0 -23
  168. data/lib/tramway/generators/templates/initializers/simple_form_bootstrap.rb +0 -133
  169. data/lib/tramway/generators.rb +0 -6
  170. data/lib/tramway/navbar.rb +0 -44
  171. data/lib/tramway/notifications.rb +0 -12
  172. data/lib/tramway/record_routes_helper.rb +0 -23
  173. data/lib/tramway/records_models.rb +0 -52
  174. data/lib/tramway/singleton_models.rb +0 -32
  175. data/lib/tramway/spec/helpers/navbar_helper.rb +0 -7
  176. data/lib/tramway/spec/helpers/tramway_helpers.rb +0 -47
  177. data/lib/tramway/welcome_page_actions.rb +0 -5
  178. data/lib/tramway/yaml/errors.yml +0 -49
  179. data/lib/validators/presence_validator.rb +0 -9
@@ -1,477 +0,0 @@
1
- /*!
2
- * Datepicker for Bootstrap v1.8.0 (https://github.com/uxsolutions/bootstrap-datepicker)
3
- *
4
- * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
5
- */
6
-
7
- .datepicker {
8
- padding: 4px;
9
- -webkit-border-radius: 4px;
10
- -moz-border-radius: 4px;
11
- border-radius: 4px;
12
- direction: ltr;
13
- }
14
- .datepicker-inline {
15
- width: 220px;
16
- }
17
- .datepicker-rtl {
18
- direction: rtl;
19
- }
20
- .datepicker-rtl.dropdown-menu {
21
- left: auto;
22
- }
23
- .datepicker-rtl table tr td span {
24
- float: right;
25
- }
26
- .datepicker-dropdown {
27
- top: 0;
28
- left: 0;
29
- }
30
- .datepicker-dropdown:before {
31
- content: '';
32
- display: inline-block;
33
- border-left: 7px solid transparent;
34
- border-right: 7px solid transparent;
35
- border-bottom: 7px solid #999;
36
- border-top: 0;
37
- border-bottom-color: rgba(0, 0, 0, 0.2);
38
- position: absolute;
39
- }
40
- .datepicker-dropdown:after {
41
- content: '';
42
- display: inline-block;
43
- border-left: 6px solid transparent;
44
- border-right: 6px solid transparent;
45
- border-bottom: 6px solid #fff;
46
- border-top: 0;
47
- position: absolute;
48
- }
49
- .datepicker-dropdown.datepicker-orient-left:before {
50
- left: 6px;
51
- }
52
- .datepicker-dropdown.datepicker-orient-left:after {
53
- left: 7px;
54
- }
55
- .datepicker-dropdown.datepicker-orient-right:before {
56
- right: 6px;
57
- }
58
- .datepicker-dropdown.datepicker-orient-right:after {
59
- right: 7px;
60
- }
61
- .datepicker-dropdown.datepicker-orient-bottom:before {
62
- top: -7px;
63
- }
64
- .datepicker-dropdown.datepicker-orient-bottom:after {
65
- top: -6px;
66
- }
67
- .datepicker-dropdown.datepicker-orient-top:before {
68
- bottom: -7px;
69
- border-bottom: 0;
70
- border-top: 7px solid #999;
71
- }
72
- .datepicker-dropdown.datepicker-orient-top:after {
73
- bottom: -6px;
74
- border-bottom: 0;
75
- border-top: 6px solid #fff;
76
- }
77
- .datepicker table {
78
- margin: 0;
79
- -webkit-touch-callout: none;
80
- -webkit-user-select: none;
81
- -khtml-user-select: none;
82
- -moz-user-select: none;
83
- -ms-user-select: none;
84
- user-select: none;
85
- }
86
- .datepicker td,
87
- .datepicker th {
88
- text-align: center;
89
- width: 20px;
90
- height: 20px;
91
- -webkit-border-radius: 4px;
92
- -moz-border-radius: 4px;
93
- border-radius: 4px;
94
- border: none;
95
- }
96
- .table-striped .datepicker table tr td,
97
- .table-striped .datepicker table tr th {
98
- background-color: transparent;
99
- }
100
- .datepicker table tr td.day:hover,
101
- .datepicker table tr td.day.focused {
102
- background: #eee;
103
- cursor: pointer;
104
- }
105
- .datepicker table tr td.old,
106
- .datepicker table tr td.new {
107
- color: #999;
108
- }
109
- .datepicker table tr td.disabled,
110
- .datepicker table tr td.disabled:hover {
111
- background: none;
112
- color: #999;
113
- cursor: default;
114
- }
115
- .datepicker table tr td.highlighted {
116
- background: #d9edf7;
117
- border-radius: 0;
118
- }
119
- .datepicker table tr td.today,
120
- .datepicker table tr td.today:hover,
121
- .datepicker table tr td.today.disabled,
122
- .datepicker table tr td.today.disabled:hover {
123
- background-color: #fde19a;
124
- background-image: -moz-linear-gradient(to bottom, #fdd49a, #fdf59a);
125
- background-image: -ms-linear-gradient(to bottom, #fdd49a, #fdf59a);
126
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a));
127
- background-image: -webkit-linear-gradient(to bottom, #fdd49a, #fdf59a);
128
- background-image: -o-linear-gradient(to bottom, #fdd49a, #fdf59a);
129
- background-image: linear-gradient(to bottom, #fdd49a, #fdf59a);
130
- background-repeat: repeat-x;
131
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);
132
- border-color: #fdf59a #fdf59a #fbed50;
133
- border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
134
- filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
135
- color: #000;
136
- }
137
- .datepicker table tr td.today:hover,
138
- .datepicker table tr td.today:hover:hover,
139
- .datepicker table tr td.today.disabled:hover,
140
- .datepicker table tr td.today.disabled:hover:hover,
141
- .datepicker table tr td.today:active,
142
- .datepicker table tr td.today:hover:active,
143
- .datepicker table tr td.today.disabled:active,
144
- .datepicker table tr td.today.disabled:hover:active,
145
- .datepicker table tr td.today.active,
146
- .datepicker table tr td.today:hover.active,
147
- .datepicker table tr td.today.disabled.active,
148
- .datepicker table tr td.today.disabled:hover.active,
149
- .datepicker table tr td.today.disabled,
150
- .datepicker table tr td.today:hover.disabled,
151
- .datepicker table tr td.today.disabled.disabled,
152
- .datepicker table tr td.today.disabled:hover.disabled,
153
- .datepicker table tr td.today[disabled],
154
- .datepicker table tr td.today:hover[disabled],
155
- .datepicker table tr td.today.disabled[disabled],
156
- .datepicker table tr td.today.disabled:hover[disabled] {
157
- background-color: #fdf59a;
158
- }
159
- .datepicker table tr td.today:active,
160
- .datepicker table tr td.today:hover:active,
161
- .datepicker table tr td.today.disabled:active,
162
- .datepicker table tr td.today.disabled:hover:active,
163
- .datepicker table tr td.today.active,
164
- .datepicker table tr td.today:hover.active,
165
- .datepicker table tr td.today.disabled.active,
166
- .datepicker table tr td.today.disabled:hover.active {
167
- background-color: #fbf069 \9;
168
- }
169
- .datepicker table tr td.today:hover:hover {
170
- color: #000;
171
- }
172
- .datepicker table tr td.today.active:hover {
173
- color: #fff;
174
- }
175
- .datepicker table tr td.range,
176
- .datepicker table tr td.range:hover,
177
- .datepicker table tr td.range.disabled,
178
- .datepicker table tr td.range.disabled:hover {
179
- background: #eee;
180
- -webkit-border-radius: 0;
181
- -moz-border-radius: 0;
182
- border-radius: 0;
183
- }
184
- .datepicker table tr td.range.today,
185
- .datepicker table tr td.range.today:hover,
186
- .datepicker table tr td.range.today.disabled,
187
- .datepicker table tr td.range.today.disabled:hover {
188
- background-color: #f3d17a;
189
- background-image: -moz-linear-gradient(to bottom, #f3c17a, #f3e97a);
190
- background-image: -ms-linear-gradient(to bottom, #f3c17a, #f3e97a);
191
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a));
192
- background-image: -webkit-linear-gradient(to bottom, #f3c17a, #f3e97a);
193
- background-image: -o-linear-gradient(to bottom, #f3c17a, #f3e97a);
194
- background-image: linear-gradient(to bottom, #f3c17a, #f3e97a);
195
- background-repeat: repeat-x;
196
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);
197
- border-color: #f3e97a #f3e97a #edde34;
198
- border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
199
- filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
200
- -webkit-border-radius: 0;
201
- -moz-border-radius: 0;
202
- border-radius: 0;
203
- }
204
- .datepicker table tr td.range.today:hover,
205
- .datepicker table tr td.range.today:hover:hover,
206
- .datepicker table tr td.range.today.disabled:hover,
207
- .datepicker table tr td.range.today.disabled:hover:hover,
208
- .datepicker table tr td.range.today:active,
209
- .datepicker table tr td.range.today:hover:active,
210
- .datepicker table tr td.range.today.disabled:active,
211
- .datepicker table tr td.range.today.disabled:hover:active,
212
- .datepicker table tr td.range.today.active,
213
- .datepicker table tr td.range.today:hover.active,
214
- .datepicker table tr td.range.today.disabled.active,
215
- .datepicker table tr td.range.today.disabled:hover.active,
216
- .datepicker table tr td.range.today.disabled,
217
- .datepicker table tr td.range.today:hover.disabled,
218
- .datepicker table tr td.range.today.disabled.disabled,
219
- .datepicker table tr td.range.today.disabled:hover.disabled,
220
- .datepicker table tr td.range.today[disabled],
221
- .datepicker table tr td.range.today:hover[disabled],
222
- .datepicker table tr td.range.today.disabled[disabled],
223
- .datepicker table tr td.range.today.disabled:hover[disabled] {
224
- background-color: #f3e97a;
225
- }
226
- .datepicker table tr td.range.today:active,
227
- .datepicker table tr td.range.today:hover:active,
228
- .datepicker table tr td.range.today.disabled:active,
229
- .datepicker table tr td.range.today.disabled:hover:active,
230
- .datepicker table tr td.range.today.active,
231
- .datepicker table tr td.range.today:hover.active,
232
- .datepicker table tr td.range.today.disabled.active,
233
- .datepicker table tr td.range.today.disabled:hover.active {
234
- background-color: #efe24b \9;
235
- }
236
- .datepicker table tr td.selected,
237
- .datepicker table tr td.selected:hover,
238
- .datepicker table tr td.selected.disabled,
239
- .datepicker table tr td.selected.disabled:hover {
240
- background-color: #9e9e9e;
241
- background-image: -moz-linear-gradient(to bottom, #b3b3b3, #808080);
242
- background-image: -ms-linear-gradient(to bottom, #b3b3b3, #808080);
243
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#808080));
244
- background-image: -webkit-linear-gradient(to bottom, #b3b3b3, #808080);
245
- background-image: -o-linear-gradient(to bottom, #b3b3b3, #808080);
246
- background-image: linear-gradient(to bottom, #b3b3b3, #808080);
247
- background-repeat: repeat-x;
248
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);
249
- border-color: #808080 #808080 #595959;
250
- border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
251
- filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
252
- color: #fff;
253
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
254
- }
255
- .datepicker table tr td.selected:hover,
256
- .datepicker table tr td.selected:hover:hover,
257
- .datepicker table tr td.selected.disabled:hover,
258
- .datepicker table tr td.selected.disabled:hover:hover,
259
- .datepicker table tr td.selected:active,
260
- .datepicker table tr td.selected:hover:active,
261
- .datepicker table tr td.selected.disabled:active,
262
- .datepicker table tr td.selected.disabled:hover:active,
263
- .datepicker table tr td.selected.active,
264
- .datepicker table tr td.selected:hover.active,
265
- .datepicker table tr td.selected.disabled.active,
266
- .datepicker table tr td.selected.disabled:hover.active,
267
- .datepicker table tr td.selected.disabled,
268
- .datepicker table tr td.selected:hover.disabled,
269
- .datepicker table tr td.selected.disabled.disabled,
270
- .datepicker table tr td.selected.disabled:hover.disabled,
271
- .datepicker table tr td.selected[disabled],
272
- .datepicker table tr td.selected:hover[disabled],
273
- .datepicker table tr td.selected.disabled[disabled],
274
- .datepicker table tr td.selected.disabled:hover[disabled] {
275
- background-color: #808080;
276
- }
277
- .datepicker table tr td.selected:active,
278
- .datepicker table tr td.selected:hover:active,
279
- .datepicker table tr td.selected.disabled:active,
280
- .datepicker table tr td.selected.disabled:hover:active,
281
- .datepicker table tr td.selected.active,
282
- .datepicker table tr td.selected:hover.active,
283
- .datepicker table tr td.selected.disabled.active,
284
- .datepicker table tr td.selected.disabled:hover.active {
285
- background-color: #666666 \9;
286
- }
287
- .datepicker table tr td.active,
288
- .datepicker table tr td.active:hover,
289
- .datepicker table tr td.active.disabled,
290
- .datepicker table tr td.active.disabled:hover {
291
- background-color: #006dcc;
292
- background-image: -moz-linear-gradient(to bottom, #08c, #0044cc);
293
- background-image: -ms-linear-gradient(to bottom, #08c, #0044cc);
294
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0044cc));
295
- background-image: -webkit-linear-gradient(to bottom, #08c, #0044cc);
296
- background-image: -o-linear-gradient(to bottom, #08c, #0044cc);
297
- background-image: linear-gradient(to bottom, #08c, #0044cc);
298
- background-repeat: repeat-x;
299
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);
300
- border-color: #0044cc #0044cc #002a80;
301
- border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
302
- filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
303
- color: #fff;
304
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
305
- }
306
- .datepicker table tr td.active:hover,
307
- .datepicker table tr td.active:hover:hover,
308
- .datepicker table tr td.active.disabled:hover,
309
- .datepicker table tr td.active.disabled:hover:hover,
310
- .datepicker table tr td.active:active,
311
- .datepicker table tr td.active:hover:active,
312
- .datepicker table tr td.active.disabled:active,
313
- .datepicker table tr td.active.disabled:hover:active,
314
- .datepicker table tr td.active.active,
315
- .datepicker table tr td.active:hover.active,
316
- .datepicker table tr td.active.disabled.active,
317
- .datepicker table tr td.active.disabled:hover.active,
318
- .datepicker table tr td.active.disabled,
319
- .datepicker table tr td.active:hover.disabled,
320
- .datepicker table tr td.active.disabled.disabled,
321
- .datepicker table tr td.active.disabled:hover.disabled,
322
- .datepicker table tr td.active[disabled],
323
- .datepicker table tr td.active:hover[disabled],
324
- .datepicker table tr td.active.disabled[disabled],
325
- .datepicker table tr td.active.disabled:hover[disabled] {
326
- background-color: #0044cc;
327
- }
328
- .datepicker table tr td.active:active,
329
- .datepicker table tr td.active:hover:active,
330
- .datepicker table tr td.active.disabled:active,
331
- .datepicker table tr td.active.disabled:hover:active,
332
- .datepicker table tr td.active.active,
333
- .datepicker table tr td.active:hover.active,
334
- .datepicker table tr td.active.disabled.active,
335
- .datepicker table tr td.active.disabled:hover.active {
336
- background-color: #003399 \9;
337
- }
338
- .datepicker table tr td span {
339
- display: block;
340
- width: 23%;
341
- height: 54px;
342
- line-height: 54px;
343
- float: left;
344
- margin: 1%;
345
- cursor: pointer;
346
- -webkit-border-radius: 4px;
347
- -moz-border-radius: 4px;
348
- border-radius: 4px;
349
- }
350
- .datepicker table tr td span:hover,
351
- .datepicker table tr td span.focused {
352
- background: #eee;
353
- }
354
- .datepicker table tr td span.disabled,
355
- .datepicker table tr td span.disabled:hover {
356
- background: none;
357
- color: #999;
358
- cursor: default;
359
- }
360
- .datepicker table tr td span.active,
361
- .datepicker table tr td span.active:hover,
362
- .datepicker table tr td span.active.disabled,
363
- .datepicker table tr td span.active.disabled:hover {
364
- background-color: #006dcc;
365
- background-image: -moz-linear-gradient(to bottom, #08c, #0044cc);
366
- background-image: -ms-linear-gradient(to bottom, #08c, #0044cc);
367
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0044cc));
368
- background-image: -webkit-linear-gradient(to bottom, #08c, #0044cc);
369
- background-image: -o-linear-gradient(to bottom, #08c, #0044cc);
370
- background-image: linear-gradient(to bottom, #08c, #0044cc);
371
- background-repeat: repeat-x;
372
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);
373
- border-color: #0044cc #0044cc #002a80;
374
- border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
375
- filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
376
- color: #fff;
377
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
378
- }
379
- .datepicker table tr td span.active:hover,
380
- .datepicker table tr td span.active:hover:hover,
381
- .datepicker table tr td span.active.disabled:hover,
382
- .datepicker table tr td span.active.disabled:hover:hover,
383
- .datepicker table tr td span.active:active,
384
- .datepicker table tr td span.active:hover:active,
385
- .datepicker table tr td span.active.disabled:active,
386
- .datepicker table tr td span.active.disabled:hover:active,
387
- .datepicker table tr td span.active.active,
388
- .datepicker table tr td span.active:hover.active,
389
- .datepicker table tr td span.active.disabled.active,
390
- .datepicker table tr td span.active.disabled:hover.active,
391
- .datepicker table tr td span.active.disabled,
392
- .datepicker table tr td span.active:hover.disabled,
393
- .datepicker table tr td span.active.disabled.disabled,
394
- .datepicker table tr td span.active.disabled:hover.disabled,
395
- .datepicker table tr td span.active[disabled],
396
- .datepicker table tr td span.active:hover[disabled],
397
- .datepicker table tr td span.active.disabled[disabled],
398
- .datepicker table tr td span.active.disabled:hover[disabled] {
399
- background-color: #0044cc;
400
- }
401
- .datepicker table tr td span.active:active,
402
- .datepicker table tr td span.active:hover:active,
403
- .datepicker table tr td span.active.disabled:active,
404
- .datepicker table tr td span.active.disabled:hover:active,
405
- .datepicker table tr td span.active.active,
406
- .datepicker table tr td span.active:hover.active,
407
- .datepicker table tr td span.active.disabled.active,
408
- .datepicker table tr td span.active.disabled:hover.active {
409
- background-color: #003399 \9;
410
- }
411
- .datepicker table tr td span.old,
412
- .datepicker table tr td span.new {
413
- color: #999;
414
- }
415
- .datepicker .datepicker-switch {
416
- width: 145px;
417
- }
418
- .datepicker .datepicker-switch,
419
- .datepicker .prev,
420
- .datepicker .next,
421
- .datepicker tfoot tr th {
422
- cursor: pointer;
423
- }
424
- .datepicker .datepicker-switch:hover,
425
- .datepicker .prev:hover,
426
- .datepicker .next:hover,
427
- .datepicker tfoot tr th:hover {
428
- background: #eee;
429
- }
430
- .datepicker .prev.disabled,
431
- .datepicker .next.disabled {
432
- visibility: hidden;
433
- }
434
- .datepicker .cw {
435
- font-size: 10px;
436
- width: 12px;
437
- padding: 0 2px 0 5px;
438
- vertical-align: middle;
439
- }
440
- .input-append.date .add-on,
441
- .input-prepend.date .add-on {
442
- cursor: pointer;
443
- }
444
- .input-append.date .add-on i,
445
- .input-prepend.date .add-on i {
446
- margin-top: 3px;
447
- }
448
- .input-daterange input {
449
- text-align: center;
450
- }
451
- .input-daterange input:first-child {
452
- -webkit-border-radius: 3px 0 0 3px;
453
- -moz-border-radius: 3px 0 0 3px;
454
- border-radius: 3px 0 0 3px;
455
- }
456
- .input-daterange input:last-child {
457
- -webkit-border-radius: 0 3px 3px 0;
458
- -moz-border-radius: 0 3px 3px 0;
459
- border-radius: 0 3px 3px 0;
460
- }
461
- .input-daterange .add-on {
462
- display: inline-block;
463
- width: auto;
464
- min-width: 16px;
465
- height: 18px;
466
- padding: 4px 5px;
467
- font-weight: normal;
468
- line-height: 18px;
469
- text-align: center;
470
- text-shadow: 0 1px 0 #fff;
471
- vertical-align: middle;
472
- background-color: #eee;
473
- border: 1px solid #ccc;
474
- margin-left: -5px;
475
- margin-right: -5px;
476
- }
477
- /*# sourceMappingURL=bootstrap-datepicker.css.map */
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Tramway::AuthManagement
4
- def sign_in(user)
5
- session[:tramway_user_id] = user.id
6
- end
7
-
8
- def sign_out
9
- session[:tramway_user_id] = nil
10
- end
11
-
12
- def signed_in?
13
- current_user
14
- end
15
-
16
- def authenticate_user!
17
- redirect_to Tramway::Engine.routes.url_helpers.new_session_path if !session_path? && !signed_in?
18
- end
19
-
20
- def current_user
21
- user = Tramway::User.find_by id: session[:tramway_user_id]
22
- return false unless user
23
-
24
- Tramway::UserDecorator.decorate user
25
- end
26
- end
@@ -1,43 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Tramway::Filtering
4
- def list_filtering(records)
5
- params[:list_filters]&.each do |filter, _value|
6
- case decorator_class.list_filters[filter.to_sym][:type]
7
- when :select
8
- records = list_filtering_select records, filter
9
- when :dates
10
- records = list_filtering_dates records, filter
11
- end
12
- end
13
-
14
- records
15
- end
16
-
17
- def list_filtering_select(records, filter)
18
- value.present? ? decorator_class.list_filters[filter.to_sym][:query].call(records, value) : records
19
- end
20
-
21
- def list_filtering_dates(records, filter)
22
- begin_date = date_filter :begin, filter
23
- end_date = date_filter :end, filter
24
- if begin_date.present? && end_date.present? && value.present?
25
- decorator_class.list_filters[filter.to_sym][:query].call(records, begin_date, end_date)
26
- else
27
- records
28
- end
29
- end
30
-
31
- def date_filter(type, filter)
32
- params[:list_filters][filter.to_sym]["#{type}_date".to_sym]
33
- end
34
-
35
- def filtering(records)
36
- if params[:filter].present?
37
- params[:filter] = JSON.parse params[:filter] if params[:filter].is_a? String
38
- records.ransack(params[:filter]).result(distinct: true)
39
- else
40
- records
41
- end
42
- end
43
- end
@@ -1,142 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # FIXME: use default `require` method
4
- load "#{Tramway.root}/lib/tramway/class_name_helpers.rb"
5
- load "#{Tramway.root}/lib/tramway/record_routes_helper.rb"
6
-
7
- # FIXME: configurate load_path
8
- load "#{Tramway.root}/app/controllers/concerns/auth_management.rb"
9
- load "#{Tramway.root}/app/controllers/concerns/filtering.rb"
10
-
11
- class Tramway::ApplicationController < ActionController::Base
12
- include Tramway::ClassNameHelpers
13
- include Tramway::AuthManagement
14
- include Tramway::Filtering
15
- include Tramway::RecordRoutesHelper
16
-
17
- before_action :application
18
- before_action :load_extensions
19
- before_action :notifications
20
- before_action :notifications_count
21
- before_action :collections_counts, if: :model_given?
22
- before_action :authenticate_user!
23
- before_action :check_available!
24
- before_action :check_available_scope!, if: :model_given?, only: :index
25
-
26
- protect_from_forgery with: :exception
27
-
28
- protected
29
-
30
- def check_available!
31
- return if session_path?
32
-
33
- return unless !model_given? && !form_given?
34
-
35
- Tramway::Error.raise_error :tramway, :application_controller, :model_or_form_not_available
36
- end
37
-
38
- def check_available_scope!
39
- raise 'Scope is not available' if params[:scope].present? && !available_scope_given?
40
- end
41
-
42
- def collections_counts
43
- @counts = decorator_class.collections.reduce({}) do |hash, collection|
44
- records = model_class.public_send(collection)
45
- records = filtering records
46
- records = list_filtering records
47
-
48
- hash.merge! collection => records.public_send(current_user_role_scope, current_user.id).count
49
- end
50
- end
51
-
52
- def notifications
53
- if current_user
54
- @notifications ||= Tramway.notificable_queries&.reduce({}) do |hash, notification|
55
- hash.merge! notification[0] => notification[1].call(current_user)
56
- end
57
- end
58
- @notifications
59
- end
60
-
61
- def notifications_count
62
- @notifications_count = notifications&.reduce(0) do |count, notification|
63
- count += notification[1].count # rubocop:disable Lint/UselessAssignment
64
- end
65
- end
66
-
67
- include Tramway::ClassNameHelpers
68
-
69
- def model_class
70
- model_class_name(params[:model] || params[:form])
71
- end
72
-
73
- def decorator_class
74
- decorator_class_name
75
- end
76
-
77
- def admin_form_class
78
- class_name = "::#{current_user.role.camelize}::#{model_class}Form"
79
-
80
- unless defined? class_name
81
- Tramway::Error.raise_error(
82
- :tramway,
83
- :application,
84
- :create_form_for_role,
85
- role: current_user.role,
86
- model_class: model_class,
87
- class_name: class_name
88
- )
89
- end
90
-
91
- class_name.constantize
92
- end
93
-
94
- def model_given?
95
- current_user.present? && (available_models_given? || singleton_models_given?)
96
- end
97
-
98
- def form_given?
99
- Tramway.forms.include? params[:form].underscore.sub(%r{^admin/}, '').sub(/_form$/, '') if params[:form].present?
100
- end
101
-
102
- def available_scope_given?
103
- params[:scope].present? && params[:scope].in?(decorator_class.collections.map(&:to_s))
104
- end
105
-
106
- def available_models_given?
107
- check_models_given? :available
108
- end
109
-
110
- def singleton_models_given?
111
- check_models_given? :singleton
112
- end
113
-
114
- private
115
-
116
- def check_models_given?(model_type)
117
- models = Tramway.send("#{model_type}_models", role: current_user.role)
118
- models.any? && params[:model].in?(models.map(&:to_s))
119
- end
120
-
121
- def session_path?
122
- request.path.in?(['/admin/session/new', '/admin/session', '/admin/sign_out'])
123
- end
124
-
125
- def application
126
- return unless Tramway.application
127
-
128
- @application ||= Tramway.application&.model_class&.first || Tramway.application
129
- end
130
-
131
- def load_extensions
132
- Tramway::Extensions.load if defined? Tramway::Extensions
133
- end
134
-
135
- def authenticated_user
136
- (defined?(current_user) && current_user.try(:model)) || (defined?(current_user) && current_user.model)
137
- end
138
-
139
- def current_user_role_scope
140
- "#{current_user.role}_scope"
141
- end
142
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Tramway::Export::ApplicationController < Tramway::ApplicationController
4
- before_action :authenticate_admin!
5
- end