62 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			62 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								// License: LGPL-3.0-or-later
							 | 
						||
| 
								 | 
							
								const h = require('snabbdom/h')
							 | 
						||
| 
								 | 
							
								const button = require('ff-core/button')
							 | 
						||
| 
								 | 
							
								const notification = require('ff-core/notification')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const view = state => {
							 | 
						||
| 
								 | 
							
								  var settings = state.email_settings$()
							 | 
						||
| 
								 | 
							
								  if(!settings) {
							 | 
						||
| 
								 | 
							
								    return h('section.settings-pane.nonprofit-settings.notifications.hide', [h('i.fa.fa-spin.fa-spinner'), ' Loading...'])
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
									return h('section.settings-pane.nonprofit-settings.notifications.hide', [
							 | 
						||
| 
								 | 
							
										h('header.pane-header', [h('h3', 'Email Notifications')])
							 | 
						||
| 
								 | 
							
								  , h('p', `Choose the emails you want to receive for ${app.user.email}`)
							 | 
						||
| 
								 | 
							
								  , h('form.notificationsForm', {on: {submit: ev=> {ev.preventDefault(); state.submit$(ev)}}}, [
							 | 
						||
| 
								 | 
							
								      h('fieldset', [
							 | 
						||
| 
								 | 
							
								        h('input#notifications_payments', {props: {type: 'checkbox', name: 'notify_payments', checked: settings.notify_payments}})
							 | 
						||
| 
								 | 
							
								      , h('label', {props: {htmlFor: 'notifications_payments'}}, [
							 | 
						||
| 
								 | 
							
								          h('strong', 'General payment notifications')
							 | 
						||
| 
								 | 
							
								        , h('br')
							 | 
						||
| 
								 | 
							
								        , h('small', 'Receive donation receipts, ticket receipts, and refund notifications')
							 | 
						||
| 
								 | 
							
								        ])
							 | 
						||
| 
								 | 
							
								      ])
							 | 
						||
| 
								 | 
							
								    , h('fieldset', [
							 | 
						||
| 
								 | 
							
								        h('input#notifications_campaigns', {props: {type: 'checkbox', name: 'notify_campaigns', checked: settings.notify_campaigns}})
							 | 
						||
| 
								 | 
							
								      , h('label', {props: {htmlFor: 'notifications_campaigns'}}, [
							 | 
						||
| 
								 | 
							
								          h('strong', 'Campaign notifications')
							 | 
						||
| 
								 | 
							
								        , h('br')
							 | 
						||
| 
								 | 
							
								        , h('small', 'Receive all campaign receipts by default (you can also enable/disable these emails within the settings for each campaign page)')
							 | 
						||
| 
								 | 
							
								        ])
							 | 
						||
| 
								 | 
							
								      ])
							 | 
						||
| 
								 | 
							
								    , h('fieldset', [
							 | 
						||
| 
								 | 
							
								        h('input#notifications_events', {props: {type: 'checkbox', name: 'notify_events', checked: settings.notify_events}})
							 | 
						||
| 
								 | 
							
								      , h('label', {props: {htmlFor: 'notifications_events'}}, [
							 | 
						||
| 
								 | 
							
								          h('strong', 'Event notifications')
							 | 
						||
| 
								 | 
							
								        , h('br')
							 | 
						||
| 
								 | 
							
								        , h('small', 'Receive all event receipts by default (you can also enable/disable these emails within the settings for eachp event page)')
							 | 
						||
| 
								 | 
							
								        ])
							 | 
						||
| 
								 | 
							
								      ])
							 | 
						||
| 
								 | 
							
								    , h('fieldset', [
							 | 
						||
| 
								 | 
							
								        h('input#notifications_payouts', {props: {type: 'checkbox', name: 'notify_payouts', checked: settings.notify_payouts}})
							 | 
						||
| 
								 | 
							
								      , h('label', {props: {htmlFor: 'notifications_payouts'}}, [
							 | 
						||
| 
								 | 
							
								          h('strong', 'Payout notifications')
							 | 
						||
| 
								 | 
							
								        , h('br')
							 | 
						||
| 
								 | 
							
								        , h('small', 'Receive notifications about pending, succeeded, and/or failed payouts')
							 | 
						||
| 
								 | 
							
								        ])
							 | 
						||
| 
								 | 
							
								      ])
							 | 
						||
| 
								 | 
							
								    , h('fieldset', [
							 | 
						||
| 
								 | 
							
								        h('input#notifications_recurring_donations', {props: {type: 'checkbox', name: 'notify_recurring_donations', checked: settings.notify_recurring_donations}})
							 | 
						||
| 
								 | 
							
								      , h('label', {props: {htmlFor: 'notifications_recurring_donations'}}, [
							 | 
						||
| 
								 | 
							
								          h('strong', 'Recurring donation cancellation notifications')
							 | 
						||
| 
								 | 
							
								        , h('br')
							 | 
						||
| 
								 | 
							
								        , h('small', 'Receive emails when a donor cancels their recurring donation')
							 | 
						||
| 
								 | 
							
								        ])
							 | 
						||
| 
								 | 
							
								      ])
							 | 
						||
| 
								 | 
							
								    , button({loading$: state.loading$})
							 | 
						||
| 
								 | 
							
								    , notification.view(state.notification)
							 | 
						||
| 
								 | 
							
								    ])
							 | 
						||
| 
								 | 
							
									])
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = view
							 |