Compare commits
5 commits
Author | SHA1 | Date | |
---|---|---|---|
48d5dfb4e6 | |||
541fec20ca | |||
be280acb17 | |||
|
bc7c2c7867 | ||
2e7547d3bc |
11 changed files with 32 additions and 5 deletions
|
@ -61,4 +61,4 @@ $safety-sketchy = #F3D75F
|
||||||
$safety-unsafe = #F3985F
|
$safety-unsafe = #F3985F
|
||||||
$scrollbar-thumb-color = $main-color
|
$scrollbar-thumb-color = $main-color
|
||||||
$scrollbar-bg-color = $input-enabled-background-color
|
$scrollbar-bg-color = $input-enabled-background-color
|
||||||
$transparency-grid-square-color = #00000000
|
$transparency-grid-square-color = #F0F0F0
|
|
@ -53,6 +53,7 @@
|
||||||
<div class='post-container'></div>
|
<div class='post-container'></div>
|
||||||
|
|
||||||
<div class='after-mobile-controls'>
|
<div class='after-mobile-controls'>
|
||||||
|
<div class='description'></div>
|
||||||
<% if (ctx.canCreateComments) { %>
|
<% if (ctx.canCreateComments) { %>
|
||||||
<h2>Add comment</h2>
|
<h2>Add comment</h2>
|
||||||
<div class='comment-form-container'></div>
|
<div class='comment-form-container'></div>
|
||||||
|
|
|
@ -187,6 +187,9 @@ class PostMainController extends BasePostController {
|
||||||
if (e.detail.source !== undefined && e.detail.source !== null) {
|
if (e.detail.source !== undefined && e.detail.source !== null) {
|
||||||
post.source = e.detail.source;
|
post.source = e.detail.source;
|
||||||
}
|
}
|
||||||
|
if (e.detail.desc !== undefined && e.detail.desc !== null) {
|
||||||
|
post.desc = e.detail.desc;
|
||||||
|
}
|
||||||
post.save().then(
|
post.save().then(
|
||||||
() => {
|
() => {
|
||||||
this._view.sidebarControl.showSuccess("Post saved.");
|
this._view.sidebarControl.showSuccess("Post saved.");
|
||||||
|
|
|
@ -114,6 +114,10 @@ class Post extends events.EventTarget {
|
||||||
return this._notes;
|
return this._notes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get desc() {
|
||||||
|
return this._desc;
|
||||||
|
}
|
||||||
|
|
||||||
get comments() {
|
get comments() {
|
||||||
return this._comments;
|
return this._comments;
|
||||||
}
|
}
|
||||||
|
@ -277,6 +281,9 @@ class Post extends events.EventTarget {
|
||||||
if (this._source !== this._orig._source) {
|
if (this._source !== this._orig._source) {
|
||||||
detail.source = this._source;
|
detail.source = this._source;
|
||||||
}
|
}
|
||||||
|
if (this._desc !== this._orig._desc) {
|
||||||
|
detail.desc = this._desc;
|
||||||
|
}
|
||||||
|
|
||||||
let apiPromise = this._id
|
let apiPromise = this._id
|
||||||
? api.put(uri.formatApiLink("post", this.id), detail, files)
|
? api.put(uri.formatApiLink("post", this.id), detail, files)
|
||||||
|
|
|
@ -11,13 +11,13 @@ const defaultSettings = {
|
||||||
upscaleSmallPosts: false,
|
upscaleSmallPosts: false,
|
||||||
endlessScroll: false,
|
endlessScroll: false,
|
||||||
keyboardShortcuts: true,
|
keyboardShortcuts: true,
|
||||||
transparencyGrid: true,
|
transparencyGrid: false,
|
||||||
fitMode: "fit-both",
|
fitMode: "fit-both",
|
||||||
tagSuggestions: true,
|
tagSuggestions: true,
|
||||||
autoplayVideos: false,
|
autoplayVideos: false,
|
||||||
postsPerPage: 42,
|
postsPerPage: 42,
|
||||||
tagUnderscoresAsSpaces: false,
|
tagUnderscoresAsSpaces: false,
|
||||||
darkTheme: false,
|
darkTheme: true,
|
||||||
postFlow: false,
|
postFlow: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
##
|
##
|
||||||
## Use this as a template to set up docker-compose, or as guide to set up other
|
## Use this as a template to set up docker-compose, or as guide to set up other
|
||||||
## orchestration services
|
## orchestration services
|
||||||
version: '2'
|
#version: '2'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
|
|
|
@ -103,6 +103,7 @@ privileges:
|
||||||
'posts:edit:content': power
|
'posts:edit:content': power
|
||||||
'posts:edit:flags': regular
|
'posts:edit:flags': regular
|
||||||
'posts:edit:notes': regular
|
'posts:edit:notes': regular
|
||||||
|
'posts:edit:desc': regular
|
||||||
'posts:edit:relations': regular
|
'posts:edit:relations': regular
|
||||||
'posts:edit:safety': power
|
'posts:edit:safety': power
|
||||||
'posts:edit:source': regular
|
'posts:edit:source': regular
|
||||||
|
|
|
@ -72,6 +72,7 @@ def create_post(
|
||||||
source = ctx.get_param_as_string("contentUrl", default="")
|
source = ctx.get_param_as_string("contentUrl", default="")
|
||||||
relations = ctx.get_param_as_int_list("relations", default=[])
|
relations = ctx.get_param_as_int_list("relations", default=[])
|
||||||
notes = ctx.get_param_as_list("notes", default=[])
|
notes = ctx.get_param_as_list("notes", default=[])
|
||||||
|
desc = ctx.get_param_as_string("desc", default="")
|
||||||
flags = ctx.get_param_as_string_list(
|
flags = ctx.get_param_as_string_list(
|
||||||
"flags", default=posts.get_default_flags(content)
|
"flags", default=posts.get_default_flags(content)
|
||||||
)
|
)
|
||||||
|
@ -85,6 +86,7 @@ def create_post(
|
||||||
posts.update_post_source(post, source)
|
posts.update_post_source(post, source)
|
||||||
posts.update_post_relations(post, relations)
|
posts.update_post_relations(post, relations)
|
||||||
posts.update_post_notes(post, notes)
|
posts.update_post_notes(post, notes)
|
||||||
|
posts.update_post_desc(post, desc)
|
||||||
posts.update_post_flags(post, flags)
|
posts.update_post_flags(post, flags)
|
||||||
if ctx.has_file("thumbnail"):
|
if ctx.has_file("thumbnail"):
|
||||||
posts.update_post_thumbnail(post, ctx.get_file("thumbnail"))
|
posts.update_post_thumbnail(post, ctx.get_file("thumbnail"))
|
||||||
|
@ -159,6 +161,9 @@ def update_post(ctx: rest.Context, params: Dict[str, str]) -> rest.Response:
|
||||||
if ctx.has_param("notes"):
|
if ctx.has_param("notes"):
|
||||||
auth.verify_privilege(ctx.user, "posts:edit:notes")
|
auth.verify_privilege(ctx.user, "posts:edit:notes")
|
||||||
posts.update_post_notes(post, ctx.get_param_as_list("notes"))
|
posts.update_post_notes(post, ctx.get_param_as_list("notes"))
|
||||||
|
if ctx.has_param("desc"):
|
||||||
|
auth.verify_privilege(ctx.user, "posts:edit:desc")
|
||||||
|
posts.update_post_desc(post, ctx.get_param_as_string("desc"))
|
||||||
if ctx.has_param("flags"):
|
if ctx.has_param("flags"):
|
||||||
auth.verify_privilege(ctx.user, "posts:edit:flags")
|
auth.verify_privilege(ctx.user, "posts:edit:flags")
|
||||||
posts.update_post_flags(post, ctx.get_param_as_string_list("flags"))
|
posts.update_post_flags(post, ctx.get_param_as_string_list("flags"))
|
||||||
|
|
|
@ -197,6 +197,7 @@ class PostSerializer(serialization.BaseSerializer):
|
||||||
"favoritedBy": self.serialize_favorited_by,
|
"favoritedBy": self.serialize_favorited_by,
|
||||||
"hasCustomThumbnail": self.serialize_has_custom_thumbnail,
|
"hasCustomThumbnail": self.serialize_has_custom_thumbnail,
|
||||||
"notes": self.serialize_notes,
|
"notes": self.serialize_notes,
|
||||||
|
"desc": self.serialize_desc,
|
||||||
"comments": self.serialize_comments,
|
"comments": self.serialize_comments,
|
||||||
"pools": self.serialize_pools,
|
"pools": self.serialize_pools,
|
||||||
}
|
}
|
||||||
|
@ -328,6 +329,9 @@ class PostSerializer(serialization.BaseSerializer):
|
||||||
key=lambda x: x["polygon"],
|
key=lambda x: x["polygon"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def serialize_desc(self) -> Any:
|
||||||
|
return self.post.desc
|
||||||
|
|
||||||
def serialize_comments(self) -> Any:
|
def serialize_comments(self) -> Any:
|
||||||
return [
|
return [
|
||||||
comments.serialize_comment(comment, self.auth_user)
|
comments.serialize_comment(comment, self.auth_user)
|
||||||
|
@ -779,6 +783,11 @@ def update_post_notes(post: model.Post, notes: Any) -> None:
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def update_post_desc(post: model.Post, desc: str) -> None:
|
||||||
|
assert post
|
||||||
|
post.desc = desc
|
||||||
|
|
||||||
|
|
||||||
def update_post_flags(post: model.Post, flags: List[str]) -> None:
|
def update_post_flags(post: model.Post, flags: List[str]) -> None:
|
||||||
assert post
|
assert post
|
||||||
target_flags = []
|
target_flags = []
|
||||||
|
|
|
@ -29,6 +29,7 @@ def upgrade():
|
||||||
sa.Column("image_width", sa.Integer(), nullable=True),
|
sa.Column("image_width", sa.Integer(), nullable=True),
|
||||||
sa.Column("image_height", sa.Integer(), nullable=True),
|
sa.Column("image_height", sa.Integer(), nullable=True),
|
||||||
sa.Column("flags", sa.Integer(), nullable=False),
|
sa.Column("flags", sa.Integer(), nullable=False),
|
||||||
|
sa.Column("description", sa.UnicodeText, nullable=True, default=""),
|
||||||
sa.Column("auto_fav_count", sa.Integer(), nullable=False),
|
sa.Column("auto_fav_count", sa.Integer(), nullable=False),
|
||||||
sa.Column("auto_score", sa.Integer(), nullable=False),
|
sa.Column("auto_score", sa.Integer(), nullable=False),
|
||||||
sa.Column("auto_feature_count", sa.Integer(), nullable=False),
|
sa.Column("auto_feature_count", sa.Integer(), nullable=False),
|
||||||
|
|
|
@ -110,7 +110,6 @@ class PostNote(Base):
|
||||||
|
|
||||||
post = sa.orm.relationship("Post")
|
post = sa.orm.relationship("Post")
|
||||||
|
|
||||||
|
|
||||||
class PostRelation(Base):
|
class PostRelation(Base):
|
||||||
__tablename__ = "post_relation"
|
__tablename__ = "post_relation"
|
||||||
|
|
||||||
|
@ -222,6 +221,7 @@ class Post(Base):
|
||||||
canvas_width = sa.Column("image_width", sa.Integer)
|
canvas_width = sa.Column("image_width", sa.Integer)
|
||||||
canvas_height = sa.Column("image_height", sa.Integer)
|
canvas_height = sa.Column("image_height", sa.Integer)
|
||||||
mime_type = sa.Column("mime-type", sa.Unicode(32), nullable=False)
|
mime_type = sa.Column("mime-type", sa.Unicode(32), nullable=False)
|
||||||
|
desc = sa.Column("description", sa.UnicodeText, nullable=True, default="")
|
||||||
|
|
||||||
# foreign tables
|
# foreign tables
|
||||||
user = sa.orm.relationship("User")
|
user = sa.orm.relationship("User")
|
||||||
|
|
Loading…
Reference in a new issue