goldencobra 1.4.27 → 2.3.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1017) hide show
  1. checksums.yaml +7 -0
  2. data/README.markdown +112 -41
  3. data/app/adapters/goldencobra/article_adapter.rb +75 -0
  4. data/app/assets/images/goldencobra/chosen-sprite@2x.png +0 -0
  5. data/app/assets/images/goldencobra/lastnode.png +0 -0
  6. data/app/assets/images/goldencobra/node.png +0 -0
  7. data/app/assets/images/goldencobra/vline.png +0 -0
  8. data/app/assets/javascripts/active_admin.js +1 -0
  9. data/app/assets/javascripts/goldencobra/active_admin.js +189 -202
  10. data/app/assets/javascripts/goldencobra/application.js.erb +86 -0
  11. data/app/assets/javascripts/goldencobra/chosen.jquery.js +1257 -0
  12. data/app/assets/javascripts/goldencobra/components.js +1 -0
  13. data/app/assets/javascripts/goldencobra/components/navigation_menu.js +191 -0
  14. data/app/assets/javascripts/goldencobra/components/overviewTree.js +156 -0
  15. data/app/assets/javascripts/goldencobra/components/select.js +43 -0
  16. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/adapters/jquery.js +10 -0
  17. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/ckeditor.js +996 -0
  18. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/ckeditor_inits.js +25 -0
  19. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/config.js +45 -0
  20. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/contents.css +132 -0
  21. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/lang/de.js +5 -0
  22. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/lang/en-gb.js +5 -0
  23. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/lang/en.js +5 -0
  24. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +10 -0
  25. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt +25 -0
  26. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/af.js +11 -0
  27. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js +11 -0
  28. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js +11 -0
  29. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js +12 -0
  30. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js +12 -0
  31. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js +11 -0
  32. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/da.js +11 -0
  33. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/de.js +12 -0
  34. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/el.js +12 -0
  35. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/en-gb.js +11 -0
  36. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/en.js +11 -0
  37. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js +13 -0
  38. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/es.js +12 -0
  39. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/et.js +11 -0
  40. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/eu.js +12 -0
  41. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js +11 -0
  42. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js +11 -0
  43. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/fo.js +11 -0
  44. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js +11 -0
  45. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js +12 -0
  46. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js +12 -0
  47. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js +11 -0
  48. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/he.js +11 -0
  49. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js +11 -0
  50. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js +11 -0
  51. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js +12 -0
  52. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/id.js +11 -0
  53. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/it.js +13 -0
  54. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js +9 -0
  55. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/km.js +11 -0
  56. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/ko.js +10 -0
  57. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js +11 -0
  58. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js +11 -0
  59. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js +12 -0
  60. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js +11 -0
  61. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js +11 -0
  62. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js +12 -0
  63. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js +11 -0
  64. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/no.js +11 -0
  65. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js +13 -0
  66. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js +13 -0
  67. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js +12 -0
  68. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js +11 -0
  69. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js +11 -0
  70. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/si.js +10 -0
  71. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js +11 -0
  72. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js +11 -0
  73. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js +11 -0
  74. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js +11 -0
  75. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js +11 -0
  76. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js +11 -0
  77. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/th.js +11 -0
  78. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js +12 -0
  79. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/tt.js +11 -0
  80. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js +12 -0
  81. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js +12 -0
  82. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js +11 -0
  83. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js +9 -0
  84. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/a11yhelp/dialogs/lang/zh.js +9 -0
  85. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/about/dialogs/about.js +7 -0
  86. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png +0 -0
  87. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  88. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/autogrow/plugin.js +221 -0
  89. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/clipboard/dialogs/paste.js +12 -0
  90. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/dialog/dialogDefinition.js +4 -0
  91. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/dialogadvtab/plugin.js +196 -0
  92. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/icons.png +0 -0
  93. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/icons_hidpi.png +0 -0
  94. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/image/dialogs/image.js +44 -0
  95. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/image/images/noimage.png +0 -0
  96. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/link/dialogs/anchor.js +7 -0
  97. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/link/dialogs/link.js +26 -0
  98. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/link/images/anchor.png +0 -0
  99. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/link/images/hidpi/anchor.png +0 -0
  100. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png +0 -0
  101. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/magicline/images/hidpi/icon.png +0 -0
  102. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/magicline/images/icon-rtl.png +0 -0
  103. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/magicline/images/icon.png +0 -0
  104. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/pastefromword/filter/default.js +32 -0
  105. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/scayt/LICENSE.md +28 -0
  106. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/scayt/README.md +25 -0
  107. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/scayt/dialogs/options.js +18 -0
  108. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/scayt/dialogs/toolbar.css +71 -0
  109. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt +20 -0
  110. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/af.js +13 -0
  111. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/ar.js +13 -0
  112. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/bg.js +13 -0
  113. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/ca.js +14 -0
  114. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/cs.js +13 -0
  115. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/cy.js +14 -0
  116. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/da.js +11 -0
  117. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/de.js +13 -0
  118. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/el.js +13 -0
  119. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js +13 -0
  120. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/en.js +13 -0
  121. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/eo.js +12 -0
  122. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/es.js +13 -0
  123. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/et.js +13 -0
  124. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/eu.js +13 -0
  125. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/fa.js +12 -0
  126. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/fi.js +13 -0
  127. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js +10 -0
  128. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/fr.js +11 -0
  129. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/gl.js +13 -0
  130. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/he.js +12 -0
  131. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/hr.js +13 -0
  132. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/hu.js +12 -0
  133. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/id.js +13 -0
  134. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/it.js +14 -0
  135. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/ja.js +9 -0
  136. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/km.js +13 -0
  137. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/ko.js +10 -0
  138. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/ku.js +13 -0
  139. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/lt.js +13 -0
  140. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/lv.js +13 -0
  141. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/nb.js +11 -0
  142. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/nl.js +13 -0
  143. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/no.js +11 -0
  144. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/pl.js +12 -0
  145. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js +11 -0
  146. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/pt.js +13 -0
  147. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/ru.js +13 -0
  148. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/si.js +13 -0
  149. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/sk.js +13 -0
  150. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/sl.js +12 -0
  151. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/sq.js +13 -0
  152. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/sv.js +11 -0
  153. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/th.js +13 -0
  154. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/tr.js +12 -0
  155. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/tt.js +13 -0
  156. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/ug.js +13 -0
  157. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/uk.js +12 -0
  158. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/vi.js +14 -0
  159. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js +9 -0
  160. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/lang/zh.js +9 -0
  161. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/specialchar/dialogs/specialchar.js +14 -0
  162. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/table/dialogs/table.js +21 -0
  163. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/tabletools/dialogs/tableCell.js +17 -0
  164. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/wsc/LICENSE.md +28 -0
  165. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/wsc/README.md +25 -0
  166. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/wsc/dialogs/ciframe.html +66 -0
  167. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  168. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/wsc/dialogs/wsc.css +82 -0
  169. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/wsc/dialogs/wsc.js +92 -0
  170. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/plugins/wsc/dialogs/wsc_ie.js +11 -0
  171. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/dialog.css +5 -0
  172. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/dialog_ie.css +5 -0
  173. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/dialog_ie7.css +5 -0
  174. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/dialog_ie8.css +5 -0
  175. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/dialog_iequirks.css +5 -0
  176. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/editor.css +5 -0
  177. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/editor_gecko.css +5 -0
  178. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/editor_ie.css +5 -0
  179. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/editor_ie7.css +5 -0
  180. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/editor_ie8.css +5 -0
  181. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/editor_iequirks.css +5 -0
  182. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/icons.png +0 -0
  183. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/icons_hidpi.png +0 -0
  184. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/images/arrow.png +0 -0
  185. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/images/close.png +0 -0
  186. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/images/hidpi/close.png +0 -0
  187. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/images/hidpi/lock-open.png +0 -0
  188. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/images/hidpi/lock.png +0 -0
  189. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/images/hidpi/refresh.png +0 -0
  190. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/images/lock-open.png +0 -0
  191. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/images/lock.png +0 -0
  192. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/images/refresh.png +0 -0
  193. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/images/spinner.gif +0 -0
  194. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/skins/moono/readme.md +49 -0
  195. data/app/assets/javascripts/goldencobra/html_editors/ckeditor/styles.js +111 -0
  196. data/app/assets/javascripts/goldencobra/html_editors/general.js +32 -0
  197. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/jquery.tinymce_v3.js +1 -0
  198. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/langs/de.js +1 -0
  199. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/langs/en.js +1 -0
  200. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/advhr/css/advhr.css +0 -0
  201. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/advhr/editor_plugin.js +0 -0
  202. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/advhr/editor_plugin_src.js +0 -0
  203. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/advhr/js/rule.js +0 -0
  204. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/advhr/langs/en_dlg.js +0 -0
  205. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/advhr/rule.htm +0 -0
  206. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/advimage/css/advimage.css +0 -0
  207. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/advimage/editor_plugin.js +0 -0
  208. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/advimage/editor_plugin_src.js +0 -0
  209. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/advimage/image.htm +0 -0
  210. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/advimage/img/sample.gif +0 -0
  211. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/advimage/js/image.js +464 -0
  212. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/advimage/langs/en_dlg.js +0 -0
  213. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/advlink/css/advlink.css +0 -0
  214. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/advlink/editor_plugin.js +0 -0
  215. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/advlink/editor_plugin_src.js +0 -0
  216. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/advlink/js/advlink.js +543 -0
  217. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/advlink/langs/en_dlg.js +0 -0
  218. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/advlink/link.htm +0 -0
  219. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/advlist/editor_plugin.js +0 -0
  220. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/advlist/editor_plugin_src.js +0 -0
  221. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/autolink/editor_plugin.js +1 -0
  222. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/autolink/editor_plugin_src.js +184 -0
  223. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/autoresize/editor_plugin.js +1 -0
  224. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/autoresize/editor_plugin_src.js +119 -0
  225. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/autosave/editor_plugin.js +1 -0
  226. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/autosave/editor_plugin_src.js +433 -0
  227. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/bbcode/editor_plugin.js +0 -0
  228. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/bbcode/editor_plugin_src.js +0 -0
  229. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/contextmenu/editor_plugin.js +1 -0
  230. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/contextmenu/editor_plugin_src.js +163 -0
  231. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/directionality/editor_plugin.js +1 -0
  232. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/directionality/editor_plugin_src.js +85 -0
  233. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/emotions/editor_plugin.js +0 -0
  234. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/emotions/editor_plugin_src.js +0 -0
  235. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/emotions/emotions.htm +42 -0
  236. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/emotions/img/smiley-cool.gif +0 -0
  237. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/emotions/img/smiley-cry.gif +0 -0
  238. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/emotions/img/smiley-embarassed.gif +0 -0
  239. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/emotions/img/smiley-foot-in-mouth.gif +0 -0
  240. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/emotions/img/smiley-frown.gif +0 -0
  241. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/emotions/img/smiley-innocent.gif +0 -0
  242. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/emotions/img/smiley-kiss.gif +0 -0
  243. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/emotions/img/smiley-laughing.gif +0 -0
  244. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/emotions/img/smiley-money-mouth.gif +0 -0
  245. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/emotions/img/smiley-sealed.gif +0 -0
  246. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/emotions/img/smiley-smile.gif +0 -0
  247. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/emotions/img/smiley-surprised.gif +0 -0
  248. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/emotions/img/smiley-tongue-out.gif +0 -0
  249. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/emotions/img/smiley-undecided.gif +0 -0
  250. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/emotions/img/smiley-wink.gif +0 -0
  251. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/emotions/img/smiley-yell.gif +0 -0
  252. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/emotions/js/emotions.js +0 -0
  253. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/emotions/langs/en_dlg.js +0 -0
  254. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/example/dialog.htm +0 -0
  255. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/example/editor_plugin.js +0 -0
  256. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/example/editor_plugin_src.js +84 -0
  257. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/example/img/example.gif +0 -0
  258. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/example/js/dialog.js +0 -0
  259. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/example/langs/en.js +0 -0
  260. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/example/langs/en_dlg.js +0 -0
  261. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/example_dependency/editor_plugin.js +0 -0
  262. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/example_dependency/editor_plugin_src.js +0 -0
  263. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/fullpage/css/fullpage.css +0 -0
  264. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/fullpage/editor_plugin.js +0 -0
  265. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/fullpage/editor_plugin_src.js +0 -0
  266. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/fullpage/fullpage.htm +0 -0
  267. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/fullpage/js/fullpage.js +0 -0
  268. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/fullpage/langs/en_dlg.js +0 -0
  269. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/fullscreen/editor_plugin.js +1 -0
  270. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/fullscreen/editor_plugin_src.js +234 -0
  271. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/fullscreen/fullscreen.htm +117 -0
  272. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/iespell/editor_plugin.js +0 -0
  273. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/iespell/editor_plugin_src.js +0 -0
  274. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/inlinepopups/editor_plugin.js +1 -0
  275. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/inlinepopups/editor_plugin_src.js +699 -0
  276. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
  277. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
  278. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/inlinepopups/skins/clearlooks2/img/buttons.gif +0 -0
  279. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
  280. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
  281. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/inlinepopups/skins/clearlooks2/img/horizontal.gif +0 -0
  282. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
  283. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/inlinepopups/skins/clearlooks2/window.css +0 -0
  284. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/inlinepopups/template.htm +0 -0
  285. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/insertdatetime/editor_plugin.js +0 -0
  286. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/insertdatetime/editor_plugin_src.js +0 -0
  287. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/layer/editor_plugin.js +0 -0
  288. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/layer/editor_plugin_src.js +0 -0
  289. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/legacyoutput/editor_plugin.js +1 -0
  290. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/legacyoutput/editor_plugin_src.js +139 -0
  291. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/lists/editor_plugin.js +1 -0
  292. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/lists/editor_plugin_src.js +955 -0
  293. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/media/css/media.css +0 -0
  294. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/media/editor_plugin.js +1 -0
  295. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/media/editor_plugin_src.js +898 -0
  296. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/media/js/embed.js +0 -0
  297. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/media/js/media.js +513 -0
  298. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/media/langs/en_dlg.js +0 -0
  299. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/media/media.htm +0 -0
  300. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/media/moxieplayer.swf +0 -0
  301. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/nonbreaking/editor_plugin.js +0 -0
  302. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/nonbreaking/editor_plugin_src.js +0 -0
  303. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/noneditable/editor_plugin.js +1 -0
  304. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/noneditable/editor_plugin_src.js +537 -0
  305. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/pagebreak/editor_plugin.js +0 -0
  306. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/pagebreak/editor_plugin_src.js +0 -0
  307. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/paste/editor_plugin.js +1 -0
  308. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/paste/editor_plugin_src.js +887 -0
  309. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/paste/js/pastetext.js +0 -0
  310. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/paste/js/pasteword.js +0 -0
  311. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/paste/langs/en_dlg.js +0 -0
  312. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/paste/pastetext.htm +0 -0
  313. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/paste/pasteword.htm +0 -0
  314. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/preview/editor_plugin.js +0 -0
  315. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/preview/editor_plugin_src.js +0 -0
  316. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/preview/example.html +0 -0
  317. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/preview/jscripts/embed.js +0 -0
  318. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/preview/preview.html +0 -0
  319. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/print/editor_plugin.js +0 -0
  320. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/print/editor_plugin_src.js +0 -0
  321. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/save/editor_plugin.js +0 -0
  322. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/save/editor_plugin_src.js +0 -0
  323. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/searchreplace/css/searchreplace.css +0 -0
  324. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/searchreplace/editor_plugin.js +0 -0
  325. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/searchreplace/editor_plugin_src.js +0 -0
  326. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/searchreplace/js/searchreplace.js +152 -0
  327. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/searchreplace/langs/en_dlg.js +0 -0
  328. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/searchreplace/searchreplace.htm +100 -0
  329. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/spellchecker/css/content.css +0 -0
  330. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/spellchecker/editor_plugin.js +1 -0
  331. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/spellchecker/editor_plugin_src.js +471 -0
  332. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/spellchecker/img/wline.gif +0 -0
  333. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/style/css/props.css +14 -0
  334. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/style/editor_plugin.js +1 -0
  335. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/style/editor_plugin_src.js +71 -0
  336. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/style/js/props.js +709 -0
  337. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/style/langs/en_dlg.js +1 -0
  338. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/style/props.htm +845 -0
  339. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/style/readme.txt +19 -0
  340. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/tabfocus/editor_plugin.js +1 -0
  341. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/tabfocus/editor_plugin_src.js +122 -0
  342. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/table/cell.htm +0 -0
  343. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/table/css/cell.css +0 -0
  344. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/table/css/row.css +0 -0
  345. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/table/css/table.css +0 -0
  346. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/table/editor_plugin.js +1 -0
  347. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/table/editor_plugin_src.js +1456 -0
  348. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/table/js/cell.js +319 -0
  349. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/table/js/merge_cells.js +0 -0
  350. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/table/js/row.js +254 -0
  351. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/table/js/table.js +501 -0
  352. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/table/langs/en_dlg.js +0 -0
  353. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/table/merge_cells.htm +0 -0
  354. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/table/row.htm +158 -0
  355. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/table/table.htm +0 -0
  356. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/template/blank.htm +0 -0
  357. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/template/css/template.css +0 -0
  358. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/template/editor_plugin.js +0 -0
  359. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/template/editor_plugin_src.js +0 -0
  360. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/template/js/template.js +0 -0
  361. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/template/langs/en_dlg.js +0 -0
  362. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/template/template.htm +0 -0
  363. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/visualblocks/css/visualblocks.css +21 -0
  364. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/visualblocks/editor_plugin.js +1 -0
  365. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/visualblocks/editor_plugin_src.js +63 -0
  366. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/visualchars/editor_plugin.js +0 -0
  367. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/visualchars/editor_plugin_src.js +0 -0
  368. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/wordcount/editor_plugin.js +1 -0
  369. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/plugins/wordcount/editor_plugin_src.js +122 -0
  370. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/xhtmlxtras/abbr.htm +0 -0
  371. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/xhtmlxtras/acronym.htm +0 -0
  372. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/xhtmlxtras/attributes.htm +0 -0
  373. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/xhtmlxtras/cite.htm +0 -0
  374. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/xhtmlxtras/css/attributes.css +0 -0
  375. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/xhtmlxtras/css/popup.css +0 -0
  376. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/xhtmlxtras/del.htm +0 -0
  377. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/xhtmlxtras/editor_plugin.js +0 -0
  378. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/xhtmlxtras/editor_plugin_src.js +0 -0
  379. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/xhtmlxtras/ins.htm +0 -0
  380. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/xhtmlxtras/js/abbr.js +0 -0
  381. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/xhtmlxtras/js/acronym.js +0 -0
  382. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/xhtmlxtras/js/attributes.js +0 -0
  383. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/xhtmlxtras/js/cite.js +0 -0
  384. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/xhtmlxtras/js/del.js +0 -0
  385. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/xhtmlxtras/js/element_common.js +0 -0
  386. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/xhtmlxtras/js/ins.js +0 -0
  387. data/app/assets/javascripts/goldencobra/{plugins → html_editors/tinymce_v3/plugins}/xhtmlxtras/langs/en_dlg.js +0 -0
  388. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/about.htm +0 -0
  389. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/anchor.htm +0 -0
  390. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/charmap.htm +0 -0
  391. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/themes/advanced/color_picker.htm +70 -0
  392. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/themes/advanced/editor_template.js +1 -0
  393. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/themes/advanced/editor_template_src.js +1490 -0
  394. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/image.htm +0 -0
  395. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/img/colorpicker.jpg +0 -0
  396. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/img/flash.gif +0 -0
  397. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/themes/advanced/img/icons.gif +0 -0
  398. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/img/iframe.gif +0 -0
  399. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/img/pagebreak.gif +0 -0
  400. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/img/quicktime.gif +0 -0
  401. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/img/realmedia.gif +0 -0
  402. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/img/shockwave.gif +0 -0
  403. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/img/trans.gif +0 -0
  404. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/img/video.gif +0 -0
  405. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/img/windowsmedia.gif +0 -0
  406. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/js/about.js +0 -0
  407. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/themes/advanced/js/anchor.js +56 -0
  408. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/js/charmap.js +0 -0
  409. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/themes/advanced/js/color_picker.js +345 -0
  410. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/themes/advanced/js/image.js +253 -0
  411. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/themes/advanced/js/link.js +159 -0
  412. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/themes/advanced/js/source_editor.js +78 -0
  413. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/themes/advanced/langs/de.js +1 -0
  414. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/themes/advanced/langs/de_dlg.js +1 -0
  415. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/langs/en.js +0 -0
  416. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/themes/advanced/langs/en_dlg.js +1 -0
  417. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/link.htm +0 -0
  418. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/shortcuts.htm +0 -0
  419. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/skins/default/content.css +0 -0
  420. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/themes/advanced/skins/default/dialog.css +118 -0
  421. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/skins/default/img/buttons.png +0 -0
  422. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/skins/default/img/items.gif +0 -0
  423. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/skins/default/img/menu_arrow.gif +0 -0
  424. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/skins/default/img/menu_check.gif +0 -0
  425. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/skins/default/img/progress.gif +0 -0
  426. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/skins/default/img/tabs.gif +0 -0
  427. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/themes/advanced/skins/default/ui.css +219 -0
  428. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/skins/highcontrast/content.css +0 -0
  429. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/themes/advanced/skins/highcontrast/dialog.css +106 -0
  430. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/themes/advanced/skins/highcontrast/ui.css +106 -0
  431. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/skins/o2k7/content.css +0 -0
  432. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/themes/advanced/skins/o2k7/dialog.css +118 -0
  433. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/skins/o2k7/img/button_bg.png +0 -0
  434. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/skins/o2k7/img/button_bg_black.png +0 -0
  435. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
  436. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/themes/advanced/skins/o2k7/ui.css +222 -0
  437. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/skins/o2k7/ui_black.css +0 -0
  438. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/advanced/skins/o2k7/ui_silver.css +0 -0
  439. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/themes/advanced/source_editor.htm +25 -0
  440. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/simple/editor_template.js +0 -0
  441. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/simple/editor_template_src.js +0 -0
  442. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/simple/img/icons.gif +0 -0
  443. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/themes/simple/langs/de.js +1 -0
  444. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/simple/langs/en.js +0 -0
  445. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/simple/skins/default/content.css +0 -0
  446. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/simple/skins/default/ui.css +0 -0
  447. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/simple/skins/o2k7/content.css +0 -0
  448. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/simple/skins/o2k7/img/button_bg.png +0 -0
  449. data/app/assets/javascripts/goldencobra/{themes → html_editors/tinymce_v3/themes}/simple/skins/o2k7/ui.css +0 -0
  450. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/tiny_mce_popup.js +5 -0
  451. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/tiny_mce_src.js +17942 -0
  452. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/tinymce_v3.js +1 -0
  453. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v3/tinymce_v3_inits.js +62 -0
  454. data/app/assets/javascripts/goldencobra/{utils → html_editors/tinymce_v3/utils}/editable_selects.js +0 -0
  455. data/app/assets/javascripts/goldencobra/{utils → html_editors/tinymce_v3/utils}/form_utils.js +0 -0
  456. data/app/assets/javascripts/goldencobra/{utils → html_editors/tinymce_v3/utils}/mctabs.js +0 -0
  457. data/app/assets/javascripts/goldencobra/{utils → html_editors/tinymce_v3/utils}/validate.js +0 -0
  458. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/jquery.tinymce_v4.js +1 -0
  459. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/langs/de.js +219 -0
  460. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/langs/readme.md +3 -0
  461. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/advlist/plugin.js +97 -0
  462. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/advlist/plugin.min.js +1 -0
  463. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/anchor/plugin.js +47 -0
  464. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/anchor/plugin.min.js +1 -0
  465. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/autolink/plugin.js +199 -0
  466. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/autolink/plugin.min.js +1 -0
  467. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/autoresize/plugin.js +162 -0
  468. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/autoresize/plugin.min.js +1 -0
  469. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/autosave/plugin.js +165 -0
  470. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/autosave/plugin.min.js +1 -0
  471. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/bbcode/plugin.js +123 -0
  472. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/bbcode/plugin.min.js +1 -0
  473. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/charmap/plugin.js +398 -0
  474. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/charmap/plugin.min.js +1 -0
  475. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/code/plugin.js +60 -0
  476. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/code/plugin.min.js +1 -0
  477. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/colorpicker/plugin.js +112 -0
  478. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/colorpicker/plugin.min.js +1 -0
  479. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/compat3x/css/dialog.css +118 -0
  480. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/compat3x/img/buttons.png +0 -0
  481. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/compat3x/img/icons.gif +0 -0
  482. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/compat3x/img/items.gif +0 -0
  483. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/compat3x/img/menu_arrow.gif +0 -0
  484. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/compat3x/img/menu_check.gif +0 -0
  485. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/compat3x/img/progress.gif +0 -0
  486. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/compat3x/img/tabs.gif +0 -0
  487. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/compat3x/plugin.js +297 -0
  488. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/compat3x/plugin.min.js +1 -0
  489. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/compat3x/tiny_mce_popup.js +542 -0
  490. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/compat3x/utils/editable_selects.js +70 -0
  491. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/compat3x/utils/form_utils.js +210 -0
  492. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/compat3x/utils/mctabs.js +164 -0
  493. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/compat3x/utils/validate.js +252 -0
  494. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/contextmenu/plugin.js +88 -0
  495. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/contextmenu/plugin.min.js +1 -0
  496. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/directionality/plugin.js +64 -0
  497. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/directionality/plugin.min.js +1 -0
  498. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/emoticons/img/smiley-cool.gif +0 -0
  499. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/emoticons/img/smiley-cry.gif +0 -0
  500. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/emoticons/img/smiley-embarassed.gif +0 -0
  501. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/emoticons/img/smiley-foot-in-mouth.gif +0 -0
  502. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/emoticons/img/smiley-frown.gif +0 -0
  503. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/emoticons/img/smiley-innocent.gif +0 -0
  504. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/emoticons/img/smiley-kiss.gif +0 -0
  505. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/emoticons/img/smiley-laughing.gif +0 -0
  506. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/emoticons/img/smiley-money-mouth.gif +0 -0
  507. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/emoticons/img/smiley-sealed.gif +0 -0
  508. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/emoticons/img/smiley-smile.gif +0 -0
  509. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/emoticons/img/smiley-surprised.gif +0 -0
  510. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/emoticons/img/smiley-tongue-out.gif +0 -0
  511. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/emoticons/img/smiley-undecided.gif +0 -0
  512. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/emoticons/img/smiley-wink.gif +0 -0
  513. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/emoticons/img/smiley-yell.gif +0 -0
  514. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/emoticons/plugin.js +65 -0
  515. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/emoticons/plugin.min.js +1 -0
  516. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/example/dialog.html +8 -0
  517. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/example/plugin.js +68 -0
  518. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/example/plugin.min.js +1 -0
  519. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/example_dependency/plugin.js +22 -0
  520. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/example_dependency/plugin.min.js +1 -0
  521. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/fullpage/plugin.js +490 -0
  522. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/fullpage/plugin.min.js +1 -0
  523. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/fullscreen/plugin.js +136 -0
  524. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/fullscreen/plugin.min.js +1 -0
  525. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/hr/plugin.js +30 -0
  526. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/hr/plugin.min.js +1 -0
  527. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/image/plugin.js +550 -0
  528. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/image/plugin.min.js +1 -0
  529. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/imagetools/classes/Canvas.js +35 -0
  530. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/imagetools/classes/ColorMatrix.js +222 -0
  531. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/imagetools/classes/Conversions.js +186 -0
  532. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/imagetools/classes/CropRect.js +214 -0
  533. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/imagetools/classes/Dialog.js +486 -0
  534. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/imagetools/classes/Filters.js +221 -0
  535. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/imagetools/classes/ImagePanel.js +218 -0
  536. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/imagetools/classes/ImageSize.js +27 -0
  537. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/imagetools/classes/ImageTools.js +99 -0
  538. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/imagetools/classes/Mime.js +42 -0
  539. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/imagetools/classes/Plugin.js +390 -0
  540. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/imagetools/classes/UndoStack.js +57 -0
  541. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/imagetools/plugin.dev.js +149 -0
  542. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/imagetools/plugin.js +2334 -0
  543. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/imagetools/plugin.min.js +1 -0
  544. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/importcss/plugin.js +197 -0
  545. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/importcss/plugin.min.js +1 -0
  546. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/insertdatetime/plugin.js +121 -0
  547. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/insertdatetime/plugin.min.js +1 -0
  548. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/layer/plugin.js +225 -0
  549. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/layer/plugin.min.js +1 -0
  550. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/legacyoutput/plugin.js +211 -0
  551. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/legacyoutput/plugin.min.js +1 -0
  552. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/link/plugin.js +403 -0
  553. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/link/plugin.min.js +1 -0
  554. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/lists/plugin.js +821 -0
  555. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/lists/plugin.min.js +1 -0
  556. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/media/moxieplayer.swf +0 -0
  557. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/media/plugin.js +795 -0
  558. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/media/plugin.min.js +1 -0
  559. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/nonbreaking/plugin.js +53 -0
  560. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/nonbreaking/plugin.min.js +1 -0
  561. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/noneditable/plugin.js +614 -0
  562. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/noneditable/plugin.min.js +1 -0
  563. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/pagebreak/plugin.js +88 -0
  564. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/pagebreak/plugin.min.js +1 -0
  565. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/paste/classes/Clipboard.js +688 -0
  566. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/paste/classes/Plugin.js +110 -0
  567. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/paste/classes/Quirks.js +159 -0
  568. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/paste/classes/Utils.js +129 -0
  569. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/paste/classes/WordFilter.js +498 -0
  570. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/paste/plugin.dev.js +142 -0
  571. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/paste/plugin.js +1700 -0
  572. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/paste/plugin.min.js +1 -0
  573. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/preview/plugin.js +88 -0
  574. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/preview/plugin.min.js +1 -0
  575. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/print/plugin.js +32 -0
  576. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/print/plugin.min.js +1 -0
  577. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/save/plugin.js +94 -0
  578. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/save/plugin.min.js +1 -0
  579. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/searchreplace/plugin.js +600 -0
  580. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/searchreplace/plugin.min.js +1 -0
  581. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/spellchecker/classes/DomTextMatcher.js +470 -0
  582. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/spellchecker/classes/Plugin.js +435 -0
  583. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/spellchecker/plugin.dev.js +139 -0
  584. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/spellchecker/plugin.js +1012 -0
  585. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/spellchecker/plugin.min.js +1 -0
  586. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/tabfocus/plugin.js +120 -0
  587. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/tabfocus/plugin.min.js +1 -0
  588. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/table/classes/CellSelection.js +176 -0
  589. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/table/classes/Dialogs.js +824 -0
  590. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/table/classes/Plugin.js +436 -0
  591. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/table/classes/Quirks.js +397 -0
  592. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/table/classes/TableGrid.js +860 -0
  593. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/table/classes/Utils.js +34 -0
  594. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/table/plugin.dev.js +141 -0
  595. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/table/plugin.js +2844 -0
  596. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/table/plugin.min.js +1 -0
  597. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/template/plugin.js +264 -0
  598. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/template/plugin.min.js +1 -0
  599. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/textcolor/plugin.js +282 -0
  600. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/textcolor/plugin.min.js +1 -0
  601. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/textpattern/plugin.js +268 -0
  602. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/textpattern/plugin.min.js +1 -0
  603. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/css/visualblocks.css +135 -0
  604. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/img/address.gif +0 -0
  605. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/img/article.gif +0 -0
  606. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/img/aside.gif +0 -0
  607. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/img/blockquote.gif +0 -0
  608. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/img/div.gif +0 -0
  609. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/img/dl.gif +0 -0
  610. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/img/figure.gif +0 -0
  611. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/img/h1.gif +0 -0
  612. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/img/h2.gif +0 -0
  613. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/img/h3.gif +0 -0
  614. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/img/h4.gif +0 -0
  615. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/img/h5.gif +0 -0
  616. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/img/h6.gif +0 -0
  617. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/img/hgroup.gif +0 -0
  618. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/img/ol.gif +0 -0
  619. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/img/p.gif +0 -0
  620. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/img/pre.gif +0 -0
  621. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/img/section.gif +0 -0
  622. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/img/ul.gif +0 -0
  623. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/plugin.js +86 -0
  624. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualblocks/plugin.min.js +1 -0
  625. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualchars/plugin.js +123 -0
  626. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/visualchars/plugin.min.js +1 -0
  627. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/wordcount/plugin.js +69 -0
  628. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/plugins/wordcount/plugin.min.js +1 -0
  629. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/skins/lightgray/content.inline.min.css +1 -0
  630. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/skins/lightgray/content.min.css +1 -0
  631. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/skins/lightgray/fonts/tinymce-small.eot +0 -0
  632. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/skins/lightgray/fonts/tinymce-small.svg +62 -0
  633. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/skins/lightgray/fonts/tinymce-small.ttf +0 -0
  634. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/skins/lightgray/fonts/tinymce-small.woff +0 -0
  635. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/skins/lightgray/fonts/tinymce.eot +0 -0
  636. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/skins/lightgray/fonts/tinymce.svg +83 -0
  637. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/skins/lightgray/fonts/tinymce.ttf +0 -0
  638. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/skins/lightgray/fonts/tinymce.woff +0 -0
  639. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/skins/lightgray/img/anchor.gif +0 -0
  640. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/skins/lightgray/img/loader.gif +0 -0
  641. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/skins/lightgray/img/object.gif +0 -0
  642. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/skins/lightgray/img/trans.gif +0 -0
  643. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/skins/lightgray/skin.ie7.min.css +1 -0
  644. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/skins/lightgray/skin.min.css +1 -0
  645. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/themes/modern/theme.js +1 -0
  646. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/themes/modern/theme.min.js +1 -0
  647. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/tinymce_v4.js +11 -0
  648. data/app/assets/javascripts/goldencobra/html_editors/tinymce_v4/tinymce_v4_inits.js +62 -0
  649. data/app/assets/javascripts/goldencobra/jquery.color-2.1.2.js +663 -0
  650. data/app/assets/javascripts/goldencobra/pagination.js +28 -0
  651. data/app/assets/javascripts/goldencobra/react_0.13.1.min.js +15 -0
  652. data/app/assets/javascripts/goldencobra/tiny_mce_popup.js +1 -1
  653. data/app/assets/javascripts/goldencobra/tiny_mce_src.js +17942 -0
  654. data/app/assets/stylesheets/goldencobra/active_admin.scss +16 -0
  655. data/app/assets/stylesheets/goldencobra/active_admin_backup.scss +608 -0
  656. data/app/assets/stylesheets/goldencobra/{application.css.scss → application.scss} +0 -0
  657. data/app/assets/stylesheets/goldencobra/chosen.css +51 -31
  658. data/app/assets/stylesheets/goldencobra/gc-articles.scss +12 -0
  659. data/app/assets/stylesheets/goldencobra/gc-chosen-overwrite.scss +12 -0
  660. data/app/assets/stylesheets/goldencobra/gc-general.scss +487 -0
  661. data/app/assets/stylesheets/goldencobra/gc-grid.scss +5 -0
  662. data/app/assets/stylesheets/goldencobra/gc-header.scss +47 -0
  663. data/app/assets/stylesheets/goldencobra/gc-overview-tree.scss +145 -0
  664. data/app/assets/stylesheets/goldencobra/gc-settings.scss +52 -0
  665. data/app/assets/stylesheets/goldencobra/ikusei_active_admin.scss +16 -34
  666. data/app/controllers/goldencobra/api/v1/tokens_controller.rb +10 -0
  667. data/app/controllers/goldencobra/api/v2/articles_controller.rb +213 -143
  668. data/app/controllers/goldencobra/api/v2/locales_controller.rb +1 -1
  669. data/app/controllers/goldencobra/api/v2/navigation_menus_controller.rb +223 -0
  670. data/app/controllers/goldencobra/api/v2/settings_controller.rb +1 -1
  671. data/app/controllers/goldencobra/api/v2/uploads_controller.rb +32 -0
  672. data/app/controllers/goldencobra/api/v3/articles_controller.rb +124 -0
  673. data/app/controllers/goldencobra/application_controller.rb +17 -41
  674. data/app/controllers/goldencobra/articles_controller.rb +60 -62
  675. data/app/controllers/goldencobra/manage_controller.rb +3 -4
  676. data/app/controllers/goldencobra/sessions_controller.rb +22 -15
  677. data/app/helpers/goldencobra/application_helper.rb +15 -3
  678. data/app/helpers/goldencobra/articles_helper.rb +80 -52
  679. data/app/helpers/goldencobra/login_helper.rb +4 -5
  680. data/app/helpers/goldencobra/navigation_helper.rb +52 -44
  681. data/app/mailers/goldencobra/confirmation_mailer.rb +3 -2
  682. data/app/models/ability.rb +1 -1
  683. data/app/models/active_admin/views/index_as_seo_table.rb +9 -0
  684. data/app/models/active_admin/views/index_as_tree.rb +118 -0
  685. data/app/models/goldencobra/article.rb +327 -246
  686. data/app/models/goldencobra/article_concerns/meta_tag.rb +104 -0
  687. data/app/models/goldencobra/article_image.rb +2 -2
  688. data/app/models/goldencobra/article_url.rb +54 -0
  689. data/app/models/goldencobra/articletype.rb +109 -48
  690. data/app/models/goldencobra/articletype_field.rb +3 -2
  691. data/app/models/goldencobra/articletype_group.rb +4 -4
  692. data/app/models/goldencobra/author.rb +5 -3
  693. data/app/models/goldencobra/comment.rb +7 -7
  694. data/app/models/goldencobra/domain.rb +3 -3
  695. data/app/models/goldencobra/import.rb +282 -282
  696. data/app/models/goldencobra/import_metadata.rb +5 -1
  697. data/app/models/goldencobra/link_checker.rb +27 -14
  698. data/app/models/goldencobra/location.rb +16 -4
  699. data/app/models/goldencobra/menue.rb +144 -17
  700. data/app/models/goldencobra/permission.rb +15 -3
  701. data/app/models/goldencobra/redirector.rb +23 -23
  702. data/app/models/goldencobra/role.rb +1 -0
  703. data/app/models/goldencobra/role_user.rb +4 -2
  704. data/app/models/goldencobra/setting.rb +54 -35
  705. data/app/models/goldencobra/tracking.rb +6 -3
  706. data/app/models/goldencobra/upload.rb +71 -53
  707. data/app/models/goldencobra/vita.rb +3 -3
  708. data/app/models/goldencobra/widget.rb +22 -16
  709. data/app/models/translation.rb +2 -2
  710. data/app/models/user.rb +18 -15
  711. data/app/models/visitor.rb +13 -8
  712. data/app/presenters/goldencobra/articletype_presenter.rb +266 -0
  713. data/app/serializers/goldencobra/article_custom_serializer.rb +24 -0
  714. data/app/serializers/goldencobra/article_serializer.rb +26 -0
  715. data/app/serializers/goldencobra/upload_serializer.rb +22 -0
  716. data/app/services/goldencobra/attribute_repair_service.rb +47 -0
  717. data/app/services/goldencobra/attribute_validator.rb +55 -0
  718. data/app/services/goldencobra/settings_cleanup.rb +95 -0
  719. data/app/services/goldencobra/url.rb +25 -0
  720. data/app/views/goldencobra/admin/articles/_article_type.html.erb +4 -3
  721. data/app/views/goldencobra/admin/articles/_image_module_sidebar.html.erb +2 -2
  722. data/app/views/goldencobra/admin/articles/_link_checker.html.erb +10 -13
  723. data/app/views/goldencobra/admin/articles/_select_article_type.html.erb +1 -4
  724. data/app/views/goldencobra/admin/dashboard/_base_dashboard.html.arb +106 -0
  725. data/app/views/goldencobra/admin/shared/_item.html.erb +1 -1
  726. data/app/views/goldencobra/admin/shared/_overview.html.erb +3 -3
  727. data/app/views/goldencobra/admin/shared/_react_overview.html.erb +15 -0
  728. data/app/views/goldencobra/admin/shared/load_overviewtree.js.erb +8 -3
  729. data/app/views/goldencobra/api/v2/articles/index.xml.builder +29 -0
  730. data/app/views/goldencobra/articles/show.rss.builder +1 -1
  731. data/app/views/goldencobra/manage/_admin_article_management_content.html.erb +2 -2
  732. data/app/views/layouts/goldencobra/active_admin_resque.html.erb +15 -15
  733. data/app/views/layouts/goldencobra/application.html.erb +1 -1
  734. data/app/views/layouts/goldencobra/bare_layout.html.erb +1 -1
  735. data/app/views/layouts/goldencobra/for_pdf.html.erb +1 -1
  736. data/app/worker/articles_cache_worker.rb +1 -2
  737. data/config/initializers/active_admin_devise.rb +4 -4
  738. data/config/initializers/check_for_missing_articletypes.rb +2 -55
  739. data/config/initializers/devise.rb +9 -1
  740. data/config/initializers/http_validator.rb +8 -10
  741. data/config/initializers/sass_load_path.rb +4 -0
  742. data/config/initializers/sidekiq.rb.tmpl +7 -0
  743. data/config/locales/active_admin.de.yml +49 -25
  744. data/config/locales/active_admin.en.yml +46 -22
  745. data/config/locales/active_admin.zh-CN.yml +645 -0
  746. data/config/locales/de.yml +95 -78
  747. data/config/locales/en.yml +97 -90
  748. data/config/locales/zh-CN.yml +632 -0
  749. data/config/routes.rb +37 -78
  750. data/config/settings.yml +17 -8
  751. data/config/spring.rb +1 -0
  752. data/db/migrate/20150811082119_install_goldencobra.rb +589 -0
  753. data/db/migrate/20150818133609_change_article_index_type_default.rb +5 -0
  754. data/db/migrate/20150818140444_rename_user_title_to_user_position.rb +5 -0
  755. data/db/migrate/20150818141321_add_displayarticletypeindex_to_goldencobra_articles.rb +5 -0
  756. data/db/migrate/20150819121715_add_descendentsdepth_to_goldencobra_articles.rb +6 -0
  757. data/db/migrate/20150820073443_change_metatag_storage.rb +13 -0
  758. data/db/migrate/20160527083745_add_state_to_goldencobra_articles.rb +5 -0
  759. data/db/migrate/20160614074840_create_goldencobra_article_urls.rb +10 -0
  760. data/db/migrate/20160704070529_add_showindexarticles_to_goldencobra_articles.rb +5 -0
  761. data/db/seeds.rb +28 -13
  762. data/lib/generators/goldencobra/articletype/articletype_generator.rb +3 -5
  763. data/lib/generators/goldencobra/articletype/templates/edit_articletype.html.erb +3 -3
  764. data/lib/generators/goldencobra/articletype/templates/edit_index.html.erb +11 -6
  765. data/lib/generators/goldencobra/articletype/templates/edit_show.html.erb +4 -6
  766. data/lib/generators/goldencobra/articletype/templates/index.html.erb +18 -21
  767. data/lib/generators/goldencobra/articletype/templates/initializer.rb +3 -6
  768. data/lib/generators/goldencobra/articletype/templates/show.html.erb +187 -9
  769. data/lib/generators/goldencobra/install_generator.rb +47 -65
  770. data/lib/generators/goldencobra/server_generator.rb +14 -17
  771. data/lib/generators/goldencobra/templates/active_admin.rb.erb +20 -17
  772. data/lib/generators/goldencobra/templates/assets/javascripts/application.js +1 -29
  773. data/lib/generators/goldencobra/templates/assets/stylesheets/_bootstrap_overwrite.scss +60 -0
  774. data/lib/generators/goldencobra/templates/assets/stylesheets/{active_admin.css.scss → active_admin.scss} +0 -0
  775. data/lib/generators/goldencobra/templates/assets/stylesheets/application.scss +16 -0
  776. data/lib/generators/goldencobra/templates/deploy.rb.erb +0 -6
  777. data/lib/generators/goldencobra/templates/robots.txt +6 -2
  778. data/lib/generators/goldencobra/templates/seeds.rb.erb +29 -163
  779. data/lib/generators/goldencobra/templates/views/articletypes/default/_edit_index.html.erb +3 -9
  780. data/lib/generators/goldencobra/templates/views/articletypes/default/_show.html.erb +181 -15
  781. data/lib/generators/goldencobra/templates/views/layouts/_footer.html.erb +22 -18
  782. data/lib/generators/goldencobra/templates/views/layouts/_header_meta.html.erb +29 -15
  783. data/lib/generators/goldencobra/templates/views/layouts/_navigation.html.erb +31 -0
  784. data/lib/generators/goldencobra/templates/views/layouts/_startpage.html.erb +71 -0
  785. data/lib/generators/goldencobra/templates/views/layouts/application.html.erb +10 -41
  786. data/lib/goldencobra.rb +33 -0
  787. data/lib/goldencobra/acts_as_setting.rb +8 -10
  788. data/lib/goldencobra/engine.rb +30 -41
  789. data/lib/goldencobra/version.rb +1 -3
  790. data/lib/i18n/backend/active_record.rb +61 -0
  791. data/lib/i18n/backend/active_record/translation.rb +109 -0
  792. data/lib/tasks/article_cache.rake +1 -1
  793. data/lib/tasks/attribute_validator.rake +18 -0
  794. data/lib/tasks/link_checker.rake +3 -7
  795. metadata +917 -803
  796. data/app/assets/javascripts/goldencobra/application.js +0 -84
  797. data/app/assets/javascripts/goldencobra/jquery.tinymce.js +0 -1
  798. data/app/assets/javascripts/goldencobra/langs/en.js +0 -1
  799. data/app/assets/javascripts/goldencobra/plugins/advimage/js/image.js +0 -462
  800. data/app/assets/javascripts/goldencobra/plugins/advlink/js/advlink.js +0 -532
  801. data/app/assets/javascripts/goldencobra/plugins/autolink/editor_plugin.js +0 -1
  802. data/app/assets/javascripts/goldencobra/plugins/autolink/editor_plugin_src.js +0 -172
  803. data/app/assets/javascripts/goldencobra/plugins/autoresize/editor_plugin.js +0 -1
  804. data/app/assets/javascripts/goldencobra/plugins/autoresize/editor_plugin_src.js +0 -137
  805. data/app/assets/javascripts/goldencobra/plugins/autosave/editor_plugin.js +0 -1
  806. data/app/assets/javascripts/goldencobra/plugins/autosave/editor_plugin_src.js +0 -431
  807. data/app/assets/javascripts/goldencobra/plugins/autosave/langs/en.js +0 -4
  808. data/app/assets/javascripts/goldencobra/plugins/contextmenu/editor_plugin.js +0 -1
  809. data/app/assets/javascripts/goldencobra/plugins/contextmenu/editor_plugin_src.js +0 -160
  810. data/app/assets/javascripts/goldencobra/plugins/directionality/editor_plugin.js +0 -1
  811. data/app/assets/javascripts/goldencobra/plugins/directionality/editor_plugin_src.js +0 -82
  812. data/app/assets/javascripts/goldencobra/plugins/emotions/emotions.htm +0 -42
  813. data/app/assets/javascripts/goldencobra/plugins/example/editor_plugin_src.js +0 -84
  814. data/app/assets/javascripts/goldencobra/plugins/example/img/image_button.gif +0 -0
  815. data/app/assets/javascripts/goldencobra/plugins/fullscreen/editor_plugin.js +0 -1
  816. data/app/assets/javascripts/goldencobra/plugins/fullscreen/editor_plugin_src.js +0 -159
  817. data/app/assets/javascripts/goldencobra/plugins/fullscreen/fullscreen.htm +0 -110
  818. data/app/assets/javascripts/goldencobra/plugins/inlinepopups/editor_plugin.js +0 -1
  819. data/app/assets/javascripts/goldencobra/plugins/inlinepopups/editor_plugin_src.js +0 -699
  820. data/app/assets/javascripts/goldencobra/plugins/legacyoutput/editor_plugin.js +0 -1
  821. data/app/assets/javascripts/goldencobra/plugins/legacyoutput/editor_plugin_src.js +0 -139
  822. data/app/assets/javascripts/goldencobra/plugins/lists/editor_plugin.js +0 -1
  823. data/app/assets/javascripts/goldencobra/plugins/lists/editor_plugin_src.js +0 -925
  824. data/app/assets/javascripts/goldencobra/plugins/media/editor_plugin.js +0 -1
  825. data/app/assets/javascripts/goldencobra/plugins/media/editor_plugin_src.js +0 -890
  826. data/app/assets/javascripts/goldencobra/plugins/media/js/media.js +0 -464
  827. data/app/assets/javascripts/goldencobra/plugins/noneditable/editor_plugin.js +0 -1
  828. data/app/assets/javascripts/goldencobra/plugins/noneditable/editor_plugin_src.js +0 -95
  829. data/app/assets/javascripts/goldencobra/plugins/paste/editor_plugin.js +0 -1
  830. data/app/assets/javascripts/goldencobra/plugins/paste/editor_plugin_src.js +0 -871
  831. data/app/assets/javascripts/goldencobra/plugins/searchreplace/js/searchreplace.js +0 -142
  832. data/app/assets/javascripts/goldencobra/plugins/searchreplace/searchreplace.htm +0 -100
  833. data/app/assets/javascripts/goldencobra/plugins/spellchecker/editor_plugin.js +0 -1
  834. data/app/assets/javascripts/goldencobra/plugins/spellchecker/editor_plugin_src.js +0 -436
  835. data/app/assets/javascripts/goldencobra/plugins/style/css/props.css +0 -13
  836. data/app/assets/javascripts/goldencobra/plugins/style/editor_plugin.js +0 -1
  837. data/app/assets/javascripts/goldencobra/plugins/style/editor_plugin_src.js +0 -55
  838. data/app/assets/javascripts/goldencobra/plugins/style/js/props.js +0 -635
  839. data/app/assets/javascripts/goldencobra/plugins/style/langs/en_dlg.js +0 -1
  840. data/app/assets/javascripts/goldencobra/plugins/style/props.htm +0 -840
  841. data/app/assets/javascripts/goldencobra/plugins/tabfocus/editor_plugin.js +0 -1
  842. data/app/assets/javascripts/goldencobra/plugins/tabfocus/editor_plugin_src.js +0 -122
  843. data/app/assets/javascripts/goldencobra/plugins/table/editor_plugin.js +0 -1
  844. data/app/assets/javascripts/goldencobra/plugins/table/editor_plugin_src.js +0 -1408
  845. data/app/assets/javascripts/goldencobra/plugins/table/js/cell.js +0 -319
  846. data/app/assets/javascripts/goldencobra/plugins/table/js/row.js +0 -237
  847. data/app/assets/javascripts/goldencobra/plugins/table/js/table.js +0 -484
  848. data/app/assets/javascripts/goldencobra/plugins/table/row.htm +0 -158
  849. data/app/assets/javascripts/goldencobra/plugins/wordcount/editor_plugin.js +0 -1
  850. data/app/assets/javascripts/goldencobra/plugins/wordcount/editor_plugin_src.js +0 -114
  851. data/app/assets/javascripts/goldencobra/themes/advanced/color_picker.htm +0 -74
  852. data/app/assets/javascripts/goldencobra/themes/advanced/editor_template.js +0 -1
  853. data/app/assets/javascripts/goldencobra/themes/advanced/editor_template_src.js +0 -1362
  854. data/app/assets/javascripts/goldencobra/themes/advanced/img/icons.gif +0 -0
  855. data/app/assets/javascripts/goldencobra/themes/advanced/js/anchor.js +0 -43
  856. data/app/assets/javascripts/goldencobra/themes/advanced/js/color_picker.js +0 -329
  857. data/app/assets/javascripts/goldencobra/themes/advanced/js/image.js +0 -251
  858. data/app/assets/javascripts/goldencobra/themes/advanced/js/link.js +0 -153
  859. data/app/assets/javascripts/goldencobra/themes/advanced/js/source_editor.js +0 -56
  860. data/app/assets/javascripts/goldencobra/themes/advanced/langs/en_dlg.js +0 -1
  861. data/app/assets/javascripts/goldencobra/themes/advanced/skins/default/dialog.css +0 -117
  862. data/app/assets/javascripts/goldencobra/themes/advanced/skins/default/ui.css +0 -214
  863. data/app/assets/javascripts/goldencobra/themes/advanced/skins/highcontrast/dialog.css +0 -105
  864. data/app/assets/javascripts/goldencobra/themes/advanced/skins/highcontrast/ui.css +0 -102
  865. data/app/assets/javascripts/goldencobra/themes/advanced/skins/o2k7/dialog.css +0 -117
  866. data/app/assets/javascripts/goldencobra/themes/advanced/skins/o2k7/ui.css +0 -217
  867. data/app/assets/javascripts/goldencobra/themes/advanced/source_editor.htm +0 -25
  868. data/app/assets/javascripts/goldencobra/tiny_mce.js +0 -1
  869. data/app/assets/stylesheets/goldencobra/active_admin.css.scss +0 -595
  870. data/app/models/goldencobra/metatag.rb +0 -23
  871. data/app/models/goldencobra/url_builder.rb +0 -58
  872. data/app/views/goldencobra/admin/articles/_articles_index.html.erb +0 -4
  873. data/app/views/goldencobra/admin/articles/_widgets_sidebar.html.erb +0 -15
  874. data/app/views/goldencobra/admin/articles/toggle_expert_mode.js.erb +0 -7
  875. data/config/initializers/check_for_migrations.rb +0 -21
  876. data/config/initializers/compass.rb +0 -24
  877. data/db/migrate/20120109093658_create_articles.rb +0 -9
  878. data/db/migrate/20120109111205_add_devise_to_admin_users.rb +0 -56
  879. data/db/migrate/20120109121212_create_admin_notes.rb +0 -16
  880. data/db/migrate/20120109121213_move_admin_notes_to_comments.rb +0 -25
  881. data/db/migrate/20120109140423_create_roles.rb +0 -10
  882. data/db/migrate/20120109141338_create_role_users.rb +0 -8
  883. data/db/migrate/20120110112157_add_urlname_to_article.rb +0 -7
  884. data/db/migrate/20120110114803_create_friendly_id_slugs.rb +0 -18
  885. data/db/migrate/20120112163045_add_body_to_articles.rb +0 -6
  886. data/db/migrate/20120112171037_add_ancestry_to_articles.rb +0 -6
  887. data/db/migrate/20120112172723_add_index_to_articles.rb +0 -9
  888. data/db/migrate/20120113100243_create_menues.rb +0 -12
  889. data/db/migrate/20120113101714_add_ancestry_to_menues.rb +0 -6
  890. data/db/migrate/20120113170904_add_startpage_to_article.rb +0 -5
  891. data/db/migrate/20120120095700_create_goldencobra_metatags.rb +0 -11
  892. data/db/migrate/20120125145920_add_fields_to_articles.rb +0 -9
  893. data/db/migrate/20120125161800_add_noindex_to_articles.rb +0 -5
  894. data/db/migrate/20120126132846_create_goldencobra_uploads.rb +0 -14
  895. data/db/migrate/20120206110452_create_goldencobra_locations.rb +0 -15
  896. data/db/migrate/20120209100956_create_goldencobra_settings.rb +0 -11
  897. data/db/migrate/20120217085735_add_options_to_users.rb +0 -16
  898. data/db/migrate/20120221100021_create_goldencobra_helps.rb +0 -11
  899. data/db/migrate/20120307151355_add_breadcrumb_to_goldencobra_articles.rb +0 -6
  900. data/db/migrate/20120312111338_create_goldencobra_widgets.rb +0 -12
  901. data/db/migrate/20120312150558_create_goldencobra_article_widgets.rb +0 -10
  902. data/db/migrate/20120313125443_create_goldencobra_permissions.rb +0 -18
  903. data/db/migrate/20120313142221_add_name_to_goldencobra_widgets.rb +0 -6
  904. data/db/migrate/20120313142421_add_sorter_to_goldencobra_widgets.rb +0 -6
  905. data/db/migrate/20120314102039_add_template_to_goldencobra_articles.rb +0 -6
  906. data/db/migrate/20120315161536_add_sorter_to_goldencobra_menue.rb +0 -6
  907. data/db/migrate/20120321102414_acts_as_taggable_on_migration.rb +0 -30
  908. data/db/migrate/20120321114923_add_articleindex_to_goldencobra_articles.rb +0 -7
  909. data/db/migrate/20120321120727_add_social_sharing_to_goldencobra_articles.rb +0 -6
  910. data/db/migrate/20120321130204_add_articleindeximages_to_goldencobra_articles.rb +0 -6
  911. data/db/migrate/20120321131058_create_goldencobra_article_images.rb +0 -10
  912. data/db/migrate/20120416154848_create_goldencobra_vita.rb +0 -13
  913. data/db/migrate/20120420094029_add_cachable_to_goldencobra_articles.rb +0 -5
  914. data/db/migrate/20120423141814_add_imagegallery_to_goldencobra_articles.rb +0 -5
  915. data/db/migrate/20120509125734_add_title_to_goldencobra_locations.rb +0 -5
  916. data/db/migrate/20120604141401_add_article_type_to_goldencobra_articles.rb +0 -5
  917. data/db/migrate/20120605082035_add_description_to_goldencobra_menues.rb +0 -6
  918. data/db/migrate/20120608095444_add_teaser_title_to_goldencobra_menue.rb +0 -5
  919. data/db/migrate/20120608121356_create_versions.rb +0 -18
  920. data/db/migrate/20120611082814_create_goldencobra_imports.rb +0 -13
  921. data/db/migrate/20120615085225_add_externalurl_to_goldencobra_article.rb +0 -5
  922. data/db/migrate/20120615150128_add_attachable_to_goldencobra_uploads.rb +0 -6
  923. data/db/migrate/20120618122627_add_indextag_to_goldencobra_articles.rb +0 -5
  924. data/db/migrate/20120618132330_add_sliderfields_to_widgets.rb +0 -5
  925. data/db/migrate/20120618141449_add_teaser_to_goldencobra_widgets.rb +0 -5
  926. data/db/migrate/20120619123238_add_sorter_to_goldencobra_articles.rb +0 -5
  927. data/db/migrate/20120619132259_add_reverse_sort_to_goldencobra_articles.rb +0 -5
  928. data/db/migrate/20120625131154_add_author_to_goldencobra_articles.rb +0 -5
  929. data/db/migrate/20120627122742_add_sorter_limit_to_goldencobra_articles.rb +0 -5
  930. data/db/migrate/20120718153348_add_nottags_to_goldencobra_articles.rb +0 -5
  931. data/db/migrate/20120730103912_add_use_frontend_tags_to_goldencobra_articles.rb +0 -5
  932. data/db/migrate/20120807124808_add_image_to_goldencobra_menues.rb +0 -5
  933. data/db/migrate/20120814111900_add_default_and_description_to_goldencobra.rb +0 -6
  934. data/db/migrate/20120814114800_change_default_type_to_goldencobra_widgets.rb +0 -6
  935. data/db/migrate/20120821105002_add_alttext_to_goldencobra_uploads.rb +0 -5
  936. data/db/migrate/20120926133635_add_position_to_goldencobra_article_images.rb +0 -5
  937. data/db/migrate/20120928092721_create_goldencobra_comments.rb +0 -16
  938. data/db/migrate/20120928105956_devise_create_visitors.rb +0 -46
  939. data/db/migrate/20121001092249_add_names_to_visitors.rb +0 -6
  940. data/db/migrate/20121002143111_add_columns_to_visitors.rb +0 -8
  941. data/db/migrate/20121003102003_add_dynamicredirect_to_goldencobraarticles.rb +0 -6
  942. data/db/migrate/20121003140056_add_token_to_visitors.rb +0 -12
  943. data/db/migrate/20121006095912_add_commentable_to_article.rb +0 -5
  944. data/db/migrate/20121007125002_add_activesince_to_goldencobra_articles.rb +0 -5
  945. data/db/migrate/20121011062432_add_username_to_visitors.rb +0 -5
  946. data/db/migrate/20121015071150_add_link_title_to_goldencobra_articles.rb +0 -5
  947. data/db/migrate/20121029131138_add_offline_setter_to_goldencobra_widgets.rb +0 -7
  948. data/db/migrate/20121030112343_add_offline_active_to_goldencobra_widgets.rb +0 -5
  949. data/db/migrate/20121030120838_add_alternative_content_to_goldencobra_widgets.rb +0 -5
  950. data/db/migrate/20121121144623_add_datum_to_widgets.rb +0 -6
  951. data/db/migrate/20121122091033_add_sorter_number_to_goldencobra_uploads.rb +0 -5
  952. data/db/migrate/20121206104701_add_type_to_goldencobra_settings.rb +0 -5
  953. data/db/migrate/20130104145454_add_weektimes_to_goldencobra_widgets.rb +0 -7
  954. data/db/migrate/20130114154115_add_sorter_to_goldencobra_permissions.rb +0 -8
  955. data/db/migrate/20130115104440_add_expert_mode_to_users.rb +0 -5
  956. data/db/migrate/20130118115233_add_poly_to_goldencobra_role_users.rb +0 -6
  957. data/db/migrate/20130128170204_add_default_article_type_for_nil.rb +0 -11
  958. data/db/migrate/20130129092029_add_poly_to_goldencobra_locations.rb +0 -6
  959. data/db/migrate/20130204102953_add_locationoption_to_goldencobra_locations.rb +0 -5
  960. data/db/migrate/20130205084748_add_loginable_to_visitors.rb +0 -6
  961. data/db/migrate/20130225154241_add_redirect_to_goldencobra_roles.rb +0 -5
  962. data/db/migrate/20130301144344_add_indextypes_to_goldencobra_articles.rb +0 -5
  963. data/db/migrate/20130404110743_add_sessions_table.rb +0 -12
  964. data/db/migrate/20130404121434_create_goldencobra_trackings.rb +0 -13
  965. data/db/migrate/20130404135801_add_options_to_goldencobra_trackings.rb +0 -6
  966. data/db/migrate/20130404140858_add_moreoptions_to_goldencobra_trackings.rb +0 -8
  967. data/db/migrate/20130405071320_add_params_to_goldencobra_trackings.rb +0 -5
  968. data/db/migrate/20130405073103_add_googleparams_to_goldencobra_trackings.rb +0 -9
  969. data/db/migrate/20130405074654_add_location_to_tracking.rb +0 -5
  970. data/db/migrate/20130426123928_add_polymorphic_to_goldencobra_metatags.rb +0 -6
  971. data/db/migrate/20130507115517_create_translations.rb +0 -13
  972. data/db/migrate/20130702155529_create_goldencobra_authors.rb +0 -12
  973. data/db/migrate/20130702160247_rename_authorstobackup_to_goldencobra_articles.rb +0 -11
  974. data/db/migrate/20130722152135_add_encodingtype_to_goldencobra_imports.rb +0 -5
  975. data/db/migrate/20130723084542_add_assgroup_to_goldencobra_importer.rb +0 -5
  976. data/db/migrate/20130724123225_create_goldencobra_import_metadata.rb +0 -16
  977. data/db/migrate/20130730113452_add_skip_to_goldencobra_locations.rb +0 -5
  978. data/db/migrate/20130730144331_add_linkchecker_to_goldencobra_articles.rb +0 -5
  979. data/db/migrate/20130903085746_change_datatype_of_url_paremeters.rb +0 -9
  980. data/db/migrate/20130909143144_create_goldencobra_domains.rb +0 -11
  981. data/db/migrate/20130925133203_add_prefix_to_goldencobra_domains.rb +0 -5
  982. data/db/migrate/20131018111343_add_cache_to_goldencobra_menues.rb +0 -12
  983. data/db/migrate/20131129143509_add_remote_to_goldencobra_menues.rb +0 -5
  984. data/db/migrate/20131216110750_add_main_to_goldencobra_domains.rb +0 -7
  985. data/db/migrate/20140127084929_create_goldencobra_articletypes.rb +0 -16
  986. data/db/migrate/20140128091516_create_goldencobra_articletype_groups.rb +0 -16
  987. data/db/migrate/20140128104519_create_goldencobra_articletype_fields.rb +0 -14
  988. data/db/migrate/20140128112747_add_position_to_goldencobra_articletype_group.rb +0 -7
  989. data/db/migrate/20140204221345_add_operator_to_goldencobra_permissions.rb +0 -5
  990. data/db/migrate/20140411152728_add_creator_id_to_goldencobra_articles.rb +0 -5
  991. data/db/migrate/20140505144517_add_taggingcounter.rb +0 -15
  992. data/db/migrate/20140603084537_add_domain_to_goldencobra_permissions.rb +0 -7
  993. data/db/migrate/20140615200342_resize_link_checkfield.rb +0 -13
  994. data/db/migrate/20140626135753_add_externalreferee_to_goldencobra_articles.rb +0 -6
  995. data/db/migrate/20140702103024_add_externaldate_to_goldencobra_articles.rb +0 -5
  996. data/db/migrate/20140702105550_add_remoteurl_to_goldencobra_uploads.rb +0 -5
  997. data/db/migrate/20140702142818_add_image_gallery_type_to_goldencobra_articles.rb +0 -5
  998. data/db/migrate/20140819101033_add_urlpath_to_goldencobra_articles.rb +0 -5
  999. data/db/migrate/20141104115144_create_goldencobra_redirectors.rb +0 -15
  1000. data/db/migrate/20141112124531_add_globalsorting_to_goldencobra_articles.rb +0 -7
  1001. data/db/migrate/20141124170930_add_indiex_to_gc.rb +0 -26
  1002. data/db/migrate/20150115111024_create_goldencobra_article_authors.rb +0 -28
  1003. data/db/migrate/20150115134707_add_remove_author_stuff.rb +0 -11
  1004. data/db/migrate/20150417153454_add_status_to_goldencobra_vita_steps.rb +0 -5
  1005. data/lib/generators/goldencobra/templates/assets/images/icons/icon-bookmark-40x40-light.png +0 -0
  1006. data/lib/generators/goldencobra/templates/assets/images/icons/icon-pdf-40x40-light.png +0 -0
  1007. data/lib/generators/goldencobra/templates/assets/images/icons/icon-print-40x40-light.png +0 -0
  1008. data/lib/generators/goldencobra/templates/assets/images/logo.gif +0 -0
  1009. data/lib/generators/goldencobra/templates/assets/images/rails.png +0 -0
  1010. data/lib/generators/goldencobra/templates/assets/stylesheets/application.css.scss +0 -29
  1011. data/lib/generators/goldencobra/templates/assets/stylesheets/footer/content.css.scss +0 -31
  1012. data/lib/generators/goldencobra/templates/assets/stylesheets/header/content.css.scss +0 -102
  1013. data/lib/generators/goldencobra/templates/assets/stylesheets/main/content.css.scss +0 -192
  1014. data/lib/generators/goldencobra/templates/assets/stylesheets/share/mixins.css.scss +0 -174
  1015. data/lib/generators/goldencobra/templates/assets/stylesheets/share/variables.css.scss +0 -31
  1016. data/lib/generators/goldencobra/templates/views/layouts/_header.html.erb +0 -61
  1017. data/lib/generators/goldencobra/templates/views/layouts/_header_slider.html.erb +0 -14
