Этот коммит содержится в:
=Corey Hulen
2016-03-16 18:13:16 -07:00
родитель e101b2cf7c cba59d4eb6
Коммит b9d5b4e5dc
4983 изменённых файлов: 16487 добавлений и 1611263 удалений

4
.gitignore поставляемый
Просмотреть файл

@@ -2,12 +2,14 @@
logs
.DS_Store
node_modules
dist
/dist
/webapp/dist
npm-debug.log
web/static/js/bundle*.js
web/static/js/bundle*.js.map
web/static/js/libs*.js
.npminstall
config/active.dat

Разница между файлами не показана из-за своего большого размера Загрузить разницу

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

@@ -110,67 +110,33 @@ package:
cp $(GOPATH)/bin/platform $(DIST_PATH)/bin
cp -RL config $(DIST_PATH)/config
cp -RL fonts $(DIST_PATH)/fonts
touch $(DIST_PATH)/config/build.txt
echo $(BUILD_NUMBER) | tee -a $(DIST_PATH)/config/build.txt
mkdir -p $(DIST_PATH)/logs
mkdir -p $(DIST_PATH)/web/static/js
cp -L web/static/js/*.min.js $(DIST_PATH)/web/static/js/
cp -L web/static/js/*.min.js.map $(DIST_PATH)/web/static/js/
cp -RL web/static/js/intl-1.0.0 $(DIST_PATH)/web/static/js/
cp -RL web/static/js/react-intl-2.0.0-beta-2 $(DIST_PATH)/web/static/js/
cp -RL web/static/i18n $(DIST_PATH)/web/static
cp -RL web/static/config $(DIST_PATH)/web/static
cp -RL web/static/css $(DIST_PATH)/web/static
cp -RL web/static/fonts $(DIST_PATH)/web/static
cp -RL web/static/help $(DIST_PATH)/web/static
cp -RL web/static/images $(DIST_PATH)/web/static
cp -RL web/static/js/jquery-dragster $(DIST_PATH)/web/static/js/
mkdir -p $(DIST_PATH)/webapp/dist
cp -RL webapp/dist $(DIST_PATH)/webapp
cp -RL templates $(DIST_PATH)
mkdir -p $(DIST_PATH)/api
cp -RL i18n $(DIST_PATH)
cp build/MIT-COMPILED-LICENSE.md $(DIST_PATH)
cp NOTICE.txt $(DIST_PATH)
cp README.md $(DIST_PATH)
mv $(DIST_PATH)/web/static/js/bundle.min.js $(DIST_PATH)/web/static/js/bundle-$(BUILD_NUMBER).min.js
mv $(DIST_PATH)/web/static/js/libs.min.js $(DIST_PATH)/web/static/js/libs-$(BUILD_NUMBER).min.js
sed -i'.bak' 's|react-0.14.3.js|react-0.14.3.min.js|g' $(DIST_PATH)/templates/head.html
sed -i'.bak' 's|react-dom-0.14.3.js|react-dom-0.14.3.min.js|g' $(DIST_PATH)/templates/head.html
sed -i'.bak' 's|Intl.js|Intl.min.js|g' $(DIST_PATH)/templates/head.html
sed -i'.bak' 's|react-intl.js|react-intl.min.js|g' $(DIST_PATH)/templates/head.html
sed -i'.bak' 's|jquery-2.1.4.js|jquery-2.1.4.min.js|g' $(DIST_PATH)/templates/head.html
sed -i'.bak' 's|bootstrap-3.3.5.js|bootstrap-3.3.5.min.js|g' $(DIST_PATH)/templates/head.html
sed -i'.bak' 's|react-bootstrap-0.28.1.js|react-bootstrap-0.28.1.min.js|g' $(DIST_PATH)/templates/head.html
sed -i'.bak' 's|perfect-scrollbar-0.6.7.jquery.js|perfect-scrollbar-0.6.7.jquery.min.js|g' $(DIST_PATH)/templates/head.html
sed -i'.bak' 's|bundle.js|bundle-$(BUILD_NUMBER).min.js|g' $(DIST_PATH)/templates/head.html
sed -i'.bak' 's|libs.min.js|libs-$(BUILD_NUMBER).min.js|g' $(DIST_PATH)/templates/head.html
rm $(DIST_PATH)/templates/*.bak
mv $(DIST_PATH)/webapp/dist/bundle.js $(DIST_PATH)/webapp/dist/bundle-$(BUILD_NUMBER).js
sed -i'.bak' 's|bundle.js|bundle-$(BUILD_NUMBER).js|g' $(DIST_PATH)/webapp/dist/root.html
rm $(DIST_PATH)/webapp/dist/root.html.bak
sudo mv -f $(DIST_PATH)/config/config.json.bak $(DIST_PATH)/config/config.json || echo 'nomv'
tar -C dist -czf $(DIST_PATH).tar.gz mattermost
build-client:
@echo Building mattermost web client
cd web/react/ && npm install
@echo Checking for style guide compliance
@echo ESLint...
cd web/react && $(ESLINT) --ext ".jsx" --ignore-pattern node_modules --quiet .
cd web/react/ && npm run build-libs
mkdir -p web/static/js
cd web/react && npm run build
cd web/sass-files && compass compile -e production --force
cd webapp && make build
go-test:
$(GO) test $(GOFLAGS) -run=$(TESTS) -test.v -test.timeout=180s ./api || exit 1
@@ -254,25 +220,14 @@ nuke: | clean clean-docker
touch $@
.prepare-jsx: web/react/package.json
@echo Preparation for compiling jsx code
cd web/react/ && npm install
cd web/react/ && npm run build-libs
touch $@
run: start-docker run-server run-client
run-server: .prepare-go
@echo Starting go web server
$(GO) run $(GOFLAGS) mattermost.go -config=config.json &
run-client: .prepare-jsx
mkdir -p web/static/js
run-client: build-client
@echo Starting react processo
cd web/react && npm start &
@if [ "$(BUILD_ENTERPRISE)" = "true" ] && [ -d "$(ENTERPRISE_DIR)" ]; then \
cp ./config/config.json ./config/config.json.bak; \
@@ -284,10 +239,7 @@ run-client: .prepare-jsx
sed -i'.bak' 's|_BUILD_ENTERPRISE_READY_|false|g' ./model/version.go; \
fi
@echo Starting compass watch
cd web/sass-files && compass compile && compass watch &
stop: stop-client stop-server
stop: stop-server
@if [ $(shell docker ps -a | grep -ci ${DOCKER_CONTAINER_NAME}) -eq 1 ]; then \
echo removing dev docker container; \
docker stop ${DOCKER_CONTAINER_NAME} > /dev/null; \
@@ -300,22 +252,6 @@ stop: stop-client stop-server
mv ./model/version.go.bak ./model/version.go 2> /dev/null || true; \
fi
stop-client:
@for PID in $$(ps -ef | grep [c]ompass | awk '{ print $$2 }'); do \
echo stopping css watch $$PID; \
kill $$PID; \
done
@for PID in $$(ps -ef | grep [n]pm | awk '{ print $$2 }'); do \
echo stopping client $$PID; \
kill $$PID; \
done
@for PID in $$(ps -ef | grep [w]atchify | awk '{ print $$2 }'); do \
echo stopping client $$PID; \
kill $$PID; \
done
stop-server:
@for PID in $$(ps -ef | grep "go run [m]attermost.go" | awk '{ print $$2 }'); do \
echo stopping go $$PID; \

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

@@ -201,21 +201,23 @@ func TestLoadTestUrlCommands(t *testing.T) {
t.Fatal("/loadtest url for README.md should've executed")
}
command = "/loadtest url test-emoticons1.md"
if r := Client.Must(Client.Command(channel.Id, command, false)).Data.(*model.CommandResponse); r.Text != "Loading data..." {
t.Fatal("/loadtest url for test-emoticons.md should've executed")
}
// Removing these tests since they break compatibilty with previous release branches because the url pulls from github master
command = "/loadtest url test-emoticons1"
if r := Client.Must(Client.Command(channel.Id, command, false)).Data.(*model.CommandResponse); r.Text != "Loading data..." {
t.Fatal("/loadtest url for test-emoticons should've executed")
}
// command = "/loadtest url test-emoticons1.md"
// if r := Client.Must(Client.Command(channel.Id, command, false)).Data.(*model.CommandResponse); r.Text != "Loading data..." {
// t.Fatal("/loadtest url for test-emoticons.md should've executed")
// }
posts := Client.Must(Client.GetPosts(channel.Id, 0, 5, "")).Data.(*model.PostList)
// note that this may make more than 3 posts if files are too long to fit in an individual post
if len(posts.Order) < 3 {
t.Fatal("/loadtest url made too few posts, perhaps there needs to be a delay before GetPosts in the test?")
}
// command = "/loadtest url test-emoticons1"
// if r := Client.Must(Client.Command(channel.Id, command, false)).Data.(*model.CommandResponse); r.Text != "Loading data..." {
// t.Fatal("/loadtest url for test-emoticons should've executed")
// }
// posts := Client.Must(Client.GetPosts(channel.Id, 0, 5, "")).Data.(*model.PostList)
// // note that this may make more than 3 posts if files are too long to fit in an individual post
// if len(posts.Order) < 3 {
// t.Fatal("/loadtest url made too few posts, perhaps there needs to be a delay before GetPosts in the test?")
// }
time.Sleep(2 * time.Second)
}

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

@@ -43,7 +43,7 @@ func TestUploadFile(t *testing.T) {
t.Fatal(err)
}
path := utils.FindDir("web/static/images")
path := utils.FindDir("tests")
file, err := os.Open(path + "/test.png")
defer file.Close()
@@ -159,7 +159,7 @@ func TestGetFile(t *testing.T) {
t.Fatal(err)
}
path := utils.FindDir("web/static/images")
path := utils.FindDir("tests")
file, err := os.Open(path + "/test.png")
if err != nil {
t.Fatal(err)
@@ -342,7 +342,7 @@ func TestGetPublicLink(t *testing.T) {
t.Fatal(err)
}
path := utils.FindDir("web/static/images")
path := utils.FindDir("tests")
file, err := os.Open(path + "/test.png")
if err != nil {
t.Fatal(err)

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

@@ -249,7 +249,7 @@ func CreateUser(team *model.Team, user *model.User) (*model.User, *model.AppErro
}
}
func CreateOAuthUser(c *Context, w http.ResponseWriter, r *http.Request, service string, userData io.ReadCloser, team *model.Team) *model.User {
func CreateOAuthUser(c *Context, w http.ResponseWriter, r *http.Request, service string, userData io.Reader, team *model.Team) *model.User {
var user *model.User
provider := einterfaces.GetOauthProvider(service)
if provider == nil {
@@ -481,7 +481,10 @@ func LoginByUsername(c *Context, w http.ResponseWriter, r *http.Request, usernam
return nil
}
func LoginByOAuth(c *Context, w http.ResponseWriter, r *http.Request, service string, userData io.ReadCloser, team *model.Team) *model.User {
func LoginByOAuth(c *Context, w http.ResponseWriter, r *http.Request, service string, userData io.Reader, team *model.Team) *model.User {
buf := bytes.Buffer{}
buf.ReadFrom(userData)
authData := ""
provider := einterfaces.GetOauthProvider(service)
if provider == nil {
@@ -489,7 +492,7 @@ func LoginByOAuth(c *Context, w http.ResponseWriter, r *http.Request, service st
map[string]interface{}{"Service": service}, "")
return nil
} else {
authData = provider.GetAuthDataFromJson(userData)
authData = provider.GetAuthDataFromJson(bytes.NewReader(buf.Bytes()))
}
if len(authData) == 0 {
@@ -500,6 +503,9 @@ func LoginByOAuth(c *Context, w http.ResponseWriter, r *http.Request, service st
var user *model.User
if result := <-Srv.Store.User().GetByAuth(team.Id, authData, service); result.Err != nil {
if result.Err.Id == store.MISSING_AUTH_ACCOUNT_ERROR && team.AllowOpenInvite {
return CreateOAuthUser(c, w, r, service, bytes.NewReader(buf.Bytes()), team)
}
c.Err = result.Err
return nil
} else {
@@ -1049,7 +1055,7 @@ func createProfileImage(username string, userId string) ([]byte, *model.AppError
initial := string(strings.ToUpper(username)[0])
fontBytes, err := ioutil.ReadFile(utils.FindDir("web/static/fonts") + utils.Cfg.FileSettings.InitialFont)
fontBytes, err := ioutil.ReadFile(utils.FindDir("fonts") + utils.Cfg.FileSettings.InitialFont)
if err != nil {
return nil, model.NewLocAppError("createProfileImage", "api.user.create_profile_image.default_font.app_error", nil, err.Error())
}

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

@@ -470,7 +470,7 @@ func TestUserUploadProfileImage(t *testing.T) {
t.Fatal(err)
}
path := utils.FindDir("web/static/images")
path := utils.FindDir("tests")
file, err := os.Open(path + "/test.png")
if err != nil {
t.Fatal(err)

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

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

@@ -1015,6 +1015,10 @@
"id": "api.team.export_team.admin.app_error",
"translation": "Only a team admin can export data."
},
{
"id": "api.team.get_invite_info.not_open_team",
"translation": "Invite is invalid because this is not an open team."
},
{
"id": "api.team.import_team.admin.app_error",
"translation": "Only a team admin can import data."
@@ -3128,7 +3132,11 @@
"translation": "We encountered an error finding the account"
},
{
"id": "store.sql_user.get_by_auth.app_error",
"id": "store.sql_user.get_by_auth.other.app_error",
"translation": "We encountered an error trying to find the account by authentication type."
},
{
"id": "store.sql_user.get_by_auth.missing_account.app_error",
"translation": "We couldn't find an existing account matching your authentication type for this team. This team may require an invite from the team owner to join."
},
{
@@ -3646,9 +3654,5 @@
{
"id": "web.watcher_fail.error",
"translation": "Failed to add directory to watcher %v"
},
{
"id": "api.team.get_invite_info.not_open_team",
"translation": "Invite is invalid because this is not an open team."
}
]

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

@@ -1015,6 +1015,10 @@
"id": "api.team.export_team.admin.app_error",
"translation": "Sólo un administrador del equipo puede exportar data."
},
{
"id": "api.team.get_invite_info.not_open_team",
"translation": "La invitación es inválida debido a que este no es un equipo abierto."
},
{
"id": "api.team.import_team.admin.app_error",
"translation": "Sólo un administrador del equipo puede importar data."
@@ -1623,6 +1627,10 @@
"id": "api.user.upload_profile_user.upload_profile.app_error",
"translation": "No se pudo subir la imagen del perfil"
},
{
"id": "api.user.verify_email.bad_link.app_error",
"translation": "Enlace de verificación de correo electrónico errado."
},
{
"id": "api.web_conn.new_web_conn.last_activity.error",
"translation": "Falla al actualizar LastActivityAt para user_id=%v and session_id=%v, err=%v"
@@ -3068,7 +3076,7 @@
"translation": "Encontramos un error buscando la cuenta"
},
{
"id": "store.sql_user.get_by_auth.app_error",
"id": "store.sql_user.get_by_auth.missing_account.app_error",
"translation": "No pudimos encontrar una cuenta existente que coincida con tu tipo de autenticación para este equipo. Es posible que necesites una invitación por parte del dueño del equipo para unirte."
},
{

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

@@ -1623,6 +1623,10 @@
"id": "api.user.upload_profile_user.upload_profile.app_error",
"translation": "Não foi possível enviar a imagem do perfil"
},
{
"id": "api.user.verify_email.bad_link.app_error",
"translation": "Erro na verificação link de email."
},
{
"id": "api.web_conn.new_web_conn.last_activity.error",
"translation": "Falha ao atualizar LastActivityAt para o user_id=%v e session_id=%v, err=%v"
@@ -3068,7 +3072,7 @@
"translation": "Encontramos um erro ao procurar a conta"
},
{
"id": "store.sql_user.get_by_auth.app_error",
"id": "store.sql_user.get_by_auth.missing_account.app_error",
"translation": "Não foi possível encontrar uma conta correspondente ao seu tipo de autenticação para esta equipe. Esta equipe pode exigir um convite do dono da equipe para participar."
},
{
@@ -3399,22 +3403,6 @@
"id": "web.find_team.title",
"translation": "Encontrar Equipe"
},
{
"id": "web.footer.about",
"translation": "Sobre"
},
{
"id": "web.footer.help",
"translation": "Ajuda"
},
{
"id": "web.footer.privacy",
"translation": "Privacidade"
},
{
"id": "web.footer.terms",
"translation": "Termos"
},
{
"id": "web.get_access_token.bad_client_id.app_error",
"translation": "invalid_request: Bad client_id"
@@ -3547,10 +3535,6 @@
"id": "web.root.home_title",
"translation": "Início"
},
{
"id": "web.root.singup_info",
"translation": "Toda comunicação da equipe em um lugar, pesquisável e acessível em qualquer lugar"
},
{
"id": "web.root.singup_title",
"translation": "Inscrever-se"
@@ -3606,5 +3590,9 @@
{
"id": "web.watcher_fail.error",
"translation": "Falha ao adicionar diretório observador %v"
},
{
"id": "api.team.get_invite_info.not_open_team",
"translation": "Convite é inválido devido a este não ser de uma equipe aberta."
}
]
]

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

@@ -56,7 +56,7 @@ func TestGetInfoForBytes(t *testing.T) {
t.Fatalf("Got HasPreviewImage = false for static gif")
}
animatedGifFile, err := ioutil.ReadFile("../web/static/images/testgif.gif")
animatedGifFile, err := ioutil.ReadFile("../tests/testgif.gif")
if err != nil {
t.Fatalf("Failed to load testgif.gif: %v", err.Error())
}

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

@@ -118,5 +118,10 @@ func IsPreviousVersionsSupported(versionToCheck string) bool {
return true
}
// Current - 3 Supported
if versionsWithoutHotFixes[3] == versionToCheckStr {
return true
}
return false
}

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

@@ -4,6 +4,7 @@
package store
import (
"database/sql"
"fmt"
"github.com/mattermost/platform/model"
"github.com/mattermost/platform/utils"
@@ -11,7 +12,8 @@ import (
)
const (
MISSING_ACCOUNT_ERROR = "store.sql_user.missing_account.const"
MISSING_ACCOUNT_ERROR = "store.sql_user.missing_account.const"
MISSING_AUTH_ACCOUNT_ERROR = "store.sql_user.get_by_auth.missing_account.app_error"
)
type SqlUserStore struct {
@@ -481,8 +483,11 @@ func (us SqlUserStore) GetByAuth(teamId string, authData string, authService str
user := model.User{}
if err := us.GetReplica().SelectOne(&user, "SELECT * FROM Users WHERE TeamId = :TeamId AND AuthData = :AuthData AND AuthService = :AuthService", map[string]interface{}{"TeamId": teamId, "AuthData": authData, "AuthService": authService}); err != nil {
result.Err = model.NewLocAppError("SqlUserStore.GetByAuth", "store.sql_user.get_by_auth.app_error",
nil, "teamId="+teamId+", authData="+authData+", authService="+authService+", "+err.Error())
if err == sql.ErrNoRows {
result.Err = model.NewLocAppError("SqlUserStore.GetByAuth", MISSING_AUTH_ACCOUNT_ERROR, nil, "teamId="+teamId+", authData="+authData+", authService="+authService+", "+err.Error())
} else {
result.Err = model.NewLocAppError("SqlUserStore.GetByAuth", "store.sql_user.get_by_auth.other.app_error", nil, "teamId="+teamId+", authData="+authData+", authService="+authService+", "+err.Error())
}
}
result.Data = &user

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

@@ -2,7 +2,7 @@
<!DOCTYPE html>
<html>
{{template "head" . }}
<body class="white error">
<body class="sticky error">
<div class="container-fluid">
<div class="error__container">
<div class="error__icon">

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

@@ -1,92 +0,0 @@
{{define "head"}}
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="robots" content="noindex, nofollow">
<meta name="referrer" content="no-referrer">
<title>{{ .Props.Title }}</title>
<!-- iOS add to homescreen -->
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default">
<meta name="mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-title" content="{{ .Props.Title }}">
<meta name="application-name" content="{{ .Props.Title }}">
<meta name="format-detection" content="telephone=no">
<!-- iOS add to homescreen -->
<!-- Android add to homescreen -->
<link rel="apple-touch-icon" sizes="57x57" href="/static/images/favicon/apple-touch-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/static/images/favicon/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/static/images/favicon/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/static/images/favicon/apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/static/images/favicon/apple-touch-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/static/images/favicon/apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/static/images/favicon/apple-touch-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/static/images/favicon/apple-touch-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/static/images/favicon/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" sizes="32x32" href="/static/images/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="192x192" href="/static/images/favicon/android-chrome-192x192.png">
<link rel="icon" type="image/png" sizes="96x96" href="/static/images/favicon/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/static/images/favicon/favicon-16x16.png">
<link rel="manifest" href="/static/config/manifest.json">
<!-- Android add to homescreen -->
<!-- CSS Should always go first -->
<link rel="stylesheet" href="/static/css/bootstrap-3.3.5.min.css">
<link rel="stylesheet" href="/static/css/jasny-bootstrap.min.css">
<link rel="stylesheet" href="/static/css/bootstrap-colorpicker.min.css">
<link rel="stylesheet" href="/static/css/styles.css">
<link rel="stylesheet" href="/static/css/google-fonts.css">
<link rel="stylesheet" href="/static/css/katex.min.css">
<link rel="stylesheet" class="code_theme" href="">
<script src="/static/js/intl-1.0.0/Intl.js"></script>
<script src="/static/js/intl-1.0.0/locale-data/jsonp/en.js"></script>
<script src="/static/js/intl-1.0.0/locale-data/jsonp/es.js"></script>
<script src="/static/js/intl-1.0.0/locale-data/jsonp/pt.js"></script>
<script src="/static/js/react-0.14.3.js"></script>
<script src="/static/js/react-dom-0.14.3.js"></script>
<script src="/static/js/react-intl-2.0.0-beta-2/react-intl.js"></script>
<script src="/static/js/react-intl-2.0.0-beta-2/locale-data/en.js"></script>
<script src="/static/js/react-intl-2.0.0-beta-2/locale-data/es.js"></script>
<script src="/static/js/react-intl-2.0.0-beta-2/locale-data/pt.js"></script>
<script src="/static/js/jquery-2.1.4.js"></script>
<script src="/static/js/bootstrap-3.3.5.js"></script>
<script src="/static/js/bootstrap-colorpicker.min.js"></script>
<script src="/static/js/react-bootstrap-0.28.1.js"></script>
<script src="/static/js/velocity.min.js"></script>
<script src="/static/js/perfect-scrollbar-0.6.7.jquery.min.js"></script>
<script src="/static/js/jquery-dragster/jquery.dragster.js"></script>
<script src="/static/js/babel-polyfill-6.1.18.min.js"></script>
<script src="/static/js/katex.min.js"></script>
<script src="/static/js/Chart.min.js"></script>
<style id="antiClickjack">body{display:none !important;}</style>
<script>
if ('ReactIntl' in window && 'ReactIntlLocaleData' in window) {
Object.keys(ReactIntlLocaleData).forEach(function(lang) {
ReactIntl.addLocaleData(ReactIntlLocaleData[lang]);
});
}
$(window).on('beforeunload', function(){
if (window.SocketStore) {
SocketStore.close();
}
});
</script>
<script src="/static/js/libs.min.js"></script>
<script src="/static/js/bundle.js"></script>
<script type="text/javascript">
if (self === top) {
var blocker = document.getElementById("antiClickjack");
blocker.parentNode.removeChild(blocker);
}
</script>
</head>
{{end}}

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

@@ -1,12 +0,0 @@
{{define "root"}}
<!DOCTYPE html>
<html>
{{template "head" . }}
<body>
<div id='root'/>
<script>
window.setup_root();
</script>
</body>
</html>
{{end}}

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

До

Ширина:  |  Высота:  |  Размер: 273 KiB

После

Ширина:  |  Высота:  |  Размер: 273 KiB

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

До

Ширина:  |  Высота:  |  Размер: 38 KiB

После

Ширина:  |  Высота:  |  Размер: 38 KiB

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

@@ -1,55 +0,0 @@
{
"name": "mattermost",
"version": "0.0.1",
"private": true,
"dependencies": {
"autolinker": "0.24.0",
"fastclick": "1.0.6",
"flux": "2.1.1",
"highlight.js": "9.1.0",
"keymirror": "0.1.1",
"marked": "mattermost/marked#cb85e5cc81bc7937dbb73c3c53d9532b1b97e3ca",
"mm-intl": "mattermost/mm-intl#805442fd474fa40cd586ddeda404dbbe8e60626d",
"object-assign": "4.0.1",
"react": "0.14.3",
"react-router": "2.0.0",
"twemoji": "1.4.1"
},
"devDependencies": {
"babel-eslint": "5.0.0",
"babel-plugin-transform-runtime": "6.5.2",
"babel-preset-es2015": "6.5.0",
"babel-preset-react": "6.5.0",
"babel-preset-stage-0": "6.5.0",
"babelify": "7.2.0",
"browserify": "13.0.0",
"eslint": "2.2.0",
"eslint-plugin-react": "4.0.0",
"exorcist": "0.4.0",
"uglify-js": "2.6.1",
"watchify": "3.7.0"
},
"scripts": {
"check": "",
"build-libs": "browserify -r crypto -r autolinker -r flux -r keymirror -r marked -r object-assign -r twemoji | uglifyjs -c -m --screw-ie8 > ../static/js/libs.min.js",
"start": "watchify --fast -x crypto -x node -x autolinker -x flux -x keymirror -x marked -x object-assign -x twemoji -o ../static/js/bundle.js -v -d ./**/*.jsx",
"build": "browserify -x crypto -x autolinker -x flux -x keymirror -x marked -x object-assign -x twemoji -d ./**/*.jsx | exorcist ../static/js/inter.js.map > ../static/js/tmp.js && uglifyjs ../static/js/tmp.js --in-source-map \"../static/js/inter.js.map\" --source-map \"../static/js/bundle.min.js.map\" --source-map-url \"/static/js/bundle.min.js.map\" -c -m --screw-ie8 > ../static/js/bundle.min.js && rm ../static/js/tmp.js && rm ../static/js/inter.js.map"
},
"browserify": {
"transform": [
[
"babelify",
{
"presets": [
"es2015",
"react",
"stage-0"
],
"plugins": [
"transform-runtime"
]
}
]
]
}
}

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

