Ejemplo n.º 1
0
function EditExistingDialog(opt){
	var entity = opt.entity,
		domain = app.getDomain(entity.domainName);

	var self = this;
	EventEmitter.call(self);


	var form = formBuilder.buildDataEntryForm(domain, entity);

	var template = getTemplate(domain);
	self.$element = $(template({ }));
	self.$element.find('.js-form').append(form.$element);

	var $btnSave = self.$element.find('.js-save');

	self.updateFields = function(){
		_.extend(entity, form.getData());
		return entity;
	};

	function _onCreateButtonClick(keepActivityRunning, ev){
		var $this = $(this),
			oldText = $this.text();

		$this.parent()
			.find('input,button')
			.attr('disabled', 'disabled');

		$this.text('Please wait...');

		ev.preventDefault();

		_updateFields();
		self.emit('edited', entity);

		$this.text(oldText);
		$this.parent()
			.find('input,button')
			.removeAttr('disabled');
	}

	$btnSave.click(_.partial(_onCreateButtonClick, true));
}
Ejemplo n.º 2
0
function CreateNewDialog(opt){
	var domain = opt.domain;

	var self = this;
	EventEmitter.call(self);

	var modal, crumbs = [];

	this.setCrumbs = function(myCrumbs){
		crumbs = myCrumbs || [];
	};

	var title =  'Create '+ domain.label;

	var form = formBuilder.buildDataEntryForm(domain);

	var template = getTemplate(domain);
	var $content = $(template({
			isNew: true,
			crumbs: crumbs,
		}));

	$content.find('.js-form').append(form.$element);

	var $btnSave = $content.find('.js-save');

	modal = new Modal({
			title: title,
			$content: $content,
			hideOkay: true,
			backAction: opt.backAction,
		});

	function _handleSave(keepOpen){
		var now = Date.now();

		console.log("_handleSaveYYY");
		var entity = {
				domainName: domain.name,
				beginTime: now,
				endTime: keepOpen ? null : now,
			};

		entity = _.extend(entity, form.getData());

		var activityService = domain.getService('activity');
		if (activityService){
			activityService.start(entity);
		}

		var eventService = domain.getService('event');
		if (eventService){
			eventService.create(entity);
		}

		return q.all([
				deviceSettings(),
				geolocation.once(),
			])
			.spread(function(settings, locationData){
				entity.observerId = settings.user;
				// entity.geo.create = {
// 					type: 'Point',
// 					coordinates: [
// 						locationData.coords.longitude,
// 						locationData.coords.latitude,
// 						locationData.coords.altitude,
// 					],
// 					properties: {
// 						timestamp: Date.now(),
// 					},
// 				};
				return entity;
			});
	}

	function _createButtonClick(keepActivityRunning, ev){
		console.log('gotta click');

		var $this = $(this),
			oldText = $this.text();

			console.log("parent analysis jrc");
			console.log($this);
			
		$this.parent()
			.find('input,button')
			.attr('disabled', 'disabled');

		$this.text('Please wait...');

		ev.preventDefault();
		return _handleSave(keepActivityRunning)
			.then(function(data){
				console.dir('emiting created');
				console.dir(data);
				self.emit('created', data);
			})
			.catch(function(err){
				console.dir('error in CreateNewDialog');
				console.error(err);
			})
			.finally(function(){
				$this.text(oldText);
				$this.parent()
					.find('input,button')
					.removeAttr('disabled');
			});
	}

	$btnSave.click(_.partial(_createButtonClick, true));
	modal.on('closed', function(){
		self.emit('closed');
	});

	this.show = function(){
		modal.show();
	};

	this.hide = function(){
		modal.hide();
	};
	this.remove = function(){
		modal.remove();
	};
	this.zIndex = function(_newZ) {
		modal.modalElement.css('z-index', _newZ);
	};
}