@@ -1,13 +1,12 @@
1
1
  module Goldencobra
2
2
  module LoginHelper
3
-
4
3
  def render_login_widget(usermodel_name)
5
- render :partial => "/goldencobra/sessions/login", :locals => {:usermodel => usermodel_name}
4
+ render partial: "/goldencobra/sessions/login", locals: { usermodel: usermodel_name }
6
5
  end
7
6
 
8
7
  def render_registration_widget(usermodel_name, associated_model=nil)
9
- render :partial => "/goldencobra/sessions/register", :locals => {:usermodel => usermodel_name, :associated_model => associated_model}
8
+ render partial: "/goldencobra/sessions/register",
9
+ locals: { usermodel: usermodel_name, associated_model: associated_model }
10
10
  end
11
-
12
11
  end
13
- end
12
+ end
@@ -1,9 +1,8 @@
1
1
  module Goldencobra
2
2
  module NavigationHelper
3
-
4
3
  def breadcrumb(options={})
5
- id_name = options[:id] || "breadcrumb"
6
- class_name = options[:class] || ""
4
+ id_name = options["id"] || "breadcrumb"
5
+ class_name = options["class"] || ""
7
6
  if @article
8
7
  list = ""
9
8
  @article.path.each do |art|
@@ -12,21 +11,22 @@ module Goldencobra
12
11
  end
