91 lines
2.6 KiB
CoffeeScript
91 lines
2.6 KiB
CoffeeScript
($ document).on "click", "input[type=checkbox][name=gm-list-check]", ->
|
|
box = $(this)
|
|
box.attr 'disabled', 'disabled'
|
|
|
|
listName = box[0].dataset.list
|
|
|
|
count = Number ($ "span##{listName}-members").html()
|
|
boxChecked = box[0].checked
|
|
|
|
count += if boxChecked then 1 else -1
|
|
|
|
$.ajax
|
|
url: '/ajax/list_membership'
|
|
type: 'POST'
|
|
data:
|
|
user: box[0].dataset.user
|
|
list: listName
|
|
add: boxChecked
|
|
success: (data, status, jqxhr) ->
|
|
if data.success
|
|
box[0].checked = if data.checked? then data.checked else !boxChecked
|
|
($ "span##{listName}-members").html(count)
|
|
showNotification data.message, data.success
|
|
error: (jqxhr, status, error) ->
|
|
box[0].checked = false
|
|
console.log jqxhr, status, error
|
|
showNotification translate('frontend.error.message'), false
|
|
complete: (jqxhr, status) ->
|
|
box.removeAttr "disabled"
|
|
|
|
|
|
$(document).on "keyup", "input#new-list-name", (evt) ->
|
|
if evt.which == 13 # return key
|
|
evt.preventDefault()
|
|
$("button#create-list").trigger 'click'
|
|
|
|
|
|
($ document).on "click", "button#create-list", ->
|
|
btn = $(this)
|
|
btn.button "loading"
|
|
input = ($ "input#new-list-name")
|
|
|
|
$.ajax
|
|
url: '/ajax/create_list'
|
|
type: 'POST'
|
|
data:
|
|
name: input.val()
|
|
user: btn[0].dataset.user
|
|
dataType: 'json'
|
|
success: (data, status, jqxhr) ->
|
|
if data.success
|
|
($ "#lists-list ul.list-group").append(data.render)
|
|
input.val ''
|
|
showNotification data.message, data.success
|
|
error: (jqxhr, status, error) ->
|
|
console.log jqxhr, status, error
|
|
showNotification translate('frontend.error.message'), false
|
|
complete: (jqxhr, status) ->
|
|
btn.button "reset"
|
|
|
|
|
|
($ document).on "click", "a#delete-list", (ev) ->
|
|
ev.preventDefault()
|
|
btn = $(this)
|
|
list = btn[0].dataset.list
|
|
|
|
swal
|
|
title: translate('frontend.list.title')
|
|
text: translate('frontend.list.text')
|
|
type: "warning"
|
|
showCancelButton: true
|
|
confirmButtonColor: "#DD6B55"
|
|
confirmButtonText: translate('views.actions.delete')
|
|
cancelButtonText: translate('views.actions.cancel')
|
|
closeOnConfirm: true
|
|
, ->
|
|
$.ajax
|
|
url: '/ajax/destroy_list'
|
|
type: 'POST'
|
|
data:
|
|
list: list
|
|
dataType: 'json'
|
|
success: (data, status, jqxhr) ->
|
|
if data.success
|
|
($ "li.list-group-item#list-#{list}").slideUp()
|
|
showNotification data.message, data.success
|
|
error: (jqxhr, status, error) ->
|
|
console.log jqxhr, status, error
|
|
showNotification translate('frontend.error.message'), false
|
|
complete: (jqxhr, status) ->
|