mirror of
https://github.com/usememos/memos.git
synced 2025-06-05 22:09:59 +02:00
chore: impl compact mode setting (#2935)
* chore: backend/DB related files for compact view setting. * fix: passing lint errors * fix2: passing linter errors
This commit is contained in:
@ -170,16 +170,12 @@ paths:
|
|||||||
type: integer
|
type: integer
|
||||||
format: int32
|
format: int32
|
||||||
- name: pageToken
|
- name: pageToken
|
||||||
description: |-
|
description: "A page token, received from a previous `ListMemos` call.\r\nProvide this to retrieve the subsequent page."
|
||||||
A page token, received from a previous `ListMemos` call.
|
|
||||||
Provide this to retrieve the subsequent page.
|
|
||||||
in: query
|
in: query
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
- name: filter
|
- name: filter
|
||||||
description: |-
|
description: "Filter is used to filter memos returned in the list.\r\nFormat: \"creator == users/{username} && visibilities == ['PUBLIC', 'PROTECTED']\""
|
||||||
Filter is used to filter memos returned in the list.
|
|
||||||
Format: "creator == users/{username} && visibilities == ['PUBLIC', 'PROTECTED']"
|
|
||||||
in: query
|
in: query
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
@ -240,17 +236,12 @@ paths:
|
|||||||
$ref: '#/definitions/googlerpcStatus'
|
$ref: '#/definitions/googlerpcStatus'
|
||||||
parameters:
|
parameters:
|
||||||
- name: name
|
- name: name
|
||||||
description: |-
|
description: "name is the name of the user to get stats for.\r\nFormat: users/{username}"
|
||||||
name is the name of the user to get stats for.
|
|
||||||
Format: users/{username}
|
|
||||||
in: query
|
in: query
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
- name: timezone
|
- name: timezone
|
||||||
description: |-
|
description: "timezone location\r\nFormat: uses tz identifier\r\nhttps://en.wikipedia.org/wiki/List_of_tz_database_time_zones"
|
||||||
timezone location
|
|
||||||
Format: uses tz identifier
|
|
||||||
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
|
||||||
in: query
|
in: query
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
@ -483,9 +474,7 @@ paths:
|
|||||||
$ref: '#/definitions/apiv2RowStatus'
|
$ref: '#/definitions/apiv2RowStatus'
|
||||||
creator:
|
creator:
|
||||||
type: string
|
type: string
|
||||||
title: |-
|
title: "The name of the creator.\r\nFormat: users/{username}"
|
||||||
The name of the creator.
|
|
||||||
Format: users/{username}
|
|
||||||
creatorId:
|
creatorId:
|
||||||
type: integer
|
type: integer
|
||||||
format: int32
|
format: int32
|
||||||
@ -712,9 +701,7 @@ paths:
|
|||||||
$ref: '#/definitions/googlerpcStatus'
|
$ref: '#/definitions/googlerpcStatus'
|
||||||
parameters:
|
parameters:
|
||||||
- name: user
|
- name: user
|
||||||
description: |-
|
description: "The creator of tags.\r\nFormat: users/{username}"
|
||||||
The creator of tags.
|
|
||||||
Format: users/{username}
|
|
||||||
in: query
|
in: query
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
@ -738,9 +725,7 @@ paths:
|
|||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
- name: tag.creator
|
- name: tag.creator
|
||||||
description: |-
|
description: "The creator of tags.\r\nFormat: users/{username}"
|
||||||
The creator of tags.
|
|
||||||
Format: users/{username}
|
|
||||||
in: query
|
in: query
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
@ -780,9 +765,7 @@ paths:
|
|||||||
$ref: '#/definitions/googlerpcStatus'
|
$ref: '#/definitions/googlerpcStatus'
|
||||||
parameters:
|
parameters:
|
||||||
- name: user
|
- name: user
|
||||||
description: |-
|
description: "The creator of tags.\r\nFormat: users/{username}"
|
||||||
The creator of tags.
|
|
||||||
Format: users/{username}
|
|
||||||
in: query
|
in: query
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
@ -805,9 +788,7 @@ paths:
|
|||||||
- TagService
|
- TagService
|
||||||
/api/v2/tags:rename:
|
/api/v2/tags:rename:
|
||||||
patch:
|
patch:
|
||||||
summary: |-
|
summary: "RenameTag renames a tag.\r\nAll related memos will be updated."
|
||||||
RenameTag renames a tag.
|
|
||||||
All related memos will be updated.
|
|
||||||
operationId: TagService_RenameTag
|
operationId: TagService_RenameTag
|
||||||
responses:
|
responses:
|
||||||
"200":
|
"200":
|
||||||
@ -820,9 +801,7 @@ paths:
|
|||||||
$ref: '#/definitions/googlerpcStatus'
|
$ref: '#/definitions/googlerpcStatus'
|
||||||
parameters:
|
parameters:
|
||||||
- name: user
|
- name: user
|
||||||
description: |-
|
description: "The creator of tags.\r\nFormat: users/{username}"
|
||||||
The creator of tags.
|
|
||||||
Format: users/{username}
|
|
||||||
in: query
|
in: query
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
@ -1046,9 +1025,7 @@ paths:
|
|||||||
$ref: '#/definitions/googlerpcStatus'
|
$ref: '#/definitions/googlerpcStatus'
|
||||||
parameters:
|
parameters:
|
||||||
- name: inbox.name
|
- name: inbox.name
|
||||||
description: |-
|
description: "The name of the inbox.\r\nFormat: inboxes/{uid}"
|
||||||
The name of the inbox.
|
|
||||||
Format: inboxes/{uid}
|
|
||||||
in: path
|
in: path
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
@ -1092,9 +1069,7 @@ paths:
|
|||||||
$ref: '#/definitions/googlerpcStatus'
|
$ref: '#/definitions/googlerpcStatus'
|
||||||
parameters:
|
parameters:
|
||||||
- name: name_1
|
- name: name_1
|
||||||
description: |-
|
description: "The name of the inbox to delete.\r\nFormat: inboxes/{uid}"
|
||||||
The name of the inbox to delete.
|
|
||||||
Format: inboxes/{uid}
|
|
||||||
in: path
|
in: path
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
@ -1116,9 +1091,7 @@ paths:
|
|||||||
$ref: '#/definitions/googlerpcStatus'
|
$ref: '#/definitions/googlerpcStatus'
|
||||||
parameters:
|
parameters:
|
||||||
- name: name
|
- name: name
|
||||||
description: |-
|
description: "The name of the user.\r\nFormat: users/{username}"
|
||||||
The name of the user.
|
|
||||||
Format: users/{username}
|
|
||||||
in: path
|
in: path
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
@ -1139,9 +1112,7 @@ paths:
|
|||||||
$ref: '#/definitions/googlerpcStatus'
|
$ref: '#/definitions/googlerpcStatus'
|
||||||
parameters:
|
parameters:
|
||||||
- name: name
|
- name: name
|
||||||
description: |-
|
description: "The name of the user.\r\nFormat: users/{username}"
|
||||||
The name of the user.
|
|
||||||
Format: users/{username}
|
|
||||||
in: path
|
in: path
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
@ -1163,9 +1134,7 @@ paths:
|
|||||||
$ref: '#/definitions/googlerpcStatus'
|
$ref: '#/definitions/googlerpcStatus'
|
||||||
parameters:
|
parameters:
|
||||||
- name: name
|
- name: name
|
||||||
description: |-
|
description: "The name of the user.\r\nFormat: users/{username}"
|
||||||
The name of the user.
|
|
||||||
Format: users/{username}
|
|
||||||
in: path
|
in: path
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
@ -1186,9 +1155,7 @@ paths:
|
|||||||
$ref: '#/definitions/googlerpcStatus'
|
$ref: '#/definitions/googlerpcStatus'
|
||||||
parameters:
|
parameters:
|
||||||
- name: name
|
- name: name
|
||||||
description: |-
|
description: "The name of the user.\r\nFormat: users/{username}"
|
||||||
The name of the user.
|
|
||||||
Format: users/{username}
|
|
||||||
in: path
|
in: path
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
@ -1215,9 +1182,7 @@ paths:
|
|||||||
$ref: '#/definitions/googlerpcStatus'
|
$ref: '#/definitions/googlerpcStatus'
|
||||||
parameters:
|
parameters:
|
||||||
- name: name
|
- name: name
|
||||||
description: |-
|
description: "The name of the user.\r\nFormat: users/{username}"
|
||||||
The name of the user.
|
|
||||||
Format: users/{username}
|
|
||||||
in: path
|
in: path
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
@ -1244,9 +1209,7 @@ paths:
|
|||||||
$ref: '#/definitions/googlerpcStatus'
|
$ref: '#/definitions/googlerpcStatus'
|
||||||
parameters:
|
parameters:
|
||||||
- name: name
|
- name: name
|
||||||
description: |-
|
description: "The name of the user.\r\nFormat: users/{username}"
|
||||||
The name of the user.
|
|
||||||
Format: users/{username}
|
|
||||||
in: path
|
in: path
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
@ -1268,9 +1231,7 @@ paths:
|
|||||||
$ref: '#/definitions/googlerpcStatus'
|
$ref: '#/definitions/googlerpcStatus'
|
||||||
parameters:
|
parameters:
|
||||||
- name: setting.name
|
- name: setting.name
|
||||||
description: |-
|
description: "The name of the user.\r\nFormat: users/{username}"
|
||||||
The name of the user.
|
|
||||||
Format: users/{username}
|
|
||||||
in: path
|
in: path
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
@ -1313,9 +1274,7 @@ paths:
|
|||||||
$ref: '#/definitions/googlerpcStatus'
|
$ref: '#/definitions/googlerpcStatus'
|
||||||
parameters:
|
parameters:
|
||||||
- name: user.name
|
- name: user.name
|
||||||
description: |-
|
description: "The name of the user.\r\nFormat: users/{username}"
|
||||||
The name of the user.
|
|
||||||
Format: users/{username}
|
|
||||||
in: path
|
in: path
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
@ -1438,9 +1397,7 @@ definitions:
|
|||||||
properties:
|
properties:
|
||||||
name:
|
name:
|
||||||
type: string
|
type: string
|
||||||
title: |-
|
title: "The name of the user.\r\nFormat: users/{username}"
|
||||||
The name of the user.
|
|
||||||
Format: users/{username}
|
|
||||||
locale:
|
locale:
|
||||||
type: string
|
type: string
|
||||||
description: The preferred locale of the user.
|
description: The preferred locale of the user.
|
||||||
@ -1625,9 +1582,7 @@ definitions:
|
|||||||
additionalProperties:
|
additionalProperties:
|
||||||
type: integer
|
type: integer
|
||||||
format: int32
|
format: int32
|
||||||
description: |-
|
description: "stats is the stats of memo creating/updating activities.\r\nkey is the year-month-day string. e.g. \"2020-01-01\"."
|
||||||
stats is the stats of memo creating/updating activities.
|
|
||||||
key is the year-month-day string. e.g. "2020-01-01".
|
|
||||||
v2GetUserResponse:
|
v2GetUserResponse:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
@ -1653,9 +1608,7 @@ definitions:
|
|||||||
properties:
|
properties:
|
||||||
name:
|
name:
|
||||||
type: string
|
type: string
|
||||||
title: |-
|
title: "The name of the inbox.\r\nFormat: inboxes/{uid}"
|
||||||
The name of the inbox.
|
|
||||||
Format: inboxes/{uid}
|
|
||||||
sender:
|
sender:
|
||||||
type: string
|
type: string
|
||||||
title: 'Format: users/{username}'
|
title: 'Format: users/{username}'
|
||||||
@ -1728,9 +1681,7 @@ definitions:
|
|||||||
$ref: '#/definitions/v2Memo'
|
$ref: '#/definitions/v2Memo'
|
||||||
nextPageToken:
|
nextPageToken:
|
||||||
type: string
|
type: string
|
||||||
description: |-
|
description: "A token, which can be sent as `page_token` to retrieve the next page.\r\nIf this field is omitted, there are no subsequent pages."
|
||||||
A token, which can be sent as `page_token` to retrieve the next page.
|
|
||||||
If this field is omitted, there are no subsequent pages.
|
|
||||||
v2ListResourcesResponse:
|
v2ListResourcesResponse:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
@ -1785,9 +1736,7 @@ definitions:
|
|||||||
$ref: '#/definitions/apiv2RowStatus'
|
$ref: '#/definitions/apiv2RowStatus'
|
||||||
creator:
|
creator:
|
||||||
type: string
|
type: string
|
||||||
title: |-
|
title: "The name of the creator.\r\nFormat: users/{username}"
|
||||||
The name of the creator.
|
|
||||||
Format: users/{username}
|
|
||||||
creatorId:
|
creatorId:
|
||||||
type: integer
|
type: integer
|
||||||
format: int32
|
format: int32
|
||||||
@ -1898,9 +1847,7 @@ definitions:
|
|||||||
type: string
|
type: string
|
||||||
creator:
|
creator:
|
||||||
type: string
|
type: string
|
||||||
title: |-
|
title: "The creator of tags.\r\nFormat: users/{username}"
|
||||||
The creator of tags.
|
|
||||||
Format: users/{username}
|
|
||||||
v2UpdateInboxResponse:
|
v2UpdateInboxResponse:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
@ -1951,9 +1898,7 @@ definitions:
|
|||||||
properties:
|
properties:
|
||||||
name:
|
name:
|
||||||
type: string
|
type: string
|
||||||
title: |-
|
title: "The name of the user.\r\nFormat: users/{username}"
|
||||||
The name of the user.
|
|
||||||
Format: users/{username}
|
|
||||||
id:
|
id:
|
||||||
type: integer
|
type: integer
|
||||||
format: int32
|
format: int32
|
||||||
|
@ -3,6 +3,7 @@ package mysql
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
@ -29,6 +30,8 @@ func (d *DB) UpsertUserSetting(ctx context.Context, upsert *storepb.UserSetting)
|
|||||||
valueString = upsert.GetMemoVisibility()
|
valueString = upsert.GetMemoVisibility()
|
||||||
} else if upsert.Key == storepb.UserSettingKey_USER_SETTING_TELEGRAM_USER_ID {
|
} else if upsert.Key == storepb.UserSettingKey_USER_SETTING_TELEGRAM_USER_ID {
|
||||||
valueString = upsert.GetTelegramUserId()
|
valueString = upsert.GetTelegramUserId()
|
||||||
|
} else if upsert.Key == storepb.UserSettingKey_USER_SETTING_COMPACT_VIEW {
|
||||||
|
valueString = strconv.FormatBool(upsert.GetCompactView())
|
||||||
} else {
|
} else {
|
||||||
return nil, errors.Errorf("unknown user setting key: %s", upsert.Key.String())
|
return nil, errors.Errorf("unknown user setting key: %s", upsert.Key.String())
|
||||||
}
|
}
|
||||||
@ -93,6 +96,14 @@ func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting)
|
|||||||
userSetting.Value = &storepb.UserSetting_TelegramUserId{
|
userSetting.Value = &storepb.UserSetting_TelegramUserId{
|
||||||
TelegramUserId: valueString,
|
TelegramUserId: valueString,
|
||||||
}
|
}
|
||||||
|
} else if userSetting.Key == storepb.UserSettingKey_USER_SETTING_COMPACT_VIEW {
|
||||||
|
compactView, err := strconv.ParseBool(valueString)
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.Wrapf(err, "failed to parse compact view value: %s", valueString)
|
||||||
|
}
|
||||||
|
userSetting.Value = &storepb.UserSetting_CompactView{
|
||||||
|
CompactView: compactView,
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// Skip unknown user setting key.
|
// Skip unknown user setting key.
|
||||||
continue
|
continue
|
||||||
|
@ -3,6 +3,7 @@ package postgres
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
@ -36,6 +37,8 @@ func (d *DB) UpsertUserSetting(ctx context.Context, upsert *storepb.UserSetting)
|
|||||||
valueString = upsert.GetMemoVisibility()
|
valueString = upsert.GetMemoVisibility()
|
||||||
} else if upsert.Key == storepb.UserSettingKey_USER_SETTING_TELEGRAM_USER_ID {
|
} else if upsert.Key == storepb.UserSettingKey_USER_SETTING_TELEGRAM_USER_ID {
|
||||||
valueString = upsert.GetTelegramUserId()
|
valueString = upsert.GetTelegramUserId()
|
||||||
|
} else if upsert.Key == storepb.UserSettingKey_USER_SETTING_COMPACT_VIEW {
|
||||||
|
valueString = strconv.FormatBool(upsert.GetCompactView())
|
||||||
} else {
|
} else {
|
||||||
return nil, errors.Errorf("unknown user setting key: %s", upsert.Key.String())
|
return nil, errors.Errorf("unknown user setting key: %s", upsert.Key.String())
|
||||||
}
|
}
|
||||||
@ -106,6 +109,14 @@ func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting)
|
|||||||
userSetting.Value = &storepb.UserSetting_TelegramUserId{
|
userSetting.Value = &storepb.UserSetting_TelegramUserId{
|
||||||
TelegramUserId: valueString,
|
TelegramUserId: valueString,
|
||||||
}
|
}
|
||||||
|
} else if userSetting.Key == storepb.UserSettingKey_USER_SETTING_COMPACT_VIEW {
|
||||||
|
compactView, err := strconv.ParseBool(valueString)
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.Wrapf(err, "failed to parse compact view value: %s", valueString)
|
||||||
|
}
|
||||||
|
userSetting.Value = &storepb.UserSetting_CompactView{
|
||||||
|
CompactView: compactView,
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// Skip unknown user setting key.
|
// Skip unknown user setting key.
|
||||||
continue
|
continue
|
||||||
|
@ -3,6 +3,7 @@ package sqlite
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
@ -36,6 +37,8 @@ func (d *DB) UpsertUserSetting(ctx context.Context, upsert *storepb.UserSetting)
|
|||||||
valueString = upsert.GetMemoVisibility()
|
valueString = upsert.GetMemoVisibility()
|
||||||
} else if upsert.Key == storepb.UserSettingKey_USER_SETTING_TELEGRAM_USER_ID {
|
} else if upsert.Key == storepb.UserSettingKey_USER_SETTING_TELEGRAM_USER_ID {
|
||||||
valueString = upsert.GetTelegramUserId()
|
valueString = upsert.GetTelegramUserId()
|
||||||
|
} else if upsert.Key == storepb.UserSettingKey_USER_SETTING_COMPACT_VIEW {
|
||||||
|
valueString = strconv.FormatBool(upsert.GetCompactView())
|
||||||
} else {
|
} else {
|
||||||
return nil, errors.Errorf("unknown user setting key: %s", upsert.Key.String())
|
return nil, errors.Errorf("unknown user setting key: %s", upsert.Key.String())
|
||||||
}
|
}
|
||||||
@ -106,6 +109,14 @@ func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting)
|
|||||||
userSetting.Value = &storepb.UserSetting_TelegramUserId{
|
userSetting.Value = &storepb.UserSetting_TelegramUserId{
|
||||||
TelegramUserId: valueString,
|
TelegramUserId: valueString,
|
||||||
}
|
}
|
||||||
|
} else if userSetting.Key == storepb.UserSettingKey_USER_SETTING_COMPACT_VIEW {
|
||||||
|
compactView, err := strconv.ParseBool(valueString)
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.Wrapf(err, "failed to parse compact view value: %s", valueString)
|
||||||
|
}
|
||||||
|
userSetting.Value = &storepb.UserSetting_CompactView{
|
||||||
|
CompactView: compactView,
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// Skip unknown user setting key.
|
// Skip unknown user setting key.
|
||||||
continue
|
continue
|
||||||
|
Reference in New Issue
Block a user