tramway 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
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