Add missing 'opt-in' campaign feature to the new UI
This commit is contained in:
parent
818da1bb4d
commit
13a252a7b3
|
@ -638,13 +638,9 @@ func makeOptinCampaignMessage(o campaignReq, app *App) (campaignReq, error) {
|
|||
}
|
||||
|
||||
// Construct the opt-in URL with list IDs.
|
||||
var (
|
||||
listIDs = url.Values{}
|
||||
listNames = make([]string, 0, len(lists))
|
||||
)
|
||||
listIDs := url.Values{}
|
||||
for _, l := range lists {
|
||||
listIDs.Add("l", l.UUID)
|
||||
listNames = append(listNames, l.Name)
|
||||
}
|
||||
// optinURLFunc := template.URL("{{ OptinURL }}?" + listIDs.Encode())
|
||||
optinURLAttr := template.HTMLAttr(fmt.Sprintf(`href="{{ OptinURL }}%s"`, listIDs.Encode()))
|
||||
|
@ -660,8 +656,6 @@ func makeOptinCampaignMessage(o campaignReq, app *App) (campaignReq, error) {
|
|||
"Error compiling opt-in campaign template.")
|
||||
}
|
||||
|
||||
o.Name = "Opt-in campaign " + strings.Join(listNames, ", ")
|
||||
o.Subject = "Confirm your subscription(s)"
|
||||
o.Body = b.String()
|
||||
return o, nil
|
||||
}
|
||||
|
|
|
@ -45,6 +45,9 @@
|
|||
<b-table-column field="name" label="Name" sortable width="25%">
|
||||
<div>
|
||||
<p>
|
||||
<b-tag v-if="props.row.type !== 'regular'" class="is-small">
|
||||
{{ props.row.type }}
|
||||
</b-tag>
|
||||
<router-link :to="{ name: 'campaign', params: { 'id': props.row.id }}">
|
||||
{{ props.row.name }}</router-link>
|
||||
</p>
|
||||
|
|
|
@ -36,14 +36,13 @@
|
|||
{{ ' ' }}
|
||||
{{ props.row.optin }}
|
||||
</b-tag>{{ ' ' }}
|
||||
<router-link :to="{name: 'campaign', params: {id: 'new'},
|
||||
query: {type: 'optin', 'list_id': props.row.id}}"
|
||||
v-if="props.row.optin === 'double'" class="is-size-7 send-optin">
|
||||
<a v-if="props.row.optin === 'double'" class="is-size-7 send-optin"
|
||||
href="#" @click="$utils.confirm(null, () => createOptinCampaign(props.row))">
|
||||
<b-tooltip label="Send opt-in campaign" type="is-dark">
|
||||
<b-icon icon="rocket-launch-outline" size="is-small" />
|
||||
Send opt-in campaign
|
||||
</b-tooltip>
|
||||
</router-link>
|
||||
</a>
|
||||
</div>
|
||||
</b-table-column>
|
||||
|
||||
|
@ -149,10 +148,27 @@ export default Vue.extend({
|
|||
},
|
||||
);
|
||||
},
|
||||
|
||||
createOptinCampaign(list) {
|
||||
const data = {
|
||||
name: `Opt-in to ${list.name}`,
|
||||
subject: `Confirm subscription(s) ${list.name}`,
|
||||
lists: [list.id],
|
||||
from_email: this.serverConfig.fromEmail,
|
||||
content_type: 'richtext',
|
||||
messenger: 'email',
|
||||
type: 'optin',
|
||||
};
|
||||
|
||||
this.$api.createCampaign(data).then((d) => {
|
||||
this.$router.push({ name: 'campaign', hash: '#content', params: { id: d.id } });
|
||||
});
|
||||
return false;
|
||||
},
|
||||
},
|
||||
|
||||
computed: {
|
||||
...mapState(['lists', 'loading']),
|
||||
...mapState(['lists', 'serverConfig', 'loading']),
|
||||
},
|
||||
|
||||
mounted() {
|
||||
|
|
Loading…
Reference in New Issue