134 lines
4 KiB
JavaScript
134 lines
4 KiB
JavaScript
// License: LGPL-3.0-or-later
|
|
var request = require('../../common/client')
|
|
require('../../common/image_uploader')
|
|
require('../../common/el_swapo')
|
|
require('../../common/restful_resource')
|
|
|
|
const render = require('ff-core/render')
|
|
const h = require('snabbdom/h')
|
|
const R = require('ramda')
|
|
const flyd = require('flyd')
|
|
const snabbdom = require('snabbdom')
|
|
const branding = require('./branding/index')
|
|
const emailSettings = require('./email-settings/index')
|
|
const integrations = require('./integrations/index')
|
|
|
|
function init() {
|
|
var state = {}
|
|
state.emailSettings = emailSettings.init()
|
|
state.branding = branding.init()
|
|
state.integrations = integrations.init()
|
|
return state
|
|
}
|
|
|
|
function view(state) {
|
|
return h('div', [
|
|
emailSettings.view(state.emailSettings)
|
|
, branding.view(state.branding)
|
|
, integrations.view(state.integrations)
|
|
])
|
|
}
|
|
|
|
// -- Render flimflam
|
|
|
|
var container = document.querySelector('#js-main')
|
|
const patch = snabbdom.init([
|
|
require('snabbdom/modules/eventlisteners')
|
|
, require('snabbdom/modules/class')
|
|
, require('snabbdom/modules/props')
|
|
, require('snabbdom/modules/style')
|
|
])
|
|
var state = init()
|
|
render({patch, view, state, container})
|
|
|
|
|
|
|
|
// Initialize the froala wysiwyg
|
|
appl.def('initialize_froala', function(){
|
|
var editable = require('../../common/editable')
|
|
editable($('.editable'), {
|
|
email_buttons: true,
|
|
placeholder: 'Edit donation receipt message here.',
|
|
sticky: true,
|
|
noUpdateOnChange: true
|
|
})
|
|
})
|
|
|
|
var np_route = '/nonprofits/' + app.nonprofit_id
|
|
|
|
appl.def('update_card_failure_message', function() {
|
|
appl.def('card_failure_message.loading', true)
|
|
var messageTop = document.getElementById('js-messageTop').innerHTML
|
|
var messageBottom = document.getElementById('js-messageBottom').innerHTML
|
|
var data = { nonprofit: {
|
|
card_failure_message_top: messageTop
|
|
,card_failure_message_bottom: messageBottom
|
|
}
|
|
}
|
|
request.put(np_route + '.json').send(data).end(function(resp) {
|
|
appl.notify('Card failure email successfully saved')
|
|
appl.def('card_failure_message.loading', false)
|
|
})
|
|
})
|
|
|
|
appl.def('update_custom_receipt', function(node) {
|
|
appl.def('receipt.loading', true)
|
|
var classToFind = getClassToFindEditor()
|
|
var receipt = appl.prev_elem(node).getElementsByClassName(classToFind)[0].innerHTML
|
|
var data = { nonprofit: {thank_you_note: receipt} }
|
|
request.put(np_route + '.json').send(data).end(function(resp) {
|
|
appl.notify('Receipt successfully saved')
|
|
appl.def('receipt.loading', false)
|
|
})
|
|
})
|
|
|
|
appl.def('update_change_amount_message', function(node) {
|
|
appl.def('receipt.loading', true)
|
|
var classToFind = getClassToFindEditor()
|
|
var msg = appl.prev_elem(node).getElementsByClassName(classToFind)[0].innerHTML
|
|
var data = { miscellaneous_np_info: {change_amount_message: msg} }
|
|
request.put(np_route + '/miscellaneous_np_info.json').send(data).end(function(resp) {
|
|
appl.notify('Change amount message saved')
|
|
appl.def('receipt.loading', false)
|
|
})
|
|
})
|
|
|
|
if(app.current_nonprofit_user) {
|
|
appl.verify_identity = require('../../nonprofits/payouts/index/verify_identity')
|
|
appl.create_bank_account = require('../../bank_accounts/create.es6')
|
|
}
|
|
|
|
appl.def('statement.validate', function(node) {
|
|
var statement_val = appl.prev_elem(node).value
|
|
appl.def('statement.name', statement_val)
|
|
if(statement_val.search(/[^\w+(<{@?&!$;:\.\-\'\"\,\s}>)]/gi) < 0) {
|
|
appl.def('statement.invalid', false)
|
|
appl.def('error', '')
|
|
}
|
|
else {
|
|
appl.def('statement.invalid', true)
|
|
appl.def('error', 'Statement name cannot contain special characters')
|
|
}
|
|
})
|
|
|
|
appl.def('cancel_billing_subscription', function() {
|
|
appl.notify('Cancelling subscription...')
|
|
appl.def('loading', true)
|
|
request.put(np_route + '/billing_subscription/cancel')
|
|
.send({}).end(function(resp) {
|
|
appl.def('loading', false)
|
|
})
|
|
})
|
|
|
|
function getClassToFindEditor()
|
|
{
|
|
if (app.editor === 'froala' )
|
|
return "froala-element"
|
|
else if (app.editor === 'quill')
|
|
return "ql-editor"
|
|
}
|
|
|
|
window.onload = function() {
|
|
appl.initialize_froala()
|
|
}
|
|
|