Merge pull request #13 from rgarmsen2295/master

Remerge
Этот коммит содержится в:
Reed Garmsen
2015-06-18 14:10:47 -07:00
родитель 66425c97e4 4f321383b3
Коммит 3cd793fcb9
10 изменённых файлов: 49 добавлений и 19 удалений

Просмотреть файл

@@ -1,4 +1,11 @@
Mattermost Platform Preview
Copyright 2015 SpinPunch, Inc.
© 2015 Spinpunch, Inc. All Rights Reserved. See LICENSE.txt for license information.
Regular expression support is provided by the PCRE library package, which is open source software, written by Philip Hazel, and copyright by the University of Cambridge, England. The original software is available from ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
NOTICES:
This product contains a modified portion of 'draw2d', a Go library to draw 2d geometrical forms on images by Laurent Le Goff
* LICENSE:
* http://opensource.org/licenses/BSD-3-Clause (BSD 3-Clause)
* HOMEPAGE:
* https://code.google.com/p/draw2d/

Просмотреть файл

@@ -303,6 +303,10 @@ func IsTestDomain(r *http.Request) bool {
return true
}
if strings.Index(r.Host, "dockerhost") == 0 {
return true
}
if strings.Index(r.Host, "test") == 0 {
return true
}

Просмотреть файл

@@ -1,7 +1,7 @@
{
"LogSettings": {
"ConsoleEnable": false,
"ConsoleLevel": "DEBUG",
"ConsoleEnable": true,
"ConsoleLevel": "INFO",
"FileEnable": true,
"FileLevel": "INFO",
"FileFormat": "",

Просмотреть файл

@@ -58,7 +58,7 @@
"SMTPPassword": "",
"SMTPServer": "localhost:25",
"UseTLS": false,
"FeedbackEmail": "feedback@xxxxxxmustbefilledin.com",
"FeedbackEmail": "",
"FeedbackName": "",
"ApplePushServer": "",
"ApplePushCertPublic": "",

Просмотреть файл

@@ -160,6 +160,7 @@ var reservedDomains = []string{
"channel",
"internal",
"localhost",
"dockerhost",
"stag",
"post",
"cluster",

Просмотреть файл

@@ -6,6 +6,7 @@ package utils
import (
l4g "code.google.com/p/log4go"
"encoding/json"
"net/mail"
"os"
"path/filepath"
)
@@ -222,15 +223,20 @@ func LoadConfig(fileName string) {
config.ServiceSettings.Domain = os.Getenv("MATTERMOST_DOMAIN")
}
// Validates our mail settings
if err := CheckMailSettings(); err != nil {
l4g.Error("Email settings are not valid err=%v", err)
// Check for a valid email for feedback, if not then do feedback@domain
if _, err := mail.ParseAddress(config.EmailSettings.FeedbackEmail); err != nil {
config.EmailSettings.FeedbackEmail = "feedback@" + config.ServiceSettings.Domain
}
configureLog(config.LogSettings)
Cfg = &config
SanitizeOptions = getSanitizeOptions()
// Validates our mail settings
if err := CheckMailSettings(); err != nil {
l4g.Error("Email settings are not valid err=%v", err)
}
}
func getSanitizeOptions() map[string]bool {

Просмотреть файл

@@ -85,20 +85,22 @@ module.exports = React.createClass({
var postFiles = [];
var images = [];
if (filenames) {
for (var i = 0; i < filenames.length && i < Constants.MAX_DISPLAY_FILES; i++) {
for (var i = 0; i < filenames.length; i++) {
var fileInfo = utils.splitFileLocation(filenames[i]);
if (Object.keys(fileInfo).length === 0) continue;
var type = utils.getFileType(fileInfo.ext);
if (type === "image") {
postFiles.push(
<div className="post-image__column" key={filenames[i]}>
<a href="#" onClick={this.handleImageClick} data-img-id={images.length.toString()} data-toggle="modal" data-target={"#" + postImageModalId }><div ref={filenames[i]} className="post__load" style={{backgroundImage: 'url(/static/images/load.gif)'}}></div></a>
</div>
);
if (i < Constants.MAX_DISPLAY_FILES) {
postFiles.push(
<div className="post-image__column" key={filenames[i]}>
<a href="#" onClick={this.handleImageClick} data-img-id={images.length.toString()} data-toggle="modal" data-target={"#" + postImageModalId }><div ref={filenames[i]} className="post__load" style={{backgroundImage: 'url(/static/images/load.gif)'}}></div></a>
</div>
);
}
images.push(filenames[i]);
} else {
} else if (i < Constants.MAX_DISPLAY_FILES) {
postFiles.push(
<div className="post-image__column custom-file" key={fileInfo.name}>
<a href={fileInfo.path+"."+fileInfo.ext} download={fileInfo.name+"."+fileInfo.ext}>

Просмотреть файл

@@ -1056,7 +1056,7 @@ var AppearanceTab = React.createClass({
themeSection = (
<SettingItemMax
title="Theme"
title="Theme Color"
inputs={inputs}
submit={this.submitTheme}
server_error={server_error}
@@ -1066,7 +1066,7 @@ var AppearanceTab = React.createClass({
} else {
themeSection = (
<SettingItemMin
title="Theme"
title="Theme Color"
describe={this.state.theme}
updateSection={function(){self.props.updateSection("theme");}}
/>

Просмотреть файл

@@ -61,6 +61,7 @@ module.exports = {
"channel",
"internal",
"localhost",
"dockerhost",
"stag",
"post",
"cluster",

Просмотреть файл

@@ -28,6 +28,9 @@ module.exports.isTestDomain = function() {
if ((/^localhost/).test(window.location.hostname))
return true;
if ((/^dockerhost/).test(window.location.hostname))
return true;
if ((/^test/).test(window.location.hostname))
return true;
@@ -75,8 +78,14 @@ module.exports.getDomainWithOutSub = function() {
var parts = window.location.host.split(".");
if (parts.length == 1)
return "localhost:8065";
if (parts.length == 1) {
if (parts[0].indexOf("dockerhost") > -1) {
return "dockerhost:8065";
}
else {
return "localhost:8065";
}
}
return parts[1] + "." + parts[2];
}