activeadmin_dynamic_table 0.1.0 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ec7d176dc20e3cb34be2eae984bf87e6c790a3fa79bc61fde512e27b67ce15c9
4
- data.tar.gz: bcc2afb91378be40321f206d2ac9d8d284ed22ad213864d1540f542f090e25f1
3
+ metadata.gz: ba7175e5769ce38921f670c993df131448bc7b1b87087abd1d58befb05ea5df0
4
+ data.tar.gz: bfe6d0ca3328fe82c084a5c283b59bf8719c7114350aee2bbc76eed8879f6a49
5
5
  SHA512:
6
- metadata.gz: ab184ef277fda19e363634353292983632793e88009ebdd08a071b9f92c226d1bce53461dc43f9c1f42fa19c4a8f1ef954befcd0370b2723b8c6d73b4667f1cf
7
- data.tar.gz: e550f74ca22cd8099454e7790c0119803f8a07bb823282c42b9b7aa6d1249a24e4e4f87e6acc0315e39c7acd06a5e0c08f40920e76337750fd2f44c80ef36436
6
+ metadata.gz: f45638282a9d3eae1f882128623ee1a43afad08194ef05af73fd28435f85ffc4615415d6d4bb153ef8ffe5b2953dde6b51d301abbf9d125ca9e5fb43dc3a3faa
7
+ data.tar.gz: 04ef3684e999f357f3e600b1a10c7d1e9a7bc5c2507d0b57573ac6ce7c790e71fbbeddf2d3236784cb89cad7955a03a77029f4b45806c6a64f99b8df84722c93
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- activeadmin_dynamic_table (0.1.0)
4
+ activeadmin_dynamic_table (0.1.1)
5
5
  activeadmin (~> 2.9)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -1,8 +1,13 @@
