EnVisageOnline/Tools/Third-Party/PIXELADMIN/1.3.0/javascripts/sources/plugins/tasks.coffee

44 lines
1.1 KiB
CoffeeScript

# -------------------------------------------------------------------
# plugins / tasks.coffee
Tasks = ($el, options={}) ->
@$el = $el
@options = $.extend({}, Tasks.DEFAULTS, options)
self = @
$el.on 'click', '.task input[type=checkbox]', ->
self.completeTask($(@))
.on 'click', '.task a', ->
$(@).parents('.task').find('input[type=checkbox]').click()
false
@
Tasks.prototype.completeTask = ($trigger) ->
$task = $trigger.parents('.task')
if $task.toggleClass('completed').hasClass('completed')
@options.onComplete.call(@)
else
@options.onCancel.call(@)
Tasks.prototype.clearCompletedTasks = () ->
$('.completed', @$el).hide 200, () ->
$(@).remove()
@options.onClear.call(@)
Tasks.DEFAULTS =
onComplete: () ->
onCancel: () ->
onClear: () ->
$.fn.pixelTasks = (options) ->
$(@).each ->
$this = $(@)
pt = $.data(@, 'pixelTasks')
if not pt
$.data(@, 'pixelTasks', new Tasks($this, options))
else if options is 'clearCompletedTasks'
pt.clearCompletedTasks()
$.fn.pixelTasks.Constructor = Tasks