diff --git a/.gitmodules b/.gitmodules index ef63c55..00b0020 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,9 @@ [submodule "lib/system"] path = lib/system url = git@github.com:webcraftmedia/system.git +[submodule "wecker_manufaktur/sai/saimod_mail"] + path = wecker_manufaktur/sai/saimod_mail + url = git@github.com:webcraftmedia/saimod_mail.git +[submodule "lib/mail_cannon"] + path = lib/mail_cannon + url = git@github.com:webcraftmedia/lib_mail_cannon.git diff --git a/lib/autoload.inc b/lib/autoload.inc index b3dbb18..4bb898e 100644 --- a/lib/autoload.inc +++ b/lib/autoload.inc @@ -1,2 +1,3 @@ SERVERPATH()); $vars = array_merge($vars, \SYSTEM\PAGE\text::tag('wecker_manufaktur')); return \SYSTEM\PAGE\replace::replaceFile((new PPAGE('default_page/tpl/default_page.tpl'))->SERVERPATH(), $vars); } diff --git a/wecker_manufaktur/page/default_page/js/default_page.js b/wecker_manufaktur/page/default_page/js/default_page.js index c5438da..4a90239 100644 --- a/wecker_manufaktur/page/default_page/js/default_page.js +++ b/wecker_manufaktur/page/default_page/js/default_page.js @@ -8,6 +8,74 @@ $(document).ready(function() { $('.project-link').click(function(e){showProject(e,$(this).attr('project'),false,true)}) $('.project-person-link').click(function(e){showPerson(e,$(this).attr('person'),true,false)}) + + $("#apply-send").click(function(e){ + e.preventDefault(); + var data = { name: $('#apply-name').val(), + email: $('#apply-email').val(), + message: $('#apply-message').val()}; + + if (data.name.length < 3 ){ + alert( "Bitte einen Namen eingeben"); + $("#apply-name").focus(); + return null; + } + if (!validateEmail(data.email)){ + alert( "Bitte einen gültige E-Mail eingeben"); + $("#apply-email").focus(); + return null; + } + if (data.message.length > 500 ){ + alert( "Bitte einen kürzeren Text eingeben"); + $("#apply-message").focus(); + return null; + } + + sendMail(data,function(data){ + if(data && data.status){ + $("#apply-message").val('') + alert("Danke! Deine Nachricht wurde versendet."); + } else { + alert("Deine Nachricht konnte nicht versendet weden. Bitte versuche es später noch einmal. Danke."); + } + }); + }); + + $('#apply-message').on('keyup',function(){ + $('#apply-count').html($(this).val().length+'/500'); + }); + + $('#footer-nl-subscribe').click(function(e){ + e.preventDefault(); + var email = $('#footer-nl-email').val(); + + if(!validateEmail(email)){ + alert( "Bitte einen gültige E-Mail eingeben"); + $('#footer-nl-email').focus() + } else { + $.ajax({ + async: true, + url: './api.php', + type: 'GET', + dataType: 'JSON', + data: { + call: 'send_subscribe', + data: { email: email} + }, + success: function(data){ + if(!data.status){ + alert("Das Eintragen in den Newsletter hat leider nicht funktioniert. Bitte versuche es später noch einmal. Danke."); + } else { + $('#confirm').show(); + $('#formular').hide(); + } + }, + error: function(){ + alert("Das Eintragen in den Newsletter hat leider nicht funktioniert. Bitte versuche es später noch einmal. Danke."); + } + }); + } + }); }); function showPerson(event,subject_id,jump,toggle){ @@ -61,4 +129,28 @@ function showProject(event,subject_id,jump,toggle){ if(!toggle || isHidden){ $('#project-details-'+subject_id).removeClass('d-none'); } -} \ No newline at end of file +} + +function sendMail(data,callback){ + $.ajax({ + async: true, + url: './api.php', + type: 'GET', + dataType: 'JSON', + data: { + call: 'send_mail', + data: data + }, + success: function(data){ + callback(data); + }, + error: function(){ + callback(false); + } + }); + } + + function validateEmail(email) { + var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + return re.test(String(email).toLowerCase()); + } \ No newline at end of file diff --git a/wecker_manufaktur/page/default_page/tpl/content_apply.tpl b/wecker_manufaktur/page/default_page/tpl/content_apply.tpl new file mode 100644 index 0000000..7084d2c --- /dev/null +++ b/wecker_manufaktur/page/default_page/tpl/content_apply.tpl @@ -0,0 +1,17 @@ +
+
+ +
+
+ +
+
+ +
+
+ ${content_apply_send} +
+
+ 0/500 +
+
\ No newline at end of file diff --git a/wecker_manufaktur/sai/autoload.inc b/wecker_manufaktur/sai/autoload.inc index 1157648..4cf4fed 100644 --- a/wecker_manufaktur/sai/autoload.inc +++ b/wecker_manufaktur/sai/autoload.inc @@ -1,3 +1,4 @@ SERVERPATH(), - (new \PSQL('/mysql/system_text.sql'))->SERVERPATH()); + return array( (new \PSQL('/mysql/system_api.sql'))->SERVERPATH(), + (new \PSQL('/mysql/system_page.sql'))->SERVERPATH(), + (new \PSQL('/mysql/system_text.sql'))->SERVERPATH(), + (new \PSQL('/mysql/saimod_mail.sql'))->SERVERPATH()); } } \ No newline at end of file diff --git a/wecker_manufaktur/sql/mysql/saimod_mail.sql b/wecker_manufaktur/sql/mysql/saimod_mail.sql new file mode 100644 index 0000000..53b4d0d --- /dev/null +++ b/wecker_manufaktur/sql/mysql/saimod_mail.sql @@ -0,0 +1,11 @@ +INSERT IGNORE INTO email_list (`id`,`name`,`system_lock`) VALUES (2,'Newsletter',1); + + + +INSERT IGNORE INTO email (`id`,`name`,`account`,`sender`,`subject`,`template_text`,`template_html`,`system_lock`) VALUES (10,'Website Contact','test@webcraft-media.de','${data_vorname} ${data_nachname} <${data_email}>','${emoji_mobile} DEMOCRACY Website: ${data_type} from ${data_email}',10,11,1); +INSERT IGNORE INTO email_template (`id`,`type`,`name`,`value`,`system_lock`) VALUES (10,0,'Website Contact Text','Eine Nachricht ist über die Website eingegangen:\n\n${data_json}\n\nAchtung: Diese EMail ist die einzige Kopie dieser Daten',1); +INSERT IGNORE INTO email_template (`id`,`type`,`name`,`value`,`system_lock`) VALUES (11,1,'Website Contact HTML','\nEine Nachricht ist über die Website eingegangen:
\n
\n

Type: ${data_type}

\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
EMail${data_email}
Name${data_vorname} ${data_nachname}
Type${data_type}
Text
${data_text}
\n

Raw Data:

\n
${data_json}
\n
\n
\n

\n Wir sind gespannt, welche großartigen Möglichkeiten in der Zukunft noch für unser Projekt offen stehen und verbleiben mit einem Lächeln und ganz herzlichen Grüßen,\n

\n

\n Ihr TEAM DEMOCRACY\n

\n \"DEMOCRACY\n

\n DEMOCRACY Deutschland e.V.
\n mobil +49 176 470 40 213
\n \n contact@democracy-deutschland.de\n
\n \n https://www.democracy-deutschland.de\n
\n \n https://github.com/demokratie-live\n \n

\n
\n',1); + +INSERT IGNORE INTO email (`id`,`name`,`account`,`sender`,`subject`,`template_text`,`template_html`,`system_lock`) VALUES (20,'Newsletter Subscribe','test@webcraft-media.de','DEMOCRACY Deutschland e.V. ','${emoji_mobile} DEMOCRACY: Deine Newsletter-Anmeldung',20,21,1); +INSERT IGNORE INTO email_template (`id`,`type`,`name`,`value`,`system_lock`) VALUES (20,0,'Newsletter Subscribe Text','Hallo liebe/r Interessierte/r,\n\nSie haben sich für unseren Newsletter eingetragen.\n\nUm sich wieder abzumelden folgen Sie bitte folgendem Link:\n${unsubscribe_link}\n\nHerzliche Grüße\nTeam DEMOCRACY',1); +INSERT IGNORE INTO email_template (`id`,`type`,`name`,`value`,`system_lock`) VALUES (21,1,'Newsletter Subscribe HTML','Hallo liebe/r Interessierte/r,
\n
\nSie haben sich für unseren Newsletter eingetragen.
\n
\nUm sich wieder abzumelden folgen Sie bitte diesem Abmelde-Link
\n
\nHerzliche Grüße
\nTeam DEMOCRACY',1); \ No newline at end of file diff --git a/wecker_manufaktur/sql/mysql/system_api.sql b/wecker_manufaktur/sql/mysql/system_api.sql new file mode 100644 index 0000000..c4584ec --- /dev/null +++ b/wecker_manufaktur/sql/mysql/system_api.sql @@ -0,0 +1,2 @@ +REPLACE INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (100, 0, 2, 10, 'send_mail', 'data', 'JSON'); +REPLACE INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (110, 0, 2, 10, 'send_subscribe', 'data', 'JSON'); \ No newline at end of file