browser supports copy detection
This commit is contained in:
parent
03011e31fe
commit
6a89eeedf3
3 changed files with 29 additions and 1 deletions
|
@ -33,6 +33,8 @@ golang.org/x/net = commit:937a34c9de13
|
|||
golang.org/x/text = commit:5b2527008a4c
|
||||
gopkg.in/ini.v1 = commit:caf3f03ad9
|
||||
gopkg.in/redis.v2 = commit:e617904962
|
||||
github.com/hashicorp/go-version = commit:999359b6b7
|
||||
github.com/mssola/user_agent = commit:f659b98638
|
||||
|
||||
[res]
|
||||
include = etc|public|scripts|templates
|
||||
|
|
|
@ -16,6 +16,14 @@ import (
|
|||
"github.com/gogits/gogs/modules/git"
|
||||
"github.com/gogits/gogs/modules/log"
|
||||
"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 {
|
||||
|
@ -345,6 +353,24 @@ func RepoAssignment(redirect bool, args ...bool) macaron.Handler {
|
|||
|
||||
ctx.Data["BranchName"] = ctx.Repo.BranchName
|
||||
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>
|
||||
<html>
|
||||
<html{{if .BrowserSupportsCopy}} class="is-copy-enabled"{{end}}>
|
||||
<head data-suburl="{{AppSubUrl}}">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||
|
|
Reference in a new issue