@@ -1,71 +0,0 @@
// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
import Authorize from '../components/authorize.jsx';
import * as Client from '../utils/client.jsx';
var IntlProvider = ReactIntl.IntlProvider;
class Root extends React.Component {
constructor() {
super();
this.state = {
translations: null,
loaded: false
};
}
static propTypes() {
return {
map: React.PropTypes.object.isRequired
};
}
componentWillMount() {
Client.getTranslations(
this.props.map.Locale,
(data) => {
this.setState({
translations: data,
loaded: true
});
return;
},
() => {
this.setState({
loaded: true
});
}
);
}
render() {
if (!this.state.loaded) {
return <div></div>;
}
return (
<IntlProvider
locale={this.props.map.Locale}
messages={this.state.translations}
>
<Authorize
teamName={this.props.map.TeamName}
appName={this.props.map.AppName}
responseType={this.props.map.ResponseType}
clientId={this.props.map.ClientId}
redirectUri={this.props.map.RedirectUri}
scope={this.props.map.Scope}
state={this.props.map.State}
/>
</IntlProvider>
);
}
}
global.window.setup_authorize_page = function setup(props) {
ReactDOM.render(
<Root map={props}/>,
document.getElementById('authorize')
);
};

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

@@ -1,20 +0,0 @@
require 'compass/import-once/activate'
# Require any additional compass plugins here.
# Set this to the root of your project when deployed:
http_path = "/"
css_dir = "../static/css"
sass_dir = "sass"
images_dir = "../static/img"
javascripts_dir = "../static/js"
fonts_dir = "../static/fonts"
output_style = :compressed
# To enable relative paths to assets via compass helper functions. Uncomment:
# relative_assets = true
line_comments = false
color_output = false
preferred_syntax = :scss

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

@@ -1,256 +0,0 @@
@charset "UTF-8";
html, body {
height: 100%;
}
body {
font-family: 'Open Sans', sans-serif;
-webkit-font-smoothing: antialiased;
background: $body-bg;
position: relative;
width: 100%;
height: 100%;
&.white {
background: #fff;
> .container-fluid {
overflow: auto;
}
.inner__wrap {
> .row.content {
min-height: 100%;
margin-bottom: -89px;
}
}
}
}
b, strong {
font-weight: 600;
}
.inner__wrap {
height: 100%;
> .row.main {
height: 100%;
position: relative;
}
}
.container-fluid {
@include legacy-pie-clearfix;
height: 100%;
position: relative;
}
.channel-view {
@include clearfix;
height: 100%;
position: relative;
}
img {
max-width: 100%;
height: auto;
&.rounded {
@include border-radius(100%);
}
}
.popover {
@include border-radius(3px);
color: #333;
&.bottom, &.right, &.top, &.left {
>.arrow:after {
border-color: transparent;
}
}
.popover-title {
background: rgba(black, 0.05);
}
.popover-content {
p:last-child {
margin-bottom: 5px;
}
}
}
.dropdown-menu {
.divider {
@include opacity(0.15);
}
> li > a {
color: inherit;
&:focus, &:hover {
color: inherit;
}
}
}
.word-break--all {
word-break: break-all;
}
a {
word-break: break-word;
color: $primary-color;
cursor: pointer;
}
a:focus, a:hover {
color: $primary-color;
}
.tooltip {
.tooltip-inner {
word-break: break-word;
font-size: 13px;
padding: 3px 10px 4px;
font-weight: 500;
}
}
.nopadding {
padding: 0;
margin: 0;
}
.text-danger, a.text-danger {
color: #E05F5D;
&:hover, &:focus {
color: #E05F5D;
}
}
.btn {
&.btn-danger {
color: #fff;
&:hover, &:active, &:focus {
color: #fff;
}
}
}
.form-control {
@include border-radius(2px);
&:focus {
@include box-shadow(none);
}
&.no-padding {
line-height: 32px;
padding: 0;
}
&.no-resize {
resize: none;
}
}
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
cursor: auto;
background: rgba(#fff, 0.1);
color: inherit;
}
.form-group {
&.form-group--small {
margin-bottom: 10px;
}
}
.error-panel {
max-width: 275px;
position: absolute;
right: 10px;
top: 40px;
z-index: 100;
}
.nav>li>a:focus, .nav>li>a:hover {
background: transparent;
}
.btn {
@include single-transition(all, 0.25s, ease-in);
@include border-radius(1px);
&.btn-primary {
border-color: transparent;
background: $primary-color;
&:hover, &:focus, &:active {
background: $primary-color--hover;
}
}
&.btn-inactive {
border-color: transparent;
background: #707070;
color: #fff;
}
}
.relative-div {
position:relative;
}
@-webkit-keyframes spin2 {
from { -webkit-transform: rotate(0deg);}
to { -webkit-transform: rotate(360deg);}
}
@keyframes spin {
from { transform: scale(1) rotate(0deg);}
to { transform: scale(1) rotate(360deg);}
}
.glyphicon-refresh-animate {
@include animation(spin .7s infinite linear);
}
.black-bg {
background-color: black !important;
}
.white-bg {
background-color: white !important;
}
.alert {
padding: 8px 12px;
@include border-radius(2px);
}
.emoji {
width: 1.5em;
height: 1.5em;
display: inline-block;
margin-bottom: 0.25em;
background-size: contain;
}
// Scrollbar Css
::-webkit-scrollbar
{
width: 8px; /* for vertical scrollbars */
height: 8px; /* for horizontal scrollbars */
}
::-webkit-scrollbar-track
{
background: rgba(0, 0, 0, 0.1);
}
::-webkit-scrollbar-thumb
{
@include border-radius(5px);
background: rgba(0, 0, 0, 0.4);
}
body{
scrollbar-face-color: rgba(0, 0, 0, 0.1);
scrollbar-shadow-color: #2D2C4D;
scrollbar-highlight-color:#7D7E94;
scrollbar-3dlight-color: #7D7E94;
scrollbar-darkshadow-color: #2D2C4D;
scrollbar-track-color: rgba(0, 0, 0, 0.1);
scrollbar-arrow-color: #C1C1D1;
}

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

