zen 0.4.2 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (131) hide show
  1. data/.gems +17 -15
  2. data/.gitignore +1 -1
  3. data/.travis.yml +1 -1
  4. data/MANIFEST +470 -0
  5. data/README.md +5 -3
  6. data/Rakefile +8 -6
  7. data/bin/zen +2 -7
  8. data/guide/asset_management.md +1 -0
  9. data/guide/autosaving_forms.md +1 -0
  10. data/guide/changelog.md +22 -0
  11. data/guide/faq.md +1 -0
  12. data/guide/getting_started.md +1 -0
  13. data/guide/hacking.md +1 -0
  14. data/guide/images/sections/revisions.png +0 -0
  15. data/guide/images/sections/revisions_diff.png +0 -0
  16. data/guide/images/sections/revisions_diff_multiple.png +0 -0
  17. data/guide/installation.md +4 -3
  18. data/guide/javascript.md +1 -0
  19. data/guide/javascript/zen_autosave.md +1 -0
  20. data/guide/javascript/zen_editor.md +1 -0
  21. data/guide/javascript/zen_form.md +1 -0
  22. data/guide/javascript/zen_hash.md +1 -0
  23. data/guide/javascript/zen_htmltable.md +1 -0
  24. data/guide/javascript/zen_tabs.md +1 -0
  25. data/guide/javascript/zen_window.md +1 -0
  26. data/guide/zen_compared.md +1 -0
  27. data/lib/zen.rb +10 -12
  28. data/lib/zen/event.rb +2 -2
  29. data/lib/zen/helper/controller.rb +13 -13
  30. data/lib/zen/helper/message.rb +3 -3
  31. data/lib/zen/helper/search.rb +4 -4
  32. data/lib/zen/helper/stacked_aspect.rb +9 -9
  33. data/lib/zen/html_diff.rb +151 -0
  34. data/lib/zen/language.rb +9 -7
  35. data/lib/zen/language/translation.rb +8 -8
  36. data/lib/zen/markup.rb +1 -1
  37. data/lib/zen/migrator.rb +2 -2
  38. data/lib/zen/model/helper.rb +4 -4
  39. data/lib/zen/model/plugin/events.rb +16 -16
  40. data/lib/zen/package.rb +2 -2
  41. data/lib/zen/package/all.rb +1 -1
  42. data/lib/zen/package/categories/lib/categories/controller/categories.rb +4 -4
  43. data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +4 -4
  44. data/lib/zen/package/categories/lib/categories/helper/category.rb +3 -3
  45. data/lib/zen/package/categories/lib/categories/model/category.rb +9 -9
  46. data/lib/zen/package/categories/lib/categories/model/category_group.rb +9 -9
  47. data/lib/zen/package/comments/lib/comments/controller/comments.rb +4 -4
  48. data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +2 -2
  49. data/lib/zen/package/comments/lib/comments/helper/comment.rb +1 -1
  50. data/lib/zen/package/comments/lib/comments/model/comment.rb +13 -13
  51. data/lib/zen/package/custom_fields/lib/custom_fields/blue_form_parameters.rb +1 -1
  52. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +4 -4
  53. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_types.rb +6 -6
  54. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +5 -5
  55. data/lib/zen/package/custom_fields/lib/custom_fields/helper/custom_field.rb +3 -3
  56. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb +9 -9
  57. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_group.rb +9 -9
  58. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_type.rb +9 -9
  59. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +8 -3
  60. data/lib/zen/package/custom_fields/migrations/1336171490_revisions.rb +41 -0
  61. data/lib/zen/package/dashboard/lib/dashboard/controller/dashboard.rb +6 -6
  62. data/lib/zen/package/dashboard/lib/dashboard/model/widget.rb +3 -3
  63. data/lib/zen/package/dashboard/lib/dashboard/widget.rb +12 -12
  64. data/lib/zen/package/extensions/lib/extensions/controller/extensions.rb +3 -3
  65. data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +5 -5
  66. data/lib/zen/package/menus/lib/menus/controller/menus.rb +4 -4
  67. data/lib/zen/package/menus/lib/menus/helper/menu.rb +4 -4
  68. data/lib/zen/package/menus/lib/menus/model/menu.rb +11 -11
  69. data/lib/zen/package/menus/lib/menus/model/menu_item.rb +10 -10
  70. data/lib/zen/package/menus/lib/menus/public/admin/menus/js/lib/nested_sortables.js +13 -13
  71. data/lib/zen/package/menus/lib/menus/public/admin/menus/js/menu_items.js +1 -1
  72. data/lib/zen/package/sections/lib/sections.rb +19 -0
  73. data/lib/zen/package/sections/lib/sections/controller/revisions.rb +184 -0
  74. data/lib/zen/package/sections/lib/sections/controller/section_entries.rb +5 -5
  75. data/lib/zen/package/sections/lib/sections/controller/sections.rb +9 -6
  76. data/lib/zen/package/sections/lib/sections/helper/revision.rb +124 -0
  77. data/lib/zen/package/sections/lib/sections/helper/section.rb +17 -15
  78. data/lib/zen/package/sections/lib/sections/helper/section_frontend.rb +104 -6
  79. data/lib/zen/package/sections/lib/sections/language/en/revisions.rb +34 -0
  80. data/lib/zen/package/sections/lib/sections/language/en/sections.rb +1 -0
  81. data/lib/zen/package/sections/lib/sections/language/nl/revisions.rb +35 -0
  82. data/lib/zen/package/sections/lib/sections/language/nl/sections.rb +1 -0
  83. data/lib/zen/package/sections/lib/sections/model/revision.rb +76 -0
  84. data/lib/zen/package/sections/lib/sections/model/section.rb +9 -9
  85. data/lib/zen/package/sections/lib/sections/model/section_entry.rb +47 -12
  86. data/lib/zen/package/sections/lib/sections/view/admin/revisions/index.xhtml +89 -0
  87. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +1 -1
  88. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +14 -0
  89. data/lib/zen/package/sections/migrations/1335711557_revisions.rb +40 -0
  90. data/lib/zen/package/settings/lib/settings/controller/settings.rb +12 -4
  91. data/lib/zen/package/settings/lib/settings/setting.rb +6 -6
  92. data/lib/zen/package/users/lib/users/controller/user_groups.rb +4 -4
  93. data/lib/zen/package/users/lib/users/controller/users.rb +12 -12
  94. data/lib/zen/package/users/lib/users/helper/access.rb +1 -1
  95. data/lib/zen/package/users/lib/users/helper/acl.rb +4 -4
  96. data/lib/zen/package/users/lib/users/helper/users.rb +2 -2
  97. data/lib/zen/package/users/lib/users/model/permission.rb +1 -1
  98. data/lib/zen/package/users/lib/users/model/user.rb +11 -11
  99. data/lib/zen/package/users/lib/users/model/user_group.rb +9 -9
  100. data/lib/zen/package/users/lib/users/model/user_status.rb +2 -2
  101. data/lib/zen/public/admin/zen/css/general.css +54 -0
  102. data/lib/zen/public/admin/zen/css/messages.css +6 -3
  103. data/lib/zen/public/admin/zen/css/tables.css +10 -0
  104. data/lib/zen/public/admin/zen/images/icons/undo.png +0 -0
  105. data/lib/zen/public/admin/zen/js/lib/autosave.js +8 -8
  106. data/lib/zen/public/admin/zen/js/lib/base.js +2 -2
  107. data/lib/zen/public/admin/zen/js/lib/events.js +2 -2
  108. data/lib/zen/public/admin/zen/js/lib/form.js +7 -7
  109. data/lib/zen/public/admin/zen/js/lib/hash.js +7 -7
  110. data/lib/zen/public/admin/zen/js/lib/tabs.js +3 -3
  111. data/lib/zen/public/admin/zen/js/lib/window.js +1 -1
  112. data/lib/zen/security.rb +2 -2
  113. data/lib/zen/spec/helper.rb +3 -9
  114. data/lib/zen/spec/helper/capybara.rb +4 -4
  115. data/lib/zen/spec/helper/general.rb +1 -1
  116. data/lib/zen/spec/simplecov.rb +1 -5
  117. data/lib/zen/task/build.rake +22 -16
  118. data/lib/zen/task/db.rake +3 -2
  119. data/lib/zen/task/spelling.rake +10 -10
  120. data/lib/zen/task/test.rake +27 -19
  121. data/lib/zen/theme.rb +6 -6
  122. data/lib/zen/version.rb +1 -1
  123. data/spec/zen/all.rb +4 -0
  124. data/spec/zen/package/sections/controller/revisions.rb +235 -0
  125. data/spec/zen/package/sections/model/revision.rb +76 -0
  126. data/zen.gemspec +23 -21
  127. metadata +88 -29
  128. data/lib/zen/model/methods.rb +0 -27
  129. data/lib/zen/task/clean.rake +0 -20
  130. data/lib/zen/task/setup.rake +0 -4
  131. data/pkg/.gitkeep +0 -0
