tramway 0.1.2 → 0.1.3

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 (177) 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 +16 -545
  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 -61
  34. data/app/assets/stylesheets/tramway/application.sass +0 -59
  35. data/app/controllers/tramway/application_controller.rb +0 -142
  36. data/app/controllers/tramway/concerns/auth_management.rb +0 -26
  37. data/app/controllers/tramway/concerns/filtering.rb +0 -43
  38. data/app/controllers/tramway/export/application_controller.rb +0 -5
  39. data/app/controllers/tramway/has_and_belongs_to_many_records_controller.rb +0 -26
  40. data/app/controllers/tramway/records_controller.rb +0 -86
  41. data/app/controllers/tramway/sessions_controller.rb +0 -49
  42. data/app/controllers/tramway/singletons_controller.rb +0 -48
  43. data/app/controllers/tramway/welcome_controller.rb +0 -17
  44. data/app/decorators/tramway/application_decorated_collection.rb +0 -15
  45. data/app/decorators/tramway/application_decorator.rb +0 -124
  46. data/app/decorators/tramway/associations/class_helper.rb +0 -45
  47. data/app/decorators/tramway/associations/object_helper.rb +0 -58
  48. data/app/decorators/tramway/attributes/view_helper.rb +0 -30
  49. data/app/decorators/tramway/concerns/attributes_decorator_helper.rb +0 -97
  50. data/app/decorators/tramway/concerns/table_builder.rb +0 -33
  51. data/app/decorators/tramway/default/values_helper.rb +0 -23
  52. data/app/decorators/tramway/delegating/class_helper.rb +0 -9
  53. data/app/decorators/tramway/user_decorator.rb +0 -49
  54. data/app/forms/admin/tramway/user_form.rb +0 -24
  55. data/app/forms/tramway/application_form.rb +0 -124
  56. data/app/forms/tramway/application_forms/association_class_helpers.rb +0 -7
  57. data/app/forms/tramway/application_forms/association_object_helpers.rb +0 -36
  58. data/app/forms/tramway/application_forms/constant_class_actions.rb +0 -7
  59. data/app/forms/tramway/application_forms/constant_object_actions.rb +0 -20
  60. data/app/forms/tramway/application_forms/frontend.rb +0 -12
  61. data/app/forms/tramway/application_forms/object_helpers.rb +0 -15
  62. data/app/forms/tramway/application_forms/properties_object_helper.rb +0 -16
  63. data/app/forms/tramway/application_forms/submit_helper.rb +0 -26
  64. data/app/forms/tramway/extendable_form.rb +0 -15
  65. data/app/forms/tramway/extendable_forms_helpers/class_builder.rb +0 -34
  66. data/app/forms/tramway/extendable_forms_helpers/ignored_properties_helper.rb +0 -11
  67. data/app/forms/tramway/extendable_forms_helpers/more_properties_helper.rb +0 -31
  68. data/app/forms/tramway/extendable_forms_helpers/properties_helper.rb +0 -16
  69. data/app/forms/tramway/extendable_forms_helpers/submit/class_helpers.rb +0 -18
  70. data/app/forms/tramway/extendable_forms_helpers/submit/object_helpers.rb +0 -21
  71. data/app/forms/tramway/extendable_forms_helpers/validators.rb +0 -40
  72. data/app/forms/tramway/extended_application_form.rb +0 -23
  73. data/app/forms/tramway/form_creator.rb +0 -7
  74. data/app/forms/tramway/session_form.rb +0 -26
  75. data/app/helpers/tramway/actions_helper.rb +0 -45
  76. data/app/helpers/tramway/additional_buttons_builder.rb +0 -12
  77. data/app/helpers/tramway/application_helper.rb +0 -27
  78. data/app/helpers/tramway/cases_helper.rb +0 -13
  79. data/app/helpers/tramway/copy_to_clipboard_helper.rb +0 -11
  80. data/app/helpers/tramway/focus_generator_helper.rb +0 -10
  81. data/app/helpers/tramway/frontend_helper.rb +0 -26
  82. data/app/helpers/tramway/inputs/associations_helper.rb +0 -30
  83. data/app/helpers/tramway/inputs/polymorphic_associations_helper.rb +0 -24
  84. data/app/helpers/tramway/inputs_helper.rb +0 -96
  85. data/app/helpers/tramway/model_helper.rb +0 -7
  86. data/app/helpers/tramway/navbar_helper.rb +0 -11
  87. data/app/helpers/tramway/records_helper.rb +0 -120
  88. data/app/helpers/tramway/russian_cases_helper.rb +0 -26
  89. data/app/helpers/tramway/singleton_helper.rb +0 -12
  90. data/app/helpers/tramway/state_machine_buttons_helper.rb +0 -61
  91. data/app/helpers/tramway/title_helper.rb +0 -25
  92. data/app/inputs/date_picker_input.rb +0 -4
  93. data/app/inputs/multiple_file_input.rb +0 -7
  94. data/app/models/tramway/application_record.rb +0 -62
  95. data/app/models/tramway/user.rb +0 -18
  96. data/app/uploaders/application_uploader.rb +0 -22
  97. data/app/uploaders/file_uploader.rb +0 -4
  98. data/app/uploaders/ico_uploader.rb +0 -7
  99. data/app/uploaders/image_defaults.rb +0 -14
  100. data/app/uploaders/photo_uploader.rb +0 -54
  101. data/app/views/layouts/tramway/application.html.haml +0 -32
  102. data/app/views/layouts/tramway/shared/_navbar.html.haml +0 -46
  103. data/app/views/tramway/404.haml +0 -1
  104. data/app/views/tramway/records/_form.html.haml +0 -22
  105. data/app/views/tramway/records/_list.html.haml +0 -38
  106. data/app/views/tramway/records/_search.html.haml +0 -34
  107. data/app/views/tramway/records/edit.html.haml +0 -1
  108. data/app/views/tramway/records/index.html.haml +0 -31
  109. data/app/views/tramway/records/new.html.haml +0 -1
  110. data/app/views/tramway/records/show.html.haml +0 -1
  111. data/app/views/tramway/sessions/new.html.haml +0 -9
  112. data/app/views/tramway/shared/_input.html.haml +0 -34
  113. data/app/views/tramway/shared/_input_extended.html.haml +0 -14
  114. data/app/views/tramway/shared/_messages.html.haml +0 -10
  115. data/app/views/tramway/shared/_show.html.haml +0 -35
  116. data/app/views/tramway/shared/errors/server_error.html.haml +0 -12
  117. data/app/views/tramway/shared/input_extended_types/_checkbox.html.haml +0 -1
  118. data/app/views/tramway/shared/input_extended_types/_select.html.haml +0 -16
  119. data/app/views/tramway/shared/input_extended_types/_simple.html.haml +0 -4
  120. data/app/views/tramway/shared/input_extended_types/_yes_no.html.haml +0 -4
  121. data/app/views/tramway/shared/show/_attribute_tr.html.haml +0 -9
  122. data/app/views/tramway/shared/show/associations/_habtm_row.html.haml +0 -14
  123. data/app/views/tramway/shared/show/associations/_list.html.haml +0 -21
  124. data/app/views/tramway/shared/show/associations/_row.html.haml +0 -19
  125. data/app/views/tramway/shared/show/associations/_table_row.html.haml +0 -21
  126. data/app/views/tramway/singletons/_form.html.haml +0 -15
  127. data/app/views/tramway/singletons/edit.html.haml +0 -1
  128. data/app/views/tramway/singletons/new.html.haml +0 -1
  129. data/app/views/tramway/singletons/show.html.haml +0 -1
  130. data/app/views/tramway/welcome/index.html.haml +0 -4
  131. data/config/initializers/assets.rb +0 -7
  132. data/config/initializers/ckeditor.rb +0 -9
  133. data/config/initializers/plurals.rb +0 -25
  134. data/config/locales/en/collections.yml +0 -4
  135. data/config/locales/en/date.yml +0 -16
  136. data/config/locales/en/dates.yml +0 -10
  137. data/config/locales/en/helpers.yml +0 -26
  138. data/config/locales/en/locale.yml +0 -11
  139. data/config/locales/en/messages.yml +0 -7
  140. data/config/locales/en/models.yml +0 -9
  141. data/config/locales/en/simple_form_extension.yml +0 -8
  142. data/config/locales/en/state_machines.yml +0 -8
  143. data/config/locales/ru/collections.yml +0 -4
  144. data/config/locales/ru/date.yml +0 -16
  145. data/config/locales/ru/dates.yml +0 -10
  146. data/config/locales/ru/helpers.yml +0 -30
  147. data/config/locales/ru/locale.yml +0 -6
  148. data/config/locales/ru/messages.yml +0 -7
  149. data/config/locales/ru/models.yml +0 -21
  150. data/config/locales/ru/simple_form_extension.yml +0 -8
  151. data/config/locales/ru/state_machines.yml +0 -8
  152. data/lib/string.rb +0 -18
  153. data/lib/tramway/application.rb +0 -10
  154. data/lib/tramway/class_name_helpers.rb +0 -15
  155. data/lib/tramway/collection.rb +0 -9
  156. data/lib/tramway/collections/helper.rb +0 -21
  157. data/lib/tramway/collections.rb +0 -4
  158. data/lib/tramway/error.rb +0 -32
  159. data/lib/tramway/forms.rb +0 -5
  160. data/lib/tramway/generators/install_generator.rb +0 -49
  161. data/lib/tramway/generators/model_generator.rb +0 -105
  162. data/lib/tramway/generators/templates/create_tramway_users.rb +0 -18
  163. data/lib/tramway/generators/templates/decorator.rb.erb +0 -56
  164. data/lib/tramway/generators/templates/form.rb.erb +0 -22
  165. data/lib/tramway/generators/templates/initializers/simple_form.rb +0 -23
  166. data/lib/tramway/generators/templates/initializers/simple_form_bootstrap.rb +0 -133
  167. data/lib/tramway/generators.rb +0 -6
  168. data/lib/tramway/navbar.rb +0 -44
  169. data/lib/tramway/notifications.rb +0 -12
  170. data/lib/tramway/record_routes_helper.rb +0 -23
  171. data/lib/tramway/records_models.rb +0 -60
  172. data/lib/tramway/singleton_models.rb +0 -32
  173. data/lib/tramway/spec/helpers/navbar_helper.rb +0 -7
  174. data/lib/tramway/spec/helpers/tramway_helpers.rb +0 -47
  175. data/lib/tramway/welcome_page_actions.rb +0 -5
  176. data/lib/tramway/yaml/errors.yml +0 -50
  177. data/lib/validators/presence_validator.rb +0 -9