13
12
  content_list = content_tag(:ol, raw(list))
14
13
  if id_name.present?
15
- result = content_tag(:nav, raw(content_list), :id => "#{id_name}", :class => "#{class_name}")
14
+ result = content_tag(:nav, raw(content_list), id: "#{id_name}", class: "#{class_name}")
16
15
  else
17
- result = content_tag(:nav, raw(content_list), :class => "#{class_name}")
16
+ result = content_tag(:nav, raw(content_list), class: "#{class_name}")
18
17
  end
19
18
  return raw(result)
20
19
  end
21
20
  end
22
21
 
23
- # navigation_menu("Hauptmenue", :depth => 1, :class => "top", :id => "menue1", :offset => 1 )
22
+ # navigation_menu("Hauptmenue", depth: 1, class: "top", id: "menue1", offset: 1 )
24
23
  # depth: 0 = unlimited, 1 = self, 2 = self and children 1. grades, 3 = self and up to children 2.grades
25
24
  # offset: number of levels to skip, 0 = none
26
25
 
27
- #<%= navigation_menu("Top-Menu", :current_article => @article, :class => "ul_main_nav", :depth => 1, :offset => 1 %>
26
+ #<%= navigation_menu("Top-Menu", current_article: @article, class: "ul_main_nav", depth: 1, offset: 1 %>
28
27
 
