first commit
Этот коммит содержится в:
50
web/templates/channel.html
Обычный файл
50
web/templates/channel.html
Обычный файл
@@ -0,0 +1,50 @@
|
||||
{{define "channel"}}
|
||||
<html>
|
||||
{{template "head" . }}
|
||||
<body>
|
||||
<div id="error_bar"></div>
|
||||
<div class="container-fluid">
|
||||
<div class="sidebar--right" id="sidebar-right"></div>
|
||||
<div class="sidebar--menu" id="sidebar-menu"></div>
|
||||
<div class="sidebar--left" id="sidebar-left"></div>
|
||||
<div class="inner__wrap channel__wrap">
|
||||
<div class="row header">
|
||||
<div id="navbar"></div>
|
||||
</div>
|
||||
<div class="row main">
|
||||
<div id="app-content" class="app__content">
|
||||
<div id="channel-header"></div>
|
||||
<div id="post-list"></div>
|
||||
<div class="post-create__container" id="post-create"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="channel_loader"></div>
|
||||
<div id="post_mention_tab"></div>
|
||||
<div id="reply_mention_tab"></div>
|
||||
<div id="edit_mention_tab"></div>
|
||||
<div id="get_link_modal"></div>
|
||||
<div id="user_settings_modal"></div>
|
||||
<div id="invite_member_modal"></div>
|
||||
<div id="edit_channel_modal"></div>
|
||||
<div id="delete_channel_modal"></div>
|
||||
<div id="rename_channel_modal"></div>
|
||||
<div id="rename_team_modal"></div>
|
||||
<div id="edit_post_modal"></div>
|
||||
<div id="delete_post_modal"></div>
|
||||
<div id="more_channels_modal"></div>
|
||||
<div id="new_channel_modal"></div>
|
||||
<div id="post_deleted_modal"></div>
|
||||
<div id="channel_notifications_modal"></div>
|
||||
<div id="channel_members_modal"></div>
|
||||
<div id="channel_invite_modal"></div>
|
||||
<div id="team_members_modal"></div>
|
||||
<div id="direct_channel_modal"></div>
|
||||
<div id="channel_info_modal"></div>
|
||||
<script>
|
||||
window.setup_channel_page('{{ .Props.TeamName }}', '{{ .Props.TeamType }}', '{{ .Props.ChannelName }}', '{{ .Props.ChannelId }}');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
{{end}}
|
||||
26
web/templates/find_team.html
Обычный файл
26
web/templates/find_team.html
Обычный файл
@@ -0,0 +1,26 @@
|
||||
{{define "find_team"}}
|
||||
<html>
|
||||
{{template "head" . }}
|
||||
<body class="white">
|
||||
<div class="container-fluid">
|
||||
<div class="inner__wrap">
|
||||
<div class="row content">
|
||||
<div class="col-sm-12">
|
||||
<div class="signup-team__container">
|
||||
<img class="signup-team-logo" src="/static/images/logo.png" />
|
||||
<div id="find-team"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-push"></div>
|
||||
</div>
|
||||
<div class="row footer">
|
||||
{{template "footer" . }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
window.setup_find_team_page();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
{{end}}
|
||||
20
web/templates/footer.html
Обычный файл
20
web/templates/footer.html
Обычный файл
@@ -0,0 +1,20 @@
|
||||
{{define "footer"}}
|
||||
<div class="footer-pane col-xs-12">
|
||||
<div class="col-xs-12">
|
||||
<span class="pull-right footer-site-name">{{ .SiteName }}</span>
|
||||
</div>
|
||||
<div class="col-xs-12">
|
||||
<span class="pull-right footer-link copyright">© 2015 SpinPunch</span>
|
||||
<a id="help_link" class="pull-right footer-link" href="#">Help</a>
|
||||
<a id="terms_link" class="pull-right footer-link" href="#">Terms</a>
|
||||
<a id="privacy_link" class="pull-right footer-link" href="#">Privacy</a>
|
||||
<a id="about_link" class="pull-right footer-link" href="#">About</a>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
document.getElementById("help_link").setAttribute("href", config.HelpLink);
|
||||
document.getElementById("terms_link").setAttribute("href", config.TermsLink);
|
||||
document.getElementById("privacy_link").setAttribute("href", config.PrivacyLink);
|
||||
document.getElementById("about_link").setAttribute("href", config.AboutLink);
|
||||
</script>
|
||||
{{end}}
|
||||
84
web/templates/head.html
Обычный файл
84
web/templates/head.html
Обычный файл
@@ -0,0 +1,84 @@
|
||||
{{define "head"}}
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<meta name="robots" content="noindex, nofollow">
|
||||
|
||||
<title>{{ .Title }}</title>
|
||||
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="/static/css/jasny-bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
<script src="https://fb.me/react-with-addons-0.13.1.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
|
||||
|
||||
<link id="favicon" rel="icon" href="/static/images/favicon.ico" type="image/x-icon">
|
||||
<link rel="shortcut icon" href="/static/images/favicon.ico" type="image/x-icon">
|
||||
<link href='https://fonts.googleapis.com/css?family=Lato:400,700,900' rel='stylesheet' type='text/css'>
|
||||
<link rel="stylesheet" href="/static/css/styles.css">
|
||||
|
||||
<script src="/static/js/min/perfect-scrollbar.min.js"></script>
|
||||
<script src="/static/js/bundle.js"></script>
|
||||
|
||||
<script type="text/javascript" src="https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization','version':'1','packages':['annotationchart']}]}"></script>
|
||||
|
||||
<script type="text/javascript" src="https://cloudfront.loggly.com/js/loggly.tracker.js" async></script>
|
||||
<script id="config" type="text/javascript" src="/static/config/config.js"></script>
|
||||
<script>
|
||||
if (config == null) {
|
||||
config = {};
|
||||
}
|
||||
config.SiteName = '{{ .SiteName }}';
|
||||
</script>
|
||||
<script>
|
||||
if (config.LogglyWriteKey != null && config.LogglyWriteKey !== "") {
|
||||
var _LTracker = _LTracker || [];
|
||||
window._LTracker = _LTracker;
|
||||
_LTracker.push({'logglyKey': config.LogglyWriteKey, 'sendConsoleErrors' : config.LogglyConsoleErrors });
|
||||
} else {
|
||||
console.warn("config.js missing LogglyWriteKey, Loggly analytics is not reporting");
|
||||
}
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
if (config.SegmentWriteKey != null && config.SegmentWriteKey !== "") {
|
||||
!function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","group","track","ready","alias","page","once","off","on"];analytics.factory=function(t){return function(){var e=Array.prototype.slice.call(arguments);e.unshift(t);analytics.push(e);return analytics}};for(var t=0;t<analytics.methods.length;t++){var e=analytics.methods[t];analytics[e]=analytics.factory(e)}analytics.load=function(t){var e=document.createElement("script");e.type="text/javascript";e.async=!0;e.src=("https:"===document.location.protocol?"https://":"http://")+"cdn.segment.com/analytics.js/v1/"+t+"/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(e,n)};analytics.SNIPPET_VERSION="3.0.1";
|
||||
analytics.load(config.SegmentWriteKey);
|
||||
var user = window.UserStore.getCurrentUser(true);
|
||||
if (user) {
|
||||
analytics.identify(user.id, {
|
||||
name: user.full_name,
|
||||
email: user.email,
|
||||
createdAt: user.create_at,
|
||||
username: user.username,
|
||||
team_id: user.team_id,
|
||||
team_domain: window.getSubDomain(),
|
||||
id: user.id
|
||||
});
|
||||
}
|
||||
analytics.page();
|
||||
}}();
|
||||
} else {
|
||||
console.warn("config.js missing SegmentWriteKey, SegmentIO analytics is not tracking");
|
||||
}
|
||||
</script>
|
||||
<!-- Snowplow starts plowing -->
|
||||
<script type="text/javascript">
|
||||
;(function(p,l,o,w,i,n,g){if(!p[i]){p.GlobalSnowplowNamespace=p.GlobalSnowplowNamespace||[];
|
||||
p.GlobalSnowplowNamespace.push(i);p[i]=function(){(p[i].q=p[i].q||[]).push(arguments)
|
||||
};p[i].q=p[i].q||[];n=l.createElement(o);g=l.getElementsByTagName(o)[0];n.async=1;
|
||||
n.src=w;g.parentNode.insertBefore(n,g)}}(window,document,"script","//d1fc8wv8zag5ca.cloudfront.net/2.4.2/sp.js","snowplow"));
|
||||
|
||||
window.snowplow('newTracker', 'cf', '{{ .Props.AnalyticsUrl }}', {
|
||||
appId: '{{ .SiteName }}'
|
||||
});
|
||||
|
||||
var user = window.UserStore.getCurrentUser(true);
|
||||
if (user) {
|
||||
window.snowplow('setUserId', user.id);
|
||||
}
|
||||
|
||||
window.snowplow('trackPageView');
|
||||
</script>
|
||||
<!-- Snowplow stops plowing -->
|
||||
</head>
|
||||
{{end}}
|
||||
23
web/templates/home.html
Обычный файл
23
web/templates/home.html
Обычный файл
@@ -0,0 +1,23 @@
|
||||
{{define "home"}}
|
||||
<html>
|
||||
{{template "head" . }}
|
||||
<body>
|
||||
<div class="container-fluid">
|
||||
<div class="sidebar--right" id="sidebar-right"></div>
|
||||
<div class="sidebar--left" id="sidebar-left"></div>
|
||||
<div class="inner__wrap">
|
||||
<div class="row header">
|
||||
<div id="navbar"></div>
|
||||
</div>
|
||||
<div class="row main">
|
||||
<div class="hidden-xs" id="sidebar"></div>
|
||||
<div class="app__content"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
window.setup_home_page();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
{{end}}
|
||||
26
web/templates/login.html
Обычный файл
26
web/templates/login.html
Обычный файл
@@ -0,0 +1,26 @@
|
||||
{{define "login"}}
|
||||
<html>
|
||||
{{template "head" . }}
|
||||
<body class="white">
|
||||
<div class="container-fluid">
|
||||
<div class="inner__wrap">
|
||||
<div class="row content">
|
||||
<div class="signup-header">
|
||||
{{.Props.TeamName}}
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<div id="login"></div>
|
||||
</div>
|
||||
<div class="footer-push"></div>
|
||||
</div>
|
||||
<div class="row footer">
|
||||
{{template "footer" . }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
window.setup_login_page();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
{{end}}
|
||||
15
web/templates/password_reset.html
Обычный файл
15
web/templates/password_reset.html
Обычный файл
@@ -0,0 +1,15 @@
|
||||
{{define "password_reset"}}
|
||||
<html>
|
||||
{{template "head" . }}
|
||||
<body class="white">
|
||||
<div class="container-fluid">
|
||||
<div class="inner__wrap">
|
||||
<div class="row content" id="reset"></div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
window.setup_password_reset_page('{{ .Props.IsReset }}', '{{ .Props.TeamName }}', '{{ .Props.Domain }}', '{{ .Props.Hash }}', '{{ .Props.Data }}');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
{{end}}
|
||||
28
web/templates/signup_team.html
Обычный файл
28
web/templates/signup_team.html
Обычный файл
@@ -0,0 +1,28 @@
|
||||
{{define "signup_team"}}
|
||||
<html>
|
||||
{{template "head" . }}
|
||||
<body class="white">
|
||||
<div class="container-fluid">
|
||||
<div class="inner__wrap">
|
||||
<div class="row content">
|
||||
<div class="col-sm-12">
|
||||
<div class="signup-team__container">
|
||||
<img class="signup-team-logo" src="/static/images/logo.png" />
|
||||
<h4>{{ .SiteName }} is free for an unlimited time, for unlimited users. </h4>
|
||||
<div id="signup-team"></div>
|
||||
<a class="signup-team-login" href="/login">or Sign In</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-push"></div>
|
||||
</div>
|
||||
<div class="row footer">
|
||||
{{template "footer" . }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
window.setup_signup_team_page();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
{{end}}
|
||||
25
web/templates/signup_team_complete.html
Обычный файл
25
web/templates/signup_team_complete.html
Обычный файл
@@ -0,0 +1,25 @@
|
||||
{{define "signup_team_complete"}}
|
||||
<html>
|
||||
{{template "head" . }}
|
||||
<body class="white">
|
||||
<div class="container-fluid">
|
||||
<div class="inner__wrap">
|
||||
<div class="row content">
|
||||
<div class="col-sm-12">
|
||||
<div class="signup-team__container">
|
||||
<div id="signup-team-complete"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-push"></div>
|
||||
</div>
|
||||
<div class="row footer">
|
||||
{{template "footer" . }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
window.setup_signup_team_complete_page('{{.Props.Email}}', '{{.Props.Name}}', '{{.Props.Data}}', '{{.Props.Hash}}');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
{{end}}
|
||||
24
web/templates/signup_team_confirm.html
Обычный файл
24
web/templates/signup_team_confirm.html
Обычный файл
@@ -0,0 +1,24 @@
|
||||
{{define "signup_team_confirm"}}
|
||||
<html>
|
||||
{{template "head" . }}
|
||||
<body class="white">
|
||||
<div class="container-fluid">
|
||||
<div class="inner__wrap">
|
||||
<div class="row content">
|
||||
<div class="col-sm-12">
|
||||
<div class="signup-team__container">
|
||||
<p>Did you mean to sign-in rather than sign up? Sign in <a href="/login">here</a>. </p>
|
||||
<h3>Sign up Complete</h3>
|
||||
<p>Please check your email: {{ .Props.Email }}<br>
|
||||
You email contains a link to set up your team</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row footer">
|
||||
{{template "footer" . }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
{{end}}
|
||||
25
web/templates/signup_user_complete.html
Обычный файл
25
web/templates/signup_user_complete.html
Обычный файл
@@ -0,0 +1,25 @@
|
||||
{{define "signup_user_complete"}}
|
||||
<html>
|
||||
{{template "head" . }}
|
||||
<body class="white">
|
||||
<div class="container-fluid">
|
||||
<div class="inner__wrap">
|
||||
<div class="row content">
|
||||
<div class="col-sm-12">
|
||||
<div class="signup-team__container">
|
||||
<div id="signup-user-complete"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-push"></div>
|
||||
</div>
|
||||
<div class="row footer">
|
||||
{{template "footer" . }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
window.setup_signup_user_complete_page('{{.Props.Email}}', '{{.Props.TeamDomain}}', '{{.Props.TeamName}}', '{{.Props.TeamId}}', '{{.Props.Data}}', '{{.Props.Hash}}');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
{{end}}
|
||||
15
web/templates/verify.html
Обычный файл
15
web/templates/verify.html
Обычный файл
@@ -0,0 +1,15 @@
|
||||
{{define "verify"}}
|
||||
<html>
|
||||
{{template "head" . }}
|
||||
<body>
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div id="verify"></div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
window.setup_verify_page('{{ .Props.IsVerified }}');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
{{end}}
|
||||
36
web/templates/welcome.html
Обычный файл
36
web/templates/welcome.html
Обычный файл
@@ -0,0 +1,36 @@
|
||||
{{define "welcome"}}
|
||||
<html>
|
||||
{{template "head" . }}
|
||||
<body>
|
||||
<div class="container-fluid">
|
||||
<div class="inner__wrap">
|
||||
<div class="row header">
|
||||
<div id="navbar"></div>
|
||||
</div>
|
||||
<div class="row main">
|
||||
<div class="app__content">
|
||||
<div class="welcome-info">
|
||||
<h1>Welcome to {{ .SiteName }}!</h1>
|
||||
<p>
|
||||
You do not appear to be part of any teams. Please contact your
|
||||
administrator to have him send you an invitation to a private team.
|
||||
Or you can start a new private team.
|
||||
</p>
|
||||
<div class="alert alert-warning">
|
||||
If you where invited to a team that you do not see you must
|
||||
confirm your email address first before gaining access to the
|
||||
team.
|
||||
</div>
|
||||
<div id="new_channel">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
window.setup_welcome_page();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
{{end}}
|
||||
Ссылка в новой задаче
Block a user