59 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// License: LGPL-3.0-or-later
 | 
						|
require('../../common/pikaday-timepicker')
 | 
						|
require('../../components/wizard')
 | 
						|
require('../../common/image_uploader')
 | 
						|
var checkName = require('../../common/ajax/check_campaign_or_event_name')
 | 
						|
var format_err = require('../../common/format_response_error')
 | 
						|
 | 
						|
 | 
						|
appl.def('advance_event_name_step', function(form_obj) {
 | 
						|
  var name = form_obj['event[name]']
 | 
						|
  checkName(name, 'event', function(){
 | 
						|
    appl.def('new_event', form_obj) 
 | 
						|
    appl.wizard.advance('new_event_wiz')
 | 
						|
  })
 | 
						|
})
 | 
						|
 | 
						|
// Post a new event.
 | 
						|
appl.def('create_event', function(el) {
 | 
						|
	var form_data = utils.toFormData(appl.prev_elem(el))
 | 
						|
	form_data = utils.mergeFormData(form_data, appl.new_event)
 | 
						|
	appl.def('new_event_wiz.loading', true)
 | 
						|
 | 
						|
	post_event(form_data)
 | 
						|
		.then(function(req) {
 | 
						|
			appl.notify("Redirecting to your new event...")
 | 
						|
			appl.redirect(JSON.parse(req.response).url)
 | 
						|
		})
 | 
						|
		.catch(function(req) {
 | 
						|
			appl.def('new_event_wiz.loading', false)
 | 
						|
			appl.def('new_event_wiz.error', req.responseText)
 | 
						|
		})
 | 
						|
})
 | 
						|
 | 
						|
 | 
						|
// Using the bare-bones XMLHttpRequest API so we can post form data and upload the image
 | 
						|
function post_event(form_data) {
 | 
						|
	return new Promise(function(resolve, reject) {
 | 
						|
		var req = new XMLHttpRequest()
 | 
						|
		req.open("POST", '/nonprofits/' + app.nonprofit_id + '/events')
 | 
						|
		req.setRequestHeader('X-CSRF-Token', window._csrf)
 | 
						|
		req.send(form_data)
 | 
						|
		req.onload = function(ev) {
 | 
						|
			if(req.status === 200) resolve(req)
 | 
						|
			else reject(req)
 | 
						|
		}
 | 
						|
	})
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
// Pikaday and timepicker initialization nonsense
 | 
						|
 | 
						|
var Pikaday = require('pikaday')
 | 
						|
var moment = require('moment')
 | 
						|
new Pikaday({
 | 
						|
	field: document.querySelector('#date-string-input'),
 | 
						|
	format: 'M/D/YYYY',
 | 
						|
	minDate: moment().toDate()
 | 
						|
})
 | 
						|
 |