@@ -1,253 +0,0 @@
@charset "UTF-8";
/*!
* Bootstrap Colorpicker
* http://mjolnic.github.io/bootstrap-colorpicker/
*
* Originally written by (c) 2012 Stefan Petre
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0.txt
*
*/
.colorpicker-saturation {
float: left;
width: 100px;
height: 100px;
cursor: crosshair;
background-image: url("../images/bootstrap-colorpicker/saturation.png");
}
.colorpicker-saturation i {
position: absolute;
top: 0;
left: 0;
display: block;
width: 5px;
height: 5px;
margin: -4px 0 0 -4px;
border: 1px solid #000;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
.colorpicker-saturation i b {
display: block;
width: 5px;
height: 5px;
border: 1px solid #fff;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
.colorpicker-hue,
.colorpicker-alpha {
float: left;
width: 15px;
height: 100px;
margin-bottom: 4px;
margin-left: 4px;
cursor: row-resize;
}
.colorpicker-hue i,
.colorpicker-alpha i {
position: absolute;
top: 0;
left: 0;
display: block;
width: 100%;
height: 1px;
margin-top: -1px;
background: #000;
border-top: 1px solid #fff;
}
.colorpicker-hue {
background-image: url("../images/bootstrap-colorpicker/hue.png");
}
.colorpicker-alpha {
display: none;
background-image: url("../images/bootstrap-colorpicker/alpha.png");
}
.colorpicker-saturation,
.colorpicker-hue,
.colorpicker-alpha {
background-size: contain;
}
.colorpicker {
top: 0;
left: 0;
z-index: 2500;
min-width: 130px;
padding: 4px;
margin-top: 1px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
*zoom: 1;
}
.colorpicker:before,
.colorpicker:after {
display: table;
line-height: 0;
content: "";
}
.colorpicker:after {
clear: both;
}
.colorpicker:before {
position: absolute;
top: -7px;
left: 6px;
display: inline-block;
border-right: 7px solid transparent;
border-bottom: 7px solid #ccc;
border-left: 7px solid transparent;
border-bottom-color: rgba(0, 0, 0, 0.2);
content: '';
}
.colorpicker:after {
position: absolute;
top: -6px;
left: 7px;
display: inline-block;
border-right: 6px solid transparent;
border-bottom: 6px solid #ffffff;
border-left: 6px solid transparent;
content: '';
}
.colorpicker div {
position: relative;
}
.colorpicker.colorpicker-with-alpha {
min-width: 140px;
}
.colorpicker.colorpicker-with-alpha .colorpicker-alpha {
display: block;
}
.colorpicker-color {
height: 10px;
margin-top: 5px;
clear: both;
background-image: url("../images/bootstrap-colorpicker/alpha.png");
background-position: 0 100%;
}
.colorpicker-color div {
height: 10px;
}
.colorpicker-selectors {
display: none;
height: 10px;
margin-top: 5px;
clear: both;
}
.colorpicker-selectors i {
float: left;
width: 10px;
height: 10px;
cursor: pointer;
}
.colorpicker-selectors i + i {
margin-left: 3px;
}
.colorpicker-element .input-group-addon i,
.colorpicker-element .add-on i {
display: inline-block;
width: 16px;
height: 16px;
vertical-align: text-top;
cursor: pointer;
}
.colorpicker.colorpicker-inline {
position: relative;
z-index: auto;
display: inline-block;
float: none;
}
.colorpicker.colorpicker-horizontal {
width: 110px;
height: auto;
min-width: 110px;
}
.colorpicker.colorpicker-horizontal .colorpicker-saturation {
margin-bottom: 4px;
}
.colorpicker.colorpicker-horizontal .colorpicker-color {
width: 100px;
}
.colorpicker.colorpicker-horizontal .colorpicker-hue,
.colorpicker.colorpicker-horizontal .colorpicker-alpha {
float: left;
width: 100px;
height: 15px;
margin-bottom: 4px;
margin-left: 0;
cursor: col-resize;
}
.colorpicker.colorpicker-horizontal .colorpicker-hue i,
.colorpicker.colorpicker-horizontal .colorpicker-alpha i {
position: absolute;
top: 0;
left: 0;
display: block;
width: 1px;
height: 15px;
margin-top: 0;
background: #ffffff;
border: none;
}
.colorpicker.colorpicker-horizontal .colorpicker-hue {
background-image: url("../images/bootstrap-colorpicker/hue-horizontal.png");
}
.colorpicker.colorpicker-horizontal .colorpicker-alpha {
background-image: url("../images/bootstrap-colorpicker/alpha-horizontal.png");
}
.colorpicker.colorpicker-hidden {
display: none;
}
.colorpicker.colorpicker-visible {
display: block;
}
.colorpicker-inline.colorpicker-visible {
display: inline-block;
}
.colorpicker-right:before {
right: 6px;
left: auto;
}
.colorpicker-right:after {
right: 7px;
left: auto;
}

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

@@ -1,82 +0,0 @@
@charset "UTF-8";
.inner__wrap {
&.move--left {
.search-bar__container {
display: none;
}
}
&.move--right {
.search-bar__container {
display: none;
}
}
}
.app__content {
height: 100%;
padding-top: 50px;
margin-left: 220px;
position: relative;
background: #fff;
@include display-flex;
@include flex-direction(column);
.channel__wrap & {
padding-top: 0;
}
}
#post-create {
@include flex(0 0 auto);
background: #fff;
width: 100%;
z-index: 3;
}
#archive-link-home {
@include flex(0 0 auto);
cursor: pointer;
padding: 10px 20px;
font-size: 13px;
.fa {
font-size: 11px;
@include opacity(0.7);
}
a {
color: inherit;
}
}
.post-list {
.new-messages-hr {
margin-top: 5px;
margin-bottom: 0px;
border: 0;
border-top: 1px solid #FF8800;
}
.new-messages-text {
margin-top: 2px;
margin-bottom: 5px;
color: #FF8800;
text-align: center;
}
}
.new-messages-hr {
margin-top: 5px;
margin-bottom: 0px;
border: 0;
border-top: 1px solid #FF8800;
}
.new-messages-text {
margin-top: 2px;
margin-bottom: 5px;
color: #FF8800;
text-align: center;
}
.delete-message-text {
margin-top: 10px;
}

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

@@ -1,19 +0,0 @@
@charset "UTF-8";
.docs__page {
line-height: 1.7;
padding-bottom: 20px;
> div {
width: 1170px;
margin: 0 auto;
padding: 0 15px;
max-width: 100%;
}
h1.markdown__heading {
border-bottom: 1px solid #ddd;
padding-bottom: 1rem;
margin: 1em 0 1em;
}
}

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

@@ -1,31 +0,0 @@
@charset "UTF-8";
body {
&.error {
.container-fluid {
display: table;
height: 90%;
}
.error__container {
max-width: 800px;
margin: 0 auto;
display: table-cell;
vertical-align: top;
padding: 5em 0;
text-align: left;
color: #555;
}
.error__icon {
font-size: 4em;
color: #CCC;
}
h2 {
font-weight: 600;
font-size: 1.5em;
margin: 0.8em 0 0.5em;
}
p {
font-size: 1.2em;
}
}
}

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

@@ -1,264 +0,0 @@
@charset "UTF-8";
.preview-container {
position: relative;
margin: 1px 0 10px;
width: 100%;
max-height: 100px;
height: 100px;
white-space: nowrap;
overflow-x: auto;
overflow-y: hidden;
.preview-div {
display: inline-block;
width: 120px;
height: 100px;
margin: 0 0 0 5px;
vertical-align: top;
position: relative;
border: 1px solid #DDD;
@include clearfix;
&:hover .remove-preview:after {
@include opacity(1);
}
&:first-child {
margin-left: 0;
}
.spinner {
position:absolute;
top:50%;
left:50%;
margin-left: -16px;
margin-top: -16px;
width:32px;
height:32px;
}
}
.preview-img {
display: block;
height: auto;
max-width: 100%;
}
.remove-preview {
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
&:after {
background: rgba(0, 0, 0, 0.4);
content: '';
height: 100%;
left: 0;
opacity: 0;
position: absolute;
top: 0;
width: 100%;
@include opacity(0);
}
i {
top: 5px;
right: 5px;
position: absolute;
color: #fff;
cursor: pointer;
z-index: 5;
opacity: inherit;
text-shadow: 0 0px 3px #444;
text-shadow: 0 0px 3px rgba(0, 0, 0, 0.7);
}
}
}
.image-comment {
background-position:left top;
background-repeat:no-repeat;
width:300px;
height:300px;
}
@mixin file-icon($path) {
background: #fff url($path);
background-position: center;
background-repeat: no-repeat;
@include background-size(60px auto);
}
.file-icon {
width: 100%;
height: 100%;
&.audio {
@include file-icon("../images/icons/audio.png");
}
&.video {
@include file-icon("../images/icons/video.png");
}
&.ppt {
@include file-icon("../images/icons/ppt.png");
}
&.generic {
@include file-icon("../images/icons/generic.png");
}
&.code {
@include file-icon("../images/icons/code.png");
}
&.excel {
@include file-icon("../images/icons/excel.png");
}
&.word {
@include file-icon("../images/icons/word.png");
}
&.pdf {
@include file-icon("../images/icons/pdf.png");
}
&.patch {
@include file-icon("../images/icons/patch.png");
}
&.image {
@include file-icon("../images/icons/image.png");
}
}
.post-image__column {
position: relative;
width: 240px;
height: 100px;
float: left;
margin: 5px 10px 5px 0;
border: 1px solid lightgrey;
.post__load {
height: 100%;
width: 100%;
background-size: 20px 20px;
background-repeat: no-repeat;
background-position: center;
}
.post__image {
width: 100%;
height: 100%;
background-color: #FFF;
background-repeat: no-repeat;
overflow: hidden;
position: relative;
text-align: center;
&.small {
background-position: center;
}
&.normal {
background-position: top left;
}
.spinner.file__loading {
position: absolute;
left: 50%;
margin-left: -16px;
top: 50%;
margin-top: -16px;
}
.file__loaded {
max-width: initial;
&.landscape, &.quadrat {
height: 100px;
}
&.portrait {
width: 120px;
}
}
&:hover .file-playback-controls.stop {
@include opacity(1);
}
}
.post-image__thumbnail {
float: left;
width: 50%;
height: 100%;
cursor: zoom-in;
cursor: -webkit-zoom-in;
}
.post-image__details {
float: left;
@include clearfix;
word-break: break-word;
width: 50%;
height: 100%;
background: white;
border-left: 1px solid #ddd;
font-size: 13px;
padding: 7px;
color: #333;
.post-image__name {
margin-bottom: 3px;
display: block;
}
.post-image__download {
display: inline-block;
padding-right: 7px;
cursor: pointer;
@include opacity(0.7);
}
.post-image__type {
@include opacity(0.6);
}
.post-image__size {
margin-left: 4px;
@include opacity(0.6);
}
}
a {
text-decoration: none;
color: grey;
}
}
.file-details__container {
@include display-flex;
display: -ms-flexbox;
.file-details {
width: 320px;
height: 270px;
padding: 14px;
text-align: left;
vertical-align: top;
.file-details__name {
color: #333;
font-size: 16px;
}
.file-details__info {
color: grey;
}
}
.file-details__preview {
width: 320px;
height: 270px;
border-right: 1px solid #ddd;
vertical-align: center;
// helper to center the image icon in the preview window
.file-details__preview-helper {
height: 100%;
display: inline-block;
vertical-align: middle;
}
}
}
.file-playback-controls {
position: absolute;
right: 5px;
bottom: 0;
font-size: 22px;
cursor: pointer;
z-index: 2;
-webkit-transition: opacity 0.6s;
-moz-transition: opacity 0.6s;
-o-transition: opacity 0.6s;
transition: opacity 0.6s;
&.stop {
@include opacity(0);
}
}
.view-image__loading {
background: black;
min-height: 100px;
}

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

@@ -1,51 +0,0 @@
@charset "UTF-8";
.form-horizontal {
.modal-intro {
margin: -10px 0 30px;
}
.form__label {
text-align: left;
padding-right: 3px;
font-weight: 600;
font-size: 1.1em;
&.light {
font-weight: normal;
color: #999;
font-size: 1.05em;
font-style: italic;
padding-top: 2px;
}
}
.input__help {
color: inherit;
margin: 10px 0 0 10px;
word-break: break-word;
@include opacity(0.8);
&.dark {
@include opacity(1);
}
&.error {
color: #a94442;
}
}
.form-control {
font-weight: normal;
}
.form-group {
margin-bottom: 25px;
&.less {
margin-bottom: 10px;
}
}
}
.help-block {
font-size: 0.95em;
margin: 10px 0 0;
color: #999;
}
.disabled-input {
background-color: #dddddd !important;
}

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

@@ -1,8 +0,0 @@
@charset "UTF-8";
.copy-link-confirm {
display: inline-block;
float: left;
padding: 4px 10px;
margin: 1px 0 0 10px;
}

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

@@ -1,320 +0,0 @@
@charset "UTF-8";
#channel-header {
@include flex(0 0 56px);
}
.row {
&.header {
position: relative;
.channel__wrap & {
display: none;
}
}
}
.header-dropdown__icon {
font-size: 11px;
color: inherit;
top: 3px;
}
.channel-header__info {
display: table;
table-layout: fixed;
width: 100%;
> div {
display: block;
white-space: nowrap;
word-break: break-word;
&.dropdown {
max-width: 100%;
padding-right: 1em;
float: left;
.header-dropdown__icon {
color: #777;
}
a {
text-decoration: none;
}
.modal {
white-space: normal;
}
}
&.description {
overflow: hidden;
text-overflow: ellipsis;
margin-top: 2px;
max-height: 45px;
.markdown-inline-img {
max-height: 45px
}
}
&.popover {
white-space: normal;
}
}
}
.channel-intro {
margin: 0 auto 35px;
padding: 0 1em 5px;
max-width: 1000px;
border-bottom: 1px solid lightgrey;
.intro-links {
margin: 0 1.5em 10px 0;
display: inline-block;
.fa {
margin-right: 5px;
}
}
.channel-intro-profile {
margin-top:5px;
margin-left: 63px;
}
.channel-intro-img {
float:left;
img {
@include border-radius(100px);
}
}
.channel-intro__title {
font-weight:600;
font-size: 20px;
margin-bottom: 15px;
}
.channel-intro__content {
background: #f7f7f7;
padding: 10px 15px;
@include border-radius(3px);
}
.channel-intro-text {
margin-top:35px;
}
}
// Team Header in Sidebar
.sidebar--left, .sidebar--menu {
.team__header {
position: relative;
padding: 9px 10px;
@include legacy-pie-clearfix;
&:before {
@include single-transition(all, 0.05s, linear);
content: "";
background: none;
top: 0;
left: 0;
width: 100%;
height: 100%;
position: absolute;
}
&:hover {
&:before {
background: rgba(black, 0.1);
}
.user__name {
color: #fff;
}
.navbar-right {
.dropdown-toggle {
@include opacity(1);
}
}
}
.navbar-right {
font-size: 0.85em;
position: absolute;
top: 10px;
right: 22px;
z-index: 5;
.dropdown-toggle {
@include single-transition(all, 0.1s, linear);
padding: 10px;
@include opacity(0.8);
}
.dropdown-menu {
li a {
padding: 3px 20px;
text-overflow: ellipsis;
overflow: hidden;
}
}
.dropdown__icon {
fill: #fff;
}
}
.settings__link a:hover, a:visited, a:link, a:active {
text-decoration: none;
}
.user__picture {
width: 36px;
height: 36px;
float: left;
@include border-radius(36px);
margin-right: 6px;
}
.header__info {
color: #fff;
@include clearfix;
padding-left: 2px;
z-index: 1;
position: relative;
}
.team__name, .user__name {
display: block;
font-weight: 600;
font-size: 16px;
max-width: 85%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
text-decoration: none;
}
.team__name {
line-height: 22px;
margin-top: -2px;
float: left;
}
.user__name {
@include single-transition(all, 0.1s, linear);
font-size: 14px;
line-height: 18px;
font-weight: 400;
color: #eee;
color: rgba(#fff, 0.8);
}
> .nav {
> li {
> a {
float: right;
background: none !important;
padding: 2px;
&.dropdown-toggle {
line-height: 1.8;
font-size: 1em;
color: #fff;
}
}
}
}
}
.search__clear {
display: none;
}
}
#navbar {
.navbar-default {
.navbar-toggle {
&.menu-toggle {
padding: 0 1em;
}
}
}
}
.channel-header {
width:100%;
border-left: none;
font-size: 14px;
line-height: 56px;
#member_popover {
width: 50px;
color: #999;
cursor: pointer;
.fa {
margin-left: 4px;
font-size: 16px;
}
}
&.alt {
margin: 0;
th {
font-weight: normal !important;
}
td {
border: none;
}
}
th {
text-align: center;
&:first-child {
text-align: left !important;
border-left: none;
width: 100%;
padding-left: 1em;
}
&:last-child {
width: 8.9%;
}
}
td {
padding: 5px 25px 5px !important;
font-size: 13px;
text-align: center !important;
&:first-child {
text-align: left !important;
}
}
.heading {
margin: 0;
color: #555;
font-size: 1.3em;
font-weight: 600;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
display: inline-block;
vertical-align: middle;
margin-right: 4px;
}
.caret {
margin-top: 3px;
}
.more {
color: #81848b;
display: inline-block;
vertical-align: top;
text-transform: capitalize;
font-size: 13px;
}
.disabled {
color: #999;
}
}
.channel-header__navbar {
font-size: 16px;
.heading {
margin-right: 3px;
}
.header-dropdown__icon {
top: 1px;
}
}
.channel-header__links {
font-family: 'Open Sans', sans-serif;
height: 30px;
width: 24px;
line-height: 26px;
margin-right: 9px;
font-size: 22px;
.channel__wrap.move--left & {
position: absolute;
right: -400px;
top: 14px;
}
> a {
color: inherit;
text-decoration: none;
@include opacity(0.6);
@include single-transition(all, 0.1s, ease-in);
&:hover {
@include opacity(1);
}
&:focus {
color: inherit;
}
}
}

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

@@ -1,42 +0,0 @@
@charset "UTF-8";
.loading-screen {
display: table;
width: 100%;
height: 100%;
padding: 60px;
text-align: center;
.loading__content {
display: table-cell;
vertical-align: middle;
font-size: 0;
h3 {
font-size: 16px;
font-weight: 400;
margin: 0 0.2em 0;
display: inline-block;
}
.round {
background-color: #444;
width: 4px;
height: 4px;
display: inline-block;
margin: 0 2px;
opacity: 0.1;
@include border-radius(10px);
@include animation(move 0.75s infinite linear);
}
@for $i from 1 through 3 {
.round-#{$i} {
@include animation-delay(.2s*$i);
}
}
@include keyframes(move) {
from { opacity: 1; }
to { opacity: 0.1; }
}
}
}

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