29
- #TODO: offset implementieren
28
+ # TODO: offset implementieren
29
+ # TODO: refactor method to make it easier to test
30
30
  def navigation_menu(menue_id, options={})
31
31
  return "id can't be blank" if menue_id.blank?
32
32
  depth = options[:depth] || 9999
@@ -38,14 +38,14 @@ module Goldencobra
38
38
 
39
39
  if menue_id.class == String
40
40
  if current_article.present? && current_article.public_url.present?
41
- current_menue = Goldencobra::Menue.active.where(:target => current_article.public_url(false)).select{|a| a.path.map(&:title).join("/").include?(menue_id)}.first
41
+ current_menue = Goldencobra::Menue.active.where(target: current_article.public_url(false)).select{|a| a.path.map(&:title).join("/").include?(menue_id)}.first
42
42
  if current_menue
43
43
  master_menue = Goldencobra::Menue.find_by_id(current_menue.path_ids[offset])
44
44
  else
45
45
  return ""
46
46
  end
47
47
  elsif submenue_of_article.present? && submenue_of_article.public_url.present?
48
- master_menue = Goldencobra::Menue.active.where(:target => submenue_of_article.public_url).select{|a| a.path.map(&:title).join("/").include?(menue_id)}.first
48
+ master_menue = Goldencobra::Menue.active.where(target: submenue_of_article.public_url).select{|a| a.path.map(&:title).join("/").include?(menue_id)}.first
49
49
  else
