beta delete + contact, invite type, email clone, email count

This commit is contained in:
Ulf Gebhardt 2018-06-14 15:39:35 +02:00
parent e112dc3704
commit 57c124a1f0
9 changed files with 92 additions and 4 deletions

View File

@ -268,6 +268,34 @@ function init_saimod_mail_emails() {
});
}
});
$('#btn-mail-email-clone').click(function(){
var emails = [];
$('.mail-email-check:checked').each(function() {
emails.push($(this).attr('email'));
});
$.ajax({
async: true,
url: this.endpoint,
type: 'POST',
dataType: 'JSON',
data: {
sai_mod: '.SAI.saimod_mail',
action: 'clone_email',
data: emails
},
success: function(data){
if(data.status){
system.reload();
} else {
alert('Something happend - try again!');
}
},
error: function(){
alert('Something happend - try again!');
}
});
});
}
function init_saimod_mail_email() {

View File

@ -136,7 +136,7 @@ class saimod_mail extends \SYSTEM\SAI\sai_module{
while($row = $list_handle->next()){
\set_time_limit(30);
self::send_mail($row['email'], $email_id, $list) ? 1 : 0;
\sleep(3);
\sleep(1);
}
return \SYSTEM\LOG\JsonResult::ok();
}
@ -372,7 +372,7 @@ class saimod_mail extends \SYSTEM\SAI\sai_module{
$vars['images'] .= \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_mail/tpl/saimod_mail_email_image.tpl'))->SERVERPATH(),$new_image);
//send
$vars['send'] = '';
$res = \SQL\EMAIL_LISTS_SELECT::QQ();
$res = \SQL\EMAIL_LISTS_SELECT_AND_SENT_COUNT::QQ(array($id));
while($row = $res->next()){
$row['disabled'] = $row['id'] == self::EMAIL_LIST_TEST ? '' : 'disabled';
$row['btn-color'] = $row['id'] == self::EMAIL_LIST_TEST ? 'success' : 'danger';
@ -462,6 +462,15 @@ class saimod_mail extends \SYSTEM\SAI\sai_module{
return \JsonResult::ok();
}
public static function sai_mod__SAI_saimod_mail_action_clone_email($data){
foreach($data as $id){
$new_id = \SQL\EMAIL_CLONE::QI(array($id),true);
\SQL\EMAIL_PLACEHOLDER_CLONE::QI(array($new_id,$id));
\SQL\EMAIL_IMAGE_CLONE::QI(array($new_id,$id));
}
return \JsonResult::ok();
}
public static function sai_mod__SAI_saimod_mail_action_templates($type=0){
$vars = array();
$vars['active_text'] = $type == 0 ? 'active' : '';

10
sql/EMAIL_CLONE.php Normal file
View File

@ -0,0 +1,10 @@
<?php
namespace SQL;
class EMAIL_CLONE extends \SYSTEM\DB\QP {
public static function get_class(){return \get_class();}
public static function mysql(){return
'INSERT INTO email (name,account,sender,subject,template_text,template_html)
(SELECT CONCAT("Clone:",name) as name,account,sender,subject,template_text,template_html FROM email WHERE id = ?);';
}
}

10
sql/EMAIL_IMAGE_CLONE.php Normal file
View File

@ -0,0 +1,10 @@
<?php
namespace SQL;
class EMAIL_IMAGE_CLONE extends \SYSTEM\DB\QP {
public static function get_class(){return \get_class();}
public static function mysql(){return
'INSERT INTO email_image (`email`,`name`,`file`,`mime`)
(SELECT ? as email, name, file, mime FROM email_image WHERE email = ?);';
}
}

View File

@ -0,0 +1,16 @@
<?php
namespace SQL;
class EMAIL_LISTS_SELECT_AND_SENT_COUNT extends \SYSTEM\DB\QP {
public static function get_class(){return \get_class();}
public static function mysql(){return
'SELECT email_list.*,
COUNT(contact_email_list.email) as count_all,
COUNT(email_sent.email) as count_sent
FROM email_list
LEFT JOIN contact_email_list ON email_list.id = contact_email_list.list
LEFT JOIN email_sent ON contact_email_list.email = email_sent.email AND email_sent.id = ?
GROUP BY email_list.id
;';
}
}

View File

@ -0,0 +1,10 @@
<?php
namespace SQL;
class EMAIL_PLACEHOLDER_CLONE extends \SYSTEM\DB\QP {
public static function get_class(){return \get_class();}
public static function mysql(){return
'INSERT INTO email_placeholder (`email`,`name`,`type`,`data`)
(SELECT ? as email, name, type, data FROM email_placeholder WHERE email = ?);';
}
}

View File

@ -12,6 +12,7 @@ REPLACE INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `na
REPLACE INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (9043, 42, 2, 9000, 'send_email', 'data', 'JSON');
REPLACE INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (9045, 42, 2, 9000, 'update_email', 'data', 'JSON');
REPLACE INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (9047, 42, 2, 9000, 'insert_email', 'data', 'JSON');
REPLACE INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (9048, 42, 2, 9000, 'clone_email', 'data', 'JSON');
REPLACE INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (9049, 42, 2, 9000, 'delete_email', 'data', 'JSON');
REPLACE INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (9050, 42, 3, 9000, 'list', 'id', 'UINT0');

View File

@ -1,5 +1,8 @@
<tr>
<td><a href="#!mail(list);id.${id}">${name}</a></td>
<td>
<a href="#!mail(list);id.${id}">${name}</a><br>
${count_sent}/${count_all} Sent
</td>
<td>
<button class="btn btn-sm btn-${btn-color} btn-email-send" ${disabled} list="${id}" email="${email}"><i class="fa fa-send"></i>&nbsp;Send</button>
</td>

View File

@ -6,10 +6,11 @@
<th>Name</th>
<th>From</th>
<th>Subject</th>
<th>System Lock</th>
<th>Lock</th>
<th>UpdatedAt</th>
<th>
<button type="button" id="btn-mail-email-del" class="btn btn-sm btn-danger pull-right"><i class="fa fa-trash"></i></button>
<button type="button" id="btn-mail-email-clone" class="btn btn-sm btn-warning pull-right" style="margin-right: 5px;"><i class="fa fa-copy"></i></button>
<button type="button" id="btn-mail-email-new" class="btn btn-sm btn-success pull-right" onclick="system.load('mail(email_new)')" style="margin-right: 10px;"><i class="fa fa-plus"></i></button>
</th>
</tr>