@@ -1,106 +0,0 @@
@charset "UTF-8";
.markdown__heading {
font-weight: 700;
line-height: 1.5;
}
.markdown__paragraph-inline {
display: inline;
+ .markdown__paragraph-inline {
margin-left: 4px;
}
}
#post-list {
.markdown-inline-img {
-moz-force-broken-image-icon: 1;
max-height: 500px;
height: 500px;
}
}
.post-body--code {
position: relative;
pre {
margin-bottom: 0;
word-break: normal;
overflow: auto;
word-wrap: normal;
}
}
.post-body--code__language {
-webkit-transform: translate3d(0,0,0);
position: absolute;
top: 0;
right: 0;
color: #fff;
background: #21586D;
padding: 4px 10px 5px 10px;
font-size: 13px;
opacity: 0.7;
z-index: 5;
}
.post__body {
hr {
height: 4px;
padding: 0;
margin: 15px 0 16px;
background-color: #e7e7e7;
border: 0 none;
@include opacity(0.2);
}
code {
white-space: pre;
}
.codespan__pre-wrap {
code {
white-space: pre-wrap;
}
}
}
.markdown__table {
background: #fff;
margin: 5px 0 10px;
th, td {
padding: 6px 13px;
border: 1px solid #ddd;
}
tbody tr {
background: #fff;
&:nth-child(2n) {
background-color: #f8f8f8;
}
}
}
blockquote {
border: none;
position: relative;
font-size: 16px;
padding: 10px 10px 10px 38px;
margin-bottom: 0;
&:before {
font-family: FontAwesome;
font-weight: normal;
font-style: normal;
display: inline-block;
text-decoration: inherit;
content: "\f10d";
left: 8px;
top: 5px;
position: absolute;
font-size: 20px;
@include opacity(0.6);
}
}
pre {
border: none;
margin: 5px 0;
color: inherit;
}
code {
background: #fff;
color: inherit;
}

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

@@ -1,61 +0,0 @@
@charset "UTF-8";
.mention {
color: #fff;
background: $primary-color;
position: relative;
z-index: 10;
padding-bottom: 2px;
@include border-radius(3px);
}
.mentions-name {
position:relative;
width:100%;
height:36px;
padding:2px;
z-index:101;
line-height: 36px;
font-size: 13px;
cursor: pointer;
white-space: nowrap;
.mention-align {
@include clearfix;
text-overflow: ellipsis;
width: calc(100% - 50px);
}
}
.mentions-text {
font-color:black;
}
.mention-img {
margin-right: 6px;
height: 32px;
width: 32px;
line-height: 36px;
display: block;
font-size: 20px;
text-align: center;
@include border-radius(32px);
.mention-align {
max-width: 80%;
overflow: hidden;
display: inline-block;
white-space: nowrap;
text-overflow: ellipsis;
}
}
.mention-fullname {
color: grey;
padding-left: 10px;
}
.mention-highlight {
background-color:#fff2bb;
}

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

@@ -1,489 +0,0 @@
@charset "UTF-8";
#channel_members_modal .modal-body {
min-height: 110px;
}
.modal-body {
padding: 20px 15px;
overflow: auto;
}
.more-table {
margin: 0;
table-layout: fixed;
p {
font-size: 0.9em;
overflow: hidden;
text-overflow: ellipsis;
@include opacity(0.8);
margin: 5px 0;
}
.profile-img {
-moz-border-radius: 50px;
-webkit-border-radius: 50px;
border-radius: 50px;
margin-right: 8px;
}
.more-row {
display: flex;
.more-details {
flex-grow: 1;
flex-shrink: 1;
overflow: hidden;
text-overflow: ellipsis;
}
.more-actions {
flex-grow: 0;
flex-shrink: 0;
}
}
.more-name {
font-weight: 600;
font-size: 0.95em;
white-space: nowrap;
}
.more-description {
@include opacity(0.7);
display: block;
white-space: nowrap;
}
tbody {
> tr {
&:hover td {
background: #f7f7f7;
}
&:first-child {
td {
border: none;
}
}
td {
width: 100%;
@include legacy-pie-clearfix;
text-overflow: ellipsis;
padding: 8px 15px;
&.padding--equal {
padding: 8px;
}
}
}
}
}
.modal {
width: 100%;
color: #333;
body.browser--IE & {
.modal-dialog {
@include translateY(0);
}
}
&.image_modal {
.modal-backdrop.in {
@include opacity(0.7);
}
}
.custom-textarea {
color: inherit;
border-color: #ccc;
&:focus {
border-color: #ccc;
box-shadow: none;
}
}
.btn {
font-size: 13px;
&.btn-default {
border: none;
background: transparent;
}
}
.info__label {
font-weight: 600;
text-align: right;
padding-right: 0;
}
.team-member-list {
width: 100%;
}
.remove__member {
float: right;
color: #999;
font-size: 20px;
line-height: 0;
padding: 6px;
&:hover {
color: #E56565;
}
}
.modal-dialog {
max-width: 95%;
margin-left: auto;
margin-right: auto;
}
.modal-push-down {
margin-top: 5%;
}
.modal-next-bar {
position:absolute;
top:0px;
right:0;
height:100%;
}
.modal-header {
border-radius: 0;
background: $primary-color;
color: #FFF;
padding: 15px 15px 11px;
border: 1px solid #ddd;
min-height: 56px;
@include clearfix;
.modal-title {
float: left;
font-size: 17px;
line-height: 27px;
color: #f4f4f4;
.name {
font-weight: 600;
color: #fff;
}
}
.modal-action {
padding: 0;
margin: 0;
}
button.close {
color: #fff;
@include opacity(1);
z-index: 5;
width: 30px;
height: 30px;
line-height: 30px;
@include single-transition(all, 0.25s, ease-in);
position: absolute;
right: 10px;
&:hover {
background: rgba(0, 0, 0, 0.1);
}
span {
font-family: 'Open Sans', sans-serif;
line-height: 10px;
}
}
.btn {
&.btn-primary {
float: right;
margin: -4px 25px 0 0;
position: relative;
i {
margin-right: 5px;
}
}
}
}
.no-channel-message {
text-align: center;
padding: 2em 1em;
.primary-message {
font-size: 1.25em;
}
.secondary-message {
@include opacity(0.8);
margin: 1em 0 0;
}
}
.modal-content {
border-radius: 0;
box-shadow: none;
}
.modal-chevron-icon {
top:50%;
font-size:120%;
}
.modal-prev-bar {
position:absolute;
top:0px;
left:0;
height:100%;
}
&#more_channels {
.modal-body {
padding: 0;
}
}
.modal-image {
position:relative;
width:100%;
height: 100%;
margin: 0 auto;
max-width: 100%;
.modal-body {
@include clearfix;
height: 100%;
display: table;
table-layout: fixed;
width: 100%;
max-height: 100%;
}
.image-wrapper {
position: relative;
max-width: 90%;
@include border-radius(3px);
display: table-cell;
vertical-align: middle;
text-align: center;
width: 100%;
&:hover {
@include border-radius(3px 3px 0 0);
}
&.default {
width: 100%;
height: 80%;
}
audio, canvas, progress, video {
max-width: 100%;
height: auto;
display: block;
}
.modal-close {
background: url("../images/close.png") no-repeat;
@include background-size(100% 100%);
width: 37px;
height: 37px;
position: absolute;
right: -13px;
top: -13px;
@include opacity(0);
-webkit-transition: opacity 0.6s;
-moz-transition: opacity 0.6s;
-o-transition: opacity 0.6s;
transition: opacity 0.6s;
cursor: pointer;
z-index: 9999;
&.modal-close--show {
@include opacity(1);
}
}
> div {
min-height: 100px;
min-width: 320px;
background: #FFF;
display: inline-block;
position: relative;
&:hover .file-playback-controls.stop {
@include opacity(1);
}
}
img {
max-width: 100%;
max-height: 100%;
}
.spinner.file__loading {
z-index: 2;
position: absolute;
left: 50%;
margin-left: -16px;
top: 50%;
margin-top: -16px;
}
}
.modal-content{
box-shadow: none;
background: rgba(0, 0, 0, 0);
width: 100%;
height: 100%;
padding: 0;
border: none;
}
.image-body {
vertical-align: middle;
display: table-cell;
text-align: center;
height: 100%;
padding: 0;
position: relative;
overflow: visible;
}
.image-control {
width: 50px;
height: 45px;
float: left;
background: url(../images/prev.png) left no-repeat;
top: 50%;
position: relative;
margin-top: -23px;
&.image-next {
float: right;
background: url(../images/next.png) left no-repeat;
}
}
.loader-image {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
}
.loader-percent {
position: absolute;
top: 55px;
bottom: 0;
left: 0;
right: 0;
margin: auto;
color:grey;
height:20px;
}
.modal-button-bar {
position:absolute;
bottom:-40px;
left:0px;
right:0px;
background-color: #222;
@include border-radius(0 0 3px 3px);
@include opacity(0);
-webkit-transition: opacity 0.6s;
-moz-transition: opacity 0.6s;
-o-transition: opacity 0.6s;
transition: opacity 0.6s;
line-height: 40px;
padding: 0 10px;
&.footer--show {
@include opacity(1);
}
.image-links {
a, span {
float: right;
}
}
.text {
vertical-align:middle;
bottom:0;
color:white;
margin-left:5px;
}
.public-link {
margin-right: 5px;
}
}
}
}
// Invite New Member
.invite {
margin-right: 40px;
}
.row--invite {
margin-right: 40px;
@include clearfix;
.col-sm-6 {
padding: 0 0 0 15px;
&:first-child {
padding-left: 0;
}
}
}
.more-modal {
.user-list {
overflow-y: auto;
overflow-x: hidden;
margin-top: 10px;
position: relative;
}
.table {
margin-top: 10px;
}
.modal-body {
padding: 10px 0 20px;
overflow-x: hidden;
}
.filter-row {
margin-top: 10px;
@include clearfix;
}
.member-count {
margin-top: 5px;
float: right;
@include opacity(0.8);
}
.more-purpose {
@include opacity(0.7);
}
}
.modal-body.edit-modal-body {
overflow: visible;
.suggestion-content {
max-height: 150px;
}
}
.user-list {
display: flex;
flex-direction: column;
.profile-img {
width: 38px;
height: 38px;
flex-grow: 0;
flex-shrink: 0;
}
.user-list-item__details {
flex-grow: 1;
flex-shrink: 1;
overflow:hidden;
text-overflow: ellipsis;
.more-name {
white-space: nowrap;
}
.more-description {
white-space: nowrap;
}
}
.user-list-item__actions {
flex-grow: 0;
flex-shrink: 0;
}
}
.filtered-user-list {
display: flex;
flex-direction: column;
.filter-row {
flex-grow: 0;
flex-shrink: 0;
}
.user-list {
flex-grow: 1;
flex-shrink: 1;
}
}

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

@@ -1,112 +0,0 @@
@charset "UTF-8";
#navbar{
input {
margin: 0px 5px 0px 2px;
}
.navbar-default {
position: absolute;
border: none;
min-height: 45px;
background: $primary-color;
.navbar-nav {
> li {
> a {
height: 45px;
padding: 0 1.3em;
i {
line-height: 45px;
}
}
}
}
.navbar-toggle {
width: 43px;
float: left;
border-color: transparent;
border-radius: 0;
margin: 0;
padding: 0 10px;
line-height: 48px;
height: 44px;
z-index: 5;
fill: #fff;
.icon-bar {
background: #fff;
width: 21px;
}
.glyphicon-search {
top: -1px;
}
.icon--white {
color: #fff;
}
&:hover, &:active, &:focus {
background: inherit;
}
}
.navbar-brand {
padding: 0 0.5em;
height: 45px;
line-height: 45px;
float: none;
font-size: 16px;
.heading {
margin-right: 3px;
font-weight: 600;
color: #fff;
}
.header-dropdown__icon {
top: 1px;
}
.dropdown-toggle {
color: #fff;
}
.description {
display: inline-block;
margin-right: 0.5em;
color: #fff;
&.info-popover {
width: 19px;
height: 19px;
background: url("../images/info__icon.png");
@include background-size(100% 100%);
vertical-align: middle;
top: -1px;
position: relative;
cursor: pointer;
}
}
}
}
.sidebar-channel {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
span {
white-space: nowrap;
margin-left: 2px;
}
}
.channel-create-btn {
margin-right: 15px;
}
.more-channel-table {
width: 100%;
border: 1px solid #dbdbdc;
td {
padding: 7px;
}
button {
width: 110px;
}
}
}
.badge-notify {
background: red;
position: absolute;
left: 4px;
top: 3px;
z-index: 100;
}

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

@@ -1,33 +0,0 @@
@charset "UTF-8";
.oauth-prompt {
background: #fff;
border: 1px solid #ddd;
padding: 1em 2em 0;
margin: 50px auto;
max-width: 90%;
width: 600px;
.prompt__heading {
font-size: em(20px);
line-height: normal;
margin: 1em 0;
display: table;
width: 100%;
> div {
display: table-cell;
vertical-align: top;
}
img {
margin-right: 15px;
}
}
.prompt__allow {
margin: 1em 0;
font-size: em(24px);
}
.prompt__buttons {
text-align: right;
border-top: 1px solid #ddd;
padding: 1.5em 0;
}
}

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