50
50
  master_menue = Goldencobra::Menue.active.find_by_pathname(menue_id)
51
51
  end
@@ -56,7 +56,7 @@ module Goldencobra
56
56
  return "" if master_menue.blank?
57
57
 
58
58
  current_depth = master_menue.ancestry_depth
59
- #Check for Permission
59
+ # Check for Permission
60
60
  begin
61
61
  if params.present? && params[:frontend_tags].present? && params[:frontend_tags].class != String && params[:frontend_tags][:format] && params[:frontend_tags][:format] == "email"
62
62
  #Wenn format email, dann gibt es keinen realen webseit besucher
@@ -69,42 +69,50 @@ module Goldencobra
69
69
  ability = Ability.new()
70
70
  end
71
71
 
72
- if !ability.can?(:read, master_menue)
73
- return ""
74
- end
72
+ return "" unless ability.can?(:read, master_menue)
75
73
 
76
- if master_menue.present?
77
- content = ""
78
- if current_article.present?
79
- subtree_menues = master_menue.subtree.after_depth(current_depth).to_depth(current_depth + depth).active.includes(:permissions).includes(:image)
80
- else
81
- subtree_menues = master_menue.subtree.after_depth(current_depth + offset).to_depth(current_depth + depth).active.includes(:permissions).includes(:image)
82
- end
83
- subtree_menues = subtree_menues.to_a.delete_if{|a| !ability.can?(:read, a)}
84
-
85
- current_depth = 1
86
- menue_roots(subtree_menues).each do |root|
87
- content << navigation_menu_helper(root, options, subtree_menues, current_depth)
88
- end
74
+ content = ""
75
+ if current_article.present?
76
+ subtree_menues = master_menue.subtree.after_depth(current_depth)
77
+ .to_depth(current_depth + depth)
78
+ .active.includes(:permissions).includes(:image)
79
+ else
80
+ subtree_menues = master_menue.subtree.after_depth(current_depth + offset)
81
+ .to_depth(current_depth + depth)
82
+ .active.includes(:permissions).includes(:image)
83
+ end
84
+ subtree_menues = subtree_menues.to_a.delete_if{|a| !ability.can?(:read, a)}
89
85
 
90
- if id_name.present?
91
- result = content_tag(:ul, raw(content),:id => "#{id_name}", :class => "#{class_name} #{depth} navigation #{master_menue.css_class.to_s.gsub(/\W/,' ')}".squeeze(' ').strip)
92
- else
93
- result = content_tag(:ul, raw(content), :class => "#{class_name} #{depth} navigation #{master_menue.css_class.to_s.gsub(/\W/,' ')}".squeeze(' ').strip)
94
- end
86
+ current_depth = 1
87
+ menue_roots(subtree_menues).each do |root|
88
+ content << navigation_menu_helper(root, options, subtree_menues, current_depth)
95
89
  end
96
- return raw(result)
90
+
91
+ klass = [
92
+ class_name,
93
+ depth,
94
+ "navigation",
95
+ master_menue.css_class.to_s.gsub(/[^\w\-]/, " ")
96
+ ].join(" ").squeeze(" ").strip
97
+ result = content_tag(
98
+ :ul,
99
+ raw(content),
100
+ id: id_name.present? ? id_name.to_s : nil,
101
+ class: klass
102
+ )
103
+
104
+ raw(result)
97
105
  end
98
106
 
99
107
  private
100
108
 
101
109
  def menue_roots(menue_array)
102
110
  min_of_layers = menue_array.map{|a| a.ancestry.to_s.split("/").count }.min
103
- return menue_array.select{|a| a.ancestry.to_s.split("/").count == min_of_layers }
111
+ menue_array.select{|a| a.ancestry.to_s.split("/").count == min_of_layers }
104
112
  end
105
113
 
106
114
  def menue_children(menue_element, menue_array)
107
- return menue_array.select{|a| a.ancestry.to_s.split("/").last.to_i == menue_element.id }
115
+ menue_array.select{|a| a.ancestry.to_s.split("/").last.to_i == menue_element.id }
108
116
  end
109
117
 
110
118
  def navigation_menu_helper(child, options, subtree_menues, current_depth)
@@ -114,17 +122,17 @@ module Goldencobra
114
122
  child_target_link = child.target.gsub("\"",'')
115
123
  end
116
124
  if child.remote
117
- link_options = {"data-remote" => "true",:href => child_target_link}
125
+ link_options = {"data-remote" => "true",href: child_target_link}
118
126
  else
119
- link_options = {:href => child_target_link}
127
+ link_options = {href: child_target_link}
120
128
  end
121
129
  child_link = content_tag(:a, child.title, link_options )
122
130
  image_link = child.image.present? ? image_tag(child.image.image(:original)) : ""
123
- child_link = child_link + content_tag(:a, image_link, link_options.merge(:class => "navigtion_link_imgage_wrapper")) unless options[:show_image] == false
124
- child_link = child_link + content_tag(:a, child.description_title, link_options.merge(:class => "navigtion_link_description_title")) unless options[:show_description_title] == false
131
+ child_link = child_link + content_tag(:a, image_link, link_options.merge(class: "navigtion_link_imgage_wrapper")) unless options[:show_image] == false
132
+ child_link = child_link + content_tag(:a, child.description_title, link_options.merge(class: "navigtion_link_description_title")) unless options[:show_description_title] == false
125
133
  template = Liquid::Template.parse(child.description)
126
- child_link = child_link + content_tag("div", raw(template.render(Goldencobra::Article::LiquidParser)), :class => "navigtion_link_description") unless options[:show_description] == false
127
- child_link = child_link + content_tag(:a, child.call_to_action_name, link_options.merge(:class => "navigtion_link_call_to_action_name")) unless options[:show_call_to_action_name] == false
134
+ child_link = child_link + content_tag("div", raw(template.render(Goldencobra::Article::LiquidParser)), class: "navigtion_link_description") unless options[:show_description] == false
135
+ child_link = child_link + content_tag(:a, child.call_to_action_name, link_options.merge(class: "navigtion_link_call_to_action_name")) unless options[:show_call_to_action_name] == false
128
136
 
129
137
  current_depth += 1
130
138
  child_elements = menue_children(child, subtree_menues)
@@ -138,7 +146,7 @@ module Goldencobra
138
146
  content_level << navigation_menu_helper(subchild, options, subtree_menues, current_depth)
139
147
  end
140
148
  if content_level.present?
141
- child_link = child_link + content_tag(:ul, raw(content_level), :class => "level_#{current_depth} children_#{visible_child_element_count}" )
149
+ child_link = child_link + content_tag(:ul, raw(content_level), class: "level_#{current_depth} children_#{visible_child_element_count}" )
142
150
  end
143
151
  end
144
152
 
@@ -153,8 +161,8 @@ module Goldencobra
153
161
  # request = path_obj.new(options[:liquid_url_path])
154
162
  # end
155
163
 
156
- return content_tag(:li, raw(child_link), "data-id" => child.id, :class => "#{ visible_child_element_count > 0 ? 'has_children' : '' } #{ (child.has_active_child?(request, subtree_menues) ? 'has_active_child' : '') if request.present? } #{ (child.is_active?(request) ? 'active' : '') if request.present? } #{ child.css_class.gsub(/\W/,' ') }".squeeze(' ').strip)
164
+ return content_tag(:li, raw(child_link), "data-id" => child.id, class: "#{ visible_child_element_count > 0 ? 'has_children' : '' } #{ (child.has_active_child?(request, subtree_menues) ? 'has_active_child' : '') if request.present? } #{ (child.is_active?(request) ? 'active' : '') if request.present? } #{ child.css_class.gsub(/\W/,' ') }".squeeze(' ').strip)
157
165
  end
158
166
 
159
167
  end
160
- end
168
+ end
@@ -14,7 +14,8 @@ module Goldencobra
14
14
 
15
15
  def send_support_mail(link)
16
16
  @link = link
17
- mail to: Goldencobra::Setting.for_key("goldencobra.live-support.email"), :subject => "Live Support Anfrage von: #{Goldencobra::Setting.for_key("goldencobra.url")}"
17
+ mail to: Goldencobra::Setting.for_key("goldencobra.live-support.email"),
18
+ subject: "Live Support Anfrage von: #{Goldencobra::Setting.for_key("goldencobra.url")}"
18
19
  end
19
20
 
20
21
  end
@@ -47,4 +48,4 @@ module Goldencobra
47
48
  false
48
49
  end
49
50
  end
50
- end
51
+ end
@@ -72,4 +72,4 @@ class Ability
72
72
  def check_for_domain_restrictions(permission,domain)
73
73
  permission.domain.blank? || (domain.present? && permission.domain.present? && permission.domain == domain)
74
74
  end
