Working on install page
This commit is contained in:
		
							parent
							
								
									a55941ff83
								
							
						
					
					
						commit
						6e376bb85c
					
				
					 4 changed files with 57 additions and 6 deletions
				
			
		|  | @ -161,3 +161,53 @@ func AssignForm(form interface{}, data base.TmplData) { | |||
| 		data[fieldName] = val.Field(i).Interface() | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| type InstallForm struct { | ||||
| 	Database        string `form:"database" binding:"Required"` | ||||
| 	Host            string `form:"host"` | ||||
| 	User            string `form:"user"` | ||||
| 	Passwd          string `form:"passwd"` | ||||
| 	DatabaseName    string `form:"database_name"` | ||||
| 	SslMode         string `form:"ssl_mode"` | ||||
| 	DatabasePath    string `form:"database_path"` | ||||
| 	RepoRootPath    string `form:"repo_path"` | ||||
| 	RunUser         string `form:"run_user"` | ||||
| 	AppUrl          string `form:"app_url"` | ||||
| 	AdminName       string `form:"admin_name" binding:"Required"` | ||||
| 	AdminPasswd     string `form:"admin_pwd" binding:"Required;MinSize(6);MaxSize(30)"` | ||||
| 	AdminEmail      string `form:"admin_email" binding:"Required;Email;MaxSize(50)"` | ||||
| 	SmtpHost        string `form:"smtp_host"` | ||||
| 	SmtpEmail       string `form:"mailer_user"` | ||||
| 	SmtpPasswd      string `form:"mailer_pwd"` | ||||
| 	RegisterConfirm string `form:"register_confirm"` | ||||
| 	MailNotify      string `form:"mail_notify"` | ||||
| } | ||||
| 
 | ||||
| func (f *InstallForm) Name(field string) string { | ||||
| 	names := map[string]string{ | ||||
| 		"Database":    "Database name", | ||||
| 		"AdminName":   "Admin user name", | ||||
| 		"AdminPasswd": "Admin password", | ||||
| 		"AdminEmail":  "Admin e-maill address", | ||||
| 	} | ||||
| 	return names[field] | ||||
| } | ||||
| 
 | ||||
| func (f *InstallForm) Validate(errors *binding.Errors, req *http.Request, context martini.Context) { | ||||
| 	if req.Method == "GET" || errors.Count() == 0 { | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	data := context.Get(reflect.TypeOf(base.TmplData{})).Interface().(base.TmplData) | ||||
| 	data["HasError"] = true | ||||
| 	AssignForm(f, data) | ||||
| 
 | ||||
| 	if len(errors.Overall) > 0 { | ||||
| 		for _, err := range errors.Overall { | ||||
| 			log.Error("InstallForm.Validate: %v", err) | ||||
| 		} | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	validate(errors, data, f) | ||||
| } | ||||
|  |  | |||
|  | @ -8,11 +8,12 @@ import ( | |||
| 	"errors" | ||||
| 
 | ||||
| 	"github.com/gogits/gogs/models" | ||||
| 	"github.com/gogits/gogs/modules/auth" | ||||
| 	"github.com/gogits/gogs/modules/base" | ||||
| 	"github.com/gogits/gogs/modules/middleware" | ||||
| ) | ||||
| 
 | ||||
| func Install(ctx *middleware.Context) { | ||||
| func Install(ctx *middleware.Context, form auth.InstallForm) { | ||||
| 	if base.InstallLock { | ||||
| 		ctx.Handle(404, "install.Install", errors.New("Installation is prohibited")) | ||||
| 		return | ||||
|  |  | |||
|  | @ -43,7 +43,7 @@ | |||
|                 <label class="col-md-3 control-label">Database Name: </label> | ||||
| 
 | ||||
|                 <div class="col-md-8"> | ||||
|                     <input name="database" type="text" class="form-control" placeholder="Type mysql database name" value="{{.DbCfg.Name}}" required="required"> | ||||
|                     <input name="database_name" type="text" class="form-control" placeholder="Type mysql database name" value="{{.DbCfg.Name}}" required="required"> | ||||
|                     <p class="help-block">Recommend use INNODB engine with utf8_general_ci charset.</p> | ||||
|                 </div> | ||||
|             </div> | ||||
|  | @ -64,7 +64,7 @@ | |||
|                 <label class="col-md-3 control-label">Path: </label> | ||||
| 
 | ||||
|                 <div class="col-md-8"> | ||||
|                     <input name="path" class="form-control" placeholder="Type sqlite3 file path" value="{{.DbCfg.Path}}"> | ||||
|                     <input name="database_path" class="form-control" placeholder="Type sqlite3 file path" value="{{.DbCfg.Path}}"> | ||||
|                     <p class="help-block">The file path of SQLite3 database.</p> | ||||
|                 </div> | ||||
|             </div> | ||||
|  | @ -78,7 +78,7 @@ | |||
|             <label class="col-md-3 control-label">Repository Path: </label> | ||||
| 
 | ||||
|             <div class="col-md-8"> | ||||
|                 <input name="repo-path" type="text" class="form-control" placeholder="Type your repository directory" value="{{.RepoRootPath}}" required="required"> | ||||
|                 <input name="repo_path" type="text" class="form-control" placeholder="Type your repository directory" value="{{.RepoRootPath}}" required="required"> | ||||
| 
 | ||||
|                 <p class="help-block">The git copy of each repository is saved in this directory.</p> | ||||
|             </div> | ||||
|  | @ -88,7 +88,7 @@ | |||
|             <label class="col-md-3 control-label">Run User: </label> | ||||
| 
 | ||||
|             <div class="col-md-8"> | ||||
|                 <input name="system-user" type="text" class="form-control" placeholder="Type system user name" value="{{.RunUser}}" required="required"> | ||||
|                 <input name="run_user" type="text" class="form-control" placeholder="Type system user name" value="{{.RunUser}}" required="required"> | ||||
|                 <p class="help-block">The user has access to visit and run Gogs.</p> | ||||
|             </div> | ||||
|         </div> | ||||
|  |  | |||
							
								
								
									
										2
									
								
								web.go
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								web.go
									
									
									
									
									
								
							|  | @ -90,7 +90,7 @@ func runWeb(*cli.Context) { | |||
| 
 | ||||
| 	// Routers.
 | ||||
| 	m.Get("/", ignSignIn, routers.Home) | ||||
| 	m.Get("/install", routers.Install) | ||||
| 	m.Any("/install", routers.Install) | ||||
| 	m.Get("/issues", reqSignIn, user.Issues) | ||||
| 	m.Get("/pulls", reqSignIn, user.Pulls) | ||||
| 	m.Get("/stars", reqSignIn, user.Stars) | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue