mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 22:28:05 +01:00 
			
		
		
		
	browser supports copy detection
This commit is contained in:
		
							parent
							
								
									03011e31fe
								
							
						
					
					
						commit
						6a89eeedf3
					
				| @ -33,6 +33,8 @@ golang.org/x/net = commit:937a34c9de13 | |||||||
| golang.org/x/text = commit:5b2527008a4c | golang.org/x/text = commit:5b2527008a4c | ||||||
| gopkg.in/ini.v1 = commit:caf3f03ad9 | gopkg.in/ini.v1 = commit:caf3f03ad9 | ||||||
| gopkg.in/redis.v2 = commit:e617904962 | gopkg.in/redis.v2 = commit:e617904962 | ||||||
|  | github.com/hashicorp/go-version = commit:999359b6b7 | ||||||
|  | github.com/mssola/user_agent = commit:f659b98638 | ||||||
| 
 | 
 | ||||||
| [res] | [res] | ||||||
| include = etc|public|scripts|templates | include = etc|public|scripts|templates | ||||||
|  | |||||||
| @ -16,6 +16,14 @@ import ( | |||||||
| 	"github.com/gogits/gogs/modules/git" | 	"github.com/gogits/gogs/modules/git" | ||||||
| 	"github.com/gogits/gogs/modules/log" | 	"github.com/gogits/gogs/modules/log" | ||||||
| 	"github.com/gogits/gogs/modules/setting" | 	"github.com/gogits/gogs/modules/setting" | ||||||
|  | 
 | ||||||
|  | 	"github.com/hashicorp/go-version" | ||||||
|  | 	"github.com/mssola/user_agent" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | const ( | ||||||
|  | 	FIREFOX_COPY_SUPPORT = "41.0" | ||||||
|  | 	CHROME_COPY_SUPPORT = "43.0.2356" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func ApiRepoAssignment() macaron.Handler { | func ApiRepoAssignment() macaron.Handler { | ||||||
| @ -345,6 +353,24 @@ func RepoAssignment(redirect bool, args ...bool) macaron.Handler { | |||||||
| 
 | 
 | ||||||
| 		ctx.Data["BranchName"] = ctx.Repo.BranchName | 		ctx.Data["BranchName"] = ctx.Repo.BranchName | ||||||
| 		ctx.Data["CommitId"] = ctx.Repo.CommitId | 		ctx.Data["CommitId"] = ctx.Repo.CommitId | ||||||
|  | 
 | ||||||
|  | 		userAgent := ctx.Req.Header.Get("User-Agent") | ||||||
|  | 		ua := user_agent.New(userAgent); | ||||||
|  | 		browserName, browserVer := ua.Browser() | ||||||
|  | 
 | ||||||
|  | 		sliceVer := strings.Split(browserVer, ".") | ||||||
|  | 		var max int | ||||||
|  | 		if max = len(sliceVer); 3 < max { | ||||||
|  | 			max = 3 | ||||||
|  | 		} | ||||||
|  | 		browserVer = strings.Join(sliceVer[:max], ".") | ||||||
|  | 
 | ||||||
|  | 		browserVersion, err := version.NewVersion(browserVer) | ||||||
|  | 		chromeConstraint, err := version.NewConstraint(">= " + CHROME_COPY_SUPPORT) | ||||||
|  | 		firefoxConstraint, err := version.NewConstraint(">= " + FIREFOX_COPY_SUPPORT) | ||||||
|  | 
 | ||||||
|  | 		ctx.Data["BrowserSupportsCopy"] = (browserName == "Chrome" && chromeConstraint.Check(browserVersion)) || (browserName == "Firefox" && firefoxConstraint.Check(browserVersion)) | ||||||
|  | 
 | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,5 +1,5 @@ | |||||||
| <!DOCTYPE html> | <!DOCTYPE html> | ||||||
| <html> | <html{{if .BrowserSupportsCopy}} class="is-copy-enabled"{{end}}> | ||||||
| 	<head data-suburl="{{AppSubUrl}}"> | 	<head data-suburl="{{AppSubUrl}}"> | ||||||
| 		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | 		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | ||||||
|         <meta http-equiv="X-UA-Compatible" content="IE=edge"/> |         <meta http-equiv="X-UA-Compatible" content="IE=edge"/> | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user