@@ -1,122 +0,0 @@
@charset "UTF-8";
.ps-container {
overflow: hidden !important; }
.ps-container.ps-active-x > .ps-scrollbar-x-rail, .ps-container.ps-active-y > .ps-scrollbar-y-rail {
display: block; }
.ps-container.ps-in-scrolling {
}
.ps-container.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail {
background-color: #eee;
opacity: 0.9;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";
filter: alpha(opacity=90); }
.ps-container.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail > .ps-scrollbar-x {
background-color: #999; }
.ps-container.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail {
background-color: #eee;
opacity: 0.9;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";
filter: alpha(opacity=90); }
.ps-container.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail > .ps-scrollbar-y {
background-color: #999; }
.ps-container > .ps-scrollbar-x-rail {
display: none;
position: absolute;
/* please don't change 'position' */
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
-ms-border-radius: 4px;
border-radius: 4px;
opacity: 0;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
-webkit-transition: background-color .2s linear, opacity .2s linear;
-moz-transition: background-color .2s linear, opacity .2s linear;
-o-transition: background-color .2s linear, opacity .2s linear;
transition: background-color .2s linear, opacity .2s linear;
bottom: 3px;
/* there must be 'bottom' for ps-scrollbar-x-rail */
height: 8px; }
.ps-container > .ps-scrollbar-x-rail > .ps-scrollbar-x {
position: absolute;
/* please don't change 'position' */
background-color: #aaa;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
-ms-border-radius: 4px;
border-radius: 4px;
-webkit-transition: background-color .2s linear;
-moz-transition: background-color .2s linear;
-o-transition: background-color .2s linear;
transition: background-color .2s linear;
bottom: 0;
/* there must be 'bottom' for ps-scrollbar-x */
height: 8px; }
.ps-container > .ps-scrollbar-y-rail {
display: none;
position: absolute;
/* please don't change 'position' */
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
-ms-border-radius: 4px;
border-radius: 4px;
opacity: 0;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
-webkit-transition: background-color .2s linear, opacity .2s linear;
-moz-transition: background-color .2s linear, opacity .2s linear;
-o-transition: background-color .2s linear, opacity .2s linear;
transition: background-color .2s linear, opacity .2s linear;
right: 3px;
/* there must be 'right' for ps-scrollbar-y-rail */
width: 8px; }
.ps-container > .ps-scrollbar-y-rail > .ps-scrollbar-y {
position: absolute;
/* please don't change 'position' */
background-color: #aaa;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
-ms-border-radius: 4px;
border-radius: 4px;
-webkit-transition: background-color .2s linear;
-moz-transition: background-color .2s linear;
-o-transition: background-color .2s linear;
transition: background-color .2s linear;
right: 0;
/* there must be 'right' for ps-scrollbar-y */
width: 8px; }
.ps-container:hover.ps-in-scrolling {
}
.ps-container:hover.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail {
background-color: #eee;
opacity: 0.9;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";
filter: alpha(opacity=90); }
.ps-container:hover.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail > .ps-scrollbar-x {
background-color: #999; }
.ps-container:hover.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail {
background-color: #eee;
opacity: 0.9;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";
filter: alpha(opacity=90); }
.ps-container:hover.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail > .ps-scrollbar-y {
background-color: #999; }
.ps-container:hover > .ps-scrollbar-x-rail, .ps-container:hover > .ps-scrollbar-y-rail {
opacity: 0.6;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
filter: alpha(opacity=60); }
.ps-container:hover > .ps-scrollbar-x-rail:hover {
background-color: #eee;
opacity: 0.9;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";
filter: alpha(opacity=90); }
.ps-container:hover > .ps-scrollbar-x-rail:hover > .ps-scrollbar-x {
background-color: #999; }
.ps-container:hover > .ps-scrollbar-y-rail:hover {
background-color: #eee;
opacity: 0.9;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";
filter: alpha(opacity=90); }
.ps-container:hover > .ps-scrollbar-y-rail:hover > .ps-scrollbar-y {
background-color: #999; }

Разница между файлами не показана из-за своего большого размера Загрузить разницу

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

@@ -1,159 +0,0 @@
@charset "UTF-8";
.post-right__container {
@include display-flex;
@include flex-direction(column);
height: 100%;
.post-right-root-message {
padding: 1em 1em 0;
}
.post-right-comments-container {
position: relative;
.post {
&:first-child {
padding-top: 15px;
}
}
}
.help_format_text {
bottom: -63px;
right: auto;
}
.post {
&.post--root {
padding-bottom: 1.2em;
border-bottom: 1px solid #ddd;
.post__body {
background: transparent !important;
}
}
.post__header {
.col__reply {
top: 0;
text-align: right;
}
}
.post__body {
width: 100%;
}
}
hr {
margin-bottom: 0;
border: none;
}
.post-create__container {
width: 100%;
margin-top: 10px;
.textarea-wrapper {
min-height: 100px;
}
.btn {
margin-bottom: 10px;
}
.custom-textarea {
min-height: 100px;
}
.msg-typing {
@include opacity(0.7);
float: left;
margin-top: 3px;
font-size: 13px;
line-height: 20px;
min-width: 1px;
display: block;
height: 20px;
max-width: 230px;
}
.post-create-footer {
width: 100%;
padding: 5px 0 10px;
}
.post-right-comments-upload-in-progress {
padding: 6px 0;
color: #a8adb7;
margin-right: 10px;
}
}
}
.post-right-header {
font-size: 1em;
text-transform: uppercase;
color: #999;
font-weight: 400;
color: #888;
height: 39px;
padding: 10px 10px 0 15px;
border-bottom: $border-gray;
}
.post-right-root-container {
padding: 5px 10px;
border-bottom: $border-gray;
}
.post-right-root-container {
ul {
padding-left: 0;
margin-bottom: 2px;
}
}
.post-right-channel__name {
font-weight: 600;
margin: 0 0 10px 0;
}
.post-right-root-container li {
display: inline;
list-style-type: none;
padding-right: 3px;
}
.post-right-root-time {
color: #a8adb7;
}
.post-right-create-comment-container {
padding: 5px;
margin-bottom: 18px;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
}
.post-right__scroll {
position: relative;
overflow: auto;
-webkit-overflow-scrolling: touch;
@include flex(1 1 auto);
.preview-container {
margin-top: 5px;
}
}
.post-right-comment-time {
color: #a8adb7;
}

Двоичные данные
web/sass-files/sass/partials/_print.scss

Двоичный файл не отображается.

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

@@ -1,160 +0,0 @@
@charset "UTF-8";
#channel-header .search-bar__container {
padding: 0 9px 0 3px;
}
.search-bar__container {
padding: 12px 8px 0 0;
@include flex(0 0 56px);
.sidebar--right.move--left & {
padding-right: 42px;
}
}
.search__clear {
display: none;
position: absolute;
right: 0;
line-height: 45px;
margin-right: 13px;
@include single-transition(all, 0.2s, linear);
@include translateX(60px);
z-index: 5;
cursor: pointer;
}
.search-item-snippet {
@include clearfix;
text-overflow: ellipsis;
}
.sidebar__collapse {
cursor: pointer;
z-index: 5;
fill: #FFF;
position: absolute;
left: 0;
font-size: 35px;
width: 49px;
@include single-transition(all, 0.2s, linear);
@include translateX(0px);
text-align: center;
padding-left: 1px;
line-height: 40px;
display: none;
}
.search-item-snippet {
ul, ol {
padding-left: 20px;
}
}
.sidebar__search-icon {
position: absolute;
top: 15px;
margin-left: 10px;
font-size: 14px;
@include opacity(0.5);
display: none;
color: #777;
}
.search__form {
.search-bar__container & {
margin: 0;
border: 1px solid #DDD;
@include border-radius(2px);
width: 300px;
}
.sidebar--right & {
width: 100%;
}
.search-bar {
height: 40px;
padding-right: 30px;
box-shadow: none;
.search-bar__container & {
height: 30px;
border: none;
}
}
.glyphicon-refresh-animate {
top: 27px;
position: absolute;
right: 27px;
color: #999;
.search-bar__container & {
right: 7px;
top: 8px;
}
}
}
.search-items-container {
position: relative;
overflow: auto;
-webkit-overflow-scrolling: touch;
@include flex(1 1 auto);
height: calc(100% - 56px);
padding-top: 10px;
}
.search-results-header {
font-size: 1em;
text-transform: uppercase;
color: #999;
font-weight: 400;
color: #888;
height: 44px;
line-height: 44px;
padding: 0 10px 0 10px;
border-bottom: $border-gray;
}
.search-item__container {
.post {
padding: 0 1em 1em;
margin: 0;
&:first-child {
border: none;
}
.search-channel__name {
font-weight: 600;
margin: 0 0 10px 0;
}
}
}
.search-item__jump {
position: absolute;
right: 0;
top: 0px;
font-size: 13px;
@include opacity(0.8);
&:hover {
@include opacity(1);
}
}
.search-item__comment {
position: absolute;
right: 0;
margin-right: 35px;
top: 0;
}
.search-item-time {
@include opacity(0.7);
font-size: 0.9em;
}
.search-results-none {
padding: 10px;
}
.search-highlight {
background-color: #FFF2BB;
}

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

@@ -1,87 +0,0 @@
@charset "UTF-8";
.team_statistics {
.total-count {
margin: 1em 0;
text-align: center;
background: #fff;
border: 1px solid #ddd;
width: 100%;
@include border-radius(3px);
.title {
font-weight: 400;
padding: 7px 10px;
border-bottom: 1px solid #ddd;
text-align: left;
font-size: 13px;
.fa {
float: right;
margin: 0px 0 0;
color: #555;
font-size: 16px;
}
}
.content {
font-size: 30px;
font-weight: 600;
color: #555;
padding: 0.3em 0 0.35em;
overflow: auto;
}
}
.total-count--day {
width: 760px;
height: 275px;
border: 1px solid #ddd;
padding: 5px 10px 10px 10px;
margin: 10px 10px 10px 10px;
background: #fff;
clear: both;
> div {
font-size: 18px;
font-weight: 300;
}
}
.recent-active-users {
table {
width: 100%;
table-layout: fixed;
}
.content {
max-height: 400px;
overflow: auto;
padding: 0;
}
tr {
&:first-child {
td {
border-top: none;
}
}
td {
font-weight: 400;
white-space: nowrap;
text-overflow: ellipsis;
font-size: 13px;
border-left: 1px solid #ddd;
border-top: 1px solid #ddd;
padding: 5px 5px 6px;
@include clearfix;
&:first-child {
border-left: none;
}
}
}
}
}

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

@@ -1,67 +0,0 @@
@charset "UTF-8";
.suggestion-list {
width: 100%;
z-index: 100;
@extend %popover-box-shadow;
}
.suggestion-list--top {
position: absolute;
}
.suggestion-content {
width: 100%;
max-height: 292px;
background-color: #fff;
border: $border-gray;
overflow-x: hidden;
overflow-y: scroll;
}
.suggestion-content--top {
position: absolute;
bottom: 0;
}
.suggestion--selected {
// set by theme code
}
.command-name {
position: relative;
width: 100%;
line-height: 24px;
padding: 5px 10px 8px;
z-index: 101;
font-size: 0.95em;
border-bottom: 1px solid #ddd;
.command__desc {
margin-left: 5px;
@include opacity(0.5);
line-height: normal;
}
}
.command-desc {
color: #a7a8ab;
}
.emoticon-suggestion {
@include clearfix;
width: 100%;
height: 30px;
cursor: pointer;
font-size: 13px;
line-height: 30px;
}
.emoticon-suggestion__image {
width: 20px;
height: 20px;
margin: 6px 6px 0 5px;
padding: 0;
text-align: center;
vertical-align: top;
}

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

@@ -1,7 +0,0 @@
@charset "UTF-8";
#recentMentionsTooltip {
.tooltip-arrow {
margin-left: 10px;
}
}

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

@@ -1,16 +0,0 @@
@charset "UTF-8";
@function em($pixels, $context: 14px) {
@return #{$pixels/$context}em
}
// Color Variables
$primary-color: #2389D7;
$primary-color--hover: darken(#2389D7, 5%);
$body-bg: #e9e9e9;
$header-bg: #f9f9f9;
$border-gray: 1px solid #ddd;
%popover-box-shadow {
@include box-shadow(rgba(black, 0.175) 1px -3px 12px);
}

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

@@ -1,66 +0,0 @@
@charset "UTF-8";
.video-div {
position:relative;
max-width: 480px;
margin-bottom: 8px;
.video-thumbnail {
max-width: 100%;
height: auto;
}
.block {
background-color:rgba(0,0,0,0.5);
border-radius:10px;
position:absolute;
top: 50%;
left: 50%;
margin-top: -100px;
width: 200px;
margin: -75px 0 0 -100px;
height: 150px;
}
}
.video-type {
@include opacity(0.8);
font-size:15px;
margin:0px;
padding:0px;
}
.video-title {
font-size:15px;
margin-top:3px;
}
.play-button {
width:100px;
height:100px;
position:absolute;
top:26px;
right:51px;
border:4px solid;
border-color:rgba(255,255,255,0.4);
border-radius:14px;
}
.play-button span {
position:absolute;
top:10px;
left:20px;
width:0;
height:0;
border-top:36px solid transparent;
border-bottom:36px solid transparent;
border-left:60px solid rgba(255,255,255,0.4);
}
.img-div {
-moz-force-broken-image-icon: 1;
position:relative;
max-width: 450px;
max-height: 500px;
margin-bottom: 8px;
border-radius:5px;
&.placeholder {
height: 500px;
}
}

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

@@ -1,15 +0,0 @@
@charset "UTF-8";
.welcome-info {
max-width: 550px;
margin-top: 50px;
margin-left: 25px;
h1 {
font-size: 200%;
margin-bottom: 20px;
}
p {
font-size: 125%;
margin-top: 12px;
}
}

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

@@ -1,59 +0,0 @@
@charset "UTF-8";
/* Welcome to Compass.
* In this file you should write your main styles. (or centralize your imports)
* Import this file using the following HTML or equivalent:
* <link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet" type="text/css" /> */
// Base Css
@import "compass/utilities";
@import "compass/css3";
@import "partials/variables";
@import "partials/perfect-scrollbar";
@import "partials/font-awesome";
@import "partials/base";
@import "partials/colorpicker";
// Channel Css
@import "partials/headers";
@import "partials/footer";
@import "partials/content";
@import "partials/popover";
@import "partials/post";
@import "partials/post_right";
@import "partials/navbar";
@import "partials/search";
@import "partials/sidebar--left";
@import "partials/sidebar--right";
@import "partials/sidebar--menu";
@import "partials/admin-console";
@import "partials/signup";
@import "partials/files";
@import "partials/videos";
@import "partials/settings";
@import "partials/modal";
@import "partials/forms";
@import "partials/mentions";
@import "partials/error";
@import "partials/error-bar";
@import "partials/loading";
@import "partials/get-link";
@import "partials/markdown";
@import "partials/tutorial";
@import "partials/statistics";
@import "partials/suggestion_list";
// Elements
@import "partials/tooltips";
// Responsive Css
@import "partials/responsive";
// Docs Css
@import "partials/docs";
// Standalone Css
@import "partials/oauth";
// Print
@import "partials/print";

6800
web/static/css/bootstrap-3.3.5.css поставляемый

Разница между файлами не показана из-за своего большого размера Загрузить разницу

5
web/static/css/bootstrap-3.3.5.min.css поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

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

@@ -1,9 +0,0 @@
/*!
* Bootstrap Colorpicker
* http://mjolnic.github.io/bootstrap-colorpicker/
*
* Originally written by (c) 2012 Stefan Petre
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0.txt
*
*/.colorpicker-saturation{float:left;width:100px;height:100px;cursor:crosshair;background-image:url("../images/bootstrap-colorpicker/saturation.png")}.colorpicker-saturation i{position:absolute;top:0;left:0;display:block;width:5px;height:5px;margin:-4px 0 0 -4px;border:1px solid #000;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.colorpicker-saturation i b{display:block;width:5px;height:5px;border:1px solid #fff;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.colorpicker-hue,.colorpicker-alpha{float:left;width:15px;height:100px;margin-bottom:4px;margin-left:4px;cursor:row-resize}.colorpicker-hue i,.colorpicker-alpha i{position:absolute;top:0;left:0;display:block;width:100%;height:1px;margin-top:-1px;background:#000;border-top:1px solid #fff}.colorpicker-hue{background-image:url("../images/bootstrap-colorpicker/hue.png")}.colorpicker-alpha{display:none;background-image:url("../images/bootstrap-colorpicker/alpha.png")}.colorpicker-saturation,.colorpicker-hue,.colorpicker-alpha{background-size:contain}.colorpicker{top:0;left:0;z-index:2500;min-width:130px;padding:4px;margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1}.colorpicker:before,.colorpicker:after{display:table;line-height:0;content:""}.colorpicker:after{clear:both}.colorpicker:before{position:absolute;top:-7px;left:6px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.colorpicker:after{position:absolute;top:-6px;left:7px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.colorpicker div{position:relative}.colorpicker.colorpicker-with-alpha{min-width:140px}.colorpicker.colorpicker-with-alpha .colorpicker-alpha{display:block}.colorpicker-color{height:10px;margin-top:5px;clear:both;background-image:url("../images/bootstrap-colorpicker/alpha.png");background-position:0 100%}.colorpicker-color div{height:10px}.colorpicker-selectors{display:none;height:10px;margin-top:5px;clear:both}.colorpicker-selectors i{float:left;width:10px;height:10px;cursor:pointer}.colorpicker-selectors i+i{margin-left:3px}.colorpicker-element .input-group-addon i,.colorpicker-element .add-on i{display:inline-block;width:16px;height:16px;vertical-align:text-top;cursor:pointer}.colorpicker.colorpicker-inline{position:relative;z-index:auto;display:inline-block;float:none}.colorpicker.colorpicker-horizontal{width:110px;height:auto;min-width:110px}.colorpicker.colorpicker-horizontal .colorpicker-saturation{margin-bottom:4px}.colorpicker.colorpicker-horizontal .colorpicker-color{width:100px}.colorpicker.colorpicker-horizontal .colorpicker-hue,.colorpicker.colorpicker-horizontal .colorpicker-alpha{float:left;width:100px;height:15px;margin-bottom:4px;margin-left:0;cursor:col-resize}.colorpicker.colorpicker-horizontal .colorpicker-hue i,.colorpicker.colorpicker-horizontal .colorpicker-alpha i{position:absolute;top:0;left:0;display:block;width:1px;height:15px;margin-top:0;background:#fff;border:0}.colorpicker.colorpicker-horizontal .colorpicker-hue{background-image:url("../images/bootstrap-colorpicker/hue-horizontal.png")}.colorpicker.colorpicker-horizontal .colorpicker-alpha{background-image:url("../images/bootstrap-colorpicker/alpha-horizontal.png")}.colorpicker.colorpicker-hidden{display:none}.colorpicker.colorpicker-visible{display:block}.colorpicker-inline.colorpicker-visible{display:inline-block}.colorpicker-right:before{right:6px;left:auto}.colorpicker-right:after{right:7px;left:auto}

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

@@ -1,680 +0,0 @@
/* open-sans-300 - latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
src: url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-300.eot'); /* IE9 Compat Modes */
src: local('Open Sans Light'), local('OpenSans-Light'),
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-300.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-300.woff2') format('woff2'), /* Super Modern Browsers */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-300.woff') format('woff'), /* Modern Browsers */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-300.ttf') format('truetype'), /* Safari, Android, iOS */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-300.svg#OpenSans') format('svg'); /* Legacy iOS */
}
/* open-sans-300italic - latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 300;
src: url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-300italic.eot'); /* IE9 Compat Modes */
src: local('Open Sans Light Italic'), local('OpenSansLight-Italic'),
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-300italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-300italic.woff2') format('woff2'), /* Super Modern Browsers */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-300italic.woff') format('woff'), /* Modern Browsers */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-300italic.ttf') format('truetype'), /* Safari, Android, iOS */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-300italic.svg#OpenSans') format('svg'); /* Legacy iOS */
}
/* open-sans-regular - latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-regular.eot'); /* IE9 Compat Modes */
src: local('Open Sans'), local('OpenSans'),
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-regular.woff2') format('woff2'), /* Super Modern Browsers */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-regular.woff') format('woff'), /* Modern Browsers */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-regular.ttf') format('truetype'), /* Safari, Android, iOS */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-regular.svg#OpenSans') format('svg'); /* Legacy iOS */
}
/* open-sans-italic - latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
src: url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-italic.eot'); /* IE9 Compat Modes */
src: local('Open Sans Italic'), local('OpenSans-Italic'),
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-italic.woff2') format('woff2'), /* Super Modern Browsers */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-italic.woff') format('woff'), /* Modern Browsers */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-italic.ttf') format('truetype'), /* Safari, Android, iOS */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-italic.svg#OpenSans') format('svg'); /* Legacy iOS */
}
/* open-sans-600 - latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
src: url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-600.eot'); /* IE9 Compat Modes */
src: local('Open Sans Semibold'), local('OpenSans-Semibold'),
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-600.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-600.woff2') format('woff2'), /* Super Modern Browsers */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-600.woff') format('woff'), /* Modern Browsers */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-600.ttf') format('truetype'), /* Safari, Android, iOS */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-600.svg#OpenSans') format('svg'); /* Legacy iOS */
}
/* open-sans-600italic - latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 600;
src: url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-600italic.eot'); /* IE9 Compat Modes */
src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'),
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-600italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-600italic.woff2') format('woff2'), /* Super Modern Browsers */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-600italic.woff') format('woff'), /* Modern Browsers */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-600italic.ttf') format('truetype'), /* Safari, Android, iOS */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-600italic.svg#OpenSans') format('svg'); /* Legacy iOS */
}
/* open-sans-700 - latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 700;
src: url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-700.eot'); /* IE9 Compat Modes */
src: local('Open Sans Bold'), local('OpenSans-Bold'),
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-700.woff2') format('woff2'), /* Super Modern Browsers */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-700.woff') format('woff'), /* Modern Browsers */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-700.ttf') format('truetype'), /* Safari, Android, iOS */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-700.svg#OpenSans') format('svg'); /* Legacy iOS */
}
/* open-sans-700italic - latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 700;
src: url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-700italic.eot'); /* IE9 Compat Modes */
src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'),
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-700italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-700italic.woff2') format('woff2'), /* Super Modern Browsers */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-700italic.woff') format('woff'), /* Modern Browsers */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-700italic.ttf') format('truetype'), /* Safari, Android, iOS */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-700italic.svg#OpenSans') format('svg'); /* Legacy iOS */
}
/* open-sans-800 - latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 800;
src: url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-800.eot'); /* IE9 Compat Modes */
src: local('Open Sans Extrabold'), local('OpenSans-Extrabold'),
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-800.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-800.woff2') format('woff2'), /* Super Modern Browsers */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-800.woff') format('woff'), /* Modern Browsers */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-800.ttf') format('truetype'), /* Safari, Android, iOS */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-800.svg#OpenSans') format('svg'); /* Legacy iOS */
}
/* open-sans-800italic - latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 800;
src: url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-800italic.eot'); /* IE9 Compat Modes */
src: local('Open Sans Extrabold Italic'), local('OpenSans-ExtraboldItalic'),
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-800italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-800italic.woff2') format('woff2'), /* Super Modern Browsers */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-800italic.woff') format('woff'), /* Modern Browsers */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-800italic.ttf') format('truetype'), /* Safari, Android, iOS */
url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-800italic.svg#OpenSans') format('svg'); /* Legacy iOS */
}
/* Lato */
@font-face {
font-family: 'Lato';
font-weight: 400;
font-style: normal;
src: url('/static/fonts/Lato-regular.eot');
src: local('Lato Regular'), local('Lato-regular'),
url('/static/fonts/Lato-regular.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/Lato-regular.woff2') format('woff2'),
url('/static/fonts/Lato-regular.woff') format('woff'),
url('/static/fonts/Lato-regular.ttf') format('truetype'),
url('/static/fonts/Lato-regular.svg#Lato') format('svg');
}
/* Lato Italic */
@font-face {
font-family: 'Lato';
font-weight: 400;
font-style: italic;
src: url('/static/fonts/lato-italic-webfont.eot');
src: url('/static/fonts/lato-italic-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/lato-italic-webfont.woff2') format('woff2'),
url('/static/fonts/lato-italic-webfont.woff') format('woff'),
url('/static/fonts/lato-italic-webfont.ttf') format('truetype'),
url('/static/fonts/lato-italic-webfont.svg#latoitalic') format('svg');
}
/* Lato Bold */
@font-face {
font-family: 'Lato';
font-style: normal;
font-weight: 700;
src: url('/static/fonts/lato-bold-webfont.eot');
src: url('/static/fonts/lato-bold-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/lato-bold-webfont.woff2') format('woff2'),
url('/static/fonts/lato-bold-webfont.woff') format('woff'),
url('/static/fonts/lato-bold-webfont.ttf') format('truetype'),
url('/static/fonts/lato-bold-webfont.svg#latobold') format('svg');
}
/* Lato Bold Italic*/
@font-face {
font-family: 'Lato';
font-style: italic;
font-weight: 700;
src: url('/static/fonts/lato-bolditalic-webfont.eot');
src: url('/static/fonts/lato-bolditalic-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/lato-bolditalic-webfont.woff2') format('woff2'),
url('/static/fonts/lato-bolditalic-webfont.woff') format('woff'),
url('/static/fonts/lato-bolditalic-webfont.ttf') format('truetype'),
url('/static/fonts/lato-bolditalic-webfont.svg#latobold_italic') format('svg');
}
/* Droid Serif */
@font-face {
font-family: 'Droid Serif';
font-weight: 400;
font-style: normal;
src: url('/static/fonts/Droid-Serif-regular.eot');
src: local('Droid Serif'), local('Droid-Serif-regular'),
url('/static/fonts/Droid-Serif-regular.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/Droid-Serif-regular.woff2') format('woff2'),
url('/static/fonts/Droid-Serif-regular.woff') format('woff'),
url('/static/fonts/Droid-Serif-regular.ttf') format('truetype'),
url('/static/fonts/Droid-Serif-regular.svg#DroidSerif') format('svg');
}
/* Droid Serif Italic */
@font-face {
font-family: 'Droid Serif';
font-weight: 400;
font-style: italic;
src: url('/static/fonts/droidserif-italic-webfont.eot');
src: url('/static/fonts/droidserif-italic-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/droidserif-italic-webfont.woff2') format('woff2'),
url('/static/fonts/droidserif-italic-webfont.woff') format('woff'),
url('/static/fonts/droidserif-italic-webfont.ttf') format('truetype'),
url('/static/fonts/droidserif-italic-webfont.svg#droid_serifitalic') format('svg');
}
/* Droid Serif Bold */
@font-face {
font-family: 'Droid Serif';
font-weight: 700;
font-style: normal;
src: url('/static/fonts/droidserif-bold-webfont.eot');
src: url('/static/fonts/droidserif-bold-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/droidserif-bold-webfont.woff2') format('woff2'),
url('/static/fonts/droidserif-bold-webfont.woff') format('woff'),
url('/static/fonts/droidserif-bold-webfont.ttf') format('truetype'),
url('/static/fonts/droidserif-bold-webfont.svg#droid_serifbold') format('svg');
}
/* Droid Serif Bold Italic */
@font-face {
font-family: 'Droid Serif';
font-weight: 700;
font-style: italic;
src: url('/static/fonts/droidserif-bolditalic-webfont.eot');
src: url('/static/fonts/droidserif-bolditalic-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/droidserif-bolditalic-webfont.woff2') format('woff2'),
url('/static/fonts/droidserif-bolditalic-webfont.woff') format('woff'),
url('/static/fonts/droidserif-bolditalic-webfont.ttf') format('truetype'),
url('/static/fonts/droidserif-bolditalic-webfont.svg#droid_serifbold_italic') format('svg');
}
/* Lora */
@font-face {
font-family: 'Lora';
font-weight: 400;
font-style: normal;
src: url('/static/fonts/Lora-regular.eot');
src: local('Lora'), local('Lora-regular'),
url('/static/fonts/Lora-regular.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/Lora-regular.woff2') format('woff2'),
url('/static/fonts/Lora-regular.woff') format('woff'),
url('/static/fonts/Lora-regular.ttf') format('truetype'),
url('/static/fonts/Lora-regular.svg#Lora') format('svg');
}
/* Lora Italic */
@font-face {
font-family: 'Lora';
font-weight: 400;
font-style: italic;
src: url('/static/fonts/lora-italic-webfont.eot');
src: url('/static/fonts/lora-italic-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/lora-italic-webfont.woff2') format('woff2'),
url('/static/fonts/lora-italic-webfont.woff') format('woff'),
url('/static/fonts/lora-italic-webfont.ttf') format('truetype'),
url('/static/fonts/lora-italic-webfont.svg#loraitalic') format('svg');
}
/* Lora Bold */
@font-face {
font-family: 'Lora';
font-weight: 700;
font-style: normal;
src: url('/static/fonts/lora-bold-webfont.eot');
src: url('/static/fonts/lora-bold-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/lora-bold-webfont.woff2') format('woff2'),
url('/static/fonts/lora-bold-webfont.woff') format('woff'),
url('/static/fonts/lora-bold-webfont.ttf') format('truetype'),
url('/static/fonts/lora-bold-webfont.svg#lorabold') format('svg');
}
/* Lora Bold Italic */
@font-face {
font-family: 'Lora';
font-weight: 700;
font-style: italic;
src: url('/static/fonts/lora-bolditalic-webfont.eot');
src: url('/static/fonts/lora-bolditalic-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/lora-bolditalic-webfont.woff2') format('woff2'),
url('/static/fonts/lora-bolditalic-webfont.woff') format('woff'),
url('/static/fonts/lora-bolditalic-webfont.ttf') format('truetype'),
url('/static/fonts/lora-bolditalic-webfont.svg#lorabold_italic') format('svg');
}
/* Arvo */
@font-face {
font-family: 'Arvo';
font-weight: 400;
font-style: normal;
src: url('/static/fonts/Arvo-regular.eot');
src: local('Arvo'), local('Arvo-regular'),
url('/static/fonts/Arvo-regular.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/Arvo-regular.woff2') format('woff2'),
url('/static/fonts/Arvo-regular.woff') format('woff'),
url('/static/fonts/Arvo-regular.ttf') format('truetype'),
url('/static/fonts/Arvo-regular.svg#Arvo') format('svg');
}
/* Arvo Italic */
@font-face {
font-family: 'Arvo';
font-weight: 400;
font-style: italic;
src: url('/static/fonts/arvo-italic-webfont.eot');
src: url('/static/fonts/arvo-italic-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/arvo-italic-webfont.woff2') format('woff2'),
url('/static/fonts/arvo-italic-webfont.woff') format('woff'),
url('/static/fonts/arvo-italic-webfont.ttf') format('truetype'),
url('/static/fonts/arvo-italic-webfont.svg#arvoitalic') format('svg');
}
/* Arvo Bold */
@font-face {
font-family: 'Arvo';
font-weight: 700;
font-style: normal;
src: url('/static/fonts/arvo-bold-webfont.eot');
src: url('/static/fonts/arvo-bold-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/arvo-bold-webfont.woff2') format('woff2'),
url('/static/fonts/arvo-bold-webfont.woff') format('woff'),
url('/static/fonts/arvo-bold-webfont.ttf') format('truetype'),
url('/static/fonts/arvo-bold-webfont.svg#arvobold') format('svg');
}
/* Arvo Bold Italic */
@font-face {
font-family: 'Arvo';
font-weight: 700;
font-style: italic;
src: url('/static/fonts/arvo-bolditalic-webfont.eot');
src: url('/static/fonts/arvo-bolditalic-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/arvo-bolditalic-webfont.woff2') format('woff2'),
url('/static/fonts/arvo-bolditalic-webfont.woff') format('woff'),
url('/static/fonts/arvo-bolditalic-webfont.ttf') format('truetype'),
url('/static/fonts/arvo-bolditalic-webfont.svg#arvobold_italic') format('svg');
}
/* Roboto */
@font-face {
font-family: 'Roboto';
font-weight: 400;
font-style: normal;
src: url('/static/fonts/Roboto-regular.eot');
src: local('Roboto'), local('Roboto-regular'),
url('/static/fonts/Roboto-regular.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/Roboto-regular.woff2') format('woff2'),
url('/static/fonts/Roboto-regular.woff') format('woff'),
url('/static/fonts/Roboto-regular.ttf') format('truetype'),
url('/static/fonts/Roboto-regular.svg#Roboto') format('svg');
}
/* Roboto Italic */
@font-face {
font-family: 'Roboto';
font-weight: 400;
font-style: italic;
src: url('/static/fonts/roboto-italic-webfont.eot');
src: url('/static/fonts/roboto-italic-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/roboto-italic-webfont.woff2') format('woff2'),
url('/static/fonts/roboto-italic-webfont.woff') format('woff'),
url('/static/fonts/roboto-italic-webfont.ttf') format('truetype'),
url('/static/fonts/roboto-italic-webfont.svg#robotoitalic') format('svg');
}
/* Roboto Bold */
@font-face {
font-family: 'Roboto';
font-weight: 700;
font-style: normal;
src: url('/static/fonts/roboto-bold-webfont.eot');
src: url('/static/fonts/roboto-bold-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/roboto-bold-webfont.woff2') format('woff2'),
url('/static/fonts/roboto-bold-webfont.woff') format('woff'),
url('/static/fonts/roboto-bold-webfont.ttf') format('truetype'),
url('/static/fonts/roboto-bold-webfont.svg#robotobold') format('svg');
}
/* Roboto Bold Italic */
@font-face {
font-family: 'Roboto';
font-weight: 700;
font-style: italic;
src: url('/static/fonts/roboto-bolditalic-webfont.eot');
src: url('/static/fonts/roboto-bolditalic-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/roboto-bolditalic-webfont.woff2') format('woff2'),
url('/static/fonts/roboto-bolditalic-webfont.woff') format('woff'),
url('/static/fonts/roboto-bolditalic-webfont.ttf') format('truetype'),
url('/static/fonts/roboto-bolditalic-webfont.svg#robotobold_italic') format('svg');
}
/* PT Sans */
@font-face {
font-family: 'PT Sans';
font-weight: 400;
font-style: normal;
src: url('/static/fonts/PT-Sans-regular.eot');
src: local('PT Sans'), local('PT-Sans-regular'),
url('/static/fonts/PT-Sans-regular.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/PT-Sans-regular.woff2') format('woff2'),
url('/static/fonts/PT-Sans-regular.woff') format('woff'),
url('/static/fonts/PT-Sans-regular.ttf') format('truetype'),
url('/static/fonts/PT-Sans-regular.svg#PTSans') format('svg');
}
/* PT Sans Italic */
@font-face {
font-family: 'PT Sans';
font-weight: 400;
font-style: italic;
src: url('/static/fonts/pt_sans-web-italic-webfont.eot');
src: url('/static/fonts/pt_sans-web-italic-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/pt_sans-web-italic-webfont.woff2') format('woff2'),
url('/static/fonts/pt_sans-web-italic-webfont.woff') format('woff'),
url('/static/fonts/pt_sans-web-italic-webfont.ttf') format('truetype'),
url('/static/fonts/pt_sans-web-italic-webfont.svg#pt_sansitalic') format('svg');
}
/* PT Sans Bold */
@font-face {
font-family: 'PT Sans';
font-weight: 700;
font-style: normal;
src: url('/static/fonts/pt_sans-web-bold-webfont.eot');
src: url('/static/fonts/pt_sans-web-bold-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/pt_sans-web-bold-webfont.woff2') format('woff2'),
url('/static/fonts/pt_sans-web-bold-webfont.woff') format('woff'),
url('/static/fonts/pt_sans-web-bold-webfont.ttf') format('truetype'),
url('/static/fonts/pt_sans-web-bold-webfont.svg#pt_sansbold') format('svg');
}
/* PT Sans Bold Italic */
@font-face {
font-family: 'PT Sans';
font-weight: 700;
font-style: italic;
src: url('/static/fonts/pt_sans-web-bolditalic-webfont.eot');
src: url('/static/fonts/pt_sans-web-bolditalic-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/pt_sans-web-bolditalic-webfont.woff2') format('woff2'),
url('/static/fonts/pt_sans-web-bolditalic-webfont.woff') format('woff'),
url('/static/fonts/pt_sans-web-bolditalic-webfont.ttf') format('truetype'),
url('/static/fonts/pt_sans-web-bolditalic-webfont.svg#pt_sansbold_italic') format('svg');
}
/* Source Sans Pro */
@font-face {
font-family: 'Source Sans Pro';
font-weight: 400;
font-style: normal;
src: url('/static/fonts/Source-Sans-Pro-regular.eot');
src: local('Source Sans Pro'), local('Source-Sans-Pro-regular'),
url('/static/fonts/Source-Sans-Pro-regular.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/Source-Sans-Pro-regular.woff2') format('woff2'),
url('/static/fonts/Source-Sans-Pro-regular.woff') format('woff'),
url('/static/fonts/Source-Sans-Pro-regular.ttf') format('truetype'),
url('/static/fonts/Source-Sans-Pro-regular.svg#SourceSansPro') format('svg');
}
/* Source Sans Pro Italic */
@font-face {
font-family: 'Source Sans Pro';
font-weight: 400;
font-style: italic;
src: url('/static/fonts/sourcesanspro-italic-webfont.eot');
src: url('/static/fonts/sourcesanspro-italic-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/sourcesanspro-italic-webfont.woff2') format('woff2'),
url('/static/fonts/sourcesanspro-italic-webfont.woff') format('woff'),
url('/static/fonts/sourcesanspro-italic-webfont.ttf') format('truetype'),
url('/static/fonts/sourcesanspro-italic-webfont.svg#source_sans_proitalic') format('svg');
}
/* Source Sans Pro Bold */
@font-face {
font-family: 'Source Sans Pro';
font-weight: 700;
font-style: normal;
src: url('/static/fonts/sourcesanspro-bold-webfont.eot');
src: url('/static/fonts/sourcesanspro-bold-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/sourcesanspro-bold-webfont.woff2') format('woff2'),
url('/static/fonts/sourcesanspro-bold-webfont.woff') format('woff'),
url('/static/fonts/sourcesanspro-bold-webfont.ttf') format('truetype'),
url('/static/fonts/sourcesanspro-bold-webfont.svg#source_sans_probold') format('svg');
}
/* Source Sans Pro Bold Italic */
@font-face {
font-family: 'Source Sans Pro';
font-weight: 700;
font-style: italic;
src: url('/static/fonts/sourcesanspro-bolditalic-webfont.eot');
src: url('/static/fonts/sourcesanspro-bolditalic-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/sourcesanspro-bolditalic-webfont.woff2') format('woff2'),
url('/static/fonts/sourcesanspro-bolditalic-webfont.woff') format('woff'),
url('/static/fonts/sourcesanspro-bolditalic-webfont.ttf') format('truetype'),
url('/static/fonts/sourcesanspro-bolditalic-webfont.svg#source_sans_probold_italic') format('svg');
}
/* Exo 2 */
@font-face {
font-family: 'Exo 2';
font-weight: 400;
font-style: normal;
src: url('/static/fonts/Exo-2-regular.eot');
src: local('Exo 2'), local('Exo-2-regular'),
url('/static/fonts/Exo-2-regular.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/Exo-2-regular.woff2') format('woff2'),
url('/static/fonts/Exo-2-regular.woff') format('woff'),
url('/static/fonts/Exo-2-regular.ttf') format('truetype'),
url('/static/fonts/Exo-2-regular.svg#Exo2') format('svg');
}
/* Exo 2 Italic */
@font-face {
font-family: 'Exo 2';
font-weight: 400;
font-style: italic;
src: url('/static/fonts/exo2-italic-webfont.eot');
src: url('/static/fonts/exo2-italic-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/exo2-italic-webfont.woff2') format('woff2'),
url('/static/fonts/exo2-italic-webfont.woff') format('woff'),
url('/static/fonts/exo2-italic-webfont.ttf') format('truetype'),
url('/static/fonts/exo2-italic-webfont.svg#exo_2italic') format('svg');
}
/* Exo 2 Bold */
@font-face {
font-family: 'Exo 2';
font-weight: 700;
font-style: normal;
src: url('/static/fonts/exo2-bold-webfont.eot');
src: url('/static/fonts/exo2-bold-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/exo2-bold-webfont.woff2') format('woff2'),
url('/static/fonts/exo2-bold-webfont.woff') format('woff'),
url('/static/fonts/exo2-bold-webfont.ttf') format('truetype'),
url('/static/fonts/exo2-bold-webfont.svg#exo_2bold') format('svg');
}
/* Exo 2 Bold Italic */
@font-face {
font-family: 'Exo 2';
font-weight: 700;
font-style: italic;
src: url('/static/fonts/exo2-bolditalic-webfont.eot');
src: url('/static/fonts/exo2-bolditalic-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/exo2-bolditalic-webfont.woff2') format('woff2'),
url('/static/fonts/exo2-bolditalic-webfont.woff') format('woff'),
url('/static/fonts/exo2-bolditalic-webfont.ttf') format('truetype'),
url('/static/fonts/exo2-bolditalic-webfont.svg#exo_2bold_italic') format('svg');
}
/* Ubuntu */
@font-face {
font-family: 'Ubuntu';
font-weight: 400;
font-style: normal;
src: url('/static/fonts/Ubuntu-regular.eot');
src: local('Ubuntu'), local('Ubuntu-regular'),
url('/static/fonts/Ubuntu-regular.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/Ubuntu-regular.woff2') format('woff2'),
url('/static/fonts/Ubuntu-regular.woff') format('woff'),
url('/static/fonts/Ubuntu-regular.ttf') format('truetype'),
url('/static/fonts/Ubuntu-regular.svg#Ubuntu') format('svg');
}
/* Ubuntu Italic */
@font-face {
font-family: 'Ubuntu';
font-weight: 400;
font-style: italic;
src: url('/static/fonts/ubuntu-italic-webfont.eot');
src: url('/static/fonts/ubuntu-italic-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/ubuntu-italic-webfont.woff2') format('woff2'),
url('/static/fonts/ubuntu-italic-webfont.woff') format('woff'),
url('/static/fonts/ubuntu-italic-webfont.ttf') format('truetype'),
url('/static/fonts/ubuntu-italic-webfont.svg#ubuntuitalic') format('svg');
}
/* Ubuntu Bold */
@font-face {
font-family: 'Ubuntu';
font-weight: 700;
font-style: normal;
src: url('/static/fonts/ubuntu-bold-webfont.eot');
src: url('/static/fonts/ubuntu-bold-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/ubuntu-bold-webfont.woff2') format('woff2'),
url('/static/fonts/ubuntu-bold-webfont.woff') format('woff'),
url('/static/fonts/ubuntu-bold-webfont.ttf') format('truetype'),
url('/static/fonts/ubuntu-bold-webfont.svg#ubuntubold') format('svg');
}
/* Ubuntu Bold Italic */
@font-face {
font-family: 'Ubuntu';
font-weight: 700;
font-style: italic;
src: url('/static/fonts/ubuntu-bolditalic-webfont.eot');
src: url('/static/fonts/ubuntu-bolditalic-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/ubuntu-bolditalic-webfont.woff2') format('woff2'),
url('/static/fonts/ubuntu-bolditalic-webfont.woff') format('woff'),
url('/static/fonts/ubuntu-bolditalic-webfont.ttf') format('truetype'),
url('/static/fonts/ubuntu-bolditalic-webfont.svg#ubuntubold_italic') format('svg');
}
/* Roboto Slab */
@font-face {
font-family: 'Roboto Slab';
font-weight: 400;
font-style: normal;
src: url('/static/fonts/Roboto-Slab-regular.eot');
src: local('Roboto Slab Regular'), local('Roboto-Slab-regular'),
url('/static/fonts/Roboto-Slab-regular.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/Roboto-Slab-regular.woff2') format('woff2'),
url('/static/fonts/Roboto-Slab-regular.woff') format('woff'),
url('/static/fonts/Roboto-Slab-regular.ttf') format('truetype'),
url('/static/fonts/Roboto-Slab-regular.svg#RobotoSlab') format('svg');
}
/* Roboto Slab Bold */
@font-face {
font-family: 'Roboto Slab';
font-weight: 700;
font-style: normal;
src: url('/static/fonts/robotoslab-bold-webfont.eot');
src: url('/static/fonts/robotoslab-bold-webfont.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/robotoslab-bold-webfont.woff2') format('woff2'),
url('/static/fonts/robotoslab-bold-webfont.woff') format('woff'),
url('/static/fonts/robotoslab-bold-webfont.ttf') format('truetype'),
url('/static/fonts/robotoslab-bold-webfont.svg#roboto_slabbold') format('svg');
}
.font--open_sans {
font-family: 'Open Sans', 'sans-serif';
}
.font--droid_serif {
font-family: 'Droid Serif', 'serif';
}
.font--roboto_slab {
font-family: 'Roboto Slab', 'serif';
}
.font--lora {
font-family: 'Lora', 'serif';
}
.font--arvo {
font-family: 'Arvo', 'serif';
}
.font--roboto {
font-family: 'Roboto', 'sans-serif';
}
.font--pt_sans {
font-family: 'PT Sans', 'sans-serif';
}
.font--lato {
font-family: 'Lato', 'sans-serif';
}
.font--source_sans_pro {
font-family: 'Source Sans Pro', 'sans-serif';
}
.font--exo_2 {
font-family: 'Exo 2', 'sans-serif';
}
.font--ubuntu {
font-family: Ubuntu, 'sans-serif';
}

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

