revelry_content 0.0.1.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +21 -84
  3. data/Rakefile +1 -1
  4. data/app/assets/javascripts/revelry_content.js.coffee +3 -15
  5. data/app/assets/javascripts/revelry_content/components/Admin.js.cjsx +82 -78
  6. data/app/assets/javascripts/revelry_content/components/EditModeButton.js.cjsx +14 -15
  7. data/app/assets/javascripts/revelry_content/components/Loader.js.cjsx +9 -10
  8. data/app/assets/javascripts/revelry_content/components/Time.js.cjsx +13 -14
  9. data/app/assets/javascripts/revelry_content/components/TopBar.js.cjsx +15 -16
  10. data/app/assets/javascripts/revelry_content/components/editor.js.coffee +319 -287
  11. data/app/assets/javascripts/revelry_content/components/versions.js.coffee +154 -155
  12. data/app/assets/javascripts/revelry_content/config.js.coffee.erb +2 -2
  13. data/app/assets/javascripts/revelry_content/mixins/EditModeListener.coffee +3 -3
  14. data/app/assets/javascripts/revelry_content/models/Content.js.coffee +4 -4
  15. data/app/assets/javascripts/revelry_content/models/Version.js.coffee +5 -5
  16. data/app/assets/javascripts/revelry_content/setup.js +1 -0
  17. data/app/assets/stylesheets/revelry_content/components/buttons.scss +1 -1
  18. data/app/assets/stylesheets/revelry_content/components/loader.scss +1 -1
  19. data/app/controllers/{revelry_content → revelry/content}/application_controller.rb +1 -1
  20. data/app/controllers/{revelry_content → revelry/content}/contents_controller.rb +17 -12
  21. data/app/controllers/revelry/content/pages_controller.rb +30 -0
  22. data/app/controllers/{revelry_content → revelry/content}/versions_controller.rb +14 -6
  23. data/app/models/{revelry_content → revelry/content}/content.rb +25 -9
  24. data/app/models/{revelry_content → revelry/content}/content_version.rb +1 -1
  25. data/app/models/revelry/content/page.rb +6 -0
  26. data/app/views/layouts/revelry_content/application.html.erb +2 -2
  27. data/app/views/revelry_content/contents/_menus.html.erb +2 -2
  28. data/app/views/revelry_content/contents/index.html.erb +1 -1
  29. data/config/routes.rb +1 -1
  30. data/lib/generators/revelry/content/css_generator.rb +51 -0
  31. data/lib/generators/revelry/content/initializer_generator.rb +13 -0
  32. data/lib/generators/revelry/content/install_generator.rb +40 -0
  33. data/lib/generators/revelry/content/js_generator.rb +45 -0
  34. data/lib/generators/revelry/content/migrations_generator.rb +28 -0
  35. data/lib/generators/{revelry_content → revelry/content}/templates/create_revelry_content_contents.rb +0 -0
  36. data/lib/generators/revelry/content/templates/create_revelry_content_pages.rb +17 -0
  37. data/lib/generators/{revelry_content → revelry/content}/templates/create_versions.rb +0 -0
  38. data/lib/generators/revelry/content/templates/initializer.rb +13 -0
  39. data/lib/revelry/content/admin_concern.rb +13 -0
  40. data/lib/{revelry_content → revelry/content}/configuration.rb +2 -2
  41. data/lib/revelry/content/content_concern.rb +18 -0
  42. data/{app/helpers/revelry_content → lib/revelry/content}/contents_helper.rb +5 -5
  43. data/lib/{revelry_content → revelry/content}/engine.rb +5 -3
  44. data/lib/{revelry_content → revelry/content}/js_exporter.rb +4 -4
  45. data/lib/{revelry_content → revelry/content}/railtie.rb +2 -2
  46. data/lib/revelry/content/version.rb +5 -0
  47. data/lib/revelry_content.rb +25 -18
  48. data/lib/tasks/revelry_content_tasks.rake +1 -1
  49. data/test/controllers/revelry_content/contents_controller_test.rb +1 -1
  50. data/test/controllers/revelry_content/revelry_content/pages_controller_test.rb +9 -0
  51. data/test/dummy/app/controllers/home_controller.rb +1 -1
  52. data/test/dummy/config/initializers/content.rb +1 -1
  53. data/test/dummy/config/initializers/revelry_content.rb +1 -1
  54. data/test/dummy/config/routes.rb +1 -1
  55. data/test/dummy/db/development.sqlite3 +0 -0
  56. data/test/dummy/log/development.log +0 -2990
  57. data/test/dummy/log/test.log +0 -0
  58. data/test/fixtures/revelry_content/pages.yml +11 -0
  59. data/test/helpers/rev_content/contents_helper_test.rb +1 -1
  60. data/test/models/rev_content/content_test.rb +1 -1
  61. data/test/models/revelry_content/page_test.rb +9 -0
  62. data/test/revelry_content_test.rb +1 -1
  63. metadata +50 -438
  64. data/app/assets/javascripts/revelry_content/server_side.js.coffee +0 -10
  65. data/app/assets/javascripts/revelry_content/utilities.js +0 -69
  66. data/app/assets/javascripts/vendor/react_ujs.js +0 -64
  67. data/app/helpers/revelry_content/application_helper.rb +0 -4
  68. data/lib/generators/revelry_content/css_generator.rb +0 -47
  69. data/lib/generators/revelry_content/initializer_generator.rb +0 -11
  70. data/lib/generators/revelry_content/install_generator.rb +0 -38
  71. data/lib/generators/revelry_content/js_generator.rb +0 -43
  72. data/lib/generators/revelry_content/migrations_generator.rb +0 -25
  73. data/lib/generators/revelry_content/templates/initializer.rb +0 -13
  74. data/lib/revelry_content/controller_concern.rb +0 -11
  75. data/lib/revelry_content/model_concern.rb +0 -11
  76. data/lib/revelry_content/version.rb +0 -3
  77. data/test/dummy/public/uploads/revelry_content/content/src/3/Screen_Shot_2015-05-04_at_9.50.48_AM.png +0 -0
  78. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/-I_fh6Ob3TV3ynXTvv2TsuKA8cQq62L1tKIrIuNXWjA.cache +0 -1
  79. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/-YnOULGJdPpgh539S1Ms1ELd5--WkKXQZL4yYylOy-0.cache +0 -1
  80. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/01i3BQNbZnC6BxmgguLy4xMYU2RnsNjDy_lEOEdzhxY.cache +0 -1
  81. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/0CsApXQBjT34U567rgWiQGYOFwIpgM1ZcV3ZvrXPAXg.cache +0 -1
  82. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/0LnMwfkPx0KckDudP0t_qfcIfrUx2JEt9_W28i5ota8.cache +0 -0
  83. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/0Soh65Z50qGQ79OzRV5ywJzksbLPZ9Y7Xukmqyr6k5E.cache +0 -1
  84. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/0XbuhYD4hx4ktBwomnPqrp-8ofGrK18w0XFrKr9A0TQ.cache +0 -0
  85. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/1aGcEQlzCZqj47bR8b18bidGhSM2TCoUF8PH47DmsLU.cache +0 -0
  86. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/1k4qrvfTSqyZpqJotrEJvryNYKwAYhcPYDr762tOceA.cache +0 -1
  87. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/1qAjZK81hSd2VjC4whKNDW4X7SdJpLItpFtUW5R2vUU.cache +0 -0
  88. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/1tgQBRMWbVAGLWkDo0fO1_ePFLz60fDuTdCKwp-LIJU.cache +0 -1
  89. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/22e58P_cEp6-Pu5wgZqEMEpiJGooGJ2dI6gfNXacBaw.cache +0 -1
  90. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/2ZbqEyDxBgh2_LtnR16sYKThwIziSqlASeCjQjkwL7Q.cache +0 -0
  91. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/2t8ZjvFIs5Qg2owTTr20k8NqE0dCrbY5mHTjJGQd2To.cache +0 -0
  92. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/4cBcXkgJSg0A9kNtcagSpP-C7RpYMO7GIYMiIdC0K48.cache +0 -0
  93. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/4eWrs3PFkK1uDMlHgGflFhNtKLF63kY4nMqArSbZBpY.cache +0 -0
  94. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/5-_j0ZY9kq3RzZvSq8dpYirIlmqsRJUSBNkE97ZcqWY.cache +0 -0
  95. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/55ea_CKRYg4qGN5pyZy2H1oKxEnbQuJzgGyrVQ1ZE-k.cache +0 -1
  96. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/5PZzqc1OeigG9XRqgCM3SCT9fLVn6wTm6awQx74XAD0.cache +0 -1
  97. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/5WUZd0B2PMhhtp-V7XsX5zFLOPXl9z2WpIVdT8rW5AE.cache +0 -0
  98. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/5cWdZIkyqWp1hyfiXzGiMnuqZ_4SlHG0DmWpUkQYuS8.cache +0 -1
  99. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/5wFIFg4lQ-rd1ZWBhlRi9J56-EqjP61WWYq0jOA7bek.cache +0 -1
  100. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/6COX4oqZCCZnmoes6ehqGZqIr2xtXv5HVYqJzRnccnU.cache +0 -2
  101. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/6Ck5oeyDTZNctS2vkmtYRv6UU5SCv8DW_cqAumQHEW4.cache +0 -1
  102. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/6W7Zp0ylWiCA_3Z-Hese0EPiWLITfAv2OViiC3GHvzU.cache +0 -0
  103. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/6ajykKpm3QojPPBBJIx6vRImRgKpc_V_zX68dF-yV1Q.cache +0 -1
  104. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/75Qu5KXpoOg--ZIa5yMWG0sQS_OoZiF0og8GEfCKodI.cache +0 -0
  105. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/78FVepsCcIAm-tqmhFYO4eaDkF1BHiAwzZjoc1W6XrI.cache +0 -1
  106. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/7OzH_p-6ZYmSIl-UNVwWQfD6PJHalPe5Y01jCP_MF1w.cache +0 -1
  107. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/856F5ONTmAq3bpS5lqrZAzppRy4gwhAkugo9inM3EEU.cache +0 -1
  108. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/8AVC27x21kixmECkHeOm4sR-mSbzhJO320NRwrW6B38.cache +0 -0
  109. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/8KCGLeeBgsHpq-GGsxAKvONGThHONpkBhLmQv5x-5i8.cache +0 -0
  110. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/8cyMCW5yogfK5gPFpci4rPtVb8pVIiZmF5DpOH8F07Y.cache +0 -1
  111. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9EThCCo9tuqXzBz-afDke-GvEyM_NG0dxw7dSdkzINw.cache +0 -2
  112. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9NoeClumq19p-VmRk5PPOHLvDXN_Jr6BCYnczJWWfv4.cache +0 -0
  113. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9YD7CWCBCkOdAYp-yB8nGhaNDiiUWsP7fzRWPmHbzKI.cache +0 -2
  114. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/AY9mbclr0zMOzxzP4BYRTYyvBOlpLFHHQAimzs6dSDI.cache +0 -38
  115. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/AqkMYZH-ERTqi-15YvdhRVtysLKqim5CV7-GILZNras.cache +0 -0
  116. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Au8GVVKkzmp8TySAWMgFJQObozIt4Mr-RW5BolO8J2k.cache +0 -2
  117. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/BBPtOTznDSAhX5tIqbw_JRw9Cppz2SVtSFsJ1CpC37k.cache +0 -2
  118. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/CC0dQuHqBjWqdKsRp2Ntw6nn3M1nC5lUY-dd8lMzJ6Y.cache +0 -1
  119. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/CWYN7KxLVsU-N9FbSIrHgO979x5b6AeyckCfZ892Y7k.cache +0 -2
  120. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/C_Sjupfz09XcSquDwczKxSTxWrEUrjaf49VmA5x68CQ.cache +0 -1
  121. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/CcJCtip5hherUpH0eiHdJI5Stl08Txl1AU8NxDLKtro.cache +0 -0
  122. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Clf7dMHxXwzeU3tZ2yxP8d3xr0HRWHFMdqjBuSceJZ0.cache +0 -0
  123. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Cnkk4N8ysSWHH6ujQDBGzEiLuGa0dVNDL5Zq53tJq-M.cache +0 -0
  124. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/D0USxWIEUAxLvX9bhYdtB_SXMXAJ9nQr9vewnyqrk5k.cache +0 -0
  125. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Dy0AC2wVM0afv2MB-u7UGGLsb_2ExNZ8S6w7SGE-djg.cache +0 -1
  126. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Ee1BFKugxHkzKUuAsIqQc60hV47E4VSUMZwBOThvSeY.cache +0 -1
  127. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/EghXS1aAsnoopkxb4Fv0S21wqJGL59ryH5HV9-30KI8.cache +0 -2
  128. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Eq8I8ukRZZ9BZ2SQxzSNc8mOoyKksxtzwtDh2FRZ1FE.cache +0 -0
  129. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Eu26_D_tZu1dr7mVRA4F2--NUZ2UMM4QRXv9JcqO2TY.cache +0 -0
  130. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/FEfkZdxv5MUSvLMUUWoC3lif13VZBbiaUYPNv8uizgM.cache +0 -0
  131. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/FF9LKRGOPVZl03UeeMXbHRXBFwG4SkAdOfcDClwXXx8.cache +0 -1
  132. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/F_NOlk6iL-Gonygn5tsU_AaDA69HBxeExwCiAa6Ezi4.cache +0 -2
  133. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/FuMG_mCkNUt0OV_qrahX3ne-LN8Y3J-17T-I5BwYT_U.cache +0 -2
  134. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/FzIl4k5FDcnN8SbzckzMXWXsj2DwBv_tGvZZky8_cvk.cache +0 -0
  135. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/GBe9GA2qATaLqF7GTbxcZ8sWcPJ2zWeT8PFE8Cynb4U.cache +0 -1
  136. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/GUcaNDg0KOqTIS7ltde6vWEZy4eTkdPuecVr52xaqY4.cache +0 -4
  137. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/GWveyzQul11IW7JP-MFTH1p2O-FAiSldGQCixPtBWZc.cache +0 -1
  138. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/H8Py9_cLtmjiNd1zVjVpr-60bPm8OKt1NzBdYpuRoSg.cache +0 -2
  139. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/HIOnKEwfKW9leZhYm8hw2zTPcTC7Lhr9QO3pGkpVUC0.cache +0 -1
  140. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/IUOCPt0S05lp6-q_7CuqTJjuySoP7ZTTe1srP_Sgdag.cache +0 -0
  141. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/IlxQ_nfFkpBhgHXJ9EL7TgHKTrQYX_1ockXtSOHH_1Q.cache +0 -1
  142. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Intu4bn50Zl1tGpuw8N2VhNjvLeG367yEoPjIxYkYxA.cache +0 -49
  143. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/J3EzfF5t_RDdiaU-svpP2DBjb8gnlHHHCQjjpPvzvpk.cache +0 -0
  144. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/J5rhZ_6c58sjOvHqDBBBBTvsLDbUGfHatkjiF1M-Fys.cache +0 -1
  145. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/JP9pt25R98BIDqvwjp_DgmdNj4U1wLrVUhOnoDtekS8.cache +0 -1
  146. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/K2yr6YhOBxRdaqrHViPlAYUKVTWMlI24INQctCW0rWQ.cache +0 -0
  147. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/LT9baTsZAaEEgS5raUZGGsP2vTnlzW9LzvyCfQgqLLs.cache +0 -2
  148. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/LW03HTHDvMz6l4ReQ29sJeZqRg3QLrcVdAutCg9ROyU.cache +0 -0
  149. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/LcZdIStJUZnaKHh7vs-yLld_jzO3MSU4gCJaORFrjYk.cache +0 -7
  150. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/LruVN3C21yeFX4pfE6ZQw7z2CzkYXY5b8PXOTfz2o1E.cache +0 -1
  151. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/M2tXWSvBjMhGoQLT8CaoVYULKWDVirToNVLYqstyW-g.cache +0 -0
  152. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/MJxRV2KlWMJ5KrraeWvC4yp7N4-aMpktlzqBpoLhft8.cache +0 -0
  153. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/NGgP2dkovkWF23p4ypqAUEO3kldLkAA7E9hERHoxJ_M.cache +0 -2
  154. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/NX-xwAHuCC7QChZD4MSpX9fgCXgl532SBhXfSsIxG4k.cache +0 -0
  155. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/OQdV6HhyTI5Otzo9cwR6IY-8eX0eip8x561B8hXKikY.cache +0 -0
  156. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/OSmr2Sj9749HFHCMkGsJP2YGkQxIztofCliXs0urGE8.cache +0 -0
  157. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/P73ImcSy1BYWt27ZGM-JKdkbzyIm2063NZr-dn-ygPE.cache +0 -1
  158. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/PVxgcRUvLL0uRj6ScbeM7YyccWyjP2O2kvs2640MHck.cache +0 -1
  159. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/PmcUgH3Y4bLndb9k4NAJlxdFPTXl3T8-jEskNYv7T9M.cache +0 -15
  160. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/PmrPSezdyM_8N-tzxdbn62XyY_l-YJPz7Tm7Qi1z2_M.cache +0 -0
  161. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/QAr8mslUFMN0vPkEEQAZEbAUGes7lnpEtfFtKSK8lCc.cache +0 -1
  162. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/QFioo2rOp-ljy1-PIoxzqOTmxmc6HFAft-qNbbQvfkQ.cache +0 -0
  163. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/QPGkAA8L-cs-AO80ws0mqld73EIG2HCd8hzkga35Ydc.cache +0 -1
  164. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/QaJhvzKs8vkSfWT534wn8jNcxfcnMDp4i8cDbwWESbs.cache +0 -0
  165. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/RICRLw8IGgYZrEFYgyA-MY8-o_kXcmcY1gCavTvwW64.cache +0 -2
  166. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/RgyohxMtV3OKNhuwrAaDjfXMV7SsjprKrEVgZ6NhwzE.cache +0 -0
  167. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/RsbxexS-d0Msc_BIthGWINzE8v7aFHiWQVqTbifUHp4.cache +0 -1
  168. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/SZlNp_5FFT99-2Qs5TFLbTZ4ZOG2UFO6sExA-aa-9Xc.cache +0 -0
  169. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/T5Z3oNqbaal-reBCFzxyo8yxV-drGVwQjIC1O_pkHNI.cache +0 -0
  170. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/T6Ft0zMwwCntps471lA0_0aXo1KaOp-ZFeptSt9SRks.cache +0 -2
  171. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/TQ7i9C1sBaWIfDFYnQo4TqjBOMYbOVxm6f4Qhl0Uf6M.cache +0 -1
  172. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/TR10mW2AT2rabnCmUhSF2tBx-ZpQJZfpoezdescBWxg.cache +0 -0
  173. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/TSR9oCO5WIJZHL855zPdgj-pvzkWlz0vlnIPSMRudy4.cache +0 -0
  174. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/V9W2dbEVRrR0tD27e8bft0flt50g1HHugzTd7lFVoMY.cache +0 -2
  175. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/VHnCzqYhXqo4PNpfO5rhh1rxxllOWMQWrJ_1an8CxJ8.cache +0 -0
  176. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Vs4mCFlsskLe0HvAg_ODhYRP8lNofUxZ45d6sOzUfC0.cache +0 -1
  177. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/VsHDpo2bcpN87OPpULfpEIuC7ArNRDa4RgDTqYSgbbc.cache +0 -1
  178. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/W1XNy0_UmGwk7xmb-0QiIdkD_gx_tjV351xE8X5LCPY.cache +0 -1
  179. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/WEPPUYRJVm2CgPjW9cTdBuuFhadPuO7qPEqvqecfKjg.cache +0 -1
  180. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/WIwRcAEBsLT7LSFw8071ukLJbJlwFoX_JaHD9w7fEAc.cache +0 -16
  181. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/WSR5PdIRaA9ix0LLhrUegJL8ztgPoIgZHdaq1d3Jm7k.cache +0 -2
  182. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/WxVFbgL4Oty9vrd1AD37P2KqOGjwvcH5o_LSGrMI_do.cache +0 -1
  183. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/XSXbBZ-YPcBvmUp0fzcIUcTwqNvYHvUU7xfLa38qYvg.cache +0 -1
  184. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/YB9oCB5SEQMC6OwASUsvmD1GE90Ul31VfE2ZRo1Hd2k.cache +0 -1
  185. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Yf6ZOsV9gRVVFTsRNcQPGxKgCQ63L3JprFkpZMD0slI.cache +0 -1
  186. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/YjXlZUeBr9ONZpMKis8Beab3ld-NdnlSKXm2oZOsysc.cache +0 -0
  187. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ZBbRPnK9QPeL_bLmZNttUrL0MMH6DtrYDpD4f1DbYtc.cache +0 -0
  188. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/_7w_iwIfp6xsakWz0Ww-HrRNserrl5q6WzSq1iYZGaQ.cache +0 -0
  189. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/_k6iDcm-RS6SK8ChV7hlp56ZM2bVtgzaDCrpSHIDFZ4.cache +0 -0
  190. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/_tne4TjP6WhsfK-a0TBVts5lr-lr-sDxyQiKIugRPhM.cache +0 -1
  191. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/_zOYmE_ymvMvcRhHFdH2JutNJimhiytkMAhh4Oq6mkk.cache +0 -0
  192. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/aDjgtkQ97t1Rcjxv5nZUTSSYXea5orrfkCeCNrlNNao.cache +0 -0
  193. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/aKAjc-eEaECxCE89czdDC52Kqkw11EBSF9vk7QorxPA.cache +0 -0
  194. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/auLKIVQfT6ZcV9nSxkDD4xMrcIRtB_1-hO1qKXOcwxo.cache +0 -2
  195. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/axJrczuMPd6m4cWaLl9wfSWgg5SWjyHvv1N0d8e7cas.cache +0 -1
  196. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/cWuWB7O6uRomqwh3IemLWVclp4_ioPR7TBAF7yrPpV0.cache +0 -1
  197. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ciEBvpxWzLqer60DBJkr319p1iKyYHZxfCm3tIPMqcI.cache +0 -0
  198. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ct5UmPAxknsInqDq17r9u_NbuFw8F6w4ZLKNU05xZ_Q.cache +0 -1
  199. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/cxW0sGi1l_Lc7eCBF8kxQo4kNtHw27K5H-Ngpiixm2A.cache +0 -0
  200. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/d7lXJjCfvSvwTWSI3x4kn3TQzzYG0DGvqTOJL3avl6Y.cache +0 -0
  201. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/dW3LJvt2E0gKdWoqZTSTWtntGqxhTENv8_-mbT_kfn0.cache +0 -0
  202. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/dfT6vHCtyIBci9lpNUVgyqepSYt55BCo8MDzrPXxUEw.cache +0 -2
  203. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/e7OkNhH6RmnQjEY0ZEO597J545crZH0qZdVDYz71KT4.cache +0 -2
  204. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ea-3NiBlut0EOdCVqVGn-RwNm0CiwA8YVBRqfRqhgLg.cache +0 -1
  205. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/eqpR2RCSOj4T0wmrPGJDb_td3gtOdiyLwD02BpzuBkg.cache +0 -1
  206. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/eqrwo9jjG9uZiNQCUMkdkvT40JGz2uvrufAv-l00X1k.cache +0 -2
  207. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/fG1WmTPapxY9EMQ5D8HQw8E2MpudT32v--jD6VgazTU.cache +0 -2
  208. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/fLosOyYOiUc-ZJIEAtgmz68UfDVlAVCVMAxtAlML-nQ.cache +0 -1
  209. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/faEE1R7Sb00wgGFfL9FC9IqAGSkEHNY7rLPURjZVFv0.cache +0 -1
  210. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/fgmBwPUcbsTKyMd7bxMbzh9YFF7GkD269KSZbCOpe54.cache +0 -1
  211. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/g4m06tmSxrOnDxGpUyYkIEY8hi0ymUoUzYMAh06YkGc.cache +0 -0
  212. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/gP9Pm0rpnz4IvvhguI8VxK8xhDKU8WisGwfm5ox97RY.cache +0 -0
  213. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/gtka4cvnxw2bm_SnkE-5LxtRYKxD-MvM_T7lYxdLAug.cache +0 -0
  214. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/hQFzaNvvDOyvg2U4FZcg-xUjctMTLEdb7tK-RYIziz8.cache +0 -0
  215. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/hcS2HARtyE_tpJmmwUqYO-9e-Tshg3TF6W6XL29_cwM.cache +0 -1
  216. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/hdMwJqicGzH0qHgBqMVfxHB8u3-zdirRgb1zpnRfb6w.cache +0 -2
  217. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/hfIPOqDhaIk7vhQa4hLyWEIQasPwJSn3H-i2egLuFvQ.cache +0 -2
  218. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/i3Mr4BCaCS865aFe9brU973ERtfoSONrUQhX5FW509w.cache +0 -0
  219. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jBOiy_uvOKOoBovFao2qEf6xVkGYRFmw-CR_I756N5g.cache +0 -1
  220. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jZZQUkAYSpxGGWp7Vb_vs2S3Clde8_XKFWwjwHaBmU0.cache +0 -0
  221. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jiUvf7zJxbsJ9a9IiZOy06PqL6dOOfprzyXci5p8vMM.cache +0 -0
  222. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/kd10Jyu0ZXLelGbmQo03cFEKpR0qQRw-QyPPMlnY-FQ.cache +0 -0
  223. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ksZL57FCLWVpXdOSIHVytq_XIsGz78TdArP4aWt7uQA.cache +0 -1
  224. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/l4Mb7Zqpi9HWWa67ftgd_ZkPTvGuhxm--tpHlgu4Eyc.cache +0 -0
  225. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/m3gQ2mqyaWT0r9UVJriOzT0qkFiL4aZ5mhMgbbyLmyw.cache +0 -1
  226. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/n6NcZJQK0j-WDDTq_7wksLUZBBYhGRPaW38Cua19t4E.cache +0 -0
  227. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/nKs1V_XYWUW2uG9E7WQPaiVIvYx2I5ttwdMZ9bRsUVY.cache +0 -2
  228. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/oB34rjWhV_SBgt62MMSw20hEYuiVTjLMILeSBjagbDo.cache +0 -0
  229. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/oydOGeF22N2dttfBS68MA5PK4ofniHzd-LgBwVmJvI4.cache +0 -0
  230. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/pA1evykc28UE2mszGRw015uHbbmBCU9gFZIcU8Hrwls.cache +0 -1
  231. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/pBYZnqSsUmggXeAPQXcQrZSfrScDOEsZQdeXOIqfHaA.cache +0 -1
  232. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/pENTpYJeZrQ-P80SXbbHVaXcEd7kaOm1bZRItPVK7OE.cache +0 -0
  233. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/pYKIN2HEVMsGLDogjm8iDQ_4W8iGEq98NsJbOdA822o.cache +0 -1
  234. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/pb5zODtFDJpqFTtbh09cOhwG1mZowQW1EZ-54eauNTc.cache +0 -1
  235. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/pnDWkMT2Wf6v8kCepJzn9oEGWrxNOY-H9MlCq85zTlU.cache +0 -0
  236. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/qJ6pwEWoy3oUs_aPayRv5D5d_F7oEyNIzxrJCaEpcpM.cache +0 -0
  237. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/rJ88KtO5aBXvyE9sef5emc-MsAJaTna76vG5TNayYa4.cache +0 -0
  238. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/rPyv5XauOpu-aOgB95w5ZSl6jCFUGvS8YE1h1eZZID0.cache +0 -2
  239. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/rcp1tSuAgctt1BdAdUoGgD_UtZeD7w3rLuANXg8YU58.cache +0 -0
  240. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/rfYNZtDWV3PCq5a57xTyj0-_iC1Psq1TaxWG86fXR2A.cache +0 -1
  241. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/smmkAgu4NNfatz7vllczgMFH_tckzDUAmeV3WvmmsRE.cache +0 -0
  242. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/szDR2M9t_osfhsE_agd1lcIjKrl5nwRmORMlyoWxTus.cache +0 -0
  243. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/t4fruk986h623vtFPEW2sALWc3kl3ayPfBbgOzRm6Cs.cache +0 -0
  244. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tJDIhl16K_HokIK8UZx1y9hy-Ne6lk9ie2kMbsHVxdY.cache +0 -1
  245. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tSDhvZZY2gcpUHWppbAMQYQL0iNPOc3Vo2HHrnqKlDw.cache +0 -1
  246. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tYYAXLHGMIYQ1Ls-jw8thSBIzdixEpeQC2kg6irmEy0.cache +0 -0
  247. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tgFK--mLRPBU9bZUb6lc4kt6Qq9-Ux6AAfG7mDQBpu8.cache +0 -1
  248. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tpBLVkgP9PSqHqSHfPf9ZLar0vHGOTCOUl0FKOqGN54.cache +0 -1
  249. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/u0B5U9yc20iANkRJi6-SiyL9U5RMrThVGmgnWSR2Rew.cache +0 -1
  250. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/vtTvV-oGMOMD-l4YDTQRNHPiFRebBjqEfL9IoavTSGE.cache +0 -0
  251. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/w3rjuVGSs9xUdab61H5KOFtoRsLH5abeNs9uloC2b94.cache +0 -0
  252. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/w9RM9nORoFIx66Xb5PwygnSIR3922sjAkZkXvyeykgE.cache +0 -1
  253. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/wK-n2sVphfsiv5g-IV404qJkdw6Skfo5wk55Yf8IHfs.cache +0 -0
  254. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/wbSRRkjts6z6OP0o88ZwLIz6Za9iMMeF8F1FMAubBxc.cache +0 -1
  255. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/xE9HS1AxUe2VZv8zzVYALc75Yhv53_LPpQNxurm0oSI.cache +0 -1
  256. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/xX3QhVOxSxG9HjrdSvjeQoK1iBpYJX3Kw-yjea2vSuo.cache +0 -0
  257. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/xa4ZU0nFS4WqDtDriIXMlwNURqkpUm_djZVqiz0ZynA.cache +0 -2
  258. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/xzsnr6Bgr0MP4j4FZVUcYBADfkQCUHoShH_9hGp0ckk.cache +0 -0
  259. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/y6xgU0dR6b-1_hjgAZAhFFq1T9zGZ8yjUQzOefGpcu8.cache +0 -0
  260. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/yJ9qoQ6ZeEPmm4ttulT9hdYPemgTF4VUSdmFjmr9Vpw.cache +0 -0
  261. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/yJuZz8Lopwyvmy-rto8ycJ0nOLWeWSobCY8z-421Bec.cache +0 -0
  262. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/yLZAaEFOlOcJfmo3pRpRpTiQMzBcqSRTrZYb_pJpTBs.cache +0 -2
  263. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/yV9yGvP4CDMeEbb4ff4n_Hzu-GuBbM-S39cIE1WQy6Y.cache +0 -1
  264. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/y_4IIBYH_ItxQoEeXjWm9Igwn6hAkl669CNtYfo0fyI.cache +0 -1
  265. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zF_lfa7oUNjRgtepm9Ufi0DCzN_IXCJTDHRrH-JHu7Q.cache +0 -2
  266. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zeqXKQA7lKQnvEaJsDO404ZaYCV0dk57z-SXUkfmz24.cache +0 -1
  267. data/test/dummy/vendor/assets/javascripts/revelry_content/content.js +0 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d57f008f016c584fc60768a5c49a53ebdb5ba404
