kadmin 0.6.21 → 0.7.0

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
  SHA1:
3
- metadata.gz: 98456b6564d2ed7360237ee63add4224c3657332
4
- data.tar.gz: b5ab9f55d662438bd78d20a773fd1d6e9f0d69f5
3
+ metadata.gz: 7efabe35025636546f2808580039dda4b4644cc6
4
+ data.tar.gz: a17851a34c29e7b9fcf54032837636870b10ce11
5
5
  SHA512:
6
- metadata.gz: 492c06c2e1de2da68377bd30d0da378dadd9b2d8306525d2899ac879d8a5b13c412c7dab2aab020318fcc8edaa5ef7fe14799a264733aee19f6cf643044f81c7
7
- data.tar.gz: c51a21974ec0d7cd74fb3bba05c11e7b1c8100cd3783b084032a5385a7615bfb884261a759c408403e1728a4a2c7cef40a4c9980d8052e67db1bedb0e409f8b2
6
+ metadata.gz: 9e3dfa3064c02e13c4c8f90de06863c4ecffaaaf9b3770a2187e43fde85d5411330e5bffbc15418fb29d9b895c9e3f7ec13a15c39885ddb8e3fdf710fe75e223
7
+ data.tar.gz: 9b772293e19afd36b3d2d3042b6d6135f1953ec7771d56b273ce1c5732dad371edc6b2a3a1459c2caebe42fa0782000fd77d3aafecd3c9b9e410f8b2c69bc457
@@ -28,6 +28,8 @@ jQuery(document).ready(function() {
28
28
  }
29
29
 
30
30
  function transformResponse(data, params) {
31
+ data = transform(data, this.$element.data("kadmin--transform-response"));
32
+
31
33
  var items = data.data || data.items;
32
34
  var options = this.options.options.kadmin || {}; // weird but it is what it is
33
35
  var displayProperty = options.displayProperty || "text";
@@ -39,12 +41,10 @@ jQuery(document).ready(function() {
39
41
  results.push({ text: item[displayProperty], id: item[valueProperty] });
40
42
  });
41
43
 
42
- response = {
44
+ return {
43
45
  results: results,
44
46
  pagination: { more: data.more }
45
47
  };
46
-
47
- return transform(response, this.$element.data("kadmin--transform-response"));
48
48
  }
49
49
 
50
50
  function optionsForSelect2(element) {
@@ -46,6 +46,7 @@ module Kadmin
46
46
  status: :internal_server_error,
47
47
  error: error
48
48
  }.merge(options)
49
+ binding.pry
49
50
  render 'kadmin/error', status: options[:status], locals: options
50
51
  end
51
52
 
@@ -53,10 +54,11 @@ module Kadmin
53
54
 
54
55
  # @!group Helpers
55
56
 
57
+ protected
58
+
56
59
  def set_default_format
57
60
  params[:format] = 'html' if params[:format].blank?
58
61
  end
59
- protected :set_default_format
60
62
 
61
63
  # @!endgroup
62
64
  end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kadmin
4
+ module Concerns
5
+ module Resources
6
+ extend ActiveSupport::Concern
7
+
8
+ # Default finder page size
9
+ DEFAULT_FINDER_PAGE_SIZE = 100
10
+
11
+ # Does not return anything, but will modify your finder instance.
12
+ # @param [Kadmin::Finder] finder the finder to respond with
13
+ # @param [Array<String>] filters an array of filters, of format: { name:, column:, param: }
14
+ def resources_finder(scope, filters = [])
15
+ filters = Array.wrap(filters)
16
+ filter_params = filters.map { |hash| hash[:param] }
17
+ permitted = params.permit(:page_size, :page_offset, :format, *filter_params)
18
+
19
+ page_size = permitted.fetch(:page_size, DEFAULT_FINDER_PAGE_SIZE).to_i
20
+ page_offset = permitted.fetch(:page_offset, 0).to_i
21
+
22
+ finder = Kadmin::Finder.new(scope)
23
+ finder.paginate(size: page_size, offset: page_offset)
24
+ filters.each do |filter|
25
+ finder.filter(name: filter[:name], column: filter[:column], value: permitted[filter[:param]])
26
+ end
27
+
28
+ return finder.present
29
+ end
30
+ end
31
+ end
32
+ end
@@ -1,7 +1,6 @@
1
- <% hide_create_button = false if local_assigns[:hide_create_button].nil? %>
2
1
  <div class='card finder'>
3
2
  <div class='card-block'>
4
- <%= render partial: 'kadmin/components/finder/header', locals: { finder: finder, hide_create_button: hide_create_button } %>
3
+ <%= render partial: 'kadmin/components/finder/header', locals: local_assigns %>
5
4
  <div class='container-fluid'>
6
5
  <div class='row' style='padding-top: 15px'>
7
6
  <%= yield(finder.results) %>
@@ -0,0 +1,9 @@
1
+ {
2
+ "more": <%= finder.pager.next_page? %>,
3
+ "items":
4
+ <% if block_given? %>
5
+ [ <%= safe_join(finder.results.map { |object| capture { yield(object) } }, ',') %> ]
6
+ <% else %>
7
+ <%= raw(finder.results.map(&:attributes).to_json) %>
8
+ <% end %>
9
+ }
@@ -1,6 +1,6 @@
1
1
  <%= form_tag(request.fullpath, method: 'get', class: 'form-inline pull-right') do %>
2
2
  <div class='form-group'>
3
- <% unless hide_create_button %>
3
+ <% unless local_assigns.fetch(:hide_create_button, false) %>
4
4
  <%= link_to(t('kadmin.components.finder.create'), url_for(action: :new), class: 'btn btn-primary', style: 'margin-right: 20px') %>
5
5
  <% end %>
6
6
  <% finder.filters.each do |name, filter| %>
@@ -8,7 +8,7 @@
8
8
  )
9
9
  <% end %>
10
10
  <% if finder.filters.present? %>
11
- <%= render partial: 'kadmin/components/finder/form', locals: { finder: finder, hide_create_button: hide_create_button } %>
11
+ <%= render partial: 'kadmin/components/finder/form', locals: local_assigns %>
12
12
  <% end %>
13
13
  </h3>
14
14
  </div>
@@ -0,0 +1,5 @@
1
+ {
2
+ "title": "<%= title %>",
3
+ "message": "<%= message %>",
4
+ "status": <%= status %>
5
+ }
@@ -1,3 +1,3 @@
1
1
  module Kadmin
2
- VERSION = '0.6.21'.freeze
2
+ VERSION = '0.7.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kadmin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.21
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicolas Pepin-Perreault
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-08-16 00:00:00.000000000 Z
13
+ date: 2017-08-28 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -119,16 +119,19 @@ files:
119
119
  - app/controllers/kadmin/application_controller.rb
120
120
  - app/controllers/kadmin/auth_controller.rb
121
121
  - app/controllers/kadmin/concerns/authorized_user.rb
122
+ - app/controllers/kadmin/concerns/resources.rb
122
123
  - app/controllers/kadmin/dash_controller.rb
123
124
  - app/helpers/kadmin/alert_helper.rb
124
125
  - app/helpers/kadmin/application_helper.rb
125
126
  - app/helpers/kadmin/bootstrap_helper.rb
126
127
  - app/views/kadmin/auth/login.html.erb
127
128
  - app/views/kadmin/components/_finder.html.erb
129
+ - app/views/kadmin/components/_finder.js.erb
128
130
  - app/views/kadmin/components/finder/_form.html.erb
129
131
  - app/views/kadmin/components/finder/_header.html.erb
130
132
  - app/views/kadmin/dash/index.html.erb
131
133
  - app/views/kadmin/error.html.erb
134
+ - app/views/kadmin/error.js.erb
132
135
  - app/views/kadmin/helpers/_alerts.html.erb
133
136
  - app/views/kadmin/helpers/_form_errors.html.erb
134
137
  - app/views/layouts/kadmin/application.html.erb