Merge branch 'master' into PLT-157
Этот коммит содержится в:
44
NOTICE.txt
44
NOTICE.txt
@@ -724,6 +724,46 @@ Legal Terms
|
||||
Our home page can be found at
|
||||
|
||||
http://www.freetype.org
|
||||
|
||||
|
||||
|
||||
--- end of FTL.TXT ---
|
||||
|
||||
---
|
||||
|
||||
This product contains a modified portion of 'gemoji', a collection of emoji images and names by Apple Inc. and other contributors.
|
||||
|
||||
* HOMEPAGE:
|
||||
* https://github.com/github/gemoji/blob/master/LICENSE
|
||||
|
||||
* LICENSE:
|
||||
|
||||
octocat, squirrel, shipit
|
||||
Copyright (c) 2013 GitHub Inc. All rights reserved.
|
||||
|
||||
bowtie, neckbeard, fu
|
||||
Copyright (c) 2013 37signals, LLC. All rights reserved.
|
||||
|
||||
feelsgood, finnadie, goberserk, godmode, hurtrealbad, rage 1-4, suspect
|
||||
Copyright (c) 2013 id Software. All rights reserved.
|
||||
|
||||
trollface
|
||||
Copyright (c) 2013 whynne@deviantart. All rights reserved.
|
||||
|
||||
All other images
|
||||
Copyright (c) 2013 Apple Inc. All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this
|
||||
software and associated documentation files (the "Software"), to deal in the Software
|
||||
without restriction, including without limitation the rights to use, copy, modify,
|
||||
merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies
|
||||
or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
||||
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
|
||||
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
||||
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@@ -22,9 +22,6 @@
|
||||
<a href="{{.Props.Link}}" style="background: #2389D7; border-radius: 3px; color: #fff; border: none; outline: none; min-width: 200px; padding: 15px 25px; font-size: 14px; font-family: inherit; cursor: pointer; -webkit-appearance: none;text-decoration: none;">Set up your team</a>
|
||||
</p>
|
||||
{{ .ClientProps.SiteName }} is one place for all your team communication, searchable and available anywhere.<br>You'll get more out of {{ .ClientProps.SiteName }} when your team is in constant communication--let's get them on board.<br></p>
|
||||
<p>
|
||||
Learn more by <a href="{{.Props.TourUrl}}" style="text-decoration: none; color:#2389D7;">taking a tour</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -17,15 +17,9 @@
|
||||
<table border="0" cellpadding="0" cellspacing="0" style="padding: 20px 50px 0; text-align: center; margin: 0 auto">
|
||||
<tr>
|
||||
<td style="border-bottom: 1px solid #ddd; padding: 0 0 20px;">
|
||||
<h2 style="font-weight: normal; margin-top: 10px;">You joined the {{.Props.TeamDisplayName}} team at {{.ClientProps.SiteName}}!</h2>
|
||||
<p>Please let me know if you have any questions.<br>Enjoy your stay at <a href="{{.Props.TeamURL}}">{{.ClientProps.SiteName}}</a>.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="color: #999; padding-top: 20px; line-height: 25px; font-size: 13px;">
|
||||
Any questions at all, mail us any time: <a href="mailto:{{.ClientProps.FeedbackEmail}}" style="text-decoration: none; color:#2389D7;">{{.ClientProps.FeedbackEmail}}</a>.<br>
|
||||
Best wishes,<br>
|
||||
The {{.ClientProps.SiteName}} Team<br>
|
||||
<h2 style="font-weight: normal; margin-top: 10px;">You can sign-in to your new team from the web address:</h2>
|
||||
<a href="{{.Props.TeamURL}}">{{.Props.TeamURL}}</a>
|
||||
<p>Mattermost lets you share messages and files from your PC or phone, with instant search and archiving.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -1 +1 @@
|
||||
{{define "welcome_subject"}}Welcome to {{ .ClientProps.SiteName }}{{end}}
|
||||
{{define "welcome_subject"}}You joined {{ .Props.TeamDisplayName }}{{end}}
|
||||
|
||||
15
api/user.go
15
api/user.go
@@ -198,7 +198,7 @@ func CreateUser(c *Context, team *model.Team, user *model.User) *model.User {
|
||||
l4g.Error("Encountered an issue joining default channels user_id=%s, team_id=%s, err=%v", ruser.Id, ruser.TeamId, err)
|
||||
}
|
||||
|
||||
//fireAndForgetWelcomeEmail(ruser.FirstName, ruser.Email, team.Name, c.TeamURL+"/channels/town-square")
|
||||
fireAndForgetWelcomeEmail(ruser.Email, team.DisplayName, c.GetTeamURLFromTeam(team))
|
||||
if user.EmailVerified {
|
||||
if cresult := <-Srv.Store.User().VerifyEmail(ruser.Id); cresult.Err != nil {
|
||||
l4g.Error("Failed to set email verified err=%v", cresult.Err)
|
||||
@@ -218,17 +218,13 @@ func CreateUser(c *Context, team *model.Team, user *model.User) *model.User {
|
||||
}
|
||||
}
|
||||
|
||||
func fireAndForgetWelcomeEmail(name, email, teamDisplayName, link, siteURL string) {
|
||||
func fireAndForgetWelcomeEmail(email, teamDisplayName, teamURL string) {
|
||||
go func() {
|
||||
|
||||
subjectPage := NewServerTemplatePage("welcome_subject")
|
||||
subjectPage.Props["SiteURL"] = siteURL
|
||||
subjectPage.Props["TeamDisplayName"] = teamDisplayName
|
||||
bodyPage := NewServerTemplatePage("welcome_body")
|
||||
bodyPage.Props["SiteURL"] = siteURL
|
||||
bodyPage.Props["Nickname"] = name
|
||||
bodyPage.Props["TeamDisplayName"] = teamDisplayName
|
||||
bodyPage.Props["FeedbackName"] = utils.Cfg.EmailSettings.FeedbackName
|
||||
bodyPage.Props["TeamURL"] = link
|
||||
bodyPage.Props["TeamURL"] = teamURL
|
||||
|
||||
if err := utils.SendMail(email, subjectPage.Render(), bodyPage.Render()); err != nil {
|
||||
l4g.Error("Failed to send welcome email successfully err=%v", err)
|
||||
@@ -821,6 +817,9 @@ func uploadProfileImage(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
Srv.Store.User().UpdateLastPictureUpdate(c.Session.UserId)
|
||||
|
||||
c.LogAudit("")
|
||||
|
||||
// write something as the response since jQuery expects a json response
|
||||
w.Write([]byte("true"))
|
||||
}
|
||||
|
||||
func updateUser(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
@@ -325,10 +325,10 @@ Usage:
|
||||
|
||||
-role="admin" The role used in other commands
|
||||
valid values are
|
||||
"" - The empty role is basic user
|
||||
"" - The empty role is basic user
|
||||
permissions
|
||||
"admin" - Represents a team admin and
|
||||
is used to help adminsiter one team.
|
||||
is used to help administer one team.
|
||||
"system_admin" - Represents a system
|
||||
admin who has access to all teams
|
||||
and configuration settings. This
|
||||
|
||||
@@ -81,6 +81,8 @@ export default class UserSettingsAppearance extends React.Component {
|
||||
|
||||
$('#user_settings').off('hidden.bs.modal', this.handleClose);
|
||||
this.props.updateTab('general');
|
||||
$('.ps-container.modal-body').scrollTop(0);
|
||||
$('.ps-container.modal-body').perfectScrollbar('update');
|
||||
$('#user_settings').modal('hide');
|
||||
},
|
||||
(err) => {
|
||||
|
||||
@@ -182,7 +182,7 @@ module.exports = {
|
||||
},
|
||||
{
|
||||
id: 'sidebarText',
|
||||
uiName: 'Sidebar text color'
|
||||
uiName: 'Sidebar Text'
|
||||
},
|
||||
{
|
||||
id: 'sidebarHeaderBg',
|
||||
@@ -190,51 +190,51 @@ module.exports = {
|
||||
},
|
||||
{
|
||||
id: 'sidebarHeaderTextColor',
|
||||
uiName: 'Sidebar Header text color'
|
||||
uiName: 'Sidebar Header Text'
|
||||
},
|
||||
{
|
||||
id: 'sidebarUnreadText',
|
||||
uiName: 'Sidebar unread text color'
|
||||
uiName: 'Sidebar Unread Text'
|
||||
},
|
||||
{
|
||||
id: 'sidebarTextHoverBg',
|
||||
uiName: 'Sidebar text hover BG'
|
||||
uiName: 'Sidebar Text Hover BG'
|
||||
},
|
||||
{
|
||||
id: 'sidebarTextHoverColor',
|
||||
uiName: 'Sidebar text hover color'
|
||||
uiName: 'Sidebar Text Hover Color'
|
||||
},
|
||||
{
|
||||
id: 'sidebarTextActiveBg',
|
||||
uiName: 'Sidebar text active BG'
|
||||
uiName: 'Sidebar Text Active BG'
|
||||
},
|
||||
{
|
||||
id: 'sidebarTextActiveColor',
|
||||
uiName: 'Sidebar text active color'
|
||||
uiName: 'Sidebar Text Active Color'
|
||||
},
|
||||
{
|
||||
id: 'onlineIndicator',
|
||||
uiName: 'Online indicator'
|
||||
uiName: 'Online Indicator'
|
||||
},
|
||||
{
|
||||
id: 'mentionBj',
|
||||
uiName: 'Mention jewel BG'
|
||||
uiName: 'Mention Jewel BG'
|
||||
},
|
||||
{
|
||||
id: 'mentionColor',
|
||||
uiName: 'Mention jewel text color'
|
||||
uiName: 'Mention Jewel Text'
|
||||
},
|
||||
{
|
||||
id: 'centerChannelBg',
|
||||
uiName: 'Center channel BG'
|
||||
uiName: 'Center Channel BG'
|
||||
},
|
||||
{
|
||||
id: 'centerChannelColor',
|
||||
uiName: 'Center channel text color'
|
||||
uiName: 'Center Channel Text'
|
||||
},
|
||||
{
|
||||
id: 'linkColor',
|
||||
uiName: 'Link color'
|
||||
uiName: 'Link Color'
|
||||
},
|
||||
{
|
||||
id: 'buttonBg',
|
||||
@@ -243,7 +243,7 @@ module.exports = {
|
||||
|
||||
{
|
||||
id: 'buttonColor',
|
||||
uiName: 'Button Color'
|
||||
uiName: 'Button Text'
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
Ссылка в новой задаче
Block a user