houdini/app/javascript/legacy/nonprofits/supporters/index/timeline.js
2020-04-23 14:09:14 -05:00

69 lines
2.1 KiB
JavaScript

// License: LGPL-3.0-or-later
appl.def('timeline.make_clickable', function(node){
var card = appl.prev_elem(node)
card.setAttribute('clickable', '')
})
appl.def('timeline.show_email', function(email, date) {
email.date = date
set_readonly_email(email)
appl.open_modal('emailReadOnlyModal')
})
appl.def('timeline.show_note', function(note, date) {
appl.def('current_note', {
date: date,
content: note.content,
id: note.id,
is_editing: false
})
appl.open_modal('noteModal')
})
function set_readonly_email(email) {
appl.def('timeline.displaying_email', {
body: email.body.replace(/{{NAME}}/g, appl.supporter_details.data.name_email_or_id),
subject: email.subject,
date: email.date
})
}
appl.def('ajax_supporter_notes', {
create: function(form_obj, node) {
appl.is_loading()
appl.ajax.create('supporter_details.supporter_notes', form_obj).then(function(resp) {
appl.not_loading()
if(!resp.ok) return appl.notify("Sorry! Unable to post note: " + resp.body)
appl.def('timeline_action', null)
appl.ajax.index('supporter_details.activities')
appl.notify("Note added")
node.parentNode.reset()
})
},
update: function(form_obj) {
appl.is_loading()
appl.ajax.update('supporter_details.supporter_notes', form_obj['id'], form_obj).then(function(resp) {
appl.not_loading()
if(!resp.ok) return appl.notify("Sorry! Unable to update note: " + resp.body)
appl.ajax.index('supporter_details.activities')
appl.notify("Note updated")
})
},
delete: function(id) {
appl.is_loading()
appl.close_modal()
appl.ajax.del('supporter_details.supporter_notes', id).then(function(resp) {
appl.not_loading()
if(!resp.ok) return appl.notify("Sorry! Unable to delete note: " + resp.body)
appl.ajax.index('supporter_details.activities')
appl.notify("Note deleted")
})
}
})
appl.def('get_donation_url', function(donation) {
var search_id = (donation && donation.payment && donation.payment.id) ? ('?pid=' + donation.payment.id) : ('?sid=' + appl.supporter_details.id)
return "/nonprofits/" + app.nonprofit_id + "/payments" + search_id
})