1
0
Fork 0

Add moved account indicator

This commit is contained in:
Ryan Fox 2021-01-16 04:53:12 +00:00
parent e0777847a8
commit e708f7197a
Signed by: flewkey
GPG Key ID: 94F56ADFD848851E
4 changed files with 100 additions and 2 deletions

View File

@ -667,6 +667,14 @@ input.form-control[type=file] {
}
/* Account rules */
.account-notice {
padding: 8px 12px;
}
.inactive .account-detail, .inactive account-fields, .inactive .account-infos {
opacity: 0.5;
}
.account-detail {
position: relative;
text-align: center;

View File

@ -3,6 +3,7 @@ module Mastodon.Decoder
( appRegistrationDecoder
, accessTokenDecoder
, accountDecoder
, accountMovedDecoder
, attachmentDecoder
, contextDecoder
, decodeWebSocketMessage
@ -104,6 +105,33 @@ accountDecoder =
}
|> Pipe.optional "emojis" (Decode.list emojiDecoder) []
|> Pipe.optional "fields" (Decode.list fieldDecoder) []
|> Pipe.optional "moved" accountMovedDecoder
{ acct = ""
, avatar = ""
, display_name = ""
, header = ""
, id = ""
, locked = False
, bot = False
, username = ""
, url = ""
, note = ""
}
accountMovedDecoder : Decode.Decoder AccountMoved
accountMovedDecoder =
Pipe.decode AccountMoved
|> Pipe.required "acct" Decode.string
|> Pipe.optional "avatar" Decode.string ""
|> Pipe.optional "display_name" Decode.string ""
|> Pipe.optional "header" Decode.string ""
|> Pipe.required "id" idDecoder
|> Pipe.optional "locked" Decode.bool False
|> Pipe.optional "bot" Decode.bool False
|> Pipe.required "username" Decode.string
|> Pipe.required "url" Decode.string
|> Pipe.optional "note" Decode.string ""
applicationDecoder : Decode.Decoder Application

View File

@ -3,6 +3,7 @@ module Mastodon.Model
( AccessTokenResult
, AppRegistration
, Account
, AccountMoved
, AccountNotificationDate
, Application
, Attachment
@ -122,6 +123,22 @@ type alias Account =
, source : Source
, emojis : List Emoji
, fields : List Field
, moved : AccountMoved
}
type alias AccountMoved =
-- Minimal account to avoid recursive type alias
{ acct : String
, avatar : String
, display_name : String
, header : String
, id : AccountId
, locked : Bool
, bot : Bool
, username : String
, url : String
, note : String
}

View File

@ -22,6 +22,42 @@ type alias CurrentUserRelation =
Maybe Relationship
movedIndicator : Account -> Html Msg
movedIndicator account =
let
displayName account =
if account.display_name == "" then
account.username
else
account.display_name
in
if account.moved.id /= "" then
div [ class "account-notice" ]
[ p []
[ Common.icon "briefcase"
, text <| " " ++ displayName account
, text " has moved to:"
]
, div [ class "status" ]
[ a
[ href
<| "#account/" ++ account.moved.id
]
[ img [ class "avatar", src account.moved.avatar ] []
, div [ class "username" ]
[ text <| displayName account.moved
, br [] []
, span [ class "acct" ] [ text <| "@" ++ account.moved.acct ]
]
, div [ class "status-text" ]
( formatContent account.moved.note [] )
]
]
]
else
text ""
followButton : CurrentUser -> CurrentUserRelation -> Account -> Html Msg
followButton currentUser relationship account =
if Mastodon.Helper.sameAccount account currentUser then
@ -290,8 +326,17 @@ accountView subView currentUser accountInfo =
div [ class "col-md-3 column" ]
[ div [ class "panel panel-default" ]
[ Common.closeablePanelheading "account" "user" "Account"
, div [ id "account", class "timeline" ]
[ div
, div
[ id "account"
, class
<| "timeline" ++
if account.moved.id /= "" then
" inactive"
else
""
]
[ movedIndicator account
, div
[ class "account-detail"
, style [ ( "background-image", "url('" ++ account.header ++ "')" ),
( "background-position", "center" ),