tablatom / hobo

The web app builder for Rails

hobo / hobo / CHANGES.txt
170b954f » bryanlarsen 2009-10-23 update CHANGES 1 === Upgrading to a new version of Hobo ===
2
3 Once you have installed a new version of Hobo, you may wish to run
4
5 rake hobo:run_standard_generators
6
16ba3002 » bryanlarsen 2009-11-19 add hobo:run_invite_only_ge... 7 or
8
9 rake hobo:run_invite_only_generators
10
170b954f » bryanlarsen 2009-10-23 update CHANGES 11 This will run all of the standard generators, and pull in any bug
12 fixes or enhancements to generated code. Note that this is quite
13 likely to cause conflicts, so it is highly recommended that you have
14 your code backed up and in a change control system such as git or
15 subversion.
16
88c284bd » bryanlarsen 2009-12-14 [#537 state:resolved] updat... 17 === Hobo Edge ===
18
1d8b5a9c » bryanlarsen 2009-12-29 [#592 state:resolved] [#436... 19 [#537](https://hobo.lighthouseapp.com/projects/8324/tickets/537):
88c284bd » bryanlarsen 2009-12-14 [#537 state:resolved] updat... 20
1d8b5a9c » bryanlarsen 2009-12-29 [#592 state:resolved] [#436... 21 `x._?.to_s` now returns nil rather than a blank string
22
7bc76c4d » bryanlarsen 2010-01-03 comments 23 [#592](https://hobo.lighthouseapp.com/projects/8324/tickets/592):
1d8b5a9c » bryanlarsen 2009-12-29 [#592 state:resolved] [#436... 24
25 If you previously had a snippet such as this:
26
27 <table fields="this, date, account.login">
28 <login-view:>
29 ...
30 </login-view:>
31 </table>
7d84febd » bryanlarsen 2009-12-09 [#542] port hjq-input-many ... 32
1d8b5a9c » bryanlarsen 2009-12-29 [#592 state:resolved] [#436... 33 You now have to use:
34
35 <table fields="this, date, account.login">
36 <account-login-view:>
37 ...
38 </account-login-view:>
39 </table>
40
41 The same change has been applied to `<field-list>`
42
43 === Hobo 0.9.103 (AKA 1.0.RC2) ===
8ebd8570 » bryanlarsen 2009-12-09 CHANGES formatting 44
45 ### Warning
46
47 If you are on Rails 2.3.5 and are running Hobo as a plugin,
ea99f10b » bryanlarsen 2009-12-09 [#574] Add notice to CHANGE... 48 please check out bug
49 [#574](https://hobo.lighthouseapp.com/projects/8324/tickets/574-rails-235-b0rks-our-rake-tasks-running-on-edge-hobo)
50 for a workaround you need to apply to your Rakefile.
51
7bc76c4d » bryanlarsen 2010-01-03 comments 52 NOTE: fixed in 0.9.104
53
8ebd8570 » bryanlarsen 2009-12-09 CHANGES formatting 54 ### Bugs
55
7d84febd » bryanlarsen 2009-12-09 [#542] port hjq-input-many ... 56 This release fixes a couple of serious bugs:
57 [565](https://hobo.lighthouseapp.com/projects/8324-hobo/tickets/565)
58 and
59 [567](https://hobo.lighthouseapp.com/projects/8324-hobo/tickets/567).
60
8ebd8570 » bryanlarsen 2009-12-09 CHANGES formatting 61 ### Input-Many & has-many :through
62
7d84febd » bryanlarsen 2009-12-09 [#542] port hjq-input-many ... 63 The `<input-many>` tag in Rapid has been replaced with a version
64 ported from the `<hjq-input-many>` tag in Hobo-JQuery. This brings
65 the following enhancements:
66
67 - it supports 0 length associations
68 - input-many's may be nested inside of other input-many's
69 - it allows the (+) and (-) buttons to be customized
70 - it provides a default for the `item` parameter
71 - it copies from a template rather than cloning the current item and clearing it
72 - the template may be overridden
73 - id's of textareas and selects and other non-input's are adjusted properly
74 - classdata for inner elements updated
75
76 The new `<input-many>` tag differs from `<hjq-input-many>` in that:
77
78 - it's written in prototype.js rather than in jquery
79 - it doesn't have the delayed initialization feature
80 - the name of the main parameter is `default` rather than `item`
81 - hjq-input-many allows you to provide javascript callbacks.
82 input-many fires rapid:add, rapid:change and rapid:remove events
83 that can be hooked.
84
85 You will have to ensure that your hobo-rapid.js and clean.css files
86 are updated in your application.
87
88 === Hobo 0.9.101/0.9.102 (AKA 1.0.BROWN_PAPER_BAG) ===
ca022a69 » bryanlarsen 2009-12-01 bump to 101 89
90 Yes, that was embarrassing. How the test suite failed to catch that
91 one is mind blowing.
92
10ac6fba » bryanlarsen 2009-12-01 update version to 0.9.100 (... 93 === Hobo 0.9.100 (AKA 1.0.RC1) ===
a13c2206 » bryanlarsen 2009-11-18 [#537 state:resolved] 94
853ee0ac » bryanlarsen 2009-11-19 add note about bundles in C... 95 Deletions:
96
fa43aca5 » bryanlarsen 2009-11-30 [#562 state:resolved] remov... 97 - Children must now be specified in the viewhints. Hobo no longer
98 uses the presence of :dependent => :destroy to determine the
99 primary child association.
100
853ee0ac » bryanlarsen 2009-11-19 add note about bundles in C... 101 - The bundles feature of Hobo which never really worked and was
102 never documented has been removed from this release.
103
21201689 » bryanlarsen 2009-11-26 [#519 state:resolved] BREAK... 104 - The message "You must activate your account before you can log
105 in. Please check your email." which used to be added to the flash
106 message when a user has signed up has been removed from
107 `hobo_do_signup`.
108
4e9891b7 » bryanlarsen 2009-11-28 [#556 state:resolved] ignor... 109 - The fix for
110 [#556](https://hobo.lighthouseapp.com/projects/8324-hobo/tickets/556)
111 means that the migration generator now ignores all models that have
112 a `hobo_model` declaration but not a `fields` declaration. If you
113 have any models that do not have a fields declaration (join
114 tables, for example), you may wish to add a blank fields
115 declaration.
8b02b9ca » bryanlarsen 2009-11-26 [#506 state:resolved] Move ... 116
a13c2206 » bryanlarsen 2009-11-18 [#537 state:resolved] 117 Major enhancements:
118
b1e9231b » bryanlarsen 2009-12-01 version info for CHANGES 119 - Hobo now supports Ruby 1.9.1. Problems have been encountered with
120 Ruby 1.9.1 and Rails 2.3.4. Rails 2.3.3 and 2.3.5 work fine.
121
122 - Hobo has been tested against the new Rails 2.3.5. JRuby users may
2954f57d » bryanlarsen 2009-12-01 fixed markdown on CHANGES.txt 123 encounter [Rails bug 3497](https://rails.lighthouseapp.com/projects/8994/tickets/3497)
b1e9231b » bryanlarsen 2009-12-01 version info for CHANGES 124
125 - Rails 2.2 is still supported for this release. Support for 2.2
126 may be dropped post-1.0.
16ba3002 » bryanlarsen 2009-11-19 add hobo:run_invite_only_ge... 127
34db2d91 » bryanlarsen 2009-11-20 modulize Hobo::Translations 128 - Translations (ie, the ht functions) has now been moved into its
129 own module. To access the translation functions from elsewhere
130 use `Hobo::Translations.ht`. Alternatively, including the
131 Hobo::Translations module into your class will give you `ht` as a
132 local instance method. (This is one of the things the
133 `hobo_controller` declaration does.)
134
22a8d716 » bryanlarsen 2009-11-27 add 1.9 to CHANGES 135 - `rake hobo:run_invite_only_generators` was added as an alternative
136 to `rake hobo:run_standard_generators` for those who created their
137 application with the `--invite-only` flag
138
d7fb78f5 » bryanlarsen 2009-11-25 [#409 state:resolved] edito... 139 - [#409](https://hobo.lighthouseapp.com/projects/8324/tickets/409)
140 The `<editor>` tag has been modified to display the `to_s`
141 representation of the object while in edit mode. The `to_html`
142 representation is still used in view mode. The editor tag for
143 HTML columns has been modified to remove the heavy sanitizing that
a2189b16 » bryanlarsen 2009-11-25 actually, html is sanitized... 144 was previously performed. HtmlString will sanitize before saving
21201689 » bryanlarsen 2009-11-26 [#519 state:resolved] BREAK... 145 to the database. You need to update your hobo-rapid.js for this
146 fix. Run `rake hobo:run_standard_generators` or copy the file
2954f57d » bryanlarsen 2009-12-01 fixed markdown on CHANGES.txt 147 directly from [github](http://github.com/tablatom/hobo/blob/master/hobo/rails_generators/hobo_rapid/templates/hobo-rapid.js)
3cc16fc8 » al2o3cr 2009-11-27 [#296 state:resolved] Handl... 148
149 - [#296](https://hobo.lighthouseapp.com/projects/8324/tickets/296)
150 The migration generator now fully understands HABTM join tables. Note that
151 the "decorated join table" functionality that was deprecated in Rails 2.3
152 is NOT supported.
d7fb78f5 » bryanlarsen 2009-11-25 [#409 state:resolved] edito... 153
572c7c14 » al2o3cr 2009-12-01 [#475 state:resolved] load ... 154 - [#475](https://hobo.lighthouseapp.com/projects/8324-hobo/tickets/475)
2954f57d » bryanlarsen 2009-12-01 fixed markdown on CHANGES.txt 155 User-defined rich types are now loaded from `RAILS_ROOT/app/rich_types`, if it exists.
572c7c14 » al2o3cr 2009-12-01 [#475 state:resolved] load ... 156
fa43aca5 » bryanlarsen 2009-11-30 [#562 state:resolved] remov... 157 - EnumString's can now be translated. The
158 [manual](http://cookbook.hobocentral.net/manual/hobofields/rich_types)
159 has been updated with the details.
160
161 - ViewHint's can now be translated. Well, they mostly could in 0.9,
3e5036a6 » bryanlarsen 2009-12-01 [#551 state:resolved] add t... 162 but it has been cleaned up and [documented with
163 ViewHints](http://cookbook.hobocentral.net/manual/viewhints).
164
165 - Lifecycle states can now be translated. The key is
166 `#{table_name}.states.#{state}` Transitions use the key `#{table_name}.actions.#{transition}`
fa43aca5 » bryanlarsen 2009-11-30 [#562 state:resolved] remov... 167
a13c2206 » bryanlarsen 2009-11-18 [#537 state:resolved] 168 Major bug fixes:
169
170 - [#537](https://hobo.lighthouseapp.com/projects/8324-hobo/tickets/537)
171 The `._?.` "smart dot" now returns 'nil' rather than calling its
172 trailing function more often than it used to, more closely
173 matching its documentation.
174
c71ffd52 » bryanlarsen 2009-11-24 CHANGES 175 - [#457](https://hobo.lighthouseapp.com/projects/8324-hobo/tickets/457)
176 ie7-recalc.js has been updated to improve compatibility with IE6.
177 Please update the copy inside of your application, either by
178 running `rake hobo:run_standard_generators` or by copying the file
2954f57d » bryanlarsen 2009-12-01 fixed markdown on CHANGES.txt 179 directly from [github](http://github.com/tablatom/hobo/blob/master/hobo/rails_generators/hobo_rapid/templates/ie7-recalc.js)
c71ffd52 » bryanlarsen 2009-11-24 CHANGES 180
181 - [#512](https://hobo.lighthouseapp.com/projects/8324-hobo/tickets/512)
182 Hobo now has better compatibility with non-DRYML templates
183
a13c2206 » bryanlarsen 2009-11-18 [#537 state:resolved] 184 Minor enhancements:
185
c71ffd52 » bryanlarsen 2009-11-24 CHANGES 186 - [#554](https://hobo.lighthouseapp.com/projects/8324-hobo/tickets/554)
187 The transition-buttons tag no longer displays transitions that are
188 not `:available_to` the user.
189
190 - [#536](https://hobo.lighthouseapp.com/projects/8324-hobo/tickets/536)
191 documentation for field-list more closely matches reality
192
614c8ac4 » bryanlarsen 2009-11-30 [#543] CHANGES 193 - [#536](https://hobo.lighthouseapp.com/projects/8324-hobo/tickets/543)
194 i18n has been silenced. It's messages can be made to reappear on
2954f57d » bryanlarsen 2009-12-01 fixed markdown on CHANGES.txt 195 the log via `HOBO_VERBOSE_TRANSLATIONS`.
614c8ac4 » bryanlarsen 2009-11-30 [#543] CHANGES 196
8b16d739 » al2o3cr 2009-12-01 [#555 state:resolved] add i... 197 - [#555](https://hobo.lighthouseapp.com/projects/8324-hobo/tickets/555)
198 Specifying ignore_index :foo will ignore the index named 'foo' on the model
199 when generating migrations - handy for indexes that can't be generated
200 automatically (with a prefix length on MySQL, for instance) or existing
201 indexes in legacy tables.
202
2954f57d » bryanlarsen 2009-12-01 fixed markdown on CHANGES.txt 203 See also the [git log](http://github.com/tablatom/hobo/commits/v0.9.100)
a13c2206 » bryanlarsen 2009-11-18 [#537 state:resolved] 204
6e91bdb6 » bryanlarsen 2009-11-17 update CHANGES 205 === Hobo 0.9.0 ===
e7f9deae » bryanlarsen 2009-10-20 hobo_index_for was not work... 206
170b954f » bryanlarsen 2009-10-23 update CHANGES 207 Major enhancements:
208
a793ff2f » bryanlarsen 2009-10-25 CHANGES 209 - Internationalization! Through the hard work of soey and Spiralis,
210 we now have internationalization support in Hobo. The manual
211 page is on the
212 [cookbook](http://cookbook.hobocentral.net/manual/i18n). Locales
d24effa2 » bryanlarsen 2009-10-29 CHANGES 213 are available on
214 [github](http://github.com/Spiralis/hobo-i18n-locales).
215
bd611352 » bryanlarsen 2009-10-29 tiny CHANGES update 216 - Index generation: Matt Jones' automatic index generation code has
d24effa2 » bryanlarsen 2009-10-29 CHANGES 217 been merged. The default Rails index names are very long, so this
218 is unlikely to work well on Oracle, which has a 30 character
219 limit. Testing against Postgres, Oracle, SQL Server and JDBC has
bd611352 » bryanlarsen 2009-10-29 tiny CHANGES update 220 been extremely limited. To generate indices run script/generate
221 hobo_migration.
a793ff2f » bryanlarsen 2009-10-25 CHANGES 222
170b954f » bryanlarsen 2009-10-23 update CHANGES 223 - New projects now have a summary page on /front/summary that
224 provides application information to the administrator. Current
225 projects may add this action by running the
226 `hobo_front_controller` generator.
227
84524763 » bryanlarsen 2009-11-16 update CHANGES.txt with #530 228 - STI derived classes can add additional fields to their parent
229 class with the fields block. Note that the "can't generate a
230 migration for STI base and derived classes all at once" issue
231 still applies. In general, STI handling should now work much
232 better.
e7c47686 » al2o3cr 2009-11-09 update changelog 233
234 - [Bug 464](https://hobo.lighthouseapp.com/projects/8324/tickets/464-transition-buttons-should-have-a-option-to-link-to-forms-instead-for-transitions-that-take-parameters)
84524763 » bryanlarsen 2009-11-16 update CHANGES.txt with #530 235 The transition-buttons tag now generates buttons that link to the
236 transition page for transitions that require parameters.
e7c47686 » al2o3cr 2009-11-09 update changelog 237
b4873b1e » bryanlarsen 2009-11-16 [#532 state:resolved] add H... 238 - [Bug 532](https://hobo.lighthouseapp.com/projects/8324/tickets/532)
239 In previous versions, you had to add the new HTML5 tags to
240 RAILS_ROOT/config/dryml_static_tags.txt. This version whitelists
241 all HTML5 tags except for aside, section, header and footer, which
242 conflict with existing Rapid tags.
243
e7f9deae » bryanlarsen 2009-10-20 hobo_index_for was not work... 244 Major bug fixes:
245
84524763 » bryanlarsen 2009-11-16 update CHANGES.txt with #530 246 - [Bug 530](https://hobo.lighthouseapp.com/projects/8324-hobo/tickets/530)
247 is a critical bug for invite-only projects. To incorporate the
248 fix, you must rerun your generators or follow the instructions in
249 the [commit](http://github.com/tablatom/hobo/commit/17247eac8a78f8b36dcc3b9684a3e4ec8da32a23)
250
e7f9deae » bryanlarsen 2009-10-20 hobo_index_for was not work... 251 - [Bug
252 480](https://hobo.lighthouseapp.com/projects/8324/tickets/480-find_owner_and_association-method-for-has_many-associations)
253 Owner actions now work with has_many associations
254
e7c47686 » al2o3cr 2009-11-09 update changelog 255 - [Bug 516](https://hobo.lighthouseapp.com/projects/8324/tickets/516-association-name-as-parameter-in-lifecycle-step-almost-works)
256 Specifying a belongs_to association as a lifecycle param works; it appears as a select-one on the generated page.
257
258 - [Bug 515](https://hobo.lighthouseapp.com/projects/8324/tickets/515-virtual-boolean-field-uninitialized-constant-hobobooleancolumn_type)
259 Virtual :boolean fields declared with attr_accessor now work
260
261 - [Bug 484](https://hobo.lighthouseapp.com/projects/8324/tickets/484-transition-actions-with-key-fail-if-model-isnt-visible-to-guests)
262 Transition actions that require a key no longer check if the model is visible to Guest
263
264 - [Bug 485](https://hobo.lighthouseapp.com/projects/8324/tickets/485-make-lifecycles-on-sti-subclasses-behave)
265 Lifecycle support on STI models works now. Note that derived classes DO NOT inherit any of the parent lifecycle implementation.
266
267 - [Bug 387](https://hobo.lighthouseapp.com/projects/8324/tickets/387-inheritance-sti-models-name-not-propagating)
268 STI derived classes now inherit settings like name_attribute correctly.
269
270 - [Bug 533](https://hobo.lighthouseapp.com/projects/8324/tickets/533-remove-id-from-hidden-field-for-check-box)
271 The hidden field generated with a checkbox input shouldn't have an ID.
272
273 - [Bug 526](https://hobo.lighthouseapp.com/projects/8324/tickets/526-routing-error-does-not-render-not-found-page)
274 Routing errors now render not-found-page, rather than the default Rails routing error message.
275
0fe89742 » bryanlarsen 2009-10-23 update CHANGES.txt 276 Minor Enhancements:
277
278 - Aside collections now have a new-link at the bottom (inside the
279 preview-with-more)
280 [#421](https://hobo.lighthouseapp.com/projects/8324/tickets/421-auto_actions_for-doesnt-create-add-button-in-sidebar)
281
0a2f15fa » bryanlarsen 2009-10-23 update CHANGES 282 - the manual now includes a Generators section, and a subsite
283 tutorial has been added.
284
d24effa2 » bryanlarsen 2009-10-29 CHANGES 285 - [Bug
286 386](https://hobo.lighthouseapp.com/projects/8324-hobo/tickets/386)
287 and [Bug
288 501](https://hobo.lighthouseapp.com/projects/8324-hobo/tickets/501)
289 have been fixed, reducing the number of extraneous migrations that
290 the hobo_migration generator creates. These are actually Rails
291 and/or database bugs we're working around. For instance, MySQL
292 does not allow default values for text columns, so Rails silently
293 ignores them. SQLite does not allow scale or precision settings on
294 decimal fields. These types of bugs are good reasons why you
295 should use the same type of database for development, testing and
296 production.
297
e7c47686 » al2o3cr 2009-11-09 update changelog 298 - A new view_hint, 'inline_booleans', controls whether boolean attributes are displayed in the header (default behavior
299 of Rapid show pages) or inline with the rest of the field-list. You can either pass a list of field names, or 'true'
300 (without quotes) to make all booleans inline.
301
302 - hobo_show now accepts a model instance as a first parameter. This restores symmetry with the other hobo_* actions.
303
304 - on Rails 2.3 and above, routes will be generated with the optional .:format suffix, and the formatted_* routes are skipped.
305
6e91bdb6 » bryanlarsen 2009-11-17 update CHANGES 306 - non-required fields that are marked :unique will now allow nil
307 values.
308
309 Minor Bug Fixes
310
311 - [Bug 540](https://hobo.lighthouseapp.com/projects/8324-hobo/tickets/540)
312 Hobo::Permissions::Associations::HasManyThroughAssociations#create!
313 did not save as the "!" implied.
314
315 See the [github log](http://github.com/bryanlarsen/hobo/commits/v0.9.0)
0fe89742 » bryanlarsen 2009-10-23 update CHANGES.txt 316
e7f9deae » bryanlarsen 2009-10-20 hobo_index_for was not work... 317 === Hobo 0.8.10 ===
ff597ed5 » bryanlarsen 2009-10-15 Tag the 0.8.10 brown paper ... 318
319 This is a brown paper bag release. The fix for Bug 473 was not
320 properly tested. Thanks Iain Beeston for quickly sending us a patch.
321
d25762ec » bryanlarsen 2009-10-12 update CHANGES.txt 322 === Hobo 0.8.9 ===
323
324 Enhancements:
325
326 -
327 [precompile_taglibs](http://groups.google.com/group/hobousers/browse_thread/thread/29694e75f60c0870/6b05f75f2f7e91f5)
328 allows you to precompile taglibs during application startup rather
329 than on demand.
330
331 - `--invite-only` options added ti generator
332
333 Major bug fixes:
334
335 - [Bug
336 461](https://hobo.lighthouseapp.com/projects/8324-hobo/tickets/461-hobo-is-not-compatible-with-firefox-35):
337 Firefox 3.5 problems were caused by lowpro. For existing projects,
338 you will have to update your copy of [public/javascripts/lowpro.js](http://github.com/tablatom/hobo/raw/master/hobo/rails_generators/hobo_rapid/templates/lowpro.js)
339
340 - [Bug
341 477](http://groups.google.com/group/hobousers/browse_thread/thread/5a15288f9703a8a4/58a8dee62b237d29)
342 caused problems when the user submitted a form from the index page.
343
344 - "collection" was renamed to "collection-heading" in the Rapid
345 generated show-page.
346
07f4770d » bryanlarsen 2009-10-14 release 0.8.9 347 - [Bug
348 473](https://hobo.lighthouseapp.com/projects/8324/tickets/473-use-timezonenow-instead-of-timenow#ticket-473-5):
349 Hobo now uses any time zone's configured for the application rather
350 than using the server's time zone.
351
d25762ec » bryanlarsen 2009-10-12 update CHANGES.txt 352 Minor bug fixes and enhancements:
353
6e91bdb6 » bryanlarsen 2009-11-17 update CHANGES 354 See the [github log](http://github.com/bryanlarsen/hobo/commits/v0.8.9)
d25762ec » bryanlarsen 2009-10-12 update CHANGES.txt 355
a346ba63 » Bryan Larsen 2009-06-24 bump gem to 0.8.8 356 === Hobo 0.8.8 ===
357
358 Hobo 0.8.8 comes with some slight changes to the colour scheme for the
359 "clean" theme. To apply these enhancements, you may need to run
360 `rake hobo:run_standard_generators`.
361
362 Significant bug fixes:
363
364 - [Bug 422](https://hobo.lighthouseapp.com/projects/8324/tickets/422): Because of it's switch to Rack, Rails 2.3 changed the interaction
365 between checkboxes and their accompanying hidden field. This caused
366 us to always return "false" for a checkbox, even if it was checked.
367
368 - [Bug 425](https://hobo.lighthouseapp.com/projects/8324/tickets/425): Hobo 0.8.6 removed support for the non-working
369 big_decimal. However, this shared some code with decimal, so we
370 removed a little bit too much code. This restores the missing
371 editor and input for the decimal type.
372
373 Minor bug fixes:
374
375 - [Bug 413](https://hobo.lighthouseapp.com/projects/8324/tickets/413): add target attribute to `<nav-item>` links
376
377 - [Bug 420](https://hobo.lighthouseapp.com/projects/8324/tickets/420): `acts_as_list` controls visible to Guest
378
379 - [Bug 446](https://hobo.lighthouseapp.com/projects/8324/tickets/446): `<transition-button>` not working
380
381 - Migration generator fix - would occasionally suggest a default
382 migration name that already exists
383
384 Minor enhancements:
385
386 - [Bug 434](https://hobo.lighthouseapp.com/projects/8324/tickets/434): allow String or Hash to be passed in a :redirect optione
387
388 - `key_timeout` option added to lifecycles
389
390 - [Bug 437](https://hobo.lighthouseapp.com/projects/8324/tickets/437): 'options' attribute added to `<check-many>`
391
392 - [Bug 424](https://hobo.lighthouseapp.com/projects/8324/tickets/424): 'limit' option added to `<select-one>`
393
394 - [Bug 440](https://hobo.lighthouseapp.com/projects/8324/tickets/440): support blank Time and DateTime inputs
395
396 - [Bug 423](https://hobo.lighthouseapp.com/projects/8324/tickets/423): default content for input-many
397
398 - [Bug 379](https://hobo.lighthouseapp.com/projects/8324/tickets/379): multiple warning messages on email validation
399
400 - [Bug 404](https://hobo.lighthouseapp.com/projects/8324/tickets/404): Extension to Hobo::Model class to check ViewHints for error
401 validations
402
403 - [Bug 415](https://hobo.lighthouseapp.com/projects/8324/tickets/415): Visiting sign-up page when logged in gives permission
404 denied
405
406 - Rapid navigation - added name attribute to `<nav-item>` to make it easier to select the current nav item in some cases (e.g. dynamic nav item text)
407
408 - Rapid forms -- added url attribute to `<remote-method-button>`
409
410 - HoboSupport - `Enumerable.build_hash` can now be used without a block to build a hash directly from a list of pairs
411
412
1136ca09 » bryanlarsen 2009-05-14 Bump gem to 0.8.7 413 === Hobo 0.8.7 ===
414
415 I forgot to refresh the Manifest, so this is a brown paper bag release.
416
72ee3b7b » bryanlarsen 2009-05-13 update CHANGES.txt for 0.8.6 417 === Hobo 0.8.6 ===
418
419 Hobo 0.8.6 includes Rails 2.3 support. Rails 2.2 support has been
420 maintained. Rails 2.1 support was dropped in 0.8.5.
421
422 Significant effort was put into unit and integration tests in this
423 release. Unit tests may be run via `rake test_all`. Integration
424 tests live in agility: http://github.com/tablatom/agility/tree/master.
425
426 Some small changes were made to item orders to fix bugs with IE6.
427 This may require updates in custom stylesheets.
428
429 Previously, the lifecycle transitions had a parameter called :params
430 in the documentation and :update in the code. The code has been
431 updated to match the documentation.
432
433 Support for `big_integer` in HoboFields has been dropped. It appears
434 that this has never worked correctly.
435
436 input-many is now a polymorphic tag and the default tag for has_many
437 inputs.
438
439 The 'content' parameter has been renamed to 'description' for
440 generated cards.
441
442 input-many and sortable-collection have been improved.
443
444 Many tags have had parameters and attributes added to improve
445 customization.
446
447 Many bugs have been fixed. See the [lighthouse](
448 http://hobo.lighthouseapp.com) or the [git commit
449 history](http://github.com/tablatom/hobo/commits/master/) for more
450 details.
451
452 0.8.6 is a release candidate for Hobo 1.0. At this point we do not
453 believe that there are any outstanding bugs on Hobo that do not have
454 workarounds. The
455 [lighthouse](https://hobo.lighthouseapp.com/projects/8324-hobo/tickets/bins/8323)
456 shows the remaining tickets scheduled for 1.0
457
42780265 » tablatom 2008-12-09 Bump version numbers to 0.8... 458 === Hobo 0.8.5 ===
459
460 New permission system
461
462 Various fixes
463
464 Now runs permission checks *before* callbacks, not after
465
466 In the switch to the new permissions system, we changed to running them after all callbacks. This turned
467 out to be wrong. Permissions should only be about what the user tried to change, not other changes
468 triggered by application logic
469
470 API change: Web method permissions should now be defined as foo_permitted? instead of foo_call_permitted?
471
472 Updated hobo command and hobo generator to use the new config.gem style for apps that use the Hobo gem
473
474 The --add-gem option to script/generate hobo will add "config.gem 'hobo'" to environment.rb. The hobo command
475 does this automatically
476
477 Lifecycles fix -- state_name would throw a nil error if there was no state (not returns nil)
478
479 This was causing the :new_key option to fail on a create step
480
481 Fixes to problems with live-search introduced with the Rails 2.2 upgrade
482
483
484
86dce6cb » tablatom 2008-12-05 CHANGES.txt for 0.8.4 485 === Hobo 0.8.4 ===
486
487 Rails 2.2 compatible. Rails 2.1 support dropped.
488
489 Removing the Rails routing patch (from the hobo generator) that is no longer needed.
490 Existing apps can delete this from config/initializers/patch_routing.rb
491
492 BREAKING: New permission system
493
494 This is the major feature of this release. The big change is that we now use the dirty tracking features
495 of Active Record for update permission, rather than passing that weird 'new' object. We also use the
496 acting_user method throughout, rather than passing the user as an argument.
497
498 See the docs online: http://cookbook.hobocentral.net/manual/permissions
499
500
501 Removing special Hobo semantics for association.new which was breaking the Rails API, and added
502 #new_candidate
503
504 association.new_candidate instantiates the record but does not add it to the collection.
505
506 Fix to linkable? helpers when context responds to origin but is not a collection
507
508 POSSIBLY BREAKING: Improved multi-model form support
509
510 has_many and belongs_to now support the :accessible => true option, which allows mass-asssignment of
511 attributes to work with sub-hashes that correspond to associations. Docs to follow!
512
513 BREAKING: Lifecycle improvements
514
515 The lifecycle DSL has been tidied up. Various changes to the semantics.
516
517 Lifecycle validations are now supported (e.g. validates_presence_of :foo, :on => :my_transition)
518
519 Also small improvements to the controller layer lifecycles support
520
521 See: http://cookbook.hobocentral.net/manual/lifecycles
522
523 New ViewHints mechanism
524
525 Classes in app/viewhints are a place to declare things about your models that are view layer concerns.
526 For example, you can give the presenation name for a field if this should be different from the back-end
527 name. You can give "field help" for each field. You can specify which collections are the "children" of a
528 model from a UI point of view.
529
530 Rapid <select-many> -- removed use of <a-or-an> as it gets some words wrong (e.g. "an user")
531
532 Rapid -- moved <or-cancel> to rapid_forms.dryml
533
534 Model controller fix -- owner instance variable should be named after the association, not the class (e.g.
535 @author, not @user)
536
537 View hints fix -- inconsistent results due to class reloading problem in dev mode (was causing inconsistent
538 Rapid pages to be generated)
539
540 Hobo Models -- added support for 1-to-1 relationships to Hobo::Model.reverse_reflection
541
542 This puts us a step closer to better support for 1-to-1 relationships in various places, e.g. for owner
543 actions
544
545 Improved error message when declaring auto_actions_for on an association that doesn't have the
546 corresponding reverse-reflection
547
548 Fixed query_params helper -- should URI decode the parameters
549
550 Rapid -- simplified <filter-menu> (no need for a hidden tag)
551
552 Rapid pages -- added <heading:> parameter to account page
553
554 DRYML -- fix to merge-attrs="a, b, c"
555
556 Rapid <input-many> -- added support for disable attribute
557
558 Fix to <hobo-rapid-javascripts> when forgery protection is disabled
559
560 User model - validates_presence_of password confirmation, in addition to validates_confirmation_of
561
562 Fixes #310 - thanks to Jaub Suder
563
564 BREAKING: Rapid page generators -- Renamed 'primary-content' parameter in <show-page> to 'description'
565
566 User controller -- made account action follow the auto_actions declaration
567
568 Changed hobo->hobofields->hobosupport gem dependency rules to require the exact version
569
570 User model generator -- Hobo apps now have people log in with their email address by default, and the user
571 has a 'name' field rather than 'username'.
572
573 Note this will not effect existing apps
574
575 Clean theme - fix to styling of login page in IE6
576
577 Rapid javascripts -- fix to in-place-editor errors not showing up properly (#324). Thanks to Jakub Suder
578
579 DRYML -- fixed duplicate ID bug with ajax parts (#326)
580
581 POSSIBLY BREAKING: Models -- removed support for chronic parsing of times / dates.
582
583 Was wrong to hardwire this support in for every date/time field. Will be added back in as a rich type
584 at some point
585
586 Scopes - Fixed association.conditions with scopes for has_many :through
587
588 Rapid <hidden-fields> -- now honours the 'skip' attribute under all circumstances
589
590 Rapid <page> -- app-stylesheet param, to make it easier to add in custom stylesheets, but have them
591 *before* application.css
592
593 Rapid <stylesheet> -- call stylesheet_link_tag once only so that asset combining is supported
594
595 DRYML -- allow <include plugin="foo"/> as a shorthand for <include src="foo" plugin="foo"/>
596
597 Removed super_user? and adminstrator? from Hobo::Guest, and added administrator? to Guest generator
598
599 administrator? should not be present at all in core Hobo, it's just a default starting point
600
601 Rapid <input for='boolean'> -- don't add the hidden field if the checkbox is disabled - thanks to Tola.
602
603 Rapid <nav-item> -- Fix to 'current' CSS class when a body is not given
604
605 Rapid pages -- fix to selecting current nav item
606
607 Added hobo:run_standard_generators task (*NIX only)
608
609 Guest - changed default #to_s and #login to use lower case
610
611 Rapid <remote-method-button> -- allow method name to use dashes, and raise an error if there's no such web
612 method
613
614 DRYML -- never run DRYML generators in production mode. Instead run
615
616 rake hobo:generate_taglibs
617
618 Rapid JavaScripts -- adding custom events to <select-many>
619
620 Rapid JavaScript -- added option to specify { message: false } on ajaxRequest to disable the spinner
621
622 Model Controller -- fix to re_render_form when in a subsite
623
624 hobo_model_controller generator -- adding support for generating subsite controllers
625
626 HoboSupport -- adding remove and remove_all (plus mutating versions with a !) to string - better name for
627 sub(x, '')
628
629 DRYML -- added support for scope.even_odd to the attribute version of repeat (was only on the tag version)
630
631 DRYML -- improved error message for mixed param / non-param tags
632
633 Model controller -- fix to index actions on non-paginated formats (was passing will-paginate options to a
634 regular find)
635
636 Migration generator -- adding option: --force-drop-yes-i-really-mean-it-i-know-what-i-am-doing-dammit
637
638 Not really, it's actually just --force-drop
639
640 With this option it won't ask you "drop or rename?" it will just drop
641
642 HoboFields -- fix to EnumString when values are not valid contant names
643
644 Rapid -- added support for 'disabled' to <select-many>
645
646 Enhanced ajax mechanism so that it can refresh form inputs (was previously not able to figure out the name
647 attributes)
648
649 Rapid -- adding support for 'disabled' attribute to <select-one>
650
651 Rapid -- added a 'no-edit' attribute to <input> and <field-list>. Gives control over how
652 non-editable fields are handled.
653
654 - view: render the current value using the `<view>` tag
655 - disable: render the input as normal, but add HTML's `disabled` attribute
656 - skip: render nothing at all
657 - ignore: render the input normally. That is, don't even perform the edit check.
658
659
660 Added <dev-user-changer> to the user 'simple pages' (login, signup...)
661
662 User conrtroller -- redirect to home_page if a logged-in user visits the login page
663
664 Model controller -- fix to lifecycle form inputs not showing up after a validation error
665
666 Rapid -- changed rules for <delete-button> chosing whether to be in-place or not
667
668 BREAKING (minor): removed 'type' attribute from <type-name>
669
670 BREAKING (minor): Rapid -- renamed 'separator' attribute of <comma-list> to 'join'
671
672 Rapid -- moved live-search and filter-menu tags into rapid_plus
673
674 Rapid -- removed unused <belongs-to-view>. Renamed <has-many-view> to <collection-view>, made it
675 polymorphic, and extracted the default definition as <links-for-collection>
676
677 Rapid -- tweak to behaviour of <name>. Is now more sensible when called on a non-AR class
678
679 Re-organisation and documentation for Rapid Document Tags
680
681 BREAKING: Deleted <panel> tag.
682
683 Models - fix to overriding of not_found and permission_denied in applicatin controller. Also fix to bug in
684 permission denied
685
686 Models -- fix to preceding dashes in to_param (sometimes showed up in the URL)
687
688 DRYML -- allow - instead of _ in repeat/if/unless, when not code attribute
689
690 HoboSupport - re-org of the file layout
691
692 HoboFields -- new rich type :serialized (HoboFields::SerializedObject)
693
694 example usage: foo :serialized, :class => Array
695
696 Also some fixes to wrapping of rich types that were needed
697
698 HoboFields -- adding 'declared' callback to rich types. Called whenever a field of that type is declared
699
700 See HoboFields::HtmlString for an example
701
702 HoboFields -- new types RawHtmlString and RawMarkdownString that are not sanitized. Plus fix to sanitizing
703
704 DRYML -- new DrymlDoc facility. Starting point for a roll-your-own documentation generator
705
706 Used to generate the cookbook taglib API reference.
707
708 hobo_front_controller generator -- use map.root for adding the root route
709
710 Model controller -- can call #re_render_form without an arg (for when you know params[:page_path] is set)
711
712 Support for non-numeric model IDs
713
714 Rails has no problems with these but Hobo was assuming integer IDs in a few places.
715
716 Fix to default ApplicationController#home_page -- was broken when the app lives in a sub-directory
717
718 Rapid -- allow '-' instead of '_' in <with-fields> (and therefore, <field-list> and <table field='...'>)
719
720 Rapid -- made <select-many> submit IDs instead of names, so that it also works with models that don't have a
721 unique name
722
723 Cleanup of dom_id / typed_id.
724
725 We now use the term "typed id" throughout to refer to a string that includes a model name and an ID.
726
727 These now use ':' instead of '_' as the model-name/id separator, which has the benefit of allowing
728 non-integer keys
729
730 HoboSupport -- adding String#safe_constantize. Returns nil (instead of raising a NameError) the constant
731 does not exist and cannot be loaded by ActiveSupport
732
733 BREAKING. Rapid pages -- separated out application.js from other JS includes and added a <custom-scripts:>
734 parameter
735
736 Adding extra scripts using this new parameter will ensure application.js comes last and can thus override
737 behaviour of custom scripts.
738
739 This is a breaking change because apps that have customised the list of JS includes might not now have
740 the set of scripts they expect
741
742 Rapid - adding polymorphic <collection-input> tag as a place to define the kind of input you want used for
743 collections of a given model
744
745 Rapid javascripts -- making non-ajax HTML Editor pluggable
746
747 Plugins assign a function to Hobo.makeHtmlEditor. See hoboyui plugin for an example (github.com/tablatom)
748
749 Adding XSS protection to HoboFields rich types (Sanitizing)
750
751 Rapid -- new tag <check-many>. Add remove items to a has_many :through by checking the ones you want. Obviously
752 this is only suitable when the number of items in the target model is small. (e.g. blog post categories)
753
754 Page generators -- better titles for collection previews in aside on a user's page
755
756 Page generators -- improved collection heading on show-page for a user
757
758 Fixes to "remember me"
759
760 Card generator -- observe view-hints when putting a count on the card
761
762 Rapid -- change to css classes on new-object forms (was 'new-post' now 'new post')
763
764 Rapid -- workaround for the fact that Maruku defines a to_html method on String
765
766 Page generators -- changed heading used on <edit-page>
767
768 HoboSupport -- added Object#present? that is on it's way from edge Rails (will remove when Rails provides
769 this)
770
771 User pages:
772
773 Added editing of email address to user's account page
774
775 Got rid of <change-password-form>
776
777 Rapid plus -- added <preview-with-more> and <gravatar> tags
778
779 Rapid -- removed unimplemented if-content attribute from base <card>
780
781 Rapid -- fixed class name dash problem in <name-one>
782
783 User model generator -- allow users to change their email address by default
784
785 Automatic scopes
786
787 extended with_things and without_things automatic scopes so that they work without arguments.
788
789 e.g. Question.with_answers and Question.without_answers
790
791 Automatic scopes -- have 'recent' scope just do a 'limit x' if there is no created_at column (used to
792 blow up)
793
794 Model Controller, allow :scope => :some_scope_name on index_action
795
796 Made object_url handle a scoped class (gives the index url, e.g. /posts)
797
798 Rapid generators -- fixed bug where some cards had title when they should not have
799
800 Rapid generators -- smarter index-for-owner page when the owner is a user
801
802 Rapid generators -- fixed wrongly named param in for new-for-ower pages
803
804 User controller generator -- remove :new action by default
805
806 DRYML - fixed problem where parameters where conflicting rather than merging
807
808 Improvements to reset stylesheet - strong, em and code now render as expetced
809
810 Moved all the tags defined in rapid.dryml into a new included file rapid_core.dryml to make it easier to
811 include only parts of the tag library if required
812
813
814
f75f6f91 » tablatom 2008-10-15 Updating manifests and chan... 815 === Hobo 0.8.3 ===
816
817 Hobo models -- improvements to logic for validating passwords. Closes #281
818
819 Hobo users -- simpler definition of account_active?
820
821 This assumes the user has the default lifecycle or similar. If the lifecycle is cusomtised this method can be overridden
822
823 Lifecycles -- Make current creator/transition available as lifecycle.active_step
824
825 Lifecycles -- user a safer name for methods to test if the lifecycle is in a given state
826
827 Now record.lifecycle.is_active? instead of record.lifecycle.active?
828
829 Lifecycles -- become method should not polute AR namespace (use lifecycle.become)
830
831 Models -- to_param should always return a string. Closes #280
832
833 Rapid -- <login-page> -- "remember me" is now on by default
834
835 Fixed typo in <forgot-password-page>. Thanks to Jakub Suder
836
837 Fixes and Clean theme improvements for site-wide live-search. Closes #290
838
839 Removing hobo_spec - test will live in hobo/test, hobofields/test as is normal
840
841 Adding close button (also, keyboard = ESC) to live-search popup
842
843 Models -- classes for polymorphic assciations (e.g. Tagging::ble) are now automatically created instead of blowing up when
844 calling reflection.klass. Closes #83
845
846 Removed nicedit - we've moved to a plugin based system for rich editors now (see github.com/tablatom/hoboyui)
847
848 Rapid -- the select menus in <select-many> now observe conditions applied to the has_many :through
849
850 Rapid -- fix to double-escaping of names in <select-one>
851
852 merge-attrs on <section-group>
853
854 Rapid -- added if-present attribute to <name> to supress the nil-view if there is no name
855
856 Used in <name-one> to ensure the input box is blank
857
858 Improved support for validation in multi-model-forms
859
860 Added support for owner actions where the owner is a has_many :through (was only for :belongs_to owners)
861
862 Rapid -- improvements to index-for-owner page
863
864 Rapid -- renamed <card> parameter from 'description' to 'content'
865
866 Rapid -- adding multipart attribute to <form>. Usage: <form multipart>
867
868 Model Controller -- fix to :redirect option for hobo actions
869
870 DRYML -- fix to dom_id helper when this_parent is a collection
871
872 Model Controller -- improved remember_page_path to also remember the query string
873
874 Rapid - fix to <remote-method-button> -- the confirm attribute was incorrectly changing the button into an ajax button
875
876 Rapid -- <select-menu> now supports an array of label/value pairs, like the options_for_select helper
877
878 Model Controller -- Now remembers the previous page path in the session and uses this to fix a problem with
879 <after-submit stay-here/> (occured after a validation error)
880
881 New tag <input-all> for situations where you want input for every item in an existing collection (without the +/- buttons that
882 <input-many> has)
883
884 HoboSupport -- enum.rest now returns [] for an empty enumerable (was nil)
885
886 Rapid + DRYML -- recfactoring the way DRYML keep track of which form field names.
887
888 It's now possible to track these for a sub-object by setting a new scoped variable form_field_names
889
890 Rapid -- enhancements to <name-one>:
891
892 - sensible defaults for complete-target and completer
893 (you can now use <name-one> as a drop-in replacement for <select-one>
894
895 - The <name> of the referenced object is included in the input box if there is one
896
897 Rapid -- improved grammar (use of 'a' or 'an') in <select-many>
898
899 Model controller autocompleter enhancement -- you can ommit the name of the autocompleter, in which case it defaults to the
900 model's name_attribute
901
902 Hobo Model -- more robust handling of date hashes
903
904 Support in Rapid and javascript for <input-many>
905
906 It's now very easy to embed form fields for items in a has_many collection.
907 These use javascript + and - buttons, but this does not use ajax.
908
909 Hobo models -- improved support for mass assignment to has_many associations.
910
911 Any has_many association can now be assigned a hash. The keys are *only* for ordering purposes.
912 The values are themsleves hashes of attributes.
913 New records are created for any such hash that has no :id key
914
915 Hobo model -- fix to has_one extension (was discarding the block)
916
917 DRYML - New behaviour for context_map (repeat):
918 this_field is now the index (0 based) when iterating over a collection.
919 New helpers (HoboHelper) first_item? and last_item?
920
921 DRYML - fix to loading of nested taglibs
922
923 Rapid user pages -- don't show forgot-password link if the route is not present
924
925 <empty-collection-message> should use <div> instead of <p>, otherwise block level elements won't be allowed inside and Firefox
926 will sometimes treat them as if they are outside
927
928 Rapid page generators -- added param to <field-names-where-true> on <show-page>
929
930 DRYML - fix to using <extend> in a taglib included by a taglib
931
932 Migration generator -- convert spaces to _ when responding to rename questions
933
934 Rapid user pages -- made forgot-password link a param
935
936 hobo_model generator -- formatting improvement
937
938 Model Controller -- new :redirect option for controller actions
939
940 Use the rails 'pick_template' mechanism to determine the correct template path when rendering a DRYML view
941
942 Rapid generators -- adding missing <error-messages/> tags to lifecycle forms
943
944
945
00ddb659 » tablatom 2008-09-13 Changelog and version numbe... 946 === Hobo 0.8.2 ===
947
948 Hobo models -- improvement to name-in-URL (#to_param)
949
950 Added missing input for time fields
951
952 Rapid forms -- added missing hours/minutes/seconds fields to datetime input
953
954 Reorg of Hobo Rakefile, in preprartion for move to Shoulda
955
956 Rapid -- fix to <create-button>
957
958 Echoe tasks -- adding workaround for developer-dependencies problem
959
960 Rapid -- fixes to css class named that had '_' instead of '-'
961
962 Rapid pages generators -- improvements to form submit button labels
963
964 ModelController - set the provided key on the record *before* the view permission check during a lifecycle
965 transition
966
967 Hobo Models -- Model.user_find can now take a block to perform actions on the record prior to the permission check
968
969 Added Rails dependency to hobofields gem
970
971 Fix to Rails dependency - any Rails >= 2.1 is ok
972
973 Reorganised generator tests
974
975 Hobo users now have an #account_active? method. Used in two places:
976
977 - This method rather than the return value of the block passed to hobo_login, is now used to figure out if an
978 account is active when logging in.
979
980 - After signing up, also log the user in iff account_active? is true. This is useful if there is a second step to
981 signing up, such as email activation
982
983 hobo_front_controller generator -- improved title of home page
984
985 Rapid generators -- fix to owner link on new-for-owner page
986
987 Fix to bug where validations were not happening during lifecycle creates/transitions
988
989
990
6a21cb80 » tablatom 2008-09-08 CHANGELOG 991 === Hobo 0.8.1 ===
992
993 Fixes to generating and loading subsite controllers
994
995 Add Rails routing monkey-patch to hobo generator
996
997 Fixed deprecated use of ActiveSupport Dependencies module
998
999 Migration generator -- fix to mysql limit problem in Rails 2.1.1
1000
1001 Migration generator -- fixed bug with validation of filename input by user
1002
1003 New lifecycle semantics.
1004
1005 Lifecycle create and transition actions (blocks) now run *after* the create or transition, and not at all
1006 if there are validation errors.
1007
1008 To create a key, you can no longer call lifecycle.generate_key in the action, as the key timestamp will not
1009 be saved (record has already been saved)
1010
1011 Instead pass :new_key => true as an option to the create or transition, and access it in the block using
1012 lifecycle.key
1013
1014 Fix usage of 'skip' on hidden-fields tag; wasn't comma-splitting input. Correctly skip search field in
1015 table-plus search form.
1016
1017 Fix to viewable_by? helper
1018
1019 Partial fix #251 - add requirement that :id not be empty to resource routes
1020
1021 Fix for #256, generating user model not named 'User'
1022
1023 Maade request and app_name available by default
1024
1025 New user model method account_active? Default implementation is state == 'active' but this method is intended
1026 as a hook that can be overridden as required.
1027
1028 On signup, the user is only logged in if user has #account_active?
1029
1030 Rapid generators -- fixes for form cancel links
1031
1032 Rapid generators -- added parameter to show-page
1033
1034 Fixes to in-place-editors
1035
1036 Allow more advanced default ordering options like 'lower(users.last_name), lower(users.first_name)'
1037
1038 Fixed typo in dryml-generator lifecycle pages
1039
1040 show-page generator -- fix to test for create permission
1041
1042 Rapid generators -- fix for show-page generator, when the 'owner' association that goes with the page's
1043 collection cannot be found
1044
1045
1046
64a2f1e0 » tablatom 2008-09-01 Changelog for 0.8 release 1047 === Hobo 0.8 ===
1048
1049 (There's a million changes in this release -- most of the fixes are *not* mentioned)
1050
1051 Hobo now works with, and indeed requires, Rails 2.1
1052
1053 Hobo can now be used entirely from the gem, and need not be installed in vendor/plugins. To activate Hobo in this manner in an existing Rails app, just run the hobo generator. This will add the Hobo initializer to config/initializers.
1054
1055 hobo command
1056
1057 Now shows you what it's doing
1058
1059 Renamed --create-dbs to --db-create to match the name of the rake task
1060
1061
1062 DRYML
1063
1064 DRYML generators
1065
1066 Hobo now provides a facility to generate DRYML tags on the fly using normal erb based templates. (the generators run
1067 when needed in development mode). The taglibs are written to taglibs/auto. Note that the generated tablibs are *not*
1068 intended to be modified, but rather should be imported and overridden in your application.
1069
1070 Extending tags: The extend-with attribute is gone, instead we have the <extend> tag, e.g. instead of the rather
1071 confusing:
1072
1073 <def tag="page" extend-with="app">
1074 <page-without-app>
1075
1076 we now have
1077
1078 <extend tag="page">
1079 <old-page>
1080
1081 Also works with polymorphic tags, e.g. <extend tag="card" for="Product">
1082
1083 Polymorphic tags: new mechanism for defining polymorphic tags.
1084
1085 <def tag="foo" polymorphic> ... "base" definition here ... </def>
1086
1087 <def tag="foo" for="Product">
1088 ... in here you can call <foo> and it's not a recursive call
1089 but a call to the base definition ...
1090 </def>
1091
1092 "without" attributes: <page without-live-search> is a shorthand for <page><live-search: replace/>. Doesn't sound like
1093 much but it's great. You'll like it.
1094
1095 <set> now respects the 'if' attribute
1096
1097 Using 'with' and 'field' on a parameter works more sensibly now -- DRYML will never merge with attributes and field
1098 attributes
1099
1100 New semantics for scoped variables.
1101
1102 Scoped variables must be declared at the start of the scope. Assignments and reads always go back to the scope where
1103 that variable was declared.
1104
1105 Fix to <foo:> </foo:> (i.e. one or more whitespace chars) being ignored
1106
1107 Removed feature from add_classes helper that was converting all _ to -. Closes #11
1108
1109 param='x' now adds class='x' to the output. Closes #22. Doesn't add a css class if the param name is the same as the tag
1110 name, or is 'default'
1111
1112 Fixes to errors when reporting syntax error : )
1113
1114 Now raises an error rather than outputting nonsensical name attributes on form inputs
1115
1116 Removed incorrect leading '/' on template paths (e.g. in logs, stack traces)
1117
1118 Fix -- was accepting close tags that are a prefix of the start tags, e.g. <foo>...</fo>
1119
1120
1121 Rapid tag Library
1122
1123 Rapid generators utilising the new DRYML generators feature. Pages, cards, forms, and the main navigation tag, are all
1124 generated now.
1125
1126 New layout mechanism, and simplified <page> tag. Together with the Clean theme, it is not very easy to create column
1127 based layouts. As a result, the "layout" attribute (to <page>) is gone, as are tags like <aside-layout>.
1128
1129 The standard <page> tag now has just a <content:> parameter. Specific pages might add <content-header:> or
1130 <content-body:> themselves.
1131
1132 As a result of the switch to generators and the simplified page-layout stuff, there's quite a lot of change in Rapid.
1133
1134 <section with-flash-messages> will include the flash messages at the top of the section *unless* they are rendered by a
1135 sub-section or have been rendered already
1136
1137 Update forms with not render if the user doesn't have permission
1138
1139 Removed <nav> tag
1140
1141 Changed <a-or-an> to give you 'a hotel' not 'an hotel'
1142
1143 <card> now always renders a link if there is a show action. Closes #54
1144
1145 <collection> is no longer a polymorphic tag. Drag and drop support moved into separate tag: <sortable-collection>.
1146
1147 Got rid of <collection-preview>
1148
1149 <stylesheet> tag now calls Rails helper stylesheet_link_tag name to construct the link tag. This change was made so that the
1150 css files are automatically cached using the timestamp mechanism, e.g. application.css?1218209632. The media attribute is now
1151 'screen' instead of 'all' by default
1152
1153 Wrapped the output of <count> in a <span class='count'>
1154
1155 Renamed <name-for-collection> to <collection-name> and added a dasherize parameter
1156
1157 <ul> is gone from Rapid and is just a static tag again. Just do <ul><li repeat>
1158
1159 New version of IE7.js (http://ie7-js.googlecode.com/svn/trunk/lib/IE7.js rev 29)
1160
1161 <with-fields> (and hence <field-list>) now display fields in the order declared in the model
1162
1163 <card> and <show-page> no longer include the created_at timestamp
1164
1165 Added labels and titleize attributes to <editor for='HoboFields::EnumString'>
1166
1167 Added force (no edit check) attribute to <input>
1168
1169 <hidden-form-field> (formerly <hidden-field>) is gone
1170
1171 Fix to default label on non-ajax <remote-method-button>
1172
1173 Now outputs <span> not <div> to wrap field-with-errors (<div> is invalid)
1174
1175 Added <transition-buttons> and <transition-button> (lifecycles)
1176
1177 Added <dev-user-changer> when in development mode if there is a user model
1178
1179 <with-fields> now skips deleted_at by default
1180
1181 <name> now properly respects :name => true (in the model)
1182
1183 Optimised <count> so that it doesn't hit the DB for already loaded collections
1184
1185 Removed <heading> and <sub-heading> and <article>
1186
1187 Allowing <def tag=input for=MyModel> to customise inputs for any belongs_to :my_model
1188
1189 Changed 'There are no whatsits' message to 'No whatsits to display'
1190
1191 Moved to nicedit (nicedit.com) for HTML inputs and editors. Dropped all TinyMCE stuff. It turns out that this change too will
1192 be temporary, as nicedit is a bit lacking. It seems that the YUI Editor will be the editor of choice, but we'll support it
1193 with a plugin, rather than make it part of core Hobo.
1194
1195 Added default empty message to <table-plus>
1196
1197 Rename <belongs-to-menu-editor> to <select-one-editor> and improvements. Removed "View" link.
1198
1199 Made <view> fall back on to_s rather than giving up
1200
1201 select-many: disabled options in the select drop down instead of trying to hide them. Fixed a problem in safari where 'choose
1202 xxx...' would get added by mistake to the list
1203
1204 New 'options' attribute for <integer-select-editor>
1205
1206 If no <input> tag found, fall back on an input for the COLUMN_TYPE if defined
1207
1208
1209 Model Controller
1210
1211 The collection actions, e.g. PostController#comments, PostController#new_comment and PostController#create_comment have
1212 now been moved to the controller that looks after that particular model, e.g. CommentsController#index_for_post,
1213 CommentsController#new_for_post and CommentsController#create_for_post. The old way was just plain wrong.
1214
1215 Named instance var (e.g. @post) is set in body of web methods
1216
1217 Factored out redirect code into #redirect_after_submit
1218
1219 Ensure default ordering is respected when paginating
1220
1221 Fix to checking in superclass for permission_denied and not_found methods
1222
1223
1224 Migration generator
1225
1226 Fixed bug with :null setting
1227
1228 Ignore sessions table when using the ActiveRecord session store. Closes #187.
1229
1230 Fix to loading models that was causing stack overflows (double alias_method_chain)
1231
1232 Ignore schema_migrations table
1233
1234 Fix to loading of namespaced models
1235
1236 Fix to 'm' option on Windows
1237
1238
1239 hobo_front_conroller -- removed search page
1240
1241
1242 Clean theme
1243
1244 Fix to form submit buttons in IE
1245
1246 Fixed problem with height of user-changer
1247
1248
1249 hobo-rapid.js
1250
1251 Hobo.applyEvents is gone - now uses lowpro for all JS events
1252
1253 Only do resetForm on success. Add new onSuccess callback to Hobo.ajaxRequest
1254
1255
1256 Routing
1257
1258 Routes are now reloaded automaticaly on every request in development mode, but you can turn this off if it gets slow.
1259 (See hobo generator, below)
1260
1261 Fixes to lifecycle routes, so that object_url(obj, :signup, :method => 'post') works
1262
1263 Clean-up so that :format => false doesn't sneak into route options
1264
1265 Better error reporting if DB problems occur during routing
1266
1267 Doesn't try to load routes when running script/destroy
1268
1269
1270 Subsites
1271
1272 New hobo_subsite generator, and introduced app/views/taglibs/front_site.dryml as the taglib for non-subsite pages.
1273
1274 The subsite taglib for, say, admin, is not admin_site.dryml, not admin.dryml
1275
1276 Added Hobo.subsites method to enumerate available subsites. Used by Hobo::ModelRouter
1277
1278 hobo generator
1279
1280 Added config option in initializers/hobo.rb to choose if routes are reloaded on every request (default is yes)
1281
1282 Hobo::ModelRouter.reload_routes_on_every_request = true
1283
1284 Now generates a blank application.css
1285
1286
1287 User controller
1288
1289 The standard actions (login, signup, logout, forgot_password, reset_password) now respect the auto_actions declaration.
1290 Closes #80
1291
1292
1293 Fix to generate_tag_reference.rake so that maruku is not required when not being used
1294
1295
1296 Lifecycles
1297
1298 Moving default user lifecycle (signup) from Hobo::User into the generated model file (hobo_user_model generator). Closes #148
1299
1300 Fixed problem with lifecycle keys when timezone was not configured. Now raises an error in that case. Closes #146
1301
1302 Changing lifecycle action names from signup_page (the form page) and signup (the post action), to signup (the form page) and
1303 do_signup (th epost action)
1304
1305
1306 Hobo models
1307
1308 Removed :manged => true option for has_many :through. ActiveRecord now does behaves like this by default.
1309
1310 Adding member_class meta-data when calling find_by_sql. Closes #231.
1311
1312 Moved Hobo.models to Hobo::Model.all_models, (also added Hobo::ModelController.all_controllers)
1313
1314 Added #foo_is? for every belongs_to :foo
1315
1316 record.foo_is?(x) is like record.foo == x but does not force foo to load
1317
1318 Have an SEO friendly URL (#to_param) by default on any model with a name attribute
1319
1320 Added #acting_user, virtual attribute set to the user that does a user_update, user_save etc.
1321
1322 Include virtual attributes (e.g. a #name method) when guessing name, description etc.
1323
1324
1325 HoboFields
1326
1327 Removed RedCloth monkey-patch. Not needed (and broken) in RedCloth 4
1328
1329 Support :null => true/false on belongs_to
1330
1331 Making HoboFields::HtmlString a subclass of HoboFields::Text
1332
1333 Adding :decimal as another name for BigDecimal
1334
1335
1336 Removing symlink_plugins script now that it turns out there's no need for symlinks
1337
1338 Just clone the whole hobo repo to vendor/plugins/hobo
1339
1340
1341
1342 hobo_user_model generator
1343
1344 Removed permission methods that are never used
1345
1346 Replaced set_admin_on_forst_user with the actual code (a one liner) for greater clarity
1347
1348 Added forgotton password mailer
1349
1350 Adding email address to standard model (for forgotten password email)
1351
1352
1353
1354 Scopes
1355
1356 Goodbye def_scope (Rails now has named_scope). Made automatic scopes work with named_scope
1357
1358 apply_scopes now works on other scopes, e.g. User.admin?.apply_scopes(...)
1359
1360 Added by_most_recent automatic scope
1361
1362 Added is and is_not automatic scopes
1363
1364 Made search scope AND terms rather than OR
1365
1366
1367 Removed dump_fixtures rake task. See lighthouse #51
1368
1369
1370 Hobo controller -- adding #call_tag (#render_tag without the render)
1371
1372
1373 Symlinked generators now even work when they call each other (hobo_model_resource => hobo_model)
1374
1375
1376 Hobo support - renamed Enumerable#search to Enumerable#map_and_find. Was clashing with the #search automatic scope
1377
1378
1379 Multi-model forms
1380
1381 Hobo's support for multi-model forms has been improved, but not completed as Rails is moving in this direction too, so we
1382 need to wait and see what happens:
1383
1384 DRYML - improvements to DRYML's mechanism to figure out name='...' attributes on form inputs
1385
1386 Added experimental support for post.comments_by_user[a_user]
1387
1388 Hobo models -- adding include_in_save support for transactional and validated multi-model saves
1389
1390 Hobo models -- add origin and origin_attribute accessors, to help DRYML figure out the correct name attribute for input
1391 tags
1392
1393 Tweaks to Hobo.get_field_path semantics
1394
1395 Better handling of hashes wrt DRYML implicit context
1396
1397
1398 Valid HTML
1399
1400 Various improvements to outputting valid HTML have been made to both DRYML and Rapid
1401
1402 Removed use of invalid html attributes like hobo-model-id, hobo-update
1403
1404 Empty are output as <br> when using a HTML doctype and <br /> when using XHTML
1405
1406
1407 Fix to site-search for better DB comptibility (Oracle in particular had a problem)
1408
1409
1410 Hack Rails so that generators are found in symlinked plugins (didn't this get fixed once already?\!)
1411
1412 Bundles
1413
1414 Pass the callers options to the Bundle#defaults
1415
1416
1417 Hobo Modles --
1418
1419 Migration generator -- exit with a warning if there are pending migrations
1420
1421
1422 Removed tabla theme
1423
1424
1425 Added Guest#login ("Guest") (used by user-changer menu)
1426
1427
1428 Adding #signed_up? to Hobo::User and Hobo::Guest (opposite of #guest?)
1429
1430
1431 All generators moved to rails_generators directory
1432
1433
1434 Hobo::HoboHelper -- new hook for customising URLs - base_url_for
1435
1436
1437
d1b456ab » tablatom 2008-04-18 Hobo changelog 1438 == Hobo 0.7.5 ===
1439
1440 Restructuring the git repo -- all the different gems/plugins live
1441 in the same repo now (github.com/tablatom/hobo)
1442
769fb19d » tablatom 2008-04-18 New version numbers 1443 Change to themes - the stylesheet and tablib are now called
1444 (e.g. for the 'clean' theme) clean.css and clean.dryml
1445
d1b456ab » tablatom 2008-04-18 Hobo changelog 1446 New rake task generate_tag_reference. Creates simple HTML reference
1447 docs, including any inline documentation comments (found
1448 immediately above the <def>)
1449
1450 ModelController
1451
1452 Made it possible to have a custom #permission_denined and
1453 #not_found in ApplicationController
1454
1455 Improved logic for figuring out redirect after destroy
1456
1457 Fix to bug where we would turn pagination off when we shouldn't
1458
1459 We now have a list of mime-types that we *don't* paginate for
1460 (can be extended)
1461
1462 hobo_index now silently skips pagination when the passed finder doesn't support it
1463
1464 Fix to auto_actions :except => :collections
1465
1466 Fix to rendering permission denied errors
1467
1468
1469 Fixes for IE6
1470
1471 The rapid-pages now include the fabulous IE7.js when the client
1472 is IE6.
1473
1474 http://dean.edwards.name/IE7/
1475
1476 The clean theme now works much better in IE6.
1477
1478 hobo-rapid.js -- fix displaying the empty-message after a removeButton
1479
1480
1481 Hobo models
1482
1483 No longer defines Model[...] (in Hobo use Model.named(foo) instead)
1484
1485 Fix to MyHoboModel.defined_scopes sometimes returning nil
1486
1487 Allowing belongs_to and has_one associations to be set by name
1488 during mass-assignment
1489
1490 e.g. person.attributes = { :department => 'Sales' }
1491
1492 Automatic scopes -- give up silently if there's a problem with the DB
1493
1494 Fix to :managed => true option on has_many. No longer requires
1495 the through association to be declared first.
1496
1497 Auto-completers are now working again. The tag to use is
1498 <name-one>. Should be a how-to for this availabe soon.
1499
1500 In-place-edits are working again
1501
1502 New controller method call_dryml_tag (added by DRYML template
1503 handler). Calls a tag and returns the result as a string.
1504
1505 Fix to <after-submit stay-here> following a part update
1506
1507 Bundles -- fixes to class renaming
1508
1509 <remote-method-button> is working again
1510
1511 Refactored the DRYML parser to make it easier to parse DRYML in other contexts
1512
1513 Rapid:
1514
1515 Improvements to wording on index-page
1516
1517 Display the users name, not login in the account-nav
1518
1519 Small tweaks to generic tags
1520
1521 Fix: The <view> for various types was reverting to a plain String view
1522
1523
1524 Switching to dependency on hobofields and will_paginate as gems rather than plugins
1525
1526 Fix: DRYML parser works again with REXML versions back to 3.1.4
1527
1528 Fix: Hobo No longer depends on redcloth unless you're using markdown
1529
1530 Routing
1531
1532 Recover from ActiveRecord::StatementInvalid (routes may not be
1533 declared). Without this you sometimes can't even run rake if
1534 something is invalid
1535
1536 Don't do routing (and hence load models) during
1537 script/generate. This *finally* fixes the dreaded 'User is
1538 reserved by Rails' error
1539
1540
6f65145e » tablatom 2008-04-07 Changelog 1541 == Hobo 0.7.4 ===
1542
1543 Switching to a new style for the changelog. Now that we're using git
1544 the commit logs are a lot better, so this file is just going to
1545 contain edited highlights of the commit log.
1546
1547 Rapid: making <view> make more use of the to_html API from
1548 HoboFields
1549
1550 Reworked REXML extensions. Now compatible with REXML 3.7.1.1
1551 through 3.7.1.3
1552
1553 ModelController -- fix to chosing whether or not to paginate
1554
1555 Various IE Javascript fixes
1556
1557 Rapid, <select-many>: Additional params, and IE fix
1558
1559 Moving the part-contexts javascripts from the very end of the
1560 output, to the end of <body>
1561
1562 The script tag must now be output by the <page>, instead of
1563 being appended automatically by DRYML. This is done in
1564 <simple-layout/>
1565
1566 Rapid -- removing <view for='percentage'>
1567
1568 DRYML -- improved error reporting
1569
1570 Hobo::Model: fix -- we were breaking inheritence of validations
1571
1572 Model generators -- adding some helpful comments
1573
1574 Rapid: Fix to permission check for adding to primary collection on
1575 <show-page>
1576
1577 Rapid: removing empty message from <index-page>
1578
1579 Rapid: Fix to enum-string editor
1580
1581 Rapid: Fix to auto-label in <count>
1582
1583 User model generator -- change create permission to allow admin to
1584 create another admin
1585
1586 New lowpro version
1587
1588 New automatic css class 'with-owner' on default <card/>
1589
1590 Hobo::ModelController -- fix to automatic inclusion of reorder
1591 action for models that act as list
1592
1593 Improvements to default <card>
1594
1595 Rapid javascript: try to automatically bring back the
1596 empty-message on removing the last item from a collection
1597
1598 Scopes: fix to apply_scopes
1599
1600 Fix to <name-for-collection>
1601
1602 Rapid tags: Support for the empty-message on a collection
1603 re-appearing automatically if all the items are removed by the
1604 user
1605
1606 DRYML: scoped variables -- assigning to a variable now modifies
1607 it's value in a parent scope if it's present in one
1608
1609 <delete-button> fix -- was incorrectly guessing 'in-place' during
1610 ajax update
1611
1612 New tag <name-for-collection>
1613
1614 Fix to <view for='text'/>
1615
1616 Improvements to <table-plus>
1617
1618 Ability to sort by name of 'this' when 'this' is one of the
1619 fields
1620
1621 Keep table headings in when the table is empty
1622
1623 Don't include page nav if the collection doesn't support it
1624
1625 Improvements to rapid pages
1626
1627 Allowing has_many associations in forms
1628
1629 Allowing the primary collection on a show page to be provided by
1630 an instance variable (so that filtering/searching/pagination are
1631 supported)
1632
1633 Tidy of <show-page>
1634
1635 <index-page> -- improved wording
1636
1637 Fixes to <index-page>
1638
1639 <account-nav> make 'logged in as bob' a link to current_user
1640
1641 Factored out default <collection> into <base-collection>, and
1642 fixes to <collection-preview>
1643
1644 <base-card> -- add 'edit' link
1645
1646 <base-card> change 'title' param to 'heading' and make it easier
1647 to provide your own
1648
1649 <creation-details> use a div rather than a span
1650
1651 Fix to <select-many>
1652
1653 Fix to <select-menu>
1654
1655 Fix to <input for='datetime'>
1656
1657 Rapid forms: switching to <select-one> and <select-many> naming
1658
1659 <form> -- don't include auth token on GET forms
1660
1661 Rapid: <belongs-to-menu-editor> -- don't show 'View' link if the
1662 thing is not linkable
1663
1664 Rapid: adding sort attribute to <belongs-to-menu-editor>
1665
1666 Rapid: default 'no-filter' option for filter-menu
1667
1668 Rapid: Fix to extraneous whitespace in <you>
1669
1670 Rapid: better guess of label on <count>
1671
1672 Rapid: Use association name rather than class name in css classes
1673 on <a> tags (when available)
1674
1675 Rapid: Fix to use of <else> with <a>
1676
1677 Removed 'all' method from ScopedProxy - delegates to the model
1678 class instead
1679
1680 Fix to origin_attribute on scoped associations
1681
1682 Fix to with_abc automatic scopes
1683
1684 New automatic scopes 'include' and 'search', and improvements to
1685 order_by scope
1686
1687 Scopes: fix to parameterised scopes on associations
1688
1689 Scopes: new apply_scopes method for models and has_many
1690 associations
1691
1692 Pass a hash of scope-name => scope-arguments (single valur or
1693 array), the result will be scoped accordingly, but only if the
1694 first argument to the scope is not blank. It's designed to be
1695 used from controllers: if a param (e.g. a search or filter) is
1696 not included in the request, the scope is not applied
1697
1698 Hobo::ModelController -- fix to permission denied response for
1699 ajax actions
1700
1701 Hobo::ModelController -- Fix to flash message after update
1702
1703 Hobo::ModelController -- fix to redirection after submitting a
1704 form
1705
1706 Hobo::ModelController -- cleaning up sorting and filtering
1707
1708 Hobo::ModelController -- make reorder one of the automatic
1709 :write_only actions if the model has the position_column method
1710
1711 <with-fields> better error reporting
1712
1713 Hobo::ModelController -- adding automatic reorder action
1714
1715 Works with acts_as_list and scriptaculous drag and drop
1716 re-ordering
1717
1718 Hobo::Model adding :managed => true option to has_many
1719
1720 Only valid with the :through option. Records of the joining
1721 model will be created and destroyed as required when this record
1722 is saved, in order to honour the contents of the association at
1723 save time.
1724
1725 Hobo::Model -- adding .user_update
1726
1727 Hobo::Model -- fix to user_find
1728
1729 Hobo::HoboHelper -- #map_this (used by repeat) will set this_key
1730 when iterating over a hash
1731
1732 DRYML: made this_field_reflection do a better job of figuring out
1733 the current reflection
1734
1735 DRYML: adding this_key -- gives you the current key when
1736 <repeat>ing on a hash
1737
1738 DRYML: Error message for invalid attributes on parameter tags,
1739 e.g. <foo: if-'...'>
1740
1741 Hobo module - fix to permission checks on unexpected objects
1742
1743 Hobo module -- always return false for can_create? on has_many
1744 associations that are not 'simple'
1745
1746 (i.e. they have conditions)
1747
1748 DRYML: Fix for replacing an overridden tag parameter
1749
1750 Rapid pages: new submit label on show page (add to collection)
1751
1752 Rapid pages: Add param to <show-page>
1753
1754 Rapid pages: by default, append app-name to every title, override
1755 with full-title attribute (<base-page>)
1756
1757 Rapid pages: <show-page> -- update primary collection count when
1758 an item is deleted
1759
1760 Rapid pages: fix on <show-page>
1761
1762 Rapid pages: make edit link on show-page check if the edit action
1763 is linkable
1764
1765 Rapid forms: adding inputs (just textareas) for textile and
1766 markdown
1767
1768 front_controller generator -- use <collection-preview> in
1769 index.dryml
1770
1771 Rapid generics: adding support for <collection with='&MyModel'/>
1772
1773 Rapid tags: switching to <main-nav> tag, called from simple-layout
1774
1775 hobo_model_resource generator -- removing creating of (rails
1776 style) resource route
1777
1778 Improvements to rapid pages
1779
1780 Allowing has_many associations in forms
1781
1782 Allowing the primary collection on a show page to be provided by
1783 an instance variable (so that filtering/searching/pagination are
1784 supported)
1785
1786 Rapid: Fix to use of <else> with <a>
1787
1788 Removed 'all' method from ScopedProxy - delegates to the model
1789 class instead
1790
1791 Fix to origin_attribute on scoped associations
1792
1793 Rapid tags: disabled <belongs-to-view>, new <view
1794 for='ActiveRecord::Base'> is used now
1795
1796 Hobo::Model -- fix to reverse_refelction
1797
1798 Rapid tags: Adding <head:> and <foot:> params to <ul>
1799
1800 Rapid tags: Adding params to <select-many>
1801
1802 Rapid tags: adding support for <ul empty> (force the <ul> to
1803 appear even if empty)
1804
1805 Fix: automatic scopes not_ and "association name" were not being
1806 created
1807
1808 Rapid forms: Renaming <name-array-input> to <select-many> (and
1809 improvements)
1810
1811 Hobo::Model -- adding assigment by arrays of names to has_many
1812 associations
1813
1814 Hobo::Model -- adding Model.manage_join_records
1815
1816 Routing: fix -- don't try to load assemble.rb if
1817 ApplicationController not defined
1818
1819 Rapid pages: Fix to body class on <new-page>
1820
1821 Rapid pages: fix to show page
1822
1823 Rapid pages -- fixing pluralisation of <index-page> title
1824
1825 Adding support for 'this' psuedo-field to <with-fields> and
1826 <with-fields-names>
1827
1828 In particular, this makes it possible to include the object
1829 itself in a table plus column
1830
1831 Adding a general <view> for ActiveRecord objects (just <a/>)
1832
1833 Allowing lookup of polymorphic tags to include ActiveRecord::Base
1834 or Object as a catch-all
1835
1836 Rapid generics: make collection preview hide the show-all link if
1837 there are none
1838
1839 <page-nav> now uses will_paginate's helper to provide much better
1840 page navigation than before.
1841
1842
83648845 » tom 2008-03-13 Merging sandbox into trunk ... 1843 === Release 0.7.3 ===
1844
1845 hobo command -- options are now:
1846
1847 --user-model <model-name-or-false>
1848 --svn # Use 'svn co' to checkout Hobo
1849 --create-dbs # Run rake db:create:all
1850 --hobo-src <path to hobo src>
1851 -d | --database <database> # e.g. mysql, sqlite
1852
1853
1854 Core extentions
1855
1856 Extracted from Hobo into new project: HoboSupport
1857
1858 Some notable changes:
1859
1860 #every has gone: users.every(:name) is now users.*.name
1861
1862
1863 hobo generator
1864
1865 application.dryml now has a generated <app-name> tag
1866
1867
1868 hobo_front_controller generator
1869
1870 Generated "search" route is now called "site_search"
1871
1872 Removed unused --no-user option
1873
1874
1875 hobo_migration_generator
1876
1877 Removed from Hobo - now part of the HoboFields spinn-off project
1878
1879
1880 New generator hobo_model_resource creates a model + controller pair
1881
1882
1883 Rapid Javascripts
1884
1885 Default ajax message changed to "Saving..."
1886
1887 Hobo.ajaxRequest now takes the message as an option (was the second argument)
1888
1889 Fix to showing the ajax spinner in the right place in IE
1890
1891 Hobo.addUrlParams now has an option to remove specified parameters
1892
1893 Fixes to HasManyThroughInput behaviour
1894
1895 New behaviour supporting filtering (e.g. on index pages) using <select> tags
1896
1897
1898 Rich data types
1899
1900 These are all part of the HoboFields project now
1901
1902 Booleans are now represented by the type Hobo::Boolean which is still part of Hobo
1903
1904
1905 Active record extensions
1906
1907 Monkey-patch to make AR complain less about missing classes for
1908 polymorphic associations
1909
1910
1911 The block-based "composable query mechanism" is gone. Named scopes are much better.
1912
1913
1914 Hobo's original implementation of what later became "Sexy Migrations" is gone.
1915
1916
1917 Hobo module utility methods
1918
1919 Hobo.field_types and Hobo.symbolic_type_name are gone - now part of
1920 HoboFields
1921
1922 Fixes to can_edit?
1923
1924
1925 Site-search:
1926
1927 Now automatically skips searching of non-linkable models.
1928
1929 Can now be passed an array of models (including scoped finders) to search
1930
1931 Now renders <search-card> instead of <card>
1932
1933
1934 New feature: Hobo::DevController
1935
1936 A controller that adds developer support features (not in production
1937 mode). For now it just adds a method that can be used to change the current_user:
1938
1939 /dev/set_current_user?name=Fred+Bloggs
1940
1941 Very useful
1942
1943
1944 Hobo Routing
1945
1946 Hobo::ModelRouter.linkable? can now be used with all the routes
1947 created by Hobo.
1948
1949
1950 Hobo helpers
1951
1952 object_url now always returns nil if the URL requested is not a
1953 route known to Hobo routing
1954
1955
1956 object_url never includes _method= in the query string
1957
1958 dom_id is now moved to DRYML's TemplateEnvironment
1959
1960 can_view? now utilises some simple cacheing
1961
1962 signup_url now defaults to the
1963
1964 linkable? no longer accepts an array as parameter
1965
1966
1967 Rapid helpers
1968
1969 ajax_updater(url_or_form, message, update, options) is now
1970 ajax_updater(url_or_form, update, options) (message has become an
1971 option)
1972
1973
1974 DRYML
1975
1976 DRYML integration changes -- this is a start to the work of
1977 extracting DRYML from Hobo.
1978
1979 The fallback from a template file to a tag, e.g. from index.dryml
1980 to <index-page/> is now handled by DRYML, not by Hobo's model
1981 controller. You can customise the chosed tag by calling
1982
1983 dryml_fallback_tag("my-tag") from your controller action
1984
1985 The default DRYML context is now the value returned by
1986 #dryml_context (was previously the value of @this). #dryml_context
1987 returns @this by default but can be overridden.
1988
1989 <include src="mytags" bundle="foo">
1990
1991 includes a taglib from the plugin that the 'foo' bundle came from,
1992 and puts into effect any class renames from that bundle (for
1993 polymorphic tags).
1994
1995 Fix - tags with capitalised names now work
1996
1997 <my-param:></my-param:> can now be used to clear the contents of a
1998 parameter. It's not the same as <my-param:/> (which does nothing)
1999
2000 New psuedo parameters for insterting content in and around
2001 parameters. e.g. for a param 'title':
2002
2003 <before-title:> and <after-title:> for insterting content
2004 immediately before and after the parameter.
2005
2006 <append-content:> and <prepend-content:> for inserting content at
2007 the begining and end of the default content.
2008
2009 Note these are all just syntactic sugar for things you can do
2010 already with <param-content/> and <title: replace> /
2011 <title: restore/>
2012
2013 When changing the context with the ':' shorthand, now use dashes,
2014 not underscores (the idea being that underscores are soley for use
2015 in Ruby code
2016
2017 e.g. <with:my-field>
2018
2019 Control attributes <my-tag if> is equivalent to <my-tag if="&this"/>
2020 (remember these test for blank? / not blank?, not Ruby trueness)
2021
2022 this_type now never returns AssociationReflections,
2023 this_field_reflection does
2024
2025 this_type now returns Hobo::Boolean for boolean types.
2026
2027 this_field_dom_id is now just dom_id -- pass an object and an
2028 attriubte, or nothing to default to this and this_field
2029
2030 Can now do merge-params="param1, param2" to merge just the named
2031 params
2032
2033 Fix: <foo:foo> (i.e. field name same as tag name)
2034
2035 Fix: using alias-of with a reserved word was broken
2036
2037
2038 Hobo models
2039
2040 New method Model.named to find things by name,
2041 e.g. Category.named("Cars"), also aliased as Category["Cars"]
2042
2043 Various new methods to support permission. This moves much of the
2044 logic into the model (from Hobo::ModelController). These methods are
2045 all passed, as the first argument, the user performing the action. A
2046 Hobo::Model::PermissionDeniedError is raised if the permission check
2047 fails.
2048
2049 Class methods:
2050
2051 user_find -- find with view-permission check
2052 user_new -- new with create-permission check
2053 user_create -- create with create-permission check
2054
2055 user_can_create? -- test to see if a user is allowed to create the model.
2056
2057 Instace methods:
2058
2059 user_can_create?
2060 user_save_changes
2061 user_view
2062 user_destroy
2063
2064 Models now get a new_foo method for each has_one :foo
2065
2066 The old id_name system is gone. Will be coming back in various
2067 guises (e.g. see .named above)
2068
2069 def_scope implementation factored out into separate modules
2070
2071 New metod #get_creator returns the value of the creator attribute
2072 (if there is one)
2073
2074 Various features exrtacted and now part of HoboFields
2075
2076
2077 Scopes
2078
2079 Note: Hobo will probably switch to has_finder which provides
2080 (nearly) all the functionality of Hobo's scopes and has a superior
2081 implementation. We'll extend has_finder to add the bits that it is
2082 missing.
2083
2084 The implementation of scopes has been factored out into separate models.
2085
2086 Large new set of automatically defined scopes. These are defined
2087 automatically when you call them for the first time, much like the
2088 magic finders in ActiveRecord (e.g. find_by_name_and_address):
2089
2090 For every has_many relationship (e.g. tags)
2091
2092 with_tag(t) -- find records that have tag c
2093 with_tags(a, b, c) -- find records that have all these tags
2094 without_tag(t)
2095 without_tags(a, b, c)
2096
2097 For every belongs_to and has_one (e.g. manager)
2098
2099 manager_is(m)
2100 manager_is_not(m)
2101
2102 For every regular field (e.g. name)
2103
2104 name_is(x)
2105 name_is_not(x)
2106
2107 For textual fields
2108
2109 name_contains(x)
2110 name_does_not_contain(x)
2111 name_starts(x)
2112 name_does_not_start(x)
2113 name_ends(x)
2114 name_does_not_end(x)
2115
2116 For boolean fields (e.g. published)
2117
2118 published
2119 not_published
2120
2121 For the various date/time columns (these must end _at, e.g. pulished_at)
2122
2123 published_before(x)
2124 published_after(x)
2125 published_between(x, y)
2126
2127 And finally
2128
2129 order_by(field_name) -- add an ORDER BY clause
2130 limit(n) -- add a LIMIT clause
2131 recent(n) -- orders by created_at and limits to n records
2132
2133
2134
2135 Hobo model controller
2136
2137 Permission and not-found errors are now handled centrally using the
2138 new rescue_from declaration in Rails. No need to worry about these
2139 in individual actions.
2140
2141 All the hobo actions (hobo_show, hobo_new etc) are greatly
2142 simplified. Much of the logic has been moved elsewhere, so it's now
2143 a lot easier to avoid using those actions at all and still get the
2144 usual features such as permission checks, fallback on page tags etc.
2145
2146 hobo_index now takes a "finder" (model class or scoped model
2147 class) as the first argument. If you want to retrieve the
2148 collection yourself, there's no reason to call hobo_index at all -
2149 just write a regular Rails style action.
2150
2151 The hobo_actions don't set any extra instance variables any more
2152 beyond @this. e.g. hobo_show_collection doesn't set @owner,
2153 because you can now use this.origin
2154
2155 As part of the previous change, #not_allowed? is gone.
2156
2157 Some work on autocomplete - might be working now :-)
2158
2159 auto_actions -- can now say
2160
2161 auto_actions :write_only # just gives you create, update and destroy
2162 auto_actions :read_only # gives you all except the above three
2163
2164 Support for scopes on declarative index actions:
2165
2166 index_action :scope => :my_scope
2167
2168 New method filter_by for easily adding filtering to index actions, e.g.
2169
2170 # assuming category and price_range are scopes defined on the current model
2171 def index
2172 finder = filter_by(:category => params[:category], price_range => [params[:min_price], params[:max_price])
2173 hobo_index finder
2174 end
2175
2176 The old data_filters stuff is gone. This was based on the
2177 "composable query" thing which is gone too (see above).
2178
2179 Dependency on classic_pagination is gone. Now uses will_paginate
2180
2181
2182
2183 User model
2184
2185 Hobo::UserController.user_models is now Hobo::User.user_models
2186
2187 New method Hobo::User.default_user_model returns the user model used
2188 in various places if no model is specified.
2189
2190 Now requires the current password to be provided when changing the
2191 password (at the model level and in the related rapid-pages)
2192
2193 User.login_attr renamed to User.login_attribute
2194
2195
2196 User controller
2197
2198 Now includes the rapid_user_pages taglib (these have been separated
2199 from the main rapid-pages taglib)
2200
2201 New helper: logout_current_user
2202
2203
2204 Bundles
2205
2206 Support for multiple bundles per plugin -- bundles can now be
2207 selective about which models and controllers they include.
2208
2209 Adding support for: belongs_to :foo, :polymorphic => :optional
2210
2211 Magic option names are now available inside the model and controller *instances*
2212
2213 Bundle options with defaults now work with nested option hashes
2214
2215 belongs_to in a bundle model can now be given an :alias option - an
2216 alias of the (parameterised) belongs_to is created so that the model
2217 has a known API
2218
2219
2220 Core DRYML tags
2221
2222 <wrap> can be given a parameter="..." attribute to wrap the content
2223 in a template using the given parameter name.
2224
2225 <repeat> can now be used with <else> (i.e. the collection was empty)
2226
2227
2228 Rapid tags: general
2229
2230 New standardised API for getting metadata from collections
2231
2232 #association_name returns th, er, name of the association. If
2233 called on a named scope it returns the original association name,
2234 not the scope name
2235
2236 #member_class returns the (expected) class of items in the array
2237
2238 #origin returns the object from which the collection was obtained
2239
2240 #origin_attribute returns the name of the attribute from which the
2241 collection was obtained
2242
2243 So, unless something has changed:
2244
2245 collection.origin.send(collection.origin_attribute) == collection
2246
2247 This API is made available on all association proxies, regular
2248 arrays and will_paginate collections.
2249
2250 New taglib - rapid_generics - provides various tags used by the
2251 default pages. These tags are designed to work generically with your
2252 models, but can also be customised of course.
2253
2254 <table> -- the "Edit" link now goes to action="edit" (was linking to
2255 the show page)
2256
2257 <count> is now better at guessing the label to use, also now
2258 supports <count lowercase/> to downcase the label.
2259
2260 <clearer> is gone - hooray for overflow: hidden
2261
2262 Added do to <you> as in: <you do/>
2263
2264 New tag <filter-menu/> creates a form with a <select>. Used for
2265 adding menu-based filters to index pages.
2266
2267 New tag <comma-list>
2268
2269
2270 Rapid tags: editing
2271
2272 <editor> now merges params and attributes (e.g. you can add your own css classes)
2273
2274 Most ajax controls now just give "Saving..." as the default ajax
2275 message.
2276
2277
2278 Rapid tags: forms
2279
2280 <form> (without an action attribute) now renders nothing if the
2281 calculated action is not linkable
2282
2283 If you provide action="..." to <form> (i.e. a manual form) the
2284 automatic css classes are not added.
2285
2286 <delete-button> now renders nothing if the destory action is not linkable
2287
2288 <delete-button> now automatically switche to non-in-place delete if
2289 the thing being deleted is the top-level context if the page.
2290
2291 New tag <select-menu>
2292
2293 <remote-method-button> now switches to in-place mode if you give any
2294 ajax attribute (e.g. success="...")
2295
2296 <after-submit> -- can now do
2297
2298 <after-submit go-back> (requires session[:previous_uri])
2299
2300 and
2301
2302 <after-submit stay-here>
2303
2304
2305 Rapid tags: navigation
2306
2307 Now assumes will_paginate style pagination instead of classic_pagination
2308
2309 <account-nav> now proivides a link to the account page by default
2310
2311 <account-nav> now provides a complete set of parameters for customisation
2312
2313
2314 Rapid tags: pages
2315
2316 login, signup and account-disabled pages have been moved out to
2317 rapid-user-pages
2318
2319 simple-layout -- the main-nav parameter is now on a wrapper around
2320 <magic-nav> rather than actually on <magic-nav>, so this now works
2321 as you'd expect:
2322
2323 <main-nav:> --- your nav here --- </main-nav:>
2324
2325 aside-layout -- the aside now appears in the output even if it's
2326 empty
2327
2328 <show-page> -- various improvements and new parameters
2329
2330 <permission-denied-page> now sets a body class, and the message can
2331 be changed with an attribute.
2332
2333 <app-name> is gone -- this is now automatically generated in your
4ee06703 » tom 2008-03-13 changelog 2334 application.dryml (you may need to manually add this to existing
83648845 » tom 2008-03-13 Merging sandbox into trunk ... 2335 apps)
2336
2337
2338 Rapid tags: plus
2339
2340 New tag <change-password-form>
2341
2342
2343
534a7989 » tom 2008-01-04 changelog 2344 === Release 0.7.2 ===
2345
2346 Migration generator
2347
2348 Fixed "no such method table_name" bug
2349
2350 Fixed various problems with specific column types, in particular
2351 decimal colums were problematic.
2352
2353
2354 Model and controller generators:
2355
2356 Brought test related files up to date with latest Rails
2357
2358
2359 Model controller
2360
2361 Fix: now correctly renders pages with validation errors for tag
2362 pages (pages with no dryml file)
2363
2364 index_action and show_action can now be passed options for Hobo's
2365 default actions rather than giving a block. e.g.
2366
2367 index_action :foo
2368 hobo_index :page_size => 10
2369 end
2370
2371 Can now be written
2372
2373 index_action :foo, :page_size => 10
2374
2375
2376 Hobo user model generator
2377
2378 Added :default => false to administrator field
2379
2380
2381 DRYML
2382
2383 Polymorphic tags -- looking up the polymorphic tag for an array will
2384 now use the 'member_class' of the array if available.
2385
2386
2387 Rapid
2388
2389 New generic tag <collection>. Used to create type-specific
2390 renderings of collections. E.g. you can
2391
2392 <def tag="collection" for="Comment">
2393
2394 To customise how an array of comments are displayed. This will get
2395 picked up by the default pages.
2396
2397
2398 Rapid pages
2399
2400 Removed <default-layout/> -- dryml has built in facilities for
2401 setting and overriding defaults so this was not needed.
2402
2403 Login and signup pages now specify "simple" layout, so e.g. if you
2404 redefine <page> to use "aside" layout, then login and signup will
2405 still use the simple layout.
2406
2407 Various improvements to the default pages
2408
2409 <index-page> new params
2410
2411
2412 Plugins
2413
2414 Changing from hobo_* naming convention to rapid_*
2415
2416
2417
2418 Clean theme
2419
2420 Many small style improvements
2421
2422 Support for aside layout
2423
2424
2425
2426
2427
5216e60e » tom 2007-12-22 merging sandbox 591..670 to... 2428 === Release 0.7.1 ===
2429
2430 Hobo 0.7 is tested against Rails 2.0.1
2431
2432 Adding docs to the repo in /doc, including the beginings of a Hobo
2433 tutorial
2434
2435 Front controller generator -- improvements to index page (app home
2436 page)
2437
2438 Migration generator -- fix for situations where a table is being
2439 renamed and modified in the same migration.
2440
2441 Hobo user controller generator -- no index page for users by default.
2442
2443
2444 Hobo models
2445
2446 New style for declarting extra metadata on fields /
2447 associations. Now part of the field / assoication declaration
2448 instead of requiring an additional declaration:
2449
2450 set_creator_attr :foo
2451 is now:
2452 belongs_to :foo, :creator => true
2453
2454 Note that :creator => true can now be set on either a belongs_to
2455 or a string field. In the latter case the string is set to the
2456 login name of the current user.
2457
2458 set_login_attr :username
2459 is now:
2460 username :string, :login => true
2461 (within the "fields do" block)
2462
2463 Can also write
2464 username :string, :login => true, :validate => false
2465 to disable the automatic login validations (see hobo/lib/hobo/user.rb)
2466
2467 Plus two new ones for fields: :name => true and :description => true.
2468
2469 All hobo models have a "recent" scope by default.
2470
2471 Added reflection helpers to find which collections are dependent.
2472
2473 The permission system can now be used to check for edit permission
2474 on the object (rather than individual field) level. If the model
2475 defined #can_edit?, that will be used, otherwise #can_update? is
2476 called with a nil 'new object'.
2477
2478 #same_fields? and #only_changed_fields? now return true without
2479 testing anything if the record passed is nil. This is more
2480 compatible with the new ability to test for general edit
2481 permission on an object.
2482
2483 #to_s now uses the declated name field (:name => true) if there is
2484 one
2485
2486
2487
2488
2489 Hobo user model
2490
2491 New class-level declaration set_admin_on_forst_user. Does what it
2492 says on the tin. Only use it if your user model defines a boolean
2493 field 'administrator'
2494
2495
2496 Active Record extensions -- removed dubious #include? optimisation
2497 from has_many associations.
2498
2499
2500 New plugin feature -- Bundles
2501
2502 Bundles are Hobo's equivalent to "appable plugins" or "engines". A
2503 plugin provides a bundle, and the app *instantiates* the bundle,
2504 possibly more than once in file app/assemble.rb. This is the wrong
2505 place to start documenting them but there are some examples in
2506 /plugins
2507
2508
2509 Hobo controllers
2510
2511 Options given to the include_plugin declaration have changed. They
2512 are now exactly the same as the attributes taken by DRYML's
2513 <include>
2514
2515
2516 Hobo model controllers
2517
2518 Removed cruft left over from view-layer permissions experiment.
2519
2520 Simplified template lookup mechanism and removed inheritence aware
2521 search for partials.
2522
2523 Added a cache for file-system tests to locate the correct
2524 template. This avoids the need to stat files in production mode.
2525
2526 Better smarts for where to redirect to after a model is created.
2527
2528 Better support for model controllers that handle more than one
2529 model. (this is a bit of a strange thing to do but a need for it
2530 cropped up in an app than has a single place for users of different
2531 types to log in)
2532
2533
2534 Hobo user controller
2535
2536 "Account not available" is now a separate page
2537 (<account-disabled-page>) instead of just a flash message.
2538
2539 Fixed occasional missing template bug
2540
2541
2542
2543 DRYML
2544
2545 DRYML now supports bundle class renaming when defining polymorphic
2546 tags
2547
2548 Changes to <include> for plugins:
2549
2550 <include src="plugin/foo/taglibs/baa"/>
2551 becomes
2552 <include src="baa" plugin="foo"/>
2553
2554 You can also say <include src="foo" bundle="abc"/> which includes a
2555 taglib from the bundle's plugin, as well as handling class renames
2556 for polymorphic definitions.
2557
2558 Fix to allow calling tags with upper-case letters in their names.
2559
2560
2561 DRYML core tags
2562
2563 <call-tag> now dasherises the tag name passed
2564
2565 <partial> is now just a trivial wrapper around render :partial
2566
2567
2568
2569
2570 Hobo helpers
2571
2572 can_edit? can now be given nil as the field parameter to test for
2573 general ability to edit this record (e.g. to decide wether to render
2574 an "Edit" link). Also, parameters now default to #this and nil.
2575
2576 Renamed create_model to new_for_current_user. Pass a class or
2577 association, defaults to #this.
2578
2579 New helper #font_models. Returns a list of models that are
2580 candidates to appear on the default front page and main nav.
2581
2582 Changes to linkable? Subsite is now a named option (:subsite =>
2583 "admin"), the target of the links defaults to #this and the action
2584 defaults to :index for model targets and :show for records.
2585
2586
2587 Hobo routing
2588
2589 Now automatically updates routes without restarting the server in
2590 dev mode (yay!)
2591
2592
2593 Site search -- don't search for records that are not linkable
2594
2595
2596 Hobo Rapid
2597
ea963507 » tom 2007-12-23 Bringing trunk into line wi... 2598 Clean theme is now the default theme
2599
5216e60e » tom 2007-12-22 merging sandbox 591..670 to... 2600 CSS -- small tweaks
2601
2602 JavaScript -- Ajax spinner now appears for a minimum time, and has a
2603 fade effect.
2604
2605 Clean theme -- many improvements
2606
2607 Added an ajax option -- :spinner_next_to. Pass the dom id of a node
2608 and the spinner will appear near that node.
2609
2610
2611 Rapid tag library
2612
2613 <field-list> now defaults to <view> not <edit> as the tag for the
2614 fields. Also, if the tag is <input>, non-editable fields are skipped
2615 (used keep them in but to drop back to views).
2616
2617 <card> displays nothing if the object is not viewable. Default card
2618 has various improvements.
2619
2620 New attribute <type-name dasherize/>
2621
2622 Fix: merge-attrs was missing on the belongs_to view
2623
2624 <boolean-checkbox-editor> now supports a custom ajax message and
2625 configures the ajax spinner to appear near the checkbox.
2626
2627 Fix: incorrect use of <ul> in <error-messages>
2628
2629 <magic-nav> -- removed serach item, extended to maximum of 6 models
2630
2631 Many, many improvements to the default pages
2632
2633 <with-fields associations="has_many"> iterates of all has_many
2634 relationships
2635
2636 Removed require of ruby-debug from fixdryml.task
2637
2638 New plugins featuring bundles: rapid_blog, rapid_comments,
2639 rapid_images and rapid_tagging. All are work-in-progress.
2640
2641
80b8fe52 » tom 2007-12-03 merging tom_sandbox 561..59... 2642 === Release 0.7 ===
2643
2644 Hobo 0.7 is tested against Rails 1.99.1 (aka Rais 2.0 RC2)
2645
2646 DRYML
2647
2648 Switched to dashes instead of underscores for tag and attributes
2649 names. These are converted to underscores in the underlying ruby
2650 code.
2651
2652 Unification of tempalte tags and non-template tags. There is now
2653 only one type of tag and two different ways to call a tag:
2654
2655 <my-tag>content directly inside the tag</my-tag>
2656
2657 <my-tag>
2658 <a-parameter:>Content inside a named parameter (note the colon)</a-parameter>
2659 <another-parameter:>Some more content</another-parameter>
2660 </my-tag>
2661
2662 Note that these styles cannot be mixed. If there is a parameter
2663 inside a tag call, there must be only parameters (and whitespace,
2664 which is not output)
2665
2666 In the first style, the call is implicitly equivalent to:
2667
2668 <my-tag>
2669 <default:>content directly inside the tag</default>
2670 </my-tag>
2671
2672 And by the same token, <tagbody/> is now written:
2673
2674 <do param="default"/>
2675
2676 The tagbody local variable is gone too. "if tagbody" is now
2677 "if all_parameters.default?" and "tagbody.call" is now
2678 "all_parameters.default"
2679
2680
2681 A rake task hobo:fixdryml has been added which does a pretty good
2682 job of converting Hobo 0.6 DRYML source-code to the new style. It
2683 will change every file in app/views/**/*.dryml, and keeps a backup
5216e60e » tom 2007-12-22 merging sandbox 591..670 to... 2684 copy of app/views in app_views_before_fixdryml. If you pass it CLASS=y
80b8fe52 » tom 2007-12-03 merging tom_sandbox 561..59... 2685 and ID=y it will 'dasherize' css classes and IDs too, which is the
5216e60e » tom 2007-12-22 merging sandbox 591..670 to... 2686 new Hobo convention. You can also pass DIR=... if you want to point
80b8fe52 » tom 2007-12-03 merging tom_sandbox 561..59... 2687 it somewhere other than app/views. It won't fix anything in erb
2688 scriptlets, e.g. use of the tagbody local variable. Expect to do
2689 some manual fixes after running the task (good job you've got that
5216e60e » tom 2007-12-22 merging sandbox 591..670 to... 2690 thorough test suite eh?)
80b8fe52 » tom 2007-12-03 merging tom_sandbox 561..59... 2691
2692 The add_classes helper now automatically dasherizes all class names.
2693
2694 New helper 'element'. Use in place of Rails' tag and content_tag
2695 helper. It dasherizes attributes given as symbols.
2696
2697
2698 Migration generator
2699
2700 Better support for STI. It no longer wants to generate tables for
5216e60e » tom 2007-12-22 merging sandbox 591..670 to... 2701 the subclasses. Still needed: a way of integrating fields declared in
80b8fe52 » tom 2007-12-03 merging tom_sandbox 561..59... 2702 the subclasses -- they are currently ignored by the generator.
2703
2704
2705 Hobo Rapid
2706
5216e60e » tom 2007-12-22 merging sandbox 591..670 to... 2707 In place editing (and Ajax in general) will now provide the form
80b8fe52 » tom 2007-12-03 merging tom_sandbox 561..59... 2708 authentication token (CSRF protection) if available. No need to
2709 disable protect_from_forgery any more.
2710
2711
2712 Stylesheets:
2713
2714 Removed list-style: none from hobo_abse.css
2715
2716
2717 Javascript:
2718
2719 Dasherized all css classes and dom IDs used.
2720
2721 Upgraded to latest low_pro.js
2722
2723
2724 New theme 'Clean'
2725
2726 New helper 'linkable?' can be given a record or class, and tells you
2727 if Hobo has a route for it. Only works for 'show' and 'index'
2728 actions so far.
2729
2730 Tag library
2731
2732 \\'/;p <a> now automatically knows not to generate (broken) links to
2733 things that are not 'linkable?'. Outputs just the link content
2734 instead.
2735
2736 We used to have <FieldList> and <field_list>. We now have
2737 <field-list> and <labelled-item-list>
2738
2739 <UL> is now <ul>, and only has the iteration behaviour if you give
2740 a <li:> parameter. Otherwise it's just like a static tag.
2741
2742 <Table> is now <table> and only has the special behaviour if you
2743 give a 'fields' attribute or '<tr:>' parameter. Otherwise it's
2744 just like a static tag.
2745
2746 <view> for dates and times no longer break when the context is
2747 nil.
2748
2749 <count> - unless-none attribute is gone. user if-any
2750
2751 <theme-stylesheet> now takes a 'name' attribute
2752
2753 <delete-button> takes a 'subsite' attribute
2754
2755
2756 Rake tasks
2757
2758 New task hobo:fixdryml (see DRYML section above)
2759
2760 dump_fixtures is now hobo:fixtures:dump
2761
2762
2763
2764
2765 Hobo models
2766
2767 Automatically declares the field 'position :integer' if the model
2768 acts_as_list.
2769
2770 never_show declarations are now inherited
2771
2772 Fix: def_scope was broken when the scope name ended '?'
2773
2774 Fix: Hobo broke the 'guard_protected_attributes' optional parameter
2775 to attributes=. (this was breaking attachment_fu)
2776
2777 Fix: assigning Date and Time objects in mass-assignment was broken.
2778
2779
2780 User model
2781
2782 Newly generated user models (hobo_user_model generator) now give
2783 create permission to all by default (to enable signup).
2784
5216e60e » tom 2007-12-22 merging sandbox 591..670 to... 2785 logins_count renamed to login_count (Hobo manages this field for you
80b8fe52 » tom 2007-12-03 merging tom_sandbox 561..59... 2786 if it exists).
2787
2788
2789 Core extensions
2790
2791 Module#alias_tag_chain, which never should have been there is
2792 gone. (It's not needed now that camel-case tags have gone).
2793
2794
4c4e3bf2 » tom 2007-11-14 Changelog 2795 === Release 0.6.4 ===
2796
2797 Fix: In-place-editors were not working with the new version of
2798 Scriptaculous
2799
2800 The default fade effect on in-place-editors is now disabled
2801
2802 <ShowPage> now has a title
2803
2804
a290665b » tom 2007-11-13 fixing trunk 2805 === Release 0.6.3 ===
2806
2807 New feature: subsites, i.e. namespaced routes, plus support in the
2808 controller and view layers. Subsites are created automatically for any
2809 directories found in app/controllers. Links default to the current
2810 subsite unless you give a subite="..." attribute. The taglib
2811 app/views/<subsite>/<subsite-name>.dryml is automatically included in
2812 every page in the subsite.
2813
2814 The out-of-box app is not in great shape in this release, mostly due
2815 to problems with the theme. We haven't fixed it because the theme
2816 system going to change radically in Hobo 0.7
2817
2818 New version of lowpro, compatible with Prototype 1.6 (rev 267)
2819
2820 Change to hobo command:
2821
2822 hobo [...options...] app-name
2823
2824 instead of
2825
2826 hobo app-name [...options...]
2827
2828
2829 Migration generator
2830
2831 Automatically ignores non-Hobo models (and associated tables)
2832
2833 Hobo::Migrations.ignore_models is now deprecated.
2834
2835 Use Hobo::Migrations.ignore to list models that should be
2836 ignored. The associated tables are ignored too (rarely needed, as
2837 these are probably not Hobo models anyway)
2838
2839 Hobo::Migrations.ignore_tables is still supported
2840
2841 Fix: problems with going back to a nil default from a non-nil
2842 default.
2843
2844
2845 Hobo model generator
2846
2847 In line with Rails 2.0, the timestamps declaration is now included
2848 by default (it's generally something every model should have).
2849
2850
2851 hobo_base.css
2852
2853 Removed over-zealous styling of too many elements.
2854
2855
2856 hobo_rapid.css
2857
2858 Change of class names for validation errors.
2859
2860
2861 hobo_rapid.js
2862
2863 Now silently ignores update to non-existent part. This is convenient
2864 when parts are being added dynamically, but may prove to be a
2865 mistake :-)
2866
2867 Global variable controllerNames is gone. Now use calls to
2868 Hobo.pluralise. (Gee I guess we should really standardise on
2869 American spellings)
2870
2871 The 'fade' parameter to removeButton is now an option. Confirmation
2872 is now optional too.
2873
2874 Hobo.partFor returns the part containing a given element. Used in
2875 the new update="self" feature.
2876
2877 LowPro behaviour HasManyThroughInput. This is badly named and will
2878 change.
2879
2880
2881 Core extensions
2882
2883 alias_tag_chain is like alias_method_chain but for DRYML tags
2884
2885 SafeNil
2886
2887 Now more efficient (thanks to "steve d" --
2888 http://coderrr.wordpress.com)
2889
2890 Fix when used with DelegateClass
2891
2892 New method #implies on booleans. Borrowed from Eiffel. Useful in
2893 permission methods.
2894
2895 true.implies false #=> false
2896 true.implies true #=> true
2897 false.implies x #=> true
2898
2899 Hash#map_hash. The block is passed only the value if the arity is 1.
2900
2901
2902 DRYML
2903
2904 The ability to define tags in Ruby is now removed
2905
2906 Tag extension: <def tag="Page" extend_with="navigation">
2907
2908 This encapsulates the alias_method_chain pattern. The tag can make
2909 a call to <PageWithoutNavigation> to get the old behaviour.
2910
2911 alias_current_as is gone -- replaced by extend_with
2912
2913 Fix: some DRYML attributes were leaking through to the output HTML
2914
2915 part_locals can now be passed instance variable names,
2916 e.g. part_locals="@user". Note that inside the part this creates a
2917 local variable "user". Don't user @user inside the part. It's just a
2918 convenience to avoid the need to do <set user="&@user"/>
2919
2920 Fix: failure to accumulate CSS class names when merging attributes.
2921
2922 DRYML now gives the type returned by #field_type (when available)
2923 over this.class
2924
2925 Fix: when overriding a parameter, the <default_tagbody/> of the new
2926 parameter would incorrectly provide the old tagbody which should
2927 have been overridden.
2928
2929 hoboParts variable is now set by <hobo_rapid_javascripts> rather
2930 than being hard wired in the output from the DRYML compiler.
2931
2932 Fix: caching problems with tags imported by the include_tablib
2933 directive.
2934
2935
2936 AJAX Parts
2937
2938 Calls to parts, along with the part-state variables are now logged.
2939
2940 Can now say part="self" when a tag wants to update the part it is
2941 contained in (useful for re-usable tags).
2942
2943
2944 Rich data types
2945
2946 All rich data types now register themselves with Hobo, e.g.
2947
2948 class Hobo::EmailAddress < String
2949 COLUMN_TYPE = :string
2950 ...
2951 end
2952
2953 Hobo.field_types[:email_address] = Hobo::EmailAddress
2954
2955 New type builder - enum_string. e.g.
2956
2957 fields do
2958 gender enum_string(:male, :female)
2959 end
2960
2961 You can then do, e.g. if current_user.gender.male?
2962
2963 (You also automatically get select menu's in your views)
2964
2965
2966 Hobo models
2967
2968 In fields declaration:
2969
2970 Got rid of weird thing where providing :length meant the type
2971 defaulted to :string
2972
2973 Can now give classes as well as symbolic names for column types.
2974
2975 Mass attribute assignment extended to support some features that
2976 were in the model controller. e.g. Dates can be represented as
2977 Hashes of month, day etc. Chronic will be used to parse dates if
2978 available. Object references (e.g. belongs_to relationships) can be
2979 set with "@<typed-id>" as before.
2980
2981 "fields do" can optionally be used with a parameter if you don't
2982 like the instance_eval hackery:
2983
2984 fields do |f|
2985 f.name :string
2986 end
2987
2988 belongs_to can be given :null => false, which is passed through to
2989 the migration generator.
2990
2991 New method #column returns the meta-data for the named column.
2992
2993 #find now returns arrays with a #member_class method
2994
2995 def_scope
2996
2997 Chained scopes on a class didn't work at all -- now fixed,
2998 e.g. Posts.recent.by_author.find(:all)
2999
3000 Fix: def_scope with sql parameter interpolation was broken.
3001
3002
3003 #changed_fields, which was next to useless, replaced with
3004 #only_changed_fields, which is used to assert that only the given
3005 fields have changed.
3006
3007
3008 Hobo user model
3009
3010 The module is renamed from Hobo::AuthenticatedUser to just
3011 Hobo::User
3012
3013 It is no longer possible to set the login attribute by passing a
3014 symbol to hobo_user_model. Go back to using set_login_attr. Didn't
3015 work out. It happens sometimes.
3016
3017
3018 Helpers
3019
3020 #subsite returns the name of the current subsite.
3021
3022 #object_url can now be passed the siubsite, e.g. :subsite => "admin"
3023
3024 #object_url can only be passed a single hash of options now (could
3025 be passed any ammount before)
3026
3027 #dom_id now returns "" when a dom_id cannot be generated (used to
3028 raise an error)
3029
3030 #map_this now works with ranges (used by DRYML's repeat)
3031
3032 #current_page_url returns request.request_uri without the query string
3033
3034 #query_params now returns a HashWithIndifferentAccess
3035
3036 Hobo.dom_id now works better with non-hobo models
3037
3038
3039 Permission System
3040
3041 Fix: view permission was causing errors with non-hobo models. Now
3042 defaults to viewable.
3043
3044
3045 Hobo Controller
3046
3047 include_tablib accepts symbols as well as strings
3048
3049 #redirect_to now forwards all params to object_url when not given a
3050 String, Symbol or Hash
3051
3052 #hobo_ajax_response no longer need be passed a dryml this
3053
3054
3055 Model controller
3056
3057 Multiple model creates / updates are gone from the controller
3058 layer. Hobo now uses good ol' Rails mass attribute
3059 assignment. Coping with multiple object updates should be handled in
3060 the model layer. Some features from the model controller have been
3061 moved to the model layer, and more will be added in the future.
3062
3063 Attempts to automatically re-render the correct page after a
3064 validation error on create / update using a form parameter
3065 "page_path", which the <form> tag provides in a hidden
3066 field. Previously assumed the form came from the new / edit action.
3067
3068 Automatic pagination is now only applied to appropriate
3069 mime-types. Add mime-types to Hobo::ModelController.PAGINATE_FORMATS
3070 to have them paginated.
3071
3072 New declaration 'auto_actions' allows you to select which actions
3073 Hobo provides for you automatically.
3074
3075 # White list
3076 auto_actions :show, :index
3077
3078 or
3079
3080 # Black list
3081 auto_action :all, :except => [ :new_comment ]
3082
3083 You can use :collections to add/remove all collection actions in
3084 either the black or white list.
3085
3086 New declaration 'index_action' declares a new index-like action
3087 (similar to show_action)
3088
3089 index_action, show_action and web_method can now all be given
3090 blocks, rather than defining a method of the same name:
3091
3092 show_action :summary do
3093 hobo_show Post.find(params[:id], :include => :comments)
3094 end
3095
3096 Web methods now automatically respond with hobo_ajax_response if the
3097 method does not respond.
3098
3099 #search
3100
3101 Now less magic (i.e. doesn't operate by side-effecting). It now
3102 returns a condition string suitable to be passed to :conditions.
3103
3104 Can be given a model as the first argument to search on a
3105 different model (e.g. for show-collection actions).
3106
3107 Fix: :paginate => false was broken
3108
3109 #create, #update and #destroy now set flash messages by default
3110 (only on "wants.html" requests)
3111
3112 <PermissionDeniedPage> used as the default permission denied
3113 response.
3114
3115 <NotFoundPage> used as the default 404 response.
3116
3117
3118 User controller
3119
3120 Added various customisation options to login and signup
3121
3122 On login, redirect to #home_page -- you can override this on your
3123 controllers.
3124
3125 The actual name of the login attribute (e.g. "email", "username") is
3126 now used in flash messages.
3127
3128 hobo_logout can now be given a block to customise the response.
3129
3130 Fixes for validation errors on signup.
3131
3132
3133 Routing
3134
3135 Routes for non-existent actions are not generated.
3136
3137
3138 Tag library: Core tags
3139
3140 <wrap> will wrap its content in ther tag specified by tag="..." if
3141 when="..." is true.
3142
3143 Fix: <unless> -- was behaving like <if>
3144
3145
3146 Tag library: Rapid
3147
3148 <FieldList> now has params <label> and <view> that wrap every label
3149 and view. Also <foo_tag> where "foo" is a field-name, is the actual
3150 tag that renders the field (e.g. <view> or <edit>)
3151
3152 <nil_view> can be overridden to customise the way Hobo renders nil
3153 values.
3154
3155 <Table> new attribute 'empty' -- when given the table is rendered
3156 even when there are items in the collection.
3157
3158 <name> now respects view permission properly
3159
3160 <view> now does a #strip to the output
3161
3162 <count> -- new attribute if_any - set to true to output nothing if
3163 the count is zero.
3164
3165
3166 Tag library: Rapid documents
3167
3168 The 'document' tags like <section>, <aside> output nothing when the
3169 content is blank. Now they can ge given the 'empty' attribute
3170 causing the tag to be output even if the content is blank.
3171
3172 New tag <sub_heading>
3173
3174
3175 Tag library: Rapid forms
3176
3177 <hidden_fields> will now not output hidden fields for attributes
3178 on new records that are in their default state.
3179
3180 <form> now has a default ajax message for creating new objects.
3181
3182 <form> now supports forgery protection
3183
3184 <input> -- better handling of the 'field with errors' wrapper
3185
3186 <input> for passwords now accepts extra html attributes
3187
3188 New <input> for enum-strings - a select menu.
3189
3190 New <input> for big decimals
3191
3192 <remote_method_button> now supports non ajax remote method calls
3193 (when no update="..." is given)
3194
3195 css classes on buttons renamed from "button_input" to "button"
3196
3197 <update_button> now supports confirm="&false"
3198
3199 <belongs_to_menu_input>
3200
3201 none_message attribute renamed to blank_message
3202
3203 Conditions on belongs_to are now observed (only eligible records
3204 are in the menu)
3205
3206 New <ErrorMessages> template tag - like the error_messages_for
3207 helper with added Hobo goodness.
3208
3209
3210 Tag library: Rapid navigation
3211
3212 <page_nav> now hides without errors if there is no @pages object
3213
3214 <nav_item> now ignores nested tags when selecting the current nav
3215 item.
3216
3217
3218 Tag library: Rapid pages
3219
3220 Significant re-factoring of all page tags -- see source :-)
3221
3222 <javascript name="a, b, c"> tag - like helper javascript_include_tag
3223
3224 New pages <NotFoundPage> and <PermissionDeinedPage>
3225
3226
3227 Tag library: Rapid support
3228
3229 <TablePlus> various new params
3230
3231
3232 === Release 0.6.2 ===
3233
3234 Specs
3235
3236 Moved out of the plugin source into a separate directory in the
3237 hierarchy. If you check out hobo/trunk you'll get two directories:
3238 hobo and hobo_spec. You can run "rake" from the hobo directory and
3239 it should work as long as hobo_spec is along side. Note the
3240 hobo_spec tree contains an svn external to edge rails.
3241
3242
3243 New rake task dump_fixtures (which really should be nicely
3244 namespaced). This will dump the current database into test
3245 fixtures. The nice part is that it won't overwrite symbolic names
3246 you've given to rows in your fixtures, so you can round-trip with it:
3247 rake db:fixtures:load, run up the app and create some new data, rake
3248 dump_fixtures.
3249
3250
3251 Migration generator
3252
3253 Fixed indentation bug in generated code.
3254
3255 Now prompts for the name of the generated migration after the
3256 generated code is displayed.
3257
3258 Better error message for invalid field types declared in models.
3259
3260
3261 Tabla theme
3262
3263 Fixed reference to non-existent human_type helper.
3264
3265
3266 Hobo users
3267
3268 Various fixes to the new (in 0.6.1) multiple user model support.
3269
3270 If the model name is "User", the routes generated are simply:
3271
3272 /login
3273 /logout
3274 /signup
3275
3276 (as opposed to /user_login etc.)
3277
3278 The filter "login_required" can now be passed a user model (class),
3279 e.g.
3280
3281 before_filter {|controller| controller.login_required(Administrator) }
3282
3283 The named routes "login", "logout" and "signup" are no longer
3284 defined. Instead there are helpers login_url, signup_url and
3285 logout_url, all of which are passed a user model (class) as
3286 parameter.
3287
3288 New declaration 'hobo_user_model' can be used in place of hobo_model
3289 and removes the need to include Hobo::AuthenticatedUser. Can be
3290 passed the name of the login field, which removes the need to call
3291 set_login_attr. Can also be passed a block in which to do
3292 validations of the login attr (just as you can with set_login_attr).
3293
3294 User models now have a class method login_attr that returns the name
3295 of the login attribute, e.g. :username
3296
3297 Guest model should now extend Hobo::Guest, which provides #guest
3298 (true!) and #super_user (false)
3299
3300 User models now inherit #guest? (returns false). No need to define
3301 it yourself.
3302
3303
3304 Hobo models
3305
3306 Optimisation. Where possible we've replaced calls to #respond_to?
3307 (which is slow on AR records) with the new class method
3308 #has_hobo_method? which is an alias for
3309 #respond_to_without_attributes?
3310
3311 "fields do" now supports shorthands for common validations
3312 validates_uniqueness_of and validates_presence_of, e.g.:
3313
3314 fields do
3315 name :string, :required, :unique
3316 end
3317
3318 If you need to change the validation method, just go back to the
3319 old way.
3320
3321 The creator attribute mechanism is updated to cope with multiple
3322 user models. Hobo will not try to set the creator attribute if the
3323 expected type is not the same as the type of the logged in user.
3324
3325 Various enhancements to composable query blocks
3326
3327 MyModel.has_creator? replaced with MyModel.creator_type which
3328 returns the expected user class or nil if there is no creator
3329 attribute.
3330
3331 Fix: def_scope was broken with has_many :through associations.
3332
3333
3334 Integration test helpers
3335
3336 #logs_in_as updated to cope with multiple user types.
3337
3338
3339 Core extensions
3340
3341 New method Object._? can be used to avoid an extra test for nil, e.g.
3342
3343 string_or_nil._?.length
3344
3345 is equivalent to
3346
3347 string_or_nil && string_or_nil.length
3348
3349 Hobo extensions to HashWithIndifferentAccess fixed to always return
3350 indifferent hashes.
3351
3352
3353 Hobo controller
3354
3355 Fix to #render_tags (problem with part contexts javascript)
3356
3357 Fix to include_taglib declaration (was not working in production
3358 mode).
3359
3360
3361 Hobo model controller
3362
3363 Largely re-written handling of http PUT and POST (update &
3364 create). The new mechanism is more secure, more featureful and is
3365 transactional. If your put/post affects multiple database rows, they
3366 will either all happen or none will. See the model_controller_spec
3367 for some good examples of what is allowed / possible.
3368
3369 def_data_filter is gone. Instead you can declare data filters from
3370 within the action methods:
3371
3372 def index
3373 data_filter :search do |query|
3374 name_contains(query) | address_contains(query)
3375 end
3376 hobo_index
3377 end
3378
3379 Declare data filters for autocompleters in the same way by giving
3380 a block to autocomplete_for
3381
3382 #index now supports a "sort" parameter. The value should be
3383 <field-name> or <model>.<field-name>. Precede with a '-' to sort in
3384 descending order. e.g.
3385
3386 http://host/users?sort=-username
3387
3388 Provide the :order parameter to hobo_index to disable.
3389
3390 The mechanism to call a tag <ShowPage> if there is no show.dryml is
3391 extended to work with any action name. So e.g. you can define
3392 <FooPage> as an application wide page for any action "foo".
3393
3394
3395 Hobo user controller
3396
3397 Options can now be given as procs, in which case they are called
3398 only when needed and hence have access to things like current_user
3399 (e.g. the redirect destination for a logged in user can take into
3400 account who the user is)
3401
3402 #hobo_login can be given a block -- a place to check if the users
3403 account is available. Return false to prevent the user from loggin
3404 in.
3405
3406
3407 Hobo module
3408
3409 #can_view? can now be given dotted field paths. E.g:
3410
3411 Hobo.can_view(current_user, post, "author.name")
3412
3413
3414 Hobo Rapid
3415
3416 Adding low_pro.js (from the UJS project). First step towards
3417 complete adoption of unobstrusive JavaScript.
3418
3419 Fix to client side of new ajax mechanism. Had problems with not URL
3420 encoding part state.
3421
3422 New taglib rapid_plus, home of tags with an extra level of
3423 functionality. First and only tag: <TablePlus> a table with
3424 automatic support for sorting by clicking on column headings, and
3425 filtering rows via a search field.
3426
3427 <Table> now supports tempalte parameters for each cell when given a
3428 'fields' attribute, e.g. <name_view> <address_view> (<name_cell>
3429 might seem like a better name, but we wanted to be compatible with
3430 <FieldList> so it's easy to flip back and forth).
3431
3432 <name> tag now respects view permission.
3433
3434 <a action="new"> now only renders the link if the current user has
3435 the required create permission.
3436
3437 <view> now supports attribute 'truncate'
3438
3439 <view for_type="Date"> now supports a 'format' attribute - a
3440 strftime style format string.
3441
3442 New tag <restricted_page>. Sometimes permissions are a view layer
3443 concern - you actually want to say "these colors, this logo,
3444 etc. are only to be seen by the administrator".
3445
3446 <restricted_page login_required="Administrator"/>
3447
3448 New tag <you_have>. An easy way to say either "You have 3 posts in
3449 this thread" or "Fred Blogs has 3 posts in this thread", depending
3450 on whether Fred Blogs is the current user.
3451
3452 Fixes to the tags in rapid_documents to avoid evaling tagbody twice.
3453
3454 <hidden_fields> fixed (was outputing hidden fields even when the
3455 field existed in the form). Also now support "for_query_string"
3456 attribute, to output hidden fields for the name/value pairs in the
3457 current query string.
3458
3459 <form> now sets a scoped variable "in_form" so tags can behave
3460 differently when they are inside a form (FieldList does this).
3461
3462 <input> for datetime and date now supports the same attributes as
3463 the equivalent rails helpers. e.g. you can change the order of the
3464 fields.
3465
3466 <belongs_to_menu_input> can now be passed an array of records in the
3467 "options" attribute (instead of retrieving the entire target table
3468 from the DB).
3469
3470 Fixes to page navigation
3471
3472 <account_nav> upgraded to cope with multiple user models.
3473
3474 Rapid pages:
3475
3476 Various new template params made available, including many on
3477 login and signup pages.
3478
3479 <Page> updated for multiple user models
3480
3481 <IndexPage> fix to ajax updating of record count
3482
3483 New css classes added to <NewPage> and <EditPage>
3484
3485 <error_messages> added to <EditPage>
3486
3487 Fix to new link in <ShowCollectionPage>
3488
3489 <image> tag removed from default ajax progress.
3490
3491
3492
3493 Dryml
3494
3495 Important change ommitted from 0.6 changelog - attributes passed to
3496 the tag that are not in the tags declared attributes are available
3497 in a local variable "attributes" (used to be called "options").
3498
3499 <set> can now assign to dotted named (object attributes) as well as
3500 locals, and can have controll attributes on it (e.g. if)
3501
3502 Fix to replacing template parameters that are themselves templates.
3503
3504 When a boolean is in context, this_type is now always TrueClass
3505 (never FalseClass even if the value is false). TrueClass is the Hobo
3506 boolean type.
3507
3508 #render_tag on a page renderer object (Dryml internals) now returns
3509 false. This alows Hobo's controller to say "call this tag if it
3510 exists, otherwise..."
3511
3512
3513 Rich types
3514
3515 Registered rich types can now provide there own validations that get
3516 added to the model automatically. E.g. Hobo::EmailAddress
3517 automatically validates the content as a valid email address.
3518
3519
3520 Hobo helpers
3521
3522 New helper query_params returns a hash of parameters extracted from
3523 the query string only (#params returns route-based parameters
3524 too). Only works with simple name=value parameters.
3525
3526
3527 === Release 0.6.1 ===
3528
3529 Multiple user models
3530
3531 Hobo now supports multiple user models, with independent sign-up /
3532 log-in/out for each.
3533
3534 The controller needs to declare hobo_user_controller instead of
3535 hobo_model_controller (it still has all the hobo_model_controller
3536 features). e.g.
3537
3538 class AdminsController; hobo_user_controller; end
3539
3540 Hobo routing will automatically give you
3541
3542 /admin_login
3543 /admin_logout
3544 /admin_signup
3545
3546 Note this controller will now filter logging of passwords.
3547
3548 The model needs to include Hobo::AuthenticatedUser and declare a
3549 login attribute with, e.g.
3550
3551 set_login_attr :email
3552
3553 The hobo_front_controller generator no longer generates anything
3554 related to users - it's now just the fron page and search page.
3555
3556 There is a new hobo_user_model generator to create these
3557 controllers.
3558
3559 The global value Hobo.user_model is gone
3560
3561 Rapid now has <LoginPage> and <SignupPage> templates. They're not so
3562 customisable just now but you can of course replace them completely
3563 with your own views.
3564
3565
3566 Misc fixes
3567
3568 Search was broken
3569
3570 The 'hobo' command tried to connect to the DB, which was a problem
3571 as you'd had no chance to configure database.yml
3572
3573
3574 Rapid
3575
3576 Fix: reset_form and refocus form options
3577
3578 <Table> now supports @fields, allowing you to give a bunch of field
3579 names and automatically have a table with a column for each of those
3580 fields. There's also a <controls> param that can be used to have a
3581 delete button and edit link on each row. As usual there's a ton of
3582 customisation options - see the source.
3583
3584 <human_type> is now <type_name> and takes flags @plural and @lowercase
3585
3586 <editor> and <input> have better automatic css classes
3587
3588 Restored old behaviour where <page_nav/> would display nothing when
3589 there's only one page.
3590
3591 Finally created <EditPage>
3592
3593 Small cleanups in the rapid pages
3594
3595 New tag <with_field_names/> used in <Table> to iterate over the
3596 column headings.
3597
3598 <view> for Time objects now supports @format - a strftime style
3599 format string.
3600
3601
3602
3603 Migration generator
3604
3605 Fix: Edge Rails now dumps out in sexy format, which was freaking the
3606 migration generator.
3607
3608 You can now configure the generator to completely ignore specified
3609 tables and models. In environment.rb do
3610
3611 Hobo::Migrations.ignore = %w(red_fish blue_fish)
3612
3613 That will ignore the models RedFish and BlueFish, and the tables
3614 red_fishes and blue_fishes
3615
3616 To ignore just tables, assign an array of their names to
3617
3618 Hobo::Migrations.ignore_tables
3619
3620 To ignore just models, assign an array of the class names to
3621
3622 Hobo::Migrations.ignore_models
3623
3624 New secure ajax parts mechanism
3625
3626 The new mechanism stores the part state in a base 64 encoded string,
3627 complete with an SHA1 (by default) digest, so malicious tampering
3628 with the part state is prevented.
3629
3630 Parts can now capture the state of local variables along with the
3631 DRYML context. Give a list of locals you wish to capture in the
3632 'part_locals' attribute. e.g.
3633
3634 <div part="my_part" part_locals="a, b"> ... </div>
3635
3636 (the inability to do this was a serious limitation of the previous
3637 mechanism)
3638
3639
3640 Core extensions
3641
3642 Added Methodphitamine and removed omap, oselect, ofind, oany oall.
3643
3644 See http://jicksta.com/articles/2007/08/04/the-methodphitamine
3645
3646
3647 DRYML
3648
3649 merge_attrs fixed to not complain about nils
3650
3651 Fix: css classes were not accumulated in some template parameter
3652 situations
3653
3654