75
- end
75
+ end
@@ -0,0 +1,9 @@
1
+ module ActiveAdmin
2
+ module Views
3
+ class IndexAsSeoTable < ActiveAdmin::Views::IndexAsTable
4
+ def self.index_name
5
+ "SEO"
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,118 @@
1
+ module ActiveAdmin
2
+ module Views
3
+ class IndexAsTree < ActiveAdmin::Component
4
+
5
+ def build(page_presenter, collection)
6
+ @collection = collection
7
+ @origin_ids_to_display = @collection.map(&:id)
8
+ instance_exec &page_presenter.block if page_presenter.block
9
+
10
+ # Get Root Elements to display
11
+ @root_elements = @collection.map(&:root).uniq
12
+
13
+ # Get all Element IDs and their parent_ids (path_ids) to display
14
+ @items_to_display = @collection.map(&:path_ids).flatten.uniq
15
+
16
+ # Start With root elements and display all children
17
+ # which ar in @items_to_display
18
+ @root_elements.each do |item|
19
+ ul :class=> "item_tree" do
20
+ show_subtree_of_item(item)
21
+ end
22
+ end
23
+ end
24
+
25
+ def self.index_name
26
+ "Tree"
27
+ end
28
+
29
+ # Setter method for the configuration of the title
30
+ def title(method = nil, &block)
31
+ if block_given? || method
32
+ @title = block_given? ? block : method
33
+ end
34
+ @title
35
+ end
36
+
37
+ # Setter method for the configuration of optional value
38
+ def value(method = nil, &block)
39
+ if block_given? || method
40
+ @value = block_given? ? block : method
41
+ end
42
+ @value
43
+ end
44
+
45
+ # Setter method for the configuration of the title
46
+ #
47
+ # possible values in array: [:preview, :view, :edit, :new, :destroy]
48
+ def options(methods = [])
49
+ @options = methods
50
+ @options
51
+ end
52
+
53
+ private
54
+
55
+ def show_subtree_of_item(item)
56
+ li do
57
+ div class: "tree_item" do
58
+ div class: "tree_item_title" do
59
+ if @title.present?
60
+ div do
61
+ render_method_on_post_or_call_proc item, @title
62
+ end
63
+ end
64
+ if @value.present?
65
+ div class: "tree_item_value" do
66
+ render_method_on_post_or_call_proc item, @value
67
+ end
68
+ end
69
+ end
70
+
71
+ div class: "tree_item_options" do
72
+ if @options.include?(:preview)
73
+ div do
74
+ link_to(t(:view), item.public_url, class: "member_link edit_link view", title: I18n.t('active_admin.articles.index.article_edit'))
75
+ end
76
+ end
77
+ if @options.include?(:view)
78
+ div do
79
+ link_to(t(:view), resource_path(item), class: "member_link edit_link view", title: I18n.t('active_admin.articles.index.article_edit'))
80
+ end
81
+ end
82
+ if @options.include?(:edit)
83
+ div do
84
+ link_to(t(:edit), edit_resource_path(item), class: "edit", title: I18n.t('active_admin.articles.index.article_preview'))
85
+ end
86
+ end
87
+ if @options.include?(:new)
88
+ div do
89
+ link_to(t(:new_subarticle), new_resource_path(item, parent: item), class: "member_link edit_link new_subarticle", title: I18n.t('active_admin.articles.index.create_subarticle'))
90
+ end
91
+ end
92
+ if @options.include?(:destroy)
93
+ div do
94
+ link_to(t(:delete), resource_path(item), method: :DELETE, "data-confirm" => t("delete_article", scope: [:goldencobra, :flash_notice]), class: "member_link delete_link delete", title: I18n.t('active_admin.articles.index.delete_article'))
95
+ end
96
+ end
97
+ end
98
+ end
99
+ ul do
100
+ item.children.each do |child|
101
+ next unless @items_to_display.include?(child.id)
102
+ show_subtree_of_item(child)
103
+ end
104
+ end
105
+ end
106
+ end
107
+
108
+ def render_method_on_post_or_call_proc(post, proc)
109
+ case proc
110
+ when String, Symbol
111
+ post.public_send proc
112
+ else
113
+ instance_exec post, &proc
114
+ end
115
+ end
116
+ end
117
+ end
118
+ end
@@ -1,4 +1,4 @@
1
- #encoding: utf-8
1
+ # encoding: utf-8
2
2
  # == Schema Information
3
3
  #
4
4
  # Table name: goldencobra_articles
@@ -46,102 +46,104 @@
46
46
  # author_id :integer
47
47
  #
48
48
 
49
-
50
- #For article rendering to string (:render_html) needed
49
+ # For article rendering to string (:render_html) needed
51
50
  include Goldencobra::ApplicationHelper
52
51
  require "open-uri"
53
52
 
54
53
  module Goldencobra
55
54
  class Article < ActiveRecord::Base
55
+ include Goldencobra::ArticleConcerns::MetaTag
56
56
 
57
- extend FriendlyId
58
- MetatagNames = ["Title Tag", "Meta Description", "Keywords", "OpenGraph Title", "OpenGraph Description", "OpenGraph Type", "OpenGraph URL", "OpenGraph Image"]
57
+ # extend FriendlyId
59
58
  LiquidParser = {}
60
59
  SortOptions = ["Created_at", "Updated_at", "Random", "Alphabetically", "GlobalSortID"]
61
60
  DynamicRedirectOptions = [[:false,"deaktiviert"],[:latest,"neuester Untereintrag"], [:oldest, "ältester Untereintrag"]]
62
- DisplayIndexTypes = [["Einzelseiten", "show"],["Übersichtsseiten", "index"], ["Alle Seiten", "all"]]
61
+ DisplayIndexTypes = [["Einzelseiten und Übersichtsseiten", "all"], ["Einzelseiten", "show"],["Übersichtsseiten", "index"]]
62
+
63
63
  attr_accessor :hint_label, :manual_article_sort, :create_redirection
64
64
  ImportDataFunctions = []
65
65
 
66
- serialize :link_checker#, Hash
67
-
68
- has_many :metatags
69
- has_many :images, :through => :article_images, :class_name => Goldencobra::Upload
70
- has_many :article_images
66
+ has_many :link_checks, class_name: Goldencobra::LinkChecker
67
+ has_many :images, through: :article_images, class_name: Goldencobra::Upload
68
+ has_many :article_images, dependent: :destroy
71
69
  has_many :article_widgets
72
- has_many :widgets, :through => :article_widgets
73
- has_many :vita_steps, :as => :loggable, :class_name => Goldencobra::Vita
74
- has_many :comments, :class_name => Goldencobra::Comment
75
- has_many :permissions, :class_name => Goldencobra::Permission, :foreign_key => "subject_id", :conditions => {:subject_class => "Goldencobra::Article"}
76
- belongs_to :articletype, :class_name => Goldencobra::Articletype, :foreign_key => "article_type", :primary_key => "name"
77
- belongs_to :creator, :class_name => User, :foreign_key => "creator_id"
70
+ has_many :widgets, through: :article_widgets
71
+ has_many :vita_steps, as: :loggable, class_name: Goldencobra::Vita
72
+ has_many :urls, class_name: Goldencobra::ArticleUrl, dependent: :destroy
73
+
74
+ has_many :permissions, -> { where subject_class: "Goldencobra::Article" }, class_name: Goldencobra::Permission, foreign_key: "subject_id"
75
+ belongs_to :articletype, class_name: Goldencobra::Articletype, foreign_key: "article_type", primary_key: "name"
76
+ belongs_to :creator, class_name: User, foreign_key: "creator_id"
78
77
 
79
78
  has_many :article_authors
80
- has_many :authors, :through => :article_authors
79
+ has_many :authors, through: :article_authors
81
80
 
82
- accepts_nested_attributes_for :metatags, :allow_destroy => true, :reject_if => proc { |attributes| attributes['value'].blank? }
83
- accepts_nested_attributes_for :article_images, :allow_destroy => true
84
- accepts_nested_attributes_for :images, :allow_destroy => true
85
- accepts_nested_attributes_for :permissions, :allow_destroy => true
81
+ accepts_nested_attributes_for :article_images, allow_destroy: true
82
+ accepts_nested_attributes_for :images, allow_destroy: true
83
+ accepts_nested_attributes_for :permissions, allow_destroy: true
84
+ accepts_nested_attributes_for :article_widgets, allow_destroy: true
86
85
 
87
86
  acts_as_taggable_on :tags, :frontend_tags #https://github.com/mbleigh/acts-as-taggable-on
88
- has_ancestry :orphan_strategy => :restrict
89
- friendly_id :for_friendly_name, use: [:slugged] #, :history
87
+ has_ancestry orphan_strategy: :restrict, cache_depth: true
88
+
89
+ enum state: { void: 0, draft: 1, in_review: 2, waiting: 3, published: 4, discarded: 5 }
90
90
  web_url :external_url_redirect
91
91
  has_paper_trail
92
92
  liquid_methods :title, :created_at, :updated_at, :subtitle, :context_info, :id, :frontend_tags
93
93
 
94
- validates_presence_of :title, :article_type
95
- validates_format_of :url_name, :with => /\A[\w\-]+\Z/, allow_blank: true
96
- validates_presence_of :breadcrumb, :on => :create
97
- validates_length_of :breadcrumb, :within => 1..70, :on => :create
94
+ validates_presence_of :article_type
95
+ validates_format_of :url_name, with: /\A[\w\-]+\Z/, allow_blank: true
96
+ validates_presence_of :breadcrumb, on: :create
97
+ validates_length_of :breadcrumb, within: 1..70, on: :create
98
98
 
99
99
  attr_protected :startpage
100
100
 
101
101
  before_update :set_redirection_step_1
102
+ before_create :set_title_from_breadcrumb
102
103
  after_create :set_active_since
103
104
  after_create :notification_event_create
104
105
  after_create :cleanup_redirections
106
+ after_create :set_index_article_id
105
107
  before_save :parse_image_gallery_tags
106
108
  before_save :set_url_name_if_blank
109
+ before_save :uniqify_url_name
107
110
  before_save :set_standard_application_template
108
- after_save :set_default_meta_opengraph_values
111
+ before_save :set_descendants_status
109
112
  after_save :verify_existence_of_opengraph_image
110
113
  after_update :notification_event_update
111
114
  after_update :update_parent_article_etag
112
115
  after_save :set_url_path
113
116
  before_destroy :update_parent_article_etag
114
117
  after_update :set_redirection_step_2
115
-
116
- scope :robots_index, where(:robots_no_index => false)
117
- scope :robots_no_index, where(:robots_no_index => true)
118
- #scope :active nun als Klassenmethode unten definiert
119
- scope :inactive, where(:active => false)
120
- scope :startpage, where(:startpage => true)
121
- scope :articletype, lambda{ |name| where(:article_type => name)}
118
+ after_commit :update_article_urls
119
+
120
+ scope :robots_index, -> { where(robots_no_index: false) }
121
+ scope :robots_no_index, -> { where(robots_no_index: true) }
122
+ scope :active, -> { where("active = 1 AND active_since < '#{Time.now.strftime('%Y-%m-%d %H:%M:%S ')}'") }
123
+ scope :inactive, -> { where(active: false) }
124
+ scope :startpage, -> { where(startpage: true) }
125
+ scope :articletype, lambda{ |name| where(article_type: name)}
122
126
  scope :latest, lambda{ |counter| order("created_at DESC").limit(counter)}
123
- scope :parent_ids_in_eq, lambda { |art_id| subtree_of(art_id) }
124
- scope :parent_ids_in, lambda { |art_id| subtree_of(art_id) }
127
+
128
+ # Vermutlich ein Active Admin Bug:
129
+ # url /admin/articles?q[parent_ids_in]=1 wird mit nil an den Scope
130
+ # übergeben. daher hier der HotFix
131
+ scope :parent_ids_in_eq, -> (art_id = 1) { subtree_of(art_id) }
132
+ scope :parent_ids_in, -> (art_id = 1) { subtree_of(art_id) }
133
+
125
134
  scope :modified_since, lambda{ |date| where("updated_at > ?", Date.parse(date))}
126
- scope :for_sitemap, includes(:images).where('dynamic_redirection = "false" AND ( external_url_redirect IS NULL OR external_url_redirect = "") AND active = 1 AND robots_no_index = 0')
127
- scope :frontend_tag_name_contains, lambda{|tag_name| tagged_with(tag_name.split(","), :on => :frontend_tags)}
128
- scope :tag_name_contains, lambda{|tag_name| tagged_with(tag_name.split(","), :on => :tags)}
129
- if ActiveRecord::Base.connection.table_exists?("goldencobra_metatags")
130
- scope :no_title_tag, where("goldencobra_articles.id NOT IN (?)", Goldencobra::Metatag.where(:name => "Title Tag").where("value IS NOT NULL AND value <> ''").pluck(:article_id).uniq)
131
- scope :no_meta_description, where("goldencobra_articles.id NOT IN (?)", Goldencobra::Metatag.where(:name => "Meta Description").where("value IS NOT NULL AND value <> ''").pluck(:article_id).uniq)
132
- end
135
+ scope :for_sitemap, -> { includes(:images).where('dynamic_redirection = "false" AND ( external_url_redirect IS NULL OR external_url_redirect = "") AND active = 1 AND robots_no_index = 0') }
136
+ scope :frontend_tag_name_contains, lambda{|tag_name| tagged_with(tag_name.split(","), on: :frontend_tags)}
137
+ scope :tag_name_contains, lambda{|tag_name| tagged_with(tag_name.split(","), on: :tags)}
138
+ scope :no_title_tag, -> { where("metatag_title_tag IS NULL OR metatag_title_tag = ''") }
139
+ scope :no_meta_description, -> { where("metatag_meta_description IS NULL OR metatag_meta_description = ''") }
133
140
  scope :fulltext_contains, lambda{ |name| where("content LIKE '%#{name}%' OR teaser LIKE '%#{name}%' OR url_name LIKE '%#{name}%' OR subtitle LIKE '%#{name}%' OR summary LIKE '%#{name}%' OR context_info LIKE '%#{name}%' OR breadcrumb LIKE '%#{name}%'")}
134
141
 
135
- search_methods :frontend_tag_name_contains
136
- search_methods :tag_name_contains
137
- search_methods :parent_ids_in
138
- search_methods :parent_ids_in_eq
139
- search_methods :fulltext_contains
140
142
 
141
143
  if ActiveRecord::Base.connection.table_exists?("goldencobra_settings")
142
144
  if Goldencobra::Setting.for_key("goldencobra.use_solr") == "true"
143
145
  searchable do
144
- text :title, :boost => 5
146
+ text :title, boost: 5
145
147
  text :summary
146
148
  text :content
147
149
  text :subtitle
@@ -161,44 +163,67 @@ module Goldencobra
161
163
  # **************************
162
164
  # **************************
163
165
 
166
+ def active?
167
+ self.active && self.active_since < Time.now.utc
168
+ end
169
+
170
+ def link_checker
171
+ old_result = {}
172
+ self.link_checks.each do |lc|
173
+ old_result[lc.target_link] = { "response_code" => lc.response_code,
174
+ "response_time" => lc.response_time,
175
+ "response_error" => lc.response_error,
176
+ "position" => lc.position }
177
+ end
178
+ return old_result
179
+ end
180
+
181
+ def has_children
182
+ self.has_children?
183
+ end
184
+
185
+ def restricted
186
+ Goldencobra::Permission.restricted?(self)
187
+ end
164
188
 
165
189
  #Das ist der Titel, der verwendet wird, wenn daraus ein Menüpunkt erstellt werden soll.
166
- #der menue.title hat folgende vorgaben: validates_format_of :title, :with => /^[\w\d\?\.\'\!\s&üÜöÖäÄß\-\:\,\"]+$/
190
+ #der menue.title hat folgende vorgaben: validates_format_of :title, with: /^[\w\d\?\.\'\!\s&üÜöÖäÄß\-\:\,\"]+$/
167
191
  def parsed_title
168
192
  self.title.to_s.gsub("/", " ")
169
193
  end
170
194
 
171
-
172
- #@article.image_standard @article.image_logo @article.image_logo_medium
195
+ # @article.image_standard @article.image_logo @article.image_logo_medium
173
196
  def self.init_image_methods
174
197
  if ActiveRecord::Base.connection.table_exists?("goldencobra_settings")
175
198
  Goldencobra::Setting.for_key("goldencobra.article.image_positions").to_s.split(",").map(&:strip).each do |image_type|
176
199
  define_method "image_#{image_type.underscore}" do
177
- self.image(image_type,"original")
200
+ image(image_type, "original")
178
201
  end
179
202
  define_method "image_alt_#{image_type.underscore}" do
180
- self.article_images.where(position: image_type).first.image.alt_text || self.article_images.where(position: image_type).first.image.image_file_name
203
+ selected_images = article_images.where(position: image_type)
204
+ return "" if selected_images.none? || selected_images.first.image.blank?
205
+ selected_images.first.image.alt_text || selected_images.first.image.image_file_name
181
206
  end
182
- Goldencobra::Upload.attachment_definitions[:image][:styles].keys.each do |style_name|
183
- define_method "image_#{image_type.underscore}_#{style_name.to_s}" do
184
- self.image(image_type,style_name)
207
+ if ActiveRecord::Base.connection.table_exists?("goldencobra_uploads") && Goldencobra::Upload.respond_to?(:attachment_definitions)
208
+ Goldencobra::Upload.attachment_definitions[:image][:styles].keys.each do |style_name|
209
+ define_method "image_#{image_type.underscore}_#{style_name}" do
210
+ image(image_type, style_name)
211
+ end
185
212
  end
