170 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
			
		
		
	
	
			170 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
| <!DOCTYPE html>
 | ||
| <html>
 | ||
|     <head>
 | ||
|         <meta charset="UTF-8">
 | ||
|         <title>{{.i18n.wide}} - {{.i18n.sign_up}}</title>
 | ||
|         
 | ||
|         <meta name="keywords" content="Wide, Golang, IDE, Team, Cloud, B3log, Sign Up"/>
 | ||
|         <meta name="description" content="A Web-based IDE for Teams using Golang, do your development anytime, anywhere."/>
 | ||
|         <meta name="author" content="B3log">
 | ||
|         
 | ||
|         <link rel="stylesheet" href="{{.conf.StaticServer}}/static/css/base.css?{{.conf.StaticResourceVersion}}">
 | ||
|         <link rel="stylesheet" href="{{.conf.StaticServer}}/static/css/sign.css?{{.conf.StaticResourceVersion}}">
 | ||
|         <link rel="icon" type="image/x-icon" href="/favicon.ico" />
 | ||
|     </head>
 | ||
|     <body>
 | ||
|         <div class="header">
 | ||
|             <div class="wrapper fn-clear">
 | ||
|                 <a href="/login" rel="login">
 | ||
|                     <img title="Wide, a Web-based IDE for Teams using Golang." src="{{.conf.StaticServer}}/static/images/wide-logo.png" 
 | ||
|                          class="logo"/></a>
 | ||
|                 <ul class="fn-right">
 | ||
|                     <li><a rel="bookmark" href="https://github.com/b3log/wide" target="_blank">GitHub</a></li>
 | ||
|                     <li><a rel="help" href="https://www.gitbook.io/book/88250/wide-user-guide" target="_blank">{{.i18n.help}}</a></li>
 | ||
|                     <li><a rel="bookmark" href="https://github.com/b3log/wide/issues/new" target="_blank">{{.i18n.report_issues}}</a></li>
 | ||
|                     <li><button class="btn btn-red" onclick="window.open('http://b3log.org/services')">{{.i18n.pricing}}</button></li>
 | ||
|                     <li><button class="btn" onclick="window.location.href = '/login'">{{.i18n.login}}</button></li>
 | ||
|                 </ul>
 | ||
|             </div>
 | ||
|         </div>
 | ||
|         <div class="content">
 | ||
|             <div class="wrapper fn-clear">
 | ||
|                 <div class="fn-left">
 | ||
|                     <h2>Join Wide</h2>
 | ||
|                     <h3>Coding with Go on the Wide way.</h3>
 | ||
|                 </div>
 | ||
|                 <div class="form fn-right sign-up">
 | ||
|                     <div id="msg" class="fn-none"></div>
 | ||
|                     <div class="dir">
 | ||
|                         Workspace: 
 | ||
|                         <div id="dir" data-dir="{{.dir}}{{.pathSeparator}}">{{.dir}}{{.pathSeparator}}</div>
 | ||
|                     </div>
 | ||
|                     <input id="username" placeholder="Username"/><br/>
 | ||
|                     <input id="email" placeholder="Email"/><br/>
 | ||
|                     <input id="password" type="password" placeholder="Password"/><br/>
 | ||
|                     <input id="confirmPassword" type="password" placeholder="Confirm your password"/>
 | ||
|                     <button id="signUpBtn" class="btn">{{.i18n.sign_up}}</button>
 | ||
|                 </div>
 | ||
|             </div>
 | ||
|         </div>
 | ||
|         <div class="footer">
 | ||
|             <div class="wrapper">
 | ||
|                 Ver {{.ver}}, © {{.year}} <a rel="copyright" href="http://b3log.org" target="_blank">B3LOG.ORG</a>
 | ||
|             </div>
 | ||
|         </div>
 | ||
| 
 | ||
|         <script type="text/javascript" src="{{.conf.StaticServer}}/static/js/lib/jquery-2.1.1.min.js"></script>
 | ||
|         <script>
 | ||
