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

Commit 9edd54a

Browse files
committed
Autoenable TaskLists with js-task-list-enable class only
1 parent b8ca086 commit 9edd54a

File tree

5 files changed

+17
-9
lines changed

5 files changed

+17
-9
lines changed

app/assets/javascripts/task_lists.coffee

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@
8787
# Task list checkboxes are rendered as disabled by default because rendered
8888
# user content is cached without regard for the viewer. We enable checkboxes
8989
# on `pageUpdate` if the container has a `(textarea).js-task-list-field`.
90+
#
91+
# To automatically enable TaskLists, add the `js-task-list-enable` class to the
92+
# `js-task-list-container`.
9093

9194
incomplete = "[ ]"
9295
complete = "[x]"
@@ -195,4 +198,4 @@ $.fn.disableTaskList = ->
195198

196199
# When the page is updated, enable new TaskList containers.
197200
$.pageUpdate ->
198-
$('.js-task-list-container').enableTaskList()
201+
$('.js-task-list-container.js-task-list-enable').enableTaskList()

config.ru

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ end
1919

2020
map "/update" do
2121
run lambda { |env|
22+
sleep 0.5
2223
req = Rack::Request.new(env)
2324
[200, {'Content-Type' => 'application/json'}, [req.params.to_json]]
2425
}

test/functional/test_task_lists_behavior.html

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@
1414
$('.log').prepend("<li class='timestamp'><time>" + new Date + "</time></li>")
1515
}, 3000)
1616

17-
$(document).on('tasklist:enable', logEvent)
1817
$(document).on('tasklist:enabled', logEvent)
1918
$(document).on('tasklist:disabled', logEvent)
20-
$(document).on('tasklist:change', logEvent)
19+
$(document).on('tasklist:change', '.js-task-list-field', function(event){
20+
logEvent(event)
21+
$(this).closest('.js-task-list-container').disableTaskList()
22+
})
2123
$(document).on('tasklist:changed', '.js-task-list-field', function(event){
2224
logEvent(event)
2325
$(this).closest('form').submit()
@@ -26,7 +28,7 @@
2628
$(document).on('ajaxStart', logEvent)
2729
$(document).on('ajaxSuccess', '.js-task-list-container', function(event){
2830
logEvent(event)
29-
$(this).pageUpdate() // reenables the task lists
31+
$(this).enableTaskList()
3032
})
3133
</script>
3234

@@ -65,7 +67,7 @@
6567
</style>
6668
</head>
6769
<body>
68-
<div class="js-task-list-container">
70+
<div class="js-task-list-container js-task-list-enable">
6971
<div class="markdown">
7072
<ul class="task-list">
7173
<li class="task-list-item">

test/unit/test_events.coffee

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ module "TaskList events",
2020

2121
@container.append @field
2222

23-
$('#qunit-fixture').append(@container).pageUpdate()
23+
$('#qunit-fixture').append(@container)
24+
@container.enableTaskList()
2425

2526
teardown: ->
2627
$(document).off 'tasklist:enabled'
@@ -76,7 +77,7 @@ asyncTest "enables task list items when a .js-task-list-field is present", ->
7677
$(document).on 'tasklist:enabled', (event) ->
7778
ok true
7879

79-
@container.pageUpdate()
80+
@container.enableTaskList()
8081
setTimeout ->
8182
start()
8283
, 20
@@ -89,7 +90,7 @@ asyncTest "doesn't enable task list items when a .js-task-list-field is absent",
8990

9091
@field.remove()
9192

92-
@container.pageUpdate()
93+
@container.enableTaskList()
9394
setTimeout ->
9495
start()
9596
, 20

test/unit/test_updates.coffee

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ module "TaskList updates",
4646
@container.append @list
4747
@container.append @field
4848

49-
$('#qunit-fixture').append(@container).pageUpdate()
49+
$('#qunit-fixture').append(@container)
50+
@container.enableTaskList()
5051

5152
teardown: ->
5253
$(document).off 'tasklist:changed'

0 commit comments

Comments
 (0)