186
213
  end
187
214
  end
188
215
  end
189
216
  end
190
-
191
217
  Goldencobra::Article.init_image_methods
192
- def image(position="standard", size="original")
193
- any_images = self.article_images.where(position: position)
194
- if any_images.any? && any_images.first.image && any_images.first.image.image
195
- return any_images.first.image.image.url(size.to_sym)
218
+ def image(position = "standard", size = "original")
219
+ selected_images = self.article_images.where(position: position)
220
+ if selected_images.any? && selected_images.first.image && selected_images.first.image.image
221
+ return selected_images.first.image.image.url(size.to_sym)
196
222
  else
197
223
  return ""
198
224
  end
199
225
  end
200
226
 
201
-
202
227
  def respond_to_all?(method_name)
203
228
  begin
204
229
  return eval("self.#{method_name}.present?")
@@ -207,23 +232,25 @@ module Goldencobra
207
232
  end
208
233
  end
209
234
 
210
- # Gets the related object by article_type
235
+ # gets the related object by article_type
211
236
  def get_related_object
212
- if self.article_type.present? && self.article_type_form_file.present? && self.respond_to?(self.article_type_form_file.underscore.parameterize.downcase)
237
+ if self.article_type.present? && self.article_type_form_file.present? &&
238
+ self.respond_to?(self.article_type_form_file.underscore.parameterize.downcase)
239
+
213
240
  return self.send(self.article_type_form_file.underscore.parameterize.downcase)
214
241
  else
215
242
  return nil
216
243
  end
217
244
  end
218
245
 
219
- #dynamic methods for article.event or article.consultant .... depending on related object type
246
+ # dynamic method for an object to make the article respond to it like article.object
220
247
  def method_missing(meth, *args, &block)
221
248
  if meth.to_s.split(".").first == self.get_related_object.class.name.downcase
222
- if meth.to_s.split(".").count == 1
223
- self.get_related_object
224
- else
225
- self.get_related_object.send(meth.to_s.split(".").last)
226
- end
249
+ if meth.to_s.split(".").count == 1
250
+ self.get_related_object
251
+ else
252
+ self.get_related_object.send(meth.to_s.split(".").last)
253
+ end
227
254
  else
228
255
  super
229
256
  end
@@ -281,14 +308,14 @@ module Goldencobra
281
308
  end
282
309
 
283
310
 
284
- # Gibt Consultant | Subsidiary | etc. zurück je nach Seitentyp
311
+ # returns article type name without index/show
285
312
  def article_type_form_file
286
313
  if self.article_type.present?
287
314
  self.article_type.split(" ")[0..-2].join("")
288
315
  end
289
316
  end
290
317
 
291
- # Gibt Index oder Show zurück, je nach Seitentyp
318
+ # returns index/show without article type name
292
319
  def kind_of_article_type
293
320
  self.article_type.present? ? self.article_type.split(" ").last : ""
294
321
  end
@@ -350,9 +377,7 @@ module Goldencobra
350
377
  end
351
378
 
352
379
  def metatag(name)
353
- return "" if !MetatagNames.include?(name)
354
- metatag = self.metatags.find_by_name(name)
355
- metatag.value if metatag
380
+ warn "Deprecated method metatag(name). Will be removed in GC 2.1"
356
381
  end
357
382
 
358
383
 
@@ -371,7 +396,7 @@ module Goldencobra
371
396
  end
372
397
 
373
398
  def linked_menues
374
- Goldencobra::Menue.where(:target => self.public_url)
399
+ Goldencobra::Menue.where(target: self.public_url)
375
400
  end
376
401
 
377
402
  def complete_json
@@ -389,14 +414,26 @@ module Goldencobra
389
414
  # **************************
390
415
 
391
416
 
392
- #scope for index articles, display show articles, index articless or both articles of an current type
417
+ # scope for index articles, display show-articles, index-articles or both articletypes
393
418
  def self.articletype_for_index(current_article)
394
- if current_article.display_index_types == "show"
395
- articletype("#{current_article.article_type_form_file} Show")
396
- elsif current_article.display_index_types == "index"
397
- articletype("#{current_article.article_type_form_file} Index")
419
+ # Wenn alle Artikeltypen angezeigt werden sollen
420
+ if current_article.display_index_articletypes == "all"
421
+ if current_article.display_index_types == "show"
422
+ where("article_type LIKE '% Show' ")
423
+ elsif current_article.display_index_types == "index"
424
+ where("article_type LIKE '% Index' ")
425
+ else
426
+ where("article_type LIKE '% Show' OR article_type LIKE '% Index' ")
427
+ end
398
428
  else
399
- where("article_type = '#{current_article.article_type_form_file} Show' OR article_type = '#{current_article.article_type_form_file} Index'")
429
+ # Wenn NUR Artikel von EINEM bestimmten Artkeltypen angezeigt werden sollen
430
+ if current_article.display_index_types == "show"
431
+ articletype("#{current_article.display_index_articletypes} Show")
432
+ elsif current_article.display_index_types == "index"
433
+ articletype("#{current_article.display_index_articletypes} Index")
434
+ else
435
+ where("article_type = '#{current_article.display_index_articletypes} Show' OR article_type = '#{current_article.display_index_articletypes} Index'")
436
+ end
400
437
  end
401
438
  end
402
439
 
@@ -409,8 +446,8 @@ module Goldencobra
409
446
  if localparams.present? && localparams[:params].present?
410
447
  av.params.merge!(localparams[:params])
411
448
  end
412
- av.assign({:article => self})
413
- html_to_render = av.render(template: "/goldencobra/articles/show.html.erb", :layout => "layouts/#{layoutfile}", :locals => localparams, :content_type => "text/html" )
449
+ av.assign({article: self})
450
+ html_to_render = av.render(template: "/goldencobra/articles/show.html.erb", layout: "layouts/#{layoutfile}", locals: localparams, content_type: "text/html" )
414
451
  return html_to_render
415
452
  end
416
453
 
@@ -428,65 +465,102 @@ module Goldencobra
428
465
 
429
466
 
430
467
  def index_articles(current_operator=nil, user_frontend_tags=nil)
468
+ return Goldencobra::Article.none unless display_index_articles
469
+
431
470
  if self.article_for_index_id.blank?
432
- #Index aller Artikel anzeigen
471
+ # Index aller Artikel anzeigen
433
472
  @list_of_articles = Goldencobra::Article.active.articletype_for_index(self)
434
473
  else
435
- #Index aller Artikel anzeigen, die Kinder sind von einem Bestimmten artikel
436
- parent_article = Goldencobra::Article.find_by_id(self.article_for_index_id)
437
- if parent_article
474
+ # Index aller Artikel anzeigen, die Kinder sind von einem Bestimmten artikel
475
+ parent_article = Goldencobra::Article.where(id: self.article_for_index_id).select(:id, :ancestry).first
476
+ if parent_article.present?
438
477
  @list_of_articles = parent_article.descendants.active.articletype_for_index(self)
478
+ # Wenn nicht alle Ebenen unterhalb des gewählten Baumes angezeigt werden sollen
479
+ unless self.index_of_articles_descendents_depth == "all"
480
+ current_depth = parent_article.depth
481
+ @list_of_articles = @list_of_articles.to_depth(current_depth + self.index_of_articles_descendents_depth.to_i)
482
+ end
439
483
  else
440
484
  @list_of_articles = Goldencobra::Article.active.articletype_for_index(self)
441
485
  end
442
486
  end
443
- #include related models
444
- @list_of_articles = @list_of_articles.includes("#{self.article_type_form_file.underscore.parameterize.downcase}") if self.respond_to?(self.article_type_form_file.underscore.parameterize.downcase)
445
- #get articles with tag
487
+
488
+ # include related models
489
+ if self.respond_to?(self.article_type_form_file.underscore.parameterize.downcase)
490
+ @list_of_articles = @list_of_articles.includes("#{self.article_type_form_file.underscore.parameterize.downcase}")
491
+ end
492
+
493
+ # get articles with tag
446
494
  if self.index_of_articles_tagged_with.present?
447
- @list_of_articles = @list_of_articles.tagged_with(self.index_of_articles_tagged_with.split(",").map{|t| t.strip}, on: :tags, any: true)
495
+ @list_of_articles = @list_of_articles.tagged_with(self.index_of_articles_tagged_with.split(",").map(&:strip),
496
+ on: :tags,
497
+ any: true)
448
498
  end
449
- #get articles without tag
499
+
500
+ # get articles without tag
450
501
  if self.not_tagged_with.present?
451
- @list_of_articles = @list_of_articles.tagged_with(self.not_tagged_with.split(",").map{|t| t.strip}, :exclude => true, on: :tags)
502
+ @list_of_articles = @list_of_articles.tagged_with(self.not_tagged_with.split(",").map(&:strip),
503
+ exclude: true,
504
+ on: :tags)
452
505
  end
453
- #get_articles_by_frontend_tags
506
+
507
+ # get_articles_by_frontend_tags
454
508
  if user_frontend_tags.present?
455
509
  @list_of_articles = @list_of_articles.tagged_with(user_frontend_tags, on: :frontend_tags, any: true)
456
510
  end
457
- #filter with permissions
458
- @list_of_articles = filter_with_permissions(@list_of_articles,current_operator)
459
511
 
460
- #sort list of articles
461
- if self.sort_order.present?
462
- if self.sort_order == "Random"
512
+ # filter with permissions
513
+ @list_of_articles = filter_with_permissions(@list_of_articles, current_operator)
514
+
515
+ # sort list of articles
516
+ if sort_order.present?
517
+ if sort_order == "Random"
463
518
  @list_of_articles = @list_of_articles.flatten.shuffle
464
- elsif self.sort_order == "Alphabetically"
465
- @list_of_articles = @list_of_articles.flatten.sort_by{ |article| article.title }
466
- elsif self.sort_order == "GlobalSortID"
467
- @list_of_articles = @list_of_articles.flatten.sort_by{ |article| article.try(:global_sorting_id) }
468
- elsif self.respond_to?(self.sort_order.downcase)
469
- sort_order = self.sort_order.downcase
470
- @list_of_articles = @list_of_articles.flatten.sort_by{ |article| article.respond_to?(sort_order) ? article.send(sort_order) : article }
471
- elsif self.sort_order.include?(".")
472
- sort_order = self.sort_order.downcase.split(".")
473
- @unsortable = @list_of_articles.flatten.select{|a| !a.respond_to_all?(self.sort_order) }
474
- @list_of_articles = @list_of_articles.flatten.delete_if{|a| !a.respond_to_all?(self.sort_order) }
475
- @list_of_articles = @list_of_articles.sort_by{|a| eval("a.#{self.sort_order}") }
519
+ elsif sort_order == "Alphabetically"
520
+ @list_of_articles = @list_of_articles.flatten.sort_by do |article|
521
+ [article.title.downcase, article.title]
522
+ end
523
+ elsif sort_order == "GlobalSortID"
524
+ @list_of_articles = @list_of_articles.flatten.sort_by do |article|
525
+ article.try(:global_sorting_id).to_i
526
+ end
527
+ elsif respond_to?(sort_order.downcase)
528
+ sorter = sort_order.downcase.to_sym
529
+ @list_of_articles = @list_of_articles.flatten.sort_by do |article|
530
+ article.respond_to?(sorter) ? article.send(sorter) : article
531
+ end
532
+ elsif sort_order.include?(".")
533
+ sorter = sort_order.downcase
534
+ @unsortable = @list_of_articles.flatten.select { |a| !a.respond_to_all?(sorter) }
535
+ @list_of_articles = @list_of_articles.flatten.delete_if { |a| !a.respond_to_all?(sorter) }
536
+ @list_of_articles = @list_of_articles.sort_by { |a| eval("a.#{sorter}") }
476
537
  if @unsortable.count > 0
477
538
  @list_of_articles = @unsortable + @list_of_articles
478
539
  @list_of_articles = @list_of_articles.flatten
479
540
  end
480
541
  end
481
- if self.reverse_sort
542
+ if reverse_sort
482
543
  @list_of_articles = @list_of_articles.reverse
483
544
  end
484
545
  end
485
- if self.sorter_limit && self.sorter_limit > 0
486
- @list_of_articles = @list_of_articles[0..self.sorter_limit-1]
546
+ if sorter_limit && sorter_limit > 0
547
+ @list_of_articles = @list_of_articles[0..sorter_limit - 1]
487
548
  end
488
549
 
489
- return @list_of_articles
550
+ @list_of_articles
551
+ end
552
+
553
+ def self.articles_for_index_selecetion
554
+ cache_key ||= [
555
+ "indexarticlesselect",
556
+ Goldencobra::Article.all.pluck(:id, :ancestry, :url_name)
557
+ ]
558
+
559
+ Rails.cache.fetch(cache_key) do
560
+ Goldencobra::Article.select([:id, :ancestry, :url_name]).map do
561
+ |a| [a.parent_path, a.id]
562
+ end.sort
563
+ end
490
564
  end
491
565
 
492
566
  # **************************
@@ -495,8 +569,30 @@ module Goldencobra
495
569
  # **************************
496
570
  # **************************
497
571
 
572
+ # creates and updates external url table
573
+ #
574
+ # only update URLs if there were any changes on the url
575
+ #
576
+ # @return [boolean] Goldencobra::AricleUrl.setup() response
577
+ def update_article_urls
578
+ if previous_changes["startpage"] || previous_changes["url_path"] ||
579
+ previous_changes["url_name"] || previous_changes["ancestry"] ||
580
+ urls.blank?
581
+ Goldencobra::ArticleUrl.setup(id)
582
+ end
583
+ end
584
+
585
+ def set_title_from_breadcrumb
586
+ if self.title.blank? && self.breadcrumb.present?
587
+ self.title = self.breadcrumb
588
+ end
589
+
590
+ true
591
+ end
592
+
593
+
498
594
  def cleanup_redirections
499
- Goldencobra::Redirector.where(:source_url => self.absolute_public_url).destroy_all
595
+ Goldencobra::Redirector.where(source_url: self.absolute_public_url).destroy_all
500
596
  end
501
597
 
502
598
  #bevor ein Artikle gespeichert wird , wird ein redirector unvollständig erstellt
@@ -510,7 +606,10 @@ module Goldencobra
510
606
  else
511
607
  old_url = "#{self.absolute_base_url}#{Goldencobra::Domain.current.try(:url_prefix)}#{self.url_path}"
512
608
  end
513
- r = Goldencobra::Redirector.find_or_create_by_source_url(old_url)
609
+ r = Goldencobra::Redirector.find_by_source_url(old_url)
610
+ if r.blank?
611
+ r = Goldencobra::Redirector.create(source_url: old_url)
612
+ end
514
613
  r.active = false
515
614
  r.save
516
615
  self.create_redirection = r.id
@@ -520,13 +619,13 @@ module Goldencobra
520
619
  def set_redirection_step_2
521
620
  if self.create_redirection.present? && self.create_redirection.to_i > 0
522
621
  #Suche Redirector nur mit source und vervollständige ihn
523
- Goldencobra::Redirector.where(:source_url => self.absolute_public_url).destroy_all
622
+ Goldencobra::Redirector.where(source_url: self.absolute_public_url).destroy_all
524
623
  r = Goldencobra::Redirector.find_by_id(self.create_redirection)
525
624
  if r.present?
526
625
  r.target_url = self.absolute_public_url
527
626
  r.active = true
528
627
  r.save
529
- custom_children = Goldencobra::Article.find_all_by_ancestry("#{self.ancestry}/#{self.id}")
628
+ custom_children = Goldencobra::Article.where(ancestry: "#{self.ancestry}/#{self.id}")
530
629
  if custom_children.any?
531
630
  if custom_children.count < 30
532
631
  # wenn es nur wenige Kinderartikel gibt, dann gleich direkt machen
@@ -552,10 +651,10 @@ module Goldencobra
552
651
  "/#{self.path.select([:ancestry, :url_name, :startpage, :id]).map{|a| a.url_name if !a.startpage}.compact.join("/")}"
553
652
  end
554
653
 