@@ -67,7 +67,7 @@ module Ramaze
67
67
  ##
68
68
  # Called whenever the class that included this module is extended.
69
69
  #
70
- # @since 07-11-2011
70
+ # @since 2011-11-07
71
71
  # @param [Class] by The class that extended the current class.
72
72
  #
73
73
  def inherited(by)
@@ -5,8 +5,8 @@ module Ramaze
5
5
  # certain resources based on the permissions of a user. This helper is
6
6
  # loaded by default and provides the following two methods:
7
7
  #
8
- # * user_authorized?()
9
- # * authorize_user!()
8
+ # * user\_authorized?()
9
+ # * authorize\_user!()
10
10
  #
11
11
  # ## Example
12
12
  #
@@ -37,7 +37,7 @@ module Ramaze
37
37
  # end
38
38
  #
39
39
  # @since 0.1
40
- # @param [Array] *required An array of permissions that are required.
40
+ # @param [Array] required An array of permissions that are required.
41
41
  # @return [TrueClass|FalseClass]
42
42
  #
43
43
  def user_authorized?(*required)
@@ -63,7 +63,7 @@ module Ramaze
63
63
  # authorize_user!(:edit_user)
64
64
  #
65
65
  # @since 0.2.8
66
- # @param [Array] *args An array of permissions that are required.
66
+ # @param [Array] args An array of permissions that are required.
67
67
  #
