convo alerts
change convo_dev phrase change account_menu_messages phrase change alerts_no_linked_topic phrase change alerts_no_linked_topic_by_reply phrase add alerts.convo_create phrase add alerts.convo_reply phrase add alerts_no_linked_convo phrase
This commit is contained in:
parent
01b7a18ea9
commit
cd7577c84c
|
@ -100,6 +100,14 @@ func BuildAlert(alert Alert, user User /* The current user */) (out string, err
|
||||||
var url, area string
|
var url, area string
|
||||||
phraseName := "." + alert.ElementType
|
phraseName := "." + alert.ElementType
|
||||||
switch alert.ElementType {
|
switch alert.ElementType {
|
||||||
|
case "convo":
|
||||||
|
convo, err := Convos.Get(alert.ElementID)
|
||||||
|
if err != nil {
|
||||||
|
DebugLogf("Unable to find linked convo %d", alert.ElementID)
|
||||||
|
return "", errors.New(phrases.GetErrorPhrase("alerts_no_linked_convo"))
|
||||||
|
}
|
||||||
|
url = convo.Link
|
||||||
|
area = ""
|
||||||
case "topic":
|
case "topic":
|
||||||
topic, err := Topics.Get(alert.ElementID)
|
topic, err := Topics.Get(alert.ElementID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -138,6 +146,8 @@ func BuildAlert(alert Alert, user User /* The current user */) (out string, err
|
||||||
}
|
}
|
||||||
|
|
||||||
switch alert.Event {
|
switch alert.Event {
|
||||||
|
case "create":
|
||||||
|
phraseName += "_create"
|
||||||
case "like":
|
case "like":
|
||||||
phraseName += "_like"
|
phraseName += "_like"
|
||||||
case "mention":
|
case "mention":
|
||||||
|
@ -149,6 +159,7 @@ func BuildAlert(alert Alert, user User /* The current user */) (out string, err
|
||||||
return buildAlertString(phraseName, []string{alert.Actor.Name, area}, url, alert.Actor.Avatar, alert.ASID), nil
|
return buildAlertString(phraseName, []string{alert.Actor.Name, area}, url, alert.Actor.Avatar, alert.ASID), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Use a string builder?
|
||||||
func buildAlertString(msg string, sub []string, path, avatar string, asid int) string {
|
func buildAlertString(msg string, sub []string, path, avatar string, asid int) string {
|
||||||
var subString string
|
var subString string
|
||||||
for _, item := range sub {
|
for _, item := range sub {
|
||||||
|
@ -242,4 +253,4 @@ func notifyWatchers(asid int) {
|
||||||
|
|
||||||
func DismissAlert(uid, aid int) {
|
func DismissAlert(uid, aid int) {
|
||||||
_ = WsHub.PushMessage(uid, `{"event":"dismiss-alert","id":`+strconv.Itoa(aid)+`}`)
|
_ = WsHub.PushMessage(uid, `{"event":"dismiss-alert","id":`+strconv.Itoa(aid)+`}`)
|
||||||
}
|
}
|
||||||
|
|
|
@ -183,6 +183,7 @@ func NewDefaultConversationStore(acc *qgen.Accumulator) (*DefaultConversationSto
|
||||||
func (s *DefaultConversationStore) Get(id int) (*Conversation, error) {
|
func (s *DefaultConversationStore) Get(id int) (*Conversation, error) {
|
||||||
co := &Conversation{ID: id}
|
co := &Conversation{ID: id}
|
||||||
err := s.get.QueryRow(id).Scan(&co.CreatedBy, &co.CreatedAt, &co.LastReplyBy, &co.LastReplyAt)
|
err := s.get.QueryRow(id).Scan(&co.CreatedBy, &co.CreatedAt, &co.LastReplyBy, &co.LastReplyAt)
|
||||||
|
co.Link = BuildConvoURL(co.ID)
|
||||||
return co, err
|
return co, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -199,6 +200,7 @@ func (s *DefaultConversationStore) GetUser(uid, offset int) (cos []*Conversation
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
co.Link = BuildConvoURL(co.ID)
|
||||||
cos = append(cos, co)
|
cos = append(cos, co)
|
||||||
}
|
}
|
||||||
err = rows.Err()
|
err = rows.Err()
|
||||||
|
|
|
@ -111,8 +111,9 @@
|
||||||
|
|
||||||
"alerts_no_actor":"Unable to find the actor",
|
"alerts_no_actor":"Unable to find the actor",
|
||||||
"alerts_no_target_user":"Unable to find the target user",
|
"alerts_no_target_user":"Unable to find the target user",
|
||||||
"alerts_no_linked_topic":"Unable to find the linked topic",
|
"alerts_no_linked_topic":"Unable to find linked topic",
|
||||||
"alerts_no_linked_topic_by_reply":"Unable to find the linked reply or parent topic",
|
"alerts_no_linked_topic_by_reply":"Unable to find linked reply or parent topic",
|
||||||
|
"alerts_no_linked_convo":"Unable to find linked convo",
|
||||||
"alerts_invalid_elementtype":"Invalid elementType",
|
"alerts_invalid_elementtype":"Invalid elementType",
|
||||||
|
|
||||||
"panel_groups_need_name":"The group name can't be left blank.",
|
"panel_groups_need_name":"The group name can't be left blank.",
|
||||||
|
@ -328,7 +329,7 @@
|
||||||
"password_reset_email_sent":"An email was sent to you. Please follow the steps within.",
|
"password_reset_email_sent":"An email was sent to you. Please follow the steps within.",
|
||||||
"password_reset_token_token_verified":"Your password was successfully updated.",
|
"password_reset_token_token_verified":"Your password was successfully updated.",
|
||||||
|
|
||||||
"convo_dev":"Messages are currently under development. Some features may not work yet and your messages may be purged every now and then.",
|
"convo_dev":"Conversations are currently under development. Some features may not work yet and your messages may be purged every now and then.",
|
||||||
|
|
||||||
"panel_forum_created":"The forum was successfully created.",
|
"panel_forum_created":"The forum was successfully created.",
|
||||||
"panel_forum_deleted":"The forum was successfully deleted.",
|
"panel_forum_deleted":"The forum was successfully deleted.",
|
||||||
|
@ -380,6 +381,9 @@
|
||||||
"alerts.user_mention":"{0} mentioned you on {1}'s profile",
|
"alerts.user_mention":"{0} mentioned you on {1}'s profile",
|
||||||
"alerts.new_friend_invite":"You received a friend invite from {0}",
|
"alerts.new_friend_invite":"You received a friend invite from {0}",
|
||||||
|
|
||||||
|
"alerts.convo_create":"{0} added you to a conversation",
|
||||||
|
"alerts.convo_reply":"{0} replied to a conversation",
|
||||||
|
|
||||||
"alerts.no_alerts":"You don't have any alerts",
|
"alerts.no_alerts":"You don't have any alerts",
|
||||||
"alerts.no_alerts_short":"No new alerts",
|
"alerts.no_alerts_short":"No new alerts",
|
||||||
|
|
||||||
|
@ -511,7 +515,7 @@
|
||||||
"account_menu_privacy":"Privacy",
|
"account_menu_privacy":"Privacy",
|
||||||
"account_menu_blocked":"Blocked",
|
"account_menu_blocked":"Blocked",
|
||||||
"account_menu_penalties":"Penalties",
|
"account_menu_penalties":"Penalties",
|
||||||
"account_menu_messages":"Messages",
|
"account_menu_messages":"Conversations",
|
||||||
|
|
||||||
"account_coming_soon":"Coming Soon",
|
"account_coming_soon":"Coming Soon",
|
||||||
|
|
||||||
|
|
|
@ -210,6 +210,26 @@ func ConvosCreateSubmit(w http.ResponseWriter, r *http.Request, user c.User) c.R
|
||||||
return c.InternalError(err, w, r)
|
return c.InternalError(err, w, r)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Don't bother making the subscription if the convo creator is the only recipient?
|
||||||
|
for _, uid := range rlist {
|
||||||
|
if uid == user.ID {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
err := c.Subscriptions.Add(uid, cid, "convo")
|
||||||
|
if err != nil {
|
||||||
|
return c.InternalError(err, w, r)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
err = c.Subscriptions.Add(user.ID, cid, "convo")
|
||||||
|
if err != nil {
|
||||||
|
return c.InternalError(err, w, r)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = c.AddActivityAndNotifyAll(c.Alert{ActorID: user.ID, Event: "create", ElementType: "convo", ElementID: cid, Actor: &user})
|
||||||
|
if err != nil {
|
||||||
|
return c.InternalError(err, w, r)
|
||||||
|
}
|
||||||
|
|
||||||
http.Redirect(w, r, "/user/convo/"+strconv.Itoa(cid), http.StatusSeeOther)
|
http.Redirect(w, r, "/user/convo/"+strconv.Itoa(cid), http.StatusSeeOther)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -269,7 +289,11 @@ func ConvosCreateReplySubmit(w http.ResponseWriter, r *http.Request, user c.User
|
||||||
|
|
||||||
body := c.PreparseMessage(r.PostFormValue("content"))
|
body := c.PreparseMessage(r.PostFormValue("content"))
|
||||||
post := &c.ConversationPost{CID: cid, Body: body, CreatedBy: user.ID}
|
post := &c.ConversationPost{CID: cid, Body: body, CreatedBy: user.ID}
|
||||||
_, err = post.Create()
|
pid, err := post.Create()
|
||||||
|
if err != nil {
|
||||||
|
return c.InternalError(err, w, r)
|
||||||
|
}
|
||||||
|
err = c.AddActivityAndNotifyAll(c.Alert{ActorID: user.ID, Event: "reply", ElementType: "convo", ElementID: cid, Actor: &user, Extra: strconv.Itoa(pid)})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return c.InternalError(err, w, r)
|
return c.InternalError(err, w, r)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue