Newer
Older
/**
* QUIQQER Contact Control
*
* @author www.pcsg.de (Henning Leutz)
* @module Bricks\Controls\SimpleContact
*
* @require qui/QUI
* @require qui/controls/Control
* @require qui/controls/buttons/Button
* @require qui/controls/loader/Loader
* @require Ajax
* @require Locale
*/
define('package/quiqqer/bricks/bin/Controls/SimpleContact', [
'qui/QUI',
'qui/controls/Control',
'qui/controls/buttons/Button',
'qui/controls/loader/Loader',
'Ajax',
'Locale'
], function (QUI, QUIControl, QUIButton, QUILoader, Ajax, QUILocale) {
"use strict";
return new Class({
Extends: QUIControl,
Type : 'Controls/SimpleContact',
initialize: function (options) {
this.parent(options);
this.Loader = new QUILoader();
this.$Email = null;
this.addEvents({
},
/**
* event : on import
*/
$onImport: function () {
var self = this;
this.Loader.inject(this.$Elm);
michael.daniel
committed
this.Form = this.$Elm.getElement('form');
var Button = new Element('button', {
'class' : 'quiqqer-simple-contact-button',
'type': 'button',
'html' : QUILocale.get('quiqqer/bricks', 'control.simpleContact.sendButton'),
events: {
click: function () {
self.$Elm.getElement('form').fireEvent('submit');
}
michael.daniel
committed
Button.inject(this.Form);
this.$Elm.getElement('form').addEvent('submit', function (event) {
if (typeof event !== 'undefined') {
event.stop();
}
self.send();
});
this.$Text = this.$Elm.getElement('[name="message"]');
this.$Email = this.$Elm.getElement('[name="email"]');
this.$Name = this.$Elm.getElement('[name="name"]');
},
/**
* Send contact message
*/
send: function () {
if (this.$Text.value === '') {
this.$Text.focus();
return;
}
if (this.$Email.value === '') {
this.$Email.focus();
return;
}
if (this.$Name.value === '') {
this.$Name.focus();
return;
}
var self = this;
this.Loader.show();
Ajax.post('package_quiqqer_bricks_ajax_contact', function (result) {
if (result) {
var html = '<span class="fa fa-check fa-check-simple-contact control-color"></span>';
michael.daniel
committed
html += QUILocale.get('quiqqer/bricks', 'brick.control.simpleContact.successful');
self.Form.set('html', html);
}
self.Loader.hide();
}, {
'package': 'quiqqer/bricks',
brickId : this.$Elm.get('data-brickid'),
message : this.$Text.value,
email : this.$Email.value,
name : this.$Name.value,
showError: false,
project : JSON.encode(QUIQQER_PROJECT),
siteId : QUIQQER_SITE.id,
onError : function (Exception) {
self.Loader.hide();
QUI.getMessageHandler(function (MH) {
michael.daniel
committed
MH.options.displayTimeMessages = 8000;
MH.addError(Exception.getMessage(), self.$Elm);
});
}
});
}
});