browsercms 3.0.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (444) hide show
  1. data/app/controllers/cms/connectors_controller.rb +1 -1
  2. data/app/helpers/cms/application_helper.rb +2 -19
  3. data/app/helpers/cms/form_builder.rb +8 -5
  4. data/app/helpers/cms/menu_helper.rb +19 -5
  5. data/app/helpers/cms/page_helper.rb +9 -1
  6. data/app/helpers/cms/template_support.rb +21 -0
  7. data/app/models/abstract_file_block.rb +4 -0
  8. data/app/models/connector.rb +7 -3
  9. data/app/models/dynamic_view.rb +2 -4
  10. data/app/models/portlet.rb +22 -9
  11. data/app/models/section.rb +7 -5
  12. data/app/views/cms/blocks/_toolbar_for_member.html.erb +4 -4
  13. data/app/views/cms/blocks/index.html.erb +1 -1
  14. data/app/views/cms/blocks/usages.html.erb +44 -34
  15. data/app/views/cms/connectors/new.html.erb +2 -2
  16. data/app/views/cms/dynamic_views/_form.html.erb +1 -1
  17. data/app/views/cms/dynamic_views/index.html.erb +7 -3
  18. data/app/views/cms/email_messages/index.html.erb +3 -5
  19. data/app/views/cms/form_builder/_cms_datetime_select.html.erb +12 -0
  20. data/app/views/cms/form_builder/_cms_text_editor.html.erb +2 -2
  21. data/app/views/cms/form_builder/_cms_text_field.html.erb +1 -2
  22. data/app/views/cms/groups/_permissions.html.erb +1 -0
  23. data/app/views/cms/groups/_sections.html.erb +1 -0
  24. data/app/views/cms/groups/index.html.erb +3 -5
  25. data/app/views/cms/page_routes/index.html.erb +13 -7
  26. data/app/views/cms/page_routes/show.html.erb +4 -4
  27. data/app/views/cms/pages/_edit_connector.html.erb +4 -1
  28. data/app/views/cms/pages/_edit_container.html.erb +4 -1
  29. data/app/views/cms/redirects/index.html.erb +12 -7
  30. data/app/views/cms/routes/index.html.erb +11 -7
  31. data/app/views/cms/sections/_form.html.erb +4 -5
  32. data/app/views/cms/users/_groups.html.erb +1 -0
  33. data/app/views/layouts/_cms_toolbar.html.erb +37 -4
  34. data/app/views/layouts/_page_toolbar.html.erb +2 -2
  35. data/browsercms.gemspec +381 -3
  36. data/db/demo/data.rb +2 -1
  37. data/doc/app/classes/AbstractFileBlock.html +146 -0
  38. data/doc/app/classes/ActiveRecord.html +105 -0
  39. data/doc/app/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html +242 -0
  40. data/doc/app/classes/ActiveSupport.html +111 -0
  41. data/doc/app/classes/ActiveSupport/Cache.html +111 -0
  42. data/doc/app/classes/ActiveSupport/Cache/FileStore.html +146 -0
  43. data/doc/app/classes/ActsAsList.html +147 -0
  44. data/doc/app/classes/ActsAsList/ClassMethods.html +202 -0
  45. data/doc/app/classes/ActsAsList/InstanceMethods.html +510 -0
  46. data/doc/app/classes/ApplicationController.html +119 -0
  47. data/doc/app/classes/ApplicationHelper.html +112 -0
  48. data/doc/app/classes/Attachment.html +726 -0
  49. data/doc/app/classes/Category.html +230 -0
  50. data/doc/app/classes/CategoryType.html +214 -0
  51. data/doc/app/classes/Cms.html +638 -0
  52. data/doc/app/classes/Cms/Acts.html +111 -0
  53. data/doc/app/classes/Cms/Acts/ContentBlock.html +146 -0
  54. data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods.html +165 -0
  55. data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods/InstanceMethods.html +140 -0
  56. data/doc/app/classes/Cms/ApplicationController.html +418 -0
  57. data/doc/app/classes/Cms/ApplicationHelper.html +814 -0
  58. data/doc/app/classes/Cms/AttachmentsController.html +154 -0
  59. data/doc/app/classes/Cms/Authentication.html +116 -0
  60. data/doc/app/classes/Cms/Authentication/Controller.html +702 -0
  61. data/doc/app/classes/Cms/Authentication/Model.html +165 -0
  62. data/doc/app/classes/Cms/Authentication/Model/ClassMethods.html +246 -0
  63. data/doc/app/classes/Cms/Authentication/Model/InstanceMethods.html +412 -0
  64. data/doc/app/classes/Cms/BaseController.html +113 -0
  65. data/doc/app/classes/Cms/Behaviors.html +235 -0
  66. data/doc/app/classes/Cms/Behaviors/Archiving.html +147 -0
  67. data/doc/app/classes/Cms/Behaviors/Archiving/InstanceMethods.html +220 -0
  68. data/doc/app/classes/Cms/Behaviors/Archiving/MacroMethods.html +175 -0
  69. data/doc/app/classes/Cms/Behaviors/Attaching.html +160 -0
  70. data/doc/app/classes/Cms/Behaviors/Attaching/InstanceMethods.html +670 -0
  71. data/doc/app/classes/Cms/Behaviors/Attaching/MacroMethods.html +188 -0
  72. data/doc/app/classes/Cms/Behaviors/Categorizing.html +148 -0
  73. data/doc/app/classes/Cms/Behaviors/Categorizing/ClassMethods.html +105 -0
  74. data/doc/app/classes/Cms/Behaviors/Categorizing/InstanceMethods.html +140 -0
  75. data/doc/app/classes/Cms/Behaviors/Categorizing/MacroMethods.html +178 -0
  76. data/doc/app/classes/Cms/Behaviors/ClassMethods.html +272 -0
  77. data/doc/app/classes/Cms/Behaviors/Connecting.html +148 -0
  78. data/doc/app/classes/Cms/Behaviors/Connecting/ClassMethods.html +188 -0
  79. data/doc/app/classes/Cms/Behaviors/Connecting/InstanceMethods.html +312 -0
  80. data/doc/app/classes/Cms/Behaviors/Connecting/MacroMethods.html +184 -0
  81. data/doc/app/classes/Cms/Behaviors/DynamicAttributes.html +285 -0
  82. data/doc/app/classes/Cms/Behaviors/DynamicAttributes/InstanceMethods.html +181 -0
  83. data/doc/app/classes/Cms/Behaviors/DynamicAttributes/MacroMethods.html +243 -0
  84. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange.html +178 -0
  85. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/InstanceMethods.html +142 -0
  86. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/MacroMethods.html +175 -0
  87. data/doc/app/classes/Cms/Behaviors/Hiding.html +148 -0
  88. data/doc/app/classes/Cms/Behaviors/Hiding/ClassMethods.html +105 -0
  89. data/doc/app/classes/Cms/Behaviors/Hiding/InstanceMethods.html +220 -0
  90. data/doc/app/classes/Cms/Behaviors/Hiding/MacroMethods.html +176 -0
  91. data/doc/app/classes/Cms/Behaviors/InstanceMethods.html +234 -0
  92. data/doc/app/classes/Cms/Behaviors/Pagination.html +151 -0
  93. data/doc/app/classes/Cms/Behaviors/Pagination/ClassMethods.html +252 -0
  94. data/doc/app/classes/Cms/Behaviors/Pagination/Collection.html +437 -0
  95. data/doc/app/classes/Cms/Behaviors/Pagination/InvalidPage.html +146 -0
  96. data/doc/app/classes/Cms/Behaviors/Publishing.html +179 -0
  97. data/doc/app/classes/Cms/Behaviors/Publishing/ClassMethods.html +105 -0
  98. data/doc/app/classes/Cms/Behaviors/Publishing/InstanceMethods.html +333 -0
  99. data/doc/app/classes/Cms/Behaviors/Publishing/MacroMethods.html +180 -0
  100. data/doc/app/classes/Cms/Behaviors/Rendering.html +179 -0
  101. data/doc/app/classes/Cms/Behaviors/Rendering/MacroMethods.html +186 -0
  102. data/doc/app/classes/Cms/Behaviors/Searching.html +147 -0
  103. data/doc/app/classes/Cms/Behaviors/Searching/ClassMethods.html +164 -0
  104. data/doc/app/classes/Cms/Behaviors/Searching/MacroMethods.html +188 -0
  105. data/doc/app/classes/Cms/Behaviors/SoftDeleting.html +148 -0
  106. data/doc/app/classes/Cms/Behaviors/SoftDeleting/ClassMethods.html +217 -0
  107. data/doc/app/classes/Cms/Behaviors/SoftDeleting/InstanceMethods.html +247 -0
  108. data/doc/app/classes/Cms/Behaviors/SoftDeleting/MacroMethods.html +205 -0
  109. data/doc/app/classes/Cms/Behaviors/Taggable.html +148 -0
  110. data/doc/app/classes/Cms/Behaviors/Taggable/ClassMethods.html +164 -0
  111. data/doc/app/classes/Cms/Behaviors/Taggable/InstanceMethods.html +197 -0
  112. data/doc/app/classes/Cms/Behaviors/Taggable/MacroMethods.html +182 -0
  113. data/doc/app/classes/Cms/Behaviors/Userstamping.html +148 -0
  114. data/doc/app/classes/Cms/Behaviors/Userstamping/ClassMethods.html +105 -0
  115. data/doc/app/classes/Cms/Behaviors/Userstamping/InstanceMethods.html +143 -0
  116. data/doc/app/classes/Cms/Behaviors/Userstamping/MacroMethods.html +181 -0
  117. data/doc/app/classes/Cms/Behaviors/Versioning.html +148 -0
  118. data/doc/app/classes/Cms/Behaviors/Versioning/ClassMethods.html +237 -0
  119. data/doc/app/classes/Cms/Behaviors/Versioning/InstanceMethods.html +685 -0
  120. data/doc/app/classes/Cms/Behaviors/Versioning/MacroMethods.html +290 -0
  121. data/doc/app/classes/Cms/CacheController.html +174 -0
  122. data/doc/app/classes/Cms/Caching.html +171 -0
  123. data/doc/app/classes/Cms/CategoriesController.html +113 -0
  124. data/doc/app/classes/Cms/CategoryTypesController.html +148 -0
  125. data/doc/app/classes/Cms/ConnectorsController.html +215 -0
  126. data/doc/app/classes/Cms/ContentBlockController.html +1175 -0
  127. data/doc/app/classes/Cms/ContentController.html +313 -0
  128. data/doc/app/classes/Cms/ContentTypesController.html +148 -0
  129. data/doc/app/classes/Cms/DashboardController.html +151 -0
  130. data/doc/app/classes/Cms/DataLoader.html +182 -0
  131. data/doc/app/classes/Cms/DynamicViewsController.html +359 -0
  132. data/doc/app/classes/Cms/EmailMessagesController.html +172 -0
  133. data/doc/app/classes/Cms/ErrorHandling.html +172 -0
  134. data/doc/app/classes/Cms/Errors.html +111 -0
  135. data/doc/app/classes/Cms/Errors/AccessDenied.html +146 -0
  136. data/doc/app/classes/Cms/Extensions.html +140 -0
  137. data/doc/app/classes/Cms/Extensions/ActionView.html +111 -0
  138. data/doc/app/classes/Cms/Extensions/ActionView/Base.html +141 -0
  139. data/doc/app/classes/Cms/Extensions/ActiveRecord.html +116 -0
  140. data/doc/app/classes/Cms/Extensions/ActiveRecord/Base.html +144 -0
  141. data/doc/app/classes/Cms/Extensions/ActiveRecord/Errors.html +140 -0
  142. data/doc/app/classes/Cms/Extensions/Hash.html +175 -0
  143. data/doc/app/classes/Cms/Extensions/Integer.html +146 -0
  144. data/doc/app/classes/Cms/Extensions/NilClass.html +212 -0
  145. data/doc/app/classes/Cms/Extensions/String.html +212 -0
  146. data/doc/app/classes/Cms/FileBlocksController.html +113 -0
  147. data/doc/app/classes/Cms/FormBuilder.html +312 -0
  148. data/doc/app/classes/Cms/FormTagHelper.html +245 -0
  149. data/doc/app/classes/Cms/GroupsController.html +225 -0
  150. data/doc/app/classes/Cms/HomeController.html +148 -0
  151. data/doc/app/classes/Cms/HtmlBlocksController.html +113 -0
  152. data/doc/app/classes/Cms/ImageBlocksController.html +113 -0
  153. data/doc/app/classes/Cms/LinksController.html +341 -0
  154. data/doc/app/classes/Cms/MenuHelper.html +330 -0
  155. data/doc/app/classes/Cms/PageHelper.html +292 -0
  156. data/doc/app/classes/Cms/PageRouteConditionsController.html +113 -0
  157. data/doc/app/classes/Cms/PageRouteOptionsController.html +355 -0
  158. data/doc/app/classes/Cms/PageRouteRequirementsController.html +113 -0
  159. data/doc/app/classes/Cms/PageRoutesController.html +284 -0
  160. data/doc/app/classes/Cms/PagesController.html +331 -0
  161. data/doc/app/classes/Cms/PathHelper.html +268 -0
  162. data/doc/app/classes/Cms/PortletController.html +150 -0
  163. data/doc/app/classes/Cms/PortletsController.html +301 -0
  164. data/doc/app/classes/Cms/RedirectsController.html +172 -0
  165. data/doc/app/classes/Cms/ResourceController.html +616 -0
  166. data/doc/app/classes/Cms/Routes.html +303 -0
  167. data/doc/app/classes/Cms/RoutesController.html +164 -0
  168. data/doc/app/classes/Cms/SectionNodesController.html +272 -0
  169. data/doc/app/classes/Cms/SectionNodesHelper.html +145 -0
  170. data/doc/app/classes/Cms/SectionsController.html +542 -0
  171. data/doc/app/classes/Cms/SessionsController.html +270 -0
  172. data/doc/app/classes/Cms/TagsController.html +152 -0
  173. data/doc/app/classes/Cms/TasksController.html +221 -0
  174. data/doc/app/classes/Cms/ToolbarController.html +153 -0
  175. data/doc/app/classes/Cms/UsersController.html +405 -0
  176. data/doc/app/classes/Connector.html +350 -0
  177. data/doc/app/classes/ContentType.html +448 -0
  178. data/doc/app/classes/ContentTypeGroup.html +111 -0
  179. data/doc/app/classes/DynamicPortlet.html +148 -0
  180. data/doc/app/classes/DynamicView.html +411 -0
  181. data/doc/app/classes/EmailMessage.html +228 -0
  182. data/doc/app/classes/EmailMessageMailer.html +150 -0
  183. data/doc/app/classes/EmailPagePortlet.html +184 -0
  184. data/doc/app/classes/FileBlock.html +202 -0
  185. data/doc/app/classes/Group.html +170 -0
  186. data/doc/app/classes/GroupPermission.html +111 -0
  187. data/doc/app/classes/GroupSection.html +111 -0
  188. data/doc/app/classes/GroupType.html +111 -0
  189. data/doc/app/classes/GroupTypePermission.html +111 -0
  190. data/doc/app/classes/GuestUser.html +347 -0
  191. data/doc/app/classes/HtmlBlock.html +170 -0
  192. data/doc/app/classes/ImageBlock.html +202 -0
  193. data/doc/app/classes/InitialData.html +171 -0
  194. data/doc/app/classes/Link.html +249 -0
  195. data/doc/app/classes/LoginPortlet.html +151 -0
  196. data/doc/app/classes/Page.html +954 -0
  197. data/doc/app/classes/PagePartial.html +201 -0
  198. data/doc/app/classes/PageRoute.html +335 -0
  199. data/doc/app/classes/PageRouteCondition.html +113 -0
  200. data/doc/app/classes/PageRouteOption.html +111 -0
  201. data/doc/app/classes/PageRouteRequirement.html +113 -0
  202. data/doc/app/classes/PageTemplate.html +278 -0
  203. data/doc/app/classes/Permission.html +111 -0
  204. data/doc/app/classes/Portlet.html +738 -0
  205. data/doc/app/classes/Redirect.html +111 -0
  206. data/doc/app/classes/Section.html +580 -0
  207. data/doc/app/classes/SectionNode.html +410 -0
  208. data/doc/app/classes/Sequence.html +146 -0
  209. data/doc/app/classes/Site.html +253 -0
  210. data/doc/app/classes/Tag.html +292 -0
  211. data/doc/app/classes/TagCloudPortlet.html +176 -0
  212. data/doc/app/classes/Tagging.html +146 -0
  213. data/doc/app/classes/Task.html +288 -0
  214. data/doc/app/classes/User.html +618 -0
  215. data/doc/app/classes/UserGroupMembership.html +111 -0
  216. data/doc/app/created.rid +1 -0
  217. data/doc/app/files/app/controllers/application_controller_rb.html +109 -0
  218. data/doc/app/files/app/controllers/cms/application_controller_rb.html +101 -0
  219. data/doc/app/files/app/controllers/cms/attachments_controller_rb.html +101 -0
  220. data/doc/app/files/app/controllers/cms/base_controller_rb.html +101 -0
  221. data/doc/app/files/app/controllers/cms/cache_controller_rb.html +101 -0
  222. data/doc/app/files/app/controllers/cms/categories_controller_rb.html +101 -0
  223. data/doc/app/files/app/controllers/cms/category_types_controller_rb.html +101 -0
  224. data/doc/app/files/app/controllers/cms/connectors_controller_rb.html +101 -0
  225. data/doc/app/files/app/controllers/cms/content_block_controller_rb.html +107 -0
  226. data/doc/app/files/app/controllers/cms/content_controller_rb.html +101 -0
  227. data/doc/app/files/app/controllers/cms/content_types_controller_rb.html +101 -0
  228. data/doc/app/files/app/controllers/cms/dashboard_controller_rb.html +101 -0
  229. data/doc/app/files/app/controllers/cms/dynamic_views_controller_rb.html +101 -0
  230. data/doc/app/files/app/controllers/cms/email_messages_controller_rb.html +101 -0
  231. data/doc/app/files/app/controllers/cms/error_handling_rb.html +101 -0
  232. data/doc/app/files/app/controllers/cms/file_blocks_controller_rb.html +101 -0
  233. data/doc/app/files/app/controllers/cms/groups_controller_rb.html +101 -0
  234. data/doc/app/files/app/controllers/cms/home_controller_rb.html +101 -0
  235. data/doc/app/files/app/controllers/cms/html_blocks_controller_rb.html +101 -0
  236. data/doc/app/files/app/controllers/cms/image_blocks_controller_rb.html +101 -0
  237. data/doc/app/files/app/controllers/cms/links_controller_rb.html +101 -0
  238. data/doc/app/files/app/controllers/cms/page_route_conditions_controller_rb.html +101 -0
  239. data/doc/app/files/app/controllers/cms/page_route_options_controller_rb.html +101 -0
  240. data/doc/app/files/app/controllers/cms/page_route_requirements_controller_rb.html +101 -0
  241. data/doc/app/files/app/controllers/cms/page_routes_controller_rb.html +101 -0
  242. data/doc/app/files/app/controllers/cms/pages_controller_rb.html +101 -0
  243. data/doc/app/files/app/controllers/cms/portlet_controller_rb.html +101 -0
  244. data/doc/app/files/app/controllers/cms/portlets_controller_rb.html +101 -0
  245. data/doc/app/files/app/controllers/cms/redirects_controller_rb.html +101 -0
  246. data/doc/app/files/app/controllers/cms/resource_controller_rb.html +108 -0
  247. data/doc/app/files/app/controllers/cms/routes_controller_rb.html +101 -0
  248. data/doc/app/files/app/controllers/cms/section_nodes_controller_rb.html +101 -0
  249. data/doc/app/files/app/controllers/cms/sections_controller_rb.html +101 -0
  250. data/doc/app/files/app/controllers/cms/sessions_controller_rb.html +107 -0
  251. data/doc/app/files/app/controllers/cms/tags_controller_rb.html +101 -0
  252. data/doc/app/files/app/controllers/cms/tasks_controller_rb.html +101 -0
  253. data/doc/app/files/app/controllers/cms/toolbar_controller_rb.html +101 -0
  254. data/doc/app/files/app/controllers/cms/users_controller_rb.html +101 -0
  255. data/doc/app/files/app/helpers/application_helper_rb.html +108 -0
  256. data/doc/app/files/app/helpers/cms/application_helper_rb.html +107 -0
  257. data/doc/app/files/app/helpers/cms/form_builder_rb.html +101 -0
  258. data/doc/app/files/app/helpers/cms/form_tag_helper_rb.html +101 -0
  259. data/doc/app/files/app/helpers/cms/menu_helper_rb.html +101 -0
  260. data/doc/app/files/app/helpers/cms/page_helper_rb.html +101 -0
  261. data/doc/app/files/app/helpers/cms/path_helper_rb.html +101 -0
  262. data/doc/app/files/app/helpers/cms/section_nodes_helper_rb.html +101 -0
  263. data/doc/app/files/app/models/abstract_file_block_rb.html +101 -0
  264. data/doc/app/files/app/models/attachment_rb.html +109 -0
  265. data/doc/app/files/app/models/category_rb.html +101 -0
  266. data/doc/app/files/app/models/category_type_rb.html +101 -0
  267. data/doc/app/files/app/models/connector_rb.html +101 -0
  268. data/doc/app/files/app/models/content_type_group_rb.html +101 -0
  269. data/doc/app/files/app/models/content_type_rb.html +101 -0
  270. data/doc/app/files/app/models/dynamic_view_rb.html +101 -0
  271. data/doc/app/files/app/models/email_message_mailer_rb.html +101 -0
  272. data/doc/app/files/app/models/email_message_rb.html +101 -0
  273. data/doc/app/files/app/models/file_block_rb.html +101 -0
  274. data/doc/app/files/app/models/group_permission_rb.html +101 -0
  275. data/doc/app/files/app/models/group_rb.html +101 -0
  276. data/doc/app/files/app/models/group_section_rb.html +101 -0
  277. data/doc/app/files/app/models/group_type_permission_rb.html +101 -0
  278. data/doc/app/files/app/models/group_type_rb.html +101 -0
  279. data/doc/app/files/app/models/guest_user_rb.html +101 -0
  280. data/doc/app/files/app/models/html_block_rb.html +101 -0
  281. data/doc/app/files/app/models/image_block_rb.html +101 -0
  282. data/doc/app/files/app/models/link_rb.html +101 -0
  283. data/doc/app/files/app/models/page_partial_rb.html +101 -0
  284. data/doc/app/files/app/models/page_rb.html +101 -0
  285. data/doc/app/files/app/models/page_route_condition_rb.html +101 -0
  286. data/doc/app/files/app/models/page_route_option_rb.html +101 -0
  287. data/doc/app/files/app/models/page_route_rb.html +101 -0
  288. data/doc/app/files/app/models/page_route_requirement_rb.html +101 -0
  289. data/doc/app/files/app/models/page_template_rb.html +101 -0
  290. data/doc/app/files/app/models/permission_rb.html +101 -0
  291. data/doc/app/files/app/models/portlet_rb.html +101 -0
  292. data/doc/app/files/app/models/redirect_rb.html +101 -0
  293. data/doc/app/files/app/models/section_node_rb.html +101 -0
  294. data/doc/app/files/app/models/section_rb.html +101 -0
  295. data/doc/app/files/app/models/site_rb.html +101 -0
  296. data/doc/app/files/app/models/tag_rb.html +101 -0
  297. data/doc/app/files/app/models/tagging_rb.html +101 -0
  298. data/doc/app/files/app/models/task_rb.html +101 -0
  299. data/doc/app/files/app/models/user_group_membership_rb.html +101 -0
  300. data/doc/app/files/app/models/user_rb.html +108 -0
  301. data/doc/app/files/app/portlets/dynamic_portlet_rb.html +101 -0
  302. data/doc/app/files/app/portlets/email_page_portlet_rb.html +101 -0
  303. data/doc/app/files/app/portlets/login_portlet_rb.html +101 -0
  304. data/doc/app/files/app/portlets/tag_cloud_portlet_rb.html +101 -0
  305. data/doc/app/files/doc/README_FOR_APP.html +127 -0
  306. data/doc/app/files/lib/acts_as_list_rb.html +101 -0
  307. data/doc/app/files/lib/browsercms_rb.html +113 -0
  308. data/doc/app/files/lib/cms/acts/content_block_rb.html +101 -0
  309. data/doc/app/files/lib/cms/authentication/controller_rb.html +101 -0
  310. data/doc/app/files/lib/cms/authentication/model_rb.html +101 -0
  311. data/doc/app/files/lib/cms/behaviors/archiving_rb.html +101 -0
  312. data/doc/app/files/lib/cms/behaviors/attaching_rb.html +101 -0
  313. data/doc/app/files/lib/cms/behaviors/categorizing_rb.html +101 -0
  314. data/doc/app/files/lib/cms/behaviors/connecting_rb.html +101 -0
  315. data/doc/app/files/lib/cms/behaviors/dynamic_attributes_rb.html +101 -0
  316. data/doc/app/files/lib/cms/behaviors/flush_cache_on_change_rb.html +101 -0
  317. data/doc/app/files/lib/cms/behaviors/hiding_rb.html +101 -0
  318. data/doc/app/files/lib/cms/behaviors/pagination_rb.html +107 -0
  319. data/doc/app/files/lib/cms/behaviors/publishing_rb.html +101 -0
  320. data/doc/app/files/lib/cms/behaviors/rendering_rb.html +101 -0
  321. data/doc/app/files/lib/cms/behaviors/searching_rb.html +101 -0
  322. data/doc/app/files/lib/cms/behaviors/soft_deleting_rb.html +101 -0
  323. data/doc/app/files/lib/cms/behaviors/taggable_rb.html +101 -0
  324. data/doc/app/files/lib/cms/behaviors/userstamping_rb.html +101 -0
  325. data/doc/app/files/lib/cms/behaviors/versioning_rb.html +101 -0
  326. data/doc/app/files/lib/cms/behaviors_rb.html +147 -0
  327. data/doc/app/files/lib/cms/caching_rb.html +101 -0
  328. data/doc/app/files/lib/cms/data_loader_rb.html +101 -0
  329. data/doc/app/files/lib/cms/extensions/action_view/base_rb.html +101 -0
  330. data/doc/app/files/lib/cms/extensions/active_record/base_rb.html +101 -0
  331. data/doc/app/files/lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements_rb.html +101 -0
  332. data/doc/app/files/lib/cms/extensions/active_record/errors_rb.html +101 -0
  333. data/doc/app/files/lib/cms/extensions/active_support/cache/file_store_rb.html +101 -0
  334. data/doc/app/files/lib/cms/extensions/hash_rb.html +101 -0
  335. data/doc/app/files/lib/cms/extensions/integer_rb.html +101 -0
  336. data/doc/app/files/lib/cms/extensions/nil_rb.html +101 -0
  337. data/doc/app/files/lib/cms/extensions/string_rb.html +101 -0
  338. data/doc/app/files/lib/cms/extensions_rb.html +101 -0
  339. data/doc/app/files/lib/cms/init_rb.html +101 -0
  340. data/doc/app/files/lib/cms/routes_rb.html +101 -0
  341. data/doc/app/files/lib/initial_data_rb.html +101 -0
  342. data/doc/app/files/lib/sequence_rb.html +101 -0
  343. data/doc/app/fr_class_index.html +205 -0
  344. data/doc/app/fr_file_index.html +152 -0
  345. data/doc/app/fr_method_index.html +738 -0
  346. data/doc/app/index.html +24 -0
  347. data/doc/app/rdoc-style.css +208 -0
  348. data/doc/guides/html/build_it_yourself.html +175 -0
  349. data/doc/guides/html/deployment_guide.html +181 -0
  350. data/doc/guides/html/designer_guide.html +153 -0
  351. data/doc/guides/html/developer_guide.html +266 -0
  352. data/doc/guides/html/files/javascripts/code_highlighter.js +188 -0
  353. data/doc/guides/html/files/javascripts/guides.js +7 -0
  354. data/doc/guides/html/files/javascripts/highlighters.js +90 -0
  355. data/doc/guides/html/files/stylesheets/main.css +441 -0
  356. data/doc/guides/html/files/stylesheets/reset.css +43 -0
  357. data/doc/guides/html/files/stylesheets/style.css +13 -0
  358. data/doc/guides/html/files/stylesheets/syntax.css +31 -0
  359. data/doc/guides/html/getting_started.html +181 -0
  360. data/doc/guides/html/images/bg.png +0 -0
  361. data/doc/guides/html/images/bottom_cap.png +0 -0
  362. data/doc/guides/html/images/browsercms_logo.png +0 -0
  363. data/doc/guides/html/images/dot.png +0 -0
  364. data/doc/guides/html/images/icons/README +5 -0
  365. data/doc/guides/html/images/icons/callouts/1.png +0 -0
  366. data/doc/guides/html/images/icons/callouts/10.png +0 -0
  367. data/doc/guides/html/images/icons/callouts/11.png +0 -0
  368. data/doc/guides/html/images/icons/callouts/12.png +0 -0
  369. data/doc/guides/html/images/icons/callouts/13.png +0 -0
  370. data/doc/guides/html/images/icons/callouts/14.png +0 -0
  371. data/doc/guides/html/images/icons/callouts/15.png +0 -0
  372. data/doc/guides/html/images/icons/callouts/2.png +0 -0
  373. data/doc/guides/html/images/icons/callouts/3.png +0 -0
  374. data/doc/guides/html/images/icons/callouts/4.png +0 -0
  375. data/doc/guides/html/images/icons/callouts/5.png +0 -0
  376. data/doc/guides/html/images/icons/callouts/6.png +0 -0
  377. data/doc/guides/html/images/icons/callouts/7.png +0 -0
  378. data/doc/guides/html/images/icons/callouts/8.png +0 -0
  379. data/doc/guides/html/images/icons/callouts/9.png +0 -0
  380. data/doc/guides/html/images/icons/caution.png +0 -0
  381. data/doc/guides/html/images/icons/example.png +0 -0
  382. data/doc/guides/html/images/icons/home.png +0 -0
  383. data/doc/guides/html/images/icons/important.png +0 -0
  384. data/doc/guides/html/images/icons/next.png +0 -0
  385. data/doc/guides/html/images/icons/note.png +0 -0
  386. data/doc/guides/html/images/icons/prev.png +0 -0
  387. data/doc/guides/html/images/icons/tip.png +0 -0
  388. data/doc/guides/html/images/icons/up.png +0 -0
  389. data/doc/guides/html/images/icons/warning.png +0 -0
  390. data/doc/guides/html/images/top_cap.png +0 -0
  391. data/doc/guides/html/images/top_cap_content.png +0 -0
  392. data/doc/guides/html/index.html +168 -0
  393. data/doc/guides/html/installing_modules.html +181 -0
  394. data/doc/guides/html/user_guide.html +266 -0
  395. data/lib/cms/behaviors/attaching.rb +1 -1
  396. data/lib/cms/behaviors/rendering.rb +1 -1
  397. data/lib/cms/behaviors/taggable.rb +2 -1
  398. data/lib/cms/behaviors/versioning.rb +1 -1
  399. data/lib/cms/init.rb +4 -4
  400. data/lib/tasks/cms.rake +16 -42
  401. data/public/images/cms/buttons/button_cap_off_middle.gif +0 -0
  402. data/public/images/cms/buttons/button_left_bg.png +0 -0
  403. data/public/images/cms/buttons/button_off_middle.png +0 -0
  404. data/public/images/cms/nav_admin.gif +0 -0
  405. data/public/images/cms/nav_admin_h.gif +0 -0
  406. data/public/images/cms/nav_admin_on.gif +0 -0
  407. data/public/images/cms/nav_content_library.gif +0 -0
  408. data/public/images/cms/nav_content_library_h.gif +0 -0
  409. data/public/images/cms/nav_content_library_on.gif +0 -0
  410. data/public/images/cms/nav_dash.gif +0 -0
  411. data/public/images/cms/nav_dash_h.gif +0 -0
  412. data/public/images/cms/nav_dash_on.gif +0 -0
  413. data/public/images/cms/nav_sitemap.gif +0 -0
  414. data/public/images/cms/nav_sitemap_h.gif +0 -0
  415. data/public/images/cms/nav_sitemap_on.gif +0 -0
  416. data/public/stylesheets/cms/administration.css +91 -91
  417. data/public/stylesheets/cms/block.css +25 -25
  418. data/public/stylesheets/cms/buttons.css +120 -111
  419. data/public/stylesheets/cms/content_library.css +2 -1
  420. data/public/stylesheets/cms/content_types.css +3 -3
  421. data/public/stylesheets/cms/dashboard.css +118 -118
  422. data/public/stylesheets/cms/data_table.css +155 -155
  423. data/public/stylesheets/cms/form_layout.css +269 -269
  424. data/public/stylesheets/cms/jquery.contextMenu.css +61 -61
  425. data/public/stylesheets/cms/login.css +77 -77
  426. data/public/stylesheets/cms/menu.css +116 -116
  427. data/public/stylesheets/cms/nav.css +98 -111
  428. data/public/stylesheets/cms/page_toolbar.css +134 -134
  429. data/public/stylesheets/cms/sitemap.css +31 -15
  430. data/rails_generators/content_block/content_block_generator.rb +4 -9
  431. data/rails_generators/content_block/templates/_form.html.erb +3 -1
  432. data/rails_generators/portlet/portlet_generator.rb +2 -6
  433. data/rails_generators/portlet/templates/_form.html.erb +1 -0
  434. data/templates/blank.rb +30 -0
  435. data/templates/demo.rb +28 -0
  436. data/templates/module.rb +945 -0
  437. data/test/functional/cms/connectors_controller_test.rb +12 -1
  438. data/test/functional/cms/portlets_controller_test.rb +10 -0
  439. data/test/unit/behaviors/taggable_test.rb +19 -0
  440. data/test/unit/helpers/menu_helper_test.rb +72 -1
  441. data/test/unit/lib/generators_test.rb +21 -3
  442. data/test/unit/models/connector_test.rb +16 -0
  443. data/test/unit/models/sections_test.rb +4 -0
  444. metadata +380 -2
