Store intervals in templates
This commit is contained in:
parent
52cf642455
commit
56ffc43616
@ -0,0 +1,3 @@
|
|||||||
|
ALTER TABLE `reminder_template` ADD COLUMN `interval_seconds` INT UNSIGNED;
|
||||||
|
ALTER TABLE `reminder_template` ADD COLUMN `interval_days` INT UNSIGNED;
|
||||||
|
ALTER TABLE `reminder_template` ADD COLUMN `interval_months` INT UNSIGNED;
|
@ -388,6 +388,9 @@ pub async fn export_reminder_templates(
|
|||||||
embed_thumbnail_url,
|
embed_thumbnail_url,
|
||||||
embed_title,
|
embed_title,
|
||||||
embed_fields,
|
embed_fields,
|
||||||
|
interval_seconds,
|
||||||
|
interval_days,
|
||||||
|
interval_months,
|
||||||
tts,
|
tts,
|
||||||
username
|
username
|
||||||
FROM reminder_template WHERE guild_id = (SELECT id FROM guilds WHERE guild = ?)",
|
FROM reminder_template WHERE guild_id = (SELECT id FROM guilds WHERE guild = ?)",
|
||||||
|
@ -232,10 +232,15 @@ pub async fn create_reminder_template(
|
|||||||
embed_thumbnail_url,
|
embed_thumbnail_url,
|
||||||
embed_title,
|
embed_title,
|
||||||
embed_fields,
|
embed_fields,
|
||||||
|
interval_seconds,
|
||||||
|
interval_days,
|
||||||
|
interval_months,
|
||||||
tts,
|
tts,
|
||||||
username
|
username
|
||||||
) VALUES ((SELECT id FROM guilds WHERE guild = ?), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
) VALUES ((SELECT id FROM guilds WHERE guild = ?), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
|
||||||
id, name,
|
?, ?, ?, ?, ?, ?, ?)",
|
||||||
|
id,
|
||||||
|
name,
|
||||||
reminder_template.attachment,
|
reminder_template.attachment,
|
||||||
reminder_template.attachment_name,
|
reminder_template.attachment_name,
|
||||||
reminder_template.avatar,
|
reminder_template.avatar,
|
||||||
@ -250,15 +255,16 @@ pub async fn create_reminder_template(
|
|||||||
reminder_template.embed_thumbnail_url,
|
reminder_template.embed_thumbnail_url,
|
||||||
reminder_template.embed_title,
|
reminder_template.embed_title,
|
||||||
reminder_template.embed_fields,
|
reminder_template.embed_fields,
|
||||||
|
reminder_template.interval_seconds,
|
||||||
|
reminder_template.interval_days,
|
||||||
|
reminder_template.interval_months,
|
||||||
reminder_template.tts,
|
reminder_template.tts,
|
||||||
reminder_template.username,
|
reminder_template.username,
|
||||||
)
|
)
|
||||||
.fetch_all(pool.inner())
|
.fetch_all(pool.inner())
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
Ok(_) => {
|
Ok(_) => Ok(json!({})),
|
||||||
Ok(json!({}))
|
|
||||||
}
|
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
warn!("Could not create template for {}: {:?}", id, e);
|
warn!("Could not create template for {}: {:?}", id, e);
|
||||||
|
|
||||||
|
@ -80,6 +80,9 @@ pub struct ReminderTemplate {
|
|||||||
embed_thumbnail_url: Option<String>,
|
embed_thumbnail_url: Option<String>,
|
||||||
embed_title: String,
|
embed_title: String,
|
||||||
embed_fields: Option<Json<Vec<EmbedField>>>,
|
embed_fields: Option<Json<Vec<EmbedField>>>,
|
||||||
|
interval_seconds: Option<u32>,
|
||||||
|
interval_days: Option<u32>,
|
||||||
|
interval_months: Option<u32>,
|
||||||
tts: bool,
|
tts: bool,
|
||||||
username: Option<String>,
|
username: Option<String>,
|
||||||
}
|
}
|
||||||
@ -102,6 +105,9 @@ pub struct ReminderTemplateCsv {
|
|||||||
embed_thumbnail_url: Option<String>,
|
embed_thumbnail_url: Option<String>,
|
||||||
embed_title: String,
|
embed_title: String,
|
||||||
embed_fields: Option<String>,
|
embed_fields: Option<String>,
|
||||||
|
interval_seconds: Option<u32>,
|
||||||
|
interval_days: Option<u32>,
|
||||||
|
interval_months: Option<u32>,
|
||||||
tts: bool,
|
tts: bool,
|
||||||
username: Option<String>,
|
username: Option<String>,
|
||||||
}
|
}
|
||||||
|
@ -223,11 +223,10 @@ async function fetch_reminders(guild_id) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function serialize_reminder(node, mode) {
|
async function serialize_reminder(node, mode) {
|
||||||
let interval, utc_time, expiration_time;
|
let utc_time, expiration_time;
|
||||||
|
let interval = get_interval(node);
|
||||||
|
|
||||||
if (mode !== "template") {
|
if (mode !== "template") {
|
||||||
interval = get_interval(node);
|
|
||||||
|
|
||||||
utc_time = luxon.DateTime.fromISO(
|
utc_time = luxon.DateTime.fromISO(
|
||||||
node.querySelector('input[name="time"]').value
|
node.querySelector('input[name="time"]').value
|
||||||
).setZone("UTC");
|
).setZone("UTC");
|
||||||
@ -356,9 +355,9 @@ async function serialize_reminder(node, mode) {
|
|||||||
embed_title: embed_title,
|
embed_title: embed_title,
|
||||||
embed_fields: fields,
|
embed_fields: fields,
|
||||||
expires: expiration_time,
|
expires: expiration_time,
|
||||||
interval_seconds: mode !== "template" ? interval.seconds : null,
|
interval_seconds: interval.seconds,
|
||||||
interval_days: mode !== "template" ? interval.days : null,
|
interval_days: interval.days,
|
||||||
interval_months: mode !== "template" ? interval.months : null,
|
interval_months: interval.months,
|
||||||
name: node.querySelector('input[name="name"]').value,
|
name: node.querySelector('input[name="name"]').value,
|
||||||
tts: node.querySelector('input[name="tts"]').checked,
|
tts: node.querySelector('input[name="tts"]').checked,
|
||||||
username: node.querySelector('input[name="username"]').value,
|
username: node.querySelector('input[name="username"]').value,
|
||||||
@ -420,9 +419,9 @@ function deserialize_reminder(reminder, frame, mode) {
|
|||||||
.insertBefore(embed_field, lastChild);
|
.insertBefore(embed_field, lastChild);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mode !== "template") {
|
if (reminder["interval_seconds"]) update_interval(frame);
|
||||||
if (reminder["interval_seconds"]) update_interval(frame);
|
|
||||||
|
|
||||||
|
if (mode !== "template") {
|
||||||
let $enableBtn = frame.querySelector(".disable-enable");
|
let $enableBtn = frame.querySelector(".disable-enable");
|
||||||
$enableBtn.dataset["action"] = reminder["enabled"] ? "disable" : "enable";
|
$enableBtn.dataset["action"] = reminder["enabled"] ? "disable" : "enable";
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user