diff --git a/app/appearance/langs/ar_SA.json b/app/appearance/langs/ar_SA.json index 4adf99b7b..69695e21b 100644 --- a/app/appearance/langs/ar_SA.json +++ b/app/appearance/langs/ar_SA.json @@ -1385,8 +1385,7 @@ "table": "جدول", "gallery": "بطاقة", "key": "المفتاح الرئيسي", - "select": "تحديد", - "tag": "وسم" + "select": "تحديد" }, "_kernel": { "0": "فشل استعلام دفتر الملاحظات", diff --git a/app/appearance/langs/de_DE.json b/app/appearance/langs/de_DE.json index 03fd19c07..04c9b4cff 100644 --- a/app/appearance/langs/de_DE.json +++ b/app/appearance/langs/de_DE.json @@ -1385,8 +1385,7 @@ "table": "Tabelle", "gallery": "Karte", "key": "Primärschlüssel", - "select": "Auswählen", - "tag": "Tag" + "select": "Auswählen" }, "_kernel": { "0": "Abfrage des Notizbuchs fehlgeschlagen", diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index 7fdbd87eb..e4480a0a6 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -1385,8 +1385,7 @@ "table": "Table", "gallery": "Card", "key": "Primary Key", - "select": "Select", - "tag": "Tag" + "select": "Select" }, "_kernel": { "0": "Query notebook failed", diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index 29f57fe99..114c4f2bd 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -1385,8 +1385,7 @@ "table": "Tabla", "gallery": "Tarjeta", "key": "Clave principal", - "select": "Selección", - "tag": "Etiqueta" + "select": "Selección" }, "_kernel": { "0": "Consulta al cuaderno de notas fallido", diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index 82ae970de..89b718cc9 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -1385,8 +1385,7 @@ "table": "Tableau", "gallery": "Carte", "key": "Clé primaire", - "select": "Sélectionner", - "tag": "Étiquette" + "select": "Sélectionner" }, "_kernel": { "0": "Échec du cahier de requêtes", diff --git a/app/appearance/langs/he_IL.json b/app/appearance/langs/he_IL.json index dca585953..15f32b1a7 100644 --- a/app/appearance/langs/he_IL.json +++ b/app/appearance/langs/he_IL.json @@ -1385,8 +1385,7 @@ "table": "טבלה", "gallery": "כרטיס", "key": "מפתח ראשי", - "select": "בחר", - "tag": "תגית" + "select": "בחר" }, "_kernel": { "0": "שאלת מחברת נכשלה", diff --git a/app/appearance/langs/it_IT.json b/app/appearance/langs/it_IT.json index 80bd4b6d3..2f624ee65 100644 --- a/app/appearance/langs/it_IT.json +++ b/app/appearance/langs/it_IT.json @@ -1385,8 +1385,7 @@ "table": "Tabella", "gallery": "Scheda", "key": "Chiave primaria", - "select": "Seleziona", - "tag": "Etichetta" + "select": "Seleziona" }, "_kernel": { "0": "Query del taccuino fallita", diff --git a/app/appearance/langs/ja_JP.json b/app/appearance/langs/ja_JP.json index a2f374805..5f7c484e1 100644 --- a/app/appearance/langs/ja_JP.json +++ b/app/appearance/langs/ja_JP.json @@ -1385,8 +1385,7 @@ "table": "テーブル", "gallery": "カード", "key": "プライマリキー", - "select": "選択", - "tag": "タグ" + "select": "選択" }, "_kernel": { "0": "ノートブックのクエリに失敗しました", diff --git a/app/appearance/langs/pl_PL.json b/app/appearance/langs/pl_PL.json index b5696e9ed..a49296358 100644 --- a/app/appearance/langs/pl_PL.json +++ b/app/appearance/langs/pl_PL.json @@ -1385,8 +1385,7 @@ "table": "Tabela", "gallery": "Karta", "key": "Klucz główny", - "select": "Wybierz", - "tag": "Tag" + "select": "Wybierz" }, "_kernel": { "0": "Nie udało się zapytać o notes", diff --git a/app/appearance/langs/pt_BR.json b/app/appearance/langs/pt_BR.json index f88a0db11..700dc3999 100644 --- a/app/appearance/langs/pt_BR.json +++ b/app/appearance/langs/pt_BR.json @@ -1385,8 +1385,7 @@ "table": "Tabela", "gallery": "Cartão", "key": "Chave Primária", - "select": "Selecionar", - "tag": "Etiqueta" + "select": "Selecionar" }, "_kernel": { "0": "Falha ao consultar o bloco de notas", diff --git a/app/appearance/langs/ru_RU.json b/app/appearance/langs/ru_RU.json index 76dba65d1..483573c22 100644 --- a/app/appearance/langs/ru_RU.json +++ b/app/appearance/langs/ru_RU.json @@ -1385,8 +1385,7 @@ "table": "Таблица", "gallery": "Карточка", "key": "Первичный ключ", - "select": "Выбрать", - "tag": "Тег" + "select": "Выбрать" }, "_kernel": { "0": "Не удалось запросить блокнот", diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index f166f2782..288ef65d7 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -1385,8 +1385,7 @@ "table": "表格", "gallery": "卡片", "key": "主鍵", - "select": "單選", - "tag": "標籤" + "select": "單選" }, "_kernel": { "0": "查詢筆記本失敗", diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index 504a4bcf5..98a17a562 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -1385,8 +1385,7 @@ "table": "表格", "gallery": "卡片", "key": "主键", - "select": "单选", - "tag": "标签" + "select": "单选" }, "_kernel": { "0": "查询笔记本失败", diff --git a/kernel/av/av.go b/kernel/av/av.go index 8923efe32..21874e1ac 100644 --- a/kernel/av/av.go +++ b/kernel/av/av.go @@ -634,15 +634,6 @@ func (av *AttributeView) GetKey(keyID string) (ret *Key, err error) { return } -func (av *AttributeView) GetKeyByNameType(keyName string, typ KeyType) (ret []*Key) { - for _, kv := range av.KeyValues { - if kv.Key.Name == keyName && kv.Key.Type == typ { - ret = append(ret, kv.Key) - } - } - return -} - func (av *AttributeView) GetBlockKeyValues() (ret *KeyValues) { for _, kv := range av.KeyValues { if KeyTypeBlock == kv.Key.Type { diff --git a/kernel/av/value.go b/kernel/av/value.go index 033990d28..ec3cb09d3 100644 --- a/kernel/av/value.go +++ b/kernel/av/value.go @@ -673,7 +673,7 @@ func Round(val float64, precision int) float64 { type ValueSelect struct { Content string `json:"content"` - Color string `json:"color"` // 1-14 + Color string `json:"color"` } func MSelectExistOption(mSelect []*ValueSelect, opt string) bool { diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index e7c13e983..4fa1e4e25 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -3152,7 +3152,6 @@ func addAttributeViewBlock(now int64, avID, dbBlockID, viewID, groupID, previous if !isDetached { bindBlockAv0(tx, avID, node, tree) - fillTags(attrView, view, addingItemID, node) } // 在所有视图上添加项目 @@ -3198,68 +3197,6 @@ func addAttributeViewBlock(now int64, avID, dbBlockID, viewID, groupID, previous return } -func fillTags(attrView *av.AttributeView, view *av.View, addingItemID string, node *ast.Node) { - // 如果节点上存在标签则将添加标签字段 - - var tags []string - if ast.NodeDocument == node.Type { - if docTagsVal := node.IALAttr("tags"); 0 < len(docTagsVal) { - docTags := strings.Split(docTagsVal, ",") - for _, t := range docTags { - tags = append(tags, t) - } - } - } else { - nodeTags := node.ChildrenByType(ast.NodeTextMark) - for _, t := range nodeTags { - tags = append(tags, t.TextMarkTextContent) - } - } - - keyName := av.GetAttributeViewI18n("tag") - tagKeys := attrView.GetKeyByNameType(keyName, av.KeyTypeMSelect) - tagKeyID := ast.NewNodeID() - if 1 > len(tagKeys) { - blockKey := attrView.GetBlockKey() - addAttributeViewKey(attrView, view, av.KeyTypeMSelect, tagKeyID, keyName, "", blockKey.ID) - } else { - tagKeyID = tagKeys[0].ID - } - - if tagKeyValues, _ := attrView.GetKeyValues(tagKeyID); nil != tagKeyValues { - val := tagKeyValues.GetValue(addingItemID) - if nil == val { - val = av.GetAttributeViewDefaultValue(ast.NewNodeID(), tagKeyID, addingItemID, av.KeyTypeMSelect) - for _, tag := range tags { - val.MSelect = append(val.MSelect, &av.ValueSelect{Content: tag, Color: fmt.Sprintf("%d", 1+rand.Intn(14))}) - } - tagKeyValues.Values = append(tagKeyValues.Values, val) - } else { - for _, t := range tags { - exist := false - for _, v := range val.MSelect { - if v.Content == t { - exist = true - break - } - } - if !exist { - val.MSelect = append(val.MSelect, &av.ValueSelect{Content: t, Color: fmt.Sprintf("%d", 1+rand.Intn(14))}) - } - } - } - - for _, valOpt := range val.MSelect { - if opt := tagKeyValues.Key.GetOption(valOpt.Content); nil == opt { - opt = &av.SelectOption{Name: valOpt.Content, Color: valOpt.Color} - tagKeyValues.Key.Options = append(tagKeyValues.Key.Options, opt) - } else { - valOpt.Color = opt.Color - } - } - } -} - func fillDefaultValue(attrView *av.AttributeView, view, groupView *av.View, previousItemID, addingItemID string) { defaultValues := getAttrViewAddingBlockDefaultValues(attrView, view, groupView, previousItemID, addingItemID) for keyID, newValue := range defaultValues { @@ -4029,73 +3966,70 @@ func AddAttributeViewKey(avID, keyID, keyName, keyType, keyIcon, previousKeyID s return } - addAttributeViewKey(attrView, currentView, av.KeyType(keyType), keyID, keyName, keyIcon, previousKeyID) - - err = av.SaveAttributeView(attrView) - return -} - -func addAttributeViewKey(attrView *av.AttributeView, view *av.View, keyType av.KeyType, keyID, keyName, keyIcon, previousKeyID string) { - switch keyType { + keyTyp := av.KeyType(keyType) + switch keyTyp { case av.KeyTypeText, av.KeyTypeNumber, av.KeyTypeDate, av.KeyTypeSelect, av.KeyTypeMSelect, av.KeyTypeURL, av.KeyTypeEmail, av.KeyTypePhone, av.KeyTypeMAsset, av.KeyTypeTemplate, av.KeyTypeCreated, av.KeyTypeUpdated, av.KeyTypeCheckbox, av.KeyTypeRelation, av.KeyTypeRollup, av.KeyTypeLineNumber: - key := av.NewKey(keyID, keyName, keyIcon, keyType) - if av.KeyTypeRollup == keyType { + key := av.NewKey(keyID, keyName, keyIcon, keyTyp) + if av.KeyTypeRollup == keyTyp { key.Rollup = &av.Rollup{Calc: &av.RollupCalc{Operator: av.CalcOperatorNone}} } attrView.KeyValues = append(attrView.KeyValues, &av.KeyValues{Key: key}) - for _, v := range attrView.Views { + for _, view := range attrView.Views { newField := &av.BaseField{ID: key.ID} - if nil != v.Table { - newField.Wrap = v.Table.WrapField + if nil != view.Table { + newField.Wrap = view.Table.WrapField if "" == previousKeyID { - if av.LayoutTypeGallery == view.LayoutType { + if av.LayoutTypeGallery == currentView.LayoutType { // 如果当前视图是卡片视图则添加到最后 - v.Table.Columns = append(v.Table.Columns, &av.ViewTableColumn{BaseField: newField}) + view.Table.Columns = append(view.Table.Columns, &av.ViewTableColumn{BaseField: newField}) } else { - v.Table.Columns = append([]*av.ViewTableColumn{{BaseField: newField}}, v.Table.Columns...) + view.Table.Columns = append([]*av.ViewTableColumn{{BaseField: newField}}, view.Table.Columns...) } } else { added := false - for i, column := range v.Table.Columns { + for i, column := range view.Table.Columns { if column.ID == previousKeyID { - v.Table.Columns = append(v.Table.Columns[:i+1], append([]*av.ViewTableColumn{{BaseField: newField}}, v.Table.Columns[i+1:]...)...) + view.Table.Columns = append(view.Table.Columns[:i+1], append([]*av.ViewTableColumn{{BaseField: newField}}, view.Table.Columns[i+1:]...)...) added = true break } } if !added { - v.Table.Columns = append(v.Table.Columns, &av.ViewTableColumn{BaseField: newField}) + view.Table.Columns = append(view.Table.Columns, &av.ViewTableColumn{BaseField: newField}) } } } - if nil != v.Gallery { - newField.Wrap = v.Gallery.WrapField + if nil != view.Gallery { + newField.Wrap = view.Gallery.WrapField if "" == previousKeyID { - v.Gallery.CardFields = append(v.Gallery.CardFields, &av.ViewGalleryCardField{BaseField: newField}) + view.Gallery.CardFields = append(view.Gallery.CardFields, &av.ViewGalleryCardField{BaseField: newField}) } else { added := false - for i, field := range v.Gallery.CardFields { + for i, field := range view.Gallery.CardFields { if field.ID == previousKeyID { - v.Gallery.CardFields = append(v.Gallery.CardFields[:i+1], append([]*av.ViewGalleryCardField{{BaseField: newField}}, v.Gallery.CardFields[i+1:]...)...) + view.Gallery.CardFields = append(view.Gallery.CardFields[:i+1], append([]*av.ViewGalleryCardField{{BaseField: newField}}, view.Gallery.CardFields[i+1:]...)...) added = true break } } if !added { - v.Gallery.CardFields = append(v.Gallery.CardFields, &av.ViewGalleryCardField{BaseField: newField}) + view.Gallery.CardFields = append(view.Gallery.CardFields, &av.ViewGalleryCardField{BaseField: newField}) } } } } } + + err = av.SaveAttributeView(attrView) + return } func (tx *Transaction) doUpdateAttrViewColTemplate(operation *Operation) (ret *TxErr) {