Skip to content
This repository was archived by the owner on Nov 1, 2017. It is now read-only.

Commit cdf00dc

Browse files
committed
Trigger tasklist:changing instead of disabling
Let the app integrating TaskLists determine when to disable/enable updates.
1 parent 3db430a commit cdf00dc

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

app/assets/javascripts/task_lists.coffee

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#
33
#= provides tasklist:enabled
44
#= provides tasklist:disabled
5+
#= provides tasklist:changing
56
#= provides tasklist:change
67
#
78
#= require crema/events/pageupdate
@@ -117,13 +118,15 @@ enableTaskList = ($container) ->
117118
$container.
118119
find('.task-list-item').addClass('enabled').
119120
find('.task-list-item-checkbox').attr('disabled', null)
120-
$container.trigger 'tasklist:enabled'
121+
$container.addClass('is-task-list-enabled').
122+
trigger 'tasklist:enabled'
121123

122124
disableTaskList = ($container) ->
123125
$container.
124126
find('.task-list-item').removeClass('enabled').
125127
find('.task-list-item-checkbox').attr('disabled', 'disabled')
126-
$container.trigger 'tasklist:disabled'
128+
$container.removeClass('is-task-list-enabled').
129+
trigger 'tasklist:disabled'
127130

128131
# Updates the $field value to reflect the state of $item.
129132
# Triggers the `tasklist:change` event when the value has changed.
@@ -133,8 +136,7 @@ updateTaskList = ($item) ->
133136
index = 1 + $container.find('.task-list-item-checkbox').index($item)
134137
checked = $item.prop 'checked'
135138

136-
disableTaskList $container
137-
139+
$container.trigger 'tasklist:changing', [index, checked]
138140
$field.val updateTaskListItem($field.val(), index, checked)
139141
$field.trigger 'change'
140142
$field.trigger 'tasklist:change', [index, checked]
@@ -143,12 +145,15 @@ updateTaskList = ($item) ->
143145
$(document).on 'change', '.task-list-item-checkbox', ->
144146
updateTaskList $(this)
145147

148+
# Disable a TaskList container.
146149
$(document).on 'tasklist:disable', '.js-task-list-container', (event) ->
147150
disableTaskList $(this)
148151

152+
# (Re)enable a TaskList container.
149153
$(document).on 'tasklist:enable', '.js-task-list-container', (event) ->
150154
enableTaskList $(this)
151155

156+
# When the page is updated, enable new TaskList containers.
152157
$.pageUpdate ->
153158
$('.js-task-list-container').each ->
154159
enableTaskList $(this)

0 commit comments

Comments
 (0)