1
1
  # ActiveadminDynamicTable
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/activeadmin_dynamic_table`. To experiment with that code, run `bin/console` for an interactive prompt.
3
+ This is an [ActiveAdmin](https://github.com/activeadmin/activeadmin) extansion which allows to manage index table columns from the activeadmin UI.
4
4
 
5
- TODO: Delete this and the text above, and describe your gem
5
+ ## Goals
6
+ - Show/hide table columns from UI
7
+ - Resize columns
8
+ - Reorder columns
9
+
10
+ <img src="demo.gif" width="800" height="600">
6
11
 
7
12
  ## Installation
8
13
 
@@ -20,19 +25,77 @@ Or install it yourself as:
20
25
 
21
26
  $ gem install activeadmin_dynamic_table
22
27
 
28
+ Add at the end of your ActiveAdmin styles (app/assets/stylesheets/active_admin.scss):
29
+
30
+ ```scss
31
+ @import 'activeadmin_dynamic_table/all';
32
+ ```
33
+
34
+ Add at the end of your ActiveAdmin javascripts (app/assets/javascripts/active_admin.js):
35
+
36
+ ```
37
+ //= require activeadmin_dynamic_table/config
38
+ ```
39
+
23
40
  ## Usage
24
41
 
25
- TODO: Write usage instructions here
42
+ For `index` block specify `dynamic_table` to be used instead of default `table`
43
+
44
+ ```ruby
45
+ index as: :dynamic_table do
46
+ # ...
47
+ end
48
+ ```
49
+
50
+ Inside configuration block register columns that will be configurable through UI
51
+
52
+ ### register_column
26
53
 
27
- ## Development
54
+ Method follows standard `column` dsl but also requires to provide at least `key` among options. This is key of the column in the provided URL params to detect whether or not column should be rendered.
28
55
 
29
- After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
56
+ `default: true` - specify column should be rendered by default (when columns are not specified in url params)
57
+ `width: 100` - default width of the column if it's not specified in the url params
30
58
 
31
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
59
+ ### register_id_column
60
+
61
+ Method follows standard `id_column` dsl but also requires to provide at least `key` among options.
62
+ All other options are the same as for `register_column`
63
+
64
+ ### register_actions
65
+
66
+ Method follows standard `column` dsl but also requires to provide at least `key` among options.
67
+ All other options are the same as for `register_column`
68
+
69
+ Expample:
70
+
71
+ ```ruby
72
+ index as: :dynamic_table do
73
+ selectable_column
74
+
75
+ register_id_column 'Student ID', key: :id, default: true, width: 30
76
+
77
+ register_column :name, key: :name, default: true, width: 200, &:full_name
78
+ register_column :user_phone, key: :phone, default: true, width: 200, &proc { |st| link_to st.phone, user_path(st.user) }
79
+
80
+ register_column :teacher, key: :teacher, default: true, width: 200
81
+ register_column :country, key: :country, width: 150
82
+ register_column :updated_at, key: :updated_at, width: 100
83
+
84
+ register_column 'LPD', key: :lpd, &proc { |st| st.last_payment_date&.strftime('%d.%m.%y %H:%M') }
85
+
86
+ register_column 'SC', key: :sc, width: 200, default: true do |student|
87
+ student.schedule_slots.map do |slot|
88
+ "#{slot.day_of_week.capitalize}: #{slot.time_slot.utc.strftime('%H:%M')}"
89
+ end.join(', ')
90
+ end
91
+
92
+ register_actions 'Actions', key: :actions, default: true, width: 130
93
+ end
94
+ ```
32
95
 
33
96
  ## Contributing
34
97
 
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/activeadmin_dynamic_table.
98
+ Bug reports and pull requests are welcome on GitHub at https://github.com/amdj15/activeadmin_dynamic_table.
36
99
 
37
100
  ## License
38
101
 
@@ -8,16 +8,14 @@ Gem::Specification.new do |spec|
8
8
  spec.authors = ["Anton Biliaiev"]
9
9
  spec.email = ["amdj15@gmail.com"]
10
10
 
11
- spec.summary = ""
12
- spec.description = ""
13
- spec.homepage = ""
11
+ spec.summary = "Config activeadmin index tables on demand"
12
+ spec.description = "Allow to controll activeadmin table columns from the UI. (Show/hide/resize/reorder table columns)"
13
+ spec.homepage = "https://github.com/amdj15/activeadmin_dynamic_table"
14
14
  spec.license = "MIT"
15
15
  spec.required_ruby_version = ">= 2.6.0"
16
16
 
17
- # spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'"
18
- # spec.metadata["homepage_uri"] = spec.homepage
19
- # spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here."
20
- # spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
17
+ spec.metadata["homepage_uri"] = spec.homepage
18
+ spec.metadata["source_code_uri"] = spec.homepage
21
19
 
22
20
  # Specify which files should be added to the gem when it is released.
23
21
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -7,7 +7,9 @@
7
7
  }
8
8
 
9
9
  .col-table-preferences {
10
- cursor: pointer;
10
+ span {
11
+ cursor: pointer;
12
+ }
11
13
  }
12
14
 
13
15
  .dynamic_table_configuration {
data/demo.gif ADDED
Binary file
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveadminDynamicTable
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activeadmin_dynamic_table
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Biliaiev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-01-28 00:00:00.000000000 Z
11
+ date: 2024-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activeadmin
@@ -24,7 +24,8 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.9'
27
- description: ''
27
+ description: Allow to controll activeadmin table columns from the UI. (Show/hide/resize/reorder
28
+ table columns)
28
29
  email:
29
30
  - amdj15@gmail.com
30
31
  executables: []
@@ -42,6 +43,7 @@ files:
42
43
  - app/assets/stylesheets/activeadmin_dynamic_table/all.scss
43
44
  - bin/console
44
45
  - bin/setup
46
+ - demo.gif
45
47
  - lib/activeadmin_dynamic_table.rb
46
48
  - lib/activeadmin_dynamic_table/column_settings.rb
47
49
  - lib/activeadmin_dynamic_table/configurator.rb
@@ -49,10 +51,12 @@ files:
49
51
  - lib/activeadmin_dynamic_table/version.rb
50
52
  - lib/activeadmin_dynamic_table/views/index_as_dynamic_table.rb
51
53
  - sig/activeadmin_dynamic_table.rbs
52
- homepage: ''
54
+ homepage: https://github.com/amdj15/activeadmin_dynamic_table
53
55
  licenses:
54
56
  - MIT
55
- metadata: {}
57
+ metadata:
58
+ homepage_uri: https://github.com/amdj15/activeadmin_dynamic_table
59
+ source_code_uri: https://github.com/amdj15/activeadmin_dynamic_table
56
60
  post_install_message:
57
61
  rdoc_options: []
58
62
  require_paths:
@@ -71,5 +75,5 @@ requirements: []
71
75
  rubygems_version: 3.1.4
72
76
  signing_key:
73
77
  specification_version: 4
74
- summary: ''
78
+ summary: Config activeadmin index tables on demand
75
79
  test_files: []