Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
canifa_note
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vũ Hoàng Anh
canifa_note
Commits
24b21aa9
Unverified
Commit
24b21aa9
authored
Dec 31, 2022
by
boojack
Committed by
GitHub
Dec 31, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: update version to `0.9.1` (#882)
parent
51eac649
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
40 additions
and
30 deletions
+40
-30
memo.go
server/memo.go
+16
-9
server.go
server/server.go
+2
-0
version.go
server/version/version.go
+2
-2
AboutSiteDialog.tsx
web/src/components/AboutSiteDialog.tsx
+17
-16
Sidebar.tsx
web/src/components/Sidebar.tsx
+3
-3
No files found.
server/memo.go
View file @
24b21aa9
...
@@ -315,19 +315,14 @@ func (s *Server) registerMemoRoutes(g *echo.Group) {
...
@@ -315,19 +315,14 @@ func (s *Server) registerMemoRoutes(g *echo.Group) {
return
echo
.
NewHTTPError
(
http
.
StatusBadRequest
,
fmt
.
Sprintf
(
"ID is not a number: %s"
,
c
.
Param
(
"memoId"
)))
.
SetInternal
(
err
)
return
echo
.
NewHTTPError
(
http
.
StatusBadRequest
,
fmt
.
Sprintf
(
"ID is not a number: %s"
,
c
.
Param
(
"memoId"
)))
.
SetInternal
(
err
)
}
}
currentTs
:=
time
.
Now
()
.
Unix
(
)
userID
,
ok
:=
c
.
Get
(
getUserIDContextKey
())
.
(
int
)
memoResourceUpsert
:=
&
api
.
MemoResourceUpsert
{
if
!
ok
{
UpdatedTs
:
&
currentTs
,
return
echo
.
NewHTTPError
(
http
.
StatusUnauthorized
,
"Missing user in session"
)
}
}
memoResourceUpsert
:=
&
api
.
MemoResourceUpsert
{}
if
err
:=
json
.
NewDecoder
(
c
.
Request
()
.
Body
)
.
Decode
(
memoResourceUpsert
);
err
!=
nil
{
if
err
:=
json
.
NewDecoder
(
c
.
Request
()
.
Body
)
.
Decode
(
memoResourceUpsert
);
err
!=
nil
{
return
echo
.
NewHTTPError
(
http
.
StatusBadRequest
,
"Malformatted post memo resource request"
)
.
SetInternal
(
err
)
return
echo
.
NewHTTPError
(
http
.
StatusBadRequest
,
"Malformatted post memo resource request"
)
.
SetInternal
(
err
)
}
}
memoResourceUpsert
.
MemoID
=
memoID
if
_
,
err
:=
s
.
Store
.
UpsertMemoResource
(
ctx
,
memoResourceUpsert
);
err
!=
nil
{
return
echo
.
NewHTTPError
(
http
.
StatusInternalServerError
,
"Failed to upsert memo resource"
)
.
SetInternal
(
err
)
}
resourceFind
:=
&
api
.
ResourceFind
{
resourceFind
:=
&
api
.
ResourceFind
{
ID
:
&
memoResourceUpsert
.
ResourceID
,
ID
:
&
memoResourceUpsert
.
ResourceID
,
}
}
...
@@ -335,6 +330,18 @@ func (s *Server) registerMemoRoutes(g *echo.Group) {
...
@@ -335,6 +330,18 @@ func (s *Server) registerMemoRoutes(g *echo.Group) {
if
err
!=
nil
{
if
err
!=
nil
{
return
echo
.
NewHTTPError
(
http
.
StatusInternalServerError
,
"Failed to fetch resource"
)
.
SetInternal
(
err
)
return
echo
.
NewHTTPError
(
http
.
StatusInternalServerError
,
"Failed to fetch resource"
)
.
SetInternal
(
err
)
}
}
if
resource
==
nil
{
return
echo
.
NewHTTPError
(
http
.
StatusBadRequest
,
"Resource not found"
)
.
SetInternal
(
err
)
}
else
if
resource
.
CreatorID
!=
userID
{
return
echo
.
NewHTTPError
(
http
.
StatusUnauthorized
,
"Unauthorized to bind this resource"
)
.
SetInternal
(
err
)
}
memoResourceUpsert
.
MemoID
=
memoID
currentTs
:=
time
.
Now
()
.
Unix
()
memoResourceUpsert
.
UpdatedTs
=
&
currentTs
if
_
,
err
:=
s
.
Store
.
UpsertMemoResource
(
ctx
,
memoResourceUpsert
);
err
!=
nil
{
return
echo
.
NewHTTPError
(
http
.
StatusInternalServerError
,
"Failed to upsert memo resource"
)
.
SetInternal
(
err
)
}
c
.
Response
()
.
Header
()
.
Set
(
echo
.
HeaderContentType
,
echo
.
MIMEApplicationJSONCharsetUTF8
)
c
.
Response
()
.
Header
()
.
Set
(
echo
.
HeaderContentType
,
echo
.
MIMEApplicationJSONCharsetUTF8
)
if
err
:=
json
.
NewEncoder
(
c
.
Response
()
.
Writer
)
.
Encode
(
composeResponse
(
resource
));
err
!=
nil
{
if
err
:=
json
.
NewEncoder
(
c
.
Response
()
.
Writer
)
.
Encode
(
composeResponse
(
resource
));
err
!=
nil
{
...
...
server/server.go
View file @
24b21aa9
...
@@ -42,6 +42,8 @@ func NewServer(profile *profile.Profile) *Server {
...
@@ -42,6 +42,8 @@ func NewServer(profile *profile.Profile) *Server {
e
.
Use
(
middleware
.
CORS
())
e
.
Use
(
middleware
.
CORS
())
e
.
Use
(
middleware
.
Secure
())
e
.
Use
(
middleware
.
TimeoutWithConfig
(
middleware
.
TimeoutConfig
{
e
.
Use
(
middleware
.
TimeoutWithConfig
(
middleware
.
TimeoutConfig
{
Skipper
:
middleware
.
DefaultSkipper
,
Skipper
:
middleware
.
DefaultSkipper
,
ErrorMessage
:
"Request timeout"
,
ErrorMessage
:
"Request timeout"
,
...
...
server/version/version.go
View file @
24b21aa9
...
@@ -7,10 +7,10 @@ import (
...
@@ -7,10 +7,10 @@ import (
// Version is the service current released version.
// Version is the service current released version.
// Semantic versioning: https://semver.org/
// Semantic versioning: https://semver.org/
var
Version
=
"0.9.
0
"
var
Version
=
"0.9.
1
"
// DevVersion is the service current development version.
// DevVersion is the service current development version.
var
DevVersion
=
"0.9.
0
"
var
DevVersion
=
"0.9.
1
"
func
GetCurrentVersion
(
mode
string
)
string
{
func
GetCurrentVersion
(
mode
string
)
string
{
if
mode
==
"dev"
{
if
mode
==
"dev"
{
...
...
web/src/components/AboutSiteDialog.tsx
View file @
24b21aa9
...
@@ -11,6 +11,7 @@ const AboutSiteDialog: React.FC<Props> = ({ destroy }: Props) => {
...
@@ -11,6 +11,7 @@ const AboutSiteDialog: React.FC<Props> = ({ destroy }: Props) => {
const
{
t
}
=
useTranslation
();
const
{
t
}
=
useTranslation
();
const
globalStore
=
useGlobalStore
();
const
globalStore
=
useGlobalStore
();
const
profile
=
globalStore
.
state
.
systemStatus
.
profile
;
const
profile
=
globalStore
.
state
.
systemStatus
.
profile
;
const
customizedProfile
=
globalStore
.
state
.
systemStatus
.
customizedProfile
;
const
handleCloseBtnClick
=
()
=>
{
const
handleCloseBtnClick
=
()
=>
{
destroy
();
destroy
();
...
@@ -20,36 +21,36 @@ const AboutSiteDialog: React.FC<Props> = ({ destroy }: Props) => {
...
@@ -20,36 +21,36 @@ const AboutSiteDialog: React.FC<Props> = ({ destroy }: Props) => {
<>
<>
<
div
className=
"dialog-header-container"
>
<
div
className=
"dialog-header-container"
>
<
p
className=
"title-text flex items-center"
>
<
p
className=
"title-text flex items-center"
>
<
img
className=
"w-7 h-auto mr-1"
src=
"/logo.png"
alt=
""
/>
{
t
(
"common.about"
)
}
{
customizedProfile
.
name
}
{
t
(
"common.about"
)
}
memos
</
p
>
</
p
>
<
button
className=
"btn close-btn"
onClick=
{
handleCloseBtnClick
}
>
<
button
className=
"btn close-btn"
onClick=
{
handleCloseBtnClick
}
>
<
Icon
.
X
/>
<
Icon
.
X
/>
</
button
>
</
button
>
</
div
>
</
div
>
<
div
className=
"dialog-content-container"
>
<
div
className=
"dialog-content-container"
>
<
p
>
{
t
(
"slogan"
)
}
</
p
>
<
p
className=
"text-sm"
>
{
customizedProfile
.
description
||
"No description"
}
</
p
>
<
div
className=
"border-t mt-1 pt-2 flex flex-row justify-start items-center"
>
<
div
className=
"mt-4 flex flex-row text-sm justify-start items-center"
>
<
span
className=
" text-gray-500 mr-2"
>
Other projects:
</
span
>
<
div
className=
"flex flex-row justify-start items-center mr-2"
>
Powered by
<
a
href=
"https://usememos.com"
className=
"flex flex-row justify-start items-center mr-1 hover:underline"
>
<
img
className=
"w-6 h-auto"
src=
"/logo.png"
alt=
""
/>
memos
</
a
>
<
span
>
v
{
profile
.
version
}
</
span
>
</
div
>
<
GitHubBadge
/>
</
div
>
<
div
className=
"border-t mt-3 pt-2 text-sm flex flex-row justify-start items-center"
>
<
span
className=
"text-gray-500 mr-2"
>
Other projects:
</
span
>
<
a
href=
"https://github.com/boojack/sticky-notes"
className=
"flex items-center underline text-blue-600 hover:opacity-80"
>
<
a
href=
"https://github.com/boojack/sticky-notes"
className=
"flex items-center underline text-blue-600 hover:opacity-80"
>
<
img
<
img
className=
"w-
5
h-auto mr-1"
className=
"w-
4
h-auto mr-1"
src=
"https://raw.githubusercontent.com/boojack/sticky-notes/main/public/sticky-notes.ico"
src=
"https://raw.githubusercontent.com/boojack/sticky-notes/main/public/sticky-notes.ico"
alt=
""
alt=
""
/>
/>
<
span
>
Sticky notes
</
span
>
<
span
>
Sticky notes
</
span
>
</
a
>
</
a
>
</
div
>
</
div
>
<
div
className=
"mt-4 flex flex-row text-sm justify-start items-center"
>
<
GitHubBadge
/>
<
span
className=
"ml-2"
>
{
t
(
"common.version"
)
}
:
<
span
className=
"font-mono"
>
{
profile
.
version
}
-
{
profile
.
mode
}
</
span
>
🎉
</
span
>
</
div
>
</
div
>
</
div
>
</>
</>
);
);
...
...
web/src/components/Sidebar.tsx
View file @
24b21aa9
...
@@ -35,11 +35,11 @@ const Sidebar = () => {
...
@@ -35,11 +35,11 @@ const Sidebar = () => {
<
button
className=
"btn action-btn"
onClick=
{
()
=>
showDailyReviewDialog
()
}
>
<
button
className=
"btn action-btn"
onClick=
{
()
=>
showDailyReviewDialog
()
}
>
<
span
className=
"icon"
>
📅
</
span
>
{
t
(
"sidebar.daily-review"
)
}
<
span
className=
"icon"
>
📅
</
span
>
{
t
(
"sidebar.daily-review"
)
}
</
button
>
</
button
>
{
!
userStore
.
isVisitorMode
()
&&
(
<>
<
Link
to=
"/explore"
className=
"btn action-btn"
>
<
Link
to=
"/explore"
className=
"btn action-btn"
>
<
span
className=
"icon"
>
🏂
</
span
>
{
t
(
"common.explore"
)
}
<
span
className=
"icon"
>
🏂
</
span
>
{
t
(
"common.explore"
)
}
</
Link
>
</
Link
>
{
!
userStore
.
isVisitorMode
()
&&
(
<>
<
button
className=
"btn action-btn"
onClick=
{
handleSettingBtnClick
}
>
<
button
className=
"btn action-btn"
onClick=
{
handleSettingBtnClick
}
>
<
span
className=
"icon"
>
⚙️
</
span
>
{
t
(
"sidebar.setting"
)
}
<
span
className=
"icon"
>
⚙️
</
span
>
{
t
(
"sidebar.setting"
)
}
</
button
>
</
button
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment