clark_kent 0.9.1 → 0.9.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/clark_kent/application.js +0 -18304
- data/app/assets/javascripts/simple_inheritance.js +65 -0
- data/app/controllers/clark_kent/report_columns_controller.rb +1 -1
- data/app/controllers/clark_kent/report_emails_controller.rb +1 -1
- data/app/controllers/clark_kent/report_filters_controller.rb +1 -1
- data/app/controllers/clark_kent/reports_controller.rb +1 -0
- data/app/controllers/clark_kent/user_report_emails_controller.rb +1 -1
- data/app/views/clark_kent/reports/_edit.html.erb +4 -2
- data/app/views/clark_kent/reports/_print_report.html.erb +1 -1
- data/lib/clark_kent/version.rb +1 -1
- data/lib/clark_kent.rb +2 -2
- data/test/clark_kent_test.rb +1 -1
- data/test/controllers/clark_kent/report_columns_controller_test.rb +5 -8
- data/test/controllers/clark_kent/report_filters_controller_test.rb +10 -10
- data/test/controllers/clark_kent/reports_controller_test.rb +15 -17
- data/test/dummy/app/assets/javascripts/application.js +4 -1
- data/test/dummy/app/views/layouts/application.html.erb +4 -4
- data/test/dummy/config/routes.rb +1 -1
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +1110 -0
- data/test/dummy/log/test.log +7433 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/-0/-0L0Fg4BGHbDmmVa5NUQxdPkvsSY4RtSM2QKwrr0vEk.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/-U/-UBNVg7cURt3BUwtd4Xpj-ryTf-XAVvOPsXKdoZhxFU.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/0B/0BYXZ7zTP6YSwkVAyYOp5xHdkxV-Fx9VL6kktd1hZo8.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/0N/0NiITpiaOPZ4thB12mQo50H9mAe4rwxw3jZf2MlSa0M.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/0T/0ts0Tb7Mxh_rGu06uDXelF6zSt3coaFsPLjuyze13NQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/0u/0uhzw21s-VA1eXzAAkINysXvWoXk5XVSKVSsy0lGqes.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/1R/1RFj4MxJJ3ofR95vPbkOhWNUtP_SYlnomaJK8jadFrA.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/1b/1bQewWjBJ2tgClOxNe6nQHtF4j4WPF7X8JJTMklei8M.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/2z/2zWHXU2dP4Ji3LZR486gYjBm-NjmrTC9693aTcMaUfo.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/3U/3UlNyNpL57GLZF2iiywtuWCytbBmm4WPUELuS4Pqf2E.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/3h/3hrdouCoq6_Rur4ZsntB1ZOXTc7FPv-rXPI4nrE1d4I.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/4i/4iuJdQZbrp5NnW2iStrYNJGsAwCX4CNl980v_D4dMcM.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/61/610ijk1QpGaKMdDoZ-9tr6JkJC4ZZj_mL13hfffeyUU.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/6B/6Bm9QfbYkPdwuzfOfOAMD2ge7EZukFhUraTTO4ZkPLA.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/6F/6Fb6Tzzn0hn_UhY36wGQQZTbudfvNUcp3UQENnIK-mY.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/7P/7PKUu4gCflhCT2lqkkj3JB2DccMQzd7UOSIzOCVMplU.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/83/83SG6qtgTvX57QtsF1VOk2pa5LT8E8PZeF-jCdOGkpg.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ai/AiCc-MO1WFvbykCIxzbhT--YYiGkdH16vWN4BLlhWso.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ar/ArHpN9VYgPlGZTmw0s_tdrPt4i5fwenbJ2_CsIicviU.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Cn/Cn8J9uQ5DMnyNe6duBsT99kKSx-5cdg86iewO_v5k4w.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/D0/D0tcTd9d7V_faDozeR_ht6xPyqJO-LUXBqFiMHOhnsM.cache +3 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/DK/dk_-qS9IG4dJu_9JEYZN1_4Xd_SMGu1VIp-rhbNNHOs.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/DS/DSyEr7LeWLvdAuSu-d4AnxY5kCWWYRJT9EETGYWrISs.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Er/ErlLOtSTrSUrHcZn84Zq20XXg16liHv2enp2LyTaoV4.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/FE/FE7p2GsEY2mIyh7jIFOXaOzABBYN1Hw0ltlbnG9M1zc.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Fr/FrHfx4ZpdU_fjCRGH25uPQz_E1-rEhqozehMrl-T-zM.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/G5/G5sqx-RAHUts3KQ-RDpnc6aCw8nf3PIRrGGcfmj1CQU.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/G6/G6iHHyaVP-UGGHr5V-B_li7KUqSXK8tYDoK9P6k-pGU.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/GI/GIYEZnyEVMvX_cCy-_boFcPEq5jtaVMtmxRN4fsAD2s.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ge/GeWP1bjaGKBsNNa9YqgRrncy8dppNYHY45Xy5yjkZvY.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/H4/H4Lr4MBFHuAgEf8tXBc8VYlEgvzwdzHoLXuLJgxhqLY.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/H7/H7drCym0KJ6xwe90pHYNUkAKohmXrbtikDWSFLdBQ_U.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/HX/HXP18gT_fCq75oB3hV1_wlmZy7BixbeG6FcPhkBP3iY.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/I6/I6StAguGtwqD4tKbUX1IpmOvePw36mSJ74CGdpxTdEg.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/JO/JOFX6tRegYOPRQV2XUTUbmmxrSbI2raAeRt8DajJ2Ys.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Jz/JzV7JBsmFuyIvYxAupTpvgBTosrBngPUVaUh8tQJR7s.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/KC/KCc-Z1kuMO3d0TNBuaVZ-eQW4Le4sVU0kW4MN-WFE0Y.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/L7/L7Oc7oN-Y66pgfK5CVi-CJ7Qs3odFMbfmirsZnhVPX4.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/LE/levk1w7lsb5L4Wy1HfcpJFhwkWhsWhZNeQ9rzKkinS4.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/LO/LOIUYr-VaBW2zPacZpxqDOX_rR91h5xCoihgw6sHEoc.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/LO/LOIw_QrLu6EqRv2po1AhlmvJ5T0AcIZuJV0rK15RRx0.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Lw/LwnHcLDETL1GzQVg3YuxtiG3vVBySQUca7lVs7MUFDs.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/N9/N9sKwx8L1ilHQWY9K_Uir94XvUtovItoGSBqn4xqhH4.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/NA/NAeVF88DxILWyiwIWdSvemZ_3Iy5syFpp4ZtcwLrNHI.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/O2/O2CakkmG8tcFTvVq96iYKVr4SKP5tS2bFTH8LtL-X0Y.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ow/Ow_kJRydJ0104-K9wVnfbL3r6bvZZDJsAxBHqC3SX5w.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/PS/PSNqAExSoKfGC8RPd_9hcUySwN50QxYLSXwc2jgmAl8.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/P_/P_3M-Jiq0bo4BLxMLSDZZuGzJmLgscNmtqi9g3lEloI.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Pk/PkT9phfMJWcV4jrnCfL7Jvih35cov_vHJHRkWR-_DFA.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Q4/Q4JJmbJqtzBmxLrmO-LiKlPEmj0FchS5klKHF2oTw0w.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Q7/Q7pQAMzkf9Eai40N0hYy-0EhOBPQp51FnK8EXUW_yKY.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Qd/QdXUx-i42XUi4uQ7auuLEmS_uCb4yDMCU3mHFos183M.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Qq/Qql0gIrVB_pVerZDdAcb310oPnwyunodyOIjyxHxfhI.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/S9/S9g6Pd9z4CYX6KmYeQeYCeVt8if9388ddNHdP2xdjug.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Sz/SziciEfBS0Njf0NHm6xvYpF0dnDopCV0isMpS3Z_r1g.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ta/TaiyaQ0Vhv2vFeSe68t11CIefO9Q-vP_IhdMPddGbng.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/UQ/UQ7u5cBK0hYCV0JMf_KY55i-HkKM6sqwo2B5jdHp9Pg.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/U_/U_RKA_XdPeEShhzuMHxV-Meo5XDBpQlKWj5xLwQjQiU.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Uk/UkfFS7omfUaxb-0L233oOxqx1J0nv4aK1tZScTKLy58.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Uo/UomUI8HJOreQa_noOGfKPRdG_zg1H6zMtT5WAEOH6sk.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Uu/UuZmPxzvMDYu_Q_giBMXpylrIHQf3hZjgKtBkQgBuDE.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/V4/V4rzANiZfSSSAAwXXQ-d4jKiNbY4ujTfH7_KYr9u9Oo.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Vn/VnAFOHNCQVa-P8Ws72UZoKknzowBjPyTKfOYGBGRi6U.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Xx/XxpL4Et-fpQKIog5T34AHr2LU8JgybzaanY-gZsCoWk.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Zl/ZlHu4FuCQKqHTj1mXd284etnphVPsUwrLfo3cN71CVM.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Zw/ZwkV8oqiHe0SR5pP-S8N8B0L0u3LjgMr4LZAxuvlCJU.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/_1/_1rQvKW-S_rQbxL3E__W5xhfAXNGVchxbHHRWgHeLFA.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/a5/a5S-Iu4depRCTrISyXGFmGRYjPvrvkwZ8N7vnDuX1Q8.cache +3 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/aQ/aQqhiicE4G53Q6MOyZUG58E4zi2g6Kq2AMH0S229O_g.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/aV/aVckB8YYoPWAk29v_fWbyhotKqrMll4wYE6FjZW9T08.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/cz/czOFcOwCu6WDDj758XAcb_NSwWVnXEo6Q610zjq2ptE.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/dH/DH7TdRhj2aeeu4kVl0LSrQ_iBx-Z-Q-bpb6JO1xfgYw.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/dp/dp6ES4HxA6oubiiEJcG90G6OA3iY0TjwCfw5DyfTU5Q.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/g-/g-462i1XQhX9ItuqFXAvXKr2eaToeDFWuUnNhG-K1CY.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/gG/gG71lonb1CAI6dPj7GYFuotke_F5np0b0yDeUbsIOnc.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/gz/gziPwQAKR0Oby2vO5z9fiJ4LogjnAdxoEFsWb4qMI1Y.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/hR/hRHk0bs006tuYojpKvtX46k9HqOra8cKkgcBEjhiy-g.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/hl/hlPqgcjpZkjdqBWwyQGurB-8kOCYODAL56h-Q5rM4wg.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/hn/hnjY67w8yWIiNucpZuN8DOtAGkBt6BurtIoU3aTq_b0.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/ho/houmi3aA6sn3Bhoi_Xt1j4InZoGSyemiCVsjth9MPy0.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/i8/i8NXfwSkwbTE3e3IPpEbMXF0b74GP6CMiKgHK8EOhIE.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/iG/iGNbL0JpS9uz18Jn0yH7idLzFa4zGuimqLc_Rm8XA64.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/iO/IO34y_hf6hCtoYX66Gy1OQwwNyCm1oVdLMTIiFhtPgM.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/iO/iOTzoRA9QfY92nk5yaZe2nSmmMpHT3n2qCtWevXxauk.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/j3/j3fQCwXxtn54O01EWZgvvy7nkVXolfz9CUIoicB6Ed0.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/j4/j4NsV3MgY6pNjZe2gZZTua_r4j7A2BKBzaTIbafzYfc.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/jU/jUktWNbR4V7n34UAZe7uJpmEofhflF0bVtIO2BgxyJ8.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/jx/jxwIyHzXRiGo1AqrKR3pfOSzpgD83Klxdm-6nhRMk0o.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/kr/krGEhVHZTowuh3ffZ8AIcbau7J86mCOga1uYXgeoPLM.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/kw/kwhSW4DjVPAPIaj2itcX4XrVbCWd0RL9Wd12k3IoqaE.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/lI/lIpNbWoDPWAU5AG5y55YcARgA0rXRX2WqGSu7RTuFdg.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/lL/lLalwm94gg0vb5_n7hgVjeyD9hpjuzgzZlIVH6_7Dt0.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/m9/m9gA9cyMpVTZyvL0F5vPGInwI_gZNUj4z6YIZ4NqZJQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/mX/mXn1imFlOXE_-rJslKTjNEHkYPu8FlBJqxxou49aqVI.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/n1/n1gA9ADYs9-UXFsMMzQl4NKmRvcjb_oel3VvxGx62Zw.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/nJ/nJToKKwpLq5CtZF9Cc4-ig1mWehJH2P1vYAbq3k-dVs.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/nP/nPUnQ0H05CXLwDnPypHLqBDgYVU276oGnUbvUevD1iw.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/ns/nsIiYnjsFg1IofAvvSMMv_gpWT9ml22T9zznmlvlBo4.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/o9/o9z6uyOlFoP_A6PpzY1whUt63W_2i43yalBK1oj3f4w.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/oF/oFh1WaNEewjQXIVlAXGvqEXX4BiKRIXjEkZ12hzGPNA.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/oU/OUXQrJzVMhIL4qSaLlIMB_dhn-YAXUmztjOc2JTdqKk.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/pN/pNQWGhHzPOZvvwPqQ9kTAaGc8TcVmo-6Rh33d1LOvEg.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/pV/pVFuzkK-1C0SjMtyAp5CDbzL-BZai5SnraGlYdarTRw.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/pZ/pZQuEqBSUHxSb2boLOcg0kcAMH-Axuy8wEQGHHnwfL8.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/ph/ph4vUNt__48ua_NuqdIqD5BYHz4qTAil0B6hgmnlKk8.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/pj/pjn30wUhSluytX0xPHNzzDHU2vMesmHVtD57s4VeLE0.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/rL/rL0KXwlm64NEY9xtG71u5m8zi73_CFdRR_ViL-E7VsY.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/s5/s5HJ9AkmIcm4bNVpNv3BYRgWwyccndxEEiap7KGQoUQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/sB/sBj8wrU0HAS2wQaGjacz3W-7OYg5XdjTCj0wcBXzodI.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/sN/sNYZtFryVJgyqlyNTBa860zr49DYb3OWwUav8FeezFA.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/sf/sfqwoHZYvC4PXpRYVqZxVebLy6hYSEAzAMjaSAeO-lU.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/tI/tIKpgL-hHQsroWdeCGz-EBgEK0kLH6NQ0_-zIv04_Hw.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/tS/tSQleXpvC0HkYFE5YKqy41d55pjzXGi9URalkW1ZHBQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/tb/tbl9f7iFYi7AnPJrsi9ayLKZ5PexxljORMMKwsKFHnU.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/tg/tgli9AjJl_9L21may2WxKvkY2YG_BIx0cMhToa9x-3U.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/vH/vH85OKRovJEXwqxnylN6LDHXEXYug7cpnMLOz9ZIV8E.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/vs/VsWhNDD4LM5qss-WxHpsRc7HCvQdwnQBgm9MlP9DwrY.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/vs/vsZGqB8prG7qQkmhqTGJxhyPQmIM_ObwCGICnIHcGRk.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/wm/wmdjOordEV0pCW402_HtZfXskBxg6Kj46vNSi8cxSWs.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/wr/wrOXuxkZ9LGlXGQ4QSkMGiwbeUnt4PFmYbpZT09ZYW4.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/wt/wtxSIExeDiYHkJMFQdRq9imHQ87rPXvH4j1TQzCdJWQ.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/x9/x9KjAYtVqQ_UX4idL4dfW_W7C_tbjeVGY34YdoOGaBo.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/yJ/yJgiBE5wXwwNdWKAz3HZy-o2driD2AYmMXiZYO_OGms.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/yK/yK3Jdtc3AV6cKk-QUhkN5n01MswN5yVIzMezSZRvxdY.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/zn/znPtPsrRsihFLT534h5GArtJ3xeS7sZSAXeDojN1sWM.cache +2 -0
- data/test/test_helper.rb +1 -1
- metadata +272 -7
@@ -0,0 +1,65 @@
|
|
1
|
+
/* Simple JavaScript Inheritance
|
2
|
+
* By John Resig http://ejohn.org/
|
3
|
+
* MIT Licensed.
|
4
|
+
*/
|
5
|
+
// Inspired by base2 and Prototype
|
6
|
+
if(typeof Class == 'undefined'){
|
7
|
+
(function(){
|
8
|
+
var initializing = false, fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/;
|
9
|
+
// The base Class implementation (does nothing)
|
10
|
+
this.Class = function(){};
|
11
|
+
|
12
|
+
// Create a new Class that inherits from this class
|
13
|
+
Class.extend = function(prop) {
|
14
|
+
var _super = this.prototype;
|
15
|
+
|
16
|
+
// Instantiate a base class (but only create the instance,
|
17
|
+
// don't run the init constructor)
|
18
|
+
initializing = true;
|
19
|
+
var prototype = new this();
|
20
|
+
initializing = false;
|
21
|
+
|
22
|
+
// Copy the properties over onto the new prototype
|
23
|
+
for (var name in prop) {
|
24
|
+
// Check if we're overwriting an existing function
|
25
|
+
prototype[name] = typeof prop[name] == "function" &&
|
26
|
+
typeof _super[name] == "function" && fnTest.test(prop[name]) ?
|
27
|
+
(function(name, fn){
|
28
|
+
return function() {
|
29
|
+
var tmp = this._super;
|
30
|
+
|
31
|
+
// Add a new ._super() method that is the same method
|
32
|
+
// but on the super-class
|
33
|
+
this._super = _super[name];
|
34
|
+
|
35
|
+
// The method only need to be bound temporarily, so we
|
36
|
+
// remove it when we're done executing
|
37
|
+
var ret = fn.apply(this, arguments);
|
38
|
+
this._super = tmp;
|
39
|
+
|
40
|
+
return ret;
|
41
|
+
};
|
42
|
+
})(name, prop[name]) :
|
43
|
+
prop[name];
|
44
|
+
}
|
45
|
+
|
46
|
+
// The dummy class constructor
|
47
|
+
function Class() {
|
48
|
+
// All construction is actually done in the init method
|
49
|
+
if ( !initializing && this.init )
|
50
|
+
this.init.apply(this, arguments);
|
51
|
+
}
|
52
|
+
|
53
|
+
// Populate our constructed prototype object
|
54
|
+
Class.prototype = prototype;
|
55
|
+
|
56
|
+
// Enforce the constructor to be what we expect
|
57
|
+
Class.prototype.constructor = Class;
|
58
|
+
|
59
|
+
// And make this class extendable
|
60
|
+
Class.extend = arguments.callee;
|
61
|
+
|
62
|
+
return Class;
|
63
|
+
};
|
64
|
+
})();
|
65
|
+
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<div class="ih-row">
|
2
2
|
<%= simple_form_for @report, html: @report.persisted? ? ajax_form_hash( '#report_info_container' ) : {} do |f| %>
|
3
3
|
<div class="ih-span one-quarter">
|
4
|
-
<%= f.input :name %>
|
4
|
+
<%= f.input :name, minlength: false %>
|
5
5
|
</div>
|
6
6
|
<div class="ih-span one-quarter">
|
7
7
|
<%= f.input :resource_type,
|
@@ -18,7 +18,9 @@
|
|
18
18
|
label: false, include_blank: false %>
|
19
19
|
</div>
|
20
20
|
<div class="ih-row" <%= revealer_target_attrs("sharing_options") %>>
|
21
|
-
|
21
|
+
<%= ClarkKent.user_class_name %>
|
22
|
+
|
23
|
+
<%= f.input :sharing_scope_id, as: :hidden, input_html: {value: current_user.id, data: {foo: ClarkKent.user_class_name}}, wrapper_html: revealer_option("sharing_options", trigger: ClarkKent.user_class_name).merge(id: "sharing_options_#{ClarkKent.user_class_name}") %>
|
22
24
|
<% ClarkKent::SharingScopeKind.custom_for_user(current_user).each do |sharing_scope_kind| %>
|
23
25
|
<% if sharing_scope_kind.associated_containers_for(current_user).respond_to? :each %>
|
24
26
|
<%= f.input :sharing_scope_id, collection: sharing_scope_kind.associated_containers_for(current_user), label: false, include_blank: false,
|
data/lib/clark_kent/version.rb
CHANGED
data/lib/clark_kent.rb
CHANGED
@@ -12,12 +12,12 @@ module ClarkKent
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def self.config(options)
|
15
|
-
@@resource_options = options[:resource_options].map{|option_hash| ClarkKent::ResourceOption.new option_hash}
|
15
|
+
@@resource_options = options[:resource_options].map{|option_hash| ClarkKent::ResourceOption.new option_hash} if options.has_key? :resource_options
|
16
16
|
@@user_class_name = options[:user_class_name]
|
17
17
|
@@bucket_name = options[:bucket_name]
|
18
18
|
@@other_sharing_scopes = options[:other_sharing_scopes]
|
19
19
|
base_controller_name = options[:base_controller_name]
|
20
|
-
@@base_controller = base_controller_name.constantize
|
20
|
+
@@base_controller = base_controller_name.constantize if base_controller_name.present?
|
21
21
|
@@custom_report_links = options[:custom_report_links] || []
|
22
22
|
end
|
23
23
|
|
data/test/clark_kent_test.rb
CHANGED
@@ -1,26 +1,23 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
3
|
class ClarkKent::ReportColumnsControllerTest < ControllerTest
|
4
|
-
|
4
|
+
include Rails.application.routes.mounted_helpers
|
5
5
|
let(:report) {ClarkKent::Report.first}
|
6
6
|
|
7
|
-
setup do
|
8
|
-
@routes = ClarkKent::Engine.routes
|
9
|
-
end
|
10
|
-
|
11
7
|
it "should create a report column" do
|
12
|
-
|
8
|
+
post clark_kent.report_columns_path(report_column: {report_id: report.id, column_name: 'user_name'}), xhr: true
|
13
9
|
assert_response :success
|
14
10
|
end
|
15
11
|
|
16
12
|
it "should reject a report column with no column_name" do
|
17
|
-
|
13
|
+
post clark_kent.report_columns_path(report_column: {report_id: report.id}), xhr: true
|
18
14
|
assert_response :conflict
|
19
15
|
@response.body.must_match /can[^t]*t be blank/
|
20
16
|
end
|
21
17
|
|
22
18
|
it "should reject a report column with unusable sort" do
|
23
|
-
|
19
|
+
post clark_kent.report_columns_path( report_column: {
|
20
|
+
report_id: report.id, column_name: 'user_name', report_sort: 'ascending'} ), xhr: true
|
24
21
|
assert_response :conflict
|
25
22
|
@response.body.must_match 'This column is not sortable.'
|
26
23
|
end
|
@@ -1,30 +1,30 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
3
|
class ClarkKent::ReportFiltersControllerTest < ControllerTest
|
4
|
+
include Rails.application.routes.mounted_helpers
|
4
5
|
|
5
6
|
setup do
|
6
|
-
@routes = ClarkKent::Engine.routes
|
7
7
|
@report = ClarkKent::Report.first
|
8
8
|
@report_email = @report.report_emails.create(when_to_send: 'Monday', name: 'Owner Arrival')
|
9
9
|
@current_user = User.first
|
10
10
|
end
|
11
11
|
|
12
12
|
test "it should create a report filter" do
|
13
|
-
post
|
13
|
+
post clark_kent.report_filters_path(report_filter: {filterable_id: @report.id, filterable_type: "ClarkKent::Report", filter_name: "user_email", filter_value: "taproot@gmail.com"})
|
14
14
|
assert_response :success
|
15
15
|
report_filter = ClarkKent::ReportFilter.order(id: :desc).first
|
16
16
|
report_filter.type.must_equal 'ClarkKent::ReportStringFilter'
|
17
17
|
end
|
18
18
|
|
19
19
|
test "it should create an object report filter" do
|
20
|
-
post
|
20
|
+
post clark_kent.report_filters_path(report_filter: {filterable_id: @report.id, filterable_type: "ClarkKent::Report", filter_name: "user_id", filter_value: @current_user.id})
|
21
21
|
assert_response :success
|
22
22
|
report_filter = ClarkKent::ReportFilter.order(id: :desc).first
|
23
23
|
report_filter.type.must_equal 'ClarkKent::ReportObjectFilter'
|
24
24
|
end
|
25
25
|
|
26
26
|
test "it should create a date report filter" do
|
27
|
-
|
27
|
+
post clark_kent.report_filters_path(report_filter: {filterable_id: @report_email.id, filterable_type: "ClarkKent::Report", filter_name: 'created_at', duration: 'week', kind_of_day: 'Monday', offset: 'last_week'})
|
28
28
|
assert_response :success
|
29
29
|
report_filter = ClarkKent::ReportFilter.order(id: :desc).first
|
30
30
|
report_filter.type.must_equal 'ClarkKent::ReportDateFilter'
|
@@ -32,37 +32,37 @@ class ClarkKent::ReportFiltersControllerTest < ControllerTest
|
|
32
32
|
|
33
33
|
test "should get the edit form for a string filter" do
|
34
34
|
filter = @report_email.report_filters.create(type: 'ClarkKent::ReportStringFilter', filter_name: "user_email", filter_value: "taproot@gmail.com")
|
35
|
-
get
|
35
|
+
get clark_kent.edit_report_filter_path(filter.id)
|
36
36
|
assert_response :success
|
37
37
|
end
|
38
38
|
|
39
39
|
test "should get the edit form for an object filter" do
|
40
40
|
filter = @report_email.report_filters.create(type: 'ClarkKent::ReportObjectFilter', filter_name: "user_id", filter_value: @current_user.id)
|
41
|
-
get
|
41
|
+
get clark_kent.edit_report_filter_path(filter.id)
|
42
42
|
assert_response :success
|
43
43
|
end
|
44
44
|
|
45
45
|
test "should get the edit form for a date filter" do
|
46
46
|
filter = @report_email.report_filters.create(type: 'ClarkKent::ReportDateFilter', filter_name: 'created_at', duration: 'week', kind_of_day: 'Monday', offset: 'last_week')
|
47
|
-
get
|
47
|
+
get clark_kent.edit_report_filter_path(filter.id)
|
48
48
|
assert_response :success
|
49
49
|
end
|
50
50
|
|
51
51
|
test "should get the show view for a string filter" do
|
52
52
|
filter = @report_email.report_filters.create(type: 'ClarkKent::ReportStringFilter', filter_name: "user_email", filter_value: "taproot@gmail.com")
|
53
|
-
get
|
53
|
+
get clark_kent.report_filter_path(filter.id)
|
54
54
|
assert_response :success
|
55
55
|
end
|
56
56
|
|
57
57
|
test "should get the show view for an object filter" do
|
58
58
|
filter = @report_email.report_filters.create(type: 'ClarkKent::ReportObjectFilter', filter_name: "user_id", filter_value: @current_user.id)
|
59
|
-
get
|
59
|
+
get clark_kent.report_filter_path(filter.id)
|
60
60
|
assert_response :success
|
61
61
|
end
|
62
62
|
|
63
63
|
test "should get the show view for a date filter" do
|
64
64
|
filter = @report_email.report_filters.create(type: 'ClarkKent::ReportDateFilter', filter_name: 'created_at', duration: 'week', kind_of_day: 'Monday', offset: 'last_week')
|
65
|
-
get
|
65
|
+
get clark_kent.report_filter_path(filter.id)
|
66
66
|
assert_response :success
|
67
67
|
end
|
68
68
|
end
|
@@ -1,31 +1,30 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
3
|
class ClarkKent::ReportsControllerTest < ControllerTest
|
4
|
+
include Rails.application.routes.mounted_helpers
|
4
5
|
|
5
6
|
let(:report) {ClarkKent::Report.first}
|
6
7
|
let(:current_user) {User.first}
|
7
8
|
|
8
9
|
setup do
|
9
|
-
@routes = ClarkKent::Engine.routes
|
10
10
|
@report_email = report.report_emails.create(when_to_send: 'Monday', name: 'Owner Arrival')
|
11
11
|
end
|
12
12
|
|
13
13
|
it "should get index" do
|
14
|
-
get
|
14
|
+
get clark_kent.reports_path(current_user_id: current_user.id)
|
15
15
|
assert_response :success
|
16
16
|
end
|
17
17
|
|
18
18
|
it "should get new" do
|
19
|
-
get
|
19
|
+
get clark_kent.new_report_path(current_user_id: current_user.id)
|
20
20
|
assert_response :success
|
21
21
|
end
|
22
22
|
|
23
23
|
it "should create report" do
|
24
|
-
post :
|
25
|
-
{report: {
|
24
|
+
post clark_kent.reports_path(report: {
|
26
25
|
name: 'delete me', resource_type: report.resource_type,
|
27
26
|
sharing_scope_id: report.sharing_scope_id, sharing_scope_type: report.sharing_scope_type },
|
28
|
-
current_user_id: current_user.id
|
27
|
+
current_user_id: current_user.id)
|
29
28
|
report = ClarkKent::Report.find_by(name: 'delete me')
|
30
29
|
report.wont_be_nil
|
31
30
|
report.destroy
|
@@ -33,11 +32,10 @@ class ClarkKent::ReportsControllerTest < ControllerTest
|
|
33
32
|
end
|
34
33
|
|
35
34
|
it "should render errors during creation" do
|
36
|
-
post :
|
37
|
-
{report: {
|
35
|
+
post clark_kent.reports_path(report: {
|
38
36
|
name: 'delete me', resource_type: '',
|
39
37
|
sharing_scope_id: report.sharing_scope_id, sharing_scope_type: report.sharing_scope_type },
|
40
|
-
current_user_id: current_user.id
|
38
|
+
current_user_id: current_user.id)
|
41
39
|
report = ClarkKent::Report.find_by(name: 'delete me')
|
42
40
|
report.must_be_nil
|
43
41
|
assert_response :conflict
|
@@ -45,42 +43,42 @@ class ClarkKent::ReportsControllerTest < ControllerTest
|
|
45
43
|
end
|
46
44
|
|
47
45
|
it "should show report" do
|
48
|
-
get
|
46
|
+
get clark_kent.report_path(id: report, current_user_id: current_user.id)
|
49
47
|
assert_response :success
|
50
48
|
end
|
51
49
|
|
52
50
|
it "should show report results" do
|
53
|
-
get
|
51
|
+
get clark_kent.report_path(id: report, current_user_id: current_user.id, run_report: true, created_at_until: Date.today.strftime("%m/%d/%Y"), created_at_from: Date.yesterday)
|
54
52
|
assert_response :success
|
55
53
|
@response.body.must_match 'Guitar strings'
|
56
54
|
end
|
57
55
|
|
58
56
|
it "should show report run errors" do
|
59
|
-
get
|
57
|
+
get clark_kent.report_path(id: report, current_user_id: current_user.id, run_report: true)
|
60
58
|
assert_response :success
|
61
59
|
@response.body.must_match 'At least one date range is required.'
|
62
60
|
end
|
63
61
|
|
64
62
|
it "should get edit" do
|
65
|
-
get
|
63
|
+
get clark_kent.edit_report_path(id: report, current_user_id: current_user.id)
|
66
64
|
assert_response :success
|
67
65
|
end
|
68
66
|
|
69
67
|
it "should update report" do
|
70
|
-
patch
|
68
|
+
patch clark_kent.report_path(id: report,
|
71
69
|
report: {
|
72
70
|
name: report.name, resource_type: report.resource_type,
|
73
71
|
sharing_scope_id: report.sharing_scope_id, sharing_scope_type: report.sharing_scope_type },
|
74
|
-
current_user_id: current_user.id
|
72
|
+
current_user_id: current_user.id)
|
75
73
|
assert_response :success
|
76
74
|
end
|
77
75
|
|
78
76
|
it "should destroy report" do
|
79
77
|
report = ClarkKent::Report.create(name: 'delete me', resource_type: 'Order')
|
80
78
|
assert_difference('ClarkKent::Report.count', -1) do
|
81
|
-
delete
|
79
|
+
delete clark_kent.report_path(id: report, current_user_id: current_user.id)
|
82
80
|
end
|
83
81
|
|
84
|
-
assert_redirected_to reports_path
|
82
|
+
assert_redirected_to clark_kent.reports_path
|
85
83
|
end
|
86
84
|
end
|
@@ -10,4 +10,7 @@
|
|
10
10
|
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
|
11
11
|
// about supported directives.
|
12
12
|
//
|
13
|
-
//=
|
13
|
+
//= require jquery
|
14
|
+
//= require simple_inheritance
|
15
|
+
//= require hooch
|
16
|
+
//= require thin_man
|
@@ -2,10 +2,10 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title>Dummy</title>
|
5
|
-
<%= stylesheet_link_tag 'application', media: 'all'
|
6
|
-
<%= stylesheet_link_tag "clark_kent/application.css" %>
|
7
|
-
<%= javascript_include_tag 'application'
|
8
|
-
<%= javascript_include_tag 'clark_kent/application' %>
|
5
|
+
<%= stylesheet_link_tag 'application', media: 'all' unless Rails.env.test? %>
|
6
|
+
<%= stylesheet_link_tag "clark_kent/application.css" unless Rails.env.test? %>
|
7
|
+
<%= javascript_include_tag 'application' unless Rails.env.test? %>
|
8
|
+
<%= javascript_include_tag 'clark_kent/application' unless Rails.env.test? %>
|
9
9
|
<%= csrf_meta_tags %>
|
10
10
|
</head>
|
11
11
|
<body>
|
data/test/dummy/config/routes.rb
CHANGED
Binary file
|
data/test/dummy/db/test.sqlite3
CHANGED
Binary file
|