@@ -0,0 +1,670 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Module: Cms::Behaviors::Attaching::InstanceMethods</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Module</strong></td>
53
+ <td class="class-name-in-header">Cms::Behaviors::Attaching::InstanceMethods</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../../../files/lib/cms/behaviors/attaching_rb.html">
59
+ lib/cms/behaviors/attaching.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ </table>
66
+ </div>
67
+ <!-- banner header -->
68
+
69
+ <div id="bodyContent">
70
+
71
+
72
+
73
+ <div id="contextContent">
74
+
75
+
76
+
77
+ </div>
78
+
79
+ <div id="method-list">
80
+ <h3 class="section-bar">Methods</h3>
81
+
82
+ <div class="name-list">
83
+ <a href="#M000449">after_as_of_version</a>&nbsp;&nbsp;
84
+ <a href="#M000447">after_publish</a>&nbsp;&nbsp;
85
+ <a href="#M000432">attachment_file</a>&nbsp;&nbsp;
86
+ <a href="#M000433">attachment_file=</a>&nbsp;&nbsp;
87
+ <a href="#M000434">attachment_file_name</a>&nbsp;&nbsp;
88
+ <a href="#M000435">attachment_file_path</a>&nbsp;&nbsp;
89
+ <a href="#M000436">attachment_file_path=</a>&nbsp;&nbsp;
90
+ <a href="#M000450">attachment_link</a>&nbsp;&nbsp;
91
+ <a href="#M000439">attachment_section</a>&nbsp;&nbsp;
92
+ <a href="#M000440">attachment_section=</a>&nbsp;&nbsp;
93
+ <a href="#M000437">attachment_section_id</a>&nbsp;&nbsp;
94
+ <a href="#M000438">attachment_section_id=</a>&nbsp;&nbsp;
95
+ <a href="#M000442">clear_attachment_ivars</a>&nbsp;&nbsp;
96
+ <a href="#M000451">dirty!</a>&nbsp;&nbsp;
97
+ <a href="#M000448">file_size</a>&nbsp;&nbsp;
98
+ <a href="#M000441">process_attachment</a>&nbsp;&nbsp;
99
+ <a href="#M000445">sanitize_file_path</a>&nbsp;&nbsp;
100
+ <a href="#M000444">set_attachment_file_path</a>&nbsp;&nbsp;
101
+ <a href="#M000443">set_attachment_section</a>&nbsp;&nbsp;
102
+ <a href="#M000446">update_attachment_if_changed</a>&nbsp;&nbsp;
103
+ </div>
104
+ </div>
105
+
106
+ </div>
107
+
108
+
109
+ <!-- if includes -->
110
+
111
+ <div id="section">
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+
120
+ <!-- if method_list -->
121
+ <div id="methods">
122
+ <h3 class="section-bar">Public Instance methods</h3>
123
+
124
+ <div id="method-M000449" class="method-detail">
125
+ <a name="M000449"></a>
126
+
127
+ <div class="method-heading">
128
+ <a href="#M000449" class="method-signature">
129
+ <span class="method-name">after_as_of_version</span><span class="method-args">()</span>
130
+ </a>
131
+ </div>
132
+
133
+ <div class="method-description">
134
+ <p><a class="source-toggle" href="#"
135
+ onclick="toggleCode('M000449-source');return false;">[Source]</a></p>
136
+ <div class="method-source-code" id="M000449-source">
137
+ <pre>
138
+ <span class="ruby-comment cmt"># File lib/cms/behaviors/attaching.rb, line 160</span>
139
+ 160: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">after_as_of_version</span>
140
+ 161: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attachment_id</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">attachment_version</span>
141
+ 162: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">attachment</span> = <span class="ruby-constant">Attachment</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">attachment_id</span>).<span class="ruby-identifier">as_of_version</span>(<span class="ruby-identifier">attachment_version</span>)
142
+ 163: <span class="ruby-keyword kw">end</span>
143
+ 164: <span class="ruby-keyword kw">end</span>
144
+ </pre>
145
+ </div>
146
+ </div>
147
+ </div>
148
+
149
+ <div id="method-M000447" class="method-detail">
150
+ <a name="M000447"></a>
151
+
152
+ <div class="method-heading">
153
+ <a href="#M000447" class="method-signature">
154
+ <span class="method-name">after_publish</span><span class="method-args">()</span>
155
+ </a>
156
+ </div>
157
+
158
+ <div class="method-description">
159
+ <p><a class="source-toggle" href="#"
160
+ onclick="toggleCode('M000447-source');return false;">[Source]</a></p>
161
+ <div class="method-source-code" id="M000447-source">
162
+ <pre>
163
+ <span class="ruby-comment cmt"># File lib/cms/behaviors/attaching.rb, line 151</span>
164
+ 151: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">after_publish</span>
165
+ 152: <span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">publish</span>
166
+ 153: <span class="ruby-keyword kw">end</span>
167
+ </pre>
168
+ </div>
169
+ </div>
170
+ </div>
171
+
172
+ <div id="method-M000432" class="method-detail">
173
+ <a name="M000432"></a>
174
+
175
+ <div class="method-heading">
176
+ <a href="#M000432" class="method-signature">
177
+ <span class="method-name">attachment_file</span><span class="method-args">()</span>
178
+ </a>
179
+ </div>
180
+
181
+ <div class="method-description">
182
+ <p><a class="source-toggle" href="#"
183
+ onclick="toggleCode('M000432-source');return false;">[Source]</a></p>
184
+ <div class="method-source-code" id="M000432-source">
185
+ <pre>
186
+ <span class="ruby-comment cmt"># File lib/cms/behaviors/attaching.rb, line 36</span>
187
+ 36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attachment_file</span>
188
+ 37: <span class="ruby-ivar">@attachment_file</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">attachment</span> <span class="ruby-value">? </span><span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">temp_file</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
189
+ 38: <span class="ruby-keyword kw">end</span>
190
+ </pre>
191
+ </div>
192
+ </div>
193
+ </div>
194
+
195
+ <div id="method-M000433" class="method-detail">
196
+ <a name="M000433"></a>
197
+
198
+ <div class="method-heading">
199
+ <a href="#M000433" class="method-signature">
200
+ <span class="method-name">attachment_file=</span><span class="method-args">(file)</span>
201
+ </a>
202
+ </div>
203
+
204
+ <div class="method-description">
205
+ <p><a class="source-toggle" href="#"
206
+ onclick="toggleCode('M000433-source');return false;">[Source]</a></p>
207
+ <div class="method-source-code" id="M000433-source">
208
+ <pre>
209
+ <span class="ruby-comment cmt"># File lib/cms/behaviors/attaching.rb, line 40</span>
210
+ 40: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attachment_file=</span>(<span class="ruby-identifier">file</span>)
211
+ 41: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attachment_file</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">file</span>
212
+ 42: <span class="ruby-identifier">dirty!</span>
213
+ 43: <span class="ruby-ivar">@attachment_file</span> = <span class="ruby-identifier">file</span>
214
+ 44: <span class="ruby-keyword kw">end</span>
215
+ 45: <span class="ruby-keyword kw">end</span>
216
+ </pre>
217
+ </div>
218
+ </div>
219
+ </div>
220
+
221
+ <div id="method-M000434" class="method-detail">
222
+ <a name="M000434"></a>
223
+
224
+ <div class="method-heading">
225
+ <a href="#M000434" class="method-signature">
226
+ <span class="method-name">attachment_file_name</span><span class="method-args">()</span>
227
+ </a>
228
+ </div>
229
+
230
+ <div class="method-description">
231
+ <p><a class="source-toggle" href="#"
232
+ onclick="toggleCode('M000434-source');return false;">[Source]</a></p>
233
+ <div class="method-source-code" id="M000434-source">
234
+ <pre>
235
+ <span class="ruby-comment cmt"># File lib/cms/behaviors/attaching.rb, line 47</span>
236
+ 47: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attachment_file_name</span>
237
+ 48: <span class="ruby-ivar">@attachment_file_name</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">attachment</span> <span class="ruby-value">? </span><span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">file_name</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
238
+ 49: <span class="ruby-keyword kw">end</span>
239
+ </pre>
240
+ </div>
241
+ </div>
242
+ </div>
243
+
244
+ <div id="method-M000435" class="method-detail">
245
+ <a name="M000435"></a>
246
+
247
+ <div class="method-heading">
248
+ <a href="#M000435" class="method-signature">
249
+ <span class="method-name">attachment_file_path</span><span class="method-args">()</span>
250
+ </a>
251
+ </div>
252
+
253
+ <div class="method-description">
254
+ <p><a class="source-toggle" href="#"
255
+ onclick="toggleCode('M000435-source');return false;">[Source]</a></p>
256
+ <div class="method-source-code" id="M000435-source">
257
+ <pre>
258
+ <span class="ruby-comment cmt"># File lib/cms/behaviors/attaching.rb, line 51</span>
259
+ 51: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attachment_file_path</span>
260
+ 52: <span class="ruby-ivar">@attachment_file_path</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">attachment</span> <span class="ruby-value">? </span><span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">file_path</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
261
+ 53: <span class="ruby-keyword kw">end</span>
262
+ </pre>
263
+ </div>
264
+ </div>
265
+ </div>
266
+
267
+ <div id="method-M000436" class="method-detail">
268
+ <a name="M000436"></a>
269
+
270
+ <div class="method-heading">
271
+ <a href="#M000436" class="method-signature">
272
+ <span class="method-name">attachment_file_path=</span><span class="method-args">(file_path)</span>
273
+ </a>
274
+ </div>
275
+
276
+ <div class="method-description">
277
+ <p><a class="source-toggle" href="#"
278
+ onclick="toggleCode('M000436-source');return false;">[Source]</a></p>
279
+ <div class="method-source-code" id="M000436-source">
280
+ <pre>
281
+ <span class="ruby-comment cmt"># File lib/cms/behaviors/attaching.rb, line 55</span>
282
+ 55: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attachment_file_path=</span>(<span class="ruby-identifier">file_path</span>)
283
+ 56: <span class="ruby-identifier">fp</span> = <span class="ruby-identifier">sanitize_file_path</span>(<span class="ruby-identifier">file_path</span>)
284
+ 57: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attachment_file_path</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">fp</span>
285
+ 58: <span class="ruby-identifier">dirty!</span>
286
+ 59: <span class="ruby-ivar">@attachment_file_path</span> = <span class="ruby-identifier">fp</span>
287
+ 60: <span class="ruby-keyword kw">end</span>
288
+ 61: <span class="ruby-keyword kw">end</span>
289
+ </pre>
290
+ </div>
291
+ </div>
292
+ </div>
293
+
294
+ <div id="method-M000450" class="method-detail">
295
+ <a name="M000450"></a>
296
+
297
+ <div class="method-heading">
298
+ <a href="#M000450" class="method-signature">
299
+ <span class="method-name">attachment_link</span><span class="method-args">()</span>
300
+ </a>
301
+ </div>
302
+
303
+ <div class="method-description">
304
+ <p><a class="source-toggle" href="#"
305
+ onclick="toggleCode('M000450-source');return false;">[Source]</a></p>
306
+ <div class="method-source-code" id="M000450-source">
307
+ <pre>
308
+ <span class="ruby-comment cmt"># File lib/cms/behaviors/attaching.rb, line 166</span>
309
+ 166: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attachment_link</span>
310
+ 167: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attachment</span>
311
+ 168: (<span class="ruby-identifier">published?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">live_version?</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">attachment_file_path</span> <span class="ruby-operator">:</span> <span class="ruby-node">&quot;/cms/attachments/#{attachment_id}?version=#{attachment_version}&quot;</span>
312
+ 169: <span class="ruby-keyword kw">else</span>
313
+ 170: <span class="ruby-keyword kw">nil</span>
314
+ 171: <span class="ruby-keyword kw">end</span>
315
+ 172: <span class="ruby-keyword kw">end</span>
316
+ </pre>
317
+ </div>
318
+ </div>
319
+ </div>
320
+
321
+ <div id="method-M000439" class="method-detail">
322
+ <a name="M000439"></a>
323
+
324
+ <div class="method-heading">
325
+ <a href="#M000439" class="method-signature">
326
+ <span class="method-name">attachment_section</span><span class="method-args">()</span>
327
+ </a>
328
+ </div>
329
+
330
+ <div class="method-description">
331
+ <p><a class="source-toggle" href="#"
332
+ onclick="toggleCode('M000439-source');return false;">[Source]</a></p>
333
+ <div class="method-source-code" id="M000439-source">
334
+ <pre>
335
+ <span class="ruby-comment cmt"># File lib/cms/behaviors/attaching.rb, line 74</span>
336
+ 74: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attachment_section</span>
337
+ 75: <span class="ruby-ivar">@attachment_section</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">attachment</span> <span class="ruby-value">? </span><span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">section</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
338
+ 76: <span class="ruby-keyword kw">end</span>
339
+ </pre>
340
+ </div>
341
+ </div>
342
+ </div>
343
+
344
+ <div id="method-M000440" class="method-detail">
345
+ <a name="M000440"></a>
346
+
347
+ <div class="method-heading">
348
+ <a href="#M000440" class="method-signature">
349
+ <span class="method-name">attachment_section=</span><span class="method-args">(section)</span>
350
+ </a>
351
+ </div>
352
+
353
+ <div class="method-description">
354
+ <p><a class="source-toggle" href="#"
355
+ onclick="toggleCode('M000440-source');return false;">[Source]</a></p>
356
+ <div class="method-source-code" id="M000440-source">
357
+ <pre>
358
+ <span class="ruby-comment cmt"># File lib/cms/behaviors/attaching.rb, line 78</span>
359
+ 78: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attachment_section=</span>(<span class="ruby-identifier">section</span>)
360
+ 79: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attachment_section</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">section</span>
361
+ 80: <span class="ruby-identifier">dirty!</span>
362
+ 81: <span class="ruby-ivar">@attachment_section_id</span> = <span class="ruby-identifier">section</span> <span class="ruby-value">? </span><span class="ruby-identifier">section</span>.<span class="ruby-identifier">id</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
363
+ 82: <span class="ruby-ivar">@attachment_section</span> = <span class="ruby-identifier">section</span>
364
+ 83: <span class="ruby-keyword kw">end</span>
365
+ 84: <span class="ruby-keyword kw">end</span>
366
+ </pre>
367
+ </div>
368
+ </div>
369
+ </div>
370
+
371
+ <div id="method-M000437" class="method-detail">
372
+ <a name="M000437"></a>
373
+
374
+ <div class="method-heading">
375
+ <a href="#M000437" class="method-signature">
376
+ <span class="method-name">attachment_section_id</span><span class="method-args">()</span>
377
+ </a>
378
+ </div>
379
+
380
+ <div class="method-description">
381
+ <p><a class="source-toggle" href="#"
382
+ onclick="toggleCode('M000437-source');return false;">[Source]</a></p>
383
+ <div class="method-source-code" id="M000437-source">
384
+ <pre>
385
+ <span class="ruby-comment cmt"># File lib/cms/behaviors/attaching.rb, line 63</span>
386
+ 63: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attachment_section_id</span>
387
+ 64: <span class="ruby-ivar">@attachment_section_id</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">attachment</span> <span class="ruby-value">? </span><span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">section_id</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
388
+ 65: <span class="ruby-keyword kw">end</span>
389
+ </pre>
390
+ </div>
391
+ </div>
392
+ </div>
393
+
394
+ <div id="method-M000438" class="method-detail">
395
+ <a name="M000438"></a>
396
+
397
+ <div class="method-heading">
398
+ <a href="#M000438" class="method-signature">
399
+ <span class="method-name">attachment_section_id=</span><span class="method-args">(section_id)</span>
400
+ </a>
401
+ </div>
402
+
403
+ <div class="method-description">
404
+ <p><a class="source-toggle" href="#"
405
+ onclick="toggleCode('M000438-source');return false;">[Source]</a></p>
406
+ <div class="method-source-code" id="M000438-source">
407
+ <pre>
408
+ <span class="ruby-comment cmt"># File lib/cms/behaviors/attaching.rb, line 67</span>
409
+ 67: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attachment_section_id=</span>(<span class="ruby-identifier">section_id</span>)
410
+ 68: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attachment_section_id</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">section_id</span>
411
+ 69: <span class="ruby-identifier">dirty!</span>
412
+ 70: <span class="ruby-ivar">@attachment_section_id</span> = <span class="ruby-identifier">section_id</span>
413
+ 71: <span class="ruby-keyword kw">end</span>
414
+ 72: <span class="ruby-keyword kw">end</span>
415
+ </pre>
416
+ </div>
417
+ </div>
418
+ </div>
419
+
420
+ <div id="method-M000442" class="method-detail">
421
+ <a name="M000442"></a>
422
+
423
+ <div class="method-heading">
424
+ <a href="#M000442" class="method-signature">
425
+ <span class="method-name">clear_attachment_ivars</span><span class="method-args">()</span>
426
+ </a>
427
+ </div>
428
+
429
+ <div class="method-description">
430
+ <p><a class="source-toggle" href="#"
431
+ onclick="toggleCode('M000442-source');return false;">[Source]</a></p>
432
+ <div class="method-source-code" id="M000442-source">
433
+ <pre>
434
+ <span class="ruby-comment cmt"># File lib/cms/behaviors/attaching.rb, line 112</span>
435
+ 112: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear_attachment_ivars</span>
436
+ 113: <span class="ruby-ivar">@attachment_file</span> = <span class="ruby-keyword kw">nil</span>
437
+ 114: <span class="ruby-ivar">@attachment_file_path</span> = <span class="ruby-keyword kw">nil</span>
438
+ 115: <span class="ruby-ivar">@attachment_section_id</span> = <span class="ruby-keyword kw">nil</span>
439
+ 116: <span class="ruby-ivar">@attachment_section</span> = <span class="ruby-keyword kw">nil</span>
440
+ 117: <span class="ruby-keyword kw">end</span>
441
+ </pre>
442
+ </div>
443
+ </div>
444
+ </div>
445
+
446
+ <div id="method-M000451" class="method-detail">
447
+ <a name="M000451"></a>
448
+
449
+ <div class="method-heading">
450
+ <a href="#M000451" class="method-signature">
451
+ <span class="method-name">dirty!</span><span class="method-args">()</span>
452
+ </a>
453
+ </div>
454
+
455
+ <div class="method-description">
456
+ <p>
457
+ Forces this record to be changed, even if nothing has changed This is
458
+ necessary if just the section.id has changed, for example
459
+ </p>
460
+ <p><a class="source-toggle" href="#"
461
+ onclick="toggleCode('M000451-source');return false;">[Source]</a></p>
462
+ <div class="method-source-code" id="M000451-source">
463
+ <pre>
464
+ <span class="ruby-comment cmt"># File lib/cms/behaviors/attaching.rb, line 176</span>
465
+ 176: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dirty!</span>
466
+ 177: <span class="ruby-comment cmt"># Seems like a hack, is there a better way?</span>
467
+ 178: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">updated_at</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>
468
+ 179: <span class="ruby-keyword kw">end</span>
469
+ </pre>
470
+ </div>
471
+ </div>
472
+ </div>
473
+
474
+ <div id="method-M000448" class="method-detail">
475
+ <a name="M000448"></a>
476
+
477
+ <div class="method-heading">
478
+ <a href="#M000448" class="method-signature">
479
+ <span class="method-name">file_size</span><span class="method-args">()</span>
480
+ </a>
481
+ </div>
482
+
483
+ <div class="method-description">
484
+ <p>
485
+ Size in kilobytes
486
+ </p>
487
+ <p><a class="source-toggle" href="#"
488
+ onclick="toggleCode('M000448-source');return false;">[Source]</a></p>
489
+ <div class="method-source-code" id="M000448-source">
490
+ <pre>
491
+ <span class="ruby-comment cmt"># File lib/cms/behaviors/attaching.rb, line 156</span>
492
+ 156: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">file_size</span>
493
+ 157: <span class="ruby-identifier">attachment</span> <span class="ruby-value">? </span><span class="ruby-value str">&quot;%0.2f&quot;</span> <span class="ruby-operator">%</span> (<span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">file_size</span> <span class="ruby-operator">/</span> <span class="ruby-value">1024.0</span>) <span class="ruby-operator">:</span> <span class="ruby-value str">&quot;?&quot;</span>
494
+ 158: <span class="ruby-keyword kw">end</span>
495
+ </pre>
496
+ </div>
497
+ </div>
498
+ </div>
499
+
500
+ <div id="method-M000441" class="method-detail">
501
+ <a name="M000441"></a>
502
+
503
+ <div class="method-heading">
504
+ <a href="#M000441" class="method-signature">
505
+ <span class="method-name">process_attachment</span><span class="method-args">()</span>
506
+ </a>
507
+ </div>
508
+
509
+ <div class="method-description">
510
+ <p><a class="source-toggle" href="#"
511
+ onclick="toggleCode('M000441-source');return false;">[Source]</a></p>
512
+ <div class="method-source-code" id="M000441-source">
513
+ <pre>
514
+ <span class="ruby-comment cmt"># File lib/cms/behaviors/attaching.rb, line 86</span>
515
+ 86: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process_attachment</span>
516
+ 87: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">attachment_file</span>.<span class="ruby-identifier">blank?</span>
517
+ 88: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">attachment_file_path</span>.<span class="ruby-identifier">blank?</span>
518
+ 89: <span class="ruby-identifier">errors</span>.<span class="ruby-identifier">add</span>(<span class="ruby-identifier">:attachment_file</span>, <span class="ruby-value str">&quot;You must upload a file&quot;</span>)
519
+ 90: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
520
+ 91: <span class="ruby-keyword kw">end</span>
521
+ 92: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">attachment_section_id</span>.<span class="ruby-identifier">blank?</span>
522
+ 93: <span class="ruby-identifier">errors</span>.<span class="ruby-identifier">add</span>(<span class="ruby-identifier">:attachment_file</span>, <span class="ruby-value str">&quot;You must upload a file&quot;</span>)
523
+ 94: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
524
+ 95: <span class="ruby-keyword kw">end</span>
525
+ 96: <span class="ruby-keyword kw">else</span>
526
+ 97: <span class="ruby-identifier">build_attachment</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">nil?</span>
527
+ 98: <span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">temp_file</span> = <span class="ruby-identifier">attachment_file</span>
528
+ 99: <span class="ruby-identifier">set_attachment_file_path</span>
529
+ 100: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">file_path</span>.<span class="ruby-identifier">blank?</span>
530
+ 101: <span class="ruby-identifier">errors</span>.<span class="ruby-identifier">add</span>(<span class="ruby-identifier">:attachment_file_path</span>, <span class="ruby-value str">&quot;File Name is required for attachment&quot;</span>)
531
+ 102: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
532
+ 103: <span class="ruby-keyword kw">end</span>
533
+ 104: <span class="ruby-identifier">set_attachment_section</span>
534
+ 105: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">section_id</span>.<span class="ruby-identifier">blank?</span>
535
+ 106: <span class="ruby-identifier">errors</span>.<span class="ruby-identifier">add</span>(<span class="ruby-identifier">:attachment_file</span>, <span class="ruby-value str">&quot;Section is required for attachment&quot;</span>)
536
+ 107: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
537
+ 108: <span class="ruby-keyword kw">end</span>
538
+ 109: <span class="ruby-keyword kw">end</span>
539
+ 110: <span class="ruby-keyword kw">end</span>
540
+ </pre>
541
+ </div>
542
+ </div>
543
+ </div>
544
+
545
+ <div id="method-M000445" class="method-detail">
546
+ <a name="M000445"></a>
547
+
548
+ <div class="method-heading">
549
+ <a href="#M000445" class="method-signature">
550
+ <span class="method-name">sanitize_file_path</span><span class="method-args">(file_path)</span>
551
+ </a>
552
+ </div>
553
+
554
+ <div class="method-description">
555
+ <p><a class="source-toggle" href="#"
556
+ onclick="toggleCode('M000445-source');return false;">[Source]</a></p>
557
+ <div class="method-source-code" id="M000445-source">
558
+ <pre>
559
+ <span class="ruby-comment cmt"># File lib/cms/behaviors/attaching.rb, line 133</span>
560
+ 133: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sanitize_file_path</span>(<span class="ruby-identifier">file_path</span>)
561
+ 134: <span class="ruby-constant">SANITIZATION_REGEXES</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-identifier">file_path</span>.<span class="ruby-identifier">to_s</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span>, (<span class="ruby-identifier">regex</span>, <span class="ruby-identifier">replace</span>)<span class="ruby-operator">|</span>
562
+ 135: <span class="ruby-identifier">s</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-identifier">regex</span>, <span class="ruby-identifier">replace</span>)
563
+ 136: <span class="ruby-keyword kw">end</span>
564
+ 137: <span class="ruby-keyword kw">end</span>
565
+ </pre>
566
+ </div>
567
+ </div>
568
+ </div>
569
+
570
+ <div id="method-M000444" class="method-detail">
571
+ <a name="M000444"></a>
572
+
573
+ <div class="method-heading">
574
+ <a href="#M000444" class="method-signature">
575
+ <span class="method-name">set_attachment_file_path</span><span class="method-args">()</span>
576
+ </a>
577
+ </div>
578
+
579
+ <div class="method-description">
580
+ <p>
581
+ Override this method if you would like to override the way file_path is set
582
+ </p>
583
+ <p><a class="source-toggle" href="#"
584
+ onclick="toggleCode('M000444-source');return false;">[Source]</a></p>
585
+ <div class="method-source-code" id="M000444-source">
586
+ <pre>
587
+ <span class="ruby-comment cmt"># File lib/cms/behaviors/attaching.rb, line 127</span>
588
+ 127: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_attachment_file_path</span>
589
+ 128: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">new_record?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">attachment_file</span>.<span class="ruby-identifier">blank?</span>
590
+ 129: <span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">file_path</span> = <span class="ruby-node">&quot;/attachments/#{File.basename(attachment_file.original_filename).to_s.downcase}&quot;</span>
591
+ 130: <span class="ruby-keyword kw">end</span>
592
+ 131: <span class="ruby-keyword kw">end</span>
593
+ </pre>
594
+ </div>
595
+ </div>
596
+ </div>
597
+
598
+ <div id="method-M000443" class="method-detail">
599
+ <a name="M000443"></a>
600
+
601
+ <div class="method-heading">
602
+ <a href="#M000443" class="method-signature">
603
+ <span class="method-name">set_attachment_section</span><span class="method-args">()</span>
604
+ </a>
605
+ </div>
606
+
607
+ <div class="method-description">
608
+ <p>
609
+ Override this method if you would like to override the way the section is
610
+ set
611
+ </p>
612
+ <p><a class="source-toggle" href="#"
613
+ onclick="toggleCode('M000443-source');return false;">[Source]</a></p>
614
+ <div class="method-source-code" id="M000443-source">
615
+ <pre>
616
+ <span class="ruby-comment cmt"># File lib/cms/behaviors/attaching.rb, line 120</span>
617
+ 120: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_attachment_section</span>
618
+ 121: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">new_record?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">attachment_file</span>.<span class="ruby-identifier">blank?</span>
619
+ 122: <span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">section</span> = <span class="ruby-constant">Section</span>.<span class="ruby-identifier">root</span>.<span class="ruby-identifier">first</span>
620
+ 123: <span class="ruby-keyword kw">end</span>
621
+ 124: <span class="ruby-keyword kw">end</span>
622
+ </pre>
623
+ </div>
624
+ </div>
625
+ </div>
626
+
627
+ <div id="method-M000446" class="method-detail">
628
+ <a name="M000446"></a>
629
+
630
+ <div class="method-heading">
631
+ <a href="#M000446" class="method-signature">
632
+ <span class="method-name">update_attachment_if_changed</span><span class="method-args">()</span>
633
+ </a>
634
+ </div>
635
+
636
+ <div class="method-description">
637
+ <p><a class="source-toggle" href="#"
638
+ onclick="toggleCode('M000446-source');return false;">[Source]</a></p>
639
+ <div class="method-source-code" id="M000446-source">
640
+ <pre>
641
+ <span class="ruby-comment cmt"># File lib/cms/behaviors/attaching.rb, line 139</span>
642
+ 139: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update_attachment_if_changed</span>
643
+ 140: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attachment</span>
644
+ 141: <span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">archived</span> = <span class="ruby-identifier">archived</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">archivable?</span>
645
+ 142: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:revert_to_version</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">revert_to_version</span>
646
+ 143: <span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">revert_to</span>(<span class="ruby-identifier">revert_to_version</span>.<span class="ruby-identifier">attachment_version</span>)
647
+ 144: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">new_record?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">changed?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">temp_file</span>
648
+ 145: <span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">save</span>
649
+ 146: <span class="ruby-keyword kw">end</span>
650
+ 147: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">attachment_version</span> = <span class="ruby-identifier">attachment</span>.<span class="ruby-identifier">draft</span>.<span class="ruby-identifier">version</span>
651
+ 148: <span class="ruby-keyword kw">end</span>
652
+ 149: <span class="ruby-keyword kw">end</span>
653
+ </pre>
654
+ </div>
655
+ </div>
656
+ </div>
657
+
658
+
659
+ </div>
660
+
661
+
662
+ </div>
663
+
664
+
665
+ <div id="validator-badges">
666
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
667
+ </div>
668
+
669
+ </body>
670
+ </html>