97 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // License: LGPL-3.0-or-later
 | |
| const h = require('snabbdom/h')
 | |
| const R = require('ramda')
 | |
| const flyd = require('flyd')
 | |
| const uuid = require('uuid')
 | |
| 
 | |
| // A contact info form for a donor to add a dedication in honor/memory of somebody
 | |
| 
 | |
| 
 | |
| function view(state) {
 | |
|   var radioId1 = uuid.v1() // need unique ids for the checkbox id and label for attrs
 | |
|   var radioId2 = uuid.v1()
 | |
|   var data = state.dedicationData$() || {}
 | |
|   return h('form.dedication-form', {
 | |
|     on: {submit: ev => {ev.preventDefault(); state.submitDedication$(ev.currentTarget)}}
 | |
|   }, [
 | |
|     h('p.u-centered.u-strong.u-marginBottom--10', I18n.t('nonprofits.donate.dedication.info'))
 | |
|   , h('fieldset.u-marginBottom--0.col-6', [
 | |
|       h('input', {props: {
 | |
|         name: 'dedication_type'
 | |
|       , type: 'radio'
 | |
|       , id: radioId1
 | |
|       , value: 'honor'
 | |
|       , checked: !data.dedication_type || data.dedication_type === 'honor'
 | |
|       }})
 | |
|     , h('label', {props: {htmlFor: radioId1}}, I18n.t('nonprofits.donate.dedication.in_honor_label'))
 | |
|     ])
 | |
|   , h('fieldset.u-marginBottom--0', [
 | |
|       h('input', {props: {
 | |
|         name: 'dedication_type'
 | |
|       , type: 'radio'
 | |
|       , value: 'memory'
 | |
|       , id: radioId2
 | |
|       , checked: data.dedication_type === 'memory'
 | |
|       }})
 | |
|     , h('label', {props: {htmlFor: radioId2}}, I18n.t('nonprofits.donate.dedication.in_memory_label'))
 | |
|     ])
 | |
|   , h('fieldset.u-marginBottom--0.col-6', [
 | |
|       h('input', {props: {
 | |
|         name: 'first_name'
 | |
|       , placeholder: I18n.t('nonprofits.donate.dedication.first_name')
 | |
|       , title: 'First name'
 | |
|       , type: 'text'
 | |
|       , value: data.first_name
 | |
|       }})
 | |
|     ])
 | |
|   , h('fieldset.u-marginBottom--0', [
 | |
|       h('input', {props: {
 | |
|         name: 'last_name'
 | |
|       , placeholder: I18n.t('nonprofits.donate.dedication.last_name')
 | |
|       , title: 'Last name'
 | |
|       , type: 'text'
 | |
|       , value: data.last_name
 | |
|       }})
 | |
|     ])
 | |
|   , h('fieldset.u-marginBottom--0.col-6', [
 | |
|       h('input', {props: {
 | |
|         name: 'email'
 | |
|       , placeholder: I18n.t('nonprofits.donate.dedication.email')
 | |
|       , title: 'Email'
 | |
|       , type: 'text'
 | |
|       , value: data.email
 | |
|       }})
 | |
|     ])
 | |
|   , h('fieldset.u-marginBottom--0', [
 | |
|       h('input', {props: {
 | |
|         name: 'phone'
 | |
|       , placeholder: I18n.t('nonprofits.donate.dedication.phone')
 | |
|       , title: 'Phone'
 | |
|       , type: 'text'
 | |
|       , value: data.phone
 | |
|       }})
 | |
|     ])
 | |
|   , h('fieldset.u-marginBottom--0', [
 | |
|       h('input', {props: {
 | |
|         name: 'address'
 | |
|       , placeholder: I18n.t('nonprofits.donate.dedication.full_address')
 | |
|       , title: 'Address'
 | |
|       , type: 'text'
 | |
|       , value: data.address
 | |
|       }})
 | |
|     ])
 | |
|   , h('fieldset', [
 | |
|       h('textarea', {props: {
 | |
|         name: 'dedication_note'
 | |
|       , placeholder: I18n.t('nonprofits.donate.dedication.note')
 | |
|       , title: 'Note'
 | |
|       , value: data.dedication_note
 | |
|       }})
 | |
|     ])
 | |
|   , h('div.u-centered', [
 | |
|       h('button.button', I18n.t('nonprofits.donate.dedication.save'))
 | |
|     ])
 | |
|   ])
 | |
| }
 | |
| 
 | |
| module.exports = {view}
 | 
