cmsimple 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (221) hide show
  1. data/.gitignore +31 -0
  2. data/.rspec +1 -0
  3. data/.travis.yml +16 -0
  4. data/Gemfile +20 -0
  5. data/Gemfile.ci +5 -0
  6. data/LICENSE +19 -0
  7. data/README.md +118 -0
  8. data/Rakefile +47 -0
  9. data/app/assets/javascripts/cmsimple.js +61 -0
  10. data/app/assets/javascripts/cmsimple/controllers/editor.coffee +102 -0
  11. data/app/assets/javascripts/cmsimple/lib/namespaces.coffee +3 -0
  12. data/app/assets/javascripts/cmsimple/lib/support.coffee +4 -0
  13. data/app/assets/javascripts/cmsimple/mercury/config.js +462 -0
  14. data/app/assets/javascripts/cmsimple/mercury/handlers.coffee +9 -0
  15. data/app/assets/javascripts/cmsimple/models/image.coffee +49 -0
  16. data/app/assets/javascripts/cmsimple/models/page.coffee +106 -0
  17. data/app/assets/javascripts/cmsimple/models/path.coffee +31 -0
  18. data/app/assets/javascripts/cmsimple/models/version.coffee +29 -0
  19. data/app/assets/javascripts/cmsimple/panels/images/index.coffee +2 -0
  20. data/app/assets/javascripts/cmsimple/panels/images/list.coffee +48 -0
  21. data/app/assets/javascripts/cmsimple/panels/images/panel.coffee +69 -0
  22. data/app/assets/javascripts/cmsimple/panels/images/selection.coffee +52 -0
  23. data/app/assets/javascripts/cmsimple/panels/page_metadata.coffee +42 -0
  24. data/app/assets/javascripts/cmsimple/panels/publish.coffee +32 -0
  25. data/app/assets/javascripts/cmsimple/panels/redirects/form.coffee +51 -0
  26. data/app/assets/javascripts/cmsimple/panels/redirects/index.coffee +2 -0
  27. data/app/assets/javascripts/cmsimple/panels/redirects/list.coffee +34 -0
  28. data/app/assets/javascripts/cmsimple/panels/redirects/panel.coffee +39 -0
  29. data/app/assets/javascripts/cmsimple/panels/sitemap/index.coffee +2 -0
  30. data/app/assets/javascripts/cmsimple/panels/sitemap/panel.coffee +40 -0
  31. data/app/assets/javascripts/cmsimple/panels/sitemap/sortable.coffee +55 -0
  32. data/app/assets/javascripts/cmsimple/panels/sitemap/tree.coffee +61 -0
  33. data/app/assets/javascripts/cmsimple/panels/versions/index.coffee +2 -0
  34. data/app/assets/javascripts/cmsimple/panels/versions/list.coffee +51 -0
  35. data/app/assets/javascripts/cmsimple/panels/versions/panel.coffee +53 -0
  36. data/app/assets/javascripts/cmsimple/views/image_library/_item.jst.hamlc +24 -0
  37. data/app/assets/javascripts/cmsimple/views/image_library/list.jst.hamlc +8 -0
  38. data/app/assets/javascripts/cmsimple/views/redirects/_path.jst.hamlc +6 -0
  39. data/app/assets/javascripts/cmsimple/views/redirects/list.jst.hamlc +19 -0
  40. data/app/assets/javascripts/cmsimple/views/sitemap/_page.jst.hamlc +9 -0
  41. data/app/assets/javascripts/cmsimple/views/sitemap/tree.jst.hamlc +5 -0
  42. data/app/assets/javascripts/cmsimple/views/versions/_item.jst.hamlc +6 -0
  43. data/app/assets/javascripts/cmsimple/views/versions/list.jst.hamlc +4 -0
  44. data/app/assets/stylesheets/cmsimple.css +15 -0
  45. data/app/assets/stylesheets/cmsimple/forms.css +10 -0
  46. data/app/assets/stylesheets/cmsimple/panels.css +399 -0
  47. data/app/assets/stylesheets/cmsimple/toolbar-images.css +27 -0
  48. data/app/assets/stylesheets/mercury_overrides.css +2 -0
  49. data/app/controllers/cmsimple/front_controller.rb +38 -0
  50. data/app/controllers/cmsimple/images_controller.rb +28 -0
  51. data/app/controllers/cmsimple/mercury_controller.rb +7 -0
  52. data/app/controllers/cmsimple/pages_controller.rb +89 -0
  53. data/app/controllers/cmsimple/paths_controller.rb +23 -0
  54. data/app/controllers/cmsimple/snippets_controller.rb +23 -0
  55. data/app/controllers/cmsimple/versions_controller.rb +17 -0
  56. data/app/helpers/cmsimple/regions_helper.rb +38 -0
  57. data/app/models/cmsimple/image.rb +19 -0
  58. data/app/models/cmsimple/page.rb +203 -0
  59. data/app/models/cmsimple/path.rb +63 -0
  60. data/app/models/cmsimple/region.rb +43 -0
  61. data/app/models/cmsimple/snippet.rb +64 -0
  62. data/app/models/cmsimple/version.rb +18 -0
  63. data/app/uploaders/image_attachment_uploader.rb +53 -0
  64. data/app/views/cmsimple/images/_form.html.haml +13 -0
  65. data/app/views/cmsimple/images/new.html.haml +5 -0
  66. data/app/views/cmsimple/pages/_form.html.haml +49 -0
  67. data/app/views/cmsimple/pages/_form_extras.html.haml +2 -0
  68. data/app/views/cmsimple/pages/edit.html.haml +3 -0
  69. data/app/views/cmsimple/pages/new.html.haml +3 -0
  70. data/app/views/cmsimple/pages/publish.html.haml +12 -0
  71. data/app/views/cmsimple/snippets/index.html.haml +5 -0
  72. data/app/views/cmsimple/templates/default.html.haml +4 -0
  73. data/app/views/layouts/editor.html.haml +12 -0
  74. data/app/views/layouts/panel.html.haml +9 -0
  75. data/cmsimple.gemspec +44 -0
  76. data/config.ru +4 -0
  77. data/config/application.rb +1 -0
  78. data/config/cucumber.yml +8 -0
  79. data/config/environment.rb +2 -0
  80. data/config/routes.rb +34 -0
  81. data/db/migrate/20120201221410_create_cmsimple_pages.rb +10 -0
  82. data/db/migrate/20120222185901_add_title_parent_id_and_position_to_pages.rb +10 -0
  83. data/db/migrate/20120229185214_add_slug_to_pages.rb +7 -0
  84. data/db/migrate/20120323200439_add_is_root_to_page.rb +5 -0
  85. data/db/migrate/20120328174339_add_meta_info_to_cmsimple_pages.rb +9 -0
  86. data/db/migrate/20120329172857_create_cmsimple_path.rb +11 -0
  87. data/db/migrate/20120407024752_create_cmsimple_images.rb +13 -0
  88. data/db/migrate/20120410041105_add_timestamps_to_cmsimple_pages.rb +7 -0
  89. data/db/migrate/20120425211937_add_published_at_to_cmsimple_pages.rb +6 -0
  90. data/db/migrate/20120430175047_create_cmsimple_versions.rb +13 -0
  91. data/db/migrate/20120831233927_rename_path_to_current_uri_on_paths.rb +5 -0
  92. data/features/create.feature +18 -0
  93. data/features/delete.feature +12 -0
  94. data/features/edit.feature +54 -0
  95. data/features/publishing.feature +31 -0
  96. data/features/redirects.feature +27 -0
  97. data/features/step_definitions/mercury_steps.rb +440 -0
  98. data/features/step_definitions/page_steps.rb +269 -0
  99. data/features/step_definitions/web_steps.rb +254 -0
  100. data/features/support/env.rb +77 -0
  101. data/features/support/mercury_content.rb +25 -0
  102. data/features/support/mercury_selectors.rb +148 -0
  103. data/features/support/paths.rb +16 -0
  104. data/features/support/selectors.rb +26 -0
  105. data/features/support/utils.rb +18 -0
  106. data/features/versioning.feature +27 -0
  107. data/features/visit.feature +7 -0
  108. data/lib/cmsimple.rb +22 -0
  109. data/lib/cmsimple/configuration.rb +65 -0
  110. data/lib/cmsimple/exts/to_bool.rb +25 -0
  111. data/lib/cmsimple/page_responder.rb +46 -0
  112. data/lib/cmsimple/rails.rb +5 -0
  113. data/lib/cmsimple/regions_proxy.rb +32 -0
  114. data/lib/cmsimple/template_resolver.rb +14 -0
  115. data/lib/cmsimple/template_responder.rb +12 -0
  116. data/lib/cmsimple/version.rb +3 -0
  117. data/lib/generators/cmsimple/install/install_generator.rb +46 -0
  118. data/lib/generators/cmsimple/install/templates/default.html.erb +10 -0
  119. data/lib/generators/cmsimple/install/templates/default.html.haml +6 -0
  120. data/lib/generators/cmsimple/install/templates/initializer.rb +22 -0
  121. data/lib/generators/cmsimple/snippet/snippet_generator.rb +56 -0
  122. data/lib/generators/cmsimple/snippet/templates/cell.rb +18 -0
  123. data/lib/generators/cmsimple/snippet/templates/display.html.erb +14 -0
  124. data/lib/generators/cmsimple/snippet/templates/display.html.haml +11 -0
  125. data/lib/generators/cmsimple/snippet/templates/options.html.erb +18 -0
  126. data/lib/generators/cmsimple/snippet/templates/options.html.haml +12 -0
  127. data/script/app +2 -0
  128. data/script/migrate +2 -0
  129. data/script/rails +8 -0
  130. data/spec/fixtures/rails.png +0 -0
  131. data/spec/helpers/regions_helper_spec.rb +62 -0
  132. data/spec/javascripts/controllers/editor_spec.coffee +57 -0
  133. data/spec/javascripts/models/image_geometry_spec.coffee +64 -0
  134. data/spec/javascripts/models/image_spec.coffee +4 -0
  135. data/spec/javascripts/models/page_spec.coffee +121 -0
  136. data/spec/javascripts/models/path_spec.coffee +39 -0
  137. data/spec/javascripts/models/version_spec.coffee +31 -0
  138. data/spec/javascripts/panels/images/selection_spec.coffee +104 -0
  139. data/spec/javascripts/panels/sitemap/panel_spec.coffee +10 -0
  140. data/spec/javascripts/panels/sitemap/sortable_spec.coffee +63 -0
  141. data/spec/javascripts/panels/sitemap/tree_spec.coffee +62 -0
  142. data/spec/javascripts/spec_helper.coffee +25 -0
  143. data/spec/javascripts/support/stubs.coffee +16 -0
  144. data/spec/lib/page_responder_spec.rb +58 -0
  145. data/spec/lib/regions_proxy_spec.rb +47 -0
  146. data/spec/models/image_spec.rb +46 -0
  147. data/spec/models/page_spec.rb +237 -0
  148. data/spec/models/path_spec.rb +71 -0
  149. data/spec/models/region_spec.rb +14 -0
  150. data/spec/models/snippet_spec.rb +57 -0
  151. data/spec/models/version_spec.rb +7 -0
  152. data/spec/rails_app/.gitignore +33 -0
  153. data/spec/rails_app/Rakefile +7 -0
  154. data/spec/rails_app/app/assets/images/rails.png +0 -0
  155. data/spec/rails_app/app/assets/javascripts/application.js +9 -0
  156. data/spec/rails_app/app/assets/stylesheets/application.css +7 -0
  157. data/spec/rails_app/app/cells/example/display.html.haml +2 -0
  158. data/spec/rails_app/app/cells/example/options.html.haml +15 -0
  159. data/spec/rails_app/app/cells/example_cell.rb +19 -0
  160. data/spec/rails_app/app/cells/image_example/display.html.haml +4 -0
  161. data/spec/rails_app/app/cells/image_example/options.html.haml +15 -0
  162. data/spec/rails_app/app/cells/image_example_cell.rb +18 -0
  163. data/spec/rails_app/app/controllers/application_controller.rb +3 -0
  164. data/spec/rails_app/app/helpers/application_helper.rb +2 -0
  165. data/spec/rails_app/app/mailers/.gitkeep +0 -0
  166. data/spec/rails_app/app/models/.gitkeep +0 -0
  167. data/spec/rails_app/app/views/cmsimple/_snippet_list.html.haml +8 -0
  168. data/spec/rails_app/app/views/cmsimple/templates/default.html.haml +19 -0
  169. data/spec/rails_app/app/views/cmsimple/templates/test.html.haml +2 -0
  170. data/spec/rails_app/app/views/layouts/application.html.haml +13 -0
  171. data/spec/rails_app/config.ru +4 -0
  172. data/spec/rails_app/config/application.rb +65 -0
  173. data/spec/rails_app/config/boot.rb +9 -0
  174. data/spec/rails_app/config/database.example.yml +22 -0
  175. data/spec/rails_app/config/database.travis.yml +8 -0
  176. data/spec/rails_app/config/environment.rb +5 -0
  177. data/spec/rails_app/config/environments/development.rb +30 -0
  178. data/spec/rails_app/config/environments/test.rb +39 -0
  179. data/spec/rails_app/config/initializers/backtrace_silencers.rb +7 -0
  180. data/spec/rails_app/config/initializers/cells.rb +1 -0
  181. data/spec/rails_app/config/initializers/cmsimple.rb +3 -0
  182. data/spec/rails_app/config/initializers/inflections.rb +10 -0
  183. data/spec/rails_app/config/initializers/mime_types.rb +5 -0
  184. data/spec/rails_app/config/initializers/secret_token.rb +7 -0
  185. data/spec/rails_app/config/initializers/session_store.rb +8 -0
  186. data/spec/rails_app/config/initializers/teabag.rb +58 -0
  187. data/spec/rails_app/config/initializers/wrap_parameters.rb +14 -0
  188. data/spec/rails_app/config/locales/en.yml +5 -0
  189. data/spec/rails_app/config/routes.rb +61 -0
  190. data/spec/rails_app/db/seeds.rb +11 -0
  191. data/spec/rails_app/lib/assets/.gitkeep +0 -0
  192. data/spec/rails_app/lib/tasks/.gitkeep +0 -0
  193. data/spec/rails_app/public/404.html +26 -0
  194. data/spec/rails_app/public/422.html +26 -0
  195. data/spec/rails_app/public/500.html +26 -0
  196. data/spec/rails_app/public/robots.txt +5 -0
  197. data/spec/rails_app/script/rails +6 -0
  198. data/spec/rails_app/vendor/assets/stylesheets/.gitkeep +0 -0
  199. data/spec/rails_app/vendor/plugins/.gitkeep +0 -0
  200. data/spec/spec_helper.rb +31 -0
  201. data/spec/support/active_model_lint_example.rb +14 -0
  202. data/spec/teabag_env.rb +28 -0
  203. data/vendor/assets/images/sitemap/has-changes.png +0 -0
  204. data/vendor/assets/images/sitemap/published.png +0 -0
  205. data/vendor/assets/images/sitemap/unpublished.png +0 -0
  206. data/vendor/assets/images/toolbar/metadata.png +0 -0
  207. data/vendor/assets/images/toolbar/publish.png +0 -0
  208. data/vendor/assets/images/toolbar/redirect.png +0 -0
  209. data/vendor/assets/images/toolbar/sitemap.png +0 -0
  210. data/vendor/assets/images/toolbar/snippets.png +0 -0
  211. data/vendor/assets/images/toolbar/unpublished.png +0 -0
  212. data/vendor/assets/images/tree-line-horizontal-last.png +0 -0
  213. data/vendor/assets/images/tree-line-horizontal.png +0 -0
  214. data/vendor/assets/images/tree-line-vertical.png +0 -0
  215. data/vendor/assets/javascripts/jquery-serializeObject.js +107 -0
  216. data/vendor/assets/javascripts/jquery.to-json.js +74 -0
  217. data/vendor/assets/javascripts/jquery.ui.nestedSortable-1.3.4.js +391 -0
  218. data/vendor/assets/javascripts/moment-1.6.2.js +918 -0
  219. data/vendor/assets/javascripts/underscore-1.3.1.js +31 -0
  220. data/vendor/assets/stylesheets/jasmine-modified.css +216 -0
  221. metadata +686 -0
