lucy_cms 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (245) hide show
  1. data/Gemfile +19 -0
  2. data/Gemfile.lock +88 -0
  3. data/LICENSE +24 -0
  4. data/README.md +161 -0
  5. data/Rakefile +26 -0
  6. data/VERSION +1 -0
  7. data/app/controllers/application_controller.rb +5 -0
  8. data/app/controllers/cms_admin/base_controller.rb +43 -0
  9. data/app/controllers/cms_admin/layouts_controller.rb +66 -0
  10. data/app/controllers/cms_admin/pages_controller.rb +111 -0
  11. data/app/controllers/cms_admin/sessions_controller.rb +25 -0
  12. data/app/controllers/cms_admin/sites_controller.rb +69 -0
  13. data/app/controllers/cms_admin/snippets_controller.rb +62 -0
  14. data/app/controllers/cms_admin/upload_dirs_controller.rb +79 -0
  15. data/app/controllers/cms_admin/users_controller.rb +129 -0
  16. data/app/controllers/cms_content_controller.rb +51 -0
  17. data/app/models/cms_block.rb +28 -0
  18. data/app/models/cms_layout.rb +118 -0
  19. data/app/models/cms_page.rb +163 -0
  20. data/app/models/cms_site.rb +38 -0
  21. data/app/models/cms_snippet.rb +70 -0
  22. data/app/models/cms_upload.rb +19 -0
  23. data/app/models/cms_upload_dir.rb +11 -0
  24. data/app/models/cms_user.rb +93 -0
  25. data/app/views/cms_admin/layouts/_form.html.erb +10 -0
  26. data/app/views/cms_admin/layouts/_index_branch.html.erb +24 -0
  27. data/app/views/cms_admin/layouts/edit.html.erb +6 -0
  28. data/app/views/cms_admin/layouts/index.html.erb +6 -0
  29. data/app/views/cms_admin/layouts/new.html.erb +6 -0
  30. data/app/views/cms_admin/pages/_form.html.erb +37 -0
  31. data/app/views/cms_admin/pages/_form_blocks.html.erb +7 -0
  32. data/app/views/cms_admin/pages/_index_branch.html.erb +40 -0
  33. data/app/views/cms_admin/pages/edit.html.erb +5 -0
  34. data/app/views/cms_admin/pages/form_blocks.js.erb +2 -0
  35. data/app/views/cms_admin/pages/index.html.erb +6 -0
  36. data/app/views/cms_admin/pages/new.html.erb +5 -0
  37. data/app/views/cms_admin/pages/toggle_branch.js.erb +11 -0
  38. data/app/views/cms_admin/sessions/new.html.erb +12 -0
  39. data/app/views/cms_admin/sites/_form.html.erb +16 -0
  40. data/app/views/cms_admin/sites/edit.html.erb +6 -0
  41. data/app/views/cms_admin/sites/new.html.erb +6 -0
  42. data/app/views/cms_admin/sites/setup.html.erb +16 -0
  43. data/app/views/cms_admin/snippets/_form.html.erb +4 -0
  44. data/app/views/cms_admin/snippets/edit.html.erb +6 -0
  45. data/app/views/cms_admin/snippets/index.html.erb +23 -0
  46. data/app/views/cms_admin/snippets/new.html.erb +6 -0
  47. data/app/views/cms_admin/upload_dirs/_file.html.erb +15 -0
  48. data/app/views/cms_admin/upload_dirs/_form.html.erb +2 -0
  49. data/app/views/cms_admin/upload_dirs/conflict.html.erb +12 -0
  50. data/app/views/cms_admin/upload_dirs/index.html.erb +23 -0
  51. data/app/views/cms_admin/upload_dirs/new.html.erb +6 -0
  52. data/app/views/cms_admin/upload_dirs/show.html.erb +26 -0
  53. data/app/views/cms_admin/upload_dirs/uploads_destroy.js.erb +3 -0
  54. data/app/views/cms_admin/users/_form.html.erb +9 -0
  55. data/app/views/cms_admin/users/_index_branch.html.erb +16 -0
  56. data/app/views/cms_admin/users/change_password.html.erb +14 -0
  57. data/app/views/cms_admin/users/edit.html.erb +17 -0
  58. data/app/views/cms_admin/users/index.html.erb +6 -0
  59. data/app/views/cms_admin/users/new.html.erb +14 -0
  60. data/app/views/layouts/cms_admin.html.erb +52 -0
  61. data/config/application.rb +48 -0
  62. data/config/boot.rb +13 -0
  63. data/config/database.yml +22 -0
  64. data/config/environment.rb +5 -0
  65. data/config/environments/development.rb +22 -0
  66. data/config/environments/production.rb +49 -0
  67. data/config/environments/test.rb +35 -0
  68. data/config/initializers/LucyCMS.rb +37 -0
  69. data/config/initializers/mime_types.rb +5 -0
  70. data/config/locales/en.yml +5 -0
  71. data/config/routes.rb +45 -0
  72. data/config.ru +4 -0
  73. data/db/cms_seeds/example.local/layouts/default.yml +8 -0
  74. data/db/cms_seeds/example.local/layouts/nested.yml +6 -0
  75. data/db/cms_seeds/example.local/pages/child/subchild.yml +14 -0
  76. data/db/cms_seeds/example.local/pages/child.yml +10 -0
  77. data/db/cms_seeds/example.local/pages/index.yml +11 -0
  78. data/db/cms_seeds/example.local/snippets/example.yml +4 -0
  79. data/db/migrate/01_create_cms.rb +114 -0
  80. data/db/seeds.rb +7 -0
  81. data/lib/LucyCMS/acts_as_tree.rb +102 -0
  82. data/lib/LucyCMS/cms_tag/field_datetime.rb +26 -0
  83. data/lib/LucyCMS/cms_tag/field_integer.rb +26 -0
  84. data/lib/LucyCMS/cms_tag/field_string.rb +26 -0
  85. data/lib/LucyCMS/cms_tag/field_text.rb +26 -0
  86. data/lib/LucyCMS/cms_tag/helper.rb +20 -0
  87. data/lib/LucyCMS/cms_tag/page_datetime.rb +22 -0
  88. data/lib/LucyCMS/cms_tag/page_integer.rb +22 -0
  89. data/lib/LucyCMS/cms_tag/page_rich_text.rb +22 -0
  90. data/lib/LucyCMS/cms_tag/page_string.rb +22 -0
  91. data/lib/LucyCMS/cms_tag/page_text.rb +22 -0
  92. data/lib/LucyCMS/cms_tag/partial.rb +21 -0
  93. data/lib/LucyCMS/cms_tag/snippet.rb +22 -0
  94. data/lib/LucyCMS/cms_tag.rb +119 -0
  95. data/lib/LucyCMS/configuration.rb +36 -0
  96. data/lib/LucyCMS/controller_methods.rb +42 -0
  97. data/lib/LucyCMS/engine.rb +12 -0
  98. data/lib/LucyCMS/form_builder.rb +129 -0
  99. data/lib/LucyCMS/rails_extensions.rb +22 -0
  100. data/lib/LucyCMS/site_form_builder.rb +129 -0
  101. data/lib/LucyCMS/view_hooks.rb +30 -0
  102. data/lib/LucyCMS/view_methods.rb +68 -0
  103. data/lib/LucyCMS.rb +40 -0
  104. data/lib/generators/README +17 -0
  105. data/lib/generators/cms_generator.rb +44 -0
  106. data/lib/tasks/LucyCMS.rake +283 -0
  107. data/lucy_cms.gemspec +100 -0
  108. data/public/404.html +26 -0
  109. data/public/422.html +26 -0
  110. data/public/500.html +26 -0
  111. data/public/favicon.ico +0 -0
  112. data/public/images/LucyCMS/arrow_bottom.gif +0 -0
  113. data/public/images/LucyCMS/arrow_right.gif +0 -0
  114. data/public/images/LucyCMS/icon_folder.png +0 -0
  115. data/public/images/LucyCMS/icon_layout.gif +0 -0
  116. data/public/images/LucyCMS/icon_move.gif +0 -0
  117. data/public/images/LucyCMS/icon_regular.gif +0 -0
  118. data/public/images/LucyCMS/icon_snippet.gif +0 -0
  119. data/public/images/LucyCMS/icon_upload.png +0 -0
  120. data/public/images/LucyCMS/icon_user.jpg +0 -0
  121. data/public/javascripts/LucyCMS/cms.js +204 -0
  122. data/public/javascripts/LucyCMS/codemirror/codemirror.css +102 -0
  123. data/public/javascripts/LucyCMS/codemirror/codemirror.js +23 -0
  124. data/public/javascripts/LucyCMS/codemirror/codemirror_base.js +88 -0
  125. data/public/javascripts/LucyCMS/codemirror/parse_css.js +4 -0
  126. data/public/javascripts/LucyCMS/codemirror/parse_html_mixed.js +3 -0
  127. data/public/javascripts/LucyCMS/codemirror/parse_js.js +12 -0
  128. data/public/javascripts/LucyCMS/codemirror/parse_xml.js +7 -0
  129. data/public/javascripts/LucyCMS/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  130. data/public/javascripts/LucyCMS/jquery-ui/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  131. data/public/javascripts/LucyCMS/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  132. data/public/javascripts/LucyCMS/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  133. data/public/javascripts/LucyCMS/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  134. data/public/javascripts/LucyCMS/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  135. data/public/javascripts/LucyCMS/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  136. data/public/javascripts/LucyCMS/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  137. data/public/javascripts/LucyCMS/jquery-ui/images/ui-icons_222222_256x240.png +0 -0
  138. data/public/javascripts/LucyCMS/jquery-ui/images/ui-icons_2e83ff_256x240.png +0 -0
  139. data/public/javascripts/LucyCMS/jquery-ui/images/ui-icons_454545_256x240.png +0 -0
  140. data/public/javascripts/LucyCMS/jquery-ui/images/ui-icons_888888_256x240.png +0 -0
  141. data/public/javascripts/LucyCMS/jquery-ui/images/ui-icons_cd0a0a_256x240.png +0 -0
  142. data/public/javascripts/LucyCMS/jquery-ui/jquery-ui.css +362 -0
  143. data/public/javascripts/LucyCMS/jquery-ui/jquery-ui.js +190 -0
  144. data/public/javascripts/LucyCMS/jquery.js +154 -0
  145. data/public/javascripts/LucyCMS/plupload/plupload.full.min.js +1 -0
  146. data/public/javascripts/LucyCMS/plupload/plupload.html5.min.js +1 -0
  147. data/public/javascripts/LucyCMS/plupload/plupload.min.js +1 -0
  148. data/public/javascripts/LucyCMS/rails.js +132 -0
  149. data/public/javascripts/LucyCMS/tiny_mce/jquery.tinymce.js +1 -0
  150. data/public/javascripts/LucyCMS/tiny_mce/langs/en.js +170 -0
  151. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/about.htm +54 -0
  152. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/anchor.htm +26 -0
  153. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/charmap.htm +52 -0
  154. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/color_picker.htm +73 -0
  155. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/editor_template.js +1 -0
  156. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/image.htm +80 -0
  157. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
  158. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/img/icons.gif +0 -0
  159. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/js/about.js +72 -0
  160. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/js/anchor.js +37 -0
  161. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/js/charmap.js +335 -0
  162. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/js/color_picker.js +253 -0
  163. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/js/image.js +245 -0
  164. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/js/link.js +156 -0
  165. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/js/source_editor.js +56 -0
  166. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/langs/en.js +62 -0
  167. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/langs/en_dlg.js +51 -0
  168. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/link.htm +58 -0
  169. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/skins/default/content.css +36 -0
  170. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/skins/default/dialog.css +117 -0
  171. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
  172. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
  173. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
  174. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
  175. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
  176. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
  177. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/skins/default/ui.css +213 -0
  178. data/public/javascripts/LucyCMS/tiny_mce/themes/advanced/source_editor.htm +25 -0
  179. data/public/javascripts/LucyCMS/tiny_mce/tiny_mce.js +1 -0
  180. data/public/javascripts/LucyCMS/tiny_mce/tiny_mce_popup.js +5 -0
  181. data/public/robots.txt +5 -0
  182. data/public/stylesheets/LucyCMS/content.css +196 -0
  183. data/public/stylesheets/LucyCMS/form.css +125 -0
  184. data/public/stylesheets/LucyCMS/reset.css +1 -0
  185. data/public/stylesheets/LucyCMS/site_form.css +82 -0
  186. data/public/stylesheets/LucyCMS/structure.css +125 -0
  187. data/public/stylesheets/LucyCMS/typography.css +25 -0
  188. data/script/rails +6 -0
  189. data/test/cms_seeds/test.host/layouts/broken.yml +1 -0
  190. data/test/cms_seeds/test.host/layouts/default.yml +3 -0
  191. data/test/cms_seeds/test.host/layouts/nested.yml +4 -0
  192. data/test/cms_seeds/test.host/pages/broken.yml +1 -0
  193. data/test/cms_seeds/test.host/pages/child/subchild.yml +10 -0
  194. data/test/cms_seeds/test.host/pages/child.yml +10 -0
  195. data/test/cms_seeds/test.host/pages/index.yml +10 -0
  196. data/test/cms_seeds/test.host/snippets/broken.yml +1 -0
  197. data/test/cms_seeds/test.host/snippets/default.yml +3 -0
  198. data/test/fixtures/cms_blocks.yml +12 -0
  199. data/test/fixtures/cms_layouts.yml +36 -0
  200. data/test/fixtures/cms_pages.yml +39 -0
  201. data/test/fixtures/cms_sites.yml +3 -0
  202. data/test/fixtures/cms_snippets.yml +5 -0
  203. data/test/fixtures/cms_upload_dirs.yml +9 -0
  204. data/test/fixtures/cms_uploads.yml +4 -0
  205. data/test/fixtures/cms_users.yml +11 -0
  206. data/test/fixtures/files/invalid_file.gif +9 -0
  207. data/test/fixtures/files/valid_image.jpg +0 -0
  208. data/test/fixtures/views/_nav_hook.html.erb +1 -0
  209. data/test/fixtures/views/_nav_hook_2.html.erb +1 -0
  210. data/test/functional/cms_admin/layouts_controller_test.rb +103 -0
  211. data/test/functional/cms_admin/pages_controller_test.rb +334 -0
  212. data/test/functional/cms_admin/sites_controller_test.rb +99 -0
  213. data/test/functional/cms_admin/snippets_controller_test.rb +102 -0
  214. data/test/functional/cms_admin/uploads_controller_test.rb +26 -0
  215. data/test/functional/cms_content_controller_test.rb +134 -0
  216. data/test/integration/rake_tasks_test.rb +65 -0
  217. data/test/integration/render_cms_seed_test.rb +34 -0
  218. data/test/integration/render_cms_test.rb +81 -0
  219. data/test/integration/sites_test.rb +63 -0
  220. data/test/integration/view_hooks_test.rb +33 -0
  221. data/test/test_helper.rb +86 -0
  222. data/test/unit/cms_block_test.rb +43 -0
  223. data/test/unit/cms_configuration_test.rb +17 -0
  224. data/test/unit/cms_layout_test.rb +146 -0
  225. data/test/unit/cms_page_test.rb +257 -0
  226. data/test/unit/cms_site_test.rb +41 -0
  227. data/test/unit/cms_snippet_test.rb +77 -0
  228. data/test/unit/cms_tag_test.rb +206 -0
  229. data/test/unit/cms_tags/field_datetime_test.rb +34 -0
  230. data/test/unit/cms_tags/field_integer_test.rb +33 -0
  231. data/test/unit/cms_tags/field_string_test.rb +34 -0
  232. data/test/unit/cms_tags/field_text_test.rb +32 -0
  233. data/test/unit/cms_tags/helper_test.rb +38 -0
  234. data/test/unit/cms_tags/page_datetime_test.rb +34 -0
  235. data/test/unit/cms_tags/page_integer_test.rb +33 -0
  236. data/test/unit/cms_tags/page_rich_text.rb +33 -0
  237. data/test/unit/cms_tags/page_string_test.rb +33 -0
  238. data/test/unit/cms_tags/page_text_test.rb +34 -0
  239. data/test/unit/cms_tags/partial_test.rb +44 -0
  240. data/test/unit/cms_tags/snippet_test.rb +33 -0
  241. data/test/unit/cms_upload_dir_test.rb +8 -0
  242. data/test/unit/cms_upload_test.rb +26 -0
  243. data/test/unit/cms_user_test.rb +8 -0
  244. data/test/unit/view_methods_test.rb +21 -0
  245. metadata +488 -0
@@ -0,0 +1,196 @@
1
+ /* -- Page saving widget ------------------------------------------------- */
2
+ #page_save button {
3
+ float: right;
4
+ }
5
+ #page_save label {
6
+ line-height: 20px;
7
+ padding-left: 5px;
8
+ }
9
+ #page_save input {
10
+ margin-right: 5px;
11
+ }
12
+
13
+ /* -- File Upload widget ------------------------------------------------- */
14
+ #file_uploads .actions {
15
+ overflow: hidden;
16
+ }
17
+ #file_uploads .actions a.button {
18
+ float: right;
19
+ }
20
+ #file_uploads #uploaded_files {
21
+ max-height: 500px;
22
+ overflow-y: auto;
23
+ }
24
+ #file_uploads #uploaded_files .file {
25
+ position: relative;
26
+ overflow: hidden;
27
+ font-size: 11px;
28
+ background-color: #252525;
29
+ margin-top: 2px;
30
+ padding: 0px 3px;
31
+ opacity: 0.5;
32
+ border-radius: 2px;
33
+ -moz-border-radius: 2px;
34
+ }
35
+ #file_uploads #uploaded_files .file.pending {
36
+ opacity: 0.3;
37
+ }
38
+ #file_uploads #uploaded_files .file:hover {
39
+ opacity: 1;
40
+ }
41
+ #file_uploads #uploaded_files .file a {
42
+ color: #fff;
43
+ }
44
+ #file_uploads #uploaded_files .file a.delete {
45
+ position: absolute;
46
+ display: block;
47
+ right: 0px;
48
+ top: 0px;
49
+ height: 13px;
50
+ width: 13px;
51
+ font-weight: bold;
52
+ }
53
+ #file_uploads #uploaded_files .file:hover a.delete {
54
+ color: #9e0b0f;
55
+ }
56
+
57
+ /* -- Listings ----------------------------------------------------------- */
58
+ ul.list li .item {
59
+ overflow: hidden;
60
+ padding: 5px;
61
+ background-color: #f1f1f1;
62
+ border-radius: 3px;
63
+ -moz-border-radius: 3px;
64
+ margin-bottom: 5px;
65
+ }
66
+ ul.list li .item .toggle {
67
+ float: left;
68
+ height: 28px;
69
+ width: 28px;
70
+ }
71
+ ul.list li .item .toggle a {
72
+ display: block;
73
+ height: 28px;
74
+ width: 28px;
75
+ background: url(/images/LucyCMS/arrow_right.gif) center center no-repeat;
76
+ }
77
+ ul.list li .item .toggle a span {
78
+ display: none;
79
+ }
80
+ ul.list li .item .toggle.open a {
81
+ background-image: url(/images/LucyCMS/arrow_bottom.gif);
82
+ }
83
+ ul.list li .item .icon {
84
+ float: left;
85
+ width: 28px;
86
+ height: 28px;
87
+ background: url(/images/LucyCMS/icon_regular.gif);
88
+ }
89
+ ul.list li .item .icon .dragger {
90
+ width: 28px;
91
+ height: 28px;
92
+ background: url(/images/LucyCMS/icon_move.gif);
93
+ display: none;
94
+ }
95
+ ul.list li .item .icon:hover .dragger {
96
+ display: block;
97
+ }
98
+ ul.list li .item .icon .dragger span {
99
+ display: none;
100
+ }
101
+ ul.list li .item .label {
102
+ margin-left: 60px;
103
+ font-size: 14px;
104
+ font-weight: bold;
105
+ }
106
+ ul.list li .item .label .sublabel {
107
+ font-size: 10px;
108
+ font-weight: normal;
109
+ }
110
+ ul.list li ul {
111
+ margin-left: 28px;
112
+ }
113
+ ul.list li .action_links {
114
+ float: right;
115
+ opacity: 0.2;
116
+ }
117
+ table.formatted td.action_links a {
118
+ opacity: 0.2;
119
+ }
120
+ ul.list li .item:hover .action_links,
121
+ table.formatted tr:hover td.action_links a {
122
+ opacity: 1;
123
+ }
124
+ ul.list li .item:hover,
125
+ table.formatted tr:hover td {
126
+ background-color: #fff;
127
+ }
128
+ table.formatted {
129
+ clear: both;
130
+ }
131
+ table.formatted th {
132
+ background: url(/images/LucyCMS/body_bg.jpg);
133
+ color: #ececec;
134
+ text-transform: uppercase;
135
+ font-size: 10px;
136
+ letter-spacing: 1px;
137
+ }
138
+ table.formatted th,
139
+ table.formatted td {
140
+ white-space: nowrap;
141
+ vertical-align: top;
142
+ padding: 5px;
143
+ border-bottom: 1px solid #fff;
144
+ }
145
+ table.formatted th.main,
146
+ table.formatted td.main {
147
+ width: 100%;
148
+ white-space: normal;
149
+ }
150
+ .pagination {
151
+ margin: 10px 0px;
152
+ }
153
+ .pagination span,
154
+ .pagination em,
155
+ .pagination a {
156
+ padding: 2px 5px;
157
+ margin-right: 2px;
158
+ background-color: #fff;
159
+ border-radius: 3px;
160
+ -moz-border-radius: 3px;
161
+ }
162
+ .pagination span {
163
+ color: #ececec;
164
+ }
165
+ .pagination em {
166
+ background-color: #1C1F22;
167
+ color: #fff;
168
+ }
169
+ form.search {
170
+ float: right;
171
+ margin: 5px 0px;
172
+ }
173
+
174
+ /* -- Page Specific stuff ------------------------------------------------ */
175
+ .c_cms_admin_layouts.a_index ul.list li .item .label,
176
+ .c_cms_admin_snippets.a_index ul.list li .item .label,
177
+ .c_cms_admin_users.a_index ul.list li .item .label,
178
+ .c_cms_admin_upload_dirs.a_index ul.list li .item .label,
179
+ .c_cms_admin_upload_dirs.a_show ul.list li .item .label {
180
+ margin-left: 32px;
181
+ }
182
+ .c_cms_admin_layouts.a_index ul.list li .item .icon {
183
+ background-image: url(/images/LucyCMS/icon_layout.gif);
184
+ }
185
+ .c_cms_admin_snippets.a_index ul.list li .item .icon {
186
+ background-image: url(/images/LucyCMS/icon_snippet.gif);
187
+ }
188
+ .c_cms_admin_users.a_index ul.list li .item .icon {
189
+ background-image: url(/images/LucyCMS/icon_user.jpg);
190
+ }
191
+ .c_cms_admin_upload_dirs.a_index ul.list li .item .icon {
192
+ background-image: url(/images/LucyCMS/icon_folder.png);
193
+ }
194
+ .c_cms_admin_upload_dirs.a_show ul.list li .item .icon {
195
+ background-image: url(/images/LucyCMS/icon_upload.png);
196
+ }
@@ -0,0 +1,125 @@
1
+ /* -- Forms -------------------------------------------------------------- */
2
+ .form_element {
3
+ overflow: hidden;
4
+ margin-bottom: 5px;
5
+ }
6
+ .form_element .label {
7
+ width: 117px;
8
+ float: left;
9
+ text-align: right;
10
+ font: 13px/19px 'Lucida Grande', 'Tahoma', serif;
11
+ text-shadow: #fff 1px 1px;
12
+ padding: 0px 10px;
13
+ background-color: #f1f1f1;
14
+ border-top-left-radius: 3px;
15
+ border-bottom-left-radius: 3px ;
16
+ -moz-border-radius-topleft: 3px;
17
+ -moz-border-radius-bottomleft: 3px;
18
+ border-right: 3px solid #bbb;
19
+ }
20
+ .form_element .site_label {
21
+ width: 144px;
22
+ float: left;
23
+ text-align: right;
24
+ font: 13px/19px 'Lucida Grande', 'Tahoma', serif;
25
+ text-shadow: #fff 1px 1px;
26
+ padding: 0px 10px;
27
+ background-color: #f1f1f1;
28
+ border-top-left-radius: 3px;
29
+ border-bottom-left-radius: 3px ;
30
+ -moz-border-radius-topleft: 3px;
31
+ -moz-border-radius-bottomleft: 3px;
32
+ border-right: 3px solid #bbb;
33
+ }
34
+ .form_element .value {
35
+ margin-left: 150px;
36
+ }
37
+ .form_element .value input[type='text'],
38
+ .form_element .value input[type='password'],
39
+ .form_element .value select,
40
+ .form_element .value textarea {
41
+ border: 0px;
42
+ width: 100%;
43
+ padding: 2px 0px;
44
+ font-family: 'Courier New', Courier, monospace;
45
+ }
46
+ .form_element .value textarea {
47
+ height: 300px;
48
+ }
49
+ .form_element .value .CodeMirror-wrapping {
50
+ background-color: #fff;
51
+ }
52
+ .form_element .site_value {
53
+ margin-left: 175px;
54
+ }
55
+ .form_element .site_value input[type='text'],
56
+ .form_element .site_value input[type='password'],
57
+ .form_element .site_value select,
58
+ .form_element .site_value textarea {
59
+ border: 0px;
60
+ width: 100%;
61
+ padding: 2px 0px;
62
+ font-family: 'Courier New', Courier, monospace;
63
+ }
64
+ .form_element .site_value textarea {
65
+ height: 300px;
66
+ }
67
+ .form_element .site_value .CodeMirror-wrapping {
68
+ background-color: #fff;
69
+ }
70
+ .form_element.check_box_element input {
71
+ width: auto;
72
+ }
73
+ .page_form_extras {
74
+ margin-bottom: 10px;
75
+ }
76
+ .form_element.cms_tag_field_datetime .label,
77
+ .form_element.cms_tag_field_integer .label,
78
+ .form_element.cms_tag_field_string .label,
79
+ .form_element.cms_tag_field_text .label {
80
+ border-color: #48699C;
81
+ }
82
+ .form_element.cms_tag_page_datetime .label,
83
+ .form_element.cms_tag_page_integer .label,
84
+ .form_element.cms_tag_page_string .label,
85
+ .form_element.cms_tag_page_text .label,
86
+ .form_element.cms_tag_page_rich_text .label {
87
+ border-color: #3F7300;
88
+ }
89
+ .form_error {
90
+ background-color: #9e0b0f;
91
+ font-size: 14px;
92
+ color: #fff;
93
+ padding: 5px;
94
+ text-align: center;
95
+ margin-bottom: 10px;
96
+ }
97
+ .form_element.errors .label {
98
+ border-color: #9e0b0f;
99
+ }
100
+ .form_element.errors .errors {
101
+ margin: 2px 0px 0px 150px;
102
+ font-size: 11px;
103
+ color: #9e0b0f;
104
+ }
105
+ .form_element.submit_element {
106
+ margin-top: 10px;
107
+ }
108
+ .form_element.submit_element .value {
109
+ background-color: #f1f1f1;
110
+ border-radius: 3px;
111
+ -moz-border-radius: 3px;
112
+ padding: 5px;
113
+ }
114
+ .form_element.submit_element label {
115
+ margin: 0px 5px;
116
+ }
117
+ .form_element .desc {
118
+ margin: 2px 0px 0px 150px;
119
+ font-size: 11px;
120
+ color: #777;
121
+ background-color: #fff;
122
+ padding: 5px;
123
+ border-radius: 3px;
124
+ -moz-border-radius: 3px;
125
+ }
@@ -0,0 +1 @@
1
+ html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var,optgroup{font-style:inherit;font-weight:inherit;}del,ins{text-decoration:none;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:baseline;}sub{vertical-align:baseline;}legend{color:#000;}input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;}input,button,textarea,select{*font-size:100%;}
@@ -0,0 +1,82 @@
1
+ /* -- Forms -------------------------------------------------------------- */
2
+ .site_form_element {
3
+ overflow: hidden;
4
+ margin-bottom: 5px;
5
+ }
6
+ .site_form_element .label {
7
+ width: 144px;
8
+ float: left;
9
+ text-align: right;
10
+ font: 13px/19px 'Lucida Grande', 'Tahoma', serif;
11
+ text-shadow: #fff 1px 1px;
12
+ padding: 0px 10px;
13
+ background-color: #f1f1f1;
14
+ border-top-left-radius: 3px;
15
+ border-bottom-left-radius: 3px ;
16
+ -moz-border-radius-topleft: 3px;
17
+ -moz-border-radius-bottomleft: 3px;
18
+ border-right: 3px solid #bbb;
19
+ }
20
+ .site_form_element .value {
21
+ margin-left: 175px;
22
+ }
23
+ .site_form_element .value input[type='text'],
24
+ .site_form_element .value input[type='password'],
25
+ .site_form_element .value select,
26
+ .site_form_element .value textarea {
27
+ border: 0px;
28
+ width: 100%;
29
+ padding: 2px 0px;
30
+ font-family: 'Courier New', Courier, monospace;
31
+ }
32
+ .site_form_element .value textarea {
33
+ height: 300px;
34
+ }
35
+ .site_form_element .value .CodeMirror-wrapping {
36
+ background-color: #fff;
37
+ }
38
+ .site_form_element.check_box_element input {
39
+ width: auto;
40
+ }
41
+ .site_form_element.cms_tag_field_datetime .label,
42
+ .site_form_element.cms_tag_field_integer .label,
43
+ .site_form_element.cms_tag_field_string .label,
44
+ .site_form_element.cms_tag_field_text .label {
45
+ border-color: #48699C;
46
+ }
47
+ .site_form_element.cms_tag_page_datetime .label,
48
+ .site_form_element.cms_tag_page_integer .label,
49
+ .site_form_element.cms_tag_page_string .label,
50
+ .site_form_element.cms_tag_page_text .label,
51
+ .site_form_element.cms_tag_page_rich_text .label {
52
+ border-color: #3F7300;
53
+ }
54
+ .site_form_element.errors .label {
55
+ border-color: #9e0b0f;
56
+ }
57
+ .site_form_element.errors .errors {
58
+ margin: 2px 0px 0px 175px;
59
+ font-size: 11px;
60
+ color: #9e0b0f;
61
+ }
62
+ .site_form_element.submit_element {
63
+ margin-top: 10px;
64
+ }
65
+ .site_form_element.submit_element .value {
66
+ background-color: #f1f1f1;
67
+ border-radius: 3px;
68
+ -moz-border-radius: 3px;
69
+ padding: 5px;
70
+ }
71
+ .site_form_element.submit_element label {
72
+ margin: 0px 5px;
73
+ }
74
+ .site_form_element .desc {
75
+ margin: 2px 0px 0px 175px;
76
+ font-size: 11px;
77
+ color: #777;
78
+ background-color: #fff;
79
+ padding: 5px;
80
+ border-radius: 3px;
81
+ -moz-border-radius: 3px;
82
+ }
@@ -0,0 +1,125 @@
1
+ /* -- Containers --------------------------------------------------------- */
2
+ html, body {
3
+ height: 100%;
4
+ background-color: #252525;
5
+ }
6
+ .body_wrapper {
7
+ height: 100%;
8
+ }
9
+ .left_column {
10
+ width: 175px;
11
+ float: left;
12
+ }
13
+ .center_column {
14
+ margin: 0px 250px 0px 175px;
15
+ min-height: 100%;
16
+ overflow: hidden;
17
+ background-color: #D8D8D8;
18
+ border-left: 1px solid #484848;
19
+ border-right: 1px solid #484848;
20
+ }
21
+ .center_column_content {
22
+ padding: 25px;
23
+ }
24
+ .right_column {
25
+ width: 250px;
26
+ float: right;
27
+ }
28
+ .right_column_content {
29
+ padding: 25px 10px;
30
+ width: 230px;
31
+ position: fixed;
32
+ }
33
+ .left_column_content {
34
+ padding: 25px 0px 25px 10px;
35
+ width: 165px;
36
+ position: fixed;
37
+ }
38
+ .left_column_content a {
39
+ display: block;
40
+ padding: 3px 10px;
41
+ margin-bottom: 5px;
42
+ font: 15px/25px 'Lucida Grande', 'Tahoma', serif;
43
+ border-top-left-radius: 4px;
44
+ border-bottom-left-radius: 4px;
45
+ -moz-border-radius-topleft: 4px;
46
+ -moz-border-radius-bottomleft: 4px;
47
+ background: #2D2D2D;
48
+ background: -moz-linear-gradient(left, #2D2D2D 0%, #484848 100%);
49
+ background: -webkit-gradient(linear, left top, right top, color-stop(0%,#2D2D2D), color-stop(100%,#484848));
50
+ color: #fff;
51
+ opacity: 0.3;
52
+ }
53
+ .left_column_content a:hover,
54
+ .left_column_content a.active {
55
+ color: #fff;
56
+ opacity: 1;
57
+ }
58
+
59
+ .right_column_content .box {
60
+ background-color: #484848;
61
+ padding: 5px;
62
+ border-radius: 3px;
63
+ -moz-border-radius: 3px;
64
+ margin-bottom: 10px;
65
+ overflow: hidden;
66
+ color: #fff;
67
+ }
68
+
69
+ /* -- Flash Messages ----------------------------------------------------- */
70
+ .flash {
71
+ text-align: center;
72
+ line-height: 25px;
73
+ color: #fff;
74
+ background-color: #066B12;
75
+ margin: 0px 2px;
76
+ }
77
+ .flash.error {
78
+ background-color: #9e0b0f;
79
+ }
80
+
81
+ /* -- Buttons ------------------------------------------------------------ */
82
+ a.button,
83
+ input[type='button'],
84
+ input[type='submit'],
85
+ input[type='reset'],
86
+ input[type='file'],
87
+ ul.list .action_links a,
88
+ table.formatted td.action_links a {
89
+ margin-left: 3px;
90
+ background-color: #b4b4b4;
91
+ color: #1b1b1b;
92
+ padding: 3px 5px;
93
+ font: 9px Arial, sans-serif;
94
+ text-transform: uppercase;
95
+ border-radius: 3px;
96
+ -moz-border-radius: 3px;
97
+ border: 1px solid #9f9f9f;
98
+ background: -moz-linear-gradient(top, #F9F9F9 0%, #D5D5D5 34%, #B4B4B4 100%);
99
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F9F9F9), color-stop(34%,#D5D5D5), color-stop(100%,#B4B4B4));
100
+ text-shadow: #f5f5f5 1px 1px;
101
+ }
102
+ a.button:hover,
103
+ input[type='button']:hover,
104
+ input[type='submit']:hover,
105
+ input[type='reset']:hover,
106
+ input[type='file']:hover,
107
+ ul.list .action_links a:hover,
108
+ table.formatted td.action_links a:hover {
109
+ box-shadow: inset 0px 0px 5px #aaa;
110
+ -moz-box-shadow: inset 0px 0px 5px #aaa;
111
+ -webkit-box-shadow: inset 0px 0px 5px #aaa;
112
+ border-color: #484848;
113
+ }
114
+ a.button.big,
115
+ input[type='button'],
116
+ input[type='submit'],
117
+ input[type='reset'],
118
+ input[type='file'] {
119
+ padding: 3px 10px;
120
+ font-size: 10px;
121
+ letter-spacing: 0.5px;
122
+ }
123
+ a.button.big {
124
+ float: right;
125
+ }
@@ -0,0 +1,25 @@
1
+ body {
2
+ font: 13px 'Lucida Grande', 'Tahoma', sans-serif;
3
+ }
4
+
5
+ h1 {
6
+ font: bold 25px/25px 'Lucida Grande', 'Tahoma', serif;
7
+ margin-bottom: 25px;
8
+ padding-bottom: 5px;
9
+ color: #1C1F22;
10
+ text-shadow: #fff 1px 1px;
11
+ border-bottom: 2px solid #9f9f9f;
12
+ }
13
+ a {
14
+ text-decoration: none;
15
+ color: #384E66;
16
+ }
17
+ a:hover {
18
+ color: #1C2733;
19
+ }
20
+ strong {
21
+ font-weight: bold;
22
+ }
23
+ em {
24
+ font-style: italic;
25
+ }
data/script/rails ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -0,0 +1 @@
1
+ broken yml file
@@ -0,0 +1,3 @@
1
+ label: Default Layout
2
+ slug: default
3
+ content: <html>{{cms:page:content}}</html>
@@ -0,0 +1,4 @@
1
+ label: Nested Layout
2
+ slug: nested
3
+ parent: default
4
+ content: <div>{{cms:page:content}}</div>
@@ -0,0 +1 @@
1
+ broken yml file
@@ -0,0 +1,10 @@
1
+ label: Child Page
2
+ parent: /child
3
+ cms_layout: nested
4
+ full_path: /child/subchild
5
+ slug: subchild
6
+ cms_blocks_attributes:
7
+ -
8
+ label: content
9
+ content: |-
10
+ Sub Child Page Content {{cms:snippet:default}}
@@ -0,0 +1,10 @@
1
+ label: Child Page
2
+ parent: /
3
+ cms_layout: default
4
+ full_path: /child
5
+ slug: child
6
+ cms_blocks_attributes:
7
+ -
8
+ label: content
9
+ content: |-
10
+ Child Page Content
@@ -0,0 +1,10 @@
1
+ label: Default Page
2
+ parent:
3
+ cms_layout: default
4
+ full_path: /
5
+ slug:
6
+ cms_blocks_attributes:
7
+ -
8
+ label: content
9
+ content: |-
10
+ Default Page Content
@@ -0,0 +1 @@
1
+ broken yml file
@@ -0,0 +1,3 @@
1
+ label: Default Snippet
2
+ slug: default
3
+ content: Content for Default Snippet
@@ -0,0 +1,12 @@
1
+ default_field_text:
2
+ cms_page: default
3
+ label: default_field_text
4
+ content: default_field_text_content
5
+
6
+ default_page_text:
7
+ cms_page: default
8
+ label: default_page_text
9
+ content: |-
10
+ default_page_text_content_a
11
+ {{cms:snippet:default}}
12
+ default_page_text_content_b
@@ -0,0 +1,36 @@
1
+ default:
2
+ cms_site: default
3
+ label: Default Layout
4
+ slug: default
5
+ parent:
6
+ content: |-
7
+ {{cms:field:default_field_text:text}}
8
+ layout_content_a
9
+ {{cms:page:default_page_text:text}}
10
+ layout_content_b
11
+ {{cms:snippet:default}}
12
+ layout_content_c
13
+ css: default_css
14
+ js: default_js
15
+
16
+ nested:
17
+ cms_site: default
18
+ label: Nested Layout
19
+ slug: nested
20
+ parent:
21
+ content: |-
22
+ {{cms:page:header}}
23
+ {{cms:page:content}}
24
+ css: nested_css
25
+ js: nested_js
26
+
27
+ child:
28
+ cms_site: default
29
+ label: Child Layout
30
+ slug: child
31
+ parent: nested
32
+ content: |-
33
+ {{cms:page:left_column}}
34
+ {{cms:page:right_column}}
35
+ css: child_css
36
+ js: child_js