| 
					
				 | 
			
			
				@@ -0,0 +1,39 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package modules 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"io/ioutil" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"os" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	ThemeFiles "golang-fave/assets/template" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"golang-fave/engine/wrapper" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (this *Modules) RegisterAction_TemplateRestoreFile() *Action { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return this.newAction(AInfo{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		WantDB:    true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Mount:     "template-restore-file", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		WantAdmin: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, func(wrap *wrapper.Wrapper) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		pf_file := wrap.R.FormValue("file") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if pf_file == "" { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			wrap.MsgError(`Please specify file name`) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if _, ok := ThemeFiles.AllData[pf_file]; !ok { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			wrap.MsgError(`Template file is not defined in engine`) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// Restore file content 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		err := ioutil.WriteFile(wrap.DTemplate+string(os.PathSeparator)+pf_file, ThemeFiles.AllData[pf_file], 0664) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			wrap.MsgError(err.Error()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// Reload current page 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		wrap.Write(`window.location.reload(false);`) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |