tybo 0.2.6 → 0.3.1
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.
- checksums.yaml +4 -4
- data/app/components/index_header_export_component.html.erb +5 -1
- data/lib/generators/bo/bo_generator.rb +1 -1
- data/lib/generators/bo/templates/controller.rb +32 -0
- data/lib/generators/bo/templates/index.html.erb +1 -0
- data/lib/generators/bo/utils/files/fr.json +2 -1
- data/lib/generators/bo_namespace/bo_namespace_generator.rb +1 -1
- data/lib/generators/bo_namespace/templates/admin_controller.rb +1 -0
- data/lib/generators/tybo_install/tybo_install_generator.rb +2 -2
- data/lib/generators/tybo_install/utils/translations.rb +1 -0
- data/lib/tybo/version.rb +1 -1
- metadata +7 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f868105783b1c54829bbf63a1209da1025504e38a8252782e8839d97a2b0eeb2
|
4
|
+
data.tar.gz: 21eb809af4c857530d52dec15603b88ac90f442938d8c6b4a1ba1dc8b17520b8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3569dc6485aa60d1d355db5b00e61aed1d045efd2fc782d45c479a494207d4c2b959069becdbeeac0daaabda2ac574352ef0840fb428a0f681dd34247635b63d
|
7
|
+
data.tar.gz: 5421fefa7316175f47574bd8abeaac34016934e15f7ab75ffb51ec97728bf55188798c35e34851332604164605266a0636b1c998ea965c53692b208ee137db84
|
@@ -1,3 +1,7 @@
|
|
1
1
|
<div class="mt-4 mr-2 sm:flex-none">
|
2
|
-
<%= link_to I18n.t('bo.
|
2
|
+
<%= link_to I18n.t('bo.export_btn'),
|
3
|
+
@path,
|
4
|
+
id: 'exportBtn',
|
5
|
+
class: "inline-flex items-center justify-center rounded-md border border-transparent bg-tybo px-4 py-2 text-sm font-medium text-white shadow-sm hover:bg-tybo-700 focus:outline-none focus:ring-2 focus:ring-tybo-500 focus:ring-offset-2 sm:w-auto"
|
6
|
+
%>
|
3
7
|
</div>
|
@@ -38,7 +38,7 @@ class BoGenerator < Rails::Generators::NamedBase
|
|
38
38
|
return if rails_routes.any?("#{options[:namespace]}_#{plural_name}")
|
39
39
|
|
40
40
|
inject_into_file 'config/routes.rb', after: " namespace :#{options[:namespace]} do\n" do
|
41
|
-
" resources :#{plural_name}\n"
|
41
|
+
" resources :#{plural_name} do\n get 'export_csv', on: :collection\n end\n"
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
@@ -63,8 +63,40 @@ module <%= options[:namespace].camelize %>
|
|
63
63
|
redirect_to <%="#{options[:namespace]}_#{class_name.underscore.pluralize}_path"%>, status: :see_other
|
64
64
|
end
|
65
65
|
|
66
|
+
def export_csv
|
67
|
+
@<%= class_name.pluralize.underscore %> = fetch_authorized_<%= class_name.pluralize.underscore %>
|
68
|
+
csv_data = generate_csv_data
|
69
|
+
|
70
|
+
send_data csv_data,
|
71
|
+
type: 'text/csv; charset=utf-8; header=present',
|
72
|
+
disposition: "attachment; filename=#{I18n.t("bo.<%= class_name.underscore %>.other")}_#{Time.zone.now}.csv"
|
73
|
+
end
|
74
|
+
|
66
75
|
private
|
67
76
|
|
77
|
+
def fetch_authorized_<%= class_name.pluralize.underscore %>
|
78
|
+
authorized_scope(
|
79
|
+
<%=class_name%>.all,
|
80
|
+
with: Bo::Administrators::<%=class_name%>Policy
|
81
|
+
).ransack(params[:q]).result(distinct: true)
|
82
|
+
end
|
83
|
+
|
84
|
+
def generate_csv_data
|
85
|
+
CSV.generate(headers: true) do |csv|
|
86
|
+
csv << translated_headers
|
87
|
+
|
88
|
+
@<%= class_name.pluralize.underscore %>.each do |instance|
|
89
|
+
csv << <%=class_name%>.column_names.map { |col| instance.send(col) }
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
def translated_headers
|
95
|
+
<%=class_name%>.column_names.map do |col|
|
96
|
+
I18n.t("bo.<%=class_name.downcase%>.attributes.#{col}")
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
68
100
|
def set_<%= class_name.underscore %>
|
69
101
|
@<%= class_name.underscore %> = authorized_scope(
|
70
102
|
<%= class_name %>.all,
|
@@ -5,6 +5,7 @@
|
|
5
5
|
subtitle: I18n.t('bo.<%= class_name.underscore %>.subtitle').capitalize,
|
6
6
|
) do |header| %>
|
7
7
|
<%%= header.with_add_button(path: <%="new_#{options[:namespace]}_#{class_name.underscore}_path" %>) %>
|
8
|
+
<%%= header.with_export_button(path: <%= "export_csv_#{options[:namespace]}_#{class_name.pluralize.underscore}_path(format: :csv)"%>)%>
|
8
9
|
<%% end %>
|
9
10
|
|
10
11
|
<!-- Search Bar -->
|
@@ -43,7 +43,7 @@ class BoNamespaceGenerator < Rails::Generators::NamedBase
|
|
43
43
|
# devise_route = "devise_for :#{singular_name},\n path: '#{plural_name}',\n controllers: {\n sessions: 'custom_devise/sessions',\n passwords: 'custom_devise/passwords',\n registrations: 'custom_devise/registrations'\n }"
|
44
44
|
gsub_file('config/routes.rb', /devise_for :#{plural_name}/, "devise_for :#{plural_name}, path: '#{plural_name}'")
|
45
45
|
# route devise_route
|
46
|
-
route "# #{plural_name.capitalize}\nnamespace :#{plural_name} do\n root to: '#{plural_name}#index'\n resources :#{plural_name}\nend"
|
46
|
+
route "# #{plural_name.capitalize}\nnamespace :#{plural_name} do\n root to: '#{plural_name}#index'\n resources :#{plural_name} do\n get 'export_csv', on: :collection\n end\n\nend"
|
47
47
|
end
|
48
48
|
|
49
49
|
def remove_devise_registration
|
@@ -23,7 +23,7 @@ class TyboInstallGenerator < Rails::Generators::Base
|
|
23
23
|
|
24
24
|
def pin_js_dependencies
|
25
25
|
run "./bin/importmap pin tom-select --download"
|
26
|
-
run "./bin/importmap pin @tymate/
|
26
|
+
run "./bin/importmap pin @tymate/tybo_js"
|
27
27
|
end
|
28
28
|
|
29
29
|
def create_routes
|
@@ -39,7 +39,7 @@ class TyboInstallGenerator < Rails::Generators::Base
|
|
39
39
|
|
40
40
|
def add_javascript_controllers
|
41
41
|
inject_into_file 'app/javascript/controllers/application.js', after: "const application = Application.start()\n" do
|
42
|
-
"import { Dropdown, Flash, SearchForm, TsSearch, TsSelect } from \"@tymate/
|
42
|
+
"import { Dropdown, Flash, SearchForm, TsSearch, TsSelect } from \"@tymate/tybo_js\"\n"
|
43
43
|
end
|
44
44
|
|
45
45
|
inject_into_file 'app/javascript/controllers/application.js', before: "export { application }" do
|
@@ -9,6 +9,7 @@
|
|
9
9
|
'filters' => find_existing_translation('filters', locale),
|
10
10
|
'show' => find_existing_translation('show', locale),
|
11
11
|
'to' => find_existing_translation('to', locale),
|
12
|
+
'export_btn' => find_existing_translation('export_btn', locale),
|
12
13
|
'confirm_delete' => find_existing_translation('confirm_delete', locale),
|
13
14
|
'record' => {
|
14
15
|
'created' => find_existing_translation('created', locale),
|
data/lib/tybo/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tybo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michel Delpierre
|
8
8
|
- Julien Camblan
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-
|
12
|
+
date: 2023-10-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -17,20 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '7
|
21
|
-
- - ">="
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 7.0.4.3
|
20
|
+
version: '7'
|
24
21
|
type: :runtime
|
25
22
|
prerelease: false
|
26
23
|
version_requirements: !ruby/object:Gem::Requirement
|
27
24
|
requirements:
|
28
25
|
- - "~>"
|
29
26
|
- !ruby/object:Gem::Version
|
30
|
-
version: '7
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 7.0.4.3
|
27
|
+
version: '7'
|
34
28
|
- !ruby/object:Gem::Dependency
|
35
29
|
name: puma
|
36
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -287,7 +281,7 @@ licenses:
|
|
287
281
|
- MIT
|
288
282
|
metadata:
|
289
283
|
homepage_uri: https://rubygems.org/gems/tybo
|
290
|
-
post_install_message:
|
284
|
+
post_install_message:
|
291
285
|
rdoc_options: []
|
292
286
|
require_paths:
|
293
287
|
- lib
|
@@ -303,7 +297,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
303
297
|
version: '0'
|
304
298
|
requirements: []
|
305
299
|
rubygems_version: 3.4.10
|
306
|
-
signing_key:
|
300
|
+
signing_key:
|
307
301
|
specification_version: 4
|
308
302
|
summary: A tailwind custom admin engine for Ruby on Rails
|
309
303
|
test_files: []
|