@@ -1 +0,0 @@
../../react/node_modules/highlight.js/styles/

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

@@ -1,621 +0,0 @@
/*!
* Jasny Bootstrap v3.1.3 (http://jasny.github.io/bootstrap)
* Copyright 2012-2014 Arnold Daniels
* Licensed under Apache-2.0 (https://github.com/jasny/bootstrap/blob/master/LICENSE)
*/
.container-smooth {
max-width: 1170px;
}
@media (min-width: 1px) {
.container-smooth {
width: auto;
}
}
.btn-labeled {
padding-top: 0;
padding-bottom: 0;
}
.btn-label {
position: relative;
left: -12px;
display: inline-block;
padding: 6px 12px;
background: transparent;
background: rgba(0, 0, 0, .15);
border-radius: 3px 0 0 3px;
}
.btn-label.btn-label-right {
right: -12px;
left: auto;
border-radius: 0 3px 3px 0;
}
.btn-lg .btn-label {
left: -16px;
padding: 10px 16px;
border-radius: 5px 0 0 5px;
}
.btn-lg .btn-label.btn-label-right {
right: -16px;
left: auto;
border-radius: 0 5px 5px 0;
}
.btn-sm .btn-label {
left: -10px;
padding: 5px 10px;
border-radius: 2px 0 0 2px;
}
.btn-sm .btn-label.btn-label-right {
right: -10px;
left: auto;
border-radius: 0 2px 2px 0;
}
.btn-xs .btn-label {
left: -5px;
padding: 1px 5px;
border-radius: 2px 0 0 2px;
}
.btn-xs .btn-label.btn-label-right {
right: -5px;
left: auto;
border-radius: 0 2px 2px 0;
}
.nav-tabs-bottom {
border-top: 1px solid #ddd;
border-bottom: 0;
}
.nav-tabs-bottom > li {
margin-top: -1px;
margin-bottom: 0;
}
.nav-tabs-bottom > li > a {
border-radius: 0 0 4px 4px;
}
.nav-tabs-bottom > li > a:hover,
.nav-tabs-bottom > li > a:focus,
.nav-tabs-bottom > li.active > a,
.nav-tabs-bottom > li.active > a:hover,
.nav-tabs-bottom > li.active > a:focus {
border: 1px solid #ddd;
border-top-color: transparent;
}
.nav-tabs-left {
border-right: 1px solid #ddd;
border-bottom: 0;
}
.nav-tabs-left > li {
float: none;
margin-right: -1px;
margin-bottom: 0;
}
.nav-tabs-left > li > a {
margin-right: 0;
margin-bottom: 2px;
border-radius: 4px 0 0 4px;
}
.nav-tabs-left > li > a:hover,
.nav-tabs-left > li > a:focus,
.nav-tabs-left > li.active > a,
.nav-tabs-left > li.active > a:hover,
.nav-tabs-left > li.active > a:focus {
border: 1px solid #ddd;
border-right-color: transparent;
}
.row > .nav-tabs-left {
position: relative;
z-index: 1;
padding-right: 0;
padding-left: 15px;
margin-right: -1px;
}
.row > .nav-tabs-left + .tab-content {
border-left: 1px solid #ddd;
}
.nav-tabs-right {
border-bottom: 0;
border-left: 1px solid #ddd;
}
.nav-tabs-right > li {
float: none;
margin-bottom: 0;
margin-left: -1px;
}
.nav-tabs-right > li > a {
margin-bottom: 2px;
margin-left: 0;
border-radius: 0 4px 4px 0;
}
.nav-tabs-right > li > a:hover,
.nav-tabs-right > li > a:focus,
.nav-tabs-right > li.active > a,
.nav-tabs-right > li.active > a:hover,
.nav-tabs-right > li.active > a:focus {
border: 1px solid #ddd;
border-left-color: transparent;
}
.row > .nav-tabs-right {
padding-right: 15px;
padding-left: 0;
}
.navmenu,
.navbar-offcanvas {
width: 300px;
height: auto;
border-style: solid;
border-width: 1px;
border-radius: 4px;
}
.navmenu-fixed-left,
.navmenu-fixed-right,
.navbar-offcanvas {
position: fixed;
top: 0;
bottom: 0;
z-index: 1030;
overflow-y: auto;
border-radius: 0;
}
.navmenu-fixed-left,
.navbar-offcanvas.navmenu-fixed-left {
right: auto;
left: 0;
border-width: 0 1px 0 0;
}
.navmenu-fixed-right,
.navbar-offcanvas {
right: 0;
left: auto;
border-width: 0 0 0 1px;
}
.navmenu-nav {
margin-bottom: 10px;
}
.navmenu-nav.dropdown-menu {
position: static;
float: none;
padding-top: 0;
margin: 0;
border: none;
border-radius: 0;
-webkit-box-shadow: none;
box-shadow: none;
}
.navbar-offcanvas .navbar-nav {
margin: 0;
}
@media (min-width: 768px) {
.navbar-offcanvas {
width: auto;
border-top: 0;
box-shadow: none;
}
.navbar-offcanvas.offcanvas {
position: static;
display: block !important;
height: auto !important;
padding-bottom: 0;
overflow: visible !important;
}
.navbar-offcanvas .navbar-nav.navbar-left:first-child {
margin-left: -15px;
}
.navbar-offcanvas .navbar-nav.navbar-right:last-child {
margin-right: -15px;
}
.navbar-offcanvas .navmenu-brand {
display: none;
}
}
.navmenu-brand {
display: block;
padding: 10px 15px;
margin: 10px 0;
font-size: 18px;
line-height: 20px;
}
.navmenu-brand:hover,
.navmenu-brand:focus {
text-decoration: none;
}
.navmenu-default,
.navbar-default .navbar-offcanvas {
background-color: #f8f8f8;
border-color: #e7e7e7;
}
.navmenu-default .navmenu-brand,
.navbar-default .navbar-offcanvas .navmenu-brand {
color: #777;
}
.navmenu-default .navmenu-brand:hover,
.navbar-default .navbar-offcanvas .navmenu-brand:hover,
.navmenu-default .navmenu-brand:focus,
.navbar-default .navbar-offcanvas .navmenu-brand:focus {
color: #5e5e5e;
background-color: transparent;
}
.navmenu-default .navmenu-text,
.navbar-default .navbar-offcanvas .navmenu-text {
color: #777;
}
.navmenu-default .navmenu-nav > .dropdown > a:hover .caret,
.navbar-default .navbar-offcanvas .navmenu-nav > .dropdown > a:hover .caret,
.navmenu-default .navmenu-nav > .dropdown > a:focus .caret,
.navbar-default .navbar-offcanvas .navmenu-nav > .dropdown > a:focus .caret {
border-top-color: #333;
border-bottom-color: #333;
}
.navmenu-default .navmenu-nav > .open > a,
.navbar-default .navbar-offcanvas .navmenu-nav > .open > a,
.navmenu-default .navmenu-nav > .open > a:hover,
.navbar-default .navbar-offcanvas .navmenu-nav > .open > a:hover,
.navmenu-default .navmenu-nav > .open > a:focus,
.navbar-default .navbar-offcanvas .navmenu-nav > .open > a:focus {
color: #555;
background-color: #e7e7e7;
}
.navmenu-default .navmenu-nav > .open > a .caret,
.navbar-default .navbar-offcanvas .navmenu-nav > .open > a .caret,
.navmenu-default .navmenu-nav > .open > a:hover .caret,
.navbar-default .navbar-offcanvas .navmenu-nav > .open > a:hover .caret,
.navmenu-default .navmenu-nav > .open > a:focus .caret,
.navbar-default .navbar-offcanvas .navmenu-nav > .open > a:focus .caret {
border-top-color: #555;
border-bottom-color: #555;
}
.navmenu-default .navmenu-nav > .dropdown > a .caret,
.navbar-default .navbar-offcanvas .navmenu-nav > .dropdown > a .caret {
border-top-color: #777;
border-bottom-color: #777;
}
.navmenu-default .navmenu-nav.dropdown-menu,
.navbar-default .navbar-offcanvas .navmenu-nav.dropdown-menu {
background-color: #e7e7e7;
}
.navmenu-default .navmenu-nav.dropdown-menu > .divider,
.navbar-default .navbar-offcanvas .navmenu-nav.dropdown-menu > .divider {
background-color: #f8f8f8;
}
.navmenu-default .navmenu-nav.dropdown-menu > .active > a,
.navbar-default .navbar-offcanvas .navmenu-nav.dropdown-menu > .active > a,
.navmenu-default .navmenu-nav.dropdown-menu > .active > a:hover,
.navbar-default .navbar-offcanvas .navmenu-nav.dropdown-menu > .active > a:hover,
.navmenu-default .navmenu-nav.dropdown-menu > .active > a:focus,
.navbar-default .navbar-offcanvas .navmenu-nav.dropdown-menu > .active > a:focus {
background-color: #d7d7d7;
}
.navmenu-default .navmenu-nav > li > a,
.navbar-default .navbar-offcanvas .navmenu-nav > li > a {
color: #777;
}
.navmenu-default .navmenu-nav > li > a:hover,
.navbar-default .navbar-offcanvas .navmenu-nav > li > a:hover,
.navmenu-default .navmenu-nav > li > a:focus,
.navbar-default .navbar-offcanvas .navmenu-nav > li > a:focus {
color: #333;
background-color: transparent;
}
.navmenu-default .navmenu-nav > .active > a,
.navbar-default .navbar-offcanvas .navmenu-nav > .active > a,
.navmenu-default .navmenu-nav > .active > a:hover,
.navbar-default .navbar-offcanvas .navmenu-nav > .active > a:hover,
.navmenu-default .navmenu-nav > .active > a:focus,
.navbar-default .navbar-offcanvas .navmenu-nav > .active > a:focus {
color: #555;
background-color: #e7e7e7;
}
.navmenu-default .navmenu-nav > .disabled > a,
.navbar-default .navbar-offcanvas .navmenu-nav > .disabled > a,
.navmenu-default .navmenu-nav > .disabled > a:hover,
.navbar-default .navbar-offcanvas .navmenu-nav > .disabled > a:hover,
.navmenu-default .navmenu-nav > .disabled > a:focus,
.navbar-default .navbar-offcanvas .navmenu-nav > .disabled > a:focus {
color: #ccc;
background-color: transparent;
}
.navmenu-inverse,
.navbar-inverse .navbar-offcanvas {
background-color: #222;
border-color: #080808;
}
.navmenu-inverse .navmenu-brand,
.navbar-inverse .navbar-offcanvas .navmenu-brand {
color: #999;
}
.navmenu-inverse .navmenu-brand:hover,
.navbar-inverse .navbar-offcanvas .navmenu-brand:hover,
.navmenu-inverse .navmenu-brand:focus,
.navbar-inverse .navbar-offcanvas .navmenu-brand:focus {
color: #fff;
background-color: transparent;
}
.navmenu-inverse .navmenu-text,
.navbar-inverse .navbar-offcanvas .navmenu-text {
color: #999;
}
.navmenu-inverse .navmenu-nav > .dropdown > a:hover .caret,
.navbar-inverse .navbar-offcanvas .navmenu-nav > .dropdown > a:hover .caret,
.navmenu-inverse .navmenu-nav > .dropdown > a:focus .caret,
.navbar-inverse .navbar-offcanvas .navmenu-nav > .dropdown > a:focus .caret {
border-top-color: #fff;
border-bottom-color: #fff;
}
.navmenu-inverse .navmenu-nav > .open > a,
.navbar-inverse .navbar-offcanvas .navmenu-nav > .open > a,
.navmenu-inverse .navmenu-nav > .open > a:hover,
.navbar-inverse .navbar-offcanvas .navmenu-nav > .open > a:hover,
.navmenu-inverse .navmenu-nav > .open > a:focus,
.navbar-inverse .navbar-offcanvas .navmenu-nav > .open > a:focus {
color: #fff;
background-color: #080808;
}
.navmenu-inverse .navmenu-nav > .open > a .caret,
.navbar-inverse .navbar-offcanvas .navmenu-nav > .open > a .caret,
.navmenu-inverse .navmenu-nav > .open > a:hover .caret,
.navbar-inverse .navbar-offcanvas .navmenu-nav > .open > a:hover .caret,
.navmenu-inverse .navmenu-nav > .open > a:focus .caret,
.navbar-inverse .navbar-offcanvas .navmenu-nav > .open > a:focus .caret {
border-top-color: #fff;
border-bottom-color: #fff;
}
.navmenu-inverse .navmenu-nav > .dropdown > a .caret,
.navbar-inverse .navbar-offcanvas .navmenu-nav > .dropdown > a .caret {
border-top-color: #999;
border-bottom-color: #999;
}
.navmenu-inverse .navmenu-nav.dropdown-menu,
.navbar-inverse .navbar-offcanvas .navmenu-nav.dropdown-menu {
background-color: #080808;
}
.navmenu-inverse .navmenu-nav.dropdown-menu > .divider,
.navbar-inverse .navbar-offcanvas .navmenu-nav.dropdown-menu > .divider {
background-color: #222;
}
.navmenu-inverse .navmenu-nav.dropdown-menu > .active > a,
.navbar-inverse .navbar-offcanvas .navmenu-nav.dropdown-menu > .active > a,
.navmenu-inverse .navmenu-nav.dropdown-menu > .active > a:hover,
.navbar-inverse .navbar-offcanvas .navmenu-nav.dropdown-menu > .active > a:hover,
.navmenu-inverse .navmenu-nav.dropdown-menu > .active > a:focus,
.navbar-inverse .navbar-offcanvas .navmenu-nav.dropdown-menu > .active > a:focus {
background-color: #000;
}
.navmenu-inverse .navmenu-nav > li > a,
.navbar-inverse .navbar-offcanvas .navmenu-nav > li > a {
color: #999;
}
.navmenu-inverse .navmenu-nav > li > a:hover,
.navbar-inverse .navbar-offcanvas .navmenu-nav > li > a:hover,
.navmenu-inverse .navmenu-nav > li > a:focus,
.navbar-inverse .navbar-offcanvas .navmenu-nav > li > a:focus {
color: #fff;
background-color: transparent;
}
.navmenu-inverse .navmenu-nav > .active > a,
.navbar-inverse .navbar-offcanvas .navmenu-nav > .active > a,
.navmenu-inverse .navmenu-nav > .active > a:hover,
.navbar-inverse .navbar-offcanvas .navmenu-nav > .active > a:hover,
.navmenu-inverse .navmenu-nav > .active > a:focus,
.navbar-inverse .navbar-offcanvas .navmenu-nav > .active > a:focus {
color: #fff;
background-color: #080808;
}
.navmenu-inverse .navmenu-nav > .disabled > a,
.navbar-inverse .navbar-offcanvas .navmenu-nav > .disabled > a,
.navmenu-inverse .navmenu-nav > .disabled > a:hover,
.navbar-inverse .navbar-offcanvas .navmenu-nav > .disabled > a:hover,
.navmenu-inverse .navmenu-nav > .disabled > a:focus,
.navbar-inverse .navbar-offcanvas .navmenu-nav > .disabled > a:focus {
color: #444;
background-color: transparent;
}
.alert-fixed-top,
.alert-fixed-bottom {
position: fixed;
left: 0;
z-index: 1035;
width: 100%;
margin: 0;
border-radius: 0;
}
@media (min-width: 992px) {
.alert-fixed-top,
.alert-fixed-bottom {
left: 50%;
width: 992px;
margin-left: -496px;
}
}
.alert-fixed-top {
top: 0;
border-width: 0 0 1px 0;
}
@media (min-width: 992px) {
.alert-fixed-top {
border-width: 0 1px 1px 1px;
border-bottom-right-radius: 4px;
border-bottom-left-radius: 4px;
}
}
.alert-fixed-bottom {
bottom: 0;
border-width: 1px 0 0 0;
}
@media (min-width: 992px) {
.alert-fixed-bottom {
border-width: 1px 1px 0 1px;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
}
.offcanvas {
display: none;
}
.offcanvas.in {
display: block;
}
@media (max-width: 767px) {
.offcanvas-xs {
display: none;
}
.offcanvas-xs.in {
display: block;
}
}
@media (max-width: 991px) {
.offcanvas-sm {
display: none;
}
.offcanvas-sm.in {
display: block;
}
}
@media (max-width: 1199px) {
.offcanvas-md {
display: none;
}
.offcanvas-md.in {
display: block;
}
}
.offcanvas-lg {
display: none;
}
.offcanvas-lg.in {
display: block;
}
.canvas-sliding {
-webkit-transition: top .35s, left .35s, bottom .35s, right .35s;
transition: top .35s, left .35s, bottom .35s, right .35s;
}
.offcanvas-clone {
position: absolute !important;
top: auto !important;
right: 0 !important;
bottom: 0 !important;
left: auto !important;
width: 0 !important;
height: 0 !important;
padding: 0 !important;
margin: 0 !important;
overflow: hidden !important;
border: none !important;
opacity: 0 !important;
}
.table.rowlink td:not(.rowlink-skip),
.table .rowlink td:not(.rowlink-skip) {
cursor: pointer;
}
.table.rowlink td:not(.rowlink-skip) a,
.table .rowlink td:not(.rowlink-skip) a {
font: inherit;
color: inherit;
text-decoration: inherit;
}
.table-hover.rowlink tr:hover td,
.table-hover .rowlink tr:hover td {
background-color: #cfcfcf;
}
.btn-file {
position: relative;
overflow: hidden;
vertical-align: middle;
}
.btn-file > input {
position: absolute;
top: 0;
right: 0;
width: 100%;
height: 100%;
margin: 0;
font-size: 23px;
cursor: pointer;
filter: alpha(opacity=0);
opacity: 0;
direction: ltr;
}
.fileinput {
display: inline-block;
margin-bottom: 9px;
}
.fileinput .form-control {
display: inline-block;
padding-top: 7px;
padding-bottom: 5px;
margin-bottom: 0;
vertical-align: middle;
cursor: text;
}
.fileinput .thumbnail {
display: inline-block;
margin-bottom: 5px;
overflow: hidden;
text-align: center;
vertical-align: middle;
}
.fileinput .thumbnail > img {
max-height: 100%;
}
.fileinput .btn {
vertical-align: middle;
}
.fileinput-exists .fileinput-new,
.fileinput-new .fileinput-exists {
display: none;
}
.fileinput-inline .fileinput-controls {
display: inline;
}
.fileinput-filename {
display: inline-block;
overflow: hidden;
vertical-align: middle;
}
.form-control .fileinput-filename {
vertical-align: bottom;
}
.fileinput.input-group {
display: table;
}
.fileinput.input-group > * {
position: relative;
z-index: 2;
}
.fileinput.input-group > .btn-file {
z-index: 1;
}
.fileinput-new.input-group .btn-file,
.fileinput-new .input-group .btn-file {
border-radius: 0 4px 4px 0;
}
.fileinput-new.input-group .btn-file.btn-xs,
.fileinput-new .input-group .btn-file.btn-xs,
.fileinput-new.input-group .btn-file.btn-sm,
.fileinput-new .input-group .btn-file.btn-sm {
border-radius: 0 3px 3px 0;
}
.fileinput-new.input-group .btn-file.btn-lg,
.fileinput-new .input-group .btn-file.btn-lg {
border-radius: 0 6px 6px 0;
}
.form-group.has-warning .fileinput .fileinput-preview {
color: #8a6d3b;
}
.form-group.has-warning .fileinput .thumbnail {
border-color: #faebcc;
}
.form-group.has-error .fileinput .fileinput-preview {
color: #a94442;
}
.form-group.has-error .fileinput .thumbnail {
border-color: #ebccd1;
}
.form-group.has-success .fileinput .fileinput-preview {
color: #3c763d;
}
.form-group.has-success .fileinput .thumbnail {
border-color: #d6e9c6;
}
.input-group-addon:not(:first-child) {
border-left: 0;
}
/*# sourceMappingURL=jasny-bootstrap.css.map */

7
web/static/css/jasny-bootstrap.min.css поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

1
web/static/css/katex.min.css поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Двоичные данные
web/static/flash/ZeroClipboard.swf

Двоичный файл не отображается.

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

@@ -1,24 +0,0 @@
<htmL>
<body>
<h1>About Mattermost</h1>
<p>Mattermost is a team communication service. It brings team real-time messaging and file sharing into one place, with easy archiving and search, accessible across PCs and phones.
</p>
<p>We built Mattermost to help teams focus on what matters most to them. It works for us, we hope it works for you too.
Learn more, or download the source code from <a href=http://mattermost.org>http://mattermost.org</a>.</p>
<h1>Join the community</h1>
<p>To take part in the community building Mattermost, please consider sharing comments, feature requests, votes, and contributions. If you like the project, please Tweet about us at <a href=https://twitter.com/mattermosthq>@mattermosthq</a>.</p>
<p>Here's some links to get started:<br>
<ul>
<li><a href="https://github.com/mattermost/platform">Follow Mattermost on Github</a></li>
<li><a href="http://forum.mattermost.org/">Ask us anything at http://forum.mattermost.org/</a></li>
<li><a href="http://www.mattermost.org/feature-requests/">Review the Mattermost feature list </a></li>
<li><a href="http://www.mattermost.org/download/">Download our source code and install instructions</a></li>
<li><a href="http://www.mattermost.org/feature-requests/">Share feature requests and upvotes</a></li>
<li><a href="http://www.mattermost.org/filing-issues/">File any bugs you find with our Issue tracking system</a></li>
</ul>
</p>
</body>
</html>

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

@@ -1,24 +0,0 @@
<htmL>
<body>
<h1>Help with Mattermost</h1>
<p>Mattermost is a team communication service. It brings team real-time messaging and file sharing into one place, with easy archiving and search, accessible across PCs and phones.
</p>
<p>We built Mattermost to help teams focus on what matters most to them. It works for us, we hope it works for you too.
Learn more, or download the source code from <a href=http://mattermost.com>http://mattermost.com</a>.</p>
<h1>Join the community</h1>
<p>To take part in the community building Mattermost, please consider sharing comments, feature requests, votes, and contributions. If you like the project, please Tweet about us at <a href=https://twitter.com/mattermosthq>@mattermosthq</a>.</p>
<p>Here's some links to get started:<br>
<ul>
<li><a href="https://github.com/mattermost/platform">Follow Mattermost on Github</a></li>
<li><a href="http://forum.mattermost.org/">Ask us anything at http://forum.mattermost.org/</a></li>
<li><a href="http://www.mattermost.org/feature-requests/">Review the Mattermost feature list </a></li>
<li><a href="http://www.mattermost.org/download/">Download our source code and install instructions</a></li>
<li><a href="http://www.mattermost.org/feature-requests/">Share feature requests and upvotes</a></li>
<li><a href="http://www.mattermost.org/filing-issues/">File any bugs you find with our Issue tracking system</a></li>
</ul>
</p>
</body>
</html>

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

@@ -1,24 +0,0 @@
<htmL>
<body>
<h1>Mattermost Privacy</h1>
<p>Mattermost is a team communication service. It brings team real-time messaging and file sharing into one place, with easy archiving and search, accessible across PCs and phones.
</p>
<p>We built Mattermost to help teams focus on what matters most to them. It works for us, we hope it works for you too.
Learn more, or download the source code from <a href=http://mattermost.com>http://mattermost.com</a>.</p>
<h1>Join the community</h1>
<p>To take part in the community building Mattermost, please consider sharing comments, feature requests, votes, and contributions. If you like the project, please Tweet about us at <a href=https://twitter.com/mattermosthq>@mattermosthq</a>.</p>
<p>Here's some links to get started:<br>
<ul>
<li><a href="https://github.com/mattermost/platform">Follow Mattermost on Github</a></li>
<li><a href="http://forum.mattermost.org/">Ask us anything at http://forum.mattermost.org/</a></li>
<li><a href="http://www.mattermost.org/feature-requests/">Review the Mattermost feature list </a></li>
<li><a href="http://www.mattermost.org/download/">Download our source code and install instructions</a></li>
<li><a href="http://www.mattermost.org/feature-requests/">Share feature requests and upvotes</a></li>
<li><a href="http://www.mattermost.org/filing-issues/">File any bugs you find with our Issue tracking system</a></li>
</ul>
</p>
</body>
</html>

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

@@ -1,24 +0,0 @@
<htmL>
<body>
<h1>Report a Problem About Mattermost</h1>
<p>Mattermost is a team communication service. It brings team real-time messaging and file sharing into one place, with easy archiving and search, accessible across PCs and phones.
</p>
<p>We built Mattermost to help teams focus on what matters most to them. It works for us, we hope it works for you too.
Learn more, or download the source code from <a href=http://mattermost.com>http://mattermost.com</a>.</p>
<h1>Join the community</h1>
<p>To take part in the community building Mattermost, please consider sharing comments, feature requests, votes, and contributions. If you like the project, please Tweet about us at <a href=https://twitter.com/mattermosthq>@mattermosthq</a>.</p>
<p>Here's some links to get started:<br>
<ul>
<li><a href="https://github.com/mattermost/platform">Follow Mattermost on Github</a></li>
<li><a href="http://forum.mattermost.org/">Ask us anything at http://forum.mattermost.org/</a></li>
<li><a href="http://www.mattermost.org/feature-requests/">Review the Mattermost feature list </a></li>
<li><a href="http://www.mattermost.org/download/">Download our source code and install instructions</a></li>
<li><a href="http://www.mattermost.org/feature-requests/">Share feature requests and upvotes</a></li>
<li><a href="http://www.mattermost.org/filing-issues/">File any bugs you find with our Issue tracking system</a></li>
</ul>
</p>
</body>
</html>

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

@@ -1,24 +0,0 @@
<htmL>
<body>
<h1>Mattermost Terms</h1>
<p>Mattermost is a team communication service. It brings team real-time messaging and file sharing into one place, with easy archiving and search, accessible across PCs and phones.
</p>
<p>We built Mattermost to help teams focus on what matters most to them. It works for us, we hope it works for you too.
Learn more, or download the source code from <a href=http://mattermost.com>http://mattermost.com</a>.</p>
<h1>Join the community</h1>
<p>To take part in the community building Mattermost, please consider sharing comments, feature requests, votes, and contributions. If you like the project, please Tweet about us at <a href=https://twitter.com/mattermosthq>@mattermosthq</a>.</p>
<p>Here's some links to get started:<br>
<ul>
<li><a href="https://github.com/mattermost/platform">Follow Mattermost on Github</a></li>
<li><a href="http://forum.mattermost.org/">Ask us anything at http://forum.mattermost.org/</a></li>
<li><a href="http://www.mattermost.org/feature-requests/">Review the Mattermost feature list </a></li>
<li><a href="http://www.mattermost.org/download/">Download our source code and install instructions</a></li>
<li><a href="http://www.mattermost.org/feature-requests/">Share feature requests and upvotes</a></li>
<li><a href="http://www.mattermost.org/filing-issues/">File any bugs you find with our Issue tracking system</a></li>
</ul>
</p>
</body>
</html>

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 42 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 76 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 45 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 120 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 46 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 153 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 34 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 50 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 42 KiB

Двоичные данные
web/static/images/favicon/iTunesArtwork@2x.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 517 KiB

11
web/static/js/Chart.min.js поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Разница между файлами не показана из-за своего большого размера Загрузить разницу

2
web/static/js/babel-polyfill-6.1.18.min.js поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

2363
web/static/js/bootstrap-3.3.5.js поставляемый

Разница между файлами не показана из-за своего большого размера Загрузить разницу

7
web/static/js/bootstrap-3.3.5.min.js поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

1
web/static/js/bootstrap-colorpicker.min.js поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

1
web/static/js/intl-1.0.0/Intl.min.js поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше