kadmin 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/helpers/kadmin/pagination_helper.rb +1 -1
- data/lib/kadmin.rb +3 -0
- data/lib/kadmin/finder.rb +57 -0
- data/lib/kadmin/form.rb +1 -1
- data/lib/kadmin/pager.rb +82 -0
- data/lib/kadmin/version.rb +1 -1
- data/test/dummy/app/controllers/admin/application_controller.rb +11 -0
- data/test/dummy/app/controllers/admin/groups_controller.rb +0 -0
- data/test/dummy/app/controllers/admin/persons_controller.rb +86 -0
- data/test/dummy/app/views/admin/persons/_form.html.erb +0 -0
- data/test/dummy/app/views/admin/persons/edit.html.erb +0 -0
- data/test/dummy/app/views/admin/persons/index.html.erb +0 -0
- data/test/dummy/app/views/admin/persons/new.html.erb +0 -0
- data/test/dummy/config/routes.rb +7 -3
- data/test/dummy/log/development.log +393 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/-2/-2HjYbMRby-CwTDE7jk4lgNd3X-l5tHSk4A5UzXzrz0.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/-E/-E8hxZ6OimFAVoaq-ht5ACFfHh65ARRQ9Mb-zTeA5H8.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/-_/-_GyWOMxsUj1Vcwf_522X6jS5CyLaFUziq4bW17lZAw.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/-r/-r0OPtWop7e-i6aqm5Z9zWo9gHXFypWEP1MYcBokwMA.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/11/11SrJ22TDT3o5ArL97bHJR-ITSG0RNL-Ea36RCQV0XQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/1v/1vA0wPw0oVAyJv-VQobqbmEDrLurYRWV4THCWLfzLoQ.cache +3 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/3c/3cghbNCfivQK44JxoMoCPOiw1Vcc07mUX8AsN0nfdGg.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/5E/5EK4YMOiNjfof61fycHKHeTg9YQvAvkhSKjWLEjuglk.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/5L/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/5X/5X5Ap1XOYPJqjTBnphJksdHxO2xnQXMmoILKMllPuFU.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/5m/5mtdWqMi8vbaQoUKpJ6h58QXzdOfczoeIbu_2VY6kEk.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/6K/6KVInstMdXQzYrg2I6GWoOxR7U_0wWzeBnsWEvg8J3M.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/6S/6SHOn6gX8LwD8NmftjKNw-BtmJBgL4Xx0hmW1RgBxdk.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/7v/7vp0pszBWSYyAY0Tz4ZHI9eX6GU4etWfK0D6GF7gLTY.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/8F/8FV04EdmYtfXyf3Ktwdfqj5SJ-kEEQQOmvrzE-hrqig.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/8F/8FXsR_p1ch9E_ae2wsJWUnHL6MxAbITe2I14tExB3Ec.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/8P/8PiD2jpkOTKwCqmTucDpZfcaYIoDaLpRmCTDikmBAMk.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/AD/ADjuF7qlW-VJcrkl1TCQhPDGvPeugjWk0reLQCK2gDI.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/AK/AKh8PXD1zgb2pdxirj252TVteTypvd4JLXRf_dQfmKk.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/B4/B4E3KRrOxNPSEX-9Ugyv9uaAY3gIW2c2730GkDSdEtE.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/EM/EMa_S-cjtjY8YOtd4L6izIK8FNfQPBISCjmwrYeilXk.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Eo/Eo00KDTHIwB2VlsZf4O0IHAC0zp8jSuVqe-scWtAjn0.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Fj/Fj9wk3WG0X_LuTI9jEPYY2HU5btm59aOpbx1afwZy4M.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/GF/GF3FBYfVQk64OkuJbBl2h63bZN9hYzPIBtVhNwVs4MY.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/GI/GILdEr9hblYezO2NmQP4NzxoA1pW2P-_HWZcr0IwNe8.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/JR/JRLYN2dARxj66xZ7WU5-LfR8WCTxOw21DHHpwVNlu8k.cache +5 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Jc/JcSljJd7QjwNSL4TRtvRNz65r3PiRZ8VJ_itLYWgiw0.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Je/Je2odU6RuxXpO5e6xD_7Vm3_QKBj21A4Eb5Xe_3tcmE.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Jf/Jf8eGGgzDrZIH9psuQTMsOXOfSnfXnkuFyWLTd2TbEk.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/KM/KM9biR7CwnS-iyvtFSieT4mpV0Yq3PAzDPh4BkBuitk.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/LJ/LJN964xN-evJQCr_R906196saBvCUBqdNEo1HbeKoqo.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/LU/lUq0r6fdSX67R3L3fN37itzZ8ThNiKY2pSz4mt0hhHQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Le/LeUQdG0D7O4lxvySURbAaoGowjdY-WmNqf3Mfqrfxyg.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Mr/MrTfw8APk-gyKkw845UfDSHEmjSmlyecpb4qghVCsJc.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/OI/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/QR/QRwUeu2lR_fh0S1COd57cS_0HzJLvVvAfX2b7wdgq9E.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/QW/QWTzvJsN-St1M5X7c0iPtNpfrg3jbt6DKvSIfrvg1Xo.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Re/ReGBPYTMVGc5UsM5L7KB0_3B13aNUqF-fsr2inoeNsE.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Rp/Rpze3DS02RzORY0sa58XN-eCPxEpCNWzdMzJHX3PPCc.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/SM/SMgGnRKtH1iPOR1Rr4jeYv8FXJD6NfEInNJkgh44-h0.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/TS/TSxUS1m35WV62C8Ns3ZFB34VDTAJZFE9j8sIvFjJ34g.cache +5 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Tr/TrpGZkuLXDxCiZNsH9rPQUuPXTiKIHKtPFEkVvqUSdU.cache +4 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/UB/UBqrW0q1xgxd0LgpdhEN2rIkgx311VLn1E4J8xTehS8.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/UY/UYkqW8Qk-RYuenP9AA1t0qrUGElEFrX70S5Z98vIf-o.cache +3 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/U_/U_4FnN2FfvOfugPWddXzWbw4DHmvFBUs5OsmFiPkiOE.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Vw/Vw4dSgF0h0cmaCSTiVWdLSTRFpOKkeU3pHBBdvxMFtQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/WN/WN9LSGmlySXuqyBDltZaSgTQId_fBr7tszD5QBdx6as.cache +4 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/X9/X9q2gGamGd5n5DLvpqdgA0yXRVz9_DWFChihiNYYFMo.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/XF/XFAZTK0FYqKi-VAo7wBhb0qmjdyryXXZ-7ngyMKtpfk.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/XG/XG2LAoElu3yFQXjnrTK-AHdNi5aX19chAKrEfMKFtTU.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Y9/Y9nCQQIgQsTdjgKu5AciGNFhclfbFHR7_sZ3-1meqxY.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/ZL/ZL89Pj7x95nCdeZtpp_31rhNpmaOS1YY6vaNZP2WtIY.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/aa/aaI8WDVOjLkqpVJtZyxmaV0Ru-gx2JOYGNJN3DruFlY.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/bH/bHLekJe4OFtBYonKEfS65V6aWHD2knMb-ClTgZOip-g.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/bS/bSgsBjtu-Y7WrxesKqith5xy2XjVTuWXEGghmr4rivk.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/br/br7hrpCNcrm7KR7vVkj13rI-f1RiauXbXgD9VbBI6RE.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/br/brn0WV626bUtP2mU86iYCgWpaHzMFJQ13RgmXaDjeq4.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/c9/C9xBy-OdhnODNhOzAOFhLTbcYOoB4EioR5LptxwvkUQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/eQ/eQWn4vC7aRx4Y2aDQRmUvCE5wEWZz6exOeDUs3bTYN4.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/ed/edWZZcjeQS8RikaC_mEOMPS3UouUuaWUTLs_xITZyIs.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/f6/f6M3kAL7aMbibGjJss7EfrMqNY_B2aLlGidMK-F9QFY.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/g5/g561cCJ02dyuteLibfkiC5SNvKXoYe-pYktOT6C__70.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/hZ/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/ha/haYOUyt5JRK5bGjubStgXfKTHFnf8_2iv0iN-Y30aHc.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/hv/hv0lgWWTtx1-VMIag9WFrPh-lQol_RVLcJA6EznjGRk.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/iA/iAUmEEgZxyXBF7Q3JUzYO6VF_hUcAy9WBGWrO8FBs94.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/lY/LYL55Pi6vnSDQ3iOktqbsTgZEaKIno8IBN3be_nwM5c.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/lY/LYb7LJEULabV45Z9punrLTmjttI1vKPMoIeWQndAmaU.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/m2/m2ooo6C8yP1WOv12MfbvdH6OYOArlpVmrWYcWXXW4aQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/mq/mqXDp-fAKgt19ulbEzOXo6DdsDq2Sq8mUjERjj_ubeY.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/o0/o0fvPxdmhDOI8sS59RdhHJauHXfn15Fkyj3IamJoCSc.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/pE/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/pL/pLFfHJgRLnMnJCB5QltUHOjJbtA2wjXXyDGPZedbyRA.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/pa/paqNgBYCkw0rEQFxOkV0hAQm4EE8TMsjcOsITksk_2M.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/pd/PDCyll73DKdKcTnGTebiyoY4BhSMElDW378tTa8eHSc.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/pd/pdUxdFTgb3YAZKNEVaEeQnZb97lA1Ew2o5PybzVUm4A.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/pw/pw-vQJukxf5ufqJunKWowupXuYv2XV1kAOxKltIkSuM.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/ri/riMaEi70pbOAROVA_sDeCIgDUQHNLgZ0CcFtaoPQUN8.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/rs/rs29jYXdRVDaE8LFpPP5sue1m6VBOjzSSSmbj3w0R7g.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/sK/sKfUi0-HbSWcqtguY1lJhNdX-evf5_LMTcOOdFhOIco.cache +4 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/sz/szmBNR1H1DygmcGPID8zNIcbmrO1vGqzHYRGuc5u7-c.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/tU/tU-Tu9-noE-IHLvRNqvK_woXM1aNYteaOPgUhxs6YLU.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/tq/tqXoYuJiHJnkCpau1HYEYtY2-wDz7t8r5iGWAbGMlu0.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/wD/wDcCsc6hXZcj30Tt2oEu81vheWFzK0QaFnvQMZMGR4A.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/wQ/wQZeIXz8XzLJqkIuny4tEGMxrqJttMCiiPe5sg2kV4U.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/wo/woi16qt5oc0y3TT4Wynsah4txzpgkIum8AqwR8-eSW0.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/xJ/xJB6l0maG-NSSTY2ojO_ISRuAnQQ3XH9HoBS1BTecMc.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/y7/y7rODAuztmvstdGLcihv_rSwUM0unmpxshTZ2NYl9EQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/zQ/zQfrKzck6RKqYFUfKWT4m168XkPB0bFfxD-vJFHwzBs.cache +0 -0
- metadata +163 -2
- data/app/controllers/rails_admin/application_controller.rb +0 -58
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e9d50b4cc493eab605ce1ba63e1652c57f4cebda
|
4
|
+
data.tar.gz: 916d45a69e5a1e2a751a8bae2e87237e42ea2e15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ce32466d84c80136a4bc37543bb5d34c1b73792a02a8d7b6cfc2022b924aff030d90a7f0d2126658f8166b7d5a8264f145907dd94effac247404f33ca5a4dac
|
7
|
+
data.tar.gz: 861b60839df2cf82d6e338869d4157d35a641eab80d05680aa7a8672ed0968ecc1ed277bdbe22667309207cb49a0c2189c25da1ff7c31940934ab4a37300f6e3
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Kadmin
|
2
2
|
|
3
|
-
[![GitHub release](https://img.shields.io/badge/release-0.1.
|
3
|
+
[![GitHub release](https://img.shields.io/badge/release-0.1.7-blue.png)](https://github.com/barcoo/kadmin/releases/tag/0.1.7)
|
4
4
|
|
5
5
|
Collection of utility, configuration, etc., for admin areas in different projects.
|
6
6
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Kadmin
|
2
2
|
module PaginationHelper
|
3
|
-
# @param [Kadmin::
|
3
|
+
# @param [Kadmin::Pager] pager context to paginate
|
4
4
|
# @param [Array<Integer>] sizes array of page sizes
|
5
5
|
def paginate(pager, sizes)
|
6
6
|
return content_tag(:div, pagination_page_list(pager) + pagination_size_list(pager, sizes), class: 'btn-toolbar')
|
data/lib/kadmin.rb
CHANGED
@@ -0,0 +1,57 @@
|
|
1
|
+
module Kadmin
|
2
|
+
class Finder
|
3
|
+
# @return [Kadmin::Pager] the pager to use (if any)
|
4
|
+
attr_reader :pager
|
5
|
+
|
6
|
+
# @return [Array<Kadmin::Finder::Filter>] array of filters applied to the finder
|
7
|
+
attr_reader :filters
|
8
|
+
|
9
|
+
# @return [ActiveRecord::Relation] the base relation to find items from
|
10
|
+
attr_reader :scope
|
11
|
+
|
12
|
+
# Simple filter structure
|
13
|
+
Filter = Struct.new(:column, :value)
|
14
|
+
|
15
|
+
# @param [ActiveRecord::Relation] scope base relation to page/filter on
|
16
|
+
def initialize(scope)
|
17
|
+
@scope = scope
|
18
|
+
@pager = nil
|
19
|
+
@filters = {}
|
20
|
+
end
|
21
|
+
|
22
|
+
# @param [String] name the filter name (should be unique)
|
23
|
+
# @param [String, Array<String>] column the column(s) name to filter on
|
24
|
+
# @param [String, Array<String>] value the value or values to look for (OR'd)
|
25
|
+
def filter(name:, column:, value:)
|
26
|
+
if column.present? && value.present? && !@filters.key?(name)
|
27
|
+
@filters[name] = Kadmin::Finder::Filter.new(column, value)
|
28
|
+
@scope = @scope.where("#{@scope.table_name}.`#{column}` LIKE ?", value.tr('*', '%'))
|
29
|
+
@pager&.total = @scope.count
|
30
|
+
end
|
31
|
+
|
32
|
+
return self
|
33
|
+
end
|
34
|
+
|
35
|
+
# @param [Integer] offset optional; offset/index for the current page
|
36
|
+
# @param [Integer] size optional; size of a page
|
37
|
+
# @return [Kadmin::Finder] itself
|
38
|
+
def paginate(offset: nil, size: nil)
|
39
|
+
offset = offset.to_i
|
40
|
+
size = size.to_i
|
41
|
+
|
42
|
+
if size.positive? && offset >= 0
|
43
|
+
@pager = Kadmin::Pager.new(size: size, offset: offset)
|
44
|
+
end
|
45
|
+
|
46
|
+
return self
|
47
|
+
end
|
48
|
+
|
49
|
+
# @return [ActiveRecord::Relation] the filtered (and optionally paginated) results
|
50
|
+
def find
|
51
|
+
results = @scope
|
52
|
+
results = @pager.page(results) unless @pager.nil?
|
53
|
+
|
54
|
+
return results
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
data/lib/kadmin/form.rb
CHANGED
data/lib/kadmin/pager.rb
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
module Kadmin
|
2
|
+
# Simple Pager structure, used to paginate collections
|
3
|
+
class Pager
|
4
|
+
# @return [Integer] number of items per page
|
5
|
+
attr_reader :size
|
6
|
+
|
7
|
+
# @return [Integer] current index offset (determines current page)
|
8
|
+
attr_reader :offset
|
9
|
+
|
10
|
+
# @return [Integer] total number of pages
|
11
|
+
attr_reader :pages
|
12
|
+
|
13
|
+
# @return [Integer] the current page
|
14
|
+
attr_reader :current_page
|
15
|
+
|
16
|
+
# @return [Integer] total number of items in the collection
|
17
|
+
attr_reader :total
|
18
|
+
|
19
|
+
# @param [Integer] size size of a page
|
20
|
+
# @param [Integer] offset offset/index for the current page
|
21
|
+
def initialize(size:, offset:)
|
22
|
+
@size = size
|
23
|
+
@offset = offset
|
24
|
+
|
25
|
+
raise(Kadmin::Error, 'Page size must be greater than 0!') unless @size.positive?
|
26
|
+
raise(Kadmin::Error, 'Offset must be at least 0!') unless @offset >= 0
|
27
|
+
|
28
|
+
@current_page = (@offset / @size.to_f).floor
|
29
|
+
self.total = @size # assume page size is maximum initially
|
30
|
+
end
|
31
|
+
|
32
|
+
# @param [ActiveRecord::Relation] collection relation to paginate
|
33
|
+
# @return [ActiveRecord::Relation] paginated collection
|
34
|
+
def page(collection)
|
35
|
+
self.total = collection.count
|
36
|
+
|
37
|
+
collection = collection.offset(@offset)
|
38
|
+
collection = collection.limit(@size)
|
39
|
+
|
40
|
+
return collection
|
41
|
+
end
|
42
|
+
|
43
|
+
# @param [Integer] page the page to get the offset for
|
44
|
+
# @return [Integer] start offset for the given page
|
45
|
+
def offset_at(page)
|
46
|
+
return @size * page
|
47
|
+
end
|
48
|
+
|
49
|
+
# @param [Integer] page the page to check for
|
50
|
+
# @return [Boolean] true if `page` is the current page
|
51
|
+
def current_page?(page)
|
52
|
+
return page == @current_page
|
53
|
+
end
|
54
|
+
|
55
|
+
# @param [Integer] page the page to check for
|
56
|
+
# @return [Boolean] true if `page` exists (i.e. would have any data)
|
57
|
+
def contains?(page)
|
58
|
+
page.in?(0...@pages)
|
59
|
+
end
|
60
|
+
|
61
|
+
# @param [Integer] total sets the number of total collection items (not total loaded)
|
62
|
+
def total=(total)
|
63
|
+
@total = total
|
64
|
+
@pages = (@total / @size.to_f).ceil
|
65
|
+
end
|
66
|
+
|
67
|
+
# @param [Integer] page optional; if given, checks if the page after would have any data, otherwise checks based on the current page
|
68
|
+
# @return [Boolean] true if there is a next page
|
69
|
+
def next_page?(page = nil)
|
70
|
+
page ||= @current_page
|
71
|
+
return offset_at(page.to_i + 1) < @total
|
72
|
+
end
|
73
|
+
|
74
|
+
# @param [Integer] page optional; if given, checks if the page after would have any data, otherwise checks based on the current page
|
75
|
+
# @return [Boolean] true if there is a previous page
|
76
|
+
def previous_page?(page = nil)
|
77
|
+
page ||= @current_page
|
78
|
+
|
79
|
+
return page.to_i.positive?
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
data/lib/kadmin/version.rb
CHANGED
File without changes
|
@@ -0,0 +1,86 @@
|
|
1
|
+
module Admin
|
2
|
+
class PersonsController < Admin::ApplicationController
|
3
|
+
MAX_PAGE_SIZE = 200
|
4
|
+
|
5
|
+
# GET /admin/jobs
|
6
|
+
def index
|
7
|
+
params.permit(:page_size, :page_offset, :filter_name, :format)
|
8
|
+
|
9
|
+
page_size = [params.fetch(:page_size, 15).to_i, MAX_PAGE_SIZE].min # fix 200 as maximum size
|
10
|
+
|
11
|
+
@finder = Kadmin::Finder.new(Kadmin::Person.includes(:groups, :owned_groups).order(created_at: :desc))
|
12
|
+
@persons = @finder.filter(name: :name, column: [:first_name, :last_name], value: params[:filter_name])
|
13
|
+
.paginate(size: page_size, offset: params.fetch(:page_offset, 0))
|
14
|
+
.find
|
15
|
+
end
|
16
|
+
|
17
|
+
# GET /admin/persons/:id
|
18
|
+
def show
|
19
|
+
@person = load_person
|
20
|
+
end
|
21
|
+
|
22
|
+
# GET /admin/persons/edit/:id
|
23
|
+
def edit
|
24
|
+
@person ||= load_person
|
25
|
+
@person_form ||= person_form
|
26
|
+
end
|
27
|
+
|
28
|
+
# PUT /admin/persons/:id
|
29
|
+
# PATCH /admin/persons/:id
|
30
|
+
def update
|
31
|
+
@person = load_person
|
32
|
+
@person_form = person_form
|
33
|
+
|
34
|
+
if form.valid?
|
35
|
+
redirect_to(admin_person_path(person.id))
|
36
|
+
else
|
37
|
+
edit
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# GET /admin/persons/new
|
42
|
+
def new
|
43
|
+
@person ||= Person.new
|
44
|
+
@person_form ||= person_form
|
45
|
+
end
|
46
|
+
|
47
|
+
# POST /admin/persons
|
48
|
+
def create
|
49
|
+
@person = Person.new
|
50
|
+
@person_form = person_form
|
51
|
+
|
52
|
+
if @person_form.valid?
|
53
|
+
redirect_to(admin_person_path(@person.id))
|
54
|
+
else
|
55
|
+
new
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
# DELETE /admin/persons/:id
|
60
|
+
def destroy
|
61
|
+
@person = Person.new
|
62
|
+
name = [@person.last_name, @person.first_name].join(', ')
|
63
|
+
|
64
|
+
@person.destroy # only fails when it raises an exception
|
65
|
+
flash[:success] = "Successfully deleted #{name}"
|
66
|
+
|
67
|
+
redirect_to admin_persons_path
|
68
|
+
end
|
69
|
+
|
70
|
+
# @!group Helpers
|
71
|
+
|
72
|
+
def load_person
|
73
|
+
params.require(:id)
|
74
|
+
id = params[:id].to_i
|
75
|
+
return Person.includes(:groups, :owned_groups).find(id)
|
76
|
+
end
|
77
|
+
private :load_person
|
78
|
+
|
79
|
+
def person_form
|
80
|
+
return Forms::PersonForm.new(@person)
|
81
|
+
end
|
82
|
+
private :person_form
|
83
|
+
|
84
|
+
# @!endgroup
|
85
|
+
end
|
86
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/test/dummy/config/routes.rb
CHANGED
@@ -1,10 +1,14 @@
|
|
1
1
|
Rails.application.routes.draw do
|
2
2
|
mount Kadmin::Engine => Kadmin.config.mount_path, as: :kadmin
|
3
3
|
|
4
|
-
get '/', to: -> (_env) do
|
5
|
-
[200, { 'Content-Type' => 'text/plain' }, ['
|
4
|
+
get '/', to: -> (_env) do # rubocop: disable Style/Lambda
|
5
|
+
[200, { 'Content-Type' => 'text/plain' }, ['Howdy']]
|
6
|
+
end
|
7
|
+
|
8
|
+
namespace :admin do
|
9
|
+
resources :persons
|
10
|
+
resources :groups
|
6
11
|
end
|
7
12
|
|
8
|
-
get '/admin', controller: :admin, action: :index
|
9
13
|
get '/authorized', controller: :authorized, action: :index
|
10
14
|
end
|
@@ -9425,3 +9425,396 @@ Migrating to CreateGroupPeople (20161006134746)
|
|
9425
9425
|
[1m[36mSQL (0.4ms)[0m [1mINSERT INTO "group_people" ("group_id", "person_id", "created_at", "updated_at") VALUES (?, ?, ?, ?)[0m [["group_id", 1], ["person_id", 1], ["created_at", "2016-10-06 14:07:40.650822"], ["updated_at", "2016-10-06 14:07:40.650822"]]
|
9426
9426
|
[1m[35m (1.1ms)[0m commit transaction
|
9427
9427
|
[1m[36mPerson Load (0.2ms)[0m [1mSELECT "people".* FROM "people" INNER JOIN "group_people" ON "people"."id" = "group_people"."person_id" WHERE "group_people"."group_id" = ?[0m [["group_id", 1]]
|
9428
|
+
|
9429
|
+
|
9430
|
+
Started GET "/admin" for 127.0.0.1 at 2016-10-06 19:05:06 +0200
|
9431
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.1ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
9432
|
+
|
9433
|
+
ActionController::RoutingError (No route matches [GET] "/admin"):
|
9434
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
|
9435
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
|
9436
|
+
railties (4.2.7.1) lib/rails/rack/logger.rb:38:in `call_app'
|
9437
|
+
railties (4.2.7.1) lib/rails/rack/logger.rb:20:in `block in call'
|
9438
|
+
activesupport (4.2.7.1) lib/active_support/tagged_logging.rb:68:in `block in tagged'
|
9439
|
+
activesupport (4.2.7.1) lib/active_support/tagged_logging.rb:26:in `tagged'
|
9440
|
+
activesupport (4.2.7.1) lib/active_support/tagged_logging.rb:68:in `tagged'
|
9441
|
+
railties (4.2.7.1) lib/rails/rack/logger.rb:20:in `call'
|
9442
|
+
quiet_assets (1.1.0) lib/quiet_assets.rb:27:in `call_with_quiet_assets'
|
9443
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/request_id.rb:21:in `call'
|
9444
|
+
rack (1.6.4) lib/rack/methodoverride.rb:22:in `call'
|
9445
|
+
rack (1.6.4) lib/rack/runtime.rb:18:in `call'
|
9446
|
+
activesupport (4.2.7.1) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
|
9447
|
+
rack (1.6.4) lib/rack/lock.rb:17:in `call'
|
9448
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/static.rb:120:in `call'
|
9449
|
+
rack (1.6.4) lib/rack/sendfile.rb:113:in `call'
|
9450
|
+
railties (4.2.7.1) lib/rails/engine.rb:518:in `call'
|
9451
|
+
railties (4.2.7.1) lib/rails/application.rb:165:in `call'
|
9452
|
+
rack (1.6.4) lib/rack/content_length.rb:15:in `call'
|
9453
|
+
puma (3.6.0) lib/puma/configuration.rb:225:in `call'
|
9454
|
+
puma (3.6.0) lib/puma/server.rb:578:in `handle_request'
|
9455
|
+
puma (3.6.0) lib/puma/server.rb:415:in `process_client'
|
9456
|
+
puma (3.6.0) lib/puma/server.rb:275:in `block in run'
|
9457
|
+
puma (3.6.0) lib/puma/thread_pool.rb:116:in `block in spawn_thread'
|
9458
|
+
|
9459
|
+
|
9460
|
+
Rendered /Users/npepinpe/.rvm/gems/ruby-2.3.1/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.0ms)
|
9461
|
+
Rendered /Users/npepinpe/.rvm/gems/ruby-2.3.1/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/templates/routes/_route.html.erb (1.1ms)
|
9462
|
+
Rendered /Users/npepinpe/.rvm/gems/ruby-2.3.1/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/templates/routes/_route.html.erb (0.3ms)
|
9463
|
+
Rendered /Users/npepinpe/.rvm/gems/ruby-2.3.1/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/templates/routes/_table.html.erb (7.9ms)
|
9464
|
+
Rendered /Users/npepinpe/.rvm/gems/ruby-2.3.1/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (39.9ms)
|
9465
|
+
Rendered /Users/npepinpe/.rvm/gems/ruby-2.3.1/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (103.1ms)
|
9466
|
+
|
9467
|
+
|
9468
|
+
Started GET "/admin/persons" for 127.0.0.1 at 2016-10-06 19:05:16 +0200
|
9469
|
+
|
9470
|
+
ActionController::RoutingError - uninitialized constant PersonsController:
|
9471
|
+
actionpack (4.2.7.1) lib/action_dispatch/routing/route_set.rb:63:in `rescue in controller'
|
9472
|
+
actionpack (4.2.7.1) lib/action_dispatch/routing/route_set.rb:58:in `controller'
|
9473
|
+
actionpack (4.2.7.1) lib/action_dispatch/routing/route_set.rb:39:in `serve'
|
9474
|
+
actionpack (4.2.7.1) lib/action_dispatch/journey/router.rb:43:in `block in serve'
|
9475
|
+
actionpack (4.2.7.1) lib/action_dispatch/journey/router.rb:30:in `serve'
|
9476
|
+
actionpack (4.2.7.1) lib/action_dispatch/routing/route_set.rb:817:in `call'
|
9477
|
+
omniauth (1.3.1) lib/omniauth/strategy.rb:186:in `call!'
|
9478
|
+
omniauth (1.3.1) lib/omniauth/strategy.rb:164:in `call'
|
9479
|
+
omniauth (1.3.1) lib/omniauth/builder.rb:63:in `call'
|
9480
|
+
rack (1.6.4) lib/rack/etag.rb:24:in `call'
|
9481
|
+
rack (1.6.4) lib/rack/conditionalget.rb:25:in `call'
|
9482
|
+
rack (1.6.4) lib/rack/head.rb:13:in `call'
|
9483
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
|
9484
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/flash.rb:260:in `call'
|
9485
|
+
rack (1.6.4) lib/rack/session/abstract/id.rb:225:in `context'
|
9486
|
+
rack (1.6.4) lib/rack/session/abstract/id.rb:220:in `call'
|
9487
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/cookies.rb:560:in `call'
|
9488
|
+
activerecord (4.2.7.1) lib/active_record/query_cache.rb:36:in `call'
|
9489
|
+
activerecord (4.2.7.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call'
|
9490
|
+
activerecord (4.2.7.1) lib/active_record/migration.rb:377:in `call'
|
9491
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
|
9492
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:88:in `__run_callbacks__'
|
9493
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:778:in `_run_call_callbacks'
|
9494
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:81:in `run_callbacks'
|
9495
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
|
9496
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/reloader.rb:73:in `call'
|
9497
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
|
9498
|
+
better_errors (2.1.1) lib/better_errors/middleware.rb:84:in `protected_app_call'
|
9499
|
+
better_errors (2.1.1) lib/better_errors/middleware.rb:79:in `better_errors_call'
|
9500
|
+
better_errors (2.1.1) lib/better_errors/middleware.rb:57:in `call'
|
9501
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
|
9502
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
|
9503
|
+
railties (4.2.7.1) lib/rails/rack/logger.rb:38:in `call_app'
|
9504
|
+
railties (4.2.7.1) lib/rails/rack/logger.rb:20:in `block in call'
|
9505
|
+
activesupport (4.2.7.1) lib/active_support/tagged_logging.rb:68:in `block in tagged'
|
9506
|
+
activesupport (4.2.7.1) lib/active_support/tagged_logging.rb:26:in `tagged'
|
9507
|
+
activesupport (4.2.7.1) lib/active_support/tagged_logging.rb:68:in `tagged'
|
9508
|
+
railties (4.2.7.1) lib/rails/rack/logger.rb:20:in `call'
|
9509
|
+
quiet_assets (1.1.0) lib/quiet_assets.rb:27:in `call_with_quiet_assets'
|
9510
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/request_id.rb:21:in `call'
|
9511
|
+
rack (1.6.4) lib/rack/methodoverride.rb:22:in `call'
|
9512
|
+
rack (1.6.4) lib/rack/runtime.rb:18:in `call'
|
9513
|
+
activesupport (4.2.7.1) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
|
9514
|
+
rack (1.6.4) lib/rack/lock.rb:17:in `call'
|
9515
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/static.rb:120:in `call'
|
9516
|
+
rack (1.6.4) lib/rack/sendfile.rb:113:in `call'
|
9517
|
+
railties (4.2.7.1) lib/rails/engine.rb:518:in `call'
|
9518
|
+
railties (4.2.7.1) lib/rails/application.rb:165:in `call'
|
9519
|
+
rack (1.6.4) lib/rack/content_length.rb:15:in `call'
|
9520
|
+
puma (3.6.0) lib/puma/configuration.rb:225:in `call'
|
9521
|
+
puma (3.6.0) lib/puma/server.rb:578:in `handle_request'
|
9522
|
+
puma (3.6.0) lib/puma/server.rb:415:in `process_client'
|
9523
|
+
puma (3.6.0) lib/puma/server.rb:275:in `block in run'
|
9524
|
+
puma (3.6.0) lib/puma/thread_pool.rb:116:in `block in spawn_thread'
|
9525
|
+
|
9526
|
+
|
9527
|
+
|
9528
|
+
Started POST "/__better_errors/17ffe00a9f0959fd/variables" for 127.0.0.1 at 2016-10-06 19:05:16 +0200
|
9529
|
+
|
9530
|
+
|
9531
|
+
Started GET "/admin/persons" for 127.0.0.1 at 2016-10-06 19:06:09 +0200
|
9532
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.1ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
9533
|
+
|
9534
|
+
ActionController::RoutingError - undefined method `load_job' for class `Admin::PersonsController':
|
9535
|
+
actionpack (4.2.7.1) lib/action_dispatch/routing/route_set.rb:63:in `rescue in controller'
|
9536
|
+
actionpack (4.2.7.1) lib/action_dispatch/routing/route_set.rb:58:in `controller'
|
9537
|
+
actionpack (4.2.7.1) lib/action_dispatch/routing/route_set.rb:39:in `serve'
|
9538
|
+
actionpack (4.2.7.1) lib/action_dispatch/journey/router.rb:43:in `block in serve'
|
9539
|
+
actionpack (4.2.7.1) lib/action_dispatch/journey/router.rb:30:in `serve'
|
9540
|
+
actionpack (4.2.7.1) lib/action_dispatch/routing/route_set.rb:817:in `call'
|
9541
|
+
omniauth (1.3.1) lib/omniauth/strategy.rb:186:in `call!'
|
9542
|
+
omniauth (1.3.1) lib/omniauth/strategy.rb:164:in `call'
|
9543
|
+
omniauth (1.3.1) lib/omniauth/builder.rb:63:in `call'
|
9544
|
+
rack (1.6.4) lib/rack/etag.rb:24:in `call'
|
9545
|
+
rack (1.6.4) lib/rack/conditionalget.rb:25:in `call'
|
9546
|
+
rack (1.6.4) lib/rack/head.rb:13:in `call'
|
9547
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
|
9548
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/flash.rb:260:in `call'
|
9549
|
+
rack (1.6.4) lib/rack/session/abstract/id.rb:225:in `context'
|
9550
|
+
rack (1.6.4) lib/rack/session/abstract/id.rb:220:in `call'
|
9551
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/cookies.rb:560:in `call'
|
9552
|
+
activerecord (4.2.7.1) lib/active_record/query_cache.rb:36:in `call'
|
9553
|
+
activerecord (4.2.7.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call'
|
9554
|
+
activerecord (4.2.7.1) lib/active_record/migration.rb:377:in `call'
|
9555
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
|
9556
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:88:in `__run_callbacks__'
|
9557
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:778:in `_run_call_callbacks'
|
9558
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:81:in `run_callbacks'
|
9559
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
|
9560
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/reloader.rb:73:in `call'
|
9561
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
|
9562
|
+
better_errors (2.1.1) lib/better_errors/middleware.rb:84:in `protected_app_call'
|
9563
|
+
better_errors (2.1.1) lib/better_errors/middleware.rb:79:in `better_errors_call'
|
9564
|
+
better_errors (2.1.1) lib/better_errors/middleware.rb:57:in `call'
|
9565
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
|
9566
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
|
9567
|
+
railties (4.2.7.1) lib/rails/rack/logger.rb:38:in `call_app'
|
9568
|
+
railties (4.2.7.1) lib/rails/rack/logger.rb:20:in `block in call'
|
9569
|
+
activesupport (4.2.7.1) lib/active_support/tagged_logging.rb:68:in `block in tagged'
|
9570
|
+
activesupport (4.2.7.1) lib/active_support/tagged_logging.rb:26:in `tagged'
|
9571
|
+
activesupport (4.2.7.1) lib/active_support/tagged_logging.rb:68:in `tagged'
|
9572
|
+
railties (4.2.7.1) lib/rails/rack/logger.rb:20:in `call'
|
9573
|
+
quiet_assets (1.1.0) lib/quiet_assets.rb:27:in `call_with_quiet_assets'
|
9574
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/request_id.rb:21:in `call'
|
9575
|
+
rack (1.6.4) lib/rack/methodoverride.rb:22:in `call'
|
9576
|
+
rack (1.6.4) lib/rack/runtime.rb:18:in `call'
|
9577
|
+
activesupport (4.2.7.1) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
|
9578
|
+
rack (1.6.4) lib/rack/lock.rb:17:in `call'
|
9579
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/static.rb:120:in `call'
|
9580
|
+
rack (1.6.4) lib/rack/sendfile.rb:113:in `call'
|
9581
|
+
railties (4.2.7.1) lib/rails/engine.rb:518:in `call'
|
9582
|
+
railties (4.2.7.1) lib/rails/application.rb:165:in `call'
|
9583
|
+
rack (1.6.4) lib/rack/content_length.rb:15:in `call'
|
9584
|
+
puma (3.6.0) lib/puma/configuration.rb:225:in `call'
|
9585
|
+
puma (3.6.0) lib/puma/server.rb:578:in `handle_request'
|
9586
|
+
puma (3.6.0) lib/puma/server.rb:415:in `process_client'
|
9587
|
+
puma (3.6.0) lib/puma/server.rb:275:in `block in run'
|
9588
|
+
puma (3.6.0) lib/puma/thread_pool.rb:116:in `block in spawn_thread'
|
9589
|
+
|
9590
|
+
|
9591
|
+
|
9592
|
+
Started POST "/__better_errors/f8b9d9e00b78f837/variables" for 127.0.0.1 at 2016-10-06 19:06:09 +0200
|
9593
|
+
|
9594
|
+
|
9595
|
+
Started GET "/admin/persons" for 127.0.0.1 at 2016-10-06 19:06:23 +0200
|
9596
|
+
Processing by Admin::PersonsController#index as HTML
|
9597
|
+
Redirected to http://0.0.0.0:3000/kadmin/auth/login?origin=%2Fadmin%2Fpersons
|
9598
|
+
Filter chain halted as :authorize rendered or redirected
|
9599
|
+
Completed 302 Found in 15ms (ActiveRecord: 0.0ms)
|
9600
|
+
|
9601
|
+
|
9602
|
+
Started GET "/kadmin/auth/login?origin=%2Fadmin%2Fpersons" for 127.0.0.1 at 2016-10-06 19:06:23 +0200
|
9603
|
+
Processing by Kadmin::AuthController#login as HTML
|
9604
|
+
Parameters: {"origin"=>"/admin/persons"}
|
9605
|
+
Rendered /Users/npepinpe/work/github/barcoo/kadmin/app/views/kadmin/auth/login.html.erb within layouts/kadmin/application (4.5ms)
|
9606
|
+
Rendered /Users/npepinpe/work/github/barcoo/kadmin/app/views/kadmin/_alerts.html.erb (0.7ms)
|
9607
|
+
Completed 200 OK in 2251ms (Views: 2250.7ms | ActiveRecord: 0.0ms)
|
9608
|
+
|
9609
|
+
|
9610
|
+
Started GET "/kadmin/auth/developer?origin=%2Fadmin%2Fpersons" for 127.0.0.1 at 2016-10-06 19:06:29 +0200
|
9611
|
+
(developer) Request phase initiated.
|
9612
|
+
|
9613
|
+
|
9614
|
+
Started POST "/kadmin/auth/developer/callback" for 127.0.0.1 at 2016-10-06 19:06:33 +0200
|
9615
|
+
(developer) Callback phase initiated.
|
9616
|
+
Processing by Kadmin::AuthController#save as HTML
|
9617
|
+
Parameters: {"email"=>"admin@test.com", "provider"=>"developer"}
|
9618
|
+
Redirected to http://0.0.0.0:3000/admin/persons
|
9619
|
+
Completed 302 Found in 1ms (ActiveRecord: 0.0ms)
|
9620
|
+
|
9621
|
+
|
9622
|
+
Started GET "/admin/persons" for 127.0.0.1 at 2016-10-06 19:06:33 +0200
|
9623
|
+
Processing by Admin::PersonsController#index as HTML
|
9624
|
+
Completed 500 Internal Server Error in 5ms (ActiveRecord: 0.0ms)
|
9625
|
+
|
9626
|
+
NameError - uninitialized constant Kadmin::Finder:
|
9627
|
+
activesupport (4.2.7.1) lib/active_support/dependencies.rb:533:in `load_missing_constant'
|
9628
|
+
activesupport (4.2.7.1) lib/active_support/dependencies.rb:184:in `const_missing'
|
9629
|
+
app/controllers/admin/persons_controller.rb:11:in `index'
|
9630
|
+
actionpack (4.2.7.1) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
|
9631
|
+
actionpack (4.2.7.1) lib/abstract_controller/base.rb:198:in `process_action'
|
9632
|
+
actionpack (4.2.7.1) lib/action_controller/metal/rendering.rb:10:in `process_action'
|
9633
|
+
actionpack (4.2.7.1) lib/abstract_controller/callbacks.rb:20:in `block in process_action'
|
9634
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:117:in `call'
|
9635
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:555:in `block (2 levels) in compile'
|
9636
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:505:in `call'
|
9637
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:92:in `__run_callbacks__'
|
9638
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:778:in `_run_process_action_callbacks'
|
9639
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:81:in `run_callbacks'
|
9640
|
+
actionpack (4.2.7.1) lib/abstract_controller/callbacks.rb:19:in `process_action'
|
9641
|
+
actionpack (4.2.7.1) lib/action_controller/metal/rescue.rb:29:in `process_action'
|
9642
|
+
actionpack (4.2.7.1) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
|
9643
|
+
activesupport (4.2.7.1) lib/active_support/notifications.rb:164:in `block in instrument'
|
9644
|
+
activesupport (4.2.7.1) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
|
9645
|
+
activesupport (4.2.7.1) lib/active_support/notifications.rb:164:in `instrument'
|
9646
|
+
actionpack (4.2.7.1) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
|
9647
|
+
actionpack (4.2.7.1) lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
|
9648
|
+
activerecord (4.2.7.1) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
|
9649
|
+
actionpack (4.2.7.1) lib/abstract_controller/base.rb:137:in `process'
|
9650
|
+
actionview (4.2.7.1) lib/action_view/rendering.rb:30:in `process'
|
9651
|
+
actionpack (4.2.7.1) lib/action_controller/metal.rb:196:in `dispatch'
|
9652
|
+
actionpack (4.2.7.1) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
|
9653
|
+
actionpack (4.2.7.1) lib/action_controller/metal.rb:237:in `block in action'
|
9654
|
+
actionpack (4.2.7.1) lib/action_dispatch/routing/route_set.rb:74:in `dispatch'
|
9655
|
+
actionpack (4.2.7.1) lib/action_dispatch/routing/route_set.rb:43:in `serve'
|
9656
|
+
actionpack (4.2.7.1) lib/action_dispatch/journey/router.rb:43:in `block in serve'
|
9657
|
+
actionpack (4.2.7.1) lib/action_dispatch/journey/router.rb:30:in `serve'
|
9658
|
+
actionpack (4.2.7.1) lib/action_dispatch/routing/route_set.rb:817:in `call'
|
9659
|
+
omniauth (1.3.1) lib/omniauth/strategy.rb:186:in `call!'
|
9660
|
+
omniauth (1.3.1) lib/omniauth/strategy.rb:164:in `call'
|
9661
|
+
omniauth (1.3.1) lib/omniauth/builder.rb:63:in `call'
|
9662
|
+
rack (1.6.4) lib/rack/etag.rb:24:in `call'
|
9663
|
+
rack (1.6.4) lib/rack/conditionalget.rb:25:in `call'
|
9664
|
+
rack (1.6.4) lib/rack/head.rb:13:in `call'
|
9665
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
|
9666
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/flash.rb:260:in `call'
|
9667
|
+
rack (1.6.4) lib/rack/session/abstract/id.rb:225:in `context'
|
9668
|
+
rack (1.6.4) lib/rack/session/abstract/id.rb:220:in `call'
|
9669
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/cookies.rb:560:in `call'
|
9670
|
+
activerecord (4.2.7.1) lib/active_record/query_cache.rb:36:in `call'
|
9671
|
+
activerecord (4.2.7.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call'
|
9672
|
+
activerecord (4.2.7.1) lib/active_record/migration.rb:377:in `call'
|
9673
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
|
9674
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:88:in `__run_callbacks__'
|
9675
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:778:in `_run_call_callbacks'
|
9676
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:81:in `run_callbacks'
|
9677
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
|
9678
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/reloader.rb:73:in `call'
|
9679
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
|
9680
|
+
better_errors (2.1.1) lib/better_errors/middleware.rb:84:in `protected_app_call'
|
9681
|
+
better_errors (2.1.1) lib/better_errors/middleware.rb:79:in `better_errors_call'
|
9682
|
+
better_errors (2.1.1) lib/better_errors/middleware.rb:57:in `call'
|
9683
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
|
9684
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
|
9685
|
+
railties (4.2.7.1) lib/rails/rack/logger.rb:38:in `call_app'
|
9686
|
+
railties (4.2.7.1) lib/rails/rack/logger.rb:20:in `block in call'
|
9687
|
+
activesupport (4.2.7.1) lib/active_support/tagged_logging.rb:68:in `block in tagged'
|
9688
|
+
activesupport (4.2.7.1) lib/active_support/tagged_logging.rb:26:in `tagged'
|
9689
|
+
activesupport (4.2.7.1) lib/active_support/tagged_logging.rb:68:in `tagged'
|
9690
|
+
railties (4.2.7.1) lib/rails/rack/logger.rb:20:in `call'
|
9691
|
+
quiet_assets (1.1.0) lib/quiet_assets.rb:27:in `call_with_quiet_assets'
|
9692
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/request_id.rb:21:in `call'
|
9693
|
+
rack (1.6.4) lib/rack/methodoverride.rb:22:in `call'
|
9694
|
+
rack (1.6.4) lib/rack/runtime.rb:18:in `call'
|
9695
|
+
activesupport (4.2.7.1) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
|
9696
|
+
rack (1.6.4) lib/rack/lock.rb:17:in `call'
|
9697
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/static.rb:120:in `call'
|
9698
|
+
rack (1.6.4) lib/rack/sendfile.rb:113:in `call'
|
9699
|
+
railties (4.2.7.1) lib/rails/engine.rb:518:in `call'
|
9700
|
+
railties (4.2.7.1) lib/rails/application.rb:165:in `call'
|
9701
|
+
rack (1.6.4) lib/rack/content_length.rb:15:in `call'
|
9702
|
+
puma (3.6.0) lib/puma/configuration.rb:225:in `call'
|
9703
|
+
puma (3.6.0) lib/puma/server.rb:578:in `handle_request'
|
9704
|
+
puma (3.6.0) lib/puma/server.rb:415:in `process_client'
|
9705
|
+
puma (3.6.0) lib/puma/server.rb:275:in `block in run'
|
9706
|
+
puma (3.6.0) lib/puma/thread_pool.rb:116:in `block in spawn_thread'
|
9707
|
+
|
9708
|
+
|
9709
|
+
|
9710
|
+
Started POST "/__better_errors/c90cb465f623da6b/variables" for 127.0.0.1 at 2016-10-06 19:06:33 +0200
|
9711
|
+
|
9712
|
+
|
9713
|
+
Started GET "/admin/persons" for 127.0.0.1 at 2016-10-06 19:07:21 +0200
|
9714
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.1ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
9715
|
+
Processing by Admin::PersonsController#index as HTML
|
9716
|
+
[1m[35m (0.1ms)[0m SELECT COUNT(*) FROM "people"
|
9717
|
+
[1m[36mPerson Load (0.2ms)[0m [1mSELECT "people".* FROM "people" ORDER BY "people"."created_at" DESC LIMIT 15 OFFSET 0[0m
|
9718
|
+
[1m[35mGroupPerson Load (0.1ms)[0m SELECT "group_people".* FROM "group_people" WHERE "group_people"."person_id" IN (1)
|
9719
|
+
[1m[36mGroup Load (0.1ms)[0m [1mSELECT "groups".* FROM "groups" WHERE "groups"."id" IN (1)[0m
|
9720
|
+
[1m[35mGroup Load (0.1ms)[0m SELECT "groups".* FROM "groups" WHERE "groups"."owner_id" IN (1)
|
9721
|
+
Completed 500 Internal Server Error in 659ms (ActiveRecord: 0.2ms)
|
9722
|
+
|
9723
|
+
NoMethodError - undefined method `decorate' for #<Person::ActiveRecord_Relation:0x007f9fed693e00>
|
9724
|
+
Did you mean? create:
|
9725
|
+
activerecord (4.2.7.1) lib/active_record/relation/delegation.rb:136:in `method_missing'
|
9726
|
+
activerecord (4.2.7.1) lib/active_record/relation/delegation.rb:99:in `method_missing'
|
9727
|
+
app/controllers/admin/persons_controller.rb:15:in `index'
|
9728
|
+
actionpack (4.2.7.1) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
|
9729
|
+
actionpack (4.2.7.1) lib/abstract_controller/base.rb:198:in `process_action'
|
9730
|
+
actionpack (4.2.7.1) lib/action_controller/metal/rendering.rb:10:in `process_action'
|
9731
|
+
actionpack (4.2.7.1) lib/abstract_controller/callbacks.rb:20:in `block in process_action'
|
9732
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:117:in `call'
|
9733
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:555:in `block (2 levels) in compile'
|
9734
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:505:in `call'
|
9735
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:92:in `__run_callbacks__'
|
9736
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:778:in `_run_process_action_callbacks'
|
9737
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:81:in `run_callbacks'
|
9738
|
+
actionpack (4.2.7.1) lib/abstract_controller/callbacks.rb:19:in `process_action'
|
9739
|
+
actionpack (4.2.7.1) lib/action_controller/metal/rescue.rb:29:in `process_action'
|
9740
|
+
actionpack (4.2.7.1) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
|
9741
|
+
activesupport (4.2.7.1) lib/active_support/notifications.rb:164:in `block in instrument'
|
9742
|
+
activesupport (4.2.7.1) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
|
9743
|
+
activesupport (4.2.7.1) lib/active_support/notifications.rb:164:in `instrument'
|
9744
|
+
actionpack (4.2.7.1) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
|
9745
|
+
actionpack (4.2.7.1) lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
|
9746
|
+
activerecord (4.2.7.1) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
|
9747
|
+
actionpack (4.2.7.1) lib/abstract_controller/base.rb:137:in `process'
|
9748
|
+
actionview (4.2.7.1) lib/action_view/rendering.rb:30:in `process'
|
9749
|
+
actionpack (4.2.7.1) lib/action_controller/metal.rb:196:in `dispatch'
|
9750
|
+
actionpack (4.2.7.1) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
|
9751
|
+
actionpack (4.2.7.1) lib/action_controller/metal.rb:237:in `block in action'
|
9752
|
+
actionpack (4.2.7.1) lib/action_dispatch/routing/route_set.rb:74:in `dispatch'
|
9753
|
+
actionpack (4.2.7.1) lib/action_dispatch/routing/route_set.rb:43:in `serve'
|
9754
|
+
actionpack (4.2.7.1) lib/action_dispatch/journey/router.rb:43:in `block in serve'
|
9755
|
+
actionpack (4.2.7.1) lib/action_dispatch/journey/router.rb:30:in `serve'
|
9756
|
+
actionpack (4.2.7.1) lib/action_dispatch/routing/route_set.rb:817:in `call'
|
9757
|
+
omniauth (1.3.1) lib/omniauth/strategy.rb:186:in `call!'
|
9758
|
+
omniauth (1.3.1) lib/omniauth/strategy.rb:164:in `call'
|
9759
|
+
omniauth (1.3.1) lib/omniauth/builder.rb:63:in `call'
|
9760
|
+
rack (1.6.4) lib/rack/etag.rb:24:in `call'
|
9761
|
+
rack (1.6.4) lib/rack/conditionalget.rb:25:in `call'
|
9762
|
+
rack (1.6.4) lib/rack/head.rb:13:in `call'
|
9763
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
|
9764
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/flash.rb:260:in `call'
|
9765
|
+
rack (1.6.4) lib/rack/session/abstract/id.rb:225:in `context'
|
9766
|
+
rack (1.6.4) lib/rack/session/abstract/id.rb:220:in `call'
|
9767
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/cookies.rb:560:in `call'
|
9768
|
+
activerecord (4.2.7.1) lib/active_record/query_cache.rb:36:in `call'
|
9769
|
+
activerecord (4.2.7.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call'
|
9770
|
+
activerecord (4.2.7.1) lib/active_record/migration.rb:377:in `call'
|
9771
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
|
9772
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:88:in `__run_callbacks__'
|
9773
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:778:in `_run_call_callbacks'
|
9774
|
+
activesupport (4.2.7.1) lib/active_support/callbacks.rb:81:in `run_callbacks'
|
9775
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
|
9776
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/reloader.rb:73:in `call'
|
9777
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
|
9778
|
+
better_errors (2.1.1) lib/better_errors/middleware.rb:84:in `protected_app_call'
|
9779
|
+
better_errors (2.1.1) lib/better_errors/middleware.rb:79:in `better_errors_call'
|
9780
|
+
better_errors (2.1.1) lib/better_errors/middleware.rb:57:in `call'
|
9781
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
|
9782
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
|
9783
|
+
railties (4.2.7.1) lib/rails/rack/logger.rb:38:in `call_app'
|
9784
|
+
railties (4.2.7.1) lib/rails/rack/logger.rb:20:in `block in call'
|
9785
|
+
activesupport (4.2.7.1) lib/active_support/tagged_logging.rb:68:in `block in tagged'
|
9786
|
+
activesupport (4.2.7.1) lib/active_support/tagged_logging.rb:26:in `tagged'
|
9787
|
+
activesupport (4.2.7.1) lib/active_support/tagged_logging.rb:68:in `tagged'
|
9788
|
+
railties (4.2.7.1) lib/rails/rack/logger.rb:20:in `call'
|
9789
|
+
quiet_assets (1.1.0) lib/quiet_assets.rb:27:in `call_with_quiet_assets'
|
9790
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/request_id.rb:21:in `call'
|
9791
|
+
rack (1.6.4) lib/rack/methodoverride.rb:22:in `call'
|
9792
|
+
rack (1.6.4) lib/rack/runtime.rb:18:in `call'
|
9793
|
+
activesupport (4.2.7.1) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
|
9794
|
+
rack (1.6.4) lib/rack/lock.rb:17:in `call'
|
9795
|
+
actionpack (4.2.7.1) lib/action_dispatch/middleware/static.rb:120:in `call'
|
9796
|
+
rack (1.6.4) lib/rack/sendfile.rb:113:in `call'
|
9797
|
+
railties (4.2.7.1) lib/rails/engine.rb:518:in `call'
|
9798
|
+
railties (4.2.7.1) lib/rails/application.rb:165:in `call'
|
9799
|
+
rack (1.6.4) lib/rack/content_length.rb:15:in `call'
|
9800
|
+
puma (3.6.0) lib/puma/configuration.rb:225:in `call'
|
9801
|
+
puma (3.6.0) lib/puma/server.rb:578:in `handle_request'
|
9802
|
+
puma (3.6.0) lib/puma/server.rb:415:in `process_client'
|
9803
|
+
puma (3.6.0) lib/puma/server.rb:275:in `block in run'
|
9804
|
+
puma (3.6.0) lib/puma/thread_pool.rb:116:in `block in spawn_thread'
|
9805
|
+
|
9806
|
+
|
9807
|
+
|
9808
|
+
Started POST "/__better_errors/598d81f28c342168/variables" for 127.0.0.1 at 2016-10-06 19:07:22 +0200
|
9809
|
+
[1m[36mPerson Load (0.2ms)[0m [1mSELECT "people".* FROM "people" ORDER BY "people"."created_at" DESC[0m
|
9810
|
+
[1m[35mGroupPerson Load (0.1ms)[0m SELECT "group_people".* FROM "group_people" WHERE "group_people"."person_id" IN (1)
|
9811
|
+
[1m[36mGroup Load (0.1ms)[0m [1mSELECT "groups".* FROM "groups" WHERE "groups"."id" IN (1)[0m
|
9812
|
+
[1m[35mGroup Load (1.0ms)[0m SELECT "groups".* FROM "groups" WHERE "groups"."owner_id" IN (1)
|
9813
|
+
|
9814
|
+
|
9815
|
+
Started GET "/admin/persons" for 127.0.0.1 at 2016-10-06 19:07:33 +0200
|
9816
|
+
Processing by Admin::PersonsController#index as HTML
|
9817
|
+
[1m[36m (0.1ms)[0m [1mSELECT COUNT(*) FROM "people"[0m
|
9818
|
+
Rendered admin/persons/index.html.erb within layouts/kadmin/application (1.1ms)
|
9819
|
+
Rendered /Users/npepinpe/work/github/barcoo/kadmin/app/views/kadmin/_alerts.html.erb (0.7ms)
|
9820
|
+
Completed 200 OK in 281ms (Views: 270.7ms | ActiveRecord: 0.4ms)
|