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.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/clark_kent/application.js +0 -18304
  3. data/app/assets/javascripts/simple_inheritance.js +65 -0
  4. data/app/controllers/clark_kent/report_columns_controller.rb +1 -1
  5. data/app/controllers/clark_kent/report_emails_controller.rb +1 -1
  6. data/app/controllers/clark_kent/report_filters_controller.rb +1 -1
  7. data/app/controllers/clark_kent/reports_controller.rb +1 -0
  8. data/app/controllers/clark_kent/user_report_emails_controller.rb +1 -1
  9. data/app/views/clark_kent/reports/_edit.html.erb +4 -2
  10. data/app/views/clark_kent/reports/_print_report.html.erb +1 -1
  11. data/lib/clark_kent/version.rb +1 -1
  12. data/lib/clark_kent.rb +2 -2
  13. data/test/clark_kent_test.rb +1 -1
  14. data/test/controllers/clark_kent/report_columns_controller_test.rb +5 -8
  15. data/test/controllers/clark_kent/report_filters_controller_test.rb +10 -10
  16. data/test/controllers/clark_kent/reports_controller_test.rb +15 -17
  17. data/test/dummy/app/assets/javascripts/application.js +4 -1
  18. data/test/dummy/app/views/layouts/application.html.erb +4 -4
  19. data/test/dummy/config/routes.rb +1 -1
  20. data/test/dummy/db/development.sqlite3 +0 -0
  21. data/test/dummy/db/test.sqlite3 +0 -0
  22. data/test/dummy/log/development.log +1110 -0
  23. data/test/dummy/log/test.log +7433 -0
  24. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-0/-0L0Fg4BGHbDmmVa5NUQxdPkvsSY4RtSM2QKwrr0vEk.cache +1 -0
  25. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-U/-UBNVg7cURt3BUwtd4Xpj-ryTf-XAVvOPsXKdoZhxFU.cache +0 -0
  26. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0B/0BYXZ7zTP6YSwkVAyYOp5xHdkxV-Fx9VL6kktd1hZo8.cache +2 -0
  27. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0N/0NiITpiaOPZ4thB12mQo50H9mAe4rwxw3jZf2MlSa0M.cache +1 -0
  28. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0T/0ts0Tb7Mxh_rGu06uDXelF6zSt3coaFsPLjuyze13NQ.cache +1 -0
  29. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0u/0uhzw21s-VA1eXzAAkINysXvWoXk5XVSKVSsy0lGqes.cache +0 -0
  30. data/test/dummy/tmp/cache/assets/sprockets/v3.0/1R/1RFj4MxJJ3ofR95vPbkOhWNUtP_SYlnomaJK8jadFrA.cache +1 -0
  31. data/test/dummy/tmp/cache/assets/sprockets/v3.0/1b/1bQewWjBJ2tgClOxNe6nQHtF4j4WPF7X8JJTMklei8M.cache +2 -0
  32. data/test/dummy/tmp/cache/assets/sprockets/v3.0/2z/2zWHXU2dP4Ji3LZR486gYjBm-NjmrTC9693aTcMaUfo.cache +1 -0
  33. data/test/dummy/tmp/cache/assets/sprockets/v3.0/3U/3UlNyNpL57GLZF2iiywtuWCytbBmm4WPUELuS4Pqf2E.cache +0 -0
  34. data/test/dummy/tmp/cache/assets/sprockets/v3.0/3h/3hrdouCoq6_Rur4ZsntB1ZOXTc7FPv-rXPI4nrE1d4I.cache +1 -0
  35. data/test/dummy/tmp/cache/assets/sprockets/v3.0/4i/4iuJdQZbrp5NnW2iStrYNJGsAwCX4CNl980v_D4dMcM.cache +1 -0
  36. data/test/dummy/tmp/cache/assets/sprockets/v3.0/61/610ijk1QpGaKMdDoZ-9tr6JkJC4ZZj_mL13hfffeyUU.cache +1 -0
  37. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6B/6Bm9QfbYkPdwuzfOfOAMD2ge7EZukFhUraTTO4ZkPLA.cache +0 -0
  38. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6F/6Fb6Tzzn0hn_UhY36wGQQZTbudfvNUcp3UQENnIK-mY.cache +1 -0
  39. data/test/dummy/tmp/cache/assets/sprockets/v3.0/7P/7PKUu4gCflhCT2lqkkj3JB2DccMQzd7UOSIzOCVMplU.cache +0 -0
  40. data/test/dummy/tmp/cache/assets/sprockets/v3.0/83/83SG6qtgTvX57QtsF1VOk2pa5LT8E8PZeF-jCdOGkpg.cache +0 -0
  41. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ai/AiCc-MO1WFvbykCIxzbhT--YYiGkdH16vWN4BLlhWso.cache +1 -0
  42. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ar/ArHpN9VYgPlGZTmw0s_tdrPt4i5fwenbJ2_CsIicviU.cache +0 -0
  43. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Cn/Cn8J9uQ5DMnyNe6duBsT99kKSx-5cdg86iewO_v5k4w.cache +0 -0
  44. data/test/dummy/tmp/cache/assets/sprockets/v3.0/D0/D0tcTd9d7V_faDozeR_ht6xPyqJO-LUXBqFiMHOhnsM.cache +3 -0
  45. data/test/dummy/tmp/cache/assets/sprockets/v3.0/DK/dk_-qS9IG4dJu_9JEYZN1_4Xd_SMGu1VIp-rhbNNHOs.cache +1 -0
  46. data/test/dummy/tmp/cache/assets/sprockets/v3.0/DS/DSyEr7LeWLvdAuSu-d4AnxY5kCWWYRJT9EETGYWrISs.cache +1 -0
  47. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Er/ErlLOtSTrSUrHcZn84Zq20XXg16liHv2enp2LyTaoV4.cache +0 -0
  48. data/test/dummy/tmp/cache/assets/sprockets/v3.0/FE/FE7p2GsEY2mIyh7jIFOXaOzABBYN1Hw0ltlbnG9M1zc.cache +0 -0
  49. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Fr/FrHfx4ZpdU_fjCRGH25uPQz_E1-rEhqozehMrl-T-zM.cache +0 -0
  50. data/test/dummy/tmp/cache/assets/sprockets/v3.0/G5/G5sqx-RAHUts3KQ-RDpnc6aCw8nf3PIRrGGcfmj1CQU.cache +1 -0
  51. data/test/dummy/tmp/cache/assets/sprockets/v3.0/G6/G6iHHyaVP-UGGHr5V-B_li7KUqSXK8tYDoK9P6k-pGU.cache +0 -0
  52. data/test/dummy/tmp/cache/assets/sprockets/v3.0/GI/GIYEZnyEVMvX_cCy-_boFcPEq5jtaVMtmxRN4fsAD2s.cache +1 -0
  53. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ge/GeWP1bjaGKBsNNa9YqgRrncy8dppNYHY45Xy5yjkZvY.cache +1 -0
  54. data/test/dummy/tmp/cache/assets/sprockets/v3.0/H4/H4Lr4MBFHuAgEf8tXBc8VYlEgvzwdzHoLXuLJgxhqLY.cache +1 -0
  55. data/test/dummy/tmp/cache/assets/sprockets/v3.0/H7/H7drCym0KJ6xwe90pHYNUkAKohmXrbtikDWSFLdBQ_U.cache +0 -0
  56. data/test/dummy/tmp/cache/assets/sprockets/v3.0/HX/HXP18gT_fCq75oB3hV1_wlmZy7BixbeG6FcPhkBP3iY.cache +0 -0
  57. data/test/dummy/tmp/cache/assets/sprockets/v3.0/I6/I6StAguGtwqD4tKbUX1IpmOvePw36mSJ74CGdpxTdEg.cache +0 -0
  58. data/test/dummy/tmp/cache/assets/sprockets/v3.0/JO/JOFX6tRegYOPRQV2XUTUbmmxrSbI2raAeRt8DajJ2Ys.cache +0 -0
  59. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Jz/JzV7JBsmFuyIvYxAupTpvgBTosrBngPUVaUh8tQJR7s.cache +2 -0
  60. data/test/dummy/tmp/cache/assets/sprockets/v3.0/KC/KCc-Z1kuMO3d0TNBuaVZ-eQW4Le4sVU0kW4MN-WFE0Y.cache +0 -0
  61. data/test/dummy/tmp/cache/assets/sprockets/v3.0/L7/L7Oc7oN-Y66pgfK5CVi-CJ7Qs3odFMbfmirsZnhVPX4.cache +2 -0
  62. data/test/dummy/tmp/cache/assets/sprockets/v3.0/LE/levk1w7lsb5L4Wy1HfcpJFhwkWhsWhZNeQ9rzKkinS4.cache +0 -0
  63. data/test/dummy/tmp/cache/assets/sprockets/v3.0/LO/LOIUYr-VaBW2zPacZpxqDOX_rR91h5xCoihgw6sHEoc.cache +0 -0
  64. data/test/dummy/tmp/cache/assets/sprockets/v3.0/LO/LOIw_QrLu6EqRv2po1AhlmvJ5T0AcIZuJV0rK15RRx0.cache +0 -0
  65. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Lw/LwnHcLDETL1GzQVg3YuxtiG3vVBySQUca7lVs7MUFDs.cache +1 -0
  66. data/test/dummy/tmp/cache/assets/sprockets/v3.0/N9/N9sKwx8L1ilHQWY9K_Uir94XvUtovItoGSBqn4xqhH4.cache +1 -0
  67. data/test/dummy/tmp/cache/assets/sprockets/v3.0/NA/NAeVF88DxILWyiwIWdSvemZ_3Iy5syFpp4ZtcwLrNHI.cache +1 -0
  68. data/test/dummy/tmp/cache/assets/sprockets/v3.0/O2/O2CakkmG8tcFTvVq96iYKVr4SKP5tS2bFTH8LtL-X0Y.cache +2 -0
  69. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ow/Ow_kJRydJ0104-K9wVnfbL3r6bvZZDJsAxBHqC3SX5w.cache +0 -0
  70. data/test/dummy/tmp/cache/assets/sprockets/v3.0/PS/PSNqAExSoKfGC8RPd_9hcUySwN50QxYLSXwc2jgmAl8.cache +1 -0
  71. data/test/dummy/tmp/cache/assets/sprockets/v3.0/P_/P_3M-Jiq0bo4BLxMLSDZZuGzJmLgscNmtqi9g3lEloI.cache +1 -0
  72. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Pk/PkT9phfMJWcV4jrnCfL7Jvih35cov_vHJHRkWR-_DFA.cache +1 -0
  73. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Q4/Q4JJmbJqtzBmxLrmO-LiKlPEmj0FchS5klKHF2oTw0w.cache +1 -0
  74. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Q7/Q7pQAMzkf9Eai40N0hYy-0EhOBPQp51FnK8EXUW_yKY.cache +0 -0
  75. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Qd/QdXUx-i42XUi4uQ7auuLEmS_uCb4yDMCU3mHFos183M.cache +0 -0
  76. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Qq/Qql0gIrVB_pVerZDdAcb310oPnwyunodyOIjyxHxfhI.cache +0 -0
  77. data/test/dummy/tmp/cache/assets/sprockets/v3.0/S9/S9g6Pd9z4CYX6KmYeQeYCeVt8if9388ddNHdP2xdjug.cache +0 -0
  78. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Sz/SziciEfBS0Njf0NHm6xvYpF0dnDopCV0isMpS3Z_r1g.cache +0 -0
  79. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ta/TaiyaQ0Vhv2vFeSe68t11CIefO9Q-vP_IhdMPddGbng.cache +1 -0
  80. data/test/dummy/tmp/cache/assets/sprockets/v3.0/UQ/UQ7u5cBK0hYCV0JMf_KY55i-HkKM6sqwo2B5jdHp9Pg.cache +0 -0
  81. data/test/dummy/tmp/cache/assets/sprockets/v3.0/U_/U_RKA_XdPeEShhzuMHxV-Meo5XDBpQlKWj5xLwQjQiU.cache +1 -0
  82. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Uk/UkfFS7omfUaxb-0L233oOxqx1J0nv4aK1tZScTKLy58.cache +1 -0
  83. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Uo/UomUI8HJOreQa_noOGfKPRdG_zg1H6zMtT5WAEOH6sk.cache +0 -0
  84. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Uu/UuZmPxzvMDYu_Q_giBMXpylrIHQf3hZjgKtBkQgBuDE.cache +0 -0
  85. data/test/dummy/tmp/cache/assets/sprockets/v3.0/V4/V4rzANiZfSSSAAwXXQ-d4jKiNbY4ujTfH7_KYr9u9Oo.cache +1 -0
  86. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Vn/VnAFOHNCQVa-P8Ws72UZoKknzowBjPyTKfOYGBGRi6U.cache +1 -0
  87. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Xx/XxpL4Et-fpQKIog5T34AHr2LU8JgybzaanY-gZsCoWk.cache +1 -0
  88. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Zl/ZlHu4FuCQKqHTj1mXd284etnphVPsUwrLfo3cN71CVM.cache +0 -0
  89. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Zw/ZwkV8oqiHe0SR5pP-S8N8B0L0u3LjgMr4LZAxuvlCJU.cache +1 -0
  90. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_1/_1rQvKW-S_rQbxL3E__W5xhfAXNGVchxbHHRWgHeLFA.cache +1 -0
  91. data/test/dummy/tmp/cache/assets/sprockets/v3.0/a5/a5S-Iu4depRCTrISyXGFmGRYjPvrvkwZ8N7vnDuX1Q8.cache +3 -0
  92. data/test/dummy/tmp/cache/assets/sprockets/v3.0/aQ/aQqhiicE4G53Q6MOyZUG58E4zi2g6Kq2AMH0S229O_g.cache +1 -0
  93. data/test/dummy/tmp/cache/assets/sprockets/v3.0/aV/aVckB8YYoPWAk29v_fWbyhotKqrMll4wYE6FjZW9T08.cache +1 -0
  94. data/test/dummy/tmp/cache/assets/sprockets/v3.0/cz/czOFcOwCu6WDDj758XAcb_NSwWVnXEo6Q610zjq2ptE.cache +0 -0
  95. data/test/dummy/tmp/cache/assets/sprockets/v3.0/dH/DH7TdRhj2aeeu4kVl0LSrQ_iBx-Z-Q-bpb6JO1xfgYw.cache +1 -0
  96. data/test/dummy/tmp/cache/assets/sprockets/v3.0/dp/dp6ES4HxA6oubiiEJcG90G6OA3iY0TjwCfw5DyfTU5Q.cache +2 -0
  97. data/test/dummy/tmp/cache/assets/sprockets/v3.0/g-/g-462i1XQhX9ItuqFXAvXKr2eaToeDFWuUnNhG-K1CY.cache +0 -0
  98. data/test/dummy/tmp/cache/assets/sprockets/v3.0/gG/gG71lonb1CAI6dPj7GYFuotke_F5np0b0yDeUbsIOnc.cache +1 -0
  99. data/test/dummy/tmp/cache/assets/sprockets/v3.0/gz/gziPwQAKR0Oby2vO5z9fiJ4LogjnAdxoEFsWb4qMI1Y.cache +1 -0
  100. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hR/hRHk0bs006tuYojpKvtX46k9HqOra8cKkgcBEjhiy-g.cache +1 -0
  101. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hl/hlPqgcjpZkjdqBWwyQGurB-8kOCYODAL56h-Q5rM4wg.cache +1 -0
  102. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hn/hnjY67w8yWIiNucpZuN8DOtAGkBt6BurtIoU3aTq_b0.cache +1 -0
  103. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ho/houmi3aA6sn3Bhoi_Xt1j4InZoGSyemiCVsjth9MPy0.cache +1 -0
  104. data/test/dummy/tmp/cache/assets/sprockets/v3.0/i8/i8NXfwSkwbTE3e3IPpEbMXF0b74GP6CMiKgHK8EOhIE.cache +1 -0
  105. data/test/dummy/tmp/cache/assets/sprockets/v3.0/iG/iGNbL0JpS9uz18Jn0yH7idLzFa4zGuimqLc_Rm8XA64.cache +1 -0
  106. data/test/dummy/tmp/cache/assets/sprockets/v3.0/iO/IO34y_hf6hCtoYX66Gy1OQwwNyCm1oVdLMTIiFhtPgM.cache +0 -0
  107. data/test/dummy/tmp/cache/assets/sprockets/v3.0/iO/iOTzoRA9QfY92nk5yaZe2nSmmMpHT3n2qCtWevXxauk.cache +0 -0
  108. data/test/dummy/tmp/cache/assets/sprockets/v3.0/j3/j3fQCwXxtn54O01EWZgvvy7nkVXolfz9CUIoicB6Ed0.cache +0 -0
  109. data/test/dummy/tmp/cache/assets/sprockets/v3.0/j4/j4NsV3MgY6pNjZe2gZZTua_r4j7A2BKBzaTIbafzYfc.cache +1 -0
  110. data/test/dummy/tmp/cache/assets/sprockets/v3.0/jU/jUktWNbR4V7n34UAZe7uJpmEofhflF0bVtIO2BgxyJ8.cache +2 -0
  111. data/test/dummy/tmp/cache/assets/sprockets/v3.0/jx/jxwIyHzXRiGo1AqrKR3pfOSzpgD83Klxdm-6nhRMk0o.cache +1 -0
  112. data/test/dummy/tmp/cache/assets/sprockets/v3.0/kr/krGEhVHZTowuh3ffZ8AIcbau7J86mCOga1uYXgeoPLM.cache +1 -0
  113. data/test/dummy/tmp/cache/assets/sprockets/v3.0/kw/kwhSW4DjVPAPIaj2itcX4XrVbCWd0RL9Wd12k3IoqaE.cache +1 -0
  114. data/test/dummy/tmp/cache/assets/sprockets/v3.0/lI/lIpNbWoDPWAU5AG5y55YcARgA0rXRX2WqGSu7RTuFdg.cache +2 -0
  115. data/test/dummy/tmp/cache/assets/sprockets/v3.0/lL/lLalwm94gg0vb5_n7hgVjeyD9hpjuzgzZlIVH6_7Dt0.cache +1 -0
  116. data/test/dummy/tmp/cache/assets/sprockets/v3.0/m9/m9gA9cyMpVTZyvL0F5vPGInwI_gZNUj4z6YIZ4NqZJQ.cache +1 -0
  117. data/test/dummy/tmp/cache/assets/sprockets/v3.0/mX/mXn1imFlOXE_-rJslKTjNEHkYPu8FlBJqxxou49aqVI.cache +0 -0
  118. data/test/dummy/tmp/cache/assets/sprockets/v3.0/n1/n1gA9ADYs9-UXFsMMzQl4NKmRvcjb_oel3VvxGx62Zw.cache +1 -0
  119. data/test/dummy/tmp/cache/assets/sprockets/v3.0/nJ/nJToKKwpLq5CtZF9Cc4-ig1mWehJH2P1vYAbq3k-dVs.cache +0 -0
  120. data/test/dummy/tmp/cache/assets/sprockets/v3.0/nP/nPUnQ0H05CXLwDnPypHLqBDgYVU276oGnUbvUevD1iw.cache +1 -0
  121. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ns/nsIiYnjsFg1IofAvvSMMv_gpWT9ml22T9zznmlvlBo4.cache +0 -0
  122. data/test/dummy/tmp/cache/assets/sprockets/v3.0/o9/o9z6uyOlFoP_A6PpzY1whUt63W_2i43yalBK1oj3f4w.cache +0 -0
  123. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oF/oFh1WaNEewjQXIVlAXGvqEXX4BiKRIXjEkZ12hzGPNA.cache +1 -0
  124. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oU/OUXQrJzVMhIL4qSaLlIMB_dhn-YAXUmztjOc2JTdqKk.cache +0 -0
  125. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pN/pNQWGhHzPOZvvwPqQ9kTAaGc8TcVmo-6Rh33d1LOvEg.cache +0 -0
  126. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pV/pVFuzkK-1C0SjMtyAp5CDbzL-BZai5SnraGlYdarTRw.cache +1 -0
  127. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pZ/pZQuEqBSUHxSb2boLOcg0kcAMH-Axuy8wEQGHHnwfL8.cache +1 -0
  128. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ph/ph4vUNt__48ua_NuqdIqD5BYHz4qTAil0B6hgmnlKk8.cache +2 -0
  129. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pj/pjn30wUhSluytX0xPHNzzDHU2vMesmHVtD57s4VeLE0.cache +0 -0
  130. data/test/dummy/tmp/cache/assets/sprockets/v3.0/rL/rL0KXwlm64NEY9xtG71u5m8zi73_CFdRR_ViL-E7VsY.cache +1 -0
  131. data/test/dummy/tmp/cache/assets/sprockets/v3.0/s5/s5HJ9AkmIcm4bNVpNv3BYRgWwyccndxEEiap7KGQoUQ.cache +1 -0
  132. data/test/dummy/tmp/cache/assets/sprockets/v3.0/sB/sBj8wrU0HAS2wQaGjacz3W-7OYg5XdjTCj0wcBXzodI.cache +0 -0
  133. data/test/dummy/tmp/cache/assets/sprockets/v3.0/sN/sNYZtFryVJgyqlyNTBa860zr49DYb3OWwUav8FeezFA.cache +1 -0
  134. data/test/dummy/tmp/cache/assets/sprockets/v3.0/sf/sfqwoHZYvC4PXpRYVqZxVebLy6hYSEAzAMjaSAeO-lU.cache +0 -0
  135. data/test/dummy/tmp/cache/assets/sprockets/v3.0/tI/tIKpgL-hHQsroWdeCGz-EBgEK0kLH6NQ0_-zIv04_Hw.cache +1 -0
  136. data/test/dummy/tmp/cache/assets/sprockets/v3.0/tS/tSQleXpvC0HkYFE5YKqy41d55pjzXGi9URalkW1ZHBQ.cache +0 -0
  137. data/test/dummy/tmp/cache/assets/sprockets/v3.0/tb/tbl9f7iFYi7AnPJrsi9ayLKZ5PexxljORMMKwsKFHnU.cache +0 -0
  138. data/test/dummy/tmp/cache/assets/sprockets/v3.0/tg/tgli9AjJl_9L21may2WxKvkY2YG_BIx0cMhToa9x-3U.cache +0 -0
  139. data/test/dummy/tmp/cache/assets/sprockets/v3.0/vH/vH85OKRovJEXwqxnylN6LDHXEXYug7cpnMLOz9ZIV8E.cache +0 -0
  140. data/test/dummy/tmp/cache/assets/sprockets/v3.0/vs/VsWhNDD4LM5qss-WxHpsRc7HCvQdwnQBgm9MlP9DwrY.cache +1 -0
  141. data/test/dummy/tmp/cache/assets/sprockets/v3.0/vs/vsZGqB8prG7qQkmhqTGJxhyPQmIM_ObwCGICnIHcGRk.cache +0 -0
  142. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wm/wmdjOordEV0pCW402_HtZfXskBxg6Kj46vNSi8cxSWs.cache +0 -0
  143. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wr/wrOXuxkZ9LGlXGQ4QSkMGiwbeUnt4PFmYbpZT09ZYW4.cache +0 -0
  144. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wt/wtxSIExeDiYHkJMFQdRq9imHQ87rPXvH4j1TQzCdJWQ.cache +2 -0
  145. data/test/dummy/tmp/cache/assets/sprockets/v3.0/x9/x9KjAYtVqQ_UX4idL4dfW_W7C_tbjeVGY34YdoOGaBo.cache +1 -0
  146. data/test/dummy/tmp/cache/assets/sprockets/v3.0/yJ/yJgiBE5wXwwNdWKAz3HZy-o2driD2AYmMXiZYO_OGms.cache +0 -0
  147. data/test/dummy/tmp/cache/assets/sprockets/v3.0/yK/yK3Jdtc3AV6cKk-QUhkN5n01MswN5yVIzMezSZRvxdY.cache +0 -0
  148. data/test/dummy/tmp/cache/assets/sprockets/v3.0/zn/znPtPsrRsihFLT534h5GArtJ3xeS7sZSAXeDojN1sWM.cache +2 -0
  149. data/test/test_helper.rb +1 -1
  150. 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
