From a0829a75dd01ddccb75d226e5e899fd63a93f717 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Mon, 9 Oct 2023 11:58:23 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/9371 --- app/src/assets/scss/business/_av.scss | 4 +++- app/src/protyle/render/av/filter.ts | 18 +++++++++++------- app/src/protyle/render/av/openMenuPanel.ts | 4 ++-- app/src/protyle/render/av/sort.ts | 3 ++- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/app/src/assets/scss/business/_av.scss b/app/src/assets/scss/business/_av.scss index 35418fd20..3abcb1452 100644 --- a/app/src/assets/scss/business/_av.scss +++ b/app/src/assets/scss/business/_av.scss @@ -302,9 +302,11 @@ padding-bottom: 4px; float: left; - svg { + .icon { width: 12px; flex-shrink: 0; + margin-right: 6px; + margin-left: -5px; } } diff --git a/app/src/protyle/render/av/filter.ts b/app/src/protyle/render/av/filter.ts index 7f55524cd..032a1d13d 100644 --- a/app/src/protyle/render/av/filter.ts +++ b/app/src/protyle/render/av/filter.ts @@ -6,6 +6,7 @@ import {setPosition} from "../../../util/setPosition"; import {objEquals} from "../../../util/functions"; import {genCellValue} from "./cell"; import * as dayjs from "dayjs"; +import {unicode2Emoji} from "../../../emoji"; export const getDefaultOperatorByType = (type: TAVCol) => { if (type === "number" || type === "select") { @@ -22,7 +23,7 @@ const toggleEmpty = (element: HTMLElement, operator: string, type: TAVCol) => { menuElement.querySelectorAll("input, .b3-chip").forEach((inputElement, index) => { const menuItemElement = hasClosestByClassName(inputElement, "b3-menu__item"); if (menuItemElement) { - if (type === "date") { + if (["date", "updated", "created"].includes(type)) { if (operator === "Is between") { menuItemElement.classList.remove("fn__none"); } else if (operator === "Is empty" || operator === "Is not empty") { @@ -62,7 +63,7 @@ export const setFilter = (options: { let hasMatch = false; let cellValue: IAVCellValue; if (textElements.length > 0) { - if (colData.type === "date") { + if (["date", "updated", "created"].includes(colData.type)) { cellValue = genCellValue(colData.type, { isNotEmpty2: textElements[1].value !== "", isNotEmpty: textElements[0].value !== "", @@ -152,6 +153,8 @@ export const setFilter = (options: { `; break; case "date": + case "created": + case "updated": selectHTML = ` @@ -225,14 +228,15 @@ export const setFilter = (options: { iconHTML: "", label: `` }); - } else if (colData.type === "date") { + } else if (["date", "updated", "created"].includes(colData.type)) { + const dateValue = options.filter.value ? options.filter.value[colData.type as "date"] : null; menu.addItem({ iconHTML: "", - label: `` + label: `` }); menu.addItem({ iconHTML: "", - label: `` + label: `` }); } menu.addItem({ @@ -305,7 +309,7 @@ export const addFilter = (options: { if (!hasFilter && column.type !== "mAsset") { menu.addItem({ label: column.name, - icon: getColIconByType(column.type), + iconHTML: `${column.icon ? unicode2Emoji(column.icon) : ``}`, click: () => { const oldFilters = Object.assign([], options.data.view.filters); const cellValue = genCellValue(column.type, ""); @@ -408,7 +412,7 @@ export const getFiltersHTML = (data: IAVTable) => { } } filterHTML += ` - + ${item.icon ? unicode2Emoji(item.icon, "icon", true) : ``} ${item.name}${filterValue} `; return true; diff --git a/app/src/protyle/render/av/openMenuPanel.ts b/app/src/protyle/render/av/openMenuPanel.ts index 498c30b43..c6828fa73 100644 --- a/app/src/protyle/render/av/openMenuPanel.ts +++ b/app/src/protyle/render/av/openMenuPanel.ts @@ -779,7 +779,7 @@ const getPropertiesHTML = (data: IAVTable) => {
- + ${item.icon ? unicode2Emoji(item.icon, "icon", true) : ``} ${item.name}
@@ -791,7 +791,7 @@ const getPropertiesHTML = (data: IAVTable) => {
- + ${item.icon ? unicode2Emoji(item.icon, "icon", true) : ``} ${item.name}
diff --git a/app/src/protyle/render/av/sort.ts b/app/src/protyle/render/av/sort.ts index 3431d8285..834b5a66c 100644 --- a/app/src/protyle/render/av/sort.ts +++ b/app/src/protyle/render/av/sort.ts @@ -2,6 +2,7 @@ import {Menu} from "../../../plugin/Menu"; import {getColIconByType} from "./col"; import {transaction} from "../../wysiwyg/transaction"; import {setPosition} from "../../../util/setPosition"; +import {unicode2Emoji} from "../../../emoji"; export const addSort = (options: { data: IAV, @@ -23,7 +24,7 @@ export const addSort = (options: { if (!hasSort) { menu.addItem({ label: column.name, - icon: getColIconByType(column.type), + iconHTML: `${column.icon ? unicode2Emoji(column.icon) : ``}`, click: () => { const oldSorts = Object.assign([], options.data.view.sorts); options.data.view.sorts.push({