4
- data.tar.gz: ff49d78be60b93f65f80bddad50fd5d3831349fe
3
+ metadata.gz: 1edfd315b91ca9459b3b4fb2c45284ff3c743bb4
4
+ data.tar.gz: 80fa83be18d2fa4261428e0884ce48509911c2c9
5
5
  SHA512:
6
- metadata.gz: e61ebb2af92ac13c2054557738082162d8e1066b43f81e32d63a6566955de141b3ed86cf79f7b8e07559d202f26bc2d9d33af901c50d25b534a949490eeb8014
7
- data.tar.gz: 21387b6aaf8c2c34d83585636742bc8fab9991f8447d715357c5d02b64b6800638c0a8b67a25180feed669d2d2360f9d98ae1643309205a866dad6d24a782647
6
+ metadata.gz: ff18e8f7c22f942f0f0033008f41e8acc8713fde1dca49db3cac536cc0d625cba0877f4a1f4034358165381e0ac06d77e1296441bae1aafd3033bc3c89fccbaf
7
+ data.tar.gz: 821b40f62d9248c323ca8309a601e40e90fd31ab3b49f0e6f9ef310ef302e5616f2a03e0b2549fbce94c0a46070130dd1ef17a452afb73dcbdc0f6314cc13dce
data/README.md CHANGED
@@ -1,19 +1,14 @@
1
- RevelryContent
1
+ Revelry::Content
2
2
  ===
3
3
 
4
- RevelryContent is a gem for managing admin-editable content within Rails applications.
4
+ Revelry::Content is a gem for managing admin-editable content within Rails and React applications.
5
5
 
6
6
  # Installation
7
7
 
8
- Either install from a rails template:
9
-
10
- ```shell
11
- rails new APPNAME -m https://raw.githubusercontent.com/revelrylabs/revelry_content/master/template.rb
12
- ```
13
-
14
- Or add it to your gemfile:
8
+ Add it to your gemfile:
15
9
 
16
10
  ```ruby
11
+ gem 'revelry_core'
17
12
  gem 'revelry_content'
18
13
  ```
19
14
 
@@ -21,112 +16,54 @@ and install it:
21
16
 
22
17
  ```shell
23
18
  bundle
24
- rails g revelry_content:install
19
+ rails g revelry:core:install
20
+ rails g revelry:content:install
25
21
  ```
26
22
 
27
23
  # Configuration
28
24
 
29
25
  The installer makes an initializer in `config/initializer.rb`. You can edit it
30
- to customize authenticiation, authorization or javascript export settings.
26
+ to customize authentication, authorization or javascript export settings.
31
27
 
32
28
  ## Configuring file uploads
33
29
 
34
- RevelryContent uses [carrierwave](https://github.com/carrierwaveuploader/carrierwave) to store image uploads. You'll want to configure carrierwave appropriately for your app.
35
-
36
- # Use in ERB Templates
37
-
38
- RevelryContent provides helpers for setting up edit controls:
39
-
40
- ### Adding the RevelryContent menus and edit mode button
41
-
42
- Add the `revelry_content/contents/menus` partial to the page to place the edit button and top bar on the page. The top bar will be invisible unless we are in edit mode.
43
-
44
- ```erb
45
- <%= render 'revelry_content/contents/menus' %>
46
- ```
47
-
48
- ### Editable text
49
-
50
- ```erb
51
- <%= revelry_content_text('home.title', default: 'Hello, World!') %>
52
- ```
53
-
54
- `lookup` is a lookup hash of the available content. If you have included `RevelryContent::WithRevelryContent` in your controller, `@revelry_content_contents` is the default lookup with all content.
55
-
56
- In this case `'home.headline'` is the content key of the content, which is just a unique string for each piece of changeable content.
57
-
58
- The `default` param is what is shown if know one has set any content yet.
59
- (Think brand-new sites.)
60
-
61
- ### Editable images
62
-
63
- Editable images work in a similar manner to editable text:
64
-
65
- ```erb
66
- <%= revelry_content_image('home.image', default: 'http://placehold.it/200x200') %>
67
- ```
68
-
69
- Here, `home.image` is the content key for the image to display, and `default` provides a placeholder image URL.
70
-
71
- # Using in JavaScript (including React)
72
-
73
- ## Making content available to JavaScript
74
-
75
- You can configure RevelryContent to export all of your content into javascript.
30
+ Revelry::Content uses [carrierwave](https://github.com/carrierwaveuploader/carrierwave) to store image uploads. You'll want to configure carrierwave appropriately for your app.
76
31
 
77
- ```ruby
78
- RevelryContent.configure do |config|
79
- config.js_export = true
80
- end
81
- ```
82
-
83
- Then run the export task:
84
-
85
- ```shell
86
- rake revelry_content:export_js
87
- ```
88
-
89
- And include the exported js in your application.js:
90
-
91
- ```javascript
92
- //= require revelry_content/content
93
- ```
94
-
95
- and access it like this:
96
-
97
- ```javascript
98
- RevelryContent.Content.home.headline
99
- ```
100
-
101
- The JavaScript export will automatically update whenever content is updated.
32
+ # Using with React
102
33
 
103
34
  ## Adding Editable Sections with React
104
35
 
105
- RevelryContent is built on React, so you can also directly invoke the React components:
36
+ Revelry::Content is built on React, so you can also directly invoke the React
37
+ components:
106
38
 
107
39
  ```coffeescript
108
- <RevelryContent.EditableText canEdit={ true } content={ RevelryContent.Content.home.headline } />
40
+ <Rev.Content.EditableText canEdit={true} contentKey="home.headline" />
109
41
  ```
110
42
 
111
43
  or
112
44
 
113
45
  ```coffeescript
114
- <RevelryContent.EditableImage canEdit={ true } content={ RevelryContent.Content.home.image } />
46
+ <Rev.Content.EditableImage canEdit={true} contentKey="home.image" />
115
47
  ```
116
48
 
117
49
  [More details are availble here](https://github.com/revelrylabs/revelry_content/blob/master/react-components.md)
118
50
 
51
+ There component will present ONLY the content (with no editor chrome) if out of
52
+ edit mode, and can be clicked to edit in edit mode (see below).
53
+
54
+ ## Adding the admin controls
119
55
 
120
- ## Adding the top bar and buttons with React
56
+ For admin users, you can present edit buttons and an edit mode top bar to allow
57
+ entry to edit mode and provide feedback during editing:
121
58
 
122
59
  ```coffeescript
123
- <RevelryContent.TopBar />
60
+ <Rev.Content.TopBar />
124
61
  ```
125
62
 
126
63
  and
127
64
 
128
65
  ```coffeescript
129
- <RevelryContent.EditModeButton />
66
+ <Rev.Content.EditModeButton />
130
67
  ```
131
68
 
132
69
  These do not require any props.
data/Rakefile CHANGED
@@ -8,7 +8,7 @@ require 'rdoc/task'
8
8
 
9
9
  RDoc::Task.new(:rdoc) do |rdoc|
10
10
  rdoc.rdoc_dir = 'rdoc'
11
- rdoc.title = 'RevelryContent'
11
+ rdoc.title = 'Revelry::Content'
12
12
  rdoc.options << '--line-numbers'
13
13
  rdoc.rdoc_files.include('README.rdoc')
14
14
  rdoc.rdoc_files.include('lib/**/*.rb')
@@ -1,21 +1,9 @@
1
- # @cjsx
2
- #= require ./revelry_content/utilities
3
- #= require ./revelry_content/config
4
- #= require ./vendor/react_ujs
5
- #= require jquery
6
- #= require underscore
7
- #= require backbone
1
+ #= require revelry_content/setup
2
+ #= require revelry_content/config
8
3
  #= require moment
9
4
  #= require moment-timezone-with-data-2010-2020
10
5
  #= require_tree ./revelry_content/mixins
11
6
  #= require_tree ./revelry_content/models
12
7
  #= require_tree ./revelry_content/components
13
8
 
14
- RevelryContent.dispatcher = new Backbone.Model();
15
-
16
- $ ->
17
- RevelryContent.Utilities.rev_script_loader React?, 'https://cdnjs.cloudflare.com/ajax/libs/react/0.12.2/react-with-addons.js', =>
18
- RevelryContent.Utilities.exportLazyComponents()
19
- RevelryContent.load_react_ujs()
20
-
21
- window.RevelryContent = RevelryContent
9
+ Rev.Content.dispatcher = new Backbone.Model()
@@ -1,90 +1,94 @@
1
- RevelryContent.Utilities.lazyComponentDefinition ->
2
- RevelryContent.AdminTopBar = React.createClass
3
- render: ->
4
- <nav className="topBar">
5
- <ul className="inline-list right">
6
- <li onClick={ @makePageButton('history') }>
7
- <span className="icon-loop2"></span>
8
- History
9
- </li>
10
- <a href={ RevelryContent.base_path + 'contents/export.json' }>
11
- <li>
12
- Export
13
- </li>
14
- </a>
15
- <li onClick={ @makePageButton('import') }>
16
- Import
17
- </li>
18
- </ul>
19
- <div className="topBar-container">
20
- <div className="topBar-items">
21
- Content Admin
22
- </div>
1
+ Rev.Content.AdminTopBar = React.createClass
2
+ render: ->
3
+ <nav className="topBar">
4
+ <ul className="inline-list right">
5
+ <li onClick={ @makePageButton('history') }>
6
+ <span className="icon-loop2"></span>
7
+ History
8
+ </li>
9
+ <a href={ Rev.Content.base_path + 'contents/export.json' }>
10
+ <li>
11
+ Export
12
+ </li>
13
+ </a>
14
+ <li onClick={ @makePageButton('import') }>
15
+ Import
16
+ </li>
17
+ </ul>
18
+ <div className="topBar-container">
19
+ <div className="topBar-items">
20
+ Content Admin
23
21
  </div>
24
- </nav>
22
+ </div>
23
+ </nav>
25
24
 
26
- makePageButton: (page)->
27
- return (e)->
28
- RevelryContent.dispatcher.trigger 'pageChange', page
25
+ makePageButton: (page)->
26
+ return (e)->
27
+ Rev.Content.dispatcher.trigger 'pageChange', page
29
28
 
30
- RevelryContent.AdminTabbedArea = React.createClass
31
- getInitialState: ->
32
- state =
33
- page: @firstChildPage()
29
+ Rev.Content.AdminTabbedArea = React.createClass
30
+ getInitialState: ->
31
+ state =
32
+ page: @firstChildPage()
34
33
 
35
- render: ->
36
- @findChildByPage(@state.page)
34
+ render: ->
35
+ @findChildByPage(@state.page)
37
36
 
38
- findChildByPage: (page)->
39
- return null unless @props.children
40
- if React.Children.count == 1
41
- if React.Children.only.props.adminTabPage == page
42
- return React.Children.only
43
- else
44
- return null
37
+ findChildByPage: (page)->
38
+ return null unless @props.children
39
+ if React.Children.count == 1
40
+ if React.Children.only.props.adminTabPage == page
41
+ return React.Children.only
45
42
  else
46
- for child in @props.children
47
- if child.props.adminTabPage == page
48
- return child
49
- return null
43
+ return null
44
+ else
45
+ for child in @props.children
46
+ if child.props.adminTabPage == page
47
+ return child
48
+ return null
50
49
 
51
- firstChildPage: ->
52
- return null unless @props.children
53
- if React.Children.count == 1
54
- return React.Children.only.props.adminTabPage
55
- else
56
- return @props.children[0].props.adminTabPage
50
+ firstChildPage: ->
51
+ return null unless @props.children
52
+ if React.Children.count == 1
53
+ return React.Children.only.props.adminTabPage
54
+ else
55
+ return @props.children[0].props.adminTabPage
57
56
 
58
- componentDidMount: ->
59
- RevelryContent.dispatcher.on 'pageChange', @onPageChange
57
+ componentDidMount: ->
58
+ Rev.Content.dispatcher.on 'pageChange', @onPageChange
60
59
 
61
- componentWillUnmount: ->
62
- RevelryContent.dispatcher.off 'pageChange', @onPageChange
60
+ componentWillUnmount: ->
61
+ Rev.Content.dispatcher.off 'pageChange', @onPageChange
63
62
 
64
- onPageChange: (page)->
65
- @setState page: page
63
+ onPageChange: (page)->
64
+ @setState page: page
66
65
 
67
- RevelryContent.ImportTab = React.createClass
68
- render: ->
69
- <form action="import" method="POST" enctype="multipart/form-data" className="EditablePages">
70
- <input type="hidden" name="authenticity_token" value={ RevelryContent.Utilities.getAuthenticityToken() } />
71
- <h2>Import</h2>
72
- <label>
73
- <div>
74
- <input type="file" name="import" />
75
- </div>
76
- </label>
77
- <button className="Button">
78
- Import
79
- </button>
80
- </form>
66
+ Rev.Content.ImportTab = React.createClass
67
+ render: ->
68
+ <Rev.Components.Form action="import" method="POST" enctype="multipart/form-data" className="EditablePages">
69
+ <h2>Import</h2>
70
+ <label>
71
+ <div>
72
+ <input type="file" name="import" />
73
+ </div>
74
+ </label>
75
+ <button className="Button">
76
+ Import
77
+ </button>
78
+ </Rev.Components.Form>
81
79
 
82
- RevelryContent.AdminPage = React.createClass
83
- render: ->
84
- <div>
85
- <RevelryContent.AdminTopBar />
86
- <RevelryContent.AdminTabbedArea>
87
- <RevelryContent.VersionHistory adminTabPage="history" />
88
- <RevelryContent.ImportTab adminTabPage="import" />
89
- </RevelryContent.AdminTabbedArea>
90
- </div>
80
+ Rev.Content.AdminPage = React.createClass
81
+ componentDidMount: ->
82
+ App.props = @props
83
+
84
+ componentDidUnmount: ->
85
+ App.props = null
86
+
87
+ render: ->
88
+ <div>
89
+ <Rev.Content.AdminTopBar />
90
+ <Rev.Content.AdminTabbedArea>
91
+ <Rev.Content.VersionHistory adminTabPage="history" />
92
+ <Rev.Content.ImportTab adminTabPage="import" />
93
+ </Rev.Content.AdminTabbedArea>
94
+ </div>
@@ -1,16 +1,15 @@
1
- RevelryContent.Utilities.lazyComponentDefinition ->
2
- RevelryContent.EditModeButton = React.createClass
3
- render: ->
4
- <button className="EditModeButton" onClick={ @toggleEdit }>
5
- {
6
- if RevelryContent.inEditMode
7
- "Preview this page"
8
- else
9
- "Edit this page"
10
- }
11
- </button>
1
+ Rev.Content.EditModeButton = React.createClass
2
+ render: ->
3
+ <button className="EditModeButton" onClick={@toggleEdit}>
4
+ {
5
+ if Rev.Content.inEditMode
6
+ "Preview this page"
7
+ else
8
+ "Edit this page"
9
+ }
10
+ </button>
12
11
 
13
- toggleEdit: ->
14
- RevelryContent.inEditMode = !RevelryContent.inEditMode
15
- RevelryContent.dispatcher.trigger 'didChangeEditMode'
16
- @forceUpdate()
12
+ toggleEdit: ->
13
+ Rev.Content.inEditMode = !Rev.Content.inEditMode
14
+ Rev.Content.dispatcher.trigger 'didChangeEditMode'
15
+ @forceUpdate()
@@ -1,10 +1,9 @@
1
- RevelryContent.Utilities.lazyComponentDefinition ->
2
- RevelryContent.Loader = React.createClass
3
- render: ->
4
- <div className="RevelryContent-loader">
5
- <div></div>
6
- <div></div>
7
- <div></div>
8
- <div></div>
9
- <div></div>
10
- </div>
1
+ Rev.Content.Loader = React.createClass
2
+ render: ->
3
+ <div className="Rev.Content-loader">
4
+ <div></div>
5
+ <div></div>
6
+ <div></div>
7
+ <div></div>
8
+ <div></div>
9
+ </div>
@@ -1,15 +1,14 @@
1
- RevelryContent.Utilities.lazyComponentDefinition ->
2
- RevelryContent.Timestamp = React.createClass
3
- getDefaultProps: ->
4
- props =
5
- format: 'YYYY-MM-DD'
1
+ Rev.Content.Timestamp = React.createClass
2
+ getDefaultProps: ->
3
+ props =
4
+ format: 'YYYY-MM-DD'
6
5
 
7
- render: ->
8
- datetime_moment = moment(@props.datetime)
9
- <span {..._(@props).omit('datetime')} className="TimeAgo #{ @props.className or '' }">
10
- { datetime_moment.format(@props.format) }
11
- {
12
- if @props.withTimeAgo? && @props.withTimeAgo
13
- <span>&nbsp;({ datetime_moment.fromNow() })</span>
14
- }
15
- </span>
6
+ render: ->
7
+ datetime_moment = moment(@props.datetime)
8
+ <span {..._(@props).omit('datetime')} className="TimeAgo #{ @props.className or '' }">
9
+ { datetime_moment.format(@props.format) }
10
+ {
11
+ if @props.withTimeAgo? && @props.withTimeAgo
12
+ <span>&nbsp;({ datetime_moment.fromNow() })</span>
13
+ }
14
+ </span>