浏览代码

Fix 'send_at' option on the UI and bug in starting scheduled campaigns

Kailash Nadh 5 年之前
父节点
当前提交
6681f189fc
共有 3 个文件被更改,包括 13 次插入5 次删除
  1. 9 2
      frontend/src/Campaign.js
  2. 1 1
      frontend/src/constants.js
  3. 3 2
      queries.sql

+ 9 - 2
frontend/src/Campaign.js

@@ -217,6 +217,8 @@ class TheFormDef extends React.PureComponent {
   }
 
   componentWillReceiveProps(nextProps) {
+    // On initial load, toggle the send_later switch if the record
+    // has a "send_at" date.
     if (nextProps.record.send_at === this.props.record.send_at) {
       return
     }
@@ -260,6 +262,12 @@ class TheFormDef extends React.PureComponent {
       values.body = this.props.body
       values.content_type = this.props.contentType
 
+      if (values.send_at) {
+        values.send_later = true
+      } else {
+        values.send_later = false
+      }
+
       // Create a new campaign.
       this.setState({ loading: true })
       if (!this.props.isSingle) {
@@ -303,8 +311,7 @@ class TheFormDef extends React.PureComponent {
             cs.MethodPut,
             {
               ...values,
-              id: this.props.record.id,
-              send_at: !this.state.sendLater ? null : values.send_at
+              id: this.props.record.id
             }
           )
           .then(resp => {

+ 1 - 1
frontend/src/constants.js

@@ -1,4 +1,4 @@
-export const DateFormat = "ddd D MMM YYYY, hh:MM A"
+export const DateFormat = "ddd D MMM YYYY, hh:mm A"
 
 // Data types.
 export const ModelUsers = "users"

+ 3 - 2
queries.sql

@@ -411,8 +411,9 @@ u AS (
     -- For each campaign above, update the to_send count.
     UPDATE campaigns AS ca
     SET to_send = co.to_send,
-    max_subscriber_id = co.max_subscriber_id,
-    started_at=(CASE WHEN ca.started_at IS NULL THEN NOW() ELSE ca.started_at END)
+        status = (CASE WHEN status != 'running' THEN 'running' ELSE status END),
+        max_subscriber_id = co.max_subscriber_id,
+        started_at=(CASE WHEN ca.started_at IS NULL THEN NOW() ELSE ca.started_at END)
     FROM (SELECT * FROM counts) co
     WHERE ca.id = co.campaign_id
 )