core/schema: add trigger that sorts topics alphabetically
parent
9dc62504c6
commit
211700ad9a
|
@ -0,0 +1,20 @@
|
|||
PRAGMA foreign_keys=ON;
|
||||
|
||||
UPDATE list SET topics = arr FROM (SELECT json_group_array(ord.val) AS arr, ord.pk AS pk FROM (SELECT json_each.value AS val, list.pk AS pk FROM list, json_each(list.topics) ORDER BY val ASC) AS ord GROUP BY pk) AS ord WHERE ord.pk = list.pk;
|
||||
|
||||
CREATE TRIGGER
|
||||
IF NOT EXISTS sort_topics_update_trigger
|
||||
AFTER UPDATE ON list
|
||||
FOR EACH ROW
|
||||
WHEN NEW.topics != OLD.topics
|
||||
BEGIN
|
||||
UPDATE list SET topics = ord.arr FROM (SELECT json_group_array(ord.val) AS arr, ord.pk AS pk FROM (SELECT json_each.value AS val, list.pk AS pk FROM list, json_each(list.topics) ORDER BY val ASC) AS ord GROUP BY pk) AS ord WHERE ord.pk = list.pk AND list.pk = NEW.pk;
|
||||
END;
|
||||
|
||||
CREATE TRIGGER
|
||||
IF NOT EXISTS sort_topics_new_trigger
|
||||
AFTER INSERT ON list
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE list SET topics = arr FROM (SELECT json_group_array(ord.val) AS arr, ord.pk AS pk FROM (SELECT json_each.value AS val, list.pk AS pk FROM list, json_each(list.topics) ORDER BY val ASC) AS ord GROUP BY pk) AS ord WHERE ord.pk = list.pk AND list.pk = NEW.pk;
|
||||
END;
|
|
@ -0,0 +1,4 @@
|
|||
PRAGMA foreign_keys=ON;
|
||||
|
||||
DROP TRIGGER sort_topics_update_trigger;
|
||||
DROP TRIGGER sort_topics_new_trigger;
|
|
@ -8,4 +8,28 @@ ALTER TABLE template RENAME TO templates;
|
|||
ALTER TABLE list ADD COLUMN topics JSON NOT NULL CHECK (json_type(topics) == 'array') DEFAULT '[]';
|
||||
","PRAGMA foreign_keys=ON;
|
||||
ALTER TABLE list DROP COLUMN topics;
|
||||
"),(3,"PRAGMA foreign_keys=ON;
|
||||
|
||||
UPDATE list SET topics = arr FROM (SELECT json_group_array(ord.val) AS arr, ord.pk AS pk FROM (SELECT json_each.value AS val, list.pk AS pk FROM list, json_each(list.topics) ORDER BY val ASC) AS ord GROUP BY pk) AS ord WHERE ord.pk = list.pk;
|
||||
|
||||
CREATE TRIGGER
|
||||
IF NOT EXISTS sort_topics_update_trigger
|
||||
AFTER UPDATE ON list
|
||||
FOR EACH ROW
|
||||
WHEN NEW.topics != OLD.topics
|
||||
BEGIN
|
||||
UPDATE list SET topics = ord.arr FROM (SELECT json_group_array(ord.val) AS arr, ord.pk AS pk FROM (SELECT json_each.value AS val, list.pk AS pk FROM list, json_each(list.topics) ORDER BY val ASC) AS ord GROUP BY pk) AS ord WHERE ord.pk = list.pk AND list.pk = NEW.pk;
|
||||
END;
|
||||
|
||||
CREATE TRIGGER
|
||||
IF NOT EXISTS sort_topics_new_trigger
|
||||
AFTER INSERT ON list
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE list SET topics = arr FROM (SELECT json_group_array(ord.val) AS arr, ord.pk AS pk FROM (SELECT json_each.value AS val, list.pk AS pk FROM list, json_each(list.topics) ORDER BY val ASC) AS ord GROUP BY pk) AS ord WHERE ord.pk = list.pk AND list.pk = NEW.pk;
|
||||
END;
|
||||
","PRAGMA foreign_keys=ON;
|
||||
|
||||
DROP TRIGGER sort_topics_update_trigger;
|
||||
DROP TRIGGER sort_topics_new_trigger;
|
||||
"),]
|
|
@ -468,3 +468,20 @@ BEGIN
|
|||
UPDATE template SET last_modified = unixepoch()
|
||||
WHERE pk = NEW.pk;
|
||||
END;
|
||||
|
||||
CREATE TRIGGER
|
||||
IF NOT EXISTS sort_topics_update_trigger
|
||||
AFTER UPDATE ON list
|
||||
FOR EACH ROW
|
||||
WHEN NEW.topics != OLD.topics
|
||||
BEGIN
|
||||
UPDATE list SET topics = ord.arr FROM (SELECT json_group_array(ord.val) AS arr, ord.pk AS pk FROM (SELECT json_each.value AS val, list.pk AS pk FROM list, json_each(list.topics) ORDER BY val ASC) AS ord GROUP BY pk) AS ord WHERE ord.pk = list.pk AND list.pk = NEW.pk;
|
||||
END;
|
||||
|
||||
CREATE TRIGGER
|
||||
IF NOT EXISTS sort_topics_new_trigger
|
||||
AFTER INSERT ON list
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE list SET topics = arr FROM (SELECT json_group_array(ord.val) AS arr, ord.pk AS pk FROM (SELECT json_each.value AS val, list.pk AS pk FROM list, json_each(list.topics) ORDER BY val ASC) AS ord GROUP BY pk) AS ord WHERE ord.pk = list.pk AND list.pk = NEW.pk;
|
||||
END;
|
||||
|
|
|
@ -290,3 +290,20 @@ update_last_modified(`subscription')
|
|||
update_last_modified(`account')
|
||||
update_last_modified(`candidate_subscription')
|
||||
update_last_modified(`template')
|
||||
|
||||
CREATE TRIGGER
|
||||
IF NOT EXISTS sort_topics_update_trigger
|
||||
AFTER UPDATE ON list
|
||||
FOR EACH ROW
|
||||
WHEN NEW.topics != OLD.topics
|
||||
BEGIN
|
||||
UPDATE list SET topics = ord.arr FROM (SELECT json_group_array(ord.val) AS arr, ord.pk AS pk FROM (SELECT json_each.value AS val, list.pk AS pk FROM list, json_each(list.topics) ORDER BY val ASC) AS ord GROUP BY pk) AS ord WHERE ord.pk = list.pk AND list.pk = NEW.pk;
|
||||
END;
|
||||
|
||||
CREATE TRIGGER
|
||||
IF NOT EXISTS sort_topics_new_trigger
|
||||
AFTER INSERT ON list
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE list SET topics = arr FROM (SELECT json_group_array(ord.val) AS arr, ord.pk AS pk FROM (SELECT json_each.value AS val, list.pk AS pk FROM list, json_each(list.topics) ORDER BY val ASC) AS ord GROUP BY pk) AS ord WHERE ord.pk = list.pk AND list.pk = NEW.pk;
|
||||
END;
|
||||
|
|
|
@ -1016,29 +1016,28 @@
|
|||
}
|
||||
|
||||
.tag {
|
||||
--padding-top-bottom: 1px;
|
||||
--padding-left-right: 5.4px;
|
||||
--padding-top-bottom: 0.2rem;
|
||||
--padding-left-right: .5rem;
|
||||
|
||||
display: inline-block;
|
||||
border: 1px solid var(--tag-border-color);
|
||||
border-radius:.2rem;
|
||||
color: #555;
|
||||
font-size: .9rem;
|
||||
padding: 0px 0.4em 1px 0.4em;
|
||||
padding: var(--padding-top-bottom) var(--padding-left-right);
|
||||
font-size: 1.05rem;
|
||||
padding: calc(var(--padding-top-bottom) / 2) var(--padding-left-right) var(--padding-top-bottom) var(--padding-left-right);
|
||||
text-decoration: none;
|
||||
|
||||
--aa-brightness: ((var(--red) * 299) + (var(--green) * 587) + (var(--blue) * 114)) / 1000;
|
||||
--aa-color: calc((var(--aa-brightness) - 128) * -1000);
|
||||
background: rgb(var(--red), var(--green), var(--blue));
|
||||
color: rgb(var(--aa-color), var(--aa-color), var(--aa-color));
|
||||
min-width: max-content;
|
||||
/* fallback */
|
||||
max-height: 1rem;
|
||||
min-height: 1rem;
|
||||
max-height: calc(1.5cap + var(--padding-top-bottom));
|
||||
min-height: calc(1.5cap + var(--padding-top-bottom));
|
||||
}
|
||||
|
||||
|
||||
|
||||
span.tag-name a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
|
|
Loading…
Reference in New Issue