68
68
  def authorize_user!(*args)
69
69
  if !user_authorized?(*args)
@@ -92,7 +92,7 @@ module Ramaze
92
92
  # informing the current user that the user he/she tried to access is
93
93
  # invalid.
94
94
  #
95
- # @since 09-04-2012
95
+ # @since 2012-04-09
96
96
  #
97
97
  def redirect_invalid_user
98
98
  message(:error, lang('users.errors.invalid_user'))
@@ -103,7 +103,7 @@ module Ramaze
103
103
  # Redirects the user back to the user groups overview and informs the user
104
104
  # that the group he/she tried to access is invalid.
105
105
  #
106
- # @since 09-04-2012
106
+ # @since 2012-04-09
107
107
  #
108
108
  def redirect_invalid_user_group
109
109
  message(:error, lang('user_groups.errors.invalid_group'))
@@ -29,7 +29,7 @@ module Users
29
29
  ##
30
30
  # Hook that is executed before creating or saving an object.
31
31
  #
32
- # @since 03-01-2012
32
+ # @since 2012-01-03
33
33
  #
34
34
  def before_save
35
35
  sanitize_fields([:permission])
@@ -14,12 +14,12 @@ module Users
14
14
  # end
15
15
  #
16
16
  # @since 0.1
17
- # @event before_new_user
18
- # @event after_new_user
19
- # @event before_edit_user
20
- # @event after_edit_user
21
- # @event before_delete_user
22
- # @event after_delete_user
17
+ # @event before\_new\_user
18
+ # @event after\_new\_user
19
+ # @event before\_edit\_user
20
+ # @event after\_edit\_user
21
+ # @event before\_delete\_user
22
+ # @event after\_delete\_user
23
23
  #
24
24
  class User < Sequel::Model
25
25
  ##
@@ -32,7 +32,7 @@ module Users
32
32
  ##
33
33
  # Array containing the columns that can be set by the user.
34
34
  #
35
- # @since 17-02-2012
35
+ # @since 2012-02-17
36
36
  #