555
- #Nachdem ein Artikel gelöscht oder aktualsisiert wurde soll sein Elternelement aktualisiert werden, damit ein rss feed oder ähnliches mitbekommt wenn ein kindeintrag gelöscht oder bearbeitet wurde
654
+ # Nachdem ein Artikel gelöscht oder aktualsisiert wurde soll sein Elternelement aktualisiert werden, damit ein rss feed oder ähnliches mitbekommt wenn ein kindeintrag gelöscht oder bearbeitet wurde
556
655
  def update_parent_article_etag
557
656
  if self.parent.present?
558
- self.parent.update_attributes(:updated_at => Time.now)
657
+ self.parent.update_attributes(updated_at: Time.now)
559
658
  end
560
659
  end
561
660
 
@@ -569,76 +668,48 @@ module Goldencobra
569
668
  end
570
669
  end
571
670
 
572
- def set_default_meta_opengraph_values
573
- # Diese Zeile schein Überflüssig geworden zu sein, da nun der teaser, description oder title als defaultwerte genommen werden
574
- #meta_description = Goldencobra::Setting.for_key('goldencobra.page.default_meta_description_tag')
575
-
576
- if self.teaser.present?
577
- meta_description = remove_html_tags(self.teaser.truncate(200))
578
- else
579
- meta_description = self.content.present? ? remove_html_tags(self.content).truncate(200) : self.title
580
- end
581
-
582
- if Goldencobra::Metatag.where(article_id: self.id, name: 'Meta Description').none?
583
- Goldencobra::Metatag.create(name: 'Meta Description',
584
- article_id: self.id,
585
- value: meta_description)
586
- end
587
-
588
- if Goldencobra::Metatag.where(article_id: self.id, name: 'Title Tag').none?
589
- Goldencobra::Metatag.create(name: 'Title Tag',
590
- article_id: self.id,
591
- #value: self.breadcrumb.present? ? self.breadcrumb : self.title)
592
- value: self.title)
593
- end
594
-
595
- if Goldencobra::Metatag.where(article_id: self.id, name: 'OpenGraph Description').none?
596
- Goldencobra::Metatag.create(name: 'OpenGraph Description',
597
- article_id: self.id,
598
- value: meta_description)
599
- end
600
-
601
- if Goldencobra::Metatag.where(article_id: self.id, name: 'OpenGraph Title').none?
602
- Goldencobra::Metatag.create(name: 'OpenGraph Title',
603
- article_id: self.id,
604
- value: self.title)
605
- end
606
-
607
- if Goldencobra::Metatag.where(article_id: self.id, name: 'OpenGraph URL').none?
608
- Goldencobra::Metatag.create(name: 'OpenGraph URL',
609
- article_id: self.id,
610
- value: self.absolute_public_url)
611
- end
612
- end
613
-
614
671
  # helper um links zu entfernen in text
615
672
  def remove_html_tags(text)
616
673
  text.gsub(/<[^<]+?>/, "")
617
674
  end
618
675
 
619
676
  def verify_existence_of_opengraph_image
620
- if Goldencobra::Metatag.where(article_id: self.id, name: "OpenGraph Image").none?
621
- if self.article_images.any? && self.article_images.first.present? && self.article_images.first.image.present? && self.article_images.first.image.image.present?
677
+ if self.metatag_open_graph_image.blank?
678
+ if self.article_images.any? && self.article_images.first.present? &&
679
+ self.article_images.first.image.present? &&
680
+ self.article_images.first.image.image.present?
622
681
  og_img_val = "#{self.absolute_base_url}#{self.article_images.first.image.image.url}"
623
682
  else
624
683
  og_img_val = Goldencobra::Setting.for_key("goldencobra.facebook.opengraph_default_image")
625
684
  end
626
- Goldencobra::Metatag.create(name: "OpenGraph Image", article_id: self.id, value: og_img_val)
685
+ self.metatag_open_graph_image = og_img_val
627
686
  end
628
687
  end
629
688
 
630
689
  def notification_event_create
631
- ActiveSupport::Notifications.instrument("goldencobra.article.created", :article_id => self.id)
690
+ ActiveSupport::Notifications.instrument("goldencobra.article.created", article_id: id)
632
691
  end
633
692
 
634
693
  def notification_event_update
635
- ActiveSupport::Notifications.instrument("goldencobra.article.updated", :article_id => self.id)
694
+ ActiveSupport::Notifications.instrument("goldencobra.article.updated", article_id: id)
636
695
  end
637
696
 
638
697
  def set_url_name_if_blank
639
698
  if self.url_name.blank?
640
- #self.url_name = self.breadcrumb
641
- self.url_name = self.friendly_id.split("--")[0]
699
+ self.url_name = self.breadcrumb.urlize(downcase: true, convert_spaces: true).gsub("_", "-")
700
+ end
701
+ end
702
+
703
+ # append counter, if url_name is already used in siblings
704
+ #
705
+ # news => news--2
706
+ #
707
+ # @return [String] url_name
708
+ def uniqify_url_name
709
+ similar_names = self.siblings.pluck(:url_name).select{|c| c.split("--")[0] == self.url_name }
710
+ if similar_names.count > 1
711
+ last_used_number = similar_names.map{|v| v.split("--")[1].to_i}.compact.max
712
+ self.url_name = [self.url_name, last_used_number + 1].join("--")
642
713
  end
643
714
  end
644
715
 
@@ -654,8 +725,17 @@ module Goldencobra
654
725
  end
655
726
  end
656
727
 
728
+ def set_index_article_id
729
+ return unless self.kind_of_article_type == "Index"
730
+ return if self.article_for_index_id.present?
657
731
 
658
-
732
+ # Save without callbacks
733
+ if Rails::VERSION::MAJOR == 3
734
+ self.update_column(:article_for_index_id, self.id)
735
+ elsif Rails::VERSION::MAJOR > 3
736
+ self.update_columns(article_for_index_id: self.id)
737
+ end
738
+ end
659
739
 
660
740
  # **************************
661
741
  # **************************
@@ -663,24 +743,21 @@ module Goldencobra
663
743
  # **************************
664
744
  # **************************
665
745
 
666
-
667
746
  def self.search_by_url(url)
668
747
  article = nil
669
- articles = Goldencobra::Article.where(:url_name => url.split("/").last.to_s.split(".").first)
748
+ articles = Goldencobra::Article.where(url_name: url.split("/").last.to_s.split(".").first)
670
749
  article_path = "/#{url.split('.').first}"
671
750
  if articles.count > 0
672
- article = articles.select{|a| a.public_url(false) == article_path}.first
751
+ article = articles.select { |a| a.public_url(false) == article_path }.first
673
752
  end
674
753
  return article
675
754
  end
676
755
 
677
-
678
756
  def parent_path
679
- self.path.map(&:title).join(" / ")
757
+ self.path.map(&:url_name).join("/")
680
758
  end
681
759
 
682
-
683
- def public_url(with_prefix=true)
760
+ def public_url(with_prefix = true)
684
761
  if self.startpage
685
762
  if with_prefix
686
763
  return "#{Goldencobra::Domain.current.try(:url_prefix)}/"
@@ -689,83 +766,55 @@ module Goldencobra
689
766
  end
690
767
  else
691
768
 
692
- #url_path in der Datenbank als string speichern und beim update von ancestry neu berechnen... ansosnten den urlpafh aus dem string holen statt jedesmal über alle eltern iterierne
693
- if self.url_path.blank? || self.url_path_changed? || self.url_name_changed? || self.ancestry_changed?
769
+ #url_path in der Datenbank als string speichern und beim update von ancestry neu berechnen... ansonsten den urlpath aus dem string holen statt jedesmal über alle eltern zu iterieren
770
+ if self.url_path.blank? || self.url_path_changed? || self.url_name_changed? || self.ancestry_changed? || self.ancestors.map{ |a| a.url_path_changed? }
694
771
  a_url = self.get_url_from_path
695
772
  else
696
773
  a_url = self.url_path
697
774
  end
698
775
 
699
- if with_prefix
700
- return "#{Goldencobra::Domain.current.try(:url_prefix)}#{a_url}"
701
- else
702
- return a_url
703
- end
776
+ return "#{Goldencobra::Domain.current.try(:url_prefix)}#{a_url}" if with_prefix
777
+
778
+ a_url
704
779
  end
705
780
  end
706
781
 
707
-
708
782
  def absolute_base_url
709
- if Goldencobra::Setting.for_key("goldencobra.use_ssl") == "true"
710
- "https://#{Goldencobra::Setting.for_key('goldencobra.url')}"
711
- else
712
- "http://#{Goldencobra::Setting.for_key('goldencobra.url')}"
713
- end
783
+ Goldencobra::Url.to_s
714
784
  end
715
785
 
716
786
 
717
787
  def absolute_public_url
718
- if Goldencobra::Setting.for_key("goldencobra.use_ssl") == "true"
719
- "https://#{Goldencobra::Setting.for_key('goldencobra.url')}#{self.public_url}"
720
- else
721
- "http://#{Goldencobra::Setting.for_key('goldencobra.url')}#{self.public_url}"
722
- end
723
- end
724
-
725
-
726
- def for_friendly_name
727
- if self.url_name.present?
728
- self.url_name
729
- elsif self.breadcrumb.present?
730
- self.breadcrumb
731
- else
732
- self.title
733
- end
788
+ "#{absolute_base_url}#{public_url}"
734
789
  end
735
790
 
736
-
737
791
  # **************************
738
792
  # **************************
739
793
  # Class Methods
740
794
  # **************************
741
795
  # **************************
742
796
 
743
- def self.active
744
- Goldencobra::Article.where("active = 1 AND active_since < '#{Time.now.strftime('%Y-%m-%d %H:%M:%S ')}'")
745
- end
746
-
747
- def active?
748
- self.active && self.active_since < Time.now.utc
797
+ def self.state_attributes_for_select
798
+ states.map do |s, _|
799
+ [I18n.t("activerecord.attributes.#{model_name.i18n_key}.states.#{s}"), s]
800
+ end
749
801
  end
750
802
 
751
-
752
-
753
- def self.load_liquid_methods(options={})
754
-
803
+ def self.load_liquid_methods(options = {})
804
+ Goldencobra::Article::LiquidParser["location"] = options.fetch(:location, nil)
805
+ Goldencobra::Article::LiquidParser["current_article"] = options.fetch(:article, nil)
806
+ Goldencobra::Article::LiquidParser["url_params"] = options.fetch(:params, nil)
755
807
  end
756
808
 
757
809
  def self.recent(count)
758
- Goldencobra::Article.where('title IS NOT NULL').order('created_at DESC').limit(count)
810
+ Goldencobra::Article.where("title IS NOT NULL").order("created_at DESC").limit(count)
759
811
  end
760
812
 
761
813
  def self.recreate_cache
762
- if RUBY_VERSION.include?("1.9.")
763
- ArticlesCacheWorker.perform_async()
814
+ if RUBY_VERSION.to_f >= 1.9
815
+ ArticlesCacheWorker.perform_async
764
816
  else
765
- Goldencobra::Article.active.each do |article|
766
- article.updated_at = Time.now
767
- article.without_versioning :save
768
- end
817
+ Goldencobra::Article.active.each(&:touch)
769
818
  end
770
819
  end
771
820
 
@@ -773,12 +822,12 @@ module Goldencobra
773
822
  results = []
774
823
  path_to_articletypes = File.join(::Rails.root, "app", "views", "articletypes")
775
824
  if Dir.exist?(path_to_articletypes)
776
- Dir.foreach(path_to_articletypes) do |name| #.map{|a| File.basename(a, ".html.erb")}.delete_if{|a| a =~ /^_edit/ }.delete_if{|a| a[0] == "_"}
825
+ Dir.foreach(path_to_articletypes) do |name|
777
826
  file_name_path = File.join(path_to_articletypes,name)
778
827
  if File.directory?(file_name_path)
779
828
  Dir.foreach(file_name_path) do |sub_name|
780
- file_name = "#{name.titleize.gsub(' ','')}#{sub_name.titleize}" if File.exist?(File.join(file_name_path,sub_name)) && (sub_name =~ /^_(?!edit).*/) == 0
781
- results << file_name.split(".").first if file_name.present?
829
+ file_name = [name.titleize.gsub(' ',''), sub_name.gsub('_','').titleize].join(" ") if File.exist?(File.join(file_name_path,sub_name)) && (sub_name =~ /^_(?!edit).*/) == 0
830
+ results << file_name.split(".").first if file_name.present?
782
831
  end
783
832
  end
784
833
  end
@@ -790,7 +839,7 @@ module Goldencobra
790
839
  results = []
791
840
  path_to_articletypes = File.join(::Rails.root, "app", "views", "articletypes")
792
841
  if Dir.exist?(path_to_articletypes)
793
- Dir.foreach(path_to_articletypes) do |name| #.map{|a| File.basename(a, ".html.erb")}.delete_if{|a| a =~ /^_edit/ }
842
+ Dir.foreach(path_to_articletypes) do |name|
794
843
  results << name.capitalize unless name.include?(".")
795
844
  end
796
845
  end
@@ -798,25 +847,58 @@ module Goldencobra
798
847
  end
799
848
 
800
849
  def self.templates_for_select
801
- Dir.glob(File.join(::Rails.root, "app", "views", "layouts", "*.html.erb")).map{|a| File.basename(a, ".html.erb")}.delete_if{|a| a =~ /^_/ }
850
+ Dir.glob(File.join(::Rails.root, "app", "views", "layouts", "*.html.erb"))
851
+ .map { |a| File.basename(a, ".html.erb") }
852
+ .delete_if { |a| a =~ /^_/ }
802
853
  end
803
854
 
804
855
  def self.simple_search(q)
805
- self.active.search(:title_or_subtitle_or_url_name_or_content_or_summary_or_teaser_contains => q).relation.map {
806
- |article|
856
+ active.search(title_or_subtitle_or_url_name_or_content_or_summary_or_teaser_contains: q).relation.map do |article|
807
857
  {
808
- :id => article.id,
809
- :absolute_public_url => article.absolute_public_url,
810
- :title => article ? article.title : '',
811
- :teaser => article ? article.teaser : '',
812
- :article_type => article.article_type,
813
- :updated_at => article.updated_at,
814
- :parent_title => article.parent ? article.parent.title ? article.parent.title : '' : '',
815
- :ancestry => article.ancestry ? article.ancestry : ''
858
+ id: article.id,
859
+ absolute_public_url: article.absolute_public_url,
860
+ title: article ? article.title : '',
861
+ teaser: article ? article.teaser : '',
862
+ article_type: article.article_type,
863
+ updated_at: article.updated_at,
864
+ parent_title: article.parent ? article.parent.title ? article.parent.title : '' : '',
865
+ ancestry: article.ancestry ? article.ancestry : ''
816
866
  }
817
- }
867
+ end
818
868
  end
819
869
 
870
+ # **************************
871
+ # **************************
872
+ # Private Methods
873
+ # **************************
874
+ # **************************
875
+
876
+ private
877
+
878
+ # Allow Scopes and Methods to search for in ransack (n.a. metasearch)
879
+ # @param auth_object = nil [self] "if auth_object.try(:admin?)"
880
+ #
881
+ # @return [Array] Array of Symbols representing scopes and class methods
882
+ def self.ransackable_scopes(auth_object = nil)
883
+ [
884
+ :parent_ids_in,
885
+ :frontend_tag_name_contains, :frontend_tag_name_equals, :frontend_tag_name_starts_with, :frontend_tag_name_ends_with,
886
+ :tag_name_contains, :tag_name_equals, :tag_name_starts_with, :tag_name_ends_with,
887
+ :fulltext_contains, :fulltext_equals, :fulltext_starts_with, :fulltext_ends_with,
888
+ :state_eq
889
+ ]
890
+ end
891
+
892
+ def set_descendants_status
893
+ if !self.new_record? && self.active_changed? && self.descendants.any?
894
+ # Save without callbacks
895
+ if Rails::VERSION::MAJOR == 3
896
+ self.descendants.map{ |d| d.update_column(:active, self.active) }
897
+ elsif Rails::VERSION::MAJOR > 3
898
+ self.descendants.map{ |d| d.update_columns(active: self.active) }
899
+ end
900
+ end
901
+ end
820
902
  end
821
903
  end
822
904
 
@@ -842,4 +924,3 @@ end
842
924
  #subtree Scopes the model on descendants and itself
843
925
  #subtree_ids Returns a list of all ids in the record's subtree
844
926
  #depth Return the depth of the node, root nodes are at depth 0
845
-