Index: admin_templates/mailing_lists/mailing_list_list.tpl
===================================================================
--- admin_templates/mailing_lists/mailing_list_list.tpl (revision 15437)
+++ admin_templates/mailing_lists/mailing_list_list.tpl (working copy)
@@ -25,7 +25,7 @@
a_toolbar.AddButton(
new ToolBarButton(
- 'view_item',
+ 'edit',
'::',
edit
)
@@ -74,6 +74,6 @@
\ No newline at end of file
Index: install/install_schema.sql
===================================================================
--- install/install_schema.sql (revision 15590)
+++ install/install_schema.sql (working copy)
@@ -1106,13 +1106,13 @@
MessageText longtext,
MessageHtml longtext,
`Status` tinyint(3) unsigned NOT NULL DEFAULT '1',
- EmailsQueued int(10) unsigned NOT NULL DEFAULT '0',
+ EmailsQueuedTotal int(10) unsigned NOT NULL DEFAULT '0',
EmailsSent int(10) unsigned NOT NULL DEFAULT '0',
EmailsTotal int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (MailingId),
KEY EmailsTotal (EmailsTotal),
KEY EmailsSent (EmailsSent),
- KEY EmailsQueued (EmailsQueued),
+ KEY EmailsQueued (EmailsQueuedTotal),
KEY `Status` (`Status`),
KEY PortalUserId (PortalUserId)
);
Index: install/upgrades.sql
===================================================================
--- install/upgrades.sql (revision 15593)
+++ install/upgrades.sql (working copy)
@@ -2861,3 +2861,5 @@
UPDATE Users SET PasswordHashingMethod = 1;
INSERT INTO SystemSettings VALUES(DEFAULT, 'TypeKitId', '', 'In-Portal', 'in-portal:configure_advanced', 'la_section_Settings3rdPartyAPI', 'la_config_TypeKitId', 'text', NULL, NULL, 80.05, 0, 1, NULL);
+
+ALTER TABLE MailingLists CHANGE EmailsQueued EmailsQueuedTotal INT(10) UNSIGNED NOT NULL DEFAULT '0';
Index: units/mailing_lists/mailing_list_eh.php
===================================================================
--- units/mailing_lists/mailing_list_eh.php (revision 15461)
+++ units/mailing_lists/mailing_list_eh.php (working copy)
@@ -263,12 +263,12 @@
function _ensureDefault($variable_name)
{
$value = $this->Application->ConfigValue($variable_name);
- if ($value === false) {
+ if ( $value === false ) {
// ensure default value, when configuration variable is missing
return 10;
}
- if (!$value) {
+ if ( !$value ) {
// configuration variable found, but it's value is empty or zero
return false;
}
@@ -288,7 +288,7 @@
$where_clause = Array (
'Status NOT IN (' . MailingList::CANCELLED . ',' . MailingList::PROCESSED . ')',
- '(EmailsQueued < EmailsTotal) OR (EmailsTotal = 0)',
+ '(EmailsQueuedTotal < EmailsTotal) OR (EmailsTotal = 0)',
'`To` <> ""',
);
@@ -297,21 +297,23 @@
WHERE (' . implode(') AND (', $where_clause) . ')
ORDER BY ' . $id_field . ' ASC';
$mailing_lists = $this->Conn->Query($sql, $id_field);
- if (!$mailing_lists) {
- return ;
+
+ if ( !$mailing_lists ) {
+ return;
}
// queue 10 emails per step summary from all mailing lists (FIFO logic)
$to_queue = $this->_ensureDefault('MailingListQueuePerStep');
- if ($to_queue === false) {
- return ;
+
+ if ( $to_queue === false ) {
+ return;
}
$mailing_list_helper = $this->Application->recallObject('MailingListHelper');
/* @var $mailing_list_helper MailingListHelper */
foreach ($mailing_lists as $mailing_id => $mailing_data) {
- if ($mailing_data['EmailsTotal'] == 0) {
+ if ( $mailing_data['EmailsTotal'] == 0 ) {
// no work performed on this mailing list -> calculate totals
$updated_fields = $mailing_list_helper->generateRecipients($mailing_id, $mailing_data);
$updated_fields['Status'] = MailingList::PARTIALLY_PROCESSED;
@@ -320,8 +322,9 @@
$this->Conn->doUpdate($updated_fields, $table_name, $id_field . ' = ' . $mailing_id);
}
- $emails = unserialize( $mailing_data['ToParsed'] );
- if (!$emails) {
+ $emails = unserialize($mailing_data['ToParsed']);
+
+ if ( !$emails ) {
continue;
}
@@ -337,14 +340,15 @@
// remove processed emails from array
$to_queue -= $process_count; // decrement available for processing email count
array_splice($emails, 0, $process_count);
+
$updated_fields = Array (
'ToParsed' => serialize($emails),
- 'EmailsQueued' => $mailing_data['EmailsQueued'] + $process_count,
+ 'EmailsQueuedTotal' => $mailing_data['EmailsQueuedTotal'] + $process_count,
);
- $mailing_data = array_merge($mailing_data, $updated_fields);
+
$this->Conn->doUpdate($updated_fields, $table_name, $id_field . ' = ' . $mailing_id);
- if (!$to_queue) {
+ if ( !$to_queue ) {
// emails to be queued per step reached -> leave
break;
}
Index: units/mailing_lists/mailing_lists_config.php
===================================================================
--- units/mailing_lists/mailing_lists_config.php (revision 15563)
+++ units/mailing_lists/mailing_lists_config.php (working copy)
@@ -48,7 +48,7 @@
'mailing_list_list' => Array (
'prefixes' => Array ('mailing-list_List'), 'format' => "!la_title_MailingLists!",
- 'toolbar_buttons' => Array ('new_item', 'edit', 'delete', 'primary_theme', 'clone', 'view', 'dbl-click'),
+ 'toolbar_buttons' => Array ('new_item', 'edit', 'delete', 'cancel', 'view', 'dbl-click'),
),
'mailing_list_edit' => Array (
@@ -85,6 +85,12 @@
'' => ' SELECT %1$s.* %2$s FROM %1$s',
),
+ 'CalculatedFields' => Array (
+ '' => Array (
+ 'EmailsQueued' => 'CAST(%1$s.EmailsQueuedTotal AS SIGNED) - CAST(%1$s.EmailsSent AS SIGNED)',
+ ),
+ ),
+
'ListSortings' => Array (
'' => Array (
'Sorting' => Array ('MailingId' => 'desc'),
@@ -123,11 +129,15 @@
'not_null' => 1, 'required' => 1, 'default' => 1
),
- 'EmailsQueued' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
+ 'EmailsQueuedTotal' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
'EmailsSent' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
'EmailsTotal' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
),
+ 'VirtualFields' => Array (
+ 'EmailsQueued' => Array ('type' => 'int', 'default' => 0),
+ ),
+
'Grids' => Array (
'Default' => Array (
'Icons' => Array ('default' => 'icon16_item.png'),