37
37
  COLUMNS = [
38
38
  :email,
@@ -70,7 +70,7 @@ module Users
70
70
  ##
71
71
  # Searches for a set of users that match the given query.
72
72
  #
73
- # @since 16-10-2011
73
+ # @since 2011-10-16
74
74
  # @param [String] query The search query.
75
75
  # @return [Mixed]
76
76
  #
@@ -183,7 +183,7 @@ module Users
183
183
  # Gets the name of the user's status and returns it in the current
184
184
  # language.
185
185
  #
186
- # @since 03-11-2011
186
+ # @since 2011-11-03
187
187
  # @return [String]
188
188
  #
189
189
  def user_status_name
@@ -193,7 +193,7 @@ module Users
193
193
  ##
194
194
  # Activates the user.
195
195
  #
196
- # @since 03-11-2011
196
+ # @since 2011-11-03
197
197
  #
198
198
  def activate!
199
199
  update(
@@ -204,7 +204,7 @@ module Users
204
204
  ##
205
205
  # Closes the user account.
206
206
  #
207
- # @since 03-11-2011
207
+ # @since 2011-11-03
208
208
  #
209
209
  def close!
210
210
  update(
@@ -5,12 +5,12 @@ module Users
5
5
  # Model that represents a single user group.
6
6
  #
7
7
  # @since 0.1
8
- # @event before_new_user_group
9
- # @event after_new_user_user
10
- # @event before_edit_user_group
11
- # @event after_edit_user_group
12
- # @event before_delete_user_group
13
- # @event after_delete_user_group
8
+ # @event before\_new\_user\_group
9
+ # @event after\_new\_user\_user
10
+ # @event before\_edit\_user\_group
11
+ # @event after\_edit\_user\_group
12
+ # @event before\_delete\_user\_group
13
+ # @event after\_delete\_user\_group
14
14
  #
15
15
  class UserGroup < Sequel::Model
16
16
  include Zen::Model::Helper
@@ -18,7 +18,7 @@ module Users
18
18
  ##
19
19
  # Array containing the columns that can be set by the user.
20
20
  #
21
- # @since 17-02-2012
21
+ # @since 2012-02-17
22
22
  #
23
23
  COLUMNS = [:name, :slug, :description, :super_group]
24
24
 
@@ -42,7 +42,7 @@ module Users
42
42
  ##
43
43
  # Searches for a set of users that match the given query.
44
44
  #
45
- # @since 16-10-2011
45
+ # @since 2011-10-16
46
46
  # @param [String] query The search query.
47
47
  # @return [Mixed]
48
48
  #
@@ -67,7 +67,7 @@ module Users
67
67
  ##
68
68
  # Hook that is executed before creating or saving an object.
69
69
  #
70
- # @since 03-01-2012
70
+ # @since 2012-01-03
71
71
  #
72
72
  def before_save
73
73
  sanitize_fields([:name, :slug, :description])
@@ -3,7 +3,7 @@ module Users
3
3
  ##
4
4
  # Model used for user statuses such as "Open" and "Unconfirmed".
5
5
  #
6
- # @since 03-11-2011
6
+ # @since 2011-11-03
7
7
  #
8
8
  class UserStatus < Sequel::Model
9
9
  one_to_many :users, :class => 'Users::Model::User'
@@ -14,7 +14,7 @@ module Users
14
14
  # Returns a hash where the keys are the IDs of the various statuses and
15
15
  # the values the translations.
16
16
  #
17
- # @since 03-11-2011
17
+ # @since 2011-11-03
18
18
  # @return [Hash]
19
19
  #
20
20
  def self.dropdown
@@ -162,6 +162,11 @@ pre
162
162
  background-image: url('/admin/zen/images/icons/error.png');
163
163
  }
164
164
 
165
+ .icon.undo
166
+ {
167
+ background-image: url('/admin/zen/images/icons/undo.png');
168
+ }
169
+
165
170
  .label
166
171
  {
167
172
  color: #fff;
@@ -186,3 +191,52 @@ pre
186
191
  {
187
192
  background: #f7c052;
188
193
  }
194
+
195
+ /* Styles for diffs. These styles are based on the ones used by Github. */
196
+ .diff
197
+ {
198
+ border: 1px solid #ccc;
199
+ font-family: monospace;
200
+ font-size: 12px;
201
+ overflow-x: auto;
202
+ width: 800px;
203
+ }
204
+
205
+ .diff table
206
+ {
207
+ margin: 0px;
208
+ }
209
+
210
+ .diff table tbody tr td
211
+ {
212
+ border: none;
213
+ padding: 0px;
214
+ }
215
+
216
+ .diff .line_number
217
+ {
218
+ background: #eee;
219
+ border-right: 1px solid #ccc;
220
+ color: #666;
221
+ padding: 2px 5px;
222
+ text-align: right;
223
+ width: 20px;
224
+ }
225
+
226
+ .diff .line
227
+ {
228
+ padding: 2px 2px 2px 5px;
229
+ white-space: pre;
230
+ }
231
+
232
+ .diff .ins
233
+ {
234
+ background: #dfd;
235
+ color: #080;
236
+ }
237
+
238
+ .diff .del
239
+ {
240
+ background: #fee;
241
+ color: #b00;
242
+ }
@@ -25,11 +25,14 @@
25
25
 
26
26
  .message.success
27
27
  {
28
- background: #ABCC6A;
28
+ background: #ABCC6A;
29
+ color: #000;
30
+ text-shadow: 1px 1px #D6F59A;
29
31
  }
30
32
 
31
33
  .message.info
32
34
  {
33
- background: #F7D76D;
34
- color: #000;
35
+ background: #F7D76D;
36
+ color: #000;
37
+ text-shadow: 1px 1px #FAE9B1;
35
38
  }
@@ -51,6 +51,11 @@ table
51
51
  background: #f9f9f9;
52
52
  }
53
53
 
54
+ table .narrow
55
+ {
56
+ width: 25px!important;
57
+ }
58
+
54
59
  .datepicker tr:nth-child(odd) td
55
60
  {
56
61
  background: #fff;
@@ -88,3 +93,8 @@ table
88
93
  background: #eee;
89
94
  text-decoration: none;
90
95
  }
96
+
97
+ table.no_background tbody td, table.no_background thead th
98
+ {
99
+ background: none;
100
+ }
@@ -37,7 +37,7 @@ namespace('Zen');
37
37
  * If the field with this name has a non empty value then the form will be
38
38
  * submitted at a given interval, otherwise it will be ignored.
39
39
  *
40
- * @since 15-02-2012
40
+ * @since 2012-02-15
41
41
  */
42
42
  Zen.Autosave = new Class(
43
43
  {
@@ -46,21 +46,21 @@ Zen.Autosave = new Class(
46
46
  /**
47
47
  * Element containing the form element.
48
48
  *
49
- * @since 16-02-2012
49
+ * @since 2012-02-16
50
50
  */
51
51
  element: null,
52
52
 
53
53
  /**
54
54
  * The URL to submit the data to.
55
55
  *
56
- * @since 16-02-2012
56
+ * @since 2012-02-16
57
57
  */
58
58
  url: null,
59
59
 
60
60
  /**
61
61
  * Object containing various options to customize the auto saving behaviour.
62
62
  *
63
- * @since 16-02-2012
63
+ * @since 2012-02-16
64
64
  */
65
65
  options:
66
66
  {
@@ -77,7 +77,7 @@ Zen.Autosave = new Class(
77
77
  /**
78
78
  * Creates a new instance of the class.
79
79
  *
80
- * @since 16-02-2012
80
+ * @since 2012-02-16
81
81
  * @param {Element} element The form element to submit.
82
82
  * @param {String} url The URL to submit the data to.
83
83
  * @param {Object} options Object containing custom options. See
@@ -112,7 +112,7 @@ Zen.Autosave = new Class(
112
112
  * Submits the form data to the server. Upon success the CSRF token is
113
113
  * updated, upon failure the validation errors will be displayed.
114
114
  *
115
- * @since 16-02-2012
115
+ * @since 2012-02-16
116
116
  */
117
117
  sendRequest: function()
118
118
  {
@@ -141,7 +141,7 @@ Zen.Autosave = new Class(
141
141
  /**
142
142
  * Displays the validation errors of a set of fields.
143
143
  *
144
- * @since 16-02-2012
144
+ * @since 2012-02-16
145
145
  * @param {Object} form_errors Object containing the form errors. The keys
146
146
  * should be the names of the fields and the values arrays of error messages
147
147
  * to display.
@@ -175,7 +175,7 @@ Zen.Autosave = new Class(
175
175
  /**
176
176
  * Updates the CSRF token with the given value.
177
177
  *
178
- * @since 16-02-2012
178
+ * @since 2012-02-16
179
179
  * @param {String} token The new CSRF token.
180
180
  */
181
181
  setToken: function(token)
@@ -20,7 +20,7 @@
20
20
  *
21
21
  * Zen.Editor.Markdown = new Class(...);
22
22
  *
23
- * @since 22-12-2011
23
+ * @since 2011-12-22
24
24
  * @param {string} name The namespace to create.
25
25
  */
26
26
  function namespace(name)
@@ -45,7 +45,7 @@ function namespace(name)
45
45
  *
46
46
  * var string = Zen.translations['foo.bar'];
47
47
  *
48
- * @since 22-12-2011
48
+ * @since 2011-12-22
49
49
  * @param {string} key The language key to retrieve.
50
50
  * @return {string}
51
51
  */
@@ -13,7 +13,7 @@
13
13
  * Do note that this implementation does not offer any backwards compatibility
14
14
  * with browsers that don't natively support ``window.onhashchange``.
15
15
  *
16
- * @since 21-12-2011
16
+ * @since 2011-12-21
17
17
  */
18
18
  Element.Events.hashchange = {
19
19
  onAdd: function()
@@ -30,7 +30,7 @@ Element.Events.hashchange = {
30
30
  /**
31
31
  * Adds support for the "invalid" event that is raised for invalid form fields.
32
32
  *
33
- * @since 10-03-2012
33
+ * @since 2012-03-10
34
34
  */
35
35
  Element.Events.invalid = {
36
36
  onAdd: function()
@@ -48,7 +48,7 @@ namespace('Zen');
48
48
  * <!-- Tab field's content -->
49
49
  * </div>
50
50
  *
51
- * @since 12-03-2012
51
+ * @since 2012-03-12
52
52
  */
53
53
  Zen.Form = new Class(
54
54
  {
@@ -57,14 +57,14 @@ Zen.Form = new Class(
57
57
  /**
58
58
  * The form element for this class.
59
59
  *
60
- * @since 12-03-2012
60
+ * @since 2012-03-12
61
61
  */
62
62
  element: null,
63
63
 
64
64
  /**
65
65
  * Object containing the default and custom defined options merged together.
66
66
  *
67
- * @since 12-03-2012
67
+ * @since 2012-03-12
68
68
  */
69
69
  options:
70
70
  {
@@ -83,7 +83,7 @@ Zen.Form = new Class(
83
83
  /**
84
84
  * Creates and prepares a new instance of the class.
85
85
  *
86
- * @since 12-03-2012
86
+ * @since 2012-03-12
87
87
  * @param {Element} element The form element to use for the instance of this
88
88
  * class.
89
89
  * @param {Object} options An object containing custom options to use for
@@ -152,7 +152,7 @@ Zen.Form = new Class(
152
152
  * element is invalid a small icon indicating that there is invalid data
153
153
  * will be displayed in the tab the field belongs to.
154
154
  *
155
- * @since 12-03-2012
155
+ * @since 2012-03-12
156
156
  * @param {Element} element The invalid form element.
157
157
  */
158
158
  invalidElement: function(element)
@@ -179,7 +179,7 @@ Zen.Form = new Class(
179
179
  * used to check if all the errors in a tab field are gone and if so will
180
180
  * remove the error indicator.
181
181
  *
182
- * @since 12-03-2012
182
+ * @since 2012-03-12
183
183
  * @param {Element} element The form element that lost focus.
184
184
  */
185
185
  blurElement: function(element)
@@ -209,7 +209,7 @@ Zen.Form = new Class(
209
209
  * Given a form element (or any other kind of element in a form) this method
210
210
  * will try to retrieve the tab field the element belongs to.
211
211
  *
212
- * @since 12-03-2012
212
+ * @since 2012-03-12
213
213
  * @param {Element} element The element for which to retrieve the tab
214
214
  * field.
215
215
  * @return {Element|null}