@@ -0,0 +1,8 @@
1
+ %header.panel-actions
2
+ %button.btn.btn-primary#add_image Add Image
3
+ .add-image-action
4
+ %iframe(src='/cmsimple/images/new' frameborder="0")
5
+ .image-filter
6
+ %form
7
+ %input.filter(type="text" placeholder="e.g. <500 x 200")
8
+ %ul.media-grid
@@ -0,0 +1,6 @@
1
+ %li(id="path_#{@id}" data-id=@id)
2
+ %article(title="direct #{@uri} to #{@destinationPath()}")
3
+ %p.path= @uri
4
+ %p.destination &rarr; #{@destinationPath()}
5
+ %a.remove(href='#') &times;
6
+
@@ -0,0 +1,19 @@
1
+
2
+ %header.panel-actions.add-redirect-form
3
+ %button.btn.btn-primary.add Add Redirect
4
+ %form.form-horizontal(style='display: none')
5
+ %fieldset
6
+ %legend Create a redirect
7
+ .control-group
8
+ %label.control-label(for="uri") From
9
+ .controls
10
+ %input(id='uri' name='uri' type='text' placeholder='/path')
11
+ .control-group
12
+ %label.control-label(for="redirect_uri") To
13
+ .controls
14
+ %input(id='redirect_uri' name='redirect_uri' type='text' placeholder='/new-path')
15
+ .form-actions.mercury-display-controls
16
+ %input.btn.btn-primary(type='submit' value='Create')
17
+ %button.btn Cancel
18
+ %ul.redirects
19
+
@@ -0,0 +1,9 @@
1
+ %li(id="page_#{@page.id}" data-id="#{@page.id}")
2
+ %article
3
+ - if @page.hasChildren()
4
+ %span.caret
5
+ %span.icon(class="#{@page.publishedState()}")
6
+ %span= @page.title
7
+ %span.path
8
+ = @page.path()
9
+ %ul.child(class="#{'hidden' unless @open }")
@@ -0,0 +1,5 @@
1
+ %header.panel-actions
2
+ %button.btn.btn-primary.add Add Page
3
+ %ul.sitemap
4
+ .loading
5
+ %img(src='/assets/mercury/loading-light.gif')
@@ -0,0 +1,6 @@
1
+ %li(id="version_#{@id}" data-id=@id)
2
+ %article
3
+ %p.published= moment(@published_at).format('dddd, MMMM Do YYYY, h:mm:ss a')
4
+ %button.btn.view View
5
+ %button.btn.important.revert Revert to
6
+
@@ -0,0 +1,4 @@
1
+ %header.panel-actions(style='display: none;')
2
+ %button.btn.btn-primary.view-current View Current Draft
3
+ %ul.versions
4
+
@@ -0,0 +1,15 @@
1
+ /*!
2
+ * Mercury Editor is a Coffeescript and jQuery based WYSIWYG editor. Documentation and other useful information can be
3
+ * found at https://github.com/jejacks0n/mercury
4
+ */
5
+
6
+
7
+ /*
8
+ *= require mercury
9
+ *= require cmsimple/forms
10
+ *= require cmsimple/panels
11
+ *= require cmsimple/toolbar-images
12
+ *
13
+ */
14
+
15
+
@@ -0,0 +1,10 @@
1
+ a.btn {
2
+ display: inline-block;
3
+ text-decoration: none;
4
+ vertical-align: bottom;
5
+ }
6
+
7
+ input[type="file"] {
8
+ line-height: 1;
9
+ margin-top: 0.3em;
10
+ }
@@ -0,0 +1,399 @@
1
+
2
+ /* Dialogs */
3
+ .mercury-framed-panel {
4
+ background-color: #f5f5f5;
5
+ color: #333;
6
+ }
7
+
8
+ .mercury-framed-panel h1 {
9
+ color: #f5f5f5;
10
+ border-bottom: 1px solid #222;
11
+ -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
12
+ -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
13
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
14
+ }
15
+
16
+ .mercury-framed-panel {
17
+ font-family: Helvetica, Tahoma, Arial, sans-serif;
18
+ font-size: 9.5pt;
19
+ }
20
+
21
+ .mercury-framed-panel.embedded {
22
+ background-color: #eaeaea;
23
+ }
24
+ .mercury-framed-panel.embedded fieldset {
25
+ background: none;
26
+ border: none;
27
+ }
28
+ .mercury-framed-panel.embedded h2 {
29
+ border-bottom: 1px solid #ccc;
30
+ }
31
+ .mercury-framed-panel.embedded .btn {
32
+ float: right;
33
+ }
34
+
35
+ /*
36
+ * Override Panel Settings
37
+ *----------------------------------------------------------------------------*/
38
+ .mercury-panel .panel-actions {
39
+ background-color: #eaeaea;
40
+ border: 1px solid #ccc;
41
+ -webkit-border-radius: 0.5em;
42
+ -moz-border-radius: 0.5em;
43
+ border-radius: 0.5em;
44
+ padding: 1em;
45
+ overflow: hidden;
46
+ }
47
+ .mercury-panel .panel-actions .btn {
48
+ float: right;
49
+ }
50
+
51
+ .mercury-panel-pane .loading {
52
+ text-align: center;
53
+ width: 100%;
54
+ float: left;
55
+ margin-top: 50%
56
+ }
57
+
58
+ .mercury-panel .hidden {
59
+ display: none;
60
+ }
61
+ /*
62
+ * Image Panel
63
+ *----------------------------------------------------------------------------*/
64
+ .mercury-panel .add-image-action {
65
+ /* margin-top: 50px; */
66
+ display: none;
67
+ }
68
+
69
+ .mercury-panel .add-image-action iframe {
70
+ width: 100%;
71
+ height: 192px;
72
+ }
73
+
74
+ .mercury-panel .add-image-action.active {
75
+ display: block;
76
+ }
77
+ .mercury-panel .add-image-action ol {
78
+ list-style: none;
79
+ }
80
+
81
+ .mercury-panel .add-image-action li {
82
+ margin: 0;
83
+ padding: 0;
84
+ }
85
+
86
+ .mercury-panel .add-image-action label {
87
+ font-size: 11px;
88
+ display: block;
89
+ float: none;
90
+ width: auto;
91
+ margin-right: 0;
92
+ text-align: left;
93
+ line-height: normal;
94
+ overflow: visible;
95
+ margin-top: 20px;
96
+ }
97
+ .mercury-panel .add-image-action textarea {
98
+ font-size: 1em;
99
+ width: 100%;
100
+ }
101
+
102
+ .image-filter input.filter {
103
+ outline: none;
104
+ font-size: 1em;
105
+ border-radius: 30px;
106
+ moz-border-radius: 30px;
107
+ box-sizing: border-box;
108
+ -moz-box-sizing: border-box;
109
+ -webkit-box-sizing: border-box;
110
+ width: 100%;
111
+ padding-left: 20px;
112
+ background-color: #FFF;
113
+ background-repeat: no-repeat;
114
+ background-image: url(/assets/mercury/search-icon.png);
115
+ background-position: 4px center;
116
+ margin: 1em 0
117
+ }
118
+
119
+ .mercury-panel ul.media-grid {
120
+ width: 400px;
121
+ padding: 0;
122
+ overflow: hidden;
123
+ list-style: none;
124
+ }
125
+
126
+ .mercury-panel .media-grid > li {
127
+ float: left;
128
+ margin-bottom: 16px;
129
+ }
130
+ .mercury-panel .media-grid > li:nth-child(odd) {
131
+ margin-right: 16px;
132
+ }
133
+
134
+ .mercury-panel .media-item {
135
+ position: relative;
136
+ display: block;
137
+ padding: 4px;
138
+ line-height: 1;
139
+ border: 1px solid #ccc;
140
+ cursor: default;
141
+ max-width: 182px;
142
+ }
143
+
144
+ .mercury-panel .media-item:hover {
145
+ border-color: #268bd2;
146
+ -webkit-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);
147
+ -moz-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);
148
+ box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);
149
+ }
150
+
151
+ .mercury-panel .media-item > .media-info {
152
+ position: absolute;
153
+ background-color: rgba(255,255,255,0.9);
154
+ z-index: 2;
155
+ width: 182px;
156
+ height: 182px;
157
+ overflow: hidden;
158
+ display: none;
159
+ }
160
+ .mercury-panel .media-item > .media-info .close {
161
+ position: absolute;
162
+ top: 0;
163
+ right: 2px;
164
+ text-decoration: none;
165
+ color: #000;
166
+ }
167
+
168
+ .mercury-panel .media-item > .media-info.active {
169
+ display: block;
170
+ }
171
+
172
+ .mercury-panel .media-item > .media-info dl {
173
+ margin: 0;
174
+ padding: 0.5em 1em;
175
+ }
176
+ .mercury-panel .media-item > .media-info dt {
177
+ font-size: .75em;
178
+ text-transform: uppercase;
179
+ font-weight: bold;
180
+ margin: 1em 0 0.25em;
181
+ padding: 0;
182
+ }
183
+ .mercury-panel .media-item > .media-info dd {
184
+ margin: 0;
185
+ padding: 0;
186
+ }
187
+
188
+ .mercury-panel .media-item > img {
189
+ display: block;
190
+ max-width: 100%;
191
+ margin-left: auto;
192
+ margin-right: auto;
193
+ }
194
+
195
+ .mercury-panel .media-caption {
196
+ max-width: 182px;
197
+ margin: 0 5px;
198
+ font-size: 12px;
199
+ line-height: 0.25;
200
+ }
201
+ .mercury-panel .media-caption a {
202
+ color: #268bd2;
203
+ text-decoration: none;
204
+ }
205
+ .mercury-panel .media-caption a:hover {
206
+ color: #16527C;
207
+ text-decoration: underline;
208
+ }
209
+
210
+ /*
211
+ * Sitemap Panel
212
+ *----------------------------------------------------------------------------*/
213
+ .mercury-panel ul.sitemap {
214
+ width: 400px;
215
+ padding: 0;
216
+ }
217
+
218
+ .mercury-panel ul.sitemap li {
219
+ list-style: none;
220
+ padding: 0;
221
+ margin: 0;
222
+ padding-left: 2.5em;
223
+ background: url(/assets/tree-line-horizontal.png) no-repeat left 12px;
224
+ }
225
+ .mercury-panel ul.sitemap li:last-child {
226
+ background-image: url(/assets/tree-line-horizontal-last.png);
227
+ }
228
+ .mercury-panel ul.sitemap,
229
+ .mercury-panel ul.sitemap ul {
230
+ background: url(/assets/tree-line-vertical.png) repeat-y;
231
+ }
232
+
233
+ .mercury-panel ul.sitemap > li article {
234
+ background-color: #666;
235
+ color: #fff;
236
+ padding: 0.25em 0.5em;
237
+ margin-bottom: 2px;
238
+ -webkit-border-radius: 0.25em;
239
+ -moz-border-radius: 0.25em;
240
+ border-radius: 0.25em;
241
+ cursor: default;
242
+ border: 1px solid transparent;
243
+ }
244
+ /* Nested coloring of pages */
245
+ .mercury-panel ul.sitemap > li ul li article {
246
+ opacity: 0.8;
247
+ }
248
+ .mercury-panel ul.sitemap > li ul li article + ul article {
249
+ opacity: 0.6;
250
+ }
251
+ .mercury-panel ul.sitemap > li ul li article + ul article + ul article {
252
+ opacity: 0.4;
253
+ }
254
+ .mercury-panel ul.sitemap > li article:hover {
255
+ background-color: #444;
256
+ border-color: #268bd2;
257
+ -webkit-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);
258
+ -moz-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);
259
+ box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);
260
+ }
261
+
262
+ .mercury-panel ul.sitemap > li article span {
263
+ }
264
+ .mercury-panel ul.sitemap > li article .path {
265
+ color: #ccc;
266
+ margin-left: 0.5em;
267
+ }
268
+ .mercury-panel ul.sitemap > li article .icon {
269
+ height: 16px;
270
+ width: 16px;
271
+ background: url('/assets/sitemap/unpublished.png') no-repeat left top;
272
+ background-size: 16px 16px;
273
+ margin-top: -1px;
274
+ margin-left: -4px;
275
+ }
276
+ .mercury-panel ul.sitemap > li article .icon.has-changes {
277
+ background-image: url('/assets/sitemap/has-changes.png');
278
+ }
279
+ .mercury-panel ul.sitemap > li article .icon.published {
280
+ background-image: url('/assets/sitemap/published.png');
281
+ }
282
+ .mercury-panel ul.sitemap .caret {
283
+ display: inline-block;
284
+ vertical-align: middle;
285
+ zoom: 1;
286
+ *display: inline;
287
+ *vertical-align: auto;
288
+ border-width: 4px;
289
+ border-style: solid;
290
+ border-color: #fff transparent transparent transparent;
291
+ width: 0;
292
+ height: 0;
293
+ vertical-align: top;
294
+ float: right;
295
+ margin: 0.5em 0;
296
+ }
297
+
298
+ .mercury-panel ul.sitemap .caret.north {
299
+ margin: 0.2em 0;
300
+ border-color: transparent transparent #fff transparent;
301
+ }
302
+
303
+ /* Increase the gap for top level pages */
304
+ .mercury-panel ul.sitemap > li {
305
+ margin-bottom: 8px;
306
+ }
307
+
308
+ .mercury-panel ul.sitemap ul {
309
+ padding: 0;
310
+ *zoom: 1;
311
+ }
312
+ .mercury-panel ul.sitemap ul:before,
313
+ .mercury-panel ul.sitemap ul:after {
314
+ content: "";
315
+ display: table;
316
+ }
317
+ .mercury-panel ul.sitemap ul:after {
318
+ clear: both;
319
+ }
320
+
321
+ /* Redirects panel */
322
+ .mercury-panel ul.redirects {
323
+ width: 400px;
324
+ padding: 0;
325
+ }
326
+
327
+ .mercury-panel ul.redirects li {
328
+ position: relative;
329
+ list-style: none;
330
+ }
331
+
332
+ .mercury-panel ul.redirects > li article {
333
+ background-color: #666;
334
+ color: #fff;
335
+ padding: 0 0.5em;
336
+ margin-bottom: 2px;
337
+ -webkit-border-radius: 0.25em;
338
+ -moz-border-radius: 0.25em;
339
+ border-radius: 0.25em;
340
+ border: 1px solid transparent;
341
+ cursor: default;
342
+ }
343
+
344
+ .mercury-panel ul.redirects > li article:hover {
345
+ background-color: #444;
346
+ border-color: #268bd2;
347
+ -webkit-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);
348
+ -moz-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);
349
+ box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);
350
+ }
351
+
352
+ .mercury-panel ul.redirects > li article .path {
353
+ font-weight: bold;
354
+ }
355
+
356
+ .mercury-panel ul.redirects > li article .destination {
357
+ margin-left: 0.25em;
358
+ }
359
+
360
+ .mercury-panel ul.redirects > li article .remove {
361
+ position: absolute;
362
+ top: 0;
363
+ right: 5px;
364
+ color: #fff;
365
+ text-decoration: none;
366
+ font-weight: bold;
367
+ }
368
+
369
+ /* Versions panel */
370
+ .mercury-panel ul.versions {
371
+ width: 400px;
372
+ padding: 0;
373
+ }
374
+
375
+ .mercury-panel ul.versions li {
376
+ position: relative;
377
+ list-style: none;
378
+ }
379
+
380
+ .mercury-panel ul.versions > li article {
381
+ background-color: #666;
382
+ color: #fff;
383
+ padding: 0 0.5em;
384
+ margin-bottom: 2px;
385
+ -webkit-border-radius: 0.25em;
386
+ -moz-border-radius: 0.25em;
387
+ border-radius: 0.25em;
388
+ border: 1px solid transparent;
389
+ cursor: default;
390
+ }
391
+ .mercury-panel ul.versions > li article .view,
392
+ .mercury-panel ul.versions > li article .revert {
393
+ position: absolute;
394
+ top: 5px;
395
+ right: 5px;
396
+ }
397
+ .mercury-panel ul.versions > li article .revert {
398
+ display: none;
399
+ }