| (function () {
 | ||
|     var contentH = $(window).height() - $(".footer").height() - $(".header").height() - 18;
 | ||
|     $(".content").height(contentH)
 | ||
|             .css("padding-top", (contentH - $(".content .fn-left").height()) / 2 + "px");
 | ||
| 
 | ||
|     var signUp = function () {
 | ||
|         if ($.trim($("#username").val()) === ""
 | ||
|                 || !/^\w+$/.test($("#username").val())
 | ||
|                 || $.trim($("#username").val()).length > 16) {
 | ||
|             $("#msg").text("{{.i18n.user_name_ruler}}").show();
 | ||
|             $("#username").focus();
 | ||
|             return false;
 | ||
|         } else if (!/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test($("#email").val())) {
 | ||
|             $("#msg").text("{{.i18n.invalid_email}}").show();
 | ||
|             $("#email").focus();
 | ||
|             return false;
 | ||
|         } else if ($.trim($("#password").val()) === "") {
 | ||
|             $("#msg").text("{{.i18n.sing_up_error}}").show();
 | ||
|             $("#password").focus();
 | ||
|             return false;
 | ||
|         } else if ($("#confirmPassword").val() !== $("#password").val()) {
 | ||
|             $("#msg").text("{{.i18n.password_no_match}}").show();
 | ||
|             $("#confirmPassword").focus();
 | ||
|             return false;
 | ||
|         }
 | ||
| 
 | ||
|         var request = {
 | ||
|             username: $("#username").val(),
 | ||
|             password: $("#password").val(),
 | ||
|             email: $("#email").val()
 | ||
|         };
 | ||
|         $.ajax({
 | ||
|             type: 'POST',
 | ||
|             url: '/signup',
 | ||
|             data: JSON.stringify(request),
 | ||
|             dataType: "json",
 | ||
|             success: function (data) {
 | ||
|                 if (!data.succ) {
 | ||
|                     $("#msg").text(data.msg).show();
 | ||
|                     return;
 | ||
|                 }
 | ||
| 
 | ||
|                 window.location.href = "/";
 | ||
|             }
 | ||
|         });
 | ||
|     };
 | ||
| 
 | ||
|     $("#username").keyup(function (event) {
 | ||
|         if (event.which === 13) {
 | ||
|             if ($.trim($(this).val()) === ""
 | ||
|                     || !/^\w+$/.test($(this).val())
 | ||
|                     || $.trim($(this).val()).length > 16) {
 | ||
|                 $("#msg").text("{{.i18n.user_name_ruler}}").show();
 | ||
|             } else {
 | ||
|                 $("#email").focus();
 | ||
|                 $("#msg").hide();
 | ||
|             }
 | ||
|         } else {
 | ||
|             if ($.trim($(this).val()) === ""
 | ||
|                     || !/^\w+$/.test($(this).val())
 | ||
|                     || $.trim($(this).val()).length > 16) {
 | ||
|                 $("#msg").text("{{.i18n.user_name_ruler}}").show();
 | ||
|             } else {
 | ||
|                 $("#msg").hide();
 | ||
|             }
 | ||
|             $("#dir").html($("#dir").data('dir') + $(this).val());
 | ||
|         }
 | ||
|     }).focus();
 | ||
| 
 | ||
|     $("#email").keydown(function (event) {
 | ||
|         if (event.which === 13) {
 | ||
|             if ($.trim($(this).val()) === "") {
 | ||
|                 $("#msg").text("{{.i18n.invalid_email}}").show();
 | ||
|             } else {
 | ||
|                 $("#password").focus();
 | ||
|             }
 | ||
|         } else {
 | ||
|             $("#msg").hide();
 | ||
|         }
 | ||
|     });
 | ||
| 
 | ||
|     $("#password").keydown(function (event) {
 | ||
|         if (event.which === 13) {
 | ||
|             if ($.trim($(this).val()) === "") {
 | ||
|                 $("#msg").text("{{.i18n.sing_up_error}}").show();
 | ||
|             } else {
 | ||
|                 $("#confirmPassword").focus();
 | ||
|             }
 | ||
|         } else {
 | ||
|             $("#msg").hide();
 | ||
|         }
 | ||
|     });
 | ||
| 
 | ||
|     $("#confirmPassword").keydown(function (event) {
 | ||
|         if (event.which === 13) {
 | ||
|             if ($(this).val() !== $("#password").val()) {
 | ||
|                 $("#msg").text("{{.i18n.password_no_match}}").show();
 | ||
|             } else {
 | ||
|                 signUp();
 | ||
|             }
 | ||
|         } else {
 | ||
|             $("#msg").hide();
 | ||
|         }
 | ||
|     });
 | ||
| 
 | ||
|     $("#signUpBtn").click(function () {
 | ||
|         signUp();
 | ||
|     });
 | ||
| })();
 | ||
|         </script>
 | ||
|     </body>
 | ||
| </html>
 |