Restore script.js
This commit is contained in:
parent
ce649d30b1
commit
5d8ef56686
2 changed files with 56 additions and 268 deletions
|
@ -97,6 +97,3 @@ Listen 8888
|
|||
```
|
||||
|
||||
requires `a2enmod rewrite proxy proxy_http proxy_wstunnel`
|
||||
|
||||
|
||||
s
|
|
@ -1,288 +1,79 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="devise-layout-html">
|
||||
<head prefix="og: http://ogp.me/ns#">
|
||||
<meta charset="utf-8">
|
||||
<link href="https://assets.gitlab-static.net" rel="dns-prefetch">
|
||||
<link crossorigin="" href="https://assets.gitlab-static.net" rel="preconnnect">
|
||||
<meta content="IE=edge" http-equiv="X-UA-Compatible">
|
||||
<meta content="object" property="og:type">
|
||||
<meta content="GitLab" property="og:site_name">
|
||||
<meta content="Sign in" property="og:title">
|
||||
<meta content="GitLab.com" property="og:description">
|
||||
<meta content="https://assets.gitlab-static.net/assets/gitlab_logo-7ae504fe4f68fdebb3c2034e36621930cd36ea87924c11ff65dbcb8ed50dca58.png" property="og:image">
|
||||
<meta content="64" property="og:image:width">
|
||||
<meta content="64" property="og:image:height">
|
||||
<meta content="https://gitlab.com/users/sign_in" property="og:url">
|
||||
<meta content="summary" property="twitter:card">
|
||||
<meta content="Sign in" property="twitter:title">
|
||||
<meta content="GitLab.com" property="twitter:description">
|
||||
<meta content="https://assets.gitlab-static.net/assets/gitlab_logo-7ae504fe4f68fdebb3c2034e36621930cd36ea87924c11ff65dbcb8ed50dca58.png" property="twitter:image">
|
||||
|
||||
<title>Sign in · GitLab</title>
|
||||
<meta content="GitLab.com" name="description">
|
||||
<link rel="shortcut icon" type="image/png" href="https://gitlab.com/assets/favicon-7901bd695fb93edb07975966062049829afb56cf11511236e61bcf425070e36e.png" id="favicon" data-original-href="https://gitlab.com/assets/favicon-7901bd695fb93edb07975966062049829afb56cf11511236e61bcf425070e36e.png" />
|
||||
<link rel="stylesheet" media="all" href="https://assets.gitlab-static.net/assets/application-eaed76188e3d967d1dfbea4fc481dec1923132785fbb98ebefc167edb6009b99.css" />
|
||||
<link rel="stylesheet" media="print" href="https://assets.gitlab-static.net/assets/print-74c3df10dad473d66660c828e3aa54ca3bfeac6d8bb708643331403fe7211e60.css" />
|
||||
|
||||
|
||||
<link rel="stylesheet" media="all" href="https://assets.gitlab-static.net/assets/highlight/themes/white-b79ffc9ceedbea9d3b4ef32ee3c7907b8b04480a345dc587ace46c8606bd2634.css" />
|
||||
<script nonce="EJH1rdx4z5i2143LpK7unA==">
|
||||
//<![CDATA[
|
||||
window.gon={};gon.api_version="v4";gon.default_avatar_url="https://assets.gitlab-static.net/assets/no_avatar-849f9c04a3a0d0cea2424ae97b27447dc64a7dbfae83c036c45b403392f0e8ba.png";gon.max_file_size=10;gon.asset_host="https://assets.gitlab-static.net";gon.webpack_public_path="https://assets.gitlab-static.net/assets/webpack/";gon.relative_url_root="";gon.shortcuts_path="/help/shortcuts";gon.user_color_scheme="white";gon.sentry_dsn="https://526a2f38a53d44e3a8e69bfa001d1e8b@sentry.gitlab.net/15";gon.sentry_environment=null;gon.gitlab_url="https://gitlab.com";gon.revision="6ed176c0af2";gon.gitlab_logo="https://assets.gitlab-static.net/assets/gitlab_logo-7ae504fe4f68fdebb3c2034e36621930cd36ea87924c11ff65dbcb8ed50dca58.png";gon.sprite_icons="https://gitlab.com/assets/icons-312c16d38220d2412b554d43f05ac0ffa8a701e91fb02cd4332740f6b87ebb5b.svg";gon.sprite_file_icons="https://gitlab.com/assets/file_icons-7262fc6897e02f1ceaf8de43dc33afa5e4f9a2067f4f68ef77dcc87946575e9e.svg";gon.emoji_sprites_css_path="https://assets.gitlab-static.net/assets/emoji_sprites-289eccffb1183c188b630297431be837765d9ff4aed6130cf738586fb307c170.css";gon.test_env=false;gon.suggested_label_colors={"#0033CC":"UA blue","#428BCA":"Moderate blue","#44AD8E":"Lime green","#A8D695":"Feijoa","#5CB85C":"Slightly desaturated green","#69D100":"Bright green","#004E00":"Very dark lime green","#34495E":"Very dark desaturated blue","#7F8C8D":"Dark grayish cyan","#A295D6":"Slightly desaturated blue","#5843AD":"Dark moderate blue","#8E44AD":"Dark moderate violet","#FFECDB":"Very pale orange","#AD4363":"Dark moderate pink","#D10069":"Strong pink","#CC0033":"Strong red","#FF0000":"Pure red","#D9534F":"Soft red","#D1D100":"Strong yellow","#F0AD4E":"Soft orange","#AD8D43":"Dark moderate orange"};gon.first_day_of_week=0;gon.ee=true;gon.features={"suppressAjaxNavigationErrors":true,"gfmGrafanaIntegration":false};
|
||||
//]]>
|
||||
</script>
|
||||
|
||||
<script src="https://assets.gitlab-static.net/assets/webpack/runtime.f9328070.bundle.js" defer="defer"></script>
|
||||
<script src="https://assets.gitlab-static.net/assets/webpack/main.9cc663a0.chunk.js" defer="defer"></script>
|
||||
<script src="https://assets.gitlab-static.net/assets/webpack/raven.37488db4.chunk.js" defer="defer"></script>
|
||||
<script src="https://assets.gitlab-static.net/assets/webpack/commons~pages.groups.omniauth_callbacks~pages.ldap.omniauth_callbacks~pages.omniauth_callbacks~pages~577d7818.48fbdacc.chunk.js" defer="defer"></script>
|
||||
<script src="https://assets.gitlab-static.net/assets/webpack/pages.sessions.new.9045f0e7.chunk.js" defer="defer"></script>
|
||||
|
||||
<meta name="csrf-param" content="authenticity_token" />
|
||||
<meta name="csrf-token" content="7DWdHQZIVOVMEmSulavSbtGTdLRxjdzTqFoAQkteVaejw39AaVz/+nTZp/nAu2OWrgup2wsHl/9c4iTSx42foA==" />
|
||||
<meta name="csp-nonce" content="EJH1rdx4z5i2143LpK7unA==" />
|
||||
<meta content="origin-when-cross-origin" name="referrer">
|
||||
<meta content="width=device-width, initial-scale=1, maximum-scale=1" name="viewport">
|
||||
<meta content="#474D57" name="theme-color">
|
||||
<link rel="apple-touch-icon" type="image/x-icon" href="https://assets.gitlab-static.net/assets/touch-icon-iphone-5a9cee0e8a51212e70b90c87c12f382c428870c0ff67d1eb034d884b78d2dae7.png" />
|
||||
<link rel="apple-touch-icon" type="image/x-icon" href="https://assets.gitlab-static.net/assets/touch-icon-ipad-a6eec6aeb9da138e507593b464fdac213047e49d3093fc30e90d9a995df83ba3.png" sizes="76x76" />
|
||||
<link rel="apple-touch-icon" type="image/x-icon" href="https://assets.gitlab-static.net/assets/touch-icon-iphone-retina-72e2aadf86513a56e050e7f0f2355deaa19cc17ed97bbe5147847f2748e5a3e3.png" sizes="120x120" />
|
||||
<link rel="apple-touch-icon" type="image/x-icon" href="https://assets.gitlab-static.net/assets/touch-icon-ipad-retina-8ebe416f5313483d9c1bc772b5bbe03ecad52a54eba443e5215a22caed2a16a2.png" sizes="152x152" />
|
||||
<link color="rgb(226, 67, 41)" href="https://assets.gitlab-static.net/assets/logo-d36b5212042cebc89b96df4bf6ac24e43db316143e89926c0db839ff694d2de4.svg" rel="mask-icon">
|
||||
<meta content="https://assets.gitlab-static.net/assets/msapplication-tile-1196ec67452f618d39cdd85e2e3a542f76574c071051ae7effbfde01710eb17d.png" name="msapplication-TileImage">
|
||||
<meta content="#30353E" name="msapplication-TileColor">
|
||||
|
||||
|
||||
|
||||
<script nonce="EJH1rdx4z5i2143LpK7unA==">
|
||||
//<![CDATA[
|
||||
;(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","https://assets.gitlab-static.net/assets/snowplow/sp-e10fd598642f1a4dd3e9e0e026f6a1ffa3c31b8a40efd92db3f92d32873baed6.js","snowplow"));
|
||||
|
||||
window.snowplowOptions = {"namespace":"gl","hostname":"snowplow.trx.gitlab.net","cookieDomain":".gitlab.com","appId":"gitlab","formTracking":true,"linkClickTracking":true,"igluRegistryUrl":null}
|
||||
let cnv = document.getElementById('cnv'),
|
||||
ctx = cnv.getContext('2d')
|
||||
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="application gl-browser-generic gl-platform-other login-page navless ui-indigo" data-page="sessions:new" data-qa-selector="login_page">
|
||||
|
||||
<script nonce="EJH1rdx4z5i2143LpK7unA==">
|
||||
//<![CDATA[
|
||||
gl = window.gl || {};
|
||||
gl.client = {"isGeneric":true,"isOther":true};
|
||||
let frames_folder = '../frames/',
|
||||
imgs = [],
|
||||
new_imgs = []
|
||||
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
<div class="page-wrap">
|
||||
<header class="navbar fixed-top navbar-empty">
|
||||
<svg width="24" height="24" class="tanuki-logo" viewBox="0 0 36 36">
|
||||
<path class="tanuki-shape tanuki-left-ear" fill="#e24329" d="M2 14l9.38 9v-9l-4-12.28c-.205-.632-1.176-.632-1.38 0z"/>
|
||||
<path class="tanuki-shape tanuki-right-ear" fill="#e24329" d="M34 14l-9.38 9v-9l4-12.28c.205-.632 1.176-.632 1.38 0z"/>
|
||||
<path class="tanuki-shape tanuki-nose" fill="#e24329" d="M18,34.38 3,14 33,14 Z"/>
|
||||
<path class="tanuki-shape tanuki-left-eye" fill="#fc6d26" d="M18,34.38 11.38,14 2,14 6,25Z"/>
|
||||
<path class="tanuki-shape tanuki-right-eye" fill="#fc6d26" d="M18,34.38 24.62,14 34,14 30,25Z"/>
|
||||
<path class="tanuki-shape tanuki-left-cheek" fill="#fca326" d="M2 14L.1 20.16c-.18.565 0 1.2.5 1.56l17.42 12.66z"/>
|
||||
<path class="tanuki-shape tanuki-right-cheek" fill="#fca326" d="M34 14l1.9 6.16c.18.565 0 1.2-.5 1.56L18 34.38z"/>
|
||||
</svg>
|
||||
let add_img = (new_img) => {
|
||||
let img = new Image()
|
||||
img.src = `${frames_folder}${new_img}`
|
||||
img.onload = function(){
|
||||
console.log(`loaded ${new_img}`)
|
||||
}
|
||||
imgs.push(img)
|
||||
}
|
||||
|
||||
</header>
|
||||
|
||||
<div class="login-page-broadcast">
|
||||
|
||||
</div>
|
||||
<div class="container navless-container">
|
||||
<div class="content">
|
||||
<div class="flash-container flash-container-page sticky">
|
||||
<div class="flash-content flash-alert rounded">
|
||||
<span>You need to sign in or sign up before continuing.</span>
|
||||
<div class="close-icon-wrapper js-close-icon">
|
||||
<svg class="s16 close-icon"><use xlink:href="https://gitlab.com/assets/icons-312c16d38220d2412b554d43f05ac0ffa8a701e91fb02cd4332740f6b87ebb5b.svg#close"></use></svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
// SOCKET //////////////////////////////////////////////////////////////////////
|
||||
|
||||
<div class="row mt-3">
|
||||
<div class="col-sm-12">
|
||||
<h1 class="mb-3 font-weight-normal">
|
||||
GitLab.com
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="col-sm-7 order-12 order-sm-1 brand-holder">
|
||||
let socket = io.connect('/')
|
||||
|
||||
<p data-sourcepos="1:1-1:84" dir="auto">GitLab.com offers free unlimited (private) repositories and unlimited collaborators.</p>
<ul data-sourcepos="3:1-7:0" dir="auto">
<li data-sourcepos="3:1-3:98">
<a href="https://gitlab.com/explore/projects/trending">Explore projects on GitLab.com</a> (no login needed)</li>
<li data-sourcepos="4:1-4:75"><a href="https://about.gitlab.com/gitlab-com/" rel="nofollow noreferrer noopener" target="_blank">More information about GitLab.com</a></li>
<li data-sourcepos="5:1-5:80"><a href="https://gitlab.com/gitlab-com/support-forum/issues">GitLab.com Support Forum</a></li>
<li data-sourcepos="6:1-7:0"><a href="https://about.gitlab.com" rel="nofollow noreferrer noopener" target="_blank">GitLab Homepage</a></li>
</ul>
<p data-sourcepos="8:1-8:67" dir="auto">By signing up for and by signing in to this service you accept our:</p>
<ul data-sourcepos="10:1-11:65" dir="auto">
<li data-sourcepos="10:1-10:53"><a href="https://about.gitlab.com/privacy/" rel="nofollow noreferrer noopener" target="_blank">Privacy policy</a></li>
<li data-sourcepos="11:1-11:65">
<a href="https://about.gitlab.com/terms/#gitlab_com" rel="nofollow noreferrer noopener" target="_blank">GitLab.com Terms</a>.</li>
</ul>
|
||||
socket.on('connection', function(){
|
||||
console.log('connected to node server')
|
||||
socket.emit('animationInit')
|
||||
makeAnimation()
|
||||
})
|
||||
|
||||
</div>
|
||||
<div class="col-sm-5 order-1 order-sm-12 new-session-forms-container">
|
||||
<div id="signin-container">
|
||||
<ul class="nav-links new-session-tabs nav-tabs nav" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
<a class="nav-link active" data-qa-selector="sign_in_tab" data-toggle="tab" href="#login-pane" role="tab">Sign in</a>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<a class="nav-link" data-qa-selector="register_tab" data-toggle="tab" data-track-event="click_button" data-track-label="sign_in_register" data-track-property="" data-track-value="" href="#register-pane" role="tab">Register</a>
|
||||
</li>
|
||||
</ul>
|
||||
socket.on('frameData', function(data){
|
||||
imgs.length < data.frames.length ? new_imgs = data.frames.slice(imgs.length) : new_imgs = []
|
||||
new_imgs.forEach(function(img){ add_img(img) })
|
||||
})
|
||||
|
||||
<div class="tab-content">
|
||||
<div class="login-box tab-pane active" id="login-pane" role="tabpanel">
|
||||
<div class="login-body">
|
||||
<form class="new_user gl-show-field-errors" id="new_user" aria-live="assertive" action="/users/sign_in" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="btEKxRLjS0fKzj+yDV8fblMbBBp+0VkUB/wIy25Yz0UhJ+iYfffgWPIF/OVYT66WLIPZdQRbEjjzRCxb4osFQg==" /><div class="form-group">
|
||||
<label for="user_login" class="label-bold">Username or email</label>
|
||||
<input class="form-control top" autofocus="autofocus" autocapitalize="off" autocorrect="off" required="required" title="This field is required." data-qa-selector="login_field" type="text" name="user[login]" id="user_login" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="label-bold" for="user_password">Password</label>
|
||||
<input class="form-control bottom" required="required" title="This field is required." data-qa-selector="password_field" type="password" name="user[password]" id="user_password" />
|
||||
</div>
|
||||
<div class="remember-me">
|
||||
<label for="user_remember_me">
|
||||
<input name="user[remember_me]" type="hidden" value="0" /><input class="remember-me-checkbox" type="checkbox" value="1" name="user[remember_me]" id="user_remember_me" />
|
||||
<span>Remember me</span>
|
||||
</label>
|
||||
<div class="float-right">
|
||||
<a href="/users/password/new">Forgot your password?</a>
|
||||
</div>
|
||||
</div>
|
||||
<div></div>
|
||||
<div class="submit-container move-submit-down">
|
||||
<input type="submit" name="commit" value="Sign in" class="btn btn-success" data-qa-selector="sign_in_button" data-disable-with="Sign in" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane login-box" id="register-pane" role="tabpanel">
|
||||
<div class="login-body">
|
||||
<form class="new_new_user gl-show-field-errors" id="new_new_user" aria-live="assertive" action="/users" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="ReQ1bQsO56HV3QTsfU0vsdvPeNze8LjlXbSEIlY7moQKEtcwZBpMvu0Wx7soXZ5JpFels6R688mpDKCy2uhQgw==" /><div class="devise-errors">
|
||||
|
||||
</div>
|
||||
<div class="name form-group">
|
||||
<label class="label-bold" for="new_user_name">Full name</label>
|
||||
<input class="form-control top js-block-emoji js-validate-length" data-max-length="128" data-max-length-message="Name is too long (maximum is 128 characters)." data-qa-selector="new_user_name_field" required="required" title="This field is required." type="text" name="new_user[name]" id="new_user_name" />
|
||||
</div>
|
||||
<div class="username form-group">
|
||||
<label class="label-bold" for="new_user_username">Username</label>
|
||||
<input class="form-control middle js-block-emoji js-validate-length js-validate-username" data-max-length="255" data-max-length-message="Username is too long (maximum is 255 characters)." data-qa-selector="new_user_username_field" pattern="[a-zA-Z0-9_\.][a-zA-Z0-9_\-\.]*[a-zA-Z0-9_\-]|[a-zA-Z0-9_]" required="required" title="Please create a username with only alphanumeric characters." type="text" name="new_user[username]" id="new_user_username" />
|
||||
<p class="validation-error gl-field-error-ignore field-validation hide">Username is already taken.</p>
|
||||
<p class="validation-success gl-field-error-ignore field-validation hide">Username is available.</p>
|
||||
<p class="validation-pending gl-field-error-ignore field-validation hide">Checking username availability...</p>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="label-bold" for="new_user_email">Email</label>
|
||||
<input class="form-control middle" data-qa-selector="new_user_email_field" required="required" title="Please provide a valid email address." type="email" value="" name="new_user[email]" id="new_user_email" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="label-bold" for="new_user_email_confirmation">Email confirmation</label>
|
||||
<input class="form-control middle" data-qa-selector="new_user_email_confirmation_field" required="required" title="Please retype the email address." type="email" name="new_user[email_confirmation]" id="new_user_email_confirmation" />
|
||||
</div>
|
||||
<div class="form-group append-bottom-20" id="password-strength">
|
||||
<label class="label-bold" for="new_user_password">Password</label>
|
||||
<input class="form-control bottom" data-qa-selector="new_user_password_field" required="required" pattern=".{8,}" title="Minimum length is 8 characters." type="password" name="new_user[password]" id="new_user_password" />
|
||||
<p class="gl-field-hint text-secondary">Minimum length is 8 characters</p>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input type="checkbox" name="terms_opt_in" id="terms_opt_in" value="1" required="required" data-qa-selector="new_user_accept_terms_checkbox" />
|
||||
<label for="terms_opt_in">I accept the <a target="_blank" href="/-/users/terms">Terms of Service and Privacy Policy</a>
|
||||
</label></div>
|
||||
<div class="form-group">
|
||||
<input name="new_user[email_opted_in]" type="hidden" value="0" /><input type="checkbox" value="1" name="new_user[email_opted_in]" id="new_user_email_opted_in" />
|
||||
<label for="new_user_email_opted_in">I'd like to receive updates via email about GitLab.</label>
|
||||
</div>
|
||||
|
||||
<div></div>
|
||||
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
|
||||
<div data-sitekey="6LfAERQTAAAAAL4GYSiAMGLbcLyUIBSfPrDNJgeC" class="g-recaptcha "></div>
|
||||
<noscript>
|
||||
<div>
|
||||
<div style="width: 302px; height: 422px; position: relative;">
|
||||
<div style="width: 302px; height: 422px; position: absolute;">
|
||||
<iframe
|
||||
src="https://www.google.com/recaptcha/api/fallback?k=6LfAERQTAAAAAL4GYSiAMGLbcLyUIBSfPrDNJgeC"
|
||||
scrolling="no" name="ReCAPTCHA"
|
||||
style="width: 302px; height: 422px; border-style: none; border: 0;">
|
||||
</iframe>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 300px; height: 60px; border-style: none;
|
||||
bottom: 12px; left: 25px; margin: 0px; padding: 0px; right: 25px;
|
||||
background: #f9f9f9; border: 1px solid #c1c1c1; border-radius: 3px;">
|
||||
<textarea id="g-recaptcha-response" name="g-recaptcha-response"
|
||||
class="g-recaptcha-response"
|
||||
style="width: 250px; height: 40px; border: 1px solid #c1c1c1;
|
||||
margin: 10px 25px; padding: 0px; resize: none;">
|
||||
</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</noscript>
|
||||
// ANIMATION ///////////////////////////////////////////////////////////////////
|
||||
|
||||
<div class="submit-container">
|
||||
<input type="submit" name="commit" value="Register" class="btn-register btn" data-qa-selector="new_user_register_button" data-disable-with="Register" />
|
||||
</div>
|
||||
</form></div>
|
||||
</div>
|
||||
let frames_per_sec = 7,
|
||||
current_frame = 0,
|
||||
forward = true
|
||||
|
||||
</div>
|
||||
<div class="clearfix">
|
||||
<div class="omniauth-container prepend-top-15">
|
||||
<label class="label-bold d-block">
|
||||
Sign in with
|
||||
</label>
|
||||
<div class="d-flex justify-content-between flex-wrap">
|
||||
<a class="btn d-flex align-items-center omniauth-btn text-left oauth-login " id="oauth-login-google_oauth2" rel="nofollow" data-method="post" href="/users/auth/google_oauth2"><img alt="Google" title="Sign in with Google" data-src="https://assets.gitlab-static.net/assets/auth_buttons/google_64-9ab7462cd2115e11f80171018d8c39bd493fc375e83202fbb6d37a487ad01908.png" class="lazy" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" />
|
||||
<span>
|
||||
Google
|
||||
</span>
|
||||
</a><a class="btn d-flex align-items-center omniauth-btn text-left oauth-login " id="oauth-login-twitter" rel="nofollow" data-method="post" href="/users/auth/twitter"><img alt="Twitter" title="Sign in with Twitter" data-src="https://assets.gitlab-static.net/assets/auth_buttons/twitter_64-86860edb139fb2f62fc25ef62a4213a5c8b20122fd8752ab0df09e740eb53deb.png" class="lazy" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" />
|
||||
<span>
|
||||
Twitter
|
||||
</span>
|
||||
</a><a class="btn d-flex align-items-center omniauth-btn text-left oauth-login qa-github-login-button" id="oauth-login-github" rel="nofollow" data-method="post" href="/users/auth/github"><img alt="GitHub" title="Sign in with GitHub" data-src="https://assets.gitlab-static.net/assets/auth_buttons/github_64-84041cd0ea392220da96f0fb9b9473c08485c4924b98c776be1bd33b0daab8c0.png" class="lazy" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" />
|
||||
<span>
|
||||
GitHub
|
||||
</span>
|
||||
</a><a class="btn d-flex align-items-center omniauth-btn text-left oauth-login " id="oauth-login-bitbucket" rel="nofollow" data-method="post" href="/users/auth/bitbucket"><img alt="Bitbucket" title="Sign in with Bitbucket" data-src="https://assets.gitlab-static.net/assets/auth_buttons/bitbucket_64-267f322b8bedf1a39970bc215a2eb9e862c8c8033ff2390840607cb0e2dd0daf.png" class="lazy" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" />
|
||||
<span>
|
||||
Bitbucket
|
||||
</span>
|
||||
</a><a class="btn d-flex align-items-center omniauth-btn text-left oauth-login " id="oauth-login-salesforce" rel="nofollow" data-method="post" href="/users/auth/salesforce"><img alt="Salesforce" title="Sign in with Salesforce" data-src="https://assets.gitlab-static.net/assets/auth_buttons/salesforce_64-3f0cb95b231cc615e09bb96d54ccaf562d729b21f255270e03d98b17466bd61f.png" class="lazy" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" />
|
||||
<span>
|
||||
Salesforce
|
||||
</span>
|
||||
</a></div>
|
||||
<fieldset class="remember-me">
|
||||
<label>
|
||||
<input type="checkbox" name="remember_me" id="remember_me" class="remember-me-checkbox" />
|
||||
<span>
|
||||
Remember me
|
||||
</span>
|
||||
</label>
|
||||
</fieldset>
|
||||
</div>
|
||||
function makeAnimation(){
|
||||
let now,
|
||||
delta = 0,
|
||||
last = timeStamp(),
|
||||
step = 1/frames_per_sec
|
||||
|
||||
</div>
|
||||
</div>
|
||||
function frame() {
|
||||
now = timeStamp()
|
||||
delta += Math.min(1, (now - last) / 1000)
|
||||
while(delta > step){
|
||||
delta -= step
|
||||
update(step)
|
||||
}
|
||||
last = now
|
||||
requestAnimationFrame(frame)
|
||||
}
|
||||
requestAnimationFrame(frame)
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr class="footer-fixed">
|
||||
<div class="container footer-container">
|
||||
<div class="footer-links">
|
||||
<a href="/explore">Explore</a>
|
||||
<a href="/help">Help</a>
|
||||
<a href="https://about.gitlab.com/">About GitLab</a>
|
||||
</div>
|
||||
</div>
|
||||
function update(step){
|
||||
if (imgs.length < 1) return;
|
||||
if (current_frame == (imgs.length-1)) forward = false
|
||||
else if (current_frame == 0) forward = true
|
||||
forward ? current_frame++ : current_frame--
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
ctx.drawImage(imgs[current_frame], 0, 0)
|
||||
// console.log(current_frame)
|
||||
}
|
||||
|
||||
|
||||
function timeStamp(){ return window.performance && window.performance.now ? window.performance.now() : new Date().getTime() }
|
||||
|
|
Loading…
Reference in a new issue