+ }
@@ -38,7 +38,7 @@ class ClarkKent::ReportColumnsController < ClarkKent::ApplicationController
38
38
 
39
39
  def destroy
40
40
  @report_column.destroy
41
- render nothing: true
41
+ head :ok
42
42
  end
43
43
 
44
44
  protected
@@ -29,7 +29,7 @@ class ClarkKent::ReportEmailsController < ClarkKent::ApplicationController
29
29
 
30
30
  def destroy
31
31
  @report_email.destroy
32
- render nothing: true
32
+ head :ok
33
33
  end
34
34
 
35
35
  protected
@@ -30,7 +30,7 @@ class ClarkKent::ReportFiltersController < ClarkKent::ApplicationController
30
30
 
31
31
  def destroy
32
32
  @report_filter.destroy
33
- render nothing: true
33
+ head :ok
34
34
  end
35
35
 
36
36
  protected
@@ -19,6 +19,7 @@ class ClarkKent::ReportsController < ClarkKent::ApplicationController
19
19
  if @report.errors.empty?
20
20
  render action: :edit
21
21
  else
22
+ puts @report.errors.full_messages
22
23
  render action: :new, status: :conflict
23
24
  end
24
25
  end
@@ -32,7 +32,7 @@ class ClarkKent::UserReportEmailsController < ClarkKent::ApplicationController
32
32
 
33
33
  def destroy
34
34
  @user_report_email.destroy
35
- render nothing: true
35
+ head :ok
36
36
  end
37
37
 
38
38
  def prepare_user_report_email
@@ -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
- <%= f.input :sharing_scope_id, as: :hidden, input_html: {value: current_user.id}, wrapper_html: revealer_option("sharing_options", trigger: ClarkKent.user_class_name).merge(id: "sharing_options_#{ClarkKent.user_class_name}") %>
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,
@@ -1,5 +1,5 @@
1
1
  <% if rows %>
2
- <% if rows.total_count > rows.count(:id) %>
2
+ <% if rows.total_count > 50 %>
3
3
  <%= link_to 'Print',
4
4
  'javascript:void(0)',
5
5
  onclick: "$('#print_report_modal').modal('show');",
@@ -1,3 +1,3 @@
1
1
  module ClarkKent
2
- VERSION = "0.9.1"
2
+ VERSION = "0.9.2"
3
3
  end
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
 
@@ -1,7 +1,7 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class ClarkKentTest < ActiveSupport::TestCase
4
- test ".bucket_name is configurable" do
4
+ it ".bucket_name is configurable" do
5
5
  ClarkKent.config(:bucket_name => "trololo")
6
6
  assert_match "trololo", ClarkKent.bucket_name
