kadmin 0.6.21 → 0.7.0

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