@@ -1,133 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- SimpleForm.setup do |config|
4
- config.error_notification_class = 'alert alert-danger'
5
- config.button_class = 'btn btn-default'
6
- config.boolean_label_class = nil
7
-
8
- config.wrappers :vertical_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
9
- b.use :html5
10
- b.use :placeholder
11
- b.optional :maxlength
12
- b.optional :pattern
13
- b.optional :min_max
14
- b.optional :readonly
15
- b.use :label, class: 'control-label'
16
-
17
- b.use :input, class: 'form-control'
18
- b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
19
- b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
20
- end
21
-
22
- config.wrappers :vertical_file_input, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
23
- b.use :html5
24
- b.use :placeholder
25
- b.optional :maxlength
26
- b.optional :readonly
27
- b.use :label, class: 'control-label'
28
-
29
- b.use :input
30
- b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
31
- b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
32
- end
33
-
34
- config.wrappers :vertical_boolean, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
35
- b.use :html5
36
- b.optional :readonly
37
-
38
- b.wrapper tag: 'div', class: 'checkbox' do |ba|
39
- ba.use :label_input
40
- end
41
-
42
- b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
43
- b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
44
- end
45
-
46
- config.wrappers :vertical_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
47
- b.use :html5
48
- b.optional :readonly
49
- b.use :label, class: 'control-label'
50
- b.use :input
51
- b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
52
- b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
53
- end
54
-
55
- config.wrappers :horizontal_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
56
- b.use :html5
57
- b.use :placeholder
58
- b.optional :maxlength
59
- b.optional :pattern
60
- b.optional :min_max
61
- b.optional :readonly
62
- b.use :label, class: 'col-sm-3 control-label'
63
-
64
- b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
65
- ba.use :input, class: 'form-control'
66
- ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
67
- ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
68
- end
69
- end
70
-
71
- config.wrappers :horizontal_file_input, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
72
- b.use :html5
73
- b.use :placeholder
74
- b.optional :maxlength
75
- b.optional :readonly
76
- b.use :label, class: 'col-sm-3 control-label'
77
-
78
- b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
79
- ba.use :input
80
- ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
81
- ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
82
- end
83
- end
84
-
85
- config.wrappers :horizontal_boolean, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
86
- b.use :html5
87
- b.optional :readonly
88
-
89
- b.wrapper tag: 'div', class: 'col-sm-offset-3 col-sm-9' do |wr|
90
- wr.wrapper tag: 'div', class: 'checkbox' do |ba|
91
- ba.use :label_input, class: 'col-sm-9'
92
- end
93
-
94
- wr.use :error, wrap_with: { tag: 'span', class: 'help-block' }
95
- wr.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
96
- end
97
- end
98
-
99
- config.wrappers :horizontal_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
100
- b.use :html5
101
- b.optional :readonly
102
-
103
- b.use :label, class: 'col-sm-3 control-label'
104
-
105
- b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
106
- ba.use :input
107
- ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
108
- ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
109
- end
110
- end
111
-
112
- config.wrappers :inline_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
113
- b.use :html5
114
- b.use :placeholder
115
- b.optional :maxlength
116
- b.optional :pattern
117
- b.optional :min_max
118
- b.optional :readonly
119
- b.use :label, class: 'sr-only'
120
-
121
- b.use :input, class: 'form-control'
122
- b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
123
- b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
124
- end
125
-
126
- config.default_wrapper = :vertical_form
127
- config.wrapper_mappings = {
128
- check_boxes: :vertical_radio_and_checkboxes,
129
- radio_buttons: :vertical_radio_and_checkboxes,
130
- file: :vertical_file_input,
131
- boolean: :vertical_boolean
132
- }
133
- end
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Tramway
4
- module Generators
5
- end
6
- end
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Tramway::Navbar
4
- def navbar_structure(*links, project:)
5
- @navbar_structure ||= {}
6
- @navbar_structure.merge! project => links
7
- end
8
-
9
- def navbar_items_for(project, role:)
10
- project = project.underscore.to_sym unless project.is_a? Symbol
11
-
12
- return [] unless @navbar_structure&.dig(project).present?
13
-
14
- @navbar_structure[project].map { |item| add_to_navbar item, project, role }.compact || []
15
- end
16
-
17
- private
18
-
19
- def should_be_in_navbar_as(item, project, role)
20
- if singleton_models_for(project, role:).map(&:to_s).include?(item.to_s)
21
- { item.to_s => :singleton }
22
- elsif available_models_for(project, role:).map(&:to_s).include?(item.to_s)
23
- { item.to_s => :record }
24
- elsif item.is_a? Symbol
25
- :divider
26
- end
27
- end
28
-
29
- def parse_hash_options_to_navbar(item, project, role)
30
- sub_items = item.values.first.map do |sub_item|
31
- should_be_in_navbar_as sub_item, project, role
32
- end.compact
33
- { item.keys.first => sub_items } if sub_items.any?
34
- end
35
-
36
- def add_to_navbar(item, project, role)
37
- case item
38
- when Class, String
39
- should_be_in_navbar_as item, project, role
40
- when Hash
41
- parse_hash_options_to_navbar item, project, role
42
- end
43
- end
44
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Tramway::Notifications
4
- def set_notificable_queries(**queries)
5
- @notificable_queries ||= {}
6
- @notificable_queries.merge! queries
7
- end
8
-
9
- def notificable_queries
10
- @notificable_queries
11
- end
12
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Tramway::RecordRoutesHelper
4
- def record_path(*args, **options)
5
- options[:model] ||= params[:model]
6
- super args, options
7
- end
8
-
9
- def edit_record_path(*args, **options)
10
- options[:model] ||= params[:model]
11
- super args, options
12
- end
13
-
14
- def new_record_path(*args, **options)
15
- options[:model] ||= params[:model]
16
- super args, options
17
- end
18
-
19
- def records_path(*args, **options)
20
- options[:model] ||= params[:model]
21
- super args, options
22
- end
23
- end
@@ -1,60 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Tramway::RecordsModels
4
- def set_available_models(models, project:, role: :admin)
5
- initialize_available_models_for project, role
6
-
7
- Tramway::Error.raise_error :records, :wrong_available_models_type if !models.is_a?(Array) && !models.is_a?(Hash)
8
-
9
- handle_array_of_models(models, project:, role:) if models.is_a? Array
10
-
11
- @available_models[project][role].merge! models if models.is_a? Hash
12
- @available_models = @available_models.with_indifferent_access
13
- end
14
-
15
- def available_models_for(project, role: :admin)
16
- project = project.underscore.to_sym unless project.is_a? Symbol
17
- models = get_models_by_key(@available_models, project, role)
18
- models = available_models_for_engine(project, role, models) if project_is_engine?(project)
19
-
20
- models.map do |model|
21
- model.instance_of?(String) ? model.constantize : model
22
- end
23
- end
24
-
25
- def available_models(role:)
26
- models_array models_type: :available, role:
27
- end
28
-
29
- def clear_available_models!
30
- @available_models = {}
31
- end
32
-
33
- private
34
-
35
- def handle_array_of_models(models, project:, role:)
36
- models.each do |model|
37
- if model.instance_of?(Class) || model.instance_of?(String)
38
- @available_models[project][role].merge! model.to_s => %i[index show update create destroy]
39
- elsif model.instance_of?(Hash)
40
- @available_models[project][role].merge! model
41
- end
42
- end
43
- end
44
-
45
- def initialize_available_models_for(project, role)
46
- @available_models ||= {}
47
- @available_models[project] ||= {}
48
- @available_models[project][role] ||= {}
49
- end
50
-
51
- def available_models_for_engine(project, role, models)
52
- models + engine_class(project).dependencies.map do |dependency|
53
- if @available_models&.dig(dependency, role).present?
54
- @available_models&.dig(dependency, role)&.keys
55
- else
56
- Tramway::Error.raise_error(:records, :there_is_no_dependency, dependency:, project:)
57
- end
58
- end.flatten.compact
59
- end
60
- end
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Tramway::SingletonModels
4
- def set_singleton_models(*models, project:, role: :admin)
5
- @singleton_models ||= {}
6
- @singleton_models[project] ||= {}
7
- @singleton_models[project][role] ||= {}
8
- models.each do |model|
9
- if model.instance_of?(Class)
10
- @singleton_models[project][role].merge! model.to_s => %i[index show update create destroy]
11
- elsif model.instance_of?(Hash)
12
- @singleton_models[project][role].merge! model.to_s
13
- end
14
- end
15
- @singleton_models = @singleton_models.with_indifferent_access
16
- end
17
-
18
- def singleton_models_for(project, role: :admin)
19
- project = project.underscore.to_sym unless project.is_a? Symbol
20
- models = get_models_by_key(@singleton_models, project, role)
21
- if project_is_engine?(project)
22
- models += engine_class(project).dependencies.map do |dependency|
23
- @singleton_models&.dig(dependency, role)&.keys
24
- end.flatten.compact
25
- end
26
- models
27
- end
28
-
29
- def singleton_models(role:)
30
- models_array models_type: :singleton, role:
31
- end
32
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module NavbarHelper
4
- def click_on_dropdown(text)
5
- first('ul.navbar-nav li.nav-item.dropdown a.nav-link.dropdown-toggle', text:, visible: true).click
6
- end
7
- end
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module TramwayHelpers
4
- def click_on_association_delete_button(object)
5
- delete_path = ::Tramway::Engine.routes.url_helpers.record_path(
6
- object.id,
7
- model: object.class
8
- )
9
- row = find("td[colspan='2'] td a[href='#{delete_path}']").parent_node(level: 2)
10
- row.find('td button.delete[type="submit"]').click
11
- end
12
-
13
- def click_on_tab(text)
14
- find('li.nav-item a.nav-link', text:).click
15
- end
16
-
17
- def click_on_table_item(text)
18
- find('table td a', text:).click
19
- end
20
-
21
- def click_on_delete_button(object)
22
- delete_path = ::Tramway::Engine.routes.url_helpers.record_path(
23
- object.id,
24
- model: object.class
25
- )
26
- form = find("form[action='#{delete_path}']")
27
- form.find('button[type="submit"]').click
28
- end
29
-
30
- def fill_in_ckeditor(name, with:)
31
- id = name.gsub(']', '').split('[').join('_')
32
- content = with.to_json # convert to a safe javascript string
33
- page.execute_script <<-SCRIPT
34
- CKEDITOR.instances['#{id}'].setData(#{content});
35
- $('textarea##{id}').text(#{content});
36
- SCRIPT
37
- end
38
-
39
- def fill_in_datepicker(name, with:)
40
- return unless with.present?
41
-
42
- input = find("input[name=#{name.gsub('[', '\[').gsub(']', '\]')}]")
43
- input.click
44
-
45
- find('td.day', text: /^#{with.day}$/, match: :first).click
46
- end
47
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Tramway::WelcomePageActions
4
- attr_accessor :welcome_page_actions
5
- end
@@ -1,50 +0,0 @@
1
- tramway:
2
- project:
3
- no_instance_of_application_class: "Looks like you have not create at least one instance of %{application_class} model OR Tramway Application Model is nil"
4
- collections:
5
- helper:
6
- collection_list_by:
7
- there_no_such_collection: "There no such collection named %{name_camelize}. Please create class with self method `list` and extended of `Tramway::Collection`. You should reload your server after creating this collection."
8
- input_helper:
9
- association_params:
10
- defined_with_property_method: "It seems you've defined association attributes with `property` method. Please, use `association` method. `association :%{property}`"
11
- use_polymorphic_association: "It seems you've used `association` input type in the Form. Please, use `polymorphic_association` type. `%{property}: :polymorphic_association`"
12
- title_helper:
13
- title:
14
- you_should_set_tramway_application: "You should set Tramway::Core::Application class using `::Tramway::Core.initialize_application model_class: #{model_class_name}` in config/initializers/tramway.rb OR maybe you don't have any records of application model"
15
- application_form:
16
- initialize:
17
- polymorphic_class_is_nil: "Polymorphic association class is nil. Maybe, you should write `assocation #{association_name}` after `properties #{association_name}_id, #{association_name}_type`"
18
- validates:
19
- you_need_to_set_model_class: 'You need to set `model_class` name while using validations. Just write `self.model_class = YOUR_MODEL_NAME` in the class area.'
20
- submit:
21
- params_should_not_be_nil: "ApplicationForm::Params should not be nil"
22
- save:
23
- looks_like_you_have_method: "Looks like you have method `%{method_name}` in %{model_class}. You should rename it or rename property in %{class_name}"
24
- argument_error: "We have ArgumentError with message: %{message}"
25
- model_class:
26
- there_is_not_model_class: "There is not model class name for %{name}. Should be %{model_class_name} or you can use another class to initialize form object or just initialize form with object."
27
- concerns:
28
- attribute_decorator_helper:
29
- you_should_mount_photo_uploader: "You should mount PhotoUploader to your model. Just add `mount_uploader %{attribute_name}, PhotoUploader` to your model. %{message}"
30
- associations:
31
- object_helper:
32
- please_specify_association_name: "Please, specify `%{association_name}` association class_name in %{object_class} model. For example: `has_many :%{association_name}, class_name: '%{association_class_name}'`"
33
- habtm_add_class_not_defined: "You should define class `%{class}` to be able add and remove `%{association_name}`"
34
- class_helper:
35
- model_does_not_have_association: "Model %{object_class} does not have association named `%{association_name}`"
36
- application_decorator:
37
- attributes:
38
- method_is_reserved_word: "Method `%{attribute_name}` is reserved word. Please, create or delegate method in %{class_name} with another name."
39
- title:
40
- please_implement_title: "Please, implement `title` method in a %{class_name} or delegate it to %{object_class}"
41
- link:
42
- method_link_uses_file_attribute: "Method `link` uses `file` attribute of the decorated object. If decorated object doesn't contain `file`, you shouldn't use `link` method."
43
- generators:
44
- install: 'Initialize Tramway application before running generators. Add `Tramway.initialize_application name: :your_application_name` to `config/initializers/tramway.rb`'
45
- records:
46
- there_is_no_dependency: "There is no dependency `%{dependency}` for plugin: %{project}. Please, check file `tramway-%{project}/lib/tramway/%{project}/%{project}.rb`"
47
- wrong_available_models_type: "First argument in `set_available_models` should Array or Hash"
48
- application_controller:
49
- create_form_for_role: "Tramway - you should create form for role `%{role}` to edit %{model_class} model. It should be named %{class_name}"
50
- model_or_form_not_available: 'Tramway - Model or Form is not available. Looks like current user does not have access to change this model. Update your tramway initializer file'
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class PresenceValidator
4
- def initialize(attributes); end
5
-
6
- def valid?(value)
7
- value.present?
8
- end
9
- end