7
7
  end
@@ -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
- xhr :post, :create, params: {report_column: {report_id: report.id, column_name: 'user_name'}}
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
- xhr :post, :create, params: {report_column: {report_id: report.id}}
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
- xhr :post, :create, params: {report_column: {report_id: report.id, column_name: 'user_name', report_sort: 'ascending'}}
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 :create, params: {report_filter: {filterable_id: @report.id, filterable_type: "ClarkKent::Report", filter_name: "user_email", filter_value: "taproot@gmail.com"}}
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 :create, params: {report_filter: {filterable_id: @report.id, filterable_type: "ClarkKent::Report", filter_name: "user_id", filter_value: @current_user.id}}
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
- post :create, params: {report_filter: {filterable_id: @report_email.id, filterable_type: "ClarkKent::Report", filter_name: 'created_at', duration: 'week', kind_of_day: 'Monday', offset: 'last_week'}}
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 :edit, params: {id: filter.id}
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 :edit, params: {id: filter.id}
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 :edit, params: {id: filter.id}
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 :show, params: {id: filter.id}
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 :show, params: {id: filter.id}
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 :show, params: {id: filter.id}
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 :index, params: {current_user_id: current_user.id}
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 :new, params: {current_user_id: current_user.id}
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 :create, params:
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 :create, params:
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 :show, params: {id: report, current_user_id: current_user.id}
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 :show, params: {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}
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 :show, params: {id: report, current_user_id: current_user.id, run_report: true}
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 :edit, params: {id: report, current_user_id: current_user.id}
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 :update, params: {id: report,
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 :destroy, params: {id: report, current_user_id: current_user.id}
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
- //= require_tree .
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', 'data-turbolinks-track' => true %>
6
- <%= stylesheet_link_tag "clark_kent/application.css" %>
7
- <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
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>
@@ -1,6 +1,6 @@
1
1
  Rails.application.routes.draw do
2
2
 
3
- mount ClarkKent::Engine => "/reports"
3
+ mount ClarkKent::Engine => "/reports", as: 'clark_kent'
4
4
 
5
5
  resources :orders, only: [:show]
6
6
  end
Binary file
Binary file