web content
This commit is contained in:
		
							
								
								
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,2 +1,5 @@ | ||||
| start | ||||
| start_notcc | ||||
| start_notcc | ||||
| start_notcc.dSYM/ | ||||
| *.dSYM/* | ||||
| *.dSYM* | ||||
| @@ -1,5 +1,5 @@ | ||||
| module web | ||||
|  | ||||
| import x.templating.dtm | ||||
| //import freeflowuniverse.crystallib.osal | ||||
| import veb | ||||
| import os | ||||
| @@ -13,8 +13,9 @@ pub struct Context { | ||||
|  | ||||
| pub struct App { | ||||
| 	veb.StaticHandler | ||||
| pub: | ||||
| pub mut: | ||||
| 	adminkey string | ||||
| 	dtm &dtm.DynamicTemplateManager = dtm.initialize() | ||||
| } | ||||
|  | ||||
| // Main entry point | ||||
|   | ||||
							
								
								
									
										45
									
								
								web/view.v
									
									
									
									
									
								
							
							
						
						
									
										45
									
								
								web/view.v
									
									
									
									
									
								
							| @@ -3,12 +3,13 @@ module web | ||||
| //import freeflowuniverse.crystallib.osal | ||||
| import veb | ||||
| import web1.components.intro | ||||
|  | ||||
| import freeflowuniverse.crystallib.ui.console | ||||
| // import rand | ||||
| // import os | ||||
| import os | ||||
| // import json | ||||
| // import freeflowuniverse.crystallib.webserver.auth.jwt | ||||
| // import time | ||||
| //import x.templating.dtm | ||||
|  | ||||
| pub fn render(mut ctx Context) !map[string]string { | ||||
| 	mut res:=map[string]string{} | ||||
| @@ -22,13 +23,49 @@ pub fn render(mut ctx Context) !map[string]string { | ||||
| 	return res | ||||
| } | ||||
|  | ||||
| pub fn template_render(path string, content map[string]string)!string { | ||||
| 	mut name:=os.base(path).to_lower() | ||||
| 	name=name.all_before_last(".html") | ||||
| 	c := match name{ | ||||
| 		"index"{ | ||||
| 			$tmpl('./templates/index.html') | ||||
| 		}"blog-list-classic"{ | ||||
| 			$tmpl('./templates/blog-list-classic.html')		 | ||||
| 		}else{ | ||||
| 			return error("can't find template with name: ${name}") | ||||
| 		} | ||||
| 	} | ||||
| 	//TODO: NEED to add the other templates, its a pitty we can't do this dynamic | ||||
| 	return c | ||||
| } | ||||
|  | ||||
| pub fn (app &App) index(mut ctx Context) veb.Result { | ||||
| pub fn (mut app App) index(mut ctx Context) veb.Result { | ||||
| 	return app.index2(mut ctx ,"") | ||||
| } | ||||
|  | ||||
| @['/:path']     | ||||
| pub fn (mut app App) index2(mut ctx Context,path string) veb.Result { | ||||
| 	mut templpath:="${path}" | ||||
| 	if templpath==""{ | ||||
| 		templpath="index" | ||||
| 	} | ||||
| 	println(templpath) | ||||
| 	console.print_debug("templpath : '${templpath}'") | ||||
| 	 | ||||
| 	content:=render(mut ctx) or {  | ||||
| 		ctx.res.set_status(.unknown) | ||||
| 		return ctx.html('<h1>ERROR!</h1>${err}') | ||||
| 	} | ||||
| 	return ctx.html($tmpl('./templates/index.html')) | ||||
| 	// mut tmp_var := map[string]dtm.DtmMultiTypeMap{} | ||||
| 	// for key,val in content{ | ||||
| 	// 	tmp_var[key] = val | ||||
| 	// } | ||||
| 	//t:=app.dtm.expand(templpath,placeholders:&tmp_var) | ||||
| 	t:= template_render(templpath,content)or {  | ||||
| 		ctx.res.set_status(.unknown) | ||||
| 		return ctx.html('<h1>ERROR TEMPLATE!</h1>${err}') | ||||
| 	} | ||||
| 	return ctx.html(t) | ||||
| } | ||||
|  | ||||
| // @['/api/connection-details'; get] | ||||
|   | ||||